
L1: 55 ?? push ebp
 8b ec ?? mov ebp, esp
 56 ?? push esi
 8b f1 ?? mov esi, ecx
 8b 4d 08 ?? mov ecx, dword ss:[ebp + 8]
 57 ?? push edi
 8b 7e 10 ?? mov edi, dword ds:[esi + 0x10<16>]
 3b f9 ?? cmp edi, ecx
 73 0b ?? jae basic block L3

L2: 68 78 8c 40 00 ?? push 0x00408c78<"invalid string position">
 ff 15 7c b0 40 00 ?? call dword ds:[0x0040b07c]

L3: 8b 55 0c ?? mov edx, dword ss:[ebp + 12]
 8b c7 ?? mov eax, edi
 2b c1 ?? sub eax, ecx
 3b c2 ?? cmp eax, edx
 77 23 ?? ja basic block L7

L4: 83 7e 14 10 ?? cmp dword ds:[esi + 0x14<20>], 0x10<16>
 89 4e 10 ?? mov dword ds:[esi + 0x10<16>], ecx
 72 0e ?? jb basic block L6

L5: 8b 06 ?? mov eax, dword ds:[esi]
 5f ?? pop edi
 c6 04 08 00 ?? mov byte ds:[eax + ecx], 0
 8b c6 ?? mov eax, esi
 5e ?? pop esi
 5d ?? pop ebp
 c2 08 00 ?? ret 8

L6: 8b c6 ?? mov eax, esi
 5f ?? pop edi
 5e ?? pop esi
 c6 04 08 00 ?? mov byte ds:[eax + ecx], 0
 5d ?? pop ebp
 c2 08 00 ?? ret 8

L7: 85 d2 ?? test edx, edx
 74 45 ?? je basic block L17

L8: 83 7e 14 10 ?? cmp dword ds:[esi + 0x14<20>], 0x10<16>
 72 04 ?? jb basic block L10

L9: 8b 06 ?? mov eax, dword ds:[esi]
 eb 02 ?? jmp basic block L11

L10: 8b c6 ?? mov eax, esi

L11: 2b fa ?? sub edi, edx
 53 ?? push ebx
 8d 1c 08 ?? lea ebx, ds:[eax + ecx]
 8b c7 ?? mov eax, edi
 2b c1 ?? sub eax, ecx
 74 0f ?? je basic block L14

L12: 50 ?? push eax
 8d 04 13 ?? lea eax, ds:[ebx + edx]
 50 ?? push eax
 53 ?? push ebx
 ff 15 40 b1 40 00 ?? call dword ds:[0x0040b140]

L13: 83 c4 0c ?? add esp, 12

L14: 83 7e 14 10 ?? cmp dword ds:[esi + 0x14<20>], 0x10<16>
 89 7e 10 ?? mov dword ds:[esi + 0x10<16>], edi
 5b ?? pop ebx
 72 0e ?? jb basic block L16

L15: 8b 06 ?? mov eax, dword ds:[esi]
 c6 04 38 00 ?? mov byte ds:[eax + edi], 0
 8b c6 ?? mov eax, esi
 5f ?? pop edi
 5e ?? pop esi
 5d ?? pop ebp
 c2 08 00 ?? ret 8

L16: 8b c6 ?? mov eax, esi
 c6 04 38 00 ?? mov byte ds:[eax + edi], 0

L17: 5f ?? pop edi
 8b c6 ?? mov eax, esi
 5e ?? pop esi
 5d ?? pop ebp
 c2 08 00 ?? ret 8

