Disassembly: 
  L1: 8b ff ?? mov edi, edi
   55 ?? push ebp
   8b ec ?? mov ebp, esp
   83 ec 28 ?? sub esp, 0x28<40>
   a1 44 44 44 00 ?? mov eax, dword ds:[0x00444444]
   33 c5 ?? xor eax, ebp
   89 45 fc ?? mov dword ss:[ebp + 0xfc<252,-4>], eax
   53 ?? push ebx
   56 ?? push esi
   8b 75 08 ?? mov esi, dword ss:[ebp + 8]
   57 ?? push edi
   ff 75 10 ?? push dword ss:[ebp + 0x10<16>]
   8b 7d 0c ?? mov edi, dword ss:[ebp + 12]
   8d 4d dc ?? lea ecx, ss:[ebp + 0xdc<220,-36>]
   e8 fe 94 fe ff ?? call function 0x0040e60f
  
  L2: 8d 45 dc ?? lea eax, ss:[ebp + 0xdc<220,-36>]
   50 ?? push eax
   33 db ?? xor ebx, ebx
   53 ?? push ebx
   53 ?? push ebx
   53 ?? push ebx
   53 ?? push ebx
   57 ?? push edi
   8d 45 d8 ?? lea eax, ss:[ebp + 0xd8<216,-40>]
   50 ?? push eax
   8d 45 f0 ?? lea eax, ss:[ebp + 0xf0<240,-16>]
   50 ?? push eax
   e8 e3 49 00 00 ?? call function 0x00429b0c
  
  L3: 89 45 ec ?? mov dword ss:[ebp + 0xec<236,-20>], eax
   8d 45 f0 ?? lea eax, ss:[ebp + 0xf0<240,-16>]
   56 ?? push esi
   50 ?? push eax
   e8 a2 38 00 00 ?? call function 0x004289d8
  
  L4: 83 c4 28 ?? add esp, 0x28<40>
   f6 45 ec 03 ?? test byte ss:[ebp + 0xec<236,-20>], 3
   75 2b ?? jne basic block L14
  
  L5: 83 f8 01 ?? cmp eax, 1
   75 11 ?? jne basic block L10
  
  L6: 38 5d e8 ?? cmp byte ss:[ebp + 0xe8<232,-24>], bl
   74 07 ?? je basic block L8
  
  L7: 8b 45 e4 ?? mov eax, dword ss:[ebp + 0xe4<228,-28>]
   83 60 70 fd ?? and dword ds:[eax + 0x70<112>], 0xfd<253,-3>
  
  L8: 6a 03 ?? push 3
  
  L9: 58 ?? pop eax
   eb 2f ?? jmp basic block L19
  
  L10: 83 f8 02 ?? cmp eax, 2
   75 1c ?? jne basic block L16
  
  L11: 38 5d e8 ?? cmp byte ss:[ebp + 0xe8<232,-24>], bl
   74 07 ?? je basic block L13
  
  L12: 8b 45 e4 ?? mov eax, dword ss:[ebp + 0xe4<228,-28>]
   83 60 70 fd ?? and dword ds:[eax + 0x70<112>], 0xfd<253,-3>
  
  L13: 6a 04 ?? push 4
   eb e8 ?? jmp basic block L9
  
  L14: f6 45 ec 01 ?? test byte ss:[ebp + 0xec<236,-20>], 1
   75 ea ?? jne basic block L11
  
  L15: f6 45 ec 02 ?? test byte ss:[ebp + 0xec<236,-20>], 2
   75 ce ?? jne basic block L6
  
  L16: 38 5d e8 ?? cmp byte ss:[ebp + 0xe8<232,-24>], bl
   74 07 ?? je basic block L18
  
  L17: 8b 45 e4 ?? mov eax, dword ss:[ebp + 0xe4<228,-28>]
   83 60 70 fd ?? and dword ds:[eax + 0x70<112>], 0xfd<253,-3>
  
  L18: 33 c0 ?? xor eax, eax
  
  L19: 8b 4d fc ?? mov ecx, dword ss:[ebp + 0xfc<252,-4>]
   5f ?? pop edi
   5e ?? pop esi
   33 cd ?? xor ecx, ebp
   5b ?? pop ebx
   e8 bb 49 fe ff ?? call function 0x00409b4c
  
  L20: c9 ?? leave
   c3 ?? ret
  
  