Disassembly: 
  L1: 6a 14 ?? push 0x14<20>
   b8 51 87 43 00 ?? mov eax, 0x00438751
   e8 c4 24 00 00 ?? call function 0x0040a94c
  
  L2: 6a 00 ?? push 0
   8d 4d ec ?? lea ecx, ss:[ebp + 0xec<236,-20>]
   e8 12 02 00 00 ?? call function 0x004086a4
  
  L3: 8b 35 98 5d 44 00 ?? mov esi, dword ds:[0x00445d98]
   83 65 fc 00 ?? and dword ss:[ebp + 0xfc<252,-4>], 0
   b9 30 5e 44 00 ?? mov ecx, 0x00445e30
   89 75 f0 ?? mov dword ss:[ebp + 0xf0<240,-16>], esi
   e8 3c 8d ff ff ?? call function 0x004011e5
  
  L4: 8b 4d 08 ?? mov ecx, dword ss:[ebp + 8]
   50 ?? push eax
   e8 ed 8c ff ff ?? call function 0x0040119f
  
  L5: 8b f8 ?? mov edi, eax
   85 ff ?? test edi, edi
   75 4d ?? jne basic block L15
  
  L6: 85 f6 ?? test esi, esi
   74 04 ?? je basic block L8
  
  L7: 8b fe ?? mov edi, esi
   eb 45 ?? jmp basic block L15
  
  L8: ff 75 08 ?? push dword ss:[ebp + 8]
   8d 45 f0 ?? lea eax, ss:[ebp + 0xf0<240,-16>]
   50 ?? push eax
   e8 1b fe ff ff ?? call function 0x004082e7
  
  L9: 59 ?? pop ecx
   59 ?? pop ecx
   83 f8 ff ?? cmp eax, 0xff<255,-1>
   75 1b ?? jne basic block L12
  
  L10: 68 e4 d0 43 00 ?? push 0x0043d0e4<"bad cast">
   8d 4d e0 ?? lea ecx, ss:[ebp + 0xe0<224,-32>]
   e8 8f 19 00 00 ?? call function 0x00409e6f
  
  L11: 68 7c 1a 44 00 ?? push 0x00441a7c
   8d 45 e0 ?? lea eax, ss:[ebp + 0xe0<224,-32>]
   50 ?? push eax
   e8 fd 16 00 00 ?? call function 0x00409beb
  
  L12: 8b 7d f0 ?? mov edi, dword ss:[ebp + 0xf0<240,-16>]
   8b cf ?? mov ecx, edi
   89 3d 98 5d 44 00 ?? mov dword ds:[0x00445d98], edi
   e8 1b 8b ff ff ?? call function 0x00401019
  
  L13: 57 ?? push edi
   e8 6d 07 00 00 ?? call function 0x00408c71
  
  L14: 59 ?? pop ecx
  
  L15: 83 4d fc ff ?? or dword ss:[ebp + 0xfc<252,-4>], 0xff<255,-1>
   8d 4d ec ?? lea ecx, ss:[ebp + 0xec<236,-20>]
   e8 bb 01 00 00 ?? call function 0x004086cc
  
  L16: 8b c7 ?? mov eax, edi
   e8 0c 25 00 00 ?? call function 0x0040aa24
  
  L17: c3 ?? ret
  
  