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 3f 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
   6a 01 ?? push 1
   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 23 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 6a 42 00 00 ?? call function 0x00429460
  
  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 fb 48 fe ff ?? call function 0x00409b4c
  
  L20: c9 ?? leave
   c3 ?? ret
  
  