Disassembly: 
  L1: 8b ff ?? mov edi, edi
   55 ?? push ebp
   8b ec ?? mov ebp, esp
   57 ?? push edi
   33 ff ?? xor edi, edi
   39 7d 08 ?? cmp dword ss:[ebp + 8], edi
   75 1d ?? jne basic block L5
  
  L2: e8 c4 2b 00 00 ?? call function 0x0040e097
  
  L3: 57 ?? push edi
   57 ?? push edi
   57 ?? push edi
   57 ?? push edi
   57 ?? push edi
   c7 00 16 00 00 00 ?? mov dword ds:[eax], 0x00000016<22>
   e8 f4 ec ff ff ?? call function 0x0040a1d7
  
  L4: 83 c4 14 ?? add esp, 0x14<20>
   83 c8 ff ?? or eax, 0xff<255,-1>
   eb 41 ?? jmp basic block L13
  
  L5: 56 ?? push esi
   8b 75 0c ?? mov esi, dword ss:[ebp + 12]
   3b f7 ?? cmp esi, edi
   75 1d ?? jne basic block L9
  
  L6: e8 9f 2b 00 00 ?? call function 0x0040e097
  
  L7: 57 ?? push edi
   57 ?? push edi
   57 ?? push edi
   57 ?? push edi
   57 ?? push edi
   c7 00 16 00 00 00 ?? mov dword ds:[eax], 0x00000016<22>
   e8 cf ec ff ff ?? call function 0x0040a1d7
  
  L8: 83 c4 14 ?? add esp, 0x14<20>
   83 c8 ff ?? or eax, 0xff<255,-1>
   eb 1b ?? jmp basic block L12
  
  L9: ff 75 08 ?? push dword ss:[ebp + 8]
   e8 43 a8 00 00 ?? call function 0x00415d5b
  
  L10: 59 ?? pop ecx
   8b c8 ?? mov ecx, eax
   89 06 ?? mov dword ds:[esi], eax
   23 ca ?? and ecx, edx
   83 c8 ff ?? or eax, 0xff<255,-1>
   89 56 04 ?? mov dword ds:[esi + 4], edx
   3b c8 ?? cmp ecx, eax
   74 02 ?? je basic block L12
  
  L11: 33 c0 ?? xor eax, eax
  
  L12: 5e ?? pop esi
  
  L13: 5f ?? pop edi
   5d ?? pop ebp
   c3 ?? ret
  
  