Disassembly: 
  L1: 8b ff ?? mov edi, edi
   55 ?? push ebp
   8b ec ?? mov ebp, esp
   83 ec 10 ?? sub esp, 0x10<16>
   53 ?? push ebx
   ff 75 10 ?? push dword ss:[ebp + 0x10<16>]
   8d 4d f0 ?? lea ecx, ss:[ebp + 0xf0<240,-16>]
   e8 98 30 ff ff ?? call function 0x0040a259
  
  L2: 8b 45 08 ?? mov eax, dword ss:[ebp + 8]
   33 db ?? xor ebx, ebx
   3b c3 ?? cmp eax, ebx
   75 28 ?? jne basic block L8
  
  L3: e8 1b 1d ff ff ?? call function 0x00408eea
  
  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 49 c2 fe ff ?? call function 0x00403428
  
  L5: 83 c4 14 ?? add esp, 0x14<20>
   38 5d fc ?? cmp byte ss:[ebp + 0xfc<252,-4>], bl
   74 07 ?? je basic block L7
  
  L6: 8b 45 f8 ?? mov eax, dword ss:[ebp + 0xf8<248,-8>]
   83 60 70 fd ?? and dword ds:[eax + 0x70<112>], 0xfd<253,-3>
  
  L7: 33 c0 ?? xor eax, eax
   eb 74 ?? jmp basic block L25
  
  L8: 56 ?? push esi
   8b 75 f4 ?? mov esi, dword ss:[ebp + 0xf4<244,-12>]
   39 5e 08 ?? cmp dword ds:[esi + 8], ebx
   75 3a ?? jne basic block L17
  
  L9: ff 75 0c ?? push dword ss:[ebp + 12]
   50 ?? push eax
   e8 8c 00 00 00 ?? call function 0x00417290
  
  L10: 59 ?? pop ecx
   59 ?? pop ecx
   eb 41 ?? jmp basic block L19
  
  L11: 0f b6 d1 ?? movzx edx, cl
   f6 44 32 1d 04 ?? test byte ds:[edx + esi + 0x1d<29>], 4
   74 1a ?? je basic block L15
  
  L12: 40 ?? inc eax
   8a 10 ?? mov dl, byte ds:[eax]
   3a d3 ?? cmp dl, bl
   74 3e ?? je basic block L21
  
  L13: 0f b7 c9 ?? movzx ecx, cx
   0f b6 d2 ?? movzx edx, dl
   c1 e1 08 ?? shl ecx, 8
   0b ca ?? or ecx, edx
   39 4d 0c ?? cmp dword ss:[ebp + 12], ecx
   75 0b ?? jne basic block L16
  
  L14: 48 ?? dec eax
   eb 1d ?? jmp basic block L19
  
  L15: 0f b7 d1 ?? movzx edx, cx
   39 55 0c ?? cmp dword ss:[ebp + 12], edx
   74 0d ?? je basic block L18
  
  L16: 40 ?? inc eax
  
  L17: 66 0f b6 08 ?? movzx cx, byte ds:[eax]
   0f b7 c9 ?? movzx ecx, cx
   66 3b cb ?? cmp cx, bx
   75 c7 ?? jne basic block L11
  
  L18: 0f b7 c9 ?? movzx ecx, cx
   39 4d 0c ?? cmp dword ss:[ebp + 12], ecx
   75 0e ?? jne basic block L21
  
  L19: 38 5d fc ?? cmp byte ss:[ebp + 0xfc<252,-4>], bl
   74 17 ?? je basic block L24
  
  L20: 8b 4d f8 ?? mov ecx, dword ss:[ebp + 0xf8<248,-8>]
   83 61 70 fd ?? and dword ds:[ecx + 0x70<112>], 0xfd<253,-3>
   eb 0e ?? jmp basic block L24
  
  L21: 38 5d fc ?? cmp byte ss:[ebp + 0xfc<252,-4>], bl
   74 07 ?? je basic block L23
  
  L22: 8b 45 f8 ?? mov eax, dword ss:[ebp + 0xf8<248,-8>]
   83 60 70 fd ?? and dword ds:[eax + 0x70<112>], 0xfd<253,-3>
  
  L23: 33 c0 ?? xor eax, eax
  
  L24: 5e ?? pop esi
  
  L25: 5b ?? pop ebx
   c9 ?? leave
   c3 ?? ret
  
  