Disassembly: 
  L1: 8b ff ?? mov edi, edi
   55 ?? push ebp
   8b ec ?? mov ebp, esp
   57 ?? push edi
   8b f9 ?? mov edi, ecx
   80 7f 04 01 ?? cmp byte ds:[edi + 4], 1
   7f 52 ?? jg basic block L17
  
  L2: 56 ?? push esi
   8b 75 08 ?? mov esi, dword ss:[ebp + 8]
   85 f6 ?? test esi, esi
   74 49 ?? je basic block L16
  
  L3: 83 3f 00 ?? cmp dword ds:[edi], 0
   75 08 ?? jne basic block L6
  
  L4: 56 ?? push esi
   e8 87 fa ff ff ?? call function 0x0040ba7d
  
  L5: eb 3c ?? jmp basic block L16
  
  L6: 8a 46 04 ?? mov al, byte ds:[esi + 4]
   84 c0 ?? test al, al
   74 0f ?? je basic block L10
  
  L7: 3c 01 ?? cmp al, 1
   74 0b ?? je basic block L10
  
  L8: 0f be c0 ?? movsx eax, al
   50 ?? push eax
   e8 76 fc ff ff ?? call function 0x0040bc82
  
  L9: eb 26 ?? jmp basic block L16
  
  L10: 6a 00 ?? push 0
   6a 08 ?? push 8
   b9 c0 9a 42 00 ?? mov ecx, 0x00429ac0
   e8 e0 f3 ff ff ?? call function 0x0040b3fc
  
  L11: 85 c0 ?? test eax, eax
   74 0a ?? je basic block L14
  
  L12: 56 ?? push esi
   8b c8 ?? mov ecx, eax
   e8 f1 f5 ff ff ?? call function 0x0040b619
  
  L13: eb 02 ?? jmp basic block L15
  
  L14: 33 c0 ?? xor eax, eax
  
  L15: 50 ?? push eax
   8b cf ?? mov ecx, edi
   e8 0a fa ff ff ?? call function 0x0040ba3e
  
  L16: 5e ?? pop esi
  
  L17: 8b c7 ?? mov eax, edi
   5f ?? pop edi
   5d ?? pop ebp
   c2 04 00 ?? ret 4
  
  