Disassembly: 
  L1: 8b ff ?? mov edi, edi
   55 ?? push ebp
   8b ec ?? mov ebp, esp
   56 ?? push esi
   8b 75 08 ?? mov esi, dword ss:[ebp + 8]
   85 f6 ?? test esi, esi
   75 09 ?? jne basic block L4
  
  L2: 56 ?? push esi
   e8 35 00 00 00 ?? call function 0x004071f7
  
  L3: 59 ?? pop ecx
   eb 2f ?? jmp basic block L12
  
  L4: 56 ?? push esi
   e8 7c ff ff ff ?? call function 0x00407147
  
  L5: 59 ?? pop ecx
   85 c0 ?? test eax, eax
   74 05 ?? je basic block L7
  
  L6: 83 c8 ff ?? or eax, 0xff<255,-1>
   eb 1f ?? jmp basic block L12
  
  L7: f7 46 0c 00 40 00 00 ?? test dword ds:[esi + 12], 0x00004000<16384>
   74 14 ?? je basic block L11
  
  L8: 56 ?? push esi
   e8 dc 7e 00 00 ?? call function 0x0040f0c0
  
  L9: 50 ?? push eax
   e8 c4 88 00 00 ?? call function 0x0040faae
  
  L10: 59 ?? pop ecx
   f7 d8 ?? neg eax
   59 ?? pop ecx
   1b c0 ?? sbb eax, eax
   eb 02 ?? jmp basic block L12
  
  L11: 33 c0 ?? xor eax, eax
  
  L12: 5e ?? pop esi
   5d ?? pop ebp
   c3 ?? ret
  
  