Disassembly: 
  L1: 55 ?? push ebp
   8b ec ?? mov ebp, esp
   6a ff ?? push 0xff<255,-1>
   68 78 84 43 00 ?? push 0x00438478
   64 a1 00 00 00 00 ?? mov eax, dword fs:[0]
   50 ?? push eax
   83 ec 24 ?? sub esp, 0x24<36>
   a1 44 44 44 00 ?? mov eax, dword ds:[0x00444444]
   33 c5 ?? xor eax, ebp
   50 ?? push eax
   8d 45 f4 ?? lea eax, ss:[ebp + 0xf4<244,-12>]
   64 a3 00 00 00 00 ?? mov dword fs:[0], eax
   6a 00 ?? push 0
   8d 4d e8 ?? lea ecx, ss:[ebp + 0xe8<232,-24>]
   e8 85 21 00 00 ?? call function 0x004086a4
  
  L2: c7 45 fc 00 00 00 00 ?? mov dword ss:[ebp + 0xfc<252,-4>], 0
   a1 84 5d 44 00 ?? mov eax, dword ds:[0x00445d84]
   89 45 e4 ?? mov dword ss:[ebp + 0xe4<228,-28>], eax
   b9 8c 5d 44 00 ?? mov ecx, 0x00445d8c
   e8 ad ac ff ff ?? call function 0x004011e5
  
  L3: 89 45 ec ?? mov dword ss:[ebp + 0xec<236,-20>], eax
   8b 4d ec ?? mov ecx, dword ss:[ebp + 0xec<236,-20>]
   51 ?? push ecx
   8b 4d 08 ?? mov ecx, dword ss:[ebp + 8]
   e8 58 ac ff ff ?? call function 0x0040119f
  
  L4: 89 45 f0 ?? mov dword ss:[ebp + 0xf0<240,-16>], eax
   83 7d f0 00 ?? cmp dword ss:[ebp + 0xf0<240,-16>], 0
   74 02 ?? je basic block L6
  
  L5: eb 65 ?? jmp basic block L15
  
  L6: 83 7d e4 00 ?? cmp dword ss:[ebp + 0xe4<228,-28>], 0
   74 08 ?? je basic block L8
  
  L7: 8b 55 e4 ?? mov edx, dword ss:[ebp + 0xe4<228,-28>]
   89 55 f0 ?? mov dword ss:[ebp + 0xf0<240,-16>], edx
   eb 57 ?? jmp basic block L15
  
  L8: 8b 45 08 ?? mov eax, dword ss:[ebp + 8]
   50 ?? push eax
   8d 4d e4 ?? lea ecx, ss:[ebp + 0xe4<228,-28>]
   51 ?? push ecx
   e8 c8 ac ff ff ?? call function 0x00401235
  
  L9: 83 c4 08 ?? add esp, 8
   83 f8 ff ?? cmp eax, 0xff<255,-1>
   75 1d ?? jne basic block L13
  
  L10: 68 e4 d0 43 00 ?? push 0x0043d0e4<"bad cast">
   8d 4d d4 ?? lea ecx, ss:[ebp + 0xd4<212,-44>]
   e8 ed 38 00 00 ?? call function 0x00409e6f
  
  L11: 68 7c 1a 44 00 ?? push 0x00441a7c
   8d 55 d4 ?? lea edx, ss:[ebp + 0xd4<212,-44>]
   52 ?? push edx
   e8 5b 36 00 00 ?? call function 0x00409beb
  
  L12: eb 25 ?? jmp basic block L15
  
  L13: 8b 45 e4 ?? mov eax, dword ss:[ebp + 0xe4<228,-28>]
   89 45 f0 ?? mov dword ss:[ebp + 0xf0<240,-16>], eax
   8b 4d e4 ?? mov ecx, dword ss:[ebp + 0xe4<228,-28>]
   89 0d 84 5d 44 00 ?? mov dword ds:[0x00445d84], ecx
   8b 55 e4 ?? mov edx, dword ss:[ebp + 0xe4<228,-28>]
   89 55 e0 ?? mov dword ss:[ebp + 0xe0<224,-32>], edx
   8b 4d e0 ?? mov ecx, dword ss:[ebp + 0xe0<224,-32>]
   e8 6a aa ff ff ?? call function 0x00401019
  
  L14: 8b 4d e0 ?? mov ecx, dword ss:[ebp + 0xe0<224,-32>]
   e8 39 ab ff ff ?? call function 0x004010f0
  
  L15: 8b 45 f0 ?? mov eax, dword ss:[ebp + 0xf0<240,-16>]
   89 45 d0 ?? mov dword ss:[ebp + 0xd0<208,-48>], eax
   c7 45 fc ff ff ff ff ?? mov dword ss:[ebp + 0xfc<252,-4>], 0xffffffff<4294967295,-1>
   8d 4d e8 ?? lea ecx, ss:[ebp + 0xe8<232,-24>]
   e8 00 21 00 00 ?? call function 0x004086cc
  
  L16: 8b 45 d0 ?? mov eax, dword ss:[ebp + 0xd0<208,-48>]
   8b 4d f4 ?? mov ecx, dword ss:[ebp + 0xf4<244,-12>]
   64 89 0d 00 00 00 00 ?? mov dword fs:[0], ecx
   59 ?? pop ecx
   8b e5 ?? mov esp, ebp
   5d ?? pop ebp
   c3 ?? ret
  
  