Disassembly: 
  L1: 8b ff ?? mov edi, edi
   55 ?? push ebp
   8b ec ?? mov ebp, esp
   83 ec 30 ?? sub esp, 0x30<48>
   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
   8b 75 0c ?? mov esi, dword ss:[ebp + 12]
   57 ?? push edi
   6a 16 ?? push 0x16<22>
   5f ?? pop edi
   57 ?? push edi
   8d 4d e4 ?? lea ecx, ss:[ebp + 0xe4<228,-28>]
   51 ?? push ecx
   8d 4d d0 ?? lea ecx, ss:[ebp + 0xd0<208,-48>]
   51 ?? push ecx
   ff 70 04 ?? push dword ds:[eax + 4]
   ff 30 ?? push dword ds:[eax]
   e8 5f 31 01 00 ?? call function 0x004254e7
  
  L2: 33 db ?? xor ebx, ebx
   83 c4 14 ?? add esp, 0x14<20>
   3b f3 ?? cmp esi, ebx
   75 1b ?? jne basic block L6
  
  L3: e8 01 bd ff ff ?? call function 0x0040e097
  
  L4: 53 ?? push ebx
   53 ?? push ebx
   53 ?? push ebx
   53 ?? push ebx
   53 ?? push ebx
   89 38 ?? mov dword ds:[eax], edi
   e8 35 7e ff ff ?? call function 0x0040a1d7
  
  L5: 83 c4 14 ?? add esp, 0x14<20>
   8b c7 ?? mov eax, edi
   e9 96 00 00 00 ?? jmp basic block L22
  
  L6: 8b 4d 10 ?? mov ecx, dword ss:[ebp + 0x10<16>]
   3b cb ?? cmp ecx, ebx
   76 de ?? jbe basic block L3
  
  L7: 8b 45 d4 ?? mov eax, dword ss:[ebp + 0xd4<212,-44>]
   48 ?? dec eax
   89 45 e0 ?? mov dword ss:[ebp + 0xe0<224,-32>], eax
   33 c0 ?? xor eax, eax
   83 7d d0 2d ?? cmp dword ss:[ebp + 0xd0<208,-48>], 0x2d<45>
   0f 94 c0 ?? sete al
   8d 3c 30 ?? lea edi, ds:[eax + esi]
   83 f9 ff ?? cmp ecx, 0xff<255,-1>
   75 04 ?? jne basic block L9
  
  L8: 0b c9 ?? or ecx, ecx
   eb 02 ?? jmp basic block L10
  
  L9: 2b c8 ?? sub ecx, eax
  
  L10: 8d 45 d0 ?? lea eax, ss:[ebp + 0xd0<208,-48>]
   50 ?? push eax
   ff 75 14 ?? push dword ss:[ebp + 0x14<20>]
   51 ?? push ecx
   57 ?? push edi
   e8 8c 2f 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 1e ?? mov byte ds:[esi], bl
   eb 58 ?? jmp basic block L22
  
  L13: 8b 45 d4 ?? mov eax, dword ss:[ebp + 0xd4<212,-44>]
   48 ?? dec eax
   39 45 e0 ?? cmp dword ss:[ebp + 0xe0<224,-32>], eax
   0f 9c c1 ?? setl cl
   83 f8 fc ?? cmp eax, 0xfc<252,-4>
   7c 2d ?? jl basic block L20
  
  L14: 3b 45 14 ?? cmp eax, dword ss:[ebp + 0x14<20>]
   7d 28 ?? jge basic block L20
  
  L15: 3a cb ?? cmp cl, bl
   74 0a ?? je basic block L18
  
  L16: 8a 07 ?? mov al, byte ds:[edi]
   47 ?? inc edi
   84 c0 ?? test al, al
   75 f9 ?? jne basic block L16
  
  L17: 88 5f fe ?? mov byte ds:[edi + 0xfe<254,-2>], bl
  
  L18: ff 75 1c ?? push dword ss:[ebp + 0x1c<28>]
   8d 45 d0 ?? lea eax, ss:[ebp + 0xd0<208,-48>]
   6a 01 ?? push 1
   ff 75 14 ?? push dword ss:[ebp + 0x14<20>]
   8b ce ?? mov ecx, esi
   ff 75 10 ?? push dword ss:[ebp + 0x10<16>]
   e8 67 fd ff ff ?? call function 0x00412188
  
  L19: 83 c4 10 ?? add esp, 0x10<16>
   eb 1c ?? jmp basic block L22
  
  L20: ff 75 1c ?? push dword ss:[ebp + 0x1c<28>]
   8d 45 d0 ?? lea eax, ss:[ebp + 0xd0<208,-48>]
   6a 01 ?? push 1
   50 ?? push eax
   ff 75 18 ?? push dword ss:[ebp + 0x18<24>]
   8b c6 ?? mov eax, esi
   ff 75 14 ?? push dword ss:[ebp + 0x14<20>]
   ff 75 10 ?? push dword ss:[ebp + 0x10<16>]
   e8 57 f7 ff ff ?? call function 0x00411b96
  
  L21: 83 c4 18 ?? add esp, 0x18<24>
  
  L22: 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 fd 76 ff ff ?? call function 0x00409b4c
  
  L23: c9 ?? leave
   c3 ?? ret
  
  