Function at 0x523ad0
Capabilities:
Check os version
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x6c656d
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x218
push ebx
push ebp
push esi
push edi
mov esi, ecx
xor ebx, ebx
xor edi, edi
lea ecx, [esp + 0x180]
mov dword [esp + 0x230], ebx
mov dword [esp + 0x38], edi
mov byte [esp + 0x27], 1
mov byte [esp + 0x13], bl
mov dword [esp + 0x40], 1
call fcn.0061aaa0
lea ecx, [esp + 0x30]
mov byte [esp + 0x230], 1
call fcn.0061d780
push 0x7e2
lea ecx, [esp + 0x1b8]
mov byte [esp + 0x234], 2
call fcn.0054f000
mov al, byte [esp + 0x37]
mov dword [esp + 0x18], ebx
mov byte [esp + 0x14], al
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
mov cl, 0xae
mov al, 0x30
mov dl, 0xa0
mov byte [esp + 0x230], 4
mov byte [esp + 0x78], 8
mov byte [esp + 0x79], 7
mov byte [esp + 0x7a], cl
mov byte [esp + 0x7b], al
mov byte [esp + 0x7c], bl
mov byte [esp + 0x7d], bl
mov byte [esp + 0x7e], bl
mov byte [esp + 0x7f], bl
mov byte [esp + 0x80], bl
mov byte [esp + 0x81], bl
mov byte [esp + 0x82], 8
mov byte [esp + 0x83], 7
mov byte [esp + 0x84], cl
mov byte [esp + 0x85], al
mov byte [esp + 0x86], 6
mov byte [esp + 0x87], bl
mov byte [esp + 0x88], bl
mov byte [esp + 0x89], bl
mov byte [esp + 0x8a], bl
mov byte [esp + 0x8b], bl
mov byte [esp + 0x8c], 8
mov byte [esp + 0x8d], 7
mov byte [esp + 0x8e], cl
mov byte [esp + 0x8f], al
mov byte [esp + 0x90], 4
mov byte [esp + 0x91], bl
mov byte [esp + 0x92], bl
mov byte [esp + 0x93], bl
mov byte [esp + 0x94], bl
mov byte [esp + 0x95], bl
mov byte [esp + 0x96], 8
mov byte [esp + 0x97], 7
mov byte [esp + 0x98], cl
mov byte [esp + 0x99], al
mov byte [esp + 0x9a], 0x90
mov byte [esp + 0x9b], bl
mov byte [esp + 0x9c], bl
mov byte [esp + 0x9d], bl
mov byte [esp + 0x9e], bl
mov byte [esp + 0x9f], bl
mov byte [esp + 0xa0], 8
mov byte [esp + 0xa1], 7
mov byte [esp + 0xa2], cl
mov byte [esp + 0xa3], al
mov byte [esp + 0xa4], dl
mov byte [esp + 0xa5], bl
mov byte [esp + 0xa6], bl
mov byte [esp + 0xa7], bl
mov byte [esp + 0xa8], bl
mov byte [esp + 0xa9], bl
mov byte [esp + 0xaa], 8
mov byte [esp + 0xab], 7
mov byte [esp + 0xac], cl
mov byte [esp + 0xad], al
mov byte [esp + 0xae], 0xb0
mov byte [esp + 0xaf], bl
mov byte [esp + 0xb0], bl
mov byte [esp + 0xb1], bl
mov byte [esp + 0xb2], bl
mov byte [esp + 0xb3], bl
mov byte [esp + 0xb4], 8
mov byte [esp + 0xb5], 7
mov byte [esp + 0xb6], cl
mov byte [esp + 0xb7], al
mov byte [esp + 0xb8], dl
mov byte [esp + 0xb9], bl
mov byte [esp + 0xba], bl
mov byte [esp + 0xbb], bl
mov byte [esp + 0xbc], bl
mov byte [esp + 0xbd], bl
mov byte [esp + 0xbe], 8
mov byte [esp + 0xbf], 7
mov byte [esp + 0xc0], cl
mov byte [esp + 0xc1], al
mov byte [esp + 0xc2], bl
mov byte [esp + 0xc3], bl
mov byte [esp + 0xc4], bl
mov byte [esp + 0xc5], bl
mov byte [esp + 0xc6], bl
mov byte [esp + 0xc7], bl
mov byte [esp + 0xc8], 8
mov byte [esp + 0xc9], 7
mov byte [esp + 0xca], cl
mov byte [esp + 0xcb], al
mov byte [esp + 0xcc], bl
mov byte [esp + 0xcd], bl
mov byte [esp + 0xce], bl
mov byte [esp + 0xcf], bl
mov byte [esp + 0xd0], bl
mov byte [esp + 0xd1], bl
mov byte [esp + 0xd2], 8
mov byte [esp + 0xd3], 7
mov byte [esp + 0xd4], cl
mov byte [esp + 0xd5], al
mov byte [esp + 0xd6], 8
mov byte [esp + 0xd7], bl
mov byte [esp + 0xd8], bl
mov byte [esp + 0xd9], bl
mov byte [esp + 0xda], bl
mov byte [esp + 0xdb], bl
mov byte [esp + 0xdc], 8
mov byte [esp + 0xdd], 7
mov byte [esp + 0xde], cl
mov byte [esp + 0xdf], al
mov byte [esp + 0xe0], 8
mov byte [esp + 0xe1], bl
mov byte [esp + 0xe2], bl
mov byte [esp + 0xe3], bl
mov byte [esp + 0xe4], bl
mov byte [esp + 0xe5], bl
mov byte [esp + 0xe6], 8
mov byte [esp + 0xe7], 7
mov byte [esp + 0xe8], cl
mov byte [esp + 0xe9], al
mov byte [esp + 0xea], bl
mov byte [esp + 0xeb], bl
mov byte [esp + 0xec], al
mov byte [esp + 0xed], bl
mov byte [esp + 0xee], bl
mov byte [esp + 0xef], bl
mov byte [esp + 0xf0], 8
mov byte [esp + 0xf1], 7
mov byte [esp + 0xf2], cl
mov byte [esp + 0xf3], al
mov byte [esp + 0xf4], bl
mov byte [esp + 0xf5], bl
mov byte [esp + 0xf6], 0x20
mov byte [esp + 0xf7], bl
mov byte [esp + 0xf8], bl
mov byte [esp + 0xf9], bl
mov byte [esp + 0xfa], 8
mov byte [esp + 0xfb], 7
mov byte [esp + 0xfc], cl
mov byte [esp + 0xfd], al
mov byte [esp + 0xfe], bl
mov byte [esp + 0xff], bl
mov byte [esp + 0x100], 0x80
mov byte [esp + 0x101], bl
mov byte [esp + 0x102], bl
mov byte [esp + 0x103], bl
mov byte [esp + 0x44], 8
mov byte [esp + 0x45], 7
mov byte [esp + 0x46], cl
mov byte [esp + 0x47], al
mov byte [esp + 0x48], bl
mov byte [esp + 0x49], bl
mov byte [esp + 0x4a], bl
mov byte [esp + 0x4b], bl
mov byte [esp + 0x4c], bl
mov byte [esp + 0x4d], bl
mov byte [esp + 0x4e], 8
mov byte [esp + 0x4f], 7
mov byte [esp + 0x50], cl
mov byte [esp + 0x51], al
mov byte [esp + 0x52], 0x90
mov byte [esp + 0x53], bl
mov byte [esp + 0x54], bl
mov byte [esp + 0x55], bl
mov byte [esp + 0x56], bl
mov byte [esp + 0x57], bl
mov byte [esp + 0x58], 8
mov byte [esp + 0x59], 7
mov byte [esp + 0x5a], cl
mov byte [esp + 0x5b], al
mov byte [esp + 0x5c], dl
mov byte [esp + 0x5d], bl
mov byte [esp + 0x5e], bl
mov byte [esp + 0x5f], bl
mov byte [esp + 0x60], bl
mov byte [esp + 0x61], bl
mov byte [esp + 0x62], 8
mov byte [esp + 0x63], 7
mov byte [esp + 0x64], cl
mov byte [esp + 0x65], al
mov byte [esp + 0x66], 0xb0
mov byte [esp + 0x67], bl
mov byte [esp + 0x68], bl
mov byte [esp + 0x69], bl
mov byte [esp + 0x6a], bl
mov byte [esp + 0x6b], bl
mov byte [esp + 0x6c], 8
mov byte [esp + 0x6d], 7
mov byte [esp + 0x6e], cl
mov byte [esp + 0x6f], al
mov byte [esp + 0x70], 0xc0
mov byte [esp + 0x71], bl
mov byte [esp + 0x72], bl
mov byte [esp + 0x73], bl
mov byte [esp + 0x74], bl
mov byte [esp + 0x75], bl
mov byte [esp + 0x104], 8
mov byte [esp + 0x105], 7
mov byte [esp + 0x106], cl
mov byte [esp + 0x107], al
mov byte [esp + 0x108], bl
mov byte [esp + 0x109], bl
mov byte [esp + 0x10a], bl
mov byte [esp + 0x10b], bl
mov byte [esp + 0x10c], bl
mov byte [esp + 0x10d], bl
mov byte [esp + 0x10e], 8
mov byte [esp + 0x10f], 7
mov byte [esp + 0x110], cl
mov byte [esp + 0x111], al
mov byte [esp + 0x112], 8
mov byte [esp + 0x113], 0x14
mov byte [esp + 0x114], bl
mov byte [esp + 0x115], bl
mov byte [esp + 0x116], bl
mov byte [esp + 0x117], bl
mov byte [esp + 0x118], 8
mov byte [esp + 0x119], 7
mov byte [esp + 0x11a], cl
mov byte [esp + 0x11b], al
mov byte [esp + 0x11c], 8
mov byte [esp + 0x11d], 0x28
mov byte [esp + 0x11e], bl
mov byte [esp + 0x11f], bl
mov byte [esp + 0x120], bl
mov byte [esp + 0x121], bl
mov byte [esp + 0x122], 8
mov byte [esp + 0x123], 7
mov byte [esp + 0x124], cl
mov byte [esp + 0x125], al
mov byte [esp + 0x126], 8
mov byte [esp + 0x127], 0x3d
mov byte [esp + 0x128], bl
mov byte [esp + 0x129], bl
mov byte [esp + 0x12a], bl
mov byte [esp + 0x12b], bl
mov byte [esp + 0x12c], 8
mov byte [esp + 0x12d], 7
mov byte [esp + 0x12e], cl
mov byte [esp + 0x12f], al
mov byte [esp + 0x130], 8
mov byte [esp + 0x131], 0x51
mov byte [esp + 0x132], bl
mov byte [esp + 0x133], bl
mov byte [esp + 0x134], bl
mov byte [esp + 0x135], bl
mov byte [esp + 0x136], 8
mov byte [esp + 0x137], 7
mov byte [esp + 0x138], cl
mov byte [esp + 0x139], al
mov byte [esp + 0x13a], 8
mov byte [esp + 0x13b], 0x66
mov byte [esp + 0x13c], bl
mov byte [esp + 0x13d], bl
mov byte [esp + 0x13e], bl
mov byte [esp + 0x13f], bl
mov byte [esp + 0x140], 8
mov byte [esp + 0x141], 7
mov byte [esp + 0x142], cl
mov byte [esp + 0x143], al
mov byte [esp + 0x144], 8
mov byte [esp + 0x145], 0x7a
mov byte [esp + 0x146], bl
mov byte [esp + 0x147], bl
mov byte [esp + 0x148], bl
mov byte [esp + 0x149], bl
mov byte [esp + 0x14a], 8
mov byte [esp + 0x14b], 7
mov byte [esp + 0x14c], cl
mov byte [esp + 0x14d], al
mov byte [esp + 0x14e], 8
mov byte [esp + 0x14f], 0x8f
mov byte [esp + 0x150], bl
mov byte [esp + 0x151], bl
mov byte [esp + 0x152], bl
mov byte [esp + 0x153], bl
mov byte [esp + 0x154], 8
mov byte [esp + 0x155], 7
mov byte [esp + 0x156], cl
mov byte [esp + 0x157], al
mov byte [esp + 0x158], 8
mov byte [esp + 0x159], 0xa3
mov byte [esp + 0x15a], bl
mov byte [esp + 0x15b], bl
mov byte [esp + 0x15c], bl
mov byte [esp + 0x15d], bl
mov byte [esp + 0x15e], 8
mov byte [esp + 0x15f], 7
mov byte [esp + 0x160], cl
mov byte [esp + 0x161], al
mov byte [esp + 0x162], 8
mov byte [esp + 0x163], 0xb8
mov byte [esp + 0x164], bl
mov byte [esp + 0x165], bl
mov byte [esp + 0x166], bl
mov edx, dword [esi]
mov byte [esp + 0x16a], cl
mov ecx, esi
mov byte [esp + 0x167], bl
mov byte [esp + 0x168], 8
mov byte [esp + 0x169], 7
mov byte [esp + 0x16b], al
mov byte [esp + 0x16c], 8
mov byte [esp + 0x16d], 0xcc
mov byte [esp + 0x16e], bl
mov byte [esp + 0x16f], bl
mov byte [esp + 0x170], bl
mov byte [esp + 0x171], bl
call dword [edx + 0x18]
test ax, ax
je 0x525805
push 5
lea ecx, [esp + 0x23c]
call fcn.0061daa0
push ecx
mov byte [esp + 0x2c], al
mov ecx, esp
mov dword [esp + 0x40], esp
sub al, 0x20
push 6
push 0x713764
mov byte [esp + 0x43], al
call fcn.0061d820
lea eax, [esp + 0x1a8]
push eax
call fcn.0061ca80
add esp, 8
mov esi, eax
mov eax, dword [esi + 8]
mov ecx, dword [0x6dd1fc]
mov ebp, eax
mov byte [esp + 0x230], 5
cmp ecx, ebp
jae 0x5243b0
mov ebp, ecx
lea edx, [esp + 0x14]
cmp edx, esi
jne 0x5243d3
push ecx
push ebp
lea ecx, [esp + 0x1c]
call fcn.004140f0
push ebx
push ebx
lea ecx, [esp + 0x1c]
call fcn.004140f0
jmp 0x52445f
cmp ebp, ebx
jbe 0x524420
cmp ebp, eax
jne 0x524420
mov eax, dword [esi + 4]
cmp eax, ebx
jne 0x5243e7
mov eax, 0x6dd1f8
cmp byte [eax - 1], 0xfe
jae 0x524420
push 1
lea ecx, [esp + 0x18]
call fcn.004138c0
mov eax, dword [esi + 4]
cmp eax, ebx
jne 0x524404
mov eax, 0x6dd1f8
mov dword [esp + 0x18], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x1c], ecx
mov esi, dword [esi + 0xc]
mov dword [esp + 0x20], esi
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x52445f
push 1
push ebp
lea ecx, [esp + 0x1c]
call fcn.00414230
test al, al
je 0x52445f
mov esi, dword [esi + 4]
cmp esi, ebx
jne 0x52443c
mov esi, 0x6dd1f8
mov edi, dword [esp + 0x18]
mov ecx, ebp
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x38]
mov dword [esp + 0x1c], ebp
mov byte [ecx + ebp], bl
mov eax, dword [esp + 0x1a8]
mov byte [esp + 0x230], 4
cmp eax, ebx
je 0x52448f
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x524486
cmp al, 0xff
je 0x524486
dec al
mov byte [ecx], al
jmp 0x52448f
push ecx
call fcn.006a64d0
add esp, 4
mov edx, dword [esp + 0x28]
and edx, 0xff
lea eax, [edx - 0x20]
cmp eax, 6
ja case.default.0x5244a5
jmp dword [eax*4 + 0x525cc0]
mov byte [esp + 0x26], 1
push ecx
lea eax, [esp + 0x23c]
mov ecx, esp
mov dword [esp + 0x2c], esp
push eax
call fcn.0061d790
mov ecx, dword [0x72baec]
call fcn.0062e250
cmp di, bx
je 0x52494f
cmp byte [0x72bd0c], bl
je 0x5244f6
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push 4
push str.1234
call fcn.0061d820
jmp 0x524543
mov eax, dword [esp + 0x3c]
sub esp, 0x24
and eax, 0xff
mov ecx, esp
mov dword [esp + 0x4c], esp
push ebx
lea edx, [eax + eax*4]
push 1
lea eax, [esp + edx*2 + 0xa4]
push eax
push ecx
lea ecx, [esp + 0x1e8]
call fcn.00551050
lea ecx, [esp + 0x1a4]
call fcn.0061ac40
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push ecx
lea ecx, [esp + 0x188]
call fcn.0061afb0
lea ecx, [esp + 0x34]
call fcn.0061dab0
lea ecx, [esp + 0x30]
call fcn.0061dc40
test ax, ax
jle 0x524a66
cmp di, 1
jne 0x5246b7
push ecx
mov byte [esp + 0x2a], bl
mov ecx, esp
mov dword [esp + 0x2c], esp
push 6
push 0x713784
call fcn.0061d820
lea edx, [esp + 0x1dc]
push edx
call fcn.0061ca80
add esp, 8
mov esi, eax
mov eax, dword [esi + 8]
mov ecx, dword [0x6dd1fc]
mov ebp, eax
mov byte [esp + 0x230], 6
cmp ecx, ebp
jae 0x5245aa
mov ebp, ecx
lea edx, [esp + 0x14]
cmp edx, esi
jne 0x5245cd
push ecx
push ebp
lea ecx, [esp + 0x1c]
call fcn.004140f0
push ebx
push ebx
lea ecx, [esp + 0x1c]
call fcn.004140f0
jmp 0x524655
cmp ebp, ebx
jbe 0x52461a
cmp ebp, eax
jne 0x52461a
mov eax, dword [esi + 4]
cmp eax, ebx
jne 0x5245e1
mov eax, 0x6dd1f8
cmp byte [eax - 1], 0xfe
jae 0x52461a
push 1
lea ecx, [esp + 0x18]
call fcn.004138c0
mov eax, dword [esi + 4]
cmp eax, ebx
jne 0x5245fe
mov eax, 0x6dd1f8
mov dword [esp + 0x18], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x1c], ecx
mov esi, dword [esi + 0xc]
mov dword [esp + 0x20], esi
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x524655
push 1
push ebp
lea ecx, [esp + 0x1c]
call fcn.00414230
test al, al
je 0x524655
mov esi, dword [esi + 4]
cmp esi, ebx
jne 0x524636
mov esi, 0x6dd1f8
mov edi, dword [esp + 0x18]
mov ecx, ebp
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x1c], ebp
mov byte [ecx + ebp], bl
mov eax, dword [esp + 0x1dc]
mov byte [esp + 0x230], 4
cmp eax, ebx
je 0x52469d
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x524694
cmp al, 0xff
je 0x524694
dec al
mov byte [ecx], al
mov dword [esp + 0x1dc], ebx
mov dword [esp + 0x1e0], ebx
mov dword [esp + 0x1e4], ebx
jmp 0x52494d
push ecx
call fcn.006a64d0
add esp, 4
mov dword [esp + 0x1dc], ebx
mov dword [esp + 0x1e0], ebx
mov dword [esp + 0x1e4], ebx
jmp 0x52494d
cmp di, 2
jne 0x524810
push ecx
mov byte [esp + 0x2a], bl
mov ecx, esp
mov dword [esp + 0x2c], esp
push 6
push 0x71377c
call fcn.0061d820
lea edx, [esp + 0x1ec]
push edx
call fcn.0061ca80
add esp, 8
mov esi, eax
mov eax, dword [esi + 8]
mov ecx, dword [0x6dd1fc]
mov ebp, eax
mov byte [esp + 0x230], 7
cmp ecx, ebp
jae 0x524703
mov ebp, ecx
lea edx, [esp + 0x14]
cmp edx, esi
jne 0x524726
push ecx
push ebp
lea ecx, [esp + 0x1c]
call fcn.004140f0
push ebx
push ebx
lea ecx, [esp + 0x1c]
call fcn.004140f0
jmp 0x5247ae
cmp ebp, ebx
jbe 0x524773
cmp ebp, eax
jne 0x524773
mov eax, dword [esi + 4]
cmp eax, ebx
jne 0x52473a
mov eax, 0x6dd1f8
cmp byte [eax - 1], 0xfe
jae 0x524773
push 1
lea ecx, [esp + 0x18]
call fcn.004138c0
mov eax, dword [esi + 4]
cmp eax, ebx
jne 0x524757
mov eax, 0x6dd1f8
mov dword [esp + 0x18], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x1c], ecx
mov esi, dword [esi + 0xc]
mov dword [esp + 0x20], esi
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x5247ae
push 1
push ebp
lea ecx, [esp + 0x1c]
call fcn.00414230
test al, al
je 0x5247ae
mov esi, dword [esi + 4]
cmp esi, ebx
jne 0x52478f
mov esi, 0x6dd1f8
mov edi, dword [esp + 0x18]
mov ecx, ebp
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x1c], ebp
mov byte [ecx + ebp], bl
mov eax, dword [esp + 0x1ec]
mov byte [esp + 0x230], 4
cmp eax, ebx
je 0x5247f6
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x5247ed
cmp al, 0xff
je 0x5247ed
dec al
mov byte [ecx], al
mov dword [esp + 0x1ec], ebx
mov dword [esp + 0x1f0], ebx
mov dword [esp + 0x1f4], ebx
jmp 0x52494d
push ecx
call fcn.006a64d0
add esp, 4
mov dword [esp + 0x1ec], ebx
mov dword [esp + 0x1f0], ebx
mov dword [esp + 0x1f4], ebx
jmp 0x52494d
cmp di, 3
jne 0x52494d
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push 6
push 0x713764
call fcn.0061d820
lea edx, [esp + 0x1fc]
push edx
call fcn.0061ca80
add esp, 8
mov esi, eax
mov eax, dword [esi + 8]
mov ecx, dword [0x6dd1fc]
mov ebp, eax
mov byte [esp + 0x230], 8
cmp ecx, ebp
jae 0x524858
mov ebp, ecx
lea edx, [esp + 0x14]
cmp edx, esi
jne 0x52487b
push ecx
push ebp
lea ecx, [esp + 0x1c]
call fcn.004140f0
push ebx
push ebx
lea ecx, [esp + 0x1c]
call fcn.004140f0
jmp 0x524903
cmp ebp, ebx
jbe 0x5248c8
cmp ebp, eax
jne 0x5248c8
mov eax, dword [esi + 4]
cmp eax, ebx
jne 0x52488f
mov eax, 0x6dd1f8
cmp byte [eax - 1], 0xfe
jae 0x5248c8
push 1
lea ecx, [esp + 0x18]
call fcn.004138c0
mov eax, dword [esi + 4]
cmp eax, ebx
jne 0x5248ac
mov eax, 0x6dd1f8
mov dword [esp + 0x18], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x1c], ecx
mov esi, dword [esi + 0xc]
mov dword [esp + 0x20], esi
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x524903
push 1
push ebp
lea ecx, [esp + 0x1c]
call fcn.00414230
test al, al
je 0x524903
mov esi, dword [esi + 4]
cmp esi, ebx
jne 0x5248e4
mov esi, 0x6dd1f8
mov edi, dword [esp + 0x18]
mov ecx, ebp
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x1c], ebp
mov byte [ecx + ebp], bl
mov eax, dword [esp + 0x1fc]
mov byte [esp + 0x230], 4
cmp eax, ebx
je 0x524933
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x52492a
cmp al, 0xff
je 0x52492a
dec al
mov byte [ecx], al
jmp 0x524933
push ecx
call fcn.006a64d0
add esp, 4
mov dword [esp + 0x1fc], ebx
mov dword [esp + 0x200], ebx
mov dword [esp + 0x204], ebx
mov byte [esp + 0x26], 1
xor edi, edi
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push 6
push 0x713784
call fcn.0061d820
mov ecx, dword [0x72baec]
call fcn.0062e3d0
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push 6
push 0x71377c
call fcn.0061d820
mov ecx, dword [0x72baec]
call fcn.0062e3d0
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push 6
push 0x713774
call fcn.0061d820
mov ecx, dword [0x72baec]
call fcn.0062e3d0
mov dl, byte [esp + 0x14]
sub esp, 0x10
mov ecx, esp
mov dword [esp + 0x38], esp
mov byte [ecx], dl
mov dword [ecx + 4], ebx
mov dword [ecx + 8], ebx
mov dword [ecx + 0xc], ebx
mov eax, dword [0x6dd1fc]
lea edx, [esp + 0x24]
push eax
push ebx
push edx
call fcn.004136c0
push ecx
mov byte [esp + 0x244], 0xa
mov ecx, esp
mov dword [esp + 0x54], esp
push 6
push 0x71379c
call fcn.0061d820
mov ecx, dword [0x72baec]
mov byte [esp + 0x244], 4
call fcn.0062e450
mov ecx, dword [0x72baec]
call fcn.0062e830
movsx eax, ax
sub eax, ebx
je 0x524a50
dec eax
je 0x524a3a
dec eax
jne 0x5244b1
cmp byte [esp + 0x26], bl
jne 0x524ad4
mov edi, 3
mov byte [esp + 0x3c], bl
jmp 0x5244b1
mov al, byte [esp + 0x37]
mov edi, 2
inc al
shl al, 1
mov byte [esp + 0x3c], al
jmp 0x5244b1
mov cl, byte [esp + 0x37]
mov edi, 1
shl cl, 1
inc cl
mov byte [esp + 0x3c], cl
jmp 0x5244b1
push ebx
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push 6
push 0x7137f4
call fcn.0061d820
push ecx
mov byte [esp + 0x240], 9
mov ecx, esp
mov dword [esp + 0x4c], esp
push 6
push 0x713840
call fcn.0061d820
mov ecx, 0x72bae0
mov byte [esp + 0x240], 4
call fcn.0061ef70
mov eax, dword [esp + 0x18]
cmp eax, ebx
je 0x52582a
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x525821
cmp al, 0xff
je 0x525821
dec al
mov byte [ecx], al
jmp 0x52582a
mov eax, dword [esp + 0x18]
cmp eax, ebx
je 0x5258b2
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x5258a9
cmp al, 0xff
je 0x5258a9
dec al
mov byte [ecx], al
jmp 0x5258b2
mov byte [esp + 0x26], 1
push ecx
lea edx, [esp + 0x23c]
mov ecx, esp
mov dword [esp + 0x2c], esp
push edx
call fcn.0061d790
mov ecx, dword [0x72baec]
call fcn.0062e250
mov esi, dword [esp + 0x38]
cmp si, bx
je 0x524bbf
cmp byte [0x72bd0c], bl
je 0x524b4d
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push 4
push str.1234
call fcn.0061d820
jmp 0x524b97
mov eax, dword [esp + 0x3c]
sub esp, 0x24
and eax, 0xff
mov ecx, esp
mov dword [esp + 0x4c], esp
push ebx
lea edx, [eax + eax*4]
push 1
lea eax, [esp + edx*2 + 0x70]
push eax
push ecx
lea ecx, [esp + 0x1e8]
call fcn.00551050
lea ecx, [esp + 0x1a4]
call fcn.0061ac40
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push ecx
lea ecx, [esp + 0x188]
call fcn.0061afb0
lea ecx, [esp + 0x34]
call fcn.0061dab0
lea ecx, [esp + 0x30]
call fcn.0061dc40
test ax, ax
jle 0x525121
cmp si, 3
mov dword [esp + 0x38], ebx
sete byte [esp + 0x26]
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push 6
push 0x715340
call fcn.0061d820
mov ecx, dword [0x72baec]
call fcn.0062e3d0
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push 6
push 0x715348
call fcn.0061d820
mov ecx, dword [0x72baec]
call fcn.0062e3d0
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push 6
push 0x713774
call fcn.0061d820
mov ecx, dword [0x72baec]
call fcn.0062e3d0
cmp byte [esp + 0x27], bl
je 0x524e91
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push 6
push 0x713764
call fcn.0061d820
lea edx, [esp + 0x20c]
push edx
call fcn.0061ca80
add esp, 8
mov esi, eax
mov eax, dword [esi + 8]
mov edi, dword [0x6dd1fc]
mov ebp, eax
mov byte [esp + 0x230], 0xc
cmp edi, ebp
jae 0x524c67
mov ebp, edi
lea ecx, [esp + 0x14]
cmp ecx, esi
jne 0x524cd9
cmp dword [esp + 0x1c], ebp
jae 0x524c7a
call fcn.006a6707
lea ecx, [esp + 0x14]
call fcn.00414b70
mov eax, dword [esp + 0x1c]
sub eax, ebp
cmp eax, edi
jae 0x524c8f
mov edi, eax
cmp edi, ebx
jbe 0x524cc9
mov edx, dword [esp + 0x18]
sub eax, edi
push eax
lea ecx, [edx + ebp]
lea edx, [edi + ecx]
push edx
push ecx
call fcn.006a6c70
mov esi, dword [esp + 0x28]
add esp, 0xc
sub esi, edi
lea ecx, [esp + 0x14]
push ebx
push esi
call fcn.00414230
test al, al
je 0x524cc9
push esi
lea ecx, [esp + 0x18]
call fcn.00414210
push ebx
push ebx
lea ecx, [esp + 0x1c]
call fcn.004140f0
jmp 0x524d60
cmp ebp, ebx
jbe 0x524d26
cmp ebp, eax
jne 0x524d26
mov eax, dword [esi + 4]
cmp eax, ebx
jne 0x524ced
mov eax, 0x6dd1f8
cmp byte [eax - 1], 0xfe
jae 0x524d26
push 1
lea ecx, [esp + 0x18]
call fcn.004138c0
mov eax, dword [esi + 4]
cmp eax, ebx
jne 0x524d0a
mov eax, 0x6dd1f8
mov dword [esp + 0x18], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x1c], ecx
mov esi, dword [esi + 0xc]
mov dword [esp + 0x20], esi
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x524d60
push 1
push ebp
lea ecx, [esp + 0x1c]
call fcn.00414230
test al, al
je 0x524d60
mov esi, dword [esi + 4]
cmp esi, ebx
jne 0x524d42
mov esi, 0x6dd1f8
mov edi, dword [esp + 0x18]
mov ecx, ebp
mov eax, ecx
push ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x18]
call fcn.00414210
mov eax, dword [esp + 0x20c]
mov byte [esp + 0x230], 4
cmp eax, ebx
je 0x524d90
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x524d87
cmp al, 0xff
je 0x524d87
dec al
mov byte [ecx], al
jmp 0x524d90
push ecx
call fcn.006a64d0
add esp, 4
mov cl, byte [esp + 0x14]
sub esp, 0x10
mov ebp, esp
mov dword [esp + 0x21c], ebx
mov dword [esp + 0x220], ebx
mov dword [esp + 0x224], ebx
mov byte [ebp], cl
mov dword [ebp + 4], ebx
mov dword [ebp + 8], ebx
mov dword [ebp + 0xc], ebx
mov edx, dword [esp + 0x2c]
mov ecx, dword [0x6dd1fc]
mov eax, edx
mov dword [esp + 0x3c], esp
cmp ecx, eax
mov dword [esp + 0x38], eax
jae 0x524dd8
mov eax, ecx
mov dword [esp + 0x38], eax
lea esi, [esp + 0x24]
cmp ebp, esi
jne 0x524df7
push ecx
push eax
mov ecx, ebp
call fcn.004140f0
push ebx
push ebx
mov ecx, ebp
call fcn.004140f0
jmp 0x524e7d
cmp eax, ebx
jbe 0x524e43
cmp eax, edx
jne 0x524e43
mov ecx, dword [esp + 0x28]
cmp ecx, ebx
jne 0x524e0c
mov ecx, 0x6dd1f8
cmp byte [ecx - 1], 0xfe
jae 0x524e43
push 1
mov ecx, ebp
call fcn.004138c0
mov eax, dword [esp + 0x28]
cmp eax, ebx
jne 0x524e28
mov eax, 0x6dd1f8
mov dword [ebp + 4], eax
mov edx, dword [esp + 0x2c]
mov dword [ebp + 8], edx
mov ecx, dword [esp + 0x30]
mov dword [ebp + 0xc], ecx
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x524e7d
push 1
push eax
mov ecx, ebp
call fcn.00414230
test al, al
je 0x524e7d
mov esi, dword [esp + 0x28]
cmp esi, ebx
jne 0x524e5e
mov esi, 0x6dd1f8
mov eax, dword [esp + 0x38]
mov edi, dword [ebp + 4]
mov ecx, eax
push eax
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, ebp
call fcn.00414210
push ecx
mov byte [esp + 0x244], 0xd
mov ecx, esp
mov dword [esp + 0x3c], esp
jmp 0x525030
mov eax, dword [esp + 0x40]
lea ecx, [esp + 0x174]
push eax
push 0x71dcb0
push ecx
call fcn.006a6fa5
lea edi, [esp + 0x180]
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebp, ecx
cmp ebp, 0xfffffffd
jbe 0x524ec8
call fcn.006a64db
mov edi, dword [esp + 0x18]
cmp edi, ebx
je 0x524ef0
mov al, byte [edi - 1]
cmp al, bl
je 0x524ef0
cmp al, 0xff
je 0x524ef0
cmp ebp, ebx
jne 0x524f19
dec al
push ebx
lea ecx, [esp + 0x18]
mov byte [edi - 1], al
call fcn.004138c0
jmp 0x524f49
cmp ebp, ebx
jne 0x524f01
push 1
lea ecx, [esp + 0x18]
call fcn.004138c0
jmp 0x524f49
mov eax, dword [esp + 0x20]
cmp eax, 0x1f
ja 0x524f0e
cmp eax, ebp
jae 0x524f27
push 1
lea ecx, [esp + 0x18]
call fcn.004138c0
push ebp
lea ecx, [esp + 0x18]
call fcn.00414a60
mov edi, dword [esp + 0x18]
mov ecx, ebp
lea esi, [esp + 0x174]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x1c], ebp
mov byte [eax + ebp], bl
mov cl, byte [esp + 0x14]
sub esp, 0x10
mov ebp, esp
mov dword [esp + 0x3c], esp
mov byte [ebp], cl
mov dword [ebp + 4], ebx
mov dword [ebp + 8], ebx
mov dword [ebp + 0xc], ebx
mov edx, dword [esp + 0x2c]
mov ecx, dword [0x6dd1fc]
mov eax, edx
cmp ecx, eax
mov dword [esp + 0x38], eax
jae 0x524f7c
mov eax, ecx
mov dword [esp + 0x38], eax
lea esi, [esp + 0x24]
cmp ebp, esi
jne 0x524f9b
push ecx
push eax
mov ecx, ebp
call fcn.004140f0
push ebx
push ebx
mov ecx, ebp
call fcn.004140f0
jmp 0x525021
cmp eax, ebx
jbe 0x524fe7
cmp eax, edx
jne 0x524fe7
mov ecx, dword [esp + 0x28]
cmp ecx, ebx
jne 0x524fb0
mov ecx, 0x6dd1f8
cmp byte [ecx - 1], 0xfe
jae 0x524fe7
push 1
mov ecx, ebp
call fcn.004138c0
mov eax, dword [esp + 0x28]
cmp eax, ebx
jne 0x524fcc
mov eax, 0x6dd1f8
mov dword [ebp + 4], eax
mov edx, dword [esp + 0x2c]
mov dword [ebp + 8], edx
mov ecx, dword [esp + 0x30]
mov dword [ebp + 0xc], ecx
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x525021
push 1
push eax
mov ecx, ebp
call fcn.00414230
test al, al
je 0x525021
mov esi, dword [esp + 0x28]
cmp esi, ebx
jne 0x525002
mov esi, 0x6dd1f8
mov eax, dword [esp + 0x38]
mov edi, dword [ebp + 4]
mov ecx, eax
push eax
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, ebp
call fcn.00414210
push ecx
mov byte [esp + 0x244], 0xe
mov ecx, esp
mov dword [esp + 0x3c], esp
push 6
push 0x71dca8
call fcn.0061d820
mov ecx, dword [0x72baec]
mov byte [esp + 0x244], 4
call fcn.0062e450
mov ecx, dword [0x72baec]
call fcn.0062e830
movsx eax, ax
sub eax, ebx
je 0x5250d7
dec eax
je 0x52508d
dec eax
jne 0x524b04
mov al, byte [esp + 0x26]
mov byte [esp + 0x27], 1
cmp al, bl
jne 0x524ad4
mov dword [esp + 0x38], 3
mov byte [esp + 0x3c], bl
jmp 0x524b04
mov eax, dword [esp + 0x40]
mov byte [esp + 0x27], bl
dec eax
cmp eax, 1
mov dword [esp + 0x40], eax
jge 0x5250b1
mov dword [esp + 0x40], 1
mov byte [esp + 0x13], 1
jmp 0x524b04
mov byte [esp + 0x3c], al
mov al, byte [esp + 0x13]
cmp al, bl
je 0x5250ca
mov byte [esp + 0x13], bl
mov dword [esp + 0x38], ebx
jmp 0x524b04
mov dword [esp + 0x38], 2
jmp 0x524b04
mov eax, dword [esp + 0x40]
mov byte [esp + 0x27], bl
inc eax
cmp eax, 4
mov dword [esp + 0x40], eax
jle 0x5250fb
mov dword [esp + 0x40], 4
mov byte [esp + 0x13], 1
jmp 0x524b04
mov byte [esp + 0x3c], al
mov al, byte [esp + 0x13]
cmp al, bl
je 0x525114
mov byte [esp + 0x13], bl
mov dword [esp + 0x38], ebx
jmp 0x524b04
mov dword [esp + 0x38], 1
jmp 0x524b04
push ebx
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x38], esp
push 6
push 0x7137f4
call fcn.0061d820
push ecx
mov byte [esp + 0x240], 0xb
mov ecx, esp
mov dword [esp + 0x38], esp
push 6
push 0x713840
call fcn.0061d820
mov ecx, 0x72bae0
mov byte [esp + 0x240], 4
call fcn.0061ef70
mov eax, dword [esp + 0x18]
cmp eax, ebx
je 0x52582a
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x525821
cmp al, 0xff
je 0x525821
dec al
mov byte [ecx], al
jmp 0x52582a
mov byte [esp + 0x26], 1
push ecx
lea eax, [esp + 0x23c]
mov ecx, esp
mov dword [esp + 0x30], esp
push eax
call fcn.0061d790
mov ecx, dword [0x72baec]
call fcn.0062e250
mov esi, dword [esp + 0x38]
cmp si, bx
je 0x525252
cmp byte [0x72bd0c], bl
je 0x5251dd
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push 4
push str.1234
call fcn.0061d820
jmp 0x52522a
mov eax, dword [esp + 0x3c]
sub esp, 0x24
and eax, 0xff
mov ecx, esp
mov dword [esp + 0x50], esp
push ebx
lea edx, [eax + eax*4]
push 1
lea eax, [esp + edx*2 + 0x130]
push eax
push ecx
lea ecx, [esp + 0x1e8]
call fcn.00551050
lea ecx, [esp + 0x1a4]
call fcn.0061ac40
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push ecx
lea ecx, [esp + 0x188]
call fcn.0061afb0
lea ecx, [esp + 0x34]
call fcn.0061dab0
lea ecx, [esp + 0x30]
call fcn.0061dc40
test ax, ax
jle 0x5257c2
cmp si, 3
mov dword [esp + 0x38], ebx
sete byte [esp + 0x26]
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push 6
push 0x713794
call fcn.0061d820
mov ecx, dword [0x72baec]
call fcn.0062e3d0
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push 6
push 0x71378c
call fcn.0061d820
mov ecx, dword [0x72baec]
call fcn.0062e3d0
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push 6
push 0x713774
call fcn.0061d820
mov ecx, dword [0x72baec]
call fcn.0062e3d0
cmp byte [esp + 0x27], bl
je 0x525527
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push 6
push 0x713764
call fcn.0061d820
lea edx, [esp + 0x1a8]
push edx
call fcn.0061ca80
add esp, 8
mov esi, eax
mov eax, dword [esi + 8]
mov edi, dword [0x6dd1fc]
mov ebp, eax
mov byte [esp + 0x230], 0x10
cmp edi, ebp
jae 0x5252fa
mov ebp, edi
lea ecx, [esp + 0x14]
cmp ecx, esi
jne 0x52536c
cmp dword [esp + 0x1c], ebp
jae 0x52530d
call fcn.006a6707
lea ecx, [esp + 0x14]
call fcn.00414b70
mov eax, dword [esp + 0x1c]
sub eax, ebp
cmp eax, edi
jae 0x525322
mov edi, eax
cmp edi, ebx
jbe 0x52535c
mov edx, dword [esp + 0x18]
sub eax, edi
push eax
lea ecx, [edx + ebp]
lea edx, [edi + ecx]
push edx
push ecx
call fcn.006a6c70
mov esi, dword [esp + 0x28]
add esp, 0xc
sub esi, edi
lea ecx, [esp + 0x14]
push ebx
push esi
call fcn.00414230
test al, al
je 0x52535c
push esi
lea ecx, [esp + 0x18]
call fcn.00414210
push ebx
push ebx
lea ecx, [esp + 0x1c]
call fcn.004140f0
jmp 0x5253f4
cmp ebp, ebx
jbe 0x5253b9
cmp ebp, eax
jne 0x5253b9
mov eax, dword [esi + 4]
cmp eax, ebx
jne 0x525380
mov eax, 0x6dd1f8
cmp byte [eax - 1], 0xfe
jae 0x5253b9
push 1
lea ecx, [esp + 0x18]
call fcn.004138c0
mov eax, dword [esi + 4]
cmp eax, ebx
jne 0x52539d
mov eax, 0x6dd1f8
mov dword [esp + 0x18], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x1c], ecx
mov esi, dword [esi + 0xc]
mov dword [esp + 0x20], esi
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x5253f4
push 1
push ebp
lea ecx, [esp + 0x1c]
call fcn.00414230
test al, al
je 0x5253f4
mov esi, dword [esi + 4]
cmp esi, ebx
jne 0x5253d5
mov esi, 0x6dd1f8
mov edi, dword [esp + 0x18]
mov ecx, ebp
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x1c], ebp
mov byte [ecx + ebp], bl
mov eax, dword [esp + 0x1a8]
mov byte [esp + 0x230], 4
cmp eax, ebx
je 0x525424
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x52541b
cmp al, 0xff
je 0x52541b
dec al
mov byte [ecx], al
jmp 0x525424
push ecx
call fcn.006a64d0
add esp, 4
mov dl, byte [esp + 0x14]
sub esp, 0x10
mov ebp, esp
mov dword [esp + 0x1b8], ebx
mov dword [esp + 0x1bc], ebx
mov dword [esp + 0x1c0], ebx
mov byte [ebp], dl
mov dword [ebp + 4], ebx
mov dword [ebp + 8], ebx
mov dword [ebp + 0xc], ebx
mov edx, dword [esp + 0x2c]
mov ecx, dword [0x6dd1fc]
mov eax, edx
mov dword [esp + 0x3c], esp
cmp ecx, eax
mov dword [esp + 0x38], eax
jae 0x52546c
mov eax, ecx
mov dword [esp + 0x38], eax
lea esi, [esp + 0x24]
cmp ebp, esi
jne 0x52548b
push ecx
push eax
mov ecx, ebp
call fcn.004140f0
push ebx
push ebx
mov ecx, ebp
call fcn.004140f0
jmp 0x525513
cmp eax, ebx
jbe 0x5254d7
cmp eax, edx
jne 0x5254d7
mov ecx, dword [esp + 0x28]
cmp ecx, ebx
jne 0x5254a0
mov ecx, 0x6dd1f8
cmp byte [ecx - 1], 0xfe
jae 0x5254d7
push 1
mov ecx, ebp
call fcn.004138c0
mov eax, dword [esp + 0x28]
cmp eax, ebx
jne 0x5254bc
mov eax, 0x6dd1f8
mov dword [ebp + 4], eax
mov ecx, dword [esp + 0x2c]
mov dword [ebp + 8], ecx
mov edx, dword [esp + 0x30]
mov dword [ebp + 0xc], edx
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x525513
push 1
push eax
mov ecx, ebp
call fcn.00414230
test al, al
je 0x525513
mov esi, dword [esp + 0x28]
cmp esi, ebx
jne 0x5254f2
mov esi, 0x6dd1f8
mov eax, dword [esp + 0x38]
mov edi, dword [ebp + 4]
mov ecx, eax
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp + 4]
mov dword [ebp + 8], eax
add eax, ecx
mov byte [eax], bl
push ecx
mov byte [esp + 0x244], 0x11
mov ecx, esp
mov dword [esp + 0x3c], esp
jmp 0x5256d1
fild dword [esp + 0x40]
sub esp, 8
lea eax, [esp + 0x17c]
fmul qword [0x6dd240]
fstp qword [esp]
push str._.1f_
push eax
call fcn.006a6fa5
lea edi, [esp + 0x184]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x10
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebp, ecx
cmp ebp, 0xfffffffd
jbe 0x525569
call fcn.006a64db
mov edi, dword [esp + 0x18]
cmp edi, ebx
je 0x525591
mov al, byte [edi - 1]
cmp al, bl
je 0x525591
cmp al, 0xff
je 0x525591
cmp ebp, ebx
jne 0x5255ba
dec al
push ebx
lea ecx, [esp + 0x18]
mov byte [edi - 1], al
call fcn.004138c0
jmp 0x5255ea
cmp ebp, ebx
jne 0x5255a2
push 1
lea ecx, [esp + 0x18]
call fcn.004138c0
jmp 0x5255ea
mov eax, dword [esp + 0x20]
cmp eax, 0x1f
ja 0x5255af
cmp eax, ebp
jae 0x5255c8
push 1
lea ecx, [esp + 0x18]
call fcn.004138c0
push ebp
lea ecx, [esp + 0x18]
call fcn.00414a60
mov edi, dword [esp + 0x18]
mov ecx, ebp
lea esi, [esp + 0x174]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x1c], ebp
mov byte [eax + ebp], bl
mov cl, byte [esp + 0x14]
sub esp, 0x10
mov ebp, esp
mov dword [esp + 0x3c], esp
mov byte [ebp], cl
mov dword [ebp + 4], ebx
mov dword [ebp + 8], ebx
mov dword [ebp + 0xc], ebx
mov edx, dword [esp + 0x2c]
mov ecx, dword [0x6dd1fc]
mov eax, edx
cmp ecx, eax
mov dword [esp + 0x38], eax
jae 0x52561d
mov eax, ecx
mov dword [esp + 0x38], eax
lea esi, [esp + 0x24]
cmp ebp, esi
jne 0x52563c
push ecx
push eax
mov ecx, ebp
call fcn.004140f0
push ebx
push ebx
mov ecx, ebp
call fcn.004140f0
jmp 0x5256c2
cmp eax, ebx
jbe 0x525688
cmp eax, edx
jne 0x525688
mov ecx, dword [esp + 0x28]
cmp ecx, ebx
jne 0x525651
mov ecx, 0x6dd1f8
cmp byte [ecx - 1], 0xfe
jae 0x525688
mov dword [ebp + 4], ebx
mov dword [ebp + 8], ebx
mov dword [ebp + 0xc], ebx
mov eax, dword [esp + 0x28]
cmp eax, ebx
jne 0x52566d
mov eax, 0x6dd1f8
mov dword [ebp + 4], eax
mov edx, dword [esp + 0x2c]
mov dword [ebp + 8], edx
mov ecx, dword [esp + 0x30]
mov dword [ebp + 0xc], ecx
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x5256c2
push 1
push eax
mov ecx, ebp
call fcn.00414230
test al, al
je 0x5256c2
mov esi, dword [esp + 0x28]
cmp esi, ebx
jne 0x5256a3
mov esi, 0x6dd1f8
mov eax, dword [esp + 0x38]
mov edi, dword [ebp + 4]
mov ecx, eax
push eax
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, ebp
call fcn.00414210
push ecx
mov byte [esp + 0x244], 0x12
mov ecx, esp
mov dword [esp + 0x3c], esp
push 6
push 0x71dc98
call fcn.0061d820
mov ecx, dword [0x72baec]
mov byte [esp + 0x244], 4
call fcn.0062e450
mov ecx, dword [0x72baec]
call fcn.0062e830
movsx eax, ax
sub eax, ebx
je 0x525778
dec eax
je 0x52572e
dec eax
jne 0x525194
mov al, byte [esp + 0x26]
mov byte [esp + 0x27], 1
cmp al, bl
jne 0x52588d
mov dword [esp + 0x38], 3
mov byte [esp + 0x3c], bl
jmp 0x525194
mov eax, dword [esp + 0x40]
mov byte [esp + 0x27], bl
dec eax
cmp eax, 1
mov dword [esp + 0x40], eax
jge 0x525752
mov dword [esp + 0x40], 1
mov byte [esp + 0x13], 1
jmp 0x525194
mov byte [esp + 0x3c], al
mov al, byte [esp + 0x13]
cmp al, bl
je 0x52576b
mov byte [esp + 0x13], bl
mov dword [esp + 0x38], ebx
jmp 0x525194
mov dword [esp + 0x38], 2
jmp 0x525194
mov eax, dword [esp + 0x40]
mov byte [esp + 0x27], bl
inc eax
cmp eax, 0xa
mov dword [esp + 0x40], eax
jle 0x52579c
mov dword [esp + 0x40], 0xa
mov byte [esp + 0x13], 1
jmp 0x525194
mov byte [esp + 0x3c], al
mov al, byte [esp + 0x13]
cmp al, bl
je 0x5257b5
mov byte [esp + 0x13], bl
mov dword [esp + 0x38], ebx
jmp 0x525194
mov dword [esp + 0x38], 1
jmp 0x525194
push ebx
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x38], esp
push 6
push 0x7137f4
call fcn.0061d820
push ecx
mov byte [esp + 0x240], 0xf
mov ecx, esp
mov dword [esp + 0x38], esp
push 6
push 0x713840
call fcn.0061d820
mov ecx, 0x72bae0
mov byte [esp + 0x240], 4
call fcn.0061ef70
mov eax, dword [esp + 0x18]
cmp eax, ebx
je 0x52582a
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x525821
cmp al, 0xff
je 0x525821
dec al
mov byte [ecx], al
jmp 0x52582a
push ecx
call fcn.006a64d0
add esp, 4
lea ecx, [esp + 0x1b4]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
mov byte [esp + 0x230], 2
call fcn.0054f030
lea ecx, [esp + 0x30]
mov byte [esp + 0x230], 1
call fcn.0061d8c0
lea ecx, [esp + 0x180]
mov byte [esp + 0x230], bl
call fcn.0061ab90
lea ecx, [esp + 0x238]
mov dword [esp + 0x230], 0xffffffff
call fcn.0061d8c0
xor ax, ax
jmp 0x525ca5
mov eax, dword [esp + 0x18]
cmp eax, ebx
je 0x5258b2
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x5258a9
cmp al, 0xff
je 0x5258a9
dec al
mov byte [ecx], al
jmp 0x5258b2
push ecx
call fcn.006a64d0
add esp, 4
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
jmp 0x525c52
push ecx
lea eax, [esp + 0x23c]
mov ecx, esp
mov dword [esp + 0x30], esp
push eax
call fcn.0061d790
mov ecx, dword [0x72baec]
call fcn.0062e250
cmp di, bx
je 0x525adb
cmp byte [0x72bd0c], bl
je 0x525908
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push 4
push str.1234
call fcn.0061d820
jmp 0x525955
mov eax, dword [esp + 0x3c]
sub esp, 0x24
and eax, 0xff
mov ecx, esp
mov dword [esp + 0x50], esp
push ebx
lea edx, [eax + eax*4]
push 1
lea eax, [esp + edx*2 + 0xa4]
push eax
push ecx
lea ecx, [esp + 0x1e8]
call fcn.00551050
lea ecx, [esp + 0x1a4]
call fcn.0061ac40
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push ecx
lea ecx, [esp + 0x188]
call fcn.0061afb0
lea ecx, [esp + 0x34]
call fcn.0061dab0
lea ecx, [esp + 0x30]
call fcn.0061dc40
test ax, ax
jle 0x525b99
cmp di, 1
jne case.default.0x5244a5
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push 6
push 0x71db10
call fcn.0061d820
lea edx, [esp + 0x21c]
push edx
call fcn.0061ca80
add esp, 8
mov esi, eax
mov eax, dword [esi + 8]
mov edi, dword [0x6dd1fc]
mov ebp, eax
mov byte [esp + 0x230], 0x13
cmp edi, ebp
jae 0x5259b8
mov ebp, edi
lea ecx, [esp + 0x14]
cmp ecx, esi
jne 0x525a28
cmp dword [esp + 0x1c], ebp
jae 0x5259cb
call fcn.006a6707
lea ecx, [esp + 0x14]
call fcn.00414b70
mov eax, dword [esp + 0x1c]
sub eax, ebp
cmp eax, edi
jae 0x5259e0
mov edi, eax
cmp edi, ebx
jbe 0x525a1a
mov edx, dword [esp + 0x18]
sub eax, edi
push eax
lea ecx, [edx + ebp]
lea edx, [edi + ecx]
push edx
push ecx
call fcn.006a6c70
mov esi, dword [esp + 0x28]
add esp, 0xc
sub esi, edi
lea ecx, [esp + 0x14]
push ebx
push esi
call fcn.00414230
test al, al
je 0x525a1a
push esi
lea ecx, [esp + 0x18]
call fcn.00414210
lea ecx, [esp + 0x14]
call fcn.00414b70
jmp 0x525ac1
cmp ebp, ebx
jbe 0x525a75
cmp ebp, eax
jne 0x525a75
mov eax, dword [esi + 4]
cmp eax, ebx
jne 0x525a3c
mov eax, 0x6dd1f8
cmp byte [eax - 1], 0xfe
jae 0x525a75
push 1
lea ecx, [esp + 0x18]
call fcn.004138c0
mov eax, dword [esi + 4]
cmp eax, ebx
jne 0x525a59
mov eax, 0x6dd1f8
mov dword [esp + 0x18], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x1c], ecx
mov esi, dword [esi + 0xc]
mov dword [esp + 0x20], esi
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x525ac1
push 1
push ebp
lea ecx, [esp + 0x1c]
call fcn.00414230
test al, al
je 0x525ac1
mov esi, dword [esi + 4]
cmp esi, ebx
jne 0x525a91
mov esi, 0x6dd1f8
mov edi, dword [esp + 0x18]
mov ecx, ebp
mov eax, ecx
mov byte [esp + 0x27], bl
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x27]
add edx, ebp
push ecx
push edx
mov dword [esp + 0x24], ebp
call fcn.00525ce0
add esp, 8
lea ecx, [esp + 0x218]
mov byte [esp + 0x230], 4
call fcn.00419a10
mov dword [esp + 0x38], ebx
mov edi, ebx
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push 6
push 0x71db10
call fcn.0061d820
mov ecx, dword [0x72baec]
call fcn.0062e3d0
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push 6
push 0x713774
call fcn.0061d820
mov ecx, dword [0x72baec]
call fcn.0062e3d0
sub esp, 0x10
lea eax, [esp + 0x24]
mov ecx, esp
mov dword [esp + 0x3c], esp
push eax
call fcn.00413060
push ecx
mov byte [esp + 0x244], 0x15
mov ecx, esp
mov dword [esp + 0x3c], esp
push 6
push 0x71379c
call fcn.0061d820
mov ecx, dword [0x72baec]
mov byte [esp + 0x244], 4
call fcn.0062e450
mov ecx, dword [0x72baec]
call fcn.0062e830
movsx eax, ax
sub eax, ebx
je 0x525b83
dec eax
jne case.0x5244a5.38
mov byte [esp + 0x3c], bl
mov edi, 2
jmp case.0x5244a5.38
mov cl, byte [esp + 0x37]
mov edi, 1
shl cl, 1
inc cl
mov byte [esp + 0x3c], cl
jmp case.0x5244a5.38
push ebx
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x38], esp
push 6
push 0x7137f4
call fcn.0061d820
push ecx
mov byte [esp + 0x240], 0x14
mov ecx, esp
mov dword [esp + 0x38], esp
push 6
push 0x713840
call fcn.0061d820
mov ecx, 0x72bae0
mov byte [esp + 0x240], 4
call fcn.0061ef70
lea ecx, [esp + 0x14]
mov byte [esp + 0x230], 3
call fcn.00419a10
lea ecx, [esp + 0x1b4]
mov byte [esp + 0x230], 2
call fcn.0054f030
lea ecx, [esp + 0x30]
mov byte [esp + 0x230], 1
call fcn.0061d8c0
lea ecx, [esp + 0x180]
mov byte [esp + 0x230], bl
call fcn.0061ab90
lea ecx, [esp + 0x238]
mov dword [esp + 0x230], 0xffffffff
call fcn.0061d8c0
xor ax, ax
jmp 0x525ca5
lea ecx, [esp + 0x14]
mov byte [esp + 0x230], 3
call fcn.00419a10
lea ecx, [esp + 0x1b4]
mov byte [esp + 0x230], 2
call fcn.0054f030
lea ecx, [esp + 0x30]
mov byte [esp + 0x230], 1
call fcn.0061d8c0
lea ecx, [esp + 0x180]
mov byte [esp + 0x230], bl
call fcn.0061ab90
lea ecx, [esp + 0x238]
mov dword [esp + 0x230], 0xffffffff
call fcn.0061d8c0
mov ax, 1
mov ecx, dword [esp + 0x228]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x224
ret 4