Disassembly: 
  L1: 55 ?? push ebp
   8b ec ?? mov ebp, esp
   8b 4d 0c ?? mov ecx, dword ss:[ebp + 12]
   83 ec 08 ?? sub esp, 8
   53 ?? push ebx
   8b 5d 10 ?? mov ebx, dword ss:[ebp + 0x10<16>]
   56 ?? push esi
   33 f6 ?? xor esi, esi
   57 ?? push edi
   8b 7d 08 ?? mov edi, dword ss:[ebp + 8]
   2b df ?? sub ebx, edi
   89 5d 10 ?? mov dword ss:[ebp + 0x10<16>], ebx
   8d 56 31 ?? lea edx, ds:[esi + 0x31<49>]
  
  L2: 8b 45 14 ?? mov eax, dword ss:[ebp + 0x14<20>]
   89 55 fc ?? mov dword ss:[ebp + 0xfc<252,-4>], edx
   89 4d f8 ?? mov dword ss:[ebp + 0xf8<248,-8>], ecx
   83 f8 10 ?? cmp eax, 0x10<16>
   72 05 ?? jb basic block L4
  
  L3: b8 10 00 00 00 ?? mov eax, 0x00000010<16>
  
  L4: 3b f0 ?? cmp esi, eax
   73 2b ?? jae basic block L7
  
  L5: 8a 1c 3b ?? mov bl, byte ds:[ebx + edi]
   0f b6 c3 ?? movzx eax, bl
   50 ?? push eax
   68 28 56 40 00 ?? push 0x00405628<"%.2X ">
   52 ?? push edx
   51 ?? push ecx
   e8 7a 03 00 00 ?? call function 0x00403740
  
  L6: 8b 55 fc ?? mov edx, dword ss:[ebp + 0xfc<252,-4>]
   83 c4 10 ?? add esp, 0x10<16>
   8b 4d f8 ?? mov ecx, dword ss:[ebp + 0xf8<248,-8>]
   46 ?? inc esi
   88 1f ?? mov byte ds:[edi], bl
   83 ea 03 ?? sub edx, 3
   8b 5d 10 ?? mov ebx, dword ss:[ebp + 0x10<16>]
   83 c1 03 ?? add ecx, 3
   47 ?? inc edi
   eb be ?? jmp basic block L2
  
  L7: 8b 45 08 ?? mov eax, dword ss:[ebp + 8]
   5f ?? pop edi
   c6 04 06 00 ?? mov byte ds:[esi + eax], 0
   8b 45 0c ?? mov eax, dword ss:[ebp + 12]
   8d 04 70 ?? lea eax, ds:[eax + esi * 2]
   c6 04 06 00 ?? mov byte ds:[esi + eax], 0
   5e ?? pop esi
   5b ?? pop ebx
   8b e5 ?? mov esp, ebp
   5d ?? pop ebp
   c3 ?? ret
  
  