Disassembly: 
  L1: 8b ff ?? mov edi, edi
   55 ?? push ebp
   8b ec ?? mov ebp, esp
   81 ec 94 00 00 00 ?? sub esp, 0x00000094<148>
   a1 70 80 42 00 ?? mov eax, dword ds:[0x00428070]
   33 c5 ?? xor eax, ebp
   89 45 fc ?? mov dword ss:[ebp + 0xfc<252,-4>], eax
   8b 45 08 ?? mov eax, dword ss:[ebp + 8]
   53 ?? push ebx
   56 ?? push esi
   8b 75 18 ?? mov esi, dword ss:[ebp + 0x18<24>]
   33 db ?? xor ebx, ebx
   83 7d 0c 01 ?? cmp dword ss:[ebp + 12], 1
   57 ?? push edi
   89 85 74 ff ff ff ?? mov dword ss:[ebp + 0xffffff74<4294967156,-140>], eax
   89 b5 6c ff ff ff ?? mov dword ss:[ebp + 0xffffff6c<4294967148,-148>], esi
   0f 85 fe 00 00 00 ?? jne basic block L28
  
  L2: 53 ?? push ebx
   68 80 00 00 00 ?? push 0x00000080<128>
   8d bd 7c ff ff ff ?? lea edi, ss:[ebp + 0xffffff7c<4294967164,-132>]
   8b cf ?? mov ecx, edi
   51 ?? push ecx
   ff 75 14 ?? push dword ss:[ebp + 0x14<20>]
   89 9d 78 ff ff ff ?? mov dword ss:[ebp + 0xffffff78<4294967160,-136>], ebx
   ff 75 10 ?? push dword ss:[ebp + 0x10<16>]
   50 ?? push eax
   e8 06 af 00 00 ?? call function 0x0040f367
  
  L3: 8b f0 ?? mov esi, eax
   83 c4 18 ?? add esp, 0x18<24>
   3b f3 ?? cmp esi, ebx
   75 6a ?? jne basic block L12
  
  L4: ff 15 bc a1 42 00 ?? call dword ds:[0x0042a1bc]
  
  L5: 83 f8 7a ?? cmp eax, 0x7a<122>
   0f 85 80 00 00 00 ?? jne basic block L17
  
  L6: 53 ?? push ebx
   53 ?? push ebx
   53 ?? push ebx
   ff 75 14 ?? push dword ss:[ebp + 0x14<20>]
   ff 75 10 ?? push dword ss:[ebp + 0x10<16>]
   ff b5 74 ff ff ff ?? push dword ss:[ebp + 0xffffff74<4294967156,-140>]
   e8 da ae 00 00 ?? call function 0x0040f367
  
  L7: 83 c4 18 ?? add esp, 0x18<24>
   89 85 70 ff ff ff ?? mov dword ss:[ebp + 0xffffff70<4294967152,-144>], eax
   3b c3 ?? cmp eax, ebx
   74 5f ?? je basic block L17
  
  L8: 33 f6 ?? xor esi, esi
   46 ?? inc esi
   56 ?? push esi
   50 ?? push eax
   e8 f7 25 00 00 ?? call function 0x00406a9b
  
  L9: 8b f8 ?? mov edi, eax
   59 ?? pop ecx
   59 ?? pop ecx
   3b fb ?? cmp edi, ebx
   74 4d ?? je basic block L17
  
  L10: 53 ?? push ebx
   ff b5 70 ff ff ff ?? push dword ss:[ebp + 0xffffff70<4294967152,-144>]
   89 b5 78 ff ff ff ?? mov dword ss:[ebp + 0xffffff78<4294967160,-136>], esi
   57 ?? push edi
   ff 75 14 ?? push dword ss:[ebp + 0x14<20>]
   ff 75 10 ?? push dword ss:[ebp + 0x10<16>]
   ff b5 74 ff ff ff ?? push dword ss:[ebp + 0xffffff74<4294967156,-140>]
   e8 9c ae 00 00 ?? call function 0x0040f367
  
  L11: 8b f0 ?? mov esi, eax
   83 c4 18 ?? add esp, 0x18<24>
   3b f3 ?? cmp esi, ebx
   74 1e ?? je basic block L15
  
  L12: 6a 01 ?? push 1
   56 ?? push esi
   e8 bf 25 00 00 ?? call function 0x00406a9b
  
  L13: 59 ?? pop ecx
   59 ?? pop ecx
   8b 8d 6c ff ff ff ?? mov ecx, dword ss:[ebp + 0xffffff6c<4294967148,-148>]
   89 01 ?? mov dword ds:[ecx], eax
   3b c3 ?? cmp eax, ebx
   75 21 ?? jne basic block L20
  
  L14: 39 9d 78 ff ff ff ?? cmp dword ss:[ebp + 0xffffff78<4294967160,-136>], ebx
   74 07 ?? je basic block L17
  
  L15: 57 ?? push edi
   e8 7f d6 ff ff ?? call function 0x00401b77
  
  L16: 59 ?? pop ecx
  
  L17: 83 c8 ff ?? or eax, 0xff<255,-1>
  
  L18: 8b 4d fc ?? mov ecx, dword ss:[ebp + 0xfc<252,-4>]
   5f ?? pop edi
   5e ?? pop esi
   33 cd ?? xor ecx, ebp
   5b ?? pop ebx
   e8 25 d3 ff ff ?? call function 0x0040182e
  
  L19: c9 ?? leave
   c3 ?? ret
  
  L20: 8d 4e ff ?? lea ecx, ds:[esi + 0xff<255,-1>]
   51 ?? push ecx
   57 ?? push edi
   56 ?? push esi
   50 ?? push eax
   e8 3c a5 00 00 ?? call function 0x0040ea53
  
  L21: 83 c4 10 ?? add esp, 0x10<16>
   85 c0 ?? test eax, eax
   74 0d ?? je basic block L24
  
  L22: 53 ?? push ebx
   53 ?? push ebx
   53 ?? push ebx
   53 ?? push ebx
   53 ?? push ebx
   e8 5e 47 00 00 ?? call function 0x00408c86
  
  L23: 83 c4 14 ?? add esp, 0x14<20>
  
  L24: 39 9d 78 ff ff ff ?? cmp dword ss:[ebp + 0xffffff78<4294967160,-136>], ebx
   74 07 ?? je basic block L27
  
  L25: 57 ?? push edi
   e8 3e d6 ff ff ?? call function 0x00401b77
  
  L26: 59 ?? pop ecx
  
  L27: 33 c0 ?? xor eax, eax
   eb be ?? jmp basic block L18
  
  L28: 39 5d 0c ?? cmp dword ss:[ebp + 12], ebx
   75 b6 ?? jne basic block L17
  
  L29: 53 ?? push ebx
   6a 04 ?? push 4
   bf bc 97 42 00 ?? mov edi, 0x004297bc
   57 ?? push edi
   ff 75 14 ?? push dword ss:[ebp + 0x14<20>]
   ff 75 10 ?? push dword ss:[ebp + 0x10<16>]
   50 ?? push eax
   e8 66 ac 00 00 ?? call function 0x0040f1be
  
  L30: 83 c4 18 ?? add esp, 0x18<24>
   85 c0 ?? test eax, eax
   74 9a ?? je basic block L17
  
  L31: 88 1e ?? mov byte ds:[esi], bl
  
  L32: 8a 1f ?? mov bl, byte ds:[edi]
   0f b6 c3 ?? movzx eax, bl
   50 ?? push eax
   e8 d1 a7 00 00 ?? call function 0x0040ed3d
  
  L33: 59 ?? pop ecx
   85 c0 ?? test eax, eax
   74 c9 ?? je basic block L27
  
  L34: 8a 06 ?? mov al, byte ds:[esi]
   b1 0a ?? mov cl, 10
   f6 e9 ?? imul cl
   02 c3 ?? add al, bl
   2c 30 ?? sub al, 0x30<48>
   47 ?? inc edi
   47 ?? inc edi
   81 ff c4 97 42 00 ?? cmp edi, 0x004297c4
   88 06 ?? mov byte ds:[esi], al
   7c da ?? jl basic block L32
  
  L35: eb b1 ?? jmp basic block L27
  
  