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 b1 37 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 53 c3 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 87 84 ff ff ?? call function 0x0040a1d7
  
  L5: 83 c4 14 ?? add esp, 0x14<20>
   8b c6 ?? mov eax, esi
   eb 6f ?? 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: 8b 75 14 ?? mov esi, dword ss:[ebp + 0x14<20>]
   83 f8 ff ?? cmp eax, 0xff<255,-1>
   75 05 ?? jne basic block L9
  
  L8: 83 c8 ff ?? or eax, 0xff<255,-1>
   eb 14 ?? 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
   33 c9 ?? xor ecx, ecx
   3b f3 ?? cmp esi, ebx
   0f 9f c1 ?? setg cl
   2b c1 ?? sub eax, ecx
  
  L10: 8d 4d d4 ?? lea ecx, ss:[ebp + 0xd4<212,-44>]
   51 ?? push ecx
   8d 4e 01 ?? lea ecx, ds:[esi + 1]
   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
   33 c9 ?? xor ecx, ecx
   3b f3 ?? cmp esi, ebx
   0f 9f c1 ?? setg cl
   03 c7 ?? add eax, edi
   03 c8 ?? add ecx, eax
   51 ?? push ecx
   e8 c9 35 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 19 ?? jmp basic block L15
  
  L13: ff 75 1c ?? push dword ss:[ebp + 0x1c<28>]
   8d 45 d4 ?? lea eax, ss:[ebp + 0xd4<212,-44>]
   53 ?? push ebx
   50 ?? push eax
   ff 75 18 ?? push dword ss:[ebp + 0x18<24>]
   8b c7 ?? mov eax, edi
   56 ?? push esi
   ff 75 10 ?? push dword ss:[ebp + 0x10<16>]
   e8 d3 fd ff ff ?? call function 0x00411b96
  
  L14: 83 c4 18 ?? add esp, 0x18<24>
  
  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 79 7d ff ff ?? call function 0x00409b4c
  
  L16: c9 ?? leave
   c3 ?? ret
  
  