Disassembly: 
  L1: 8b ff ?? mov edi, edi
   55 ?? push ebp
   8b ec ?? mov ebp, esp
   83 ec 20 ?? sub esp, 0x20<32>
   8b 45 08 ?? mov eax, dword ss:[ebp + 8]
   53 ?? push ebx
   ff 75 1c ?? push dword ss:[ebp + 0x1c<28>]
   33 db ?? xor ebx, ebx
   8d 4d e0 ?? lea ecx, ss:[ebp + 0xe0<224,-32>]
   89 5d f8 ?? mov dword ss:[ebp + 0xf8<248,-8>], ebx
   89 45 f0 ?? mov dword ss:[ebp + 0xf0<240,-16>], eax
   e8 37 71 ff ff ?? call function 0x00409529
  
  L2: 8b 45 08 ?? mov eax, dword ss:[ebp + 8]
   3b c3 ?? cmp eax, ebx
   75 2b ?? jne basic block L8
  
  L3: e8 00 2b ff ff ?? call function 0x00404efe
  
  L4: 53 ?? push ebx
   53 ?? push ebx
   53 ?? push ebx
   53 ?? push ebx
   53 ?? push ebx
   c7 00 16 00 00 00 ?? mov dword ds:[eax], 0x00000016<22>
   e8 6d 2a ff ff ?? call function 0x00404e7b
  
  L5: 83 c4 14 ?? add esp, 0x14<20>
   38 5d ec ?? cmp byte ss:[ebp + 0xec<236,-20>], bl
   74 07 ?? je basic block L7
  
  L6: 8b 45 e8 ?? mov eax, dword ss:[ebp + 0xe8<232,-24>]
   83 60 70 fd ?? and dword ds:[eax + 0x70<112>], 0xfd<253,-3>
  
  L7: 33 c0 ?? xor eax, eax
   e9 50 01 00 00 ?? jmp basic block L51
  
  L8: 57 ?? push edi
   8b 7d 0c ?? mov edi, dword ss:[ebp + 12]
   3b fb ?? cmp edi, ebx
   75 2b ?? jne basic block L14
  
  L9: e8 cd 2a ff ff ?? call function 0x00404efe
  
  L10: 53 ?? push ebx
   53 ?? push ebx
   53 ?? push ebx
   53 ?? push ebx
   53 ?? push ebx
   c7 00 16 00 00 00 ?? mov dword ds:[eax], 0x00000016<22>
   e8 3a 2a ff ff ?? call function 0x00404e7b
  
  L11: 83 c4 14 ?? add esp, 0x14<20>
   38 5d ec ?? cmp byte ss:[ebp + 0xec<236,-20>], bl
   74 07 ?? je basic block L13
  
  L12: 8b 45 e8 ?? mov eax, dword ss:[ebp + 0xe8<232,-24>]
   83 60 70 fd ?? and dword ds:[eax + 0x70<112>], 0xfd<253,-3>
  
  L13: 33 c0 ?? xor eax, eax
   e9 1c 01 00 00 ?? jmp basic block L50
  
  L14: 56 ?? push esi
   8b 75 10 ?? mov esi, dword ss:[ebp + 0x10<16>]
   88 18 ?? mov byte ds:[eax], bl
   3b f3 ?? cmp esi, ebx
   0f 84 e7 00 00 00 ?? je basic block L43
  
  L15: 8b 45 18 ?? mov eax, dword ss:[ebp + 0x18<24>]
   3b c3 ?? cmp eax, ebx
   75 09 ?? jne basic block L17
  
  L16: 8b 45 e0 ?? mov eax, dword ss:[ebp + 0xe0<224,-32>]
   8b 80 d4 00 00 00 ?? mov eax, dword ds:[eax + 0x000000d4<212>]
  
  L17: 89 45 f4 ?? mov dword ss:[ebp + 0xf4<244,-12>], eax
   89 7d fc ?? mov dword ss:[ebp + 0xfc<252,-4>], edi
   3b fb ?? cmp edi, ebx
   0f 86 9f 00 00 00 ?? jbe basic block L37
  
  L18: 8a 06 ?? mov al, byte ds:[esi]
   3a c3 ?? cmp al, bl
   74 79 ?? je basic block L33
  
  L19: 3c 25 ?? cmp al, 0x25<37>
   74 41 ?? je basic block L26
  
  L20: 8d 4d e0 ?? lea ecx, ss:[ebp + 0xe0<224,-32>]
   0f be c0 ?? movsx eax, al
   51 ?? push ecx
   50 ?? push eax
   e8 35 51 00 00 ?? call function 0x004175cf
  
  L21: 59 ?? pop ecx
   59 ?? pop ecx
   85 c0 ?? test eax, eax
   74 1e ?? je basic block L25
  
  L22: 33 c9 ?? xor ecx, ecx
   41 ?? inc ecx
   39 4d fc ?? cmp dword ss:[ebp + 0xfc<252,-4>], ecx
   76 16 ?? jbe basic block L25
  
  L23: 8d 46 01 ?? lea eax, ds:[esi + 1]
   38 18 ?? cmp byte ds:[eax], bl
   74 70 ?? je basic block L36
  
  L24: 8a 0e ?? mov cl, byte ds:[esi]
   8b 55 08 ?? mov edx, dword ss:[ebp + 8]
   88 0a ?? mov byte ds:[edx], cl
   ff 45 08 ?? inc dword ss:[ebp + 8]
   ff 4d fc ?? dec dword ss:[ebp + 0xfc<252,-4>]
   8b f0 ?? mov esi, eax
  
  L25: 8a 06 ?? mov al, byte ds:[esi]
   8b 4d 08 ?? mov ecx, dword ss:[ebp + 8]
   88 01 ?? mov byte ds:[ecx], al
   ff 45 08 ?? inc dword ss:[ebp + 8]
   46 ?? inc esi
   ff 4d fc ?? dec dword ss:[ebp + 0xfc<252,-4>]
   eb 2f ?? jmp basic block L32
  
  L26: 8b 55 14 ?? mov edx, dword ss:[ebp + 0x14<20>]
   3b d3 ?? cmp edx, ebx
   74 77 ?? je basic block L43
  
  L27: 46 ?? inc esi
   33 c0 ?? xor eax, eax
   80 3e 23 ?? cmp byte ds:[esi], 0x23<35>
   75 02 ?? jne basic block L29
  
  L28: 40 ?? inc eax
   46 ?? inc esi
  
  L29: 50 ?? push eax
   ff 75 f4 ?? push dword ss:[ebp + 0xf4<244,-12>]
   8d 45 fc ?? lea eax, ss:[ebp + 0xfc<252,-4>]
   50 ?? push eax
   8d 45 e0 ?? lea eax, ss:[ebp + 0xe0<224,-32>]
   50 ?? push eax
   8a 06 ?? mov al, byte ds:[esi]
   8d 4d 08 ?? lea ecx, ss:[ebp + 8]
   e8 95 f6 ff ff ?? call function 0x00411b8a
  
  L30: 83 c4 10 ?? add esp, 0x10<16>
   85 c0 ?? test eax, eax
   74 42 ?? je basic block L41
  
  L31: 46 ?? inc esi
  
  L32: 39 5d fc ?? cmp dword ss:[ebp + 0xfc<252,-4>], ebx
   77 81 ?? ja basic block L18
  
  L33: 39 5d fc ?? cmp dword ss:[ebp + 0xfc<252,-4>], ebx
   76 1b ?? jbe basic block L37
  
  L34: 8b 45 08 ?? mov eax, dword ss:[ebp + 8]
   88 18 ?? mov byte ds:[eax], bl
   2b 7d fc ?? sub edi, dword ss:[ebp + 0xfc<252,-4>]
   8b c7 ?? mov eax, edi
   38 5d ec ?? cmp byte ss:[ebp + 0xec<236,-20>], bl
   74 5c ?? je basic block L49
  
  L35: 8b 4d e8 ?? mov ecx, dword ss:[ebp + 0xe8<232,-24>]
   83 61 70 fd ?? and dword ds:[ecx + 0x70<112>], 0xfd<253,-3>
   eb 53 ?? jmp basic block L49
  
  L36: 89 4d f8 ?? mov dword ss:[ebp + 0xf8<248,-8>], ecx
  
  L37: 8b 45 f0 ?? mov eax, dword ss:[ebp + 0xf0<240,-16>]
   88 18 ?? mov byte ds:[eax], bl
   39 5d f8 ?? cmp dword ss:[ebp + 0xf8<248,-8>], ebx
   75 20 ?? jne basic block L43
  
  L38: 39 5d fc ?? cmp dword ss:[ebp + 0xfc<252,-4>], ebx
   77 1b ?? ja basic block L43
  
  L39: e8 c8 29 ff ff ?? call function 0x00404efe
  
  L40: c7 00 22 00 00 00 ?? mov dword ds:[eax], 0x00000022<34>
   eb 26 ?? jmp basic block L46
  
  L41: 39 5d fc ?? cmp dword ss:[ebp + 0xfc<252,-4>], ebx
   76 df ?? jbe basic block L37
  
  L42: c7 45 f8 01 00 00 00 ?? mov dword ss:[ebp + 0xf8<248,-8>], 1
   eb d6 ?? jmp basic block L37
  
  L43: e8 ad 29 ff ff ?? call function 0x00404efe
  
  L44: 53 ?? push ebx
   53 ?? push ebx
   53 ?? push ebx
   53 ?? push ebx
   53 ?? push ebx
   c7 00 16 00 00 00 ?? mov dword ds:[eax], 0x00000016<22>
   e8 1a 29 ff ff ?? call function 0x00404e7b
  
  L45: 83 c4 14 ?? add esp, 0x14<20>
  
  L46: 38 5d ec ?? cmp byte ss:[ebp + 0xec<236,-20>], bl
   74 07 ?? je basic block L48
  
  L47: 8b 45 e8 ?? mov eax, dword ss:[ebp + 0xe8<232,-24>]
   83 60 70 fd ?? and dword ds:[eax + 0x70<112>], 0xfd<253,-3>
  
  L48: 33 c0 ?? xor eax, eax
  
  L49: 5e ?? pop esi
  
  L50: 5f ?? pop edi
  
  L51: 5b ?? pop ebx
   c9 ?? leave
   c3 ?? ret
  
  