Disassembly: 
  L1: 8b ff ?? mov edi, edi
   55 ?? push ebp
   8b ec ?? mov ebp, esp
   83 ec 24 ?? sub esp, 0x24<36>
   56 ?? push esi
   57 ?? push edi
   ff 75 1c ?? push dword ss:[ebp + 0x1c<28>]
   8d 4d dc ?? lea ecx, ss:[ebp + 0xdc<220,-36>]
   c7 45 ec ff 03 00 00 ?? mov dword ss:[ebp + 0xec<236,-20>], 0x000003ff<1023>
   33 ff ?? xor edi, edi
   c7 45 fc 30 00 00 00 ?? mov dword ss:[ebp + 0xfc<252,-4>], 0x00000030<48>
   e8 f5 c7 ff ff ?? call function 0x0040e60f
  
  L2: 39 7d 14 ?? cmp dword ss:[ebp + 0x14<20>], edi
   7d 03 ?? jge basic block L4
  
  L3: 89 7d 14 ?? mov dword ss:[ebp + 0x14<20>], edi
  
  L4: 8b 75 0c ?? mov esi, dword ss:[ebp + 12]
   3b f7 ?? cmp esi, edi
   75 2b ?? jne basic block L11
  
  L5: e8 69 c2 ff ff ?? call function 0x0040e097
  
  L6: 6a 16 ?? push 0x16<22>
  
  L7: 5e ?? pop esi
   57 ?? push edi
   57 ?? push edi
   57 ?? push edi
   57 ?? push edi
   57 ?? push edi
   89 30 ?? mov dword ds:[eax], esi
   e8 9a 83 ff ff ?? call function 0x0040a1d7
  
  L8: 83 c4 14 ?? add esp, 0x14<20>
   80 7d e8 00 ?? cmp byte ss:[ebp + 0xe8<232,-24>], 0
   74 07 ?? je basic block L10
  
  L9: 8b 45 e4 ?? mov eax, dword ss:[ebp + 0xe4<228,-28>]
   83 60 70 fd ?? and dword ds:[eax + 0x70<112>], 0xfd<253,-3>
  
  L10: 8b c6 ?? mov eax, esi
   e9 10 03 00 00 ?? jmp basic block L91
  
  L11: 39 7d 10 ?? cmp dword ss:[ebp + 0x10<16>], edi
   76 d0 ?? jbe basic block L5
  
  L12: 8b 45 14 ?? mov eax, dword ss:[ebp + 0x14<20>]
   83 c0 0b ?? add eax, 11
   c6 06 00 ?? mov byte ds:[esi], 0
   39 45 10 ?? cmp dword ss:[ebp + 0x10<16>], eax
   77 09 ?? ja basic block L15
  
  L13: e8 2b c2 ff ff ?? call function 0x0040e097
  
  L14: 6a 22 ?? push 0x22<34>
   eb c0 ?? jmp basic block L7
  
  L15: 8b 7d 08 ?? mov edi, dword ss:[ebp + 8]
   8b 07 ?? mov eax, dword ds:[edi]
   89 45 f4 ?? mov dword ss:[ebp + 0xf4<244,-12>], eax
   8b 47 04 ?? mov eax, dword ds:[edi + 4]
   8b c8 ?? mov ecx, eax
   c1 e9 14 ?? shr ecx, 0x14<20>
   ba ff 07 00 00 ?? mov edx, 0x000007ff<2047>
   53 ?? push ebx
   23 ca ?? and ecx, edx
   33 db ?? xor ebx, ebx
   3b ca ?? cmp ecx, edx
   0f 85 90 00 00 00 ?? jne basic block L29
  
  L16: 85 db ?? test ebx, ebx
   0f 85 88 00 00 00 ?? jne basic block L29
  
  L17: 8b 45 10 ?? mov eax, dword ss:[ebp + 0x10<16>]
   83 f8 ff ?? cmp eax, 0xff<255,-1>
   75 04 ?? jne basic block L19
  
  L18: 0b c0 ?? or eax, eax
   eb 03 ?? jmp basic block L20
  
  L19: 83 c0 fe ?? add eax, 0xfe<254,-2>
  
  L20: 6a 00 ?? push 0
   ff 75 14 ?? push dword ss:[ebp + 0x14<20>]
   8d 5e 02 ?? lea ebx, ds:[esi + 2]
   50 ?? push eax
   53 ?? push ebx
   57 ?? push edi
   e8 1c ff ff ff ?? call function 0x00411dd5
  
  L21: 83 c4 14 ?? add esp, 0x14<20>
   85 c0 ?? test eax, eax
   74 19 ?? je basic block L24
  
  L22: 80 7d e8 00 ?? cmp byte ss:[ebp + 0xe8<232,-24>], 0
   c6 06 00 ?? mov byte ds:[esi], 0
   0f 84 96 02 00 00 ?? je basic block L90
  
  L23: 8b 4d e4 ?? mov ecx, dword ss:[ebp + 0xe4<228,-28>]
   83 61 70 fd ?? and dword ds:[ecx + 0x70<112>], 0xfd<253,-3>
   e9 8a 02 00 00 ?? jmp basic block L90
  
  L24: 80 3b 2d ?? cmp byte ds:[ebx], 0x2d<45>
   75 04 ?? jne basic block L26
  
  L25: c6 06 2d ?? mov byte ds:[esi], 0x2d<45>
   46 ?? inc esi
  
  L26: c6 06 30 ?? mov byte ds:[esi], 0x30<48>
   46 ?? inc esi
   83 7d 18 00 ?? cmp dword ss:[ebp + 0x18<24>], 0
   6a 65 ?? push 0x65<101>
   0f 94 c0 ?? sete al
   fe c8 ?? dec al
   24 e0 ?? and al, 0xe0<224,-32>
   04 78 ?? add al, 0x78<120>
   88 06 ?? mov byte ds:[esi], al
   46 ?? inc esi
   56 ?? push esi
   e8 72 30 01 00 ?? call function 0x00424f70
  
  L27: 59 ?? pop ecx
   59 ?? pop ecx
   85 c0 ?? test eax, eax
   0f 84 4c 02 00 00 ?? je basic block L87
  
  L28: 83 7d 18 00 ?? cmp dword ss:[ebp + 0x18<24>], 0
   0f 94 c1 ?? sete cl
   fe c9 ?? dec cl
   80 e1 e0 ?? and cl, 0xe0<224,-32>
   80 c1 70 ?? add cl, 0x70<112>
   88 08 ?? mov byte ds:[eax], cl
   c6 40 03 00 ?? mov byte ds:[eax + 3], 0
   e9 32 02 00 00 ?? jmp basic block L87
  
  L29: 25 00 00 00 80 ?? and eax, 0x80000000
   33 c9 ?? xor ecx, ecx
   0b c8 ?? or ecx, eax
   74 04 ?? je basic block L31
  
  L30: c6 06 2d ?? mov byte ds:[esi], 0x2d<45>
   46 ?? inc esi
  
  L31: 8b 5d 18 ?? mov ebx, dword ss:[ebp + 0x18<24>]
   c6 06 30 ?? mov byte ds:[esi], 0x30<48>
   46 ?? inc esi
   85 db ?? test ebx, ebx
   0f 94 c0 ?? sete al
   fe c8 ?? dec al
   24 e0 ?? and al, 0xe0<224,-32>
   04 78 ?? add al, 0x78<120>
   88 06 ?? mov byte ds:[esi], al
   8b 4f 04 ?? mov ecx, dword ds:[edi + 4]
   46 ?? inc esi
   f7 db ?? neg ebx
   1b db ?? sbb ebx, ebx
   83 e3 e0 ?? and ebx, 0xe0<224,-32>
   81 e1 00 00 f0 7f ?? and ecx, 0x7ff00000
   33 c0 ?? xor eax, eax
   83 c3 27 ?? add ebx, 0x27<39>
   33 d2 ?? xor edx, edx
   0b c1 ?? or eax, ecx
   75 21 ?? jne basic block L35
  
  L32: c6 06 30 ?? mov byte ds:[esi], 0x30<48>
   8b 4f 04 ?? mov ecx, dword ds:[edi + 4]
   8b 07 ?? mov eax, dword ds:[edi]
   81 e1 ff ff 0f 00 ?? and ecx, 0x000fffff
   46 ?? inc esi
   0b c1 ?? or eax, ecx
   75 05 ?? jne basic block L34
  
  L33: 89 55 ec ?? mov dword ss:[ebp + 0xec<236,-20>], edx
   eb 0d ?? jmp basic block L36
  
  L34: c7 45 ec fe 03 00 00 ?? mov dword ss:[ebp + 0xec<236,-20>], 0x000003fe<1022>
   eb 04 ?? jmp basic block L36
  
  L35: c6 06 31 ?? mov byte ds:[esi], 0x31<49>
   46 ?? inc esi
  
  L36: 8b c6 ?? mov eax, esi
   46 ?? inc esi
   89 45 0c ?? mov dword ss:[ebp + 12], eax
   39 55 14 ?? cmp dword ss:[ebp + 0x14<20>], edx
   75 04 ?? jne basic block L38
  
  L37: 88 10 ?? mov byte ds:[eax], dl
   eb 0f ?? jmp basic block L39
  
  L38: 8b 4d dc ?? mov ecx, dword ss:[ebp + 0xdc<220,-36>]
   8b 89 bc 00 00 00 ?? mov ecx, dword ds:[ecx + 0x000000bc<188>]
   8b 09 ?? mov ecx, dword ds:[ecx]
   8a 09 ?? mov cl, byte ds:[ecx]
   88 08 ?? mov byte ds:[eax], cl
  
  L39: 8b 4f 04 ?? mov ecx, dword ds:[edi + 4]
   8b 07 ?? mov eax, dword ds:[edi]
   81 e1 ff ff 0f 00 ?? and ecx, 0x000fffff
   89 4d f8 ?? mov dword ss:[ebp + 0xf8<248,-8>], ecx
   77 08 ?? ja basic block L41
  
  L40: 3b c2 ?? cmp eax, edx
   0f 86 b5 00 00 00 ?? jbe basic block L59
  
  L41: 89 55 f4 ?? mov dword ss:[ebp + 0xf4<244,-12>], edx
   c7 45 f8 00 00 0f 00 ?? mov dword ss:[ebp + 0xf8<248,-8>], 0x000f0000
  
  L42: 83 7d 14 00 ?? cmp dword ss:[ebp + 0x14<20>], 0
   7e 4d ?? jle basic block L47
  
  L43: 8b 57 04 ?? mov edx, dword ds:[edi + 4]
   23 55 f8 ?? and edx, dword ss:[ebp + 0xf8<248,-8>]
   8b 07 ?? mov eax, dword ds:[edi]
   0f bf 4d fc ?? movsx ecx, word ss:[ebp + 0xfc<252,-4>]
   23 45 f4 ?? and eax, dword ss:[ebp + 0xf4<244,-12>]
   81 e2 ff ff 0f 00 ?? and edx, 0x000fffff
   e8 7a 36 01 00 ?? call function 0x00425660
  
  L44: 66 83 c0 30 ?? add ax, 0x30<48>
   0f b7 c0 ?? movzx eax, ax
   66 83 f8 39 ?? cmp ax, 0x39<57>
   76 02 ?? jbe basic block L46
  
  L45: 03 c3 ?? add eax, ebx
  
  L46: 8b 4d f8 ?? mov ecx, dword ss:[ebp + 0xf8<248,-8>]
   83 6d fc 04 ?? sub dword ss:[ebp + 0xfc<252,-4>], 4
   88 06 ?? mov byte ds:[esi], al
   8b 45 f4 ?? mov eax, dword ss:[ebp + 0xf4<244,-12>]
   0f ac c8 04 ?? shrd eax, ecx, 4
   c1 e9 04 ?? shr ecx, 4
   46 ?? inc esi
   ff 4d 14 ?? dec dword ss:[ebp + 0x14<20>]
   66 83 7d fc 00 ?? cmp word ss:[ebp + 0xfc<252,-4>], 0
   89 45 f4 ?? mov dword ss:[ebp + 0xf4<244,-12>], eax
   89 4d f8 ?? mov dword ss:[ebp + 0xf8<248,-8>], ecx
   7d ad ?? jge basic block L42
  
  L47: 66 83 7d fc 00 ?? cmp word ss:[ebp + 0xfc<252,-4>], 0
   7c 51 ?? jl basic block L59
  
  L48: 8b 57 04 ?? mov edx, dword ds:[edi + 4]
   23 55 f8 ?? and edx, dword ss:[ebp + 0xf8<248,-8>]
   8b 07 ?? mov eax, dword ds:[edi]
   0f bf 4d fc ?? movsx ecx, word ss:[ebp + 0xfc<252,-4>]
   23 45 f4 ?? and eax, dword ss:[ebp + 0xf4<244,-12>]
   81 e2 ff ff 0f 00 ?? and edx, 0x000fffff
   e8 26 36 01 00 ?? call function 0x00425660
  
  L49: 66 83 f8 08 ?? cmp ax, 8
   76 31 ?? jbe basic block L59
  
  L50: 8d 46 ff ?? lea eax, ds:[esi + 0xff<255,-1>]
  
  L51: 8a 08 ?? mov cl, byte ds:[eax]
   80 f9 66 ?? cmp cl, 0x66<102>
   74 05 ?? je basic block L53
  
  L52: 80 f9 46 ?? cmp cl, 0x46<70>
   75 06 ?? jne basic block L54
  
  L53: c6 00 30 ?? mov byte ds:[eax], 0x30<48>
   48 ?? dec eax
   eb ee ?? jmp basic block L51
  
  L54: 3b 45 0c ?? cmp eax, dword ss:[ebp + 12]
   74 14 ?? je basic block L58
  
  L55: 8a 08 ?? mov cl, byte ds:[eax]
   80 f9 39 ?? cmp cl, 0x39<57>
   75 07 ?? jne basic block L57
  
  L56: 80 c3 3a ?? add bl, 0x3a<58>
   88 18 ?? mov byte ds:[eax], bl
   eb 09 ?? jmp basic block L59
  
  L57: fe c1 ?? inc cl
   88 08 ?? mov byte ds:[eax], cl
   eb 03 ?? jmp basic block L59
  
  L58: fe 40 ff ?? inc byte ds:[eax + 0xff<255,-1>]
  
  L59: 83 7d 14 00 ?? cmp dword ss:[ebp + 0x14<20>], 0
   7e 11 ?? jle basic block L62
  
  L60: ff 75 14 ?? push dword ss:[ebp + 0x14<20>]
   6a 30 ?? push 0x30<48>
   56 ?? push esi
   e8 6e 85 ff ff ?? call function 0x0040a5f0
  
  L61: 83 c4 0c ?? add esp, 12
   03 75 14 ?? add esi, dword ss:[ebp + 0x14<20>]
  
  L62: 8b 45 0c ?? mov eax, dword ss:[ebp + 12]
   80 38 00 ?? cmp byte ds:[eax], 0
   75 02 ?? jne basic block L64
  
  L63: 8b f0 ?? mov esi, eax
  
  L64: 83 7d 18 00 ?? cmp dword ss:[ebp + 0x18<24>], 0
   b1 34 ?? mov cl, 0x34<52>
   0f 94 c0 ?? sete al
   fe c8 ?? dec al
   24 e0 ?? and al, 0xe0<224,-32>
   04 70 ?? add al, 0x70<112>
   88 06 ?? mov byte ds:[esi], al
   8b 07 ?? mov eax, dword ds:[edi]
   8b 57 04 ?? mov edx, dword ds:[edi + 4]
   46 ?? inc esi
   e8 b2 35 01 00 ?? call function 0x00425660
  
  L65: 33 db ?? xor ebx, ebx
   25 ff 07 00 00 ?? and eax, 0x000007ff<2047>
   23 d3 ?? and edx, ebx
   2b 45 ec ?? sub eax, dword ss:[ebp + 0xec<236,-20>]
   53 ?? push ebx
   59 ?? pop ecx
   1b d1 ?? sbb edx, ecx
   78 0c ?? js basic block L69
  
  L66: 7f 04 ?? jg basic block L68
  
  L67: 3b c3 ?? cmp eax, ebx
   72 06 ?? jb basic block L69
  
  L68: c6 06 2b ?? mov byte ds:[esi], 0x2b<43>
   46 ?? inc esi
   eb 0a ?? jmp basic block L70
  
  L69: c6 06 2d ?? mov byte ds:[esi], 0x2d<45>
   46 ?? inc esi
   f7 d8 ?? neg eax
   13 d3 ?? adc edx, ebx
   f7 da ?? neg edx
  
  L70: 3b d3 ?? cmp edx, ebx
   8b fe ?? mov edi, esi
   c6 06 30 ?? mov byte ds:[esi], 0x30<48>
   7c 24 ?? jl basic block L75
  
  L71: b9 e8 03 00 00 ?? mov ecx, 0x000003e8<1000>
   7f 04 ?? jg basic block L73
  
  L72: 3b c1 ?? cmp eax, ecx
   72 19 ?? jb basic block L75
  
  L73: 53 ?? push ebx
   51 ?? push ecx
   52 ?? push edx
   50 ?? push eax
   e8 8d 34 01 00 ?? call function 0x00425580
  
  L74: 04 30 ?? add al, 0x30<48>
   88 06 ?? mov byte ds:[esi], al
   46 ?? inc esi
   89 55 f0 ?? mov dword ss:[ebp + 0xf0<240,-16>], edx
   8b c1 ?? mov eax, ecx
   8b d3 ?? mov edx, ebx
   3b f7 ?? cmp esi, edi
   75 0b ?? jne basic block L78
  
  L75: 85 d2 ?? test edx, edx
   7c 1e ?? jl basic block L80
  
  L76: 7f 05 ?? jg basic block L78
  
  L77: 83 f8 64 ?? cmp eax, 0x64<100>
   72 17 ?? jb basic block L80
  
  L78: 6a 00 ?? push 0
   6a 64 ?? push 0x64<100>
   52 ?? push edx
   50 ?? push eax
   e8 67 34 01 00 ?? call function 0x00425580
  
  L79: 04 30 ?? add al, 0x30<48>
   88 06 ?? mov byte ds:[esi], al
   89 55 f0 ?? mov dword ss:[ebp + 0xf0<240,-16>], edx
   46 ?? inc esi
   8b c1 ?? mov eax, ecx
   8b d3 ?? mov edx, ebx
  
  L80: 3b f7 ?? cmp esi, edi
   75 0b ?? jne basic block L84
  
  L81: 85 d2 ?? test edx, edx
   7c 1f ?? jl basic block L86
  
  L82: 7f 05 ?? jg basic block L84
  
  L83: 83 f8 0a ?? cmp eax, 10
   72 18 ?? jb basic block L86
  
  L84: 6a 00 ?? push 0
   6a 0a ?? push 10
   52 ?? push edx
   50 ?? push eax
   e8 41 34 01 00 ?? call function 0x00425580
  
  L85: 04 30 ?? add al, 0x30<48>
   88 06 ?? mov byte ds:[esi], al
   89 55 f0 ?? mov dword ss:[ebp + 0xf0<240,-16>], edx
   46 ?? inc esi
   8b c1 ?? mov eax, ecx
   89 5d f0 ?? mov dword ss:[ebp + 0xf0<240,-16>], ebx
  
  L86: 04 30 ?? add al, 0x30<48>
   88 06 ?? mov byte ds:[esi], al
   c6 46 01 00 ?? mov byte ds:[esi + 1], 0
  
  L87: 80 7d e8 00 ?? cmp byte ss:[ebp + 0xe8<232,-24>], 0
   74 07 ?? je basic block L89
  
  L88: 8b 45 e4 ?? mov eax, dword ss:[ebp + 0xe4<228,-28>]
   83 60 70 fd ?? and dword ds:[eax + 0x70<112>], 0xfd<253,-3>
  
  L89: 33 c0 ?? xor eax, eax
  
  L90: 5b ?? pop ebx
  
  L91: 5f ?? pop edi
   5e ?? pop esi
   c9 ?? leave
   c3 ?? ret
  
  