Disassembly: 
  L1: 55 ?? push ebp
   8b ec ?? mov ebp, esp
   51 ?? push ecx
   53 ?? push ebx
   8b 5d 10 ?? mov ebx, dword ss:[ebp + 0x10<16>]
   33 d2 ?? xor edx, edx
   56 ?? push esi
   8b 75 08 ?? mov esi, dword ss:[ebp + 8]
   57 ?? push edi
   33 ff ?? xor edi, edi
   2b de ?? sub ebx, esi
   89 5d 10 ?? mov dword ss:[ebp + 0x10<16>], ebx
  
  L2: 8b 45 14 ?? mov eax, dword ss:[ebp + 0x14<20>]
   89 55 fc ?? mov dword ss:[ebp + 0xfc<252,-4>], edx
   83 f8 10 ?? cmp eax, 0x10<16>
   72 05 ?? jb basic block L4
  
  L3: b8 10 00 00 00 ?? mov eax, 0x00000010<16>
  
  L4: 8b 4d 0c ?? mov ecx, dword ss:[ebp + 12]
   03 cf ?? add ecx, edi
   3b d0 ?? cmp edx, eax
   73 2c ?? jae basic block L7
  
  L5: 8a 1c 33 ?? mov bl, byte ds:[ebx + esi]
   0f b6 c3 ?? movzx eax, bl
   50 ?? push eax
   b8 31 00 00 00 ?? mov eax, 0x00000031<49>
   68 28 91 40 00 ?? push 0x00409128<"%.2X ">
   2b c7 ?? sub eax, edi
   50 ?? push eax
   51 ?? push ecx
   e8 e1 e6 ff ff ?? call function 0x0040123a
  
  L6: 8b 55 fc ?? mov edx, dword ss:[ebp + 0xfc<252,-4>]
   83 c4 10 ?? add esp, 0x10<16>
   88 1e ?? mov byte ds:[esi], bl
   42 ?? inc edx
   8b 5d 10 ?? mov ebx, dword ss:[ebp + 0x10<16>]
   46 ?? inc esi
   83 c7 03 ?? add edi, 3
   eb bb ?? jmp basic block L2
  
  L7: 5f ?? pop edi
   c6 06 00 ?? mov byte ds:[esi], 0
   5e ?? pop esi
   c6 01 00 ?? mov byte ds:[ecx], 0
   5b ?? pop ebx
   8b e5 ?? mov esp, ebp
   5d ?? pop ebp
   c3 ?? ret
  
  