
L1: 57 ?? push edi
 8b f8 ?? mov edi, eax
 8b 46 10 ?? mov eax, dword ds:[esi + 0x10<16>]
 3b c1 ?? cmp eax, ecx
 73 0b ?? jae basic block L3

L2: 68 78 32 40 00 ?? push 0x00403278<"invalid string position">
 ff 15 8c 30 40 00 ?? call dword ds:[0x0040308c<"h8@">]

L3: 2b c1 ?? sub eax, ecx
 3b c7 ?? cmp eax, edi
 73 02 ?? jae basic block L5

L4: 8b f8 ?? mov edi, eax

L5: 85 ff ?? test edi, edi
 74 4d ?? je basic block L16

L6: 8b 56 14 ?? mov edx, dword ds:[esi + 0x14<20>]
 53 ?? push ebx
 83 fa 10 ?? cmp edx, 0x10<16>
 72 04 ?? jb basic block L8

L7: 8b 1e ?? mov ebx, dword ds:[esi]
 eb 02 ?? jmp basic block L9

L8: 8b de ?? mov ebx, esi

L9: 83 fa 10 ?? cmp edx, 0x10<16>
 72 04 ?? jb basic block L11

L10: 8b 16 ?? mov edx, dword ds:[esi]
 eb 02 ?? jmp basic block L12

L11: 8b d6 ?? mov edx, esi

L12: 2b c7 ?? sub eax, edi
 03 d9 ?? add ebx, ecx
 50 ?? push eax
 03 df ?? add ebx, edi
 03 d1 ?? add edx, ecx
 53 ?? push ebx
 52 ?? push edx
 ff 15 fc 30 40 00 ?? call dword ds:[0x004030fc]

L13: 8b 46 10 ?? mov eax, dword ds:[esi + 0x10<16>]
 83 c4 0c ?? add esp, 12
 2b c7 ?? sub eax, edi
 83 7e 14 10 ?? cmp dword ds:[esi + 0x14<20>], 0x10<16>
 89 46 10 ?? mov dword ds:[esi + 0x10<16>], eax
 5b ?? pop ebx
 72 0a ?? jb basic block L15

L14: 8b 0e ?? mov ecx, dword ds:[esi]
 c6 04 01 00 ?? mov byte ds:[ecx + eax], 0
 8b c6 ?? mov eax, esi
 5f ?? pop edi
 c3 ?? ret

L15: 8b ce ?? mov ecx, esi
 c6 04 01 00 ?? mov byte ds:[ecx + eax], 0

L16: 8b c6 ?? mov eax, esi
 5f ?? pop edi
 c3 ?? ret

