Disassembly: 
  L1: 8b ff ?? mov edi, edi
   55 ?? push ebp
   8b ec ?? mov ebp, esp
   83 ec 2c ?? sub esp, 0x2c<44>
   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
   8b 45 08 ?? mov eax, dword ss:[ebp + 8]
   53 ?? push ebx
   56 ?? push esi
   57 ?? push edi
   8b 7d 0c ?? mov edi, dword ss:[ebp + 12]
   6a 16 ?? push 0x16<22>
   5e ?? pop esi
   56 ?? push esi
   8d 4d e4 ?? lea ecx, ss:[ebp + 0xe4<228,-28>]
   51 ?? push ecx
   8d 4d d4 ?? lea ecx, ss:[ebp + 0xd4<212,-44>]
   51 ?? push ecx
   ff 70 04 ?? push dword ds:[eax + 4]
   ff 30 ?? push dword ds:[eax]
   e8 37 32 01 00 ?? call function 0x004254e7
  
  L2: 33 db ?? xor ebx, ebx
   83 c4 14 ?? add esp, 0x14<20>
   3b fb ?? cmp edi, ebx
   75 18 ?? jne basic block L6
  
  L3: e8 d9 bd ff ff ?? call function 0x0040e097
  
  L4: 53 ?? push ebx
   53 ?? push ebx
   53 ?? push ebx
   53 ?? push ebx
   53 ?? push ebx
   89 30 ?? mov dword ds:[eax], esi
   e8 0d 7f ff ff ?? call function 0x0040a1d7
  
  L5: 83 c4 14 ?? add esp, 0x14<20>
   8b c6 ?? mov eax, esi
   eb 5a ?? jmp basic block L15
  
  L6: 8b 45 10 ?? mov eax, dword ss:[ebp + 0x10<16>]
   3b c3 ?? cmp eax, ebx
   76 e1 ?? jbe basic block L3
  
  L7: 83 f8 ff ?? cmp eax, 0xff<255,-1>
   75 04 ?? jne basic block L9
  
  L8: 0b c0 ?? or eax, eax
   eb 0b ?? jmp basic block L10
  
  L9: 33 c9 ?? xor ecx, ecx
   83 7d d4 2d ?? cmp dword ss:[ebp + 0xd4<212,-44>], 0x2d<45>
   0f 94 c1 ?? sete cl
   2b c1 ?? sub eax, ecx
  
  L10: 8b 75 14 ?? mov esi, dword ss:[ebp + 0x14<20>]
   8d 4d d4 ?? lea ecx, ss:[ebp + 0xd4<212,-44>]
   51 ?? push ecx
   8b 4d d8 ?? mov ecx, dword ss:[ebp + 0xd8<216,-40>]
   03 ce ?? add ecx, esi
   51 ?? push ecx
   50 ?? push eax
   33 c0 ?? xor eax, eax
   83 7d d4 2d ?? cmp dword ss:[ebp + 0xd4<212,-44>], 0x2d<45>
   0f 94 c0 ?? sete al
   03 c7 ?? add eax, edi
   50 ?? push eax
   e8 60 30 01 00 ?? call function 0x0042536b
  
  L11: 83 c4 10 ?? add esp, 0x10<16>
   3b c3 ?? cmp eax, ebx
   74 04 ?? je basic block L13
  
  L12: 88 1f ?? mov byte ds:[edi], bl
   eb 15 ?? jmp basic block L15
  
  L13: ff 75 18 ?? push dword ss:[ebp + 0x18<24>]
   8d 45 d4 ?? lea eax, ss:[ebp + 0xd4<212,-44>]
   53 ?? push ebx
   56 ?? push esi
   ff 75 10 ?? push dword ss:[ebp + 0x10<16>]
   8b cf ?? mov ecx, edi
   e8 60 fe ff ff ?? call function 0x00412188
  
  L14: 83 c4 10 ?? add esp, 0x10<16>
  
  L15: 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 14 78 ff ff ?? call function 0x00409b4c
  
  L16: c9 ?? leave
   c3 ?? ret
  
  