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 14 ?? push dword ss:[ebp + 0x14<20>]
   8d 4d f0 ?? lea ecx, ss:[ebp + 0xf0<240,-16>]
   e8 27 fd fe ff ?? call function 0x004085d9
  
  L2: 8b 55 10 ?? mov edx, dword ss:[ebp + 0x10<16>]
   33 db ?? xor ebx, ebx
   3b d3 ?? cmp edx, ebx
   75 13 ?? jne basic block L6
  
  L3: 38 5d fc ?? cmp byte ss:[ebp + 0xfc<252,-4>], bl
   74 07 ?? je basic block L5
  
  L4: 8b 45 f8 ?? mov eax, dword ss:[ebp + 0xf8<248,-8>]
   83 60 70 fd ?? and dword ds:[eax + 0x70<112>], 0xfd<253,-3>
  
  L5: 33 c0 ?? xor eax, eax
   e9 c7 00 00 00 ?? jmp basic block L31
  
  L6: 39 5d 08 ?? cmp dword ss:[ebp + 8], ebx
   75 2e ?? jne basic block L12
  
  L7: e8 fc cc fe ff ?? call function 0x004055d4
  
  L8: 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 85 04 ff ff ?? call function 0x00408d6d
  
  L9: 83 c4 14 ?? add esp, 0x14<20>
   38 5d fc ?? cmp byte ss:[ebp + 0xfc<252,-4>], bl
   74 07 ?? je basic block L11
  
  L10: 8b 45 f8 ?? mov eax, dword ss:[ebp + 0xf8<248,-8>]
   83 60 70 fd ?? and dword ds:[eax + 0x70<112>], 0xfd<253,-3>
  
  L11: b8 ff ff ff 7f ?? mov eax, 0x7fffffff
   e9 94 00 00 00 ?? jmp basic block L31
  
  L12: 39 5d 0c ?? cmp dword ss:[ebp + 12], ebx
   74 cd ?? je basic block L7
  
  L13: 56 ?? push esi
   be ff ff ff 7f ?? mov esi, 0x7fffffff
   3b d6 ?? cmp edx, esi
   76 1a ?? jbe basic block L17
  
  L14: e8 bf cc fe ff ?? call function 0x004055d4
  
  L15: 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 48 04 ff ff ?? call function 0x00408d6d
  
  L16: 83 c4 14 ?? add esp, 0x14<20>
   eb 4b ?? jmp basic block L24
  
  L17: 8b 45 f0 ?? mov eax, dword ss:[ebp + 0xf0<240,-16>]
   8b 48 10 ?? mov ecx, dword ds:[eax + 0x10<16>]
   3b cb ?? cmp ecx, ebx
   75 15 ?? jne basic block L20
  
  L18: 8d 45 f0 ?? lea eax, ss:[ebp + 0xf0<240,-16>]
   50 ?? push eax
   52 ?? push edx
   ff 75 0c ?? push dword ss:[ebp + 12]
   ff 75 08 ?? push dword ss:[ebp + 8]
   e8 73 e6 ff ff ?? call function 0x00416fb7
  
  L19: 83 c4 10 ?? add esp, 0x10<16>
   eb 3f ?? jmp basic block L28
  
  L20: ff 70 08 ?? push dword ds:[eax + 8]
   8d 45 f0 ?? lea eax, ss:[ebp + 0xf0<240,-16>]
   52 ?? push edx
   ff 75 0c ?? push dword ss:[ebp + 12]
   52 ?? push edx
   ff 75 08 ?? push dword ss:[ebp + 8]
   68 01 10 00 00 ?? push 0x00001001<4097>
   51 ?? push ecx
   50 ?? push eax
   e8 f9 fe ff ff ?? call function 0x0041885c
  
  L21: 83 c4 20 ?? add esp, 0x20<32>
   3b c3 ?? cmp eax, ebx
   75 1b ?? jne basic block L27
  
  L22: e8 65 cc fe ff ?? call function 0x004055d4
  
  L23: c7 00 16 00 00 00 ?? mov dword ds:[eax], 0x00000016<22>
  
  L24: 38 5d fc ?? cmp byte ss:[ebp + 0xfc<252,-4>], bl
   74 07 ?? je basic block L26
  
  L25: 8b 45 f8 ?? mov eax, dword ss:[ebp + 0xf8<248,-8>]
   83 60 70 fd ?? and dword ds:[eax + 0x70<112>], 0xfd<253,-3>
  
  L26: 8b c6 ?? mov eax, esi
   eb 0f ?? jmp basic block L30
  
  L27: 83 c0 fe ?? add eax, 0xfe<254,-2>
  
  L28: 38 5d fc ?? cmp byte ss:[ebp + 0xfc<252,-4>], bl
   74 07 ?? je basic block L30
  
  L29: 8b 4d f8 ?? mov ecx, dword ss:[ebp + 0xf8<248,-8>]
   83 61 70 fd ?? and dword ds:[ecx + 0x70<112>], 0xfd<253,-3>
  
  L30: 5e ?? pop esi
  
  L31: 5b ?? pop ebx
   c9 ?? leave
   c3 ?? ret
  
  