Disassembly: 
  L1: 6a 14 ?? push 0x14<20>
   b8 3f 9a 42 00 ?? mov eax, 0x00429a3f
   e8 36 20 00 00 ?? call function 0x00406a9a
  
  L2: 6a 00 ?? push 0
   8d 4d ec ?? lea ecx, ss:[ebp + 0xec<236,-20>]
   e8 fd 08 00 00 ?? call function 0x0040536b
  
  L3: 8b 35 64 59 43 00 ?? mov esi, dword ds:[0x00435964]
   83 65 fc 00 ?? and dword ss:[ebp + 0xfc<252,-4>], 0
   b9 7c 5a 43 00 ?? mov ecx, 0x00435a7c
   89 75 f0 ?? mov dword ss:[ebp + 0xf0<240,-16>], esi
   e8 40 ea ff ff ?? call function 0x004034c5
  
  L4: 8b 4d 08 ?? mov ecx, dword ss:[ebp + 8]
   50 ?? push eax
   e8 4c eb ff ff ?? call function 0x004035da
  
  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 b1 fb ff ff ?? call function 0x00404659
  
  L9: 59 ?? pop ecx
   59 ?? pop ecx
   83 f8 ff ?? cmp eax, 0xff<255,-1>
   75 1b ?? jne basic block L12
  
  L10: 68 8c e1 42 00 ?? push 0x0042e18c<"bad cast">
   8d 4d e0 ?? lea ecx, ss:[ebp + 0xe0<224,-32>]
   e8 65 18 00 00 ?? call function 0x00406321
  
  L11: 68 44 29 43 00 ?? push 0x00432944
   8d 45 e0 ?? lea eax, ss:[ebp + 0xe0<224,-32>]
   50 ?? push eax
   e8 af 16 00 00 ?? call function 0x00406179
  
  L12: 8b 7d f0 ?? mov edi, dword ss:[ebp + 0xf0<240,-16>]
   8b cf ?? mov ecx, edi
   89 3d 64 59 43 00 ?? mov dword ds:[0x00435964], edi
   e8 22 ea ff ff ?? call function 0x004034fc
  
  L13: 57 ?? push edi
   e8 0c 0b 00 00 ?? call function 0x004055ec
  
  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 a6 08 00 00 ?? call function 0x00405393
  
  L16: 8b c7 ?? mov eax, edi
   e8 7e 20 00 00 ?? call function 0x00406b72
  
  L17: c3 ?? ret
  
  