Function at 0x52aabb
Capabilities:
Write file on windows

Disassembly:
push edi
lea edi, [esp + 8]
and esp, 0xfffffff0
push dword [edi - 4]
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0xbc
movzx edx, word [ecx + 0xe]
mov eax, dword [edi]
mov dword [ebp - 0x58], ecx
mov dword [ebp - 0x3c], eax
mov eax, edx
and eax, 7
cmp ax, 5
ja case.default.0x52aae5
movzx eax, ax
jmp dword [eax*4 + 0x53f120]
mov esi, dword [ebp - 0x3c]
mov dword [esp], 4
mov ecx, esi
call fcn.0051de30
mov edx, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
sub esp, 4
lea eax, [edx + 8]
cmp eax, ecx
ja 0x52c3a5
mov esi, dword [ebp - 0x3c]
test edx, edx
mov dword [esi + 0x10], eax
je 0x52ab29
mov dword [edx], 0
mov byte [edx + 4], 1
mov eax, dword [ebp - 0x3c]
mov ebx, dword [eax]
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 8]
jae 0x52b7f0
mov edi, dword [ebp - 0x58]
lea edx, [eax + 1]
mov dword [ebx + 0xc], edx
mov byte [eax], 0x5b
mov eax, dword [edi]
mov ebx, dword [edi + 8]
mov dword [ebp - 0x48], eax
shl eax, 4
test eax, eax
je 0x52ab7c
mov esi, dword [ebp - 0x3c]
mov dword [esp], esi
mov ecx, ebx
call fcn.0052aab0
sub esp, 4
test al, al
je 0x52b610
mov eax, dword [edi]
add ebx, 0x10
shl eax, 4
add eax, dword [edi + 8]
cmp ebx, eax
jne 0x52ab58
mov esi, dword [ebp - 0x3c]
mov eax, dword [esi + 0x10]
mov ebx, dword [esi]
lea edx, [eax - 8]
mov eax, dword [eax - 8]
mov dword [esi + 0x10], edx
mov edx, dword [ebx + 8]
test eax, eax
mov eax, dword [ebx + 0xc]
je 0x52ac58
test byte [esi + 0x28], 1
jne 0x52ac58
cmp eax, edx
jae 0x52d0e6
lea edx, [eax + 1]
mov dword [ebx + 0xc], edx
mov byte [eax], 0xa
mov eax, dword [ebp - 0x3c]
movsx esi, byte [eax + 0x21]
mov ebx, dword [eax + 0x10]
sub ebx, dword [eax + 0xc]
mov dword [ebp - 0x48], esi
mov esi, dword [eax]
shr ebx, 3
imul ebx, dword [eax + 0x24]
mov edi, dword [esi + 8]
mov eax, dword [esi + 0xc]
sub edi, eax
cmp ebx, edi
jbe 0x52ac33
nop
lea esi, [esi]
mov ecx, dword [ebp - 0x48]
mov dword [esp + 8], edi
mov dword [esp], eax
mov dword [esp + 4], ecx
call sub.msvcrt.dll_memset
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 4]
add eax, edi
cmp eax, edx
mov dword [esi + 0xc], eax
je 0x52bab0
mov ecx, dword [esi]
sub eax, edx
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov dword [esp], edx
sub ebx, edi
mov dword [esp + 0xc], ecx
call sub.msvcrt.dll_fwrite
mov eax, dword [esi + 4]
mov edi, dword [esi + 8]
sub edi, eax
mov dword [esi + 0xc], eax
cmp edi, ebx
jb 0x52abe0
test ebx, ebx
je 0x52ac4d
mov edi, dword [ebp - 0x48]
mov dword [esp + 8], ebx
mov dword [esp], eax
mov dword [esp + 4], edi
call sub.msvcrt.dll_memset
add dword [esi + 0xc], ebx
mov eax, dword [ebp - 0x3c]
mov ebx, dword [eax]
mov eax, dword [ebx + 0xc]
mov edx, dword [ebx + 8]
cmp eax, edx
jae 0x52c007
lea edx, [eax + 1]
mov dword [ebx + 0xc], edx
mov byte [eax], 0x5d
mov eax, dword [ebp - 0x3c]
mov esi, dword [eax + 0x10]
cmp dword [eax + 0xc], esi
je 0x52b262
lea esp, [ebp - 0xc]
mov eax, 1
pop ebx
pop esi
pop edi
pop ebp
lea esp, [edi - 8]
pop edi
ret 4
and dh, 0x10
je 0x52b7b0
movsx eax, byte [ecx + 0xd]
mov edx, 0xd
mov dword [ebp - 0x48], ecx
sub edx, eax
mov dword [ebp - 0x40], edx
mov esi, dword [ebp - 0x3c]
mov dword [esp], 5
mov ecx, esi
call fcn.0051de30
mov ebx, dword [esi]
sub esp, 4
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 8]
jae 0x52bb51
lea edx, [eax + 1]
mov esi, dword [ebp - 0x48]
mov dword [ebx + 0xc], edx
mov byte [eax], 0x22
jmp 0x52aceb
lea ecx, [eax + 1]
mov dword [ebx + 0xc], ecx
mov byte [eax], dl
add esi, 1
mov eax, dword [ebp - 0x3c]
mov edx, esi
sub edx, dword [ebp - 0x48]
cmp edx, dword [ebp - 0x40]
mov ebx, dword [eax]
mov eax, dword [ebx + 0xc]
mov edi, dword [ebx + 8]
jae 0x52b3c5
movzx ecx, byte [esi]
mov edx, ecx
mov dword [ebp - 0x50], ecx
movzx ecx, byte [ecx + 0x54f9c0]
test cl, cl
jne 0x52b520
cmp eax, edi
jb 0x52ace0
mov ecx, dword [ebx + 4]
cmp ecx, eax
je 0x52ace0
mov edi, dword [ebx]
sub eax, ecx
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov dword [esp], ecx
mov byte [ebp - 0x50], dl
mov dword [esp + 0xc], edi
call sub.msvcrt.dll_fwrite
mov eax, dword [ebx + 4]
movzx edx, byte [ebp - 0x50]
jmp 0x52ace0
mov esi, dword [ebp - 0x3c]
mov dword [esp], 0
mov ecx, esi
call fcn.0051de30
mov ebx, dword [esi]
sub esp, 4
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 8]
jae 0x52bb22
lea edx, [eax + 1]
mov dword [ebx + 0xc], edx
mov byte [eax], 0x6e
mov eax, dword [ebp - 0x3c]
mov ebx, dword [eax]
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 8]
jae 0x52baf3
lea edx, [eax + 1]
mov dword [ebx + 0xc], edx
mov byte [eax], 0x75
mov eax, dword [ebp - 0x3c]
mov ebx, dword [eax]
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 8]
jae 0x52bac4
lea edx, [eax + 1]
mov dword [ebx + 0xc], edx
mov byte [eax], 0x6c
mov eax, dword [ebp - 0x3c]
mov ebx, dword [eax]
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 8]
jae 0x52b820
lea edx, [eax + 1]
mov dword [ebx + 0xc], edx
mov byte [eax], 0x6c
mov eax, 1
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
lea esp, [edi - 8]
pop edi
ret 4
mov esi, dword [ebp - 0x3c]
mov ebx, dword [esi + 0x10]
cmp ebx, dword [esi + 0xc]
mov edi, dword [esi]
mov eax, dword [edi + 0xc]
mov edx, dword [edi + 8]
je 0x52baa0
cmp byte [ebx - 4], 0
mov ecx, dword [ebx - 8]
jne 0x52b880
test ecx, ecx
je 0x52c065
and ecx, 1
jne 0x52c48d
cmp eax, edx
jae 0x52d426
lea edx, [eax + 1]
mov dword [edi + 0xc], edx
mov byte [eax], 0x2c
mov eax, dword [ebp - 0x3c]
mov esi, dword [eax]
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jae 0x52d31e
lea edx, [eax + 1]
mov dword [esi + 0xc], edx
mov byte [eax], 0xa
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebx - 8]
mov edi, dword [eax]
test cl, 1
mov edx, dword [edi + 8]
mov eax, dword [edi + 0xc]
je 0x52c162
add ecx, 1
mov dword [ebx - 8], ecx
cmp eax, edx
jae 0x52bc10
lea edx, [eax + 1]
mov dword [edi + 0xc], edx
mov byte [eax], 0x66
mov eax, dword [ebp - 0x3c]
mov ebx, dword [eax]
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 8]
jae 0x52bbe0
lea edx, [eax + 1]
mov dword [ebx + 0xc], edx
mov byte [eax], 0x61
mov eax, dword [ebp - 0x3c]
mov ebx, dword [eax]
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 8]
jae 0x52bbb0
lea edx, [eax + 1]
mov dword [ebx + 0xc], edx
mov byte [eax], 0x6c
mov eax, dword [ebp - 0x3c]
mov ebx, dword [eax]
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 8]
jae 0x52bb80
lea edx, [eax + 1]
mov dword [ebx + 0xc], edx
mov byte [eax], 0x73
jmp 0x52af1f
mov esi, dword [ebp - 0x3c]
mov dword [esp], 2
mov ecx, esi
call fcn.0051de30
mov ebx, dword [esi]
sub esp, 4
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 8]
jae 0x52bca0
lea edx, [eax + 1]
mov dword [ebx + 0xc], edx
mov byte [eax], 0x74
mov eax, dword [ebp - 0x3c]
mov ebx, dword [eax]
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 8]
jae 0x52bc70
lea edx, [eax + 1]
mov dword [ebx + 0xc], edx
mov byte [eax], 0x72
mov eax, dword [ebp - 0x3c]
mov ebx, dword [eax]
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 8]
jae 0x52bc40
lea edx, [eax + 1]
mov dword [ebx + 0xc], edx
mov byte [eax], 0x75
mov eax, dword [ebp - 0x3c]
mov ebx, dword [eax]
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 8]
jae 0x52b5e0
lea edx, [eax + 1]
mov dword [ebx + 0xc], edx
mov byte [eax], 0x65
lea esp, [ebp - 0xc]
mov eax, 1
pop ebx
pop esi
pop edi
pop ebp
lea esp, [edi - 8]
pop edi
ret 4
mov esi, dword [ebp - 0x3c]
mov dword [esp], 3
mov ecx, esi
call fcn.0051de30
mov edx, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
sub esp, 4
lea eax, [edx + 8]
cmp eax, ecx
ja 0x52c322
mov esi, dword [ebp - 0x3c]
test edx, edx
mov dword [esi + 0x10], eax
je 0x52af89
mov dword [edx], 0
mov byte [edx + 4], 0
mov eax, dword [ebp - 0x3c]
mov ebx, dword [eax]
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 8]
jae 0x52b850
lea edx, [eax + 1]
mov dword [ebx + 0xc], edx
mov byte [eax], 0x7b
mov eax, dword [ebp - 0x58]
mov esi, dword [eax + 8]
mov eax, dword [eax]
mov dword [ebp - 0x48], eax
shl eax, 5
mov dword [ebp - 0x54], esi
test eax, eax
je 0x52b17a
test byte [esi + 0xf], 0x10
je 0x52b090
movsx eax, byte [esi + 0xd]
mov edi, 0xd
mov dword [ebp - 0x40], esi
sub edi, eax
mov dword [ebp - 0x50], edi
mov ecx, dword [ebp - 0x3c]
mov ebx, dword [ecx + 0x10]
cmp ebx, dword [ecx + 0xc]
mov esi, dword [ecx]
mov dword [ebp - 0x48], ebx
mov eax, dword [esi + 0xc]
mov edi, dword [esi + 8]
je 0x52b0a2
cmp byte [ebx - 4], 0
mov edx, dword [ebx - 8]
je 0x52b384
test edx, edx
je 0x52b042
cmp eax, edi
jae 0x52b9d5
lea edx, [eax + 1]
mov dword [esi + 0xc], edx
mov byte [eax], 0x2c
mov eax, dword [ebp - 0x3c]
test byte [eax + 0x28], 1
je 0x52b617
mov ebx, dword [eax]
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 8]
jae 0x52c51b
lea edx, [eax + 1]
mov dword [ebx + 0xc], edx
mov byte [eax], 0x20
mov eax, dword [ebp - 0x3c]
mov esi, dword [eax]
mov eax, dword [esi + 0xc]
mov edi, dword [esi + 8]
mov ebx, dword [ebp - 0x3c]
test byte [ebx + 0x28], 1
je 0x52b61f
mov ebx, dword [ebp - 0x48]
mov edx, dword [ebx - 8]
mov ebx, dword [ebp - 0x48]
add edx, 1
cmp eax, edi
mov dword [ebx - 8], edx
jb 0x52b0aa
mov edx, dword [esi + 4]
cmp edx, eax
je 0x52b0aa
mov ecx, dword [esi]
sub eax, edx
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 0xc], ecx
call sub.msvcrt.dll_fwrite
mov eax, dword [esi + 4]
jmp 0x52b0aa
mov eax, esi
mov esi, dword [esi]
mov eax, dword [eax + 8]
mov dword [ebp - 0x50], esi
mov dword [ebp - 0x40], eax
jmp 0x52afd7
cmp eax, edi
mov byte [ecx + 0x20], 1
jae 0x52b062
lea edx, [eax + 1]
mov dword [esi + 0xc], edx
mov byte [eax], 0x22
mov esi, dword [ebp - 0x40]
jmp 0x52b0cf
movzx ecx, byte [ebp - 0x48]
lea edx, [eax + 1]
mov dword [ebx + 0xc], edx
mov byte [eax], cl
add esi, 1
mov eax, dword [ebp - 0x3c]
mov edx, esi
sub edx, dword [ebp - 0x40]
cmp edx, dword [ebp - 0x50]
mov ebx, dword [eax]
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 8]
jae 0x52b130
movzx edi, byte [esi]
mov edx, edi
mov byte [ebp - 0x48], dl
movzx edx, byte [edi + 0x54f9c0]
test dl, dl
jne 0x52b2a0
cmp eax, ecx
jb 0x52b0c0
mov edx, dword [ebx + 4]
cmp edx, eax
je 0x52b0c0
mov ecx, dword [ebx]
sub eax, edx
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 0xc], ecx
call sub.msvcrt.dll_fwrite
mov eax, dword [ebx + 4]
jmp 0x52b0c0
cmp eax, ecx
jae 0x52b355
lea edx, [eax + 1]
mov dword [ebx + 0xc], edx
mov byte [eax], 0x22
mov eax, dword [ebp - 0x54]
lea ecx, [eax + 0x10]
mov eax, dword [ebp - 0x3c]
mov dword [esp], eax
call fcn.0052aab0
sub esp, 4
test al, al
je 0x52b610
mov edi, dword [ebp - 0x58]
add dword [ebp - 0x54], 0x20
mov esi, dword [ebp - 0x54]
mov eax, dword [edi]
mov dword [ebp - 0x48], eax
shl eax, 5
add eax, dword [edi + 8]
cmp esi, eax
jne 0x52afbc
mov esi, dword [ebp - 0x3c]
mov eax, dword [esi + 0x10]
mov ebx, dword [esi]
lea edx, [eax - 8]
mov dword [esi + 0x10], edx
mov esi, dword [eax - 8]
test esi, esi
je 0x52b23e
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 8]
jae 0x52cfc5
lea edx, [eax + 1]
mov dword [ebx + 0xc], edx
mov byte [eax], 0xa
mov eax, dword [ebp - 0x3c]
movsx esi, byte [eax + 0x21]
mov ebx, dword [eax + 0x10]
sub ebx, dword [eax + 0xc]
mov dword [ebp - 0x48], esi
mov esi, dword [eax]
shr ebx, 3
imul ebx, dword [eax + 0x24]
mov edi, dword [esi + 8]
mov eax, dword [esi + 0xc]
sub edi, eax
cmp ebx, edi
jbe 0x52b21f
lea esi, [esi]
mov ecx, dword [ebp - 0x48]
mov dword [esp + 8], edi
mov dword [esp], eax
mov dword [esp + 4], ecx
call sub.msvcrt.dll_memset
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 4]
add eax, edi
cmp eax, edx
mov dword [esi + 0xc], eax
je 0x52b214
mov ecx, dword [esi]
sub eax, edx
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 0xc], ecx
call sub.msvcrt.dll_fwrite
mov eax, dword [esi + 4]
mov dword [esi + 0xc], eax
sub ebx, edi
mov edi, dword [esi + 8]
sub edi, eax
cmp ebx, edi
ja 0x52b1d0
test ebx, ebx
je 0x52b239
mov edi, dword [ebp - 0x48]
mov dword [esp + 8], ebx
mov dword [esp], eax
mov dword [esp + 4], edi
call sub.msvcrt.dll_memset
add dword [esi + 0xc], ebx
mov eax, dword [ebp - 0x3c]
mov ebx, dword [eax]
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 8]
jae 0x52c216
lea edx, [eax + 1]
mov dword [ebx + 0xc], edx
mov byte [eax], 0x7d
mov eax, dword [ebp - 0x3c]
mov esi, dword [eax + 0x10]
cmp dword [eax + 0xc], esi
jne 0x52ac78
mov ebx, dword [eax]
mov eax, dword [ebx + 0xc]
mov edx, dword [ebx + 4]
cmp eax, edx
je 0x52ac78
mov ecx, dword [ebx]
sub eax, edx
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 0xc], ecx
call sub.msvcrt.dll_fwrite
mov eax, dword [ebx + 4]
mov dword [ebx + 0xc], eax
mov eax, 1
jmp 0x52adce
cmp eax, ecx
jae 0x52b4e0
lea ecx, [eax + 1]
mov dword [ebx + 0xc], ecx
mov byte [eax], 0x5c
mov eax, dword [ebp - 0x3c]
mov ebx, dword [eax]
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 8]
jae 0x52b4a2
lea ecx, [eax + 1]
cmp dl, 0x75
mov dword [ebx + 0xc], ecx
mov byte [eax], dl
jne 0x52b0cc
mov eax, dword [ebp - 0x3c]
mov ebx, dword [eax]
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 8]
jae 0x52bd40
lea edx, [eax + 1]
mov dword [ebx + 0xc], edx
mov byte [eax], 0x30
mov eax, dword [ebp - 0x3c]
mov ebx, dword [eax]
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 8]
jae 0x52bd10
lea edx, [eax + 1]
sar edi, 4
movzx ecx, byte [edi + 0x54fac0]
mov dword [ebx + 0xc], edx
mov byte [eax], 0x30
mov eax, dword [ebp - 0x3c]
mov ebx, dword [eax]
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 8]
jae 0x52bcd0
lea edx, [eax + 1]
mov dword [ebx + 0xc], edx
mov byte [eax], cl
mov eax, dword [ebp - 0x48]
and eax, 0xf
movzx ecx, byte [eax + 0x54fac0]
mov eax, dword [ebp - 0x3c]
mov ebx, dword [eax]
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 8]
jae 0x52bd70
lea edx, [eax + 1]
mov dword [ebx + 0xc], edx
mov byte [eax], cl
jmp 0x52b0cc
mov edx, dword [ebx + 4]
cmp edx, eax
je 0x52b138
mov ecx, dword [ebx]
sub eax, edx
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 0xc], ecx
call sub.msvcrt.dll_fwrite
mov eax, dword [ebx + 4]
jmp 0x52b138
test edx, edx
je 0x52b6e5
and edx, 1
jne 0x52b976
cmp eax, edi
jae 0x52c54a
lea edx, [eax + 1]
mov dword [esi + 0xc], edx
mov byte [eax], 0x2c
mov eax, dword [ebp - 0x3c]
mov ebx, dword [eax]
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 8]
jae 0x52c45e
lea edx, [eax + 1]
mov dword [ebx + 0xc], edx
mov byte [eax], 0xa
jmp 0x52b6f6
cmp eax, edi
jae 0x52b7c0
lea edx, [eax + 1]
mov dword [ebx + 0xc], edx
mov byte [eax], 0x22
lea esp, [ebp - 0xc]
mov eax, 1
pop ebx
pop esi
pop edi
pop ebp
lea esp, [edi - 8]
pop edi
ret 4
test dh, 2
jne 0x52be20
test dl, 0x20
jne 0x52bf1e
test dl, 0x40
jne 0x52c07b
and edx, 0x80
mov esi, dword [ecx]
mov edi, dword [ecx + 4]
mov dword [esp], 6
mov ecx, dword [ebp - 0x3c]
jne 0x52ba04
lea ebx, [ebp - 0x31]
call fcn.0051de30
sub esp, 4
mov dword [esp + 4], edi
mov dword [esp + 8], ebx
mov dword [esp], esi
call fcn.00529e90
cmp eax, ebx
mov edi, eax
jne 0x52b463
jmp 0x52ac78
lea ecx, [eax + 1]
add ebx, 1
cmp edi, ebx
mov dword [esi + 0xc], ecx
mov byte [eax], dl
je 0x52ac78
mov eax, dword [ebp - 0x3c]
movzx edx, byte [ebx]
mov esi, dword [eax]
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jb 0x52b450
mov ecx, dword [esi + 4]
cmp eax, ecx
je 0x52b450
mov byte [ebp - 0x48], dl
mov edx, dword [esi]
sub eax, ecx
mov dword [esp + 8], eax
mov dword [esp + 4], 1
mov dword [esp], ecx
mov dword [esp + 0xc], edx
call sub.msvcrt.dll_fwrite
mov eax, dword [esi + 4]
movzx edx, byte [ebp - 0x48]
jmp 0x52b450
mov ecx, dword [ebx + 4]
cmp eax, ecx
je 0x52b2c2
mov byte [ebp - 0x60], dl
mov edx, dword [ebx]
sub eax, ecx
mov dword [esp + 8], eax
mov dword [esp + 4], 1
mov dword [esp], ecx
mov dword [esp + 0xc], edx
call sub.msvcrt.dll_fwrite
mov eax, dword [ebx + 4]
movzx edx, byte [ebp - 0x60]
jmp 0x52b2c2
mov ecx, dword [ebx + 4]
cmp ecx, eax
je 0x52b2a8
mov byte [ebp - 0x60], dl
mov edx, dword [ebx]
sub eax, ecx
mov dword [esp + 8], eax
mov dword [esp + 4], 1
mov dword [esp], ecx
mov dword [esp + 0xc], edx
call sub.msvcrt.dll_fwrite
mov eax, dword [ebx + 4]
movzx edx, byte [ebp - 0x60]
jmp 0x52b2a8
cmp eax, edi
jae 0x52bde3
lea edi, [eax + 1]
mov dword [ebx + 0xc], edi
mov byte [eax], 0x5c
mov eax, dword [ebp - 0x3c]
mov edi, dword [eax]
mov eax, dword [edi + 0xc]
cmp eax, dword [edi + 8]
jae 0x52bda6
lea ebx, [eax + 1]
cmp cl, 0x75
mov dword [edi + 0xc], ebx
mov byte [eax], cl
jne 0x52ace8
mov eax, dword [ebp - 0x3c]
mov ebx, dword [eax]
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 8]
jae 0x52c428
lea ecx, [eax + 1]
mov dword [ebx + 0xc], ecx
mov byte [eax], 0x30
mov eax, dword [ebp - 0x3c]
mov ebx, dword [eax]
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 8]
jae 0x52c3f2
lea ecx, [eax + 1]
mov dword [ebx + 0xc], ecx
mov byte [eax], 0x30
mov eax, dword [ebp - 0x50]
sar eax, 4
movzx edi, byte [eax + 0x54fac0]
mov eax, dword [ebp - 0x3c]
mov ebx, dword [eax]
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 8]
jae 0x52c36f
lea ecx, [eax + 1]
and edx, 0xf
movzx edx, byte [edx + 0x54fac0]
mov dword [ebx + 0xc], ecx
mov ecx, edi
mov byte [eax], cl
mov eax, dword [ebp - 0x3c]
mov ebx, dword [eax]
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 8]
jb 0x52ace0
mov ecx, dword [ebx + 4]
cmp eax, ecx
jne 0x52ad26
jmp 0x52ace0
mov edx, dword [ebx + 4]
cmp eax, edx
je 0x52af30
mov ecx, dword [ebx]
sub eax, edx
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 0xc], ecx
call sub.msvcrt.dll_fwrite
mov eax, dword [ebx + 4]
jmp 0x52af30
xor eax, eax
jmp 0x52adce
mov esi, dword [eax]
mov eax, dword [esi + 0xc]
mov edi, dword [esi + 8]
cmp eax, edi
jae 0x52c036
lea edx, [eax + 1]
mov dword [esi + 0xc], edx
mov byte [eax], 0xa
mov eax, dword [ebp - 0x3c]
mov ebx, dword [eax + 0x10]
sub ebx, dword [eax + 0xc]
movsx esi, byte [eax + 0x21]
mov edi, dword [eax]
shr ebx, 3
imul ebx, dword [eax + 0x24]
mov dword [ebp - 0x60], esi
mov eax, dword [edi + 0xc]
mov esi, dword [edi + 8]
sub esi, eax
cmp ebx, esi
jbe 0x52b6a4
mov ecx, dword [ebp - 0x60]
mov dword [esp + 8], esi
mov dword [esp], eax
mov dword [esp + 4], ecx
call sub.msvcrt.dll_memset
mov eax, dword [edi + 0xc]
mov edx, dword [edi + 4]
add eax, esi
cmp eax, edx
mov dword [edi + 0xc], eax
je 0x52b6d4
mov ecx, dword [edi]
sub eax, edx
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov dword [esp], edx
sub ebx, esi
mov dword [esp + 0xc], ecx
call sub.msvcrt.dll_fwrite
mov eax, dword [edi + 4]
mov esi, dword [edi + 8]
sub esi, eax
mov dword [edi + 0xc], eax
cmp esi, ebx
jb 0x52b655
test ebx, ebx
je 0x52b6be
mov esi, dword [ebp - 0x60]
mov dword [esp + 8], ebx
mov dword [esp], eax
mov dword [esp + 4], esi
call sub.msvcrt.dll_memset
add dword [edi + 0xc], ebx
mov eax, dword [ebp - 0x48]
mov edx, dword [eax - 8]
mov eax, dword [ebp - 0x3c]
mov esi, dword [eax]
mov eax, dword [esi + 0xc]
mov edi, dword [esi + 8]
jmp 0x52b055
sub ebx, esi
mov esi, dword [edi + 8]
sub esi, eax
cmp ebx, esi
ja 0x52b655
jmp 0x52b6a4
cmp eax, edi
jae 0x52b9a6
lea edx, [eax + 1]
mov dword [esi + 0xc], edx
mov byte [eax], 0xa
mov eax, dword [ebp - 0x48]
mov edx, dword [eax - 8]
mov eax, dword [ebp - 0x3c]
mov esi, dword [eax]
test dl, 1
mov edi, dword [esi + 8]
mov eax, dword [esi + 0xc]
jne 0x52b055
mov ecx, dword [ebp - 0x3c]
sub edi, eax
mov ebx, dword [ecx + 0x10]
sub ebx, dword [ecx + 0xc]
shr ebx, 3
imul ebx, dword [ecx + 0x24]
movsx ecx, byte [ecx + 0x21]
mov dword [ebp - 0x60], ecx
cmp ebx, edi
jbe 0x52b77f
lea esi, [esi]
mov ecx, dword [ebp - 0x60]
mov dword [esp + 8], edi
mov dword [esp], eax
mov dword [esp + 4], ecx
call sub.msvcrt.dll_memset
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 4]
add eax, edi
cmp eax, edx
mov dword [esi + 0xc], eax
je 0x52b7a2
mov ecx, dword [esi]
sub eax, edx
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov dword [esp], edx
sub ebx, edi
mov dword [esp + 0xc], ecx
call sub.msvcrt.dll_fwrite
mov eax, dword [esi + 4]
mov edi, dword [esi + 8]
sub edi, eax
mov dword [esi + 0xc], eax
cmp edi, ebx
jb 0x52b730
test ebx, ebx
je 0x52b6be
mov edi, dword [ebp - 0x60]
mov dword [esp + 8], ebx
mov dword [esp], eax
mov dword [esp + 4], edi
call sub.msvcrt.dll_memset
add dword [esi + 0xc], ebx
jmp 0x52b6be
sub ebx, edi
mov edi, dword [esi + 8]
sub edi, eax
cmp ebx, edi
ja 0x52b730
jmp 0x52b77f
mov esi, dword [ecx]
mov eax, dword [ecx + 8]
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x48], eax
jmp 0x52acaa
mov edx, dword [ebx + 4]
cmp edx, eax
je 0x52b3cd
mov ecx, dword [ebx]
sub eax, edx
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 0xc], ecx
call sub.msvcrt.dll_fwrite
mov eax, dword [ebx + 4]
jmp 0x52b3cd
mov edx, dword [ebx + 4]
cmp eax, edx
je 0x52ab3a
mov ecx, dword [ebx]
sub eax, edx
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 0xc], ecx
call sub.msvcrt.dll_fwrite
mov eax, dword [ebx + 4]
jmp 0x52ab3a
mov edx, dword [ebx + 4]
cmp eax, edx
je 0x52adc0
mov ecx, dword [ebx]
sub eax, edx
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 0xc], ecx
call sub.msvcrt.dll_fwrite
mov eax, dword [ebx + 4]
jmp 0x52adc0
mov edx, dword [ebx + 4]
cmp eax, edx
je 0x52af9a
mov ecx, dword [ebx]
sub eax, edx
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 0xc], ecx
call sub.msvcrt.dll_fwrite
mov eax, dword [ebx + 4]
jmp 0x52af9a
test ecx, ecx
je 0x52bf0c
cmp eax, edx
jae 0x52cf4e
lea edx, [eax + 1]
mov dword [edi + 0xc], edx
mov byte [eax], 0x2c
mov eax, dword [ebp - 0x3c]
test byte [eax + 0x28], 1
jne 0x52bee7
mov edi, dword [eax]
mov eax, dword [edi + 0xc]
mov edx, dword [edi + 8]
cmp eax, edx
jae 0x52cf1f
lea edx, [eax + 1]
mov dword [edi + 0xc], edx
mov byte [eax], 0xa
mov eax, dword [ebp - 0x3c]
mov esi, dword [eax + 0x10]
sub esi, dword [eax + 0xc]
shr esi, 3
imul esi, dword [eax + 0x24]
mov ecx, esi
mov dword [ebp - 0x48], esi
movsx esi, byte [eax + 0x21]
mov dword [ebp - 0x40], esi
mov esi, dword [eax]
mov eax, dword [esi + 0xc]
mov edi, dword [esi + 8]
sub edi, eax
cmp ecx, edi
jbe 0x52b943
lea esi, [esi]
mov ecx, dword [ebp - 0x40]
mov dword [esp + 8], edi
mov dword [esp], eax
mov dword [esp + 4], ecx
call sub.msvcrt.dll_memset
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 4]
add eax, edi
cmp eax, edx
mov dword [esi + 0xc], eax
je 0x52b934
mov ecx, dword [esi]
sub eax, edx
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 0xc], ecx
call sub.msvcrt.dll_fwrite
mov eax, dword [esi + 4]
mov dword [esi + 0xc], eax
sub dword [ebp - 0x48], edi
mov edi, dword [esi + 8]
mov ecx, dword [ebp - 0x48]
sub edi, eax
cmp ecx, edi
ja 0x52b8f0
mov ecx, dword [ebp - 0x48]
test ecx, ecx
je 0x52b963
mov edi, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x40]
mov dword [esp], eax
mov dword [esp + 8], edi
mov dword [esp + 4], ecx
call sub.msvcrt.dll_memset
add dword [esi + 0xc], edi
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebx - 8]
mov edi, dword [eax]
mov eax, dword [edi + 0xc]
mov edx, dword [edi + 8]
jmp 0x52ae57
cmp eax, edi
jae 0x52c4ec
lea edx, [eax + 1]
mov dword [esi + 0xc], edx
mov byte [eax], 0x3a
mov eax, dword [ebp - 0x3c]
mov ebx, dword [eax]
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 8]
jae 0x52c4bd
lea edx, [eax + 1]
mov dword [ebx + 0xc], edx
mov byte [eax], 0x20
jmp 0x52b6f6
mov edx, dword [esi + 4]
cmp edx, eax
je 0x52b6ed
mov ecx, dword [esi]
sub eax, edx
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 0xc], ecx
call sub.msvcrt.dll_fwrite
mov eax, dword [esi + 4]
jmp 0x52b6ed
mov edx, dword [esi + 4]
cmp edx, eax
je 0x52b00a
mov ecx, dword [esi]
sub eax, edx
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 0xc], ecx
call sub.msvcrt.dll_fwrite
mov eax, dword [esi + 4]
jmp 0x52b00a
call fcn.0051de30
lea eax, [ebp - 0x31]
sub esp, 4
test edi, edi
mov dword [ebp - 0x58], eax
jns 0x52ba24
neg esi
lea eax, [ebp - 0x30]
mov byte [ebp - 0x31], 0x2d
adc edi, 0
neg edi
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov dword [esp], esi
call fcn.00529e90
mov edi, eax
mov eax, dword [ebp - 0x58]
cmp edi, eax
je 0x52ac78
mov esi, eax
jmp 0x52ba58
lea ecx, [eax + 1]
add esi, 1
cmp edi, esi
mov dword [ebx + 0xc], ecx
mov byte [eax], dl
je 0x52ac78
mov eax, dword [ebp - 0x3c]
movzx edx, byte [esi]
mov ebx, dword [eax]
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 8]
jb 0x52ba45
mov ecx, dword [ebx + 4]
cmp eax, ecx
je 0x52ba45
mov byte [ebp - 0x48], dl
mov edx, dword [ebx]
sub eax, ecx
mov dword [esp + 8], eax
mov dword [esp + 4], 1
mov dword [esp], ecx
mov dword [esp + 0xc], edx
call sub.msvcrt.dll_fwrite
mov eax, dword [ebx + 4]
movzx edx, byte [ebp - 0x48]
jmp 0x52ba45
mov byte [esi + 0x20], 1
jmp 0x52ae5d
sub ebx, edi
mov edi, dword [esi + 8]
sub edi, eax
cmp ebx, edi
ja 0x52abe0
jmp 0x52ac33
mov edx, dword [ebx + 4]
cmp eax, edx
je 0x52ada6
mov ecx, dword [ebx]
sub eax, edx
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 0xc], ecx
call sub.msvcrt.dll_fwrite
mov eax, dword [ebx + 4]
jmp 0x52ada6
mov edx, dword [ebx + 4]
cmp eax, edx
je 0x52ad8c
mov ecx, dword [ebx]
sub eax, edx
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 0xc], ecx
call sub.msvcrt.dll_fwrite
mov eax, dword [ebx + 4]
jmp 0x52ad8c
mov edx, dword [ebx + 4]
cmp eax, edx
je 0x52ad72
mov ecx, dword [ebx]
sub eax, edx
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 0xc], ecx
call sub.msvcrt.dll_fwrite
mov eax, dword [ebx + 4]
jmp 0x52ad72
mov edx, dword [ebx + 4]
cmp eax, edx
je 0x52accc
mov ecx, dword [ebx]
sub eax, edx
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 0xc], ecx
call sub.msvcrt.dll_fwrite
mov eax, dword [ebx + 4]
jmp 0x52accc
mov edx, dword [ebx + 4]
cmp eax, edx
je 0x52aeb3
mov ecx, dword [ebx]
sub eax, edx
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 0xc], ecx
call sub.msvcrt.dll_fwrite
mov eax, dword [ebx + 4]
jmp 0x52aeb3
mov edx, dword [ebx + 4]
cmp eax, edx
je 0x52ae99
mov ecx, dword [ebx]
sub eax, edx
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 0xc], ecx
call sub.msvcrt.dll_fwrite
mov eax, dword [ebx + 4]
jmp 0x52ae99
mov edx, dword [ebx + 4]
cmp eax, edx
je 0x52ae7f
mov ecx, dword [ebx]
sub eax, edx
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 0xc], ecx
call sub.msvcrt.dll_fwrite
mov eax, dword [ebx + 4]
jmp 0x52ae7f
mov edx, dword [edi + 4]
cmp edx, eax
je 0x52ae65
mov ecx, dword [edi]
sub eax, edx
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 0xc], ecx
call sub.msvcrt.dll_fwrite
mov eax, dword [edi + 4]
jmp 0x52ae65
mov edx, dword [ebx + 4]
cmp eax, edx
je 0x52af16
mov ecx, dword [ebx]
sub eax, edx
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 0xc], ecx
call sub.msvcrt.dll_fwrite
mov eax, dword [ebx + 4]
jmp 0x52af16
mov edx, dword [ebx + 4]
cmp eax, edx
je 0x52aefc
mov ecx, dword [ebx]
sub eax, edx
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 0xc], ecx
call sub.msvcrt.dll_fwrite
mov eax, dword [ebx + 4]
jmp 0x52aefc
mov edx, dword [ebx + 4]
cmp eax, edx
je 0x52aee2
mov ecx, dword [ebx]
sub eax, edx
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 0xc], ecx
call sub.msvcrt.dll_fwrite
mov eax, dword [ebx + 4]
jmp 0x52aee2
mov edx, dword [ebx + 4]
cmp eax, edx
je 0x52b322
mov edi, dword [ebx]
sub eax, edx
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov dword [esp], edx
mov byte [ebp - 0x60], cl
mov dword [esp + 0xc], edi
call sub.msvcrt.dll_fwrite
mov eax, dword [ebx + 4]
movzx ecx, byte [ebp - 0x60]
jmp 0x52b322
mov edx, dword [ebx + 4]
cmp eax, edx
je 0x52b2fe
mov ecx, dword [ebx]
sub eax, edx
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 0xc], ecx
call sub.msvcrt.dll_fwrite
mov eax, dword [ebx + 4]
jmp 0x52b2fe
mov edx, dword [ebx + 4]
cmp eax, edx
je 0x52b2e4
mov ecx, dword [ebx]
sub eax, edx
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 0xc], ecx
call sub.msvcrt.dll_fwrite
mov eax, dword [ebx + 4]
jmp 0x52b2e4
mov edx, dword [ebx + 4]
cmp eax, edx
je 0x52b348
mov edi, dword [ebx]
sub eax, edx
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov dword [esp], edx
mov byte [ebp - 0x48], cl
mov dword [esp + 0xc], edi
call sub.msvcrt.dll_fwrite
mov eax, dword [ebx + 4]
movzx ecx, byte [ebp - 0x48]
jmp 0x52b348
mov ebx, dword [edi + 4]
cmp eax, ebx
je 0x52b542
mov byte [ebp - 0x58], cl
mov ecx, dword [edi]
sub eax, ebx
mov dword [esp + 8], eax
mov dword [esp + 4], 1
mov dword [esp], ebx
mov byte [ebp - 0x54], dl
mov dword [esp + 0xc], ecx
call sub.msvcrt.dll_fwrite
mov eax, dword [edi + 4]
movzx ecx, byte [ebp - 0x58]
movzx edx, byte [ebp - 0x54]
jmp 0x52b542
mov edi, dword [ebx + 4]
cmp edi, eax
je 0x52b528
mov byte [ebp - 0x58], cl
mov ecx, dword [ebx]
sub eax, edi
mov dword [esp + 8], eax
mov dword [esp + 4], 1
mov dword [esp], edi
mov byte [ebp - 0x54], dl
mov dword [esp + 0xc], ecx
call sub.msvcrt.dll_fwrite
mov eax, dword [ebx + 4]
movzx ecx, byte [ebp - 0x58]
movzx edx, byte [ebp - 0x54]
jmp 0x52b528
movsd xmm3, qword [ecx]
mov ecx, dword [ebp - 0x3c]
mov dword [esp], 6
movsd qword [ebp - 0x48], xmm3
call fcn.0051de30
mov edx, dword [ebp - 0x44]
sub esp, 4
xor eax, eax
mov ebx, dword [ebp - 0x48]
mov ecx, edx
and ecx, 0x7ff00000
cmp ecx, 0x7ff00000
je 0x52adce
mov eax, edx
and eax, 0x7fffffff
or eax, ebx
jne 0x52c579
lea eax, [ebp - 0x31]
test edx, edx
mov dword [ebp - 0x58], eax
mov edi, eax
jns 0x52be79
lea edi, [ebp - 0x30]
mov byte [ebp - 0x31], 0x2d
mov eax, 0x2e30
mov byte [edi + 2], 0x30
add edi, 3
mov word [edi - 3], ax
mov esi, dword [ebp - 0x58]
cmp edi, esi
jne 0x52bea8
jmp 0x52ac78
lea ecx, [eax + 1]
add esi, 1
cmp esi, edi
mov dword [ebx + 0xc], ecx
mov byte [eax], dl
je 0x52ac78
mov eax, dword [ebp - 0x3c]
movzx edx, byte [esi]
mov ebx, dword [eax]
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 8]
jb 0x52be95
mov ecx, dword [ebx + 4]
cmp eax, ecx
je 0x52be95
mov byte [ebp - 0x48], dl
mov edx, dword [ebx]
sub eax, ecx
mov dword [esp + 8], eax
mov dword [esp + 4], 1
mov dword [esp], ecx
mov dword [esp + 0xc], edx
call sub.msvcrt.dll_fwrite
mov eax, dword [ebx + 4]
movzx edx, byte [ebp - 0x48]
jmp 0x52be95
mov esi, dword [eax]
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jae 0x52d3ab
lea edx, [eax + 1]
mov dword [esi + 0xc], edx
mov byte [eax], 0x20
mov eax, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x3c]
mov edi, dword [eax]
mov eax, dword [edi + 0xc]
mov edx, dword [edi + 8]
test byte [esi + 0x28], 1
je 0x52b8ae
mov ecx, dword [ebx - 8]
jmp 0x52ae57
mov esi, dword [ecx]
mov ecx, dword [ebp - 0x3c]
mov dword [esp], 6
call fcn.0051de30
lea ecx, [ebp - 0x31]
sub esp, 4
test esi, esi
mov dword [ebp - 0x58], ecx
jns 0x52bf45
lea ecx, [ebp - 0x30]
mov byte [ebp - 0x31], 0x2d
neg esi
cmp esi, 0x270f
ja 0x52c245
mov eax, esi
mov edx, 0x51eb851f
mov edi, esi
mul edx
shr edx, 5
imul eax, edx, 0x64
sub edi, eax
cmp esi, 0x3e7
mov eax, edi
lea edi, [ecx + 1]
jbe 0x52cfac
movzx ebx, byte [edx + edx + 0x54fc20]
mov byte [ecx], bl
movzx edx, byte [edx + edx + 0x54fc21]
lea ebx, [edi + 1]
mov byte [edi], dl
movzx edx, byte [eax + eax + 0x54fc20]
lea ecx, [ebx + 1]
lea edi, [ebx + 2]
mov byte [ebx], dl
movzx eax, byte [eax + eax + 0x54fc21]
mov byte [ecx], al
mov eax, dword [ebp - 0x58]
cmp edi, eax
je 0x52ac78
mov esi, eax
jmp 0x52bfc8
lea ecx, [eax + 1]
add esi, 1
cmp esi, edi
mov dword [ebx + 0xc], ecx
mov byte [eax], dl
je 0x52ac78
mov eax, dword [ebp - 0x3c]
movzx edx, byte [esi]
mov ebx, dword [eax]
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 8]
jb 0x52bfb5
mov ecx, dword [ebx + 4]
cmp eax, ecx
je 0x52bfb5
mov byte [ebp - 0x48], dl
mov edx, dword [ebx]
sub eax, ecx
mov dword [esp + 8], eax
mov dword [esp + 4], 1
mov dword [esp], ecx
mov dword [esp + 0xc], edx
call sub.msvcrt.dll_fwrite
mov eax, dword [ebx + 4]
movzx edx, byte [ebp - 0x48]
jmp 0x52bfb5
mov edx, dword [ebx + 4]
cmp edx, eax
je 0x52ac60
mov ecx, dword [ebx]
sub eax, edx
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 0xc], ecx
call sub.msvcrt.dll_fwrite
mov eax, dword [ebx + 4]
jmp 0x52ac60
mov edx, dword [esi + 4]
cmp edx, eax
je 0x52b627
mov ecx, dword [esi]
sub eax, edx
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 0xc], ecx
call sub.msvcrt.dll_fwrite
mov eax, dword [esi + 4]
jmp 0x52b627
cmp eax, edx
jae 0x52cf7d
lea edx, [eax + 1]
mov dword [edi + 0xc], edx
mov byte [eax], 0xa
jmp 0x52ae40
mov ebx, dword [ecx]
mov ecx, dword [ebp - 0x3c]
mov dword [esp], 6
call fcn.0051de30
sub esp, 4
cmp ebx, 0x270f
ja 0x52ce2c
mov eax, ebx
mov edx, 0x51eb851f
mov esi, ebx
mul edx
shr edx, 5
imul eax, edx, 0x64
sub esi, eax
cmp ebx, 0x3e7
mov eax, esi
jbe 0x52d2d1
movzx ecx, byte [edx + edx + 0x54fc20]
lea esi, [ebp - 0x31]
lea ebx, [ebp - 0x30]
mov dword [ebp - 0x58], esi
mov byte [ebp - 0x31], cl
movzx edx, byte [edx + edx + 0x54fc21]
lea ecx, [ebx + 1]
mov byte [ebx], dl
movzx ebx, byte [eax + eax + 0x54fc20]
lea edx, [ecx + 1]
mov byte [ecx], bl
movzx eax, byte [eax + eax + 0x54fc21]
lea edi, [edx + 1]
mov byte [edx], al
mov eax, dword [ebp - 0x58]
cmp edi, eax
je 0x52ac78
mov esi, eax
jmp 0x52c123
lea ecx, [eax + 1]
add esi, 1
cmp esi, edi
mov dword [ebx + 0xc], ecx
mov byte [eax], dl
je 0x52ac78
mov eax, dword [ebp - 0x3c]
movzx edx, byte [esi]
mov ebx, dword [eax]
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 8]
jb 0x52c110
mov ecx, dword [ebx + 4]
cmp eax, ecx
je 0x52c110
mov byte [ebp - 0x48], dl
mov edx, dword [ebx]
sub eax, ecx
mov dword [esp + 8], eax
mov dword [esp + 4], 1
mov dword [esp], ecx
mov dword [esp + 0xc], edx
call sub.msvcrt.dll_fwrite
mov eax, dword [ebx + 4]
movzx edx, byte [ebp - 0x48]
jmp 0x52c110
mov ecx, dword [ebp - 0x3c]
sub edx, eax
mov esi, dword [ecx + 0x10]
sub esi, dword [ecx + 0xc]
shr esi, 3
imul esi, dword [ecx + 0x24]
mov dword [ebp - 0x48], esi
movsx esi, byte [ecx + 0x21]
cmp dword [ebp - 0x48], edx
mov dword [ebp - 0x40], esi
mov esi, edx
jbe 0x52c1d8
mov ecx, dword [ebp - 0x40]
mov dword [esp + 8], esi
mov dword [esp], eax
mov dword [esp + 4], ecx
call sub.msvcrt.dll_memset
mov eax, dword [edi + 0xc]
mov edx, dword [edi + 4]
add eax, esi
cmp eax, edx
mov dword [edi + 0xc], eax
je 0x52c201
mov ecx, dword [edi]
sub eax, edx
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 0xc], ecx
call sub.msvcrt.dll_fwrite
sub dword [ebp - 0x48], esi
mov eax, dword [edi + 4]
mov esi, dword [edi + 8]
mov ecx, dword [ebp - 0x48]
mov dword [edi + 0xc], eax
sub esi, eax
cmp esi, ecx
jb 0x52c185
mov edx, dword [ebp - 0x48]
test edx, edx
je 0x52b963
mov esi, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x40]
mov dword [esp], eax
mov dword [esp + 8], esi
mov dword [esp + 4], ecx
call sub.msvcrt.dll_memset
add dword [edi + 0xc], esi
jmp 0x52b963
sub dword [ebp - 0x48], esi
mov esi, dword [edi + 8]
mov ecx, dword [ebp - 0x48]
sub esi, eax
cmp ecx, esi
ja 0x52c185
jmp 0x52c1d8
mov edx, dword [ebx + 4]
cmp eax, edx
je 0x52b24a
mov ecx, dword [ebx]
sub eax, edx
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 0xc], ecx
call sub.msvcrt.dll_fwrite
mov eax, dword [ebx + 4]
jmp 0x52b24a
cmp esi, 0x5f5e0ff
ja 0x52cff4
mov ebx, 0xd1b71759
mov eax, esi
mov edi, esi
mul ebx
mov eax, edx
mov ebx, edx
mov edx, 0x431bde83
shr eax, 0xd
shr ebx, 0xd
imul eax, eax, 0x2710
sub edi, eax
mov eax, esi
mul edx
mov eax, 0x51eb851f
mov dword [ebp - 0x40], edi
shr edx, 0x12
mov edi, edx
mul ebx
mov eax, edx
shr eax, 5
imul eax, eax, 0x64
sub ebx, eax
mov eax, 0x51eb851f
mov dword [ebp - 0x48], ebx
mov ebx, dword [ebp - 0x40]
mul ebx
mov eax, edx
shr eax, 5
imul edx, eax, 0x64
sub ebx, edx
cmp esi, 0x98967f
mov edx, ebx
jbe 0x52d407
movzx ebx, byte [edi + edi + 0x54fc20]
lea esi, [ecx + 1]
mov byte [ecx], bl
movzx ecx, byte [edi + edi + 0x54fc21]
mov ebx, esi
lea esi, [esi + 1]
mov byte [ebx], cl
mov edi, dword [ebp - 0x48]
lea ecx, [esi + 1]
movzx ebx, byte [edi + edi + 0x54fc20]
mov byte [esi], bl
mov esi, dword [ebp - 0x48]
lea edi, [ecx + 5]
movzx ebx, byte [esi + esi + 0x54fc21]
mov byte [ecx], bl
movzx ebx, byte [eax + eax + 0x54fc20]
mov byte [ecx + 1], bl
movzx eax, byte [eax + eax + 0x54fc21]
mov byte [ecx + 2], al
movzx eax, byte [edx + edx + 0x54fc20]
mov byte [ecx + 3], al
movzx eax, byte [edx + edx + 0x54fc21]
mov byte [ecx + 4], al
jmp 0x52bfa6
mov eax, dword [ebp - 0x3c]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x52d308
sub ecx, eax
lea ebx, [ecx + 1]
shr ebx, 1
add ecx, ebx
mov esi, edx
sub esi, eax
lea ebx, [esi + 8]
cmp ebx, ecx
cmovb ebx, ecx
test ebx, ebx
je 0x52d0d7
mov dword [esp + 4], ebx
mov dword [esp], eax
call sub.msvcrt.dll_realloc
mov edi, dword [ebp - 0x3c]
lea edx, [eax + esi]
mov dword [edi + 0xc], eax
add eax, ebx
mov dword [edi + 0x14], eax
lea eax, [edx + 8]
jmp 0x52af75
mov ecx, dword [ebx + 4]
cmp eax, ecx
je 0x52b5a5
mov byte [ebp - 0x50], dl
mov edx, dword [ebx]
sub eax, ecx
mov dword [esp + 8], eax
mov dword [esp + 4], 1
mov dword [esp], ecx
mov dword [esp + 0xc], edx
call sub.msvcrt.dll_fwrite
mov eax, dword [ebx + 4]
movzx edx, byte [ebp - 0x50]
jmp 0x52b5a5
mov eax, dword [ebp - 0x3c]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x52d2f2
sub ecx, eax
lea ebx, [ecx + 1]
shr ebx, 1
add ecx, ebx
mov esi, edx
sub esi, eax
lea ebx, [esi + 8]
cmp ebx, ecx
cmovb ebx, ecx
test ebx, ebx
je 0x52d115
mov dword [esp + 4], ebx
mov dword [esp], eax
call sub.msvcrt.dll_realloc
mov edi, dword [ebp - 0x3c]
lea edx, [eax + esi]
mov dword [edi + 0xc], eax
add eax, ebx
mov dword [edi + 0x14], eax
lea eax, [edx + 8]
jmp 0x52ab15
mov ecx, dword [ebx + 4]
cmp eax, ecx
je 0x52b57e
mov edi, dword [ebx]
sub eax, ecx
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov dword [esp], ecx
mov byte [ebp - 0x54], dl
mov dword [esp + 0xc], edi
call sub.msvcrt.dll_fwrite
mov eax, dword [ebx + 4]
movzx edx, byte [ebp - 0x54]
jmp 0x52b57e
mov ecx, dword [ebx + 4]
cmp eax, ecx
je 0x52b564
mov edi, dword [ebx]
sub eax, ecx
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov dword [esp], ecx
mov byte [ebp - 0x54], dl
mov dword [esp + 0xc], edi
call sub.msvcrt.dll_fwrite
mov eax, dword [ebx + 4]
movzx edx, byte [ebp - 0x54]
jmp 0x52b564
mov edx, dword [ebx + 4]
cmp eax, edx
je 0x52b3b7
mov ecx, dword [ebx]
sub eax, edx
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 0xc], ecx
call sub.msvcrt.dll_fwrite
mov eax, dword [ebx + 4]
jmp 0x52b3b7
cmp eax, edx
jae 0x52d37c
lea edx, [eax + 1]
mov dword [edi + 0xc], edx
mov byte [eax], 0x3a
mov eax, dword [ebp - 0x3c]
mov esi, dword [eax]
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 8]
jae 0x52d34d
lea edx, [eax + 1]
mov dword [esi + 0xc], edx
mov byte [eax], 0x20
jmp 0x52ae40
mov edx, dword [ebx + 4]
cmp eax, edx
je 0x52b998
mov ecx, dword [ebx]
sub eax, edx
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 0xc], ecx
call sub.msvcrt.dll_fwrite
mov eax, dword [ebx + 4]
jmp 0x52b998
mov edx, dword [esi + 4]
cmp edx, eax
je 0x52b97e
mov ecx, dword [esi]
sub eax, edx
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 0xc], ecx
call sub.msvcrt.dll_fwrite
mov eax, dword [esi + 4]
jmp 0x52b97e
mov edx, dword [ebx + 4]
cmp eax, edx
je 0x52b02e
mov ecx, dword [ebx]
sub eax, edx
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 0xc], ecx
call sub.msvcrt.dll_fwrite
mov eax, dword [ebx + 4]
jmp 0x52b02e
mov edx, dword [esi + 4]
cmp edx, eax
je 0x52b39d
mov ecx, dword [esi]
sub eax, edx
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 0xc], ecx
call sub.msvcrt.dll_fwrite
mov eax, dword [esi + 4]
jmp 0x52b39d
pxor xmm1, xmm1
mov eax, dword [ebp - 0x3c]
comisd xmm1, xmmword [ebp - 0x48]
mov eax, dword [eax + 0x1c]
mov dword [ebp - 0x7c], eax
ja 0x52d3da
lea eax, [ebp - 0x31]
mov ecx, ebx
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], eax
mov eax, edx
and edx, 0xfffff
mov dword [ebp - 0x48], ecx
shr eax, 0x14
mov dword [ebp - 0x44], edx
and eax, 0x7ff
je 0x52d1d0
add dword [ebp - 0x44], 0x100000
lea esi, [eax - 0x433]
sub eax, 0x434
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x60], esi
mov eax, dword [ebp - 0x48]
mov edx, dword [ebp - 0x44]
shld edx, eax, 1
add eax, eax
mov dword [ebp - 0x50], eax
add eax, 1
mov dword [ebp - 0x4c], edx
adc edx, 0
test edx, 0x200000
jne 0x52d4b0
mov esi, dword [ebp - 0x40]
mov edi, dword [ebp - 0x44]
lea ecx, [esi - 1]
mov esi, dword [ebp - 0x48]
shld edx, eax, 1
mov ebx, ecx
add eax, eax
sub ecx, 1
test edx, 0x200000
je 0x52c600
mov dword [ebp - 0x48], esi
mov dword [ebp - 0x44], edi
shld edx, eax, 0xa
shl eax, 0xa
mov ecx, edi
mov dword [ebp - 0x70], eax
lea eax, [ebx - 0xa]
mov dword [ebp - 0x6c], edx
mov edx, dword [ebp - 0x4c]
xor ecx, 0x100000
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x50]
add eax, 0xffffffff
adc edx, 0xffffffff
or ecx, esi
je 0x52d460
mov esi, dword [ebp - 0x68]
mov ecx, dword [ebp - 0x40]
xor edi, edi
pxor xmm0, xmm0
pxor xmm2, xmm2
sub ecx, esi
shld edx, eax, cl
shl eax, cl
test cl, 0x20
cmovne edx, eax
cmovne eax, edi
mov dword [ebp - 0x50], eax
mov eax, 0xffffffc3
mov dword [ebp - 0x4c], edx
sub eax, esi
xor edx, edx
cvtsi2sd xmm0, eax
mulsd xmm0, qword [0x53f1a0]
addsd xmm0, qword [0x53f1a8]
cvttsd2si eax, xmm0
cvtsi2sd xmm2, eax
subsd xmm0, xmm2
comisd xmm0, xmm1
seta dl
add eax, edx
mov edx, 0x15c
sar eax, 3
lea esi, [eax + 1]
lea eax, [esi*8]
mov dword [ebp - 0x80], esi
sub edx, eax
mov eax, dword [esi*8 + 0x54fdc0]
mov dword [ebp - 0x9c], edx
mov edx, dword [ebp - 0x44]
mov dword [ebp - 0x40], eax
mov eax, dword [esi*8 + 0x54fdc4]
test edx, edx
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x48]
je 0x52d124
bsr ecx, edx
mov esi, eax
mov edi, edx
xor ecx, 0x1f
shld edi, esi, cl
xor ebx, ebx
shl esi, cl
test cl, 0x20
cmovne edi, esi
cmovne esi, ebx
mov ecx, dword [ebp - 0x6c]
mov dword [ebp - 0xb0], esi
mov eax, esi
mov esi, dword [ebp - 0x60]
mov dword [ebp - 0xac], edi
mov ebx, ecx
mul esi
mov dword [ebp - 0x60], ebx
mov dword [ebp - 0x90], eax
mov eax, edi
mov edi, dword [ebp - 0x40]
mov dword [ebp - 0x8c], edx
mul edi
mov dword [ebp - 0x94], edx
mov edx, dword [ebp - 0x70]
mov dword [ebp - 0x98], eax
mov eax, esi
mov ecx, edx
mul edx
mov dword [ebp - 0x70], eax
mov eax, ebx
mov dword [ebp - 0x6c], edx
mul edi
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x74], edx
mov eax, dword [ebp - 0x50]
mov edx, dword [ebp - 0x4c]
mov dword [ebp - 0x88], eax
mov ebx, edx
mul esi
mov dword [ebp - 0xa0], ebx
mov dword [ebp - 0x48], eax
mov eax, ebx
mov dword [ebp - 0x44], edx
mul edi
xor ebx, ebx
mov dword [ebp - 0x50], eax
mov eax, ecx
mov dword [ebp - 0x4c], edx
mul edi
mov ecx, dword [ebp - 0x78]
mov edi, dword [ebp - 0x74]
mov eax, edx
xor edx, edx
add eax, ecx
mov ecx, dword [ebp - 0x70]
adc edx, ebx
add eax, 0x80000000
adc edx, 0
xor ebx, ebx
add ecx, eax
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x60], esi
adc ebx, edx
mov ecx, ebx
xor ebx, ebx
mul esi
mov dword [ebp - 0xa8], ecx
mov esi, edi
mov dword [ebp - 0xa4], ebx
mov ecx, eax
mov ebx, edx
add ecx, 0xffffffff
adc ebx, 0xffffffff
xor edi, edi
add ecx, esi
adc ebx, edi
mov edi, dword [ebp - 0x6c]
mov esi, edi
xor edi, edi
mov eax, esi
mov edx, edi
add eax, ecx
adc edx, ebx
mov esi, eax
add esi, dword [ebp - 0xa8]
mov edi, edx
mov eax, dword [ebp - 0x88]
adc edi, dword [ebp - 0xa4]
mul dword [ebp - 0x40]
mov ecx, dword [ebp - 0x50]
xor ebx, ebx
mov dword [ebp - 0x78], esi
mov dword [ebp - 0x74], edi
mov eax, edx
xor edx, edx
add ecx, eax
mov eax, dword [ebp - 0x48]
adc ebx, edx
add ecx, 0x80000000
adc ebx, 0
xor edx, edx
add ecx, eax
mov ecx, esi
adc ebx, edx
xor edx, edx
mov eax, ebx
mov ebx, edi
sub ecx, eax
mov eax, dword [ebp - 0xa0]
sbb ebx, edx
mov dword [ebp - 0x70], ecx
mul dword [ebp - 0x60]
mov dword [ebp - 0x6c], ebx
mov ecx, dword [ebp - 0x6c]
not edx
mov ebx, eax
mov edi, edx
mov edx, dword [ebp - 0x4c]
not ebx
mov esi, ebx
mov eax, edx
xor edx, edx
sub esi, eax
sbb edi, edx
mov edx, dword [ebp - 0x44]
mov eax, edx
xor edx, edx
sub esi, eax
mov eax, dword [ebp - 0xb0]
sbb edi, edx
mov edx, dword [ebp - 0x70]
add edx, esi
mov dword [ebp - 0x50], edx
mov edx, dword [ebp - 0x80]
adc ecx, edi
mov dword [ebp - 0x4c], ecx
mov ecx, 0xffffffc0
xor esi, esi
xor edi, edi
movsx ebx, word [edx + edx + 0x54fd00]
mov edx, ecx
add ebx, dword [ebp - 0x68]
sub edx, ebx
mov ebx, 1
mov ecx, edx
mov dword [ebp - 0x70], edx
shld esi, ebx, cl
shl ebx, cl
test dl, 0x20
mov ecx, dword [ebp - 0x98]
cmovne esi, ebx
cmovne ebx, edi
mul dword [ebp - 0x40]
mov dword [ebp - 0x88], ebx
xor ebx, ebx
mov dword [ebp - 0x84], esi
mov eax, edx
xor edx, edx
add ecx, eax
mov eax, dword [ebp - 0x90]
adc ebx, edx
add ecx, 0x80000000
adc ebx, 0
xor edx, edx
add eax, ecx
adc edx, ebx
xor esi, esi
mov ebx, dword [ebp - 0x94]
mov edi, esi
mov esi, edx
mov edx, dword [ebp - 0x8c]
mov ecx, ebx
xor ebx, ebx
mov eax, edx
xor edx, edx
add ecx, eax
mov eax, dword [ebp - 0xac]
adc ebx, edx
mul dword [ebp - 0x60]
add eax, ecx
mov ecx, dword [ebp - 0x78]
adc edx, ebx
add eax, esi
mov ebx, dword [ebp - 0x74]
adc edx, edi
mov esi, ecx
sub esi, eax
mov eax, ecx
mov edi, ebx
mov dword [ebp - 0x68], esi
mov esi, ecx
movzx ecx, byte [ebp - 0x70]
sbb edi, edx
mov edx, ebx
mov dword [ebp - 0x64], edi
mov edi, ebx
shrd eax, ebx, cl
shr edx, cl
test cl, 0x20
mov ebx, esi
cmovne eax, edx
mov edx, dword [ebp - 0x84]
mov esi, edi
mov ecx, eax
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x88]
add eax, 0xffffffff
adc edx, 0xffffffff
and ebx, eax
mov dword [ebp - 0x78], eax
and esi, edx
cmp ecx, 9
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x74], edx
mov dword [ebp - 0x44], esi
mov ebx, 1
jbe 0x52c9aa
cmp ecx, 0x63
mov ebx, 2
jbe 0x52c9aa
cmp ecx, 0x3e7
mov ebx, 3
jbe 0x52c9aa
cmp ecx, 0x270f
mov ebx, 4
jbe 0x52c9aa
cmp ecx, 0x1869f
mov ebx, 5
jbe 0x52c9aa
cmp ecx, 0xf423f
mov ebx, 6
jbe 0x52c9aa
cmp ecx, 0x98967f
jbe 0x52d637
cmp ecx, 0x5f5e100
sbb ebx, ebx
add ebx, 9
mov dword [ebp - 0x40], 0
cmp ebx, 9
ja case.0x52c9b6.0
jmp dword [ebx*4 + 0x53f138]
mov esi, dword [ebp - 0x48]
mov edi, dword [ebp - 0x44]
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x60], 0
lea esi, [esi]
test eax, eax
je 0x52cdd4
add eax, 0x30
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x54]
mov byte [edx + ecx], al
lea eax, [ecx + 1]
mov dword [ebp - 0x40], eax
mov edx, dword [ebp - 0x4c]
sub ebx, 1
mov eax, dword [ebp - 0x50]
cmp edx, edi
jb 0x52cc02
jbe 0x52cbfa
mov eax, dword [ebp - 0x9c]
movzx ecx, byte [ebp - 0x70]
xor edx, edx
add eax, ebx
mov dword [ebp - 0x78], eax
mov eax, dword [ebx*4 + 0x550a40]
xor ebx, ebx
shld edx, eax, cl
shl eax, cl
test cl, 0x20
cmovne edx, eax
cmovne eax, ebx
mov dword [ebp - 0x6c], edx
mov edx, dword [ebp - 0x64]
mov dword [ebp - 0x70], eax
mov eax, dword [ebp - 0x68]
cmp edx, edi
jb 0x52cac0
ja 0x52ca43
cmp eax, esi
jbe 0x52cac0
mov ecx, dword [ebp - 0x50]
mov ebx, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x70]
sub ecx, esi
sbb ebx, edi
cmp ebx, edx
jb 0x52cac0
ja 0x52ca5d
cmp ecx, eax
jb 0x52cac0
sub ecx, dword [ebp - 0x70]
mov eax, dword [ebp - 0x54]
sbb ebx, dword [ebp - 0x6c]
mov edx, dword [ebp - 0x6c]
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x44], ebx
mov ebx, dword [ebp - 0x40]
lea eax, [eax + ebx - 1]
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x70]
mov ecx, esi
mov ebx, edi
add ecx, eax
adc ebx, edx
cmp dword [ebp - 0x64], ebx
ja 0x52cde9
jb 0x52ca98
cmp dword [ebp - 0x68], ecx
ja 0x52cde9
mov eax, dword [ebp - 0x68]
mov edx, dword [ebp - 0x64]
sub eax, esi
sbb edx, edi
sub ecx, dword [ebp - 0x68]
sbb ebx, dword [ebp - 0x64]
cmp edx, ebx
jb 0x52cac0
ja 0x52cdc4
cmp eax, ecx
ja 0x52cdc4
lea esi, [esi]
mov eax, dword [ebp - 0x40]
mov edi, dword [ebp - 0x78]
mov esi, eax
add esi, edi
test edi, edi
js 0x52d137
cmp esi, 0x15
jg 0x52d137
cmp esi, eax
jle 0x52caf6
add eax, dword [ebp - 0x54]
mov dword [esp + 8], edi
mov dword [esp + 4], 0x30
mov dword [esp], eax
call sub.msvcrt.dll_memset
mov eax, dword [ebp - 0x54]
mov byte [eax + esi], 0x2e
mov byte [eax + esi + 1], 0x30
lea edi, [eax + esi + 2]
jmp 0x52be89
mov eax, dword [ebp - 0x60]
mov edx, 0x6b5fca6b
mul edx
shr edx, 0x16
mov eax, edx
imul edx, edx, 0x989680
sub dword [ebp - 0x60], edx
mov esi, dword [ebp - 0x60]
movzx ecx, byte [ebp - 0x70]
xor edi, edi
xor edx, edx
shld edi, esi, cl
shl esi, cl
test cl, 0x20
cmovne edi, esi
cmovne esi, edx
add esi, dword [ebp - 0x48]
adc edi, dword [ebp - 0x44]
jmp 0x52c9d0
mov eax, dword [ebp - 0x60]
mov edx, 0x431bde83
mul edx
shr edx, 0x12
mov eax, edx
imul edx, edx, 0xf4240
jmp 0x52cb20
mov esi, dword [ebp - 0x60]
mov edx, 0xa7c5ac5
mov eax, esi
shr eax, 5
mul edx
mov eax, edx
shr eax, 7
imul edx, eax, 0x186a0
sub esi, edx
mov dword [ebp - 0x60], esi
jmp 0x52cb26
mov eax, dword [ebp - 0x60]
mov edx, 0xd1b71759
mul edx
shr edx, 0xd
mov eax, edx
imul edx, edx, 0x2710
jmp 0x52cb20
mov eax, dword [ebp - 0x60]
mov edx, 0x10624dd3
mul edx
shr edx, 6
mov eax, edx
imul edx, edx, 0x3e8
jmp 0x52cb20
mov eax, dword [ebp - 0x60]
mov edx, 0x51eb851f
mul edx
shr edx, 5
mov eax, edx
imul edx, edx, 0x64
jmp 0x52cb20
mov eax, dword [ebp - 0x60]
mov edx, 0xcccccccd
mul edx
shr edx, 3
mov eax, edx
lea edx, [edx + edx*4]
add edx, edx
jmp 0x52cb20
mov eax, dword [ebp - 0x60]
mov edx, 0x55e63b89
mul edx
shr edx, 0x19
mov eax, edx
imul edx, edx, 0x5f5e100
jmp 0x52cb20
cmp eax, esi
jae 0x52ca01
test ebx, ebx
jne 0x52c9b1
mov esi, dword [ebp - 0x48]
mov eax, 0xa
mov edi, dword [ebp - 0x44]
mul esi
imul ecx, edi, 0xa
mov esi, eax
mov edi, edx
mov eax, 0xa
mul dword [ebp - 0x50]
add edi, ecx
imul ecx, dword [ebp - 0x4c], 0xa
mov dword [ebp - 0x4c], edx
add dword [ebp - 0x4c], ecx
mov edx, edi
movzx ecx, byte [ebp - 0x70]
mov dword [ebp - 0x50], eax
mov eax, esi
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
je 0x52cc49
mov eax, edx
test al, al
jne 0x52cc58
mov edx, dword [ebp - 0x40]
test edx, edx
je 0x52cf13
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x54]
add eax, 0x30
mov byte [edx + ecx], al
lea eax, [ecx + 1]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x78]
mov edx, dword [ebp - 0x74]
sub ebx, 1
mov ecx, eax
mov eax, dword [ebp - 0x50]
and ecx, esi
mov esi, edi
and esi, edx
mov edx, dword [ebp - 0x4c]
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x44], esi
mov edi, dword [ebp - 0x44]
mov esi, dword [ebp - 0x48]
cmp edx, edi
jb 0x52cc0a
jbe 0x52cf06
mov eax, dword [ebp - 0x9c]
add eax, ebx
cmp ebx, 0xfffffff8
mov dword [ebp - 0x78], eax
jl 0x52cac0
mov edi, dword [ebp - 0x64]
neg ebx
mov esi, dword [ebp - 0x68]
mov eax, dword [ebx*4 + 0x550a40]
mov ecx, edi
imul ecx, eax
mul esi
mov dword [ebp - 0x64], edx
add dword [ebp - 0x64], ecx
mov edi, dword [ebp - 0x64]
mov edx, dword [ebp - 0x44]
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x48]
mov esi, dword [ebp - 0x68]
cmp edx, edi
ja 0x52cac0
jb 0x52ccec
cmp eax, esi
jae 0x52cac0
mov eax, dword [ebp - 0x50]
sub eax, dword [ebp - 0x48]
mov edx, dword [ebp - 0x4c]
sbb edx, dword [ebp - 0x44]
mov edi, dword [ebp - 0x84]
mov esi, dword [ebp - 0x88]
cmp edx, edi
jb 0x52cac0
ja 0x52cd16
cmp eax, esi
jb 0x52cac0
mov esi, dword [ebp - 0x50]
mov eax, dword [ebp - 0x88]
mov edi, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x84]
mov ebx, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x40]
sub esi, eax
sbb edi, edx
sub esi, dword [ebp - 0x48]
sbb edi, dword [ebp - 0x44]
lea ebx, [ebx + ecx - 1]
mov dword [ebp - 0x70], ebx
mov dword [ebp - 0x50], esi
mov dword [ebp - 0x4c], edi
mov ecx, dword [ebp - 0x48]
mov ebx, dword [ebp - 0x44]
add ecx, eax
adc ebx, edx
mov esi, ecx
mov dword [ebp - 0x60], ecx
mov edi, ebx
mov dword [ebp - 0x5c], ebx
mov ebx, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x68]
cmp ebx, edi
ja 0x52cd92
jb 0x52cd69
cmp ecx, esi
ja 0x52cd92
mov esi, dword [ebp - 0x68]
mov edi, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x60]
mov ebx, dword [ebp - 0x5c]
mov eax, esi
sub eax, dword [ebp - 0x48]
mov edx, edi
sbb edx, dword [ebp - 0x44]
sub ecx, esi
sbb ebx, edi
cmp edx, ebx
ja 0x52cdc4
jb 0x52cac0
jmp 0x52cab2
mov ebx, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x50]
mov dword [ebp - 0x48], esi
mov dword [ebp - 0x44], edi
sub byte [ebx], 1
mov ebx, dword [ebp - 0x4c]
sub ecx, eax
sbb ebx, edx
cmp edx, dword [ebp - 0x4c]
ja 0x52cac0
jb 0x52cdbc
cmp eax, dword [ebp - 0x50]
ja 0x52cac0
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x4c], ebx
jmp 0x52cd45
mov eax, dword [ebp - 0x54]
mov esi, dword [ebp - 0x40]
sub byte [eax + esi - 1], 1
jmp 0x52cac0
mov eax, dword [ebp - 0x40]
test eax, eax
je 0x52c9ea
mov eax, 0x30
jmp 0x52c9db
mov esi, dword [ebp - 0x60]
mov edi, dword [ebp - 0x44]
sub byte [esi], 1
mov esi, dword [ebp - 0x48]
sub esi, eax
sbb edi, edx
mov dword [ebp - 0x50], esi
mov esi, ecx
mov dword [ebp - 0x4c], edi
mov edi, ebx
mov ebx, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x48]
cmp edx, ebx
ja 0x52cac0
jb 0x52ce1b
cmp eax, ecx
ja 0x52cac0
mov ecx, dword [ebp - 0x50]
mov ebx, dword [ebp - 0x4c]
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x44], ebx
jmp 0x52ca7c
cmp ebx, 0x5f5e0ff
ja 0x52d1e3
mov esi, 0xd1b71759
mov eax, ebx
mul esi
mov eax, ebx
mov ecx, edx
mov esi, edx
mov edx, 0x431bde83
shr ecx, 0xd
shr esi, 0xd
imul edi, ecx, 0x2710
mov ecx, ebx
mul edx
mov eax, 0x51eb851f
sub ecx, edi
mov edi, edx
mul esi
shr edi, 0x12
mov eax, edx
shr eax, 5
imul eax, eax, 0x64
sub esi, eax
mov eax, 0x51eb851f
mul ecx
mov eax, edx
shr eax, 5
imul edx, eax, 0x64
sub ecx, edx
cmp ebx, 0x98967f
mov dword [ebp - 0x48], ecx
jbe 0x52d483
movzx edx, byte [edi + edi + 0x54fc20]
lea ebx, [ebp - 0x31]
mov dword [ebp - 0x58], ebx
mov byte [ebp - 0x31], dl
lea edx, [ebp - 0x30]
movzx ecx, byte [edi + edi + 0x54fc21]
lea ebx, [edx + 1]
mov byte [edx], cl
movzx ecx, byte [esi + esi + 0x54fc20]
lea edx, [ebx + 1]
mov byte [ebx], cl
movzx ebx, byte [esi + esi + 0x54fc21]
mov esi, dword [ebp - 0x48]
lea edi, [edx + 5]
mov byte [edx], bl
movzx ebx, byte [eax + eax + 0x54fc20]
mov byte [edx + 1], bl
movzx eax, byte [eax + eax + 0x54fc21]
mov byte [edx + 2], al
movzx eax, byte [esi + esi + 0x54fc20]
mov byte [edx + 3], al
movzx eax, byte [esi + esi + 0x54fc21]
mov byte [edx + 4], al
mov eax, dword [ebp - 0x58]
jmp 0x52c0fa
cmp eax, esi
jbe 0x52cc0a
jmp 0x52cc9b
mov dword [ebp - 0x40], 0
jmp 0x52cc6a
mov edx, dword [edi + 4]
cmp edx, eax
je 0x52b8b6
mov ecx, dword [edi]
sub eax, edx
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 0xc], ecx
call sub.msvcrt.dll_fwrite
mov eax, dword [edi + 4]
jmp 0x52b8b6
mov edx, dword [edi + 4]
cmp edx, eax
je 0x52b890
mov ecx, dword [edi]
sub eax, edx
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 0xc], ecx
call sub.msvcrt.dll_fwrite
mov eax, dword [edi + 4]
jmp 0x52b890
mov edx, dword [edi + 4]
cmp edx, eax
je 0x52c06d
mov ecx, dword [edi]
sub eax, edx
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 0xc], ecx
call sub.msvcrt.dll_fwrite
mov eax, dword [edi + 4]
jmp 0x52c06d
cmp esi, 0x63
ja 0x52d6ab
cmp esi, 9
jbe 0x52bf9c
mov ebx, ecx
jmp 0x52bf8c
mov edx, dword [ebx + 4]
cmp eax, edx
je 0x52b19f
mov ecx, dword [ebx]
sub eax, edx
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 0xc], ecx
call sub.msvcrt.dll_fwrite
mov eax, dword [ebx + 4]
jmp 0x52b19f
mov eax, esi
mov edx, 0x55e63b89
mul edx
mov eax, edx
shr eax, 0x19
imul edx, eax, 0x5f5e100
sub esi, edx
cmp eax, 9
jbe 0x52d455
movzx edx, byte [eax + eax + 0x54fc20]
movzx eax, byte [eax + eax + 0x54fc21]
lea ebx, [ecx + 2]
mov byte [ecx + 1], al
mov byte [ecx], dl
mov eax, esi
mov ecx, 0xd1b71759
mul ecx
mov edi, edx
mov ecx, edx
mov edx, 0x431bde83
shr edi, 0xd
shr ecx, 0xd
imul eax, edi, 0x2710
mov edi, esi
sub edi, eax
mov eax, esi
mul edx
mov eax, 0x51eb851f
mov esi, edx
mul ecx
shr esi, 0x12
mov eax, edx
shr eax, 5
imul eax, eax, 0x64
sub ecx, eax
mov eax, 0x51eb851f
mul edi
shr edx, 5
imul eax, edx, 0x64
sub edi, eax
movzx eax, byte [esi + esi + 0x54fc20]
mov byte [ebx], al
movzx eax, byte [esi + esi + 0x54fc21]
mov byte [ebx + 1], al
movzx eax, byte [ecx + ecx + 0x54fc20]
mov byte [ebx + 2], al
movzx ecx, byte [ecx + ecx + 0x54fc21]
mov eax, edi
mov byte [ebx + 3], cl
movzx ecx, byte [edx + edx + 0x54fc20]
mov byte [ebx + 4], cl
movzx edx, byte [edx + edx + 0x54fc21]
mov byte [ebx + 5], dl
movzx edx, byte [edi + edi + 0x54fc20]
lea edi, [ebx + 8]
mov byte [ebx + 6], dl
movzx eax, byte [eax + eax + 0x54fc21]
mov byte [ebx + 7], al
jmp 0x52bfa6
mov dword [esp], eax
call sub.msvcrt.dll_free
xor eax, eax
jmp 0x52c359
mov edx, dword [ebx + 4]
cmp edx, eax
je 0x52abad
mov ecx, dword [ebx]
sub eax, edx
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 0xc], ecx
call sub.msvcrt.dll_fwrite
mov eax, dword [ebx + 4]
jmp 0x52abad
mov dword [esp], eax
call sub.msvcrt.dll_free
xor eax, eax
jmp 0x52c3dc
bsr ecx, dword [ebp - 0x48]
mov esi, eax
mov edi, edx
xor ecx, 0x1f
add ecx, 0x20
jmp 0x52c6e9
lea ebx, [esi - 1]
cmp ebx, 0x14
jbe 0x52d4be
lea eax, [esi + 5]
cmp eax, 5
jbe 0x52d52b
mov eax, dword [ebp - 0x7c]
neg eax
cmp esi, eax
mov eax, dword [ebp - 0x54]
jl 0x52d5a7
cmp dword [ebp - 0x40], 1
lea ecx, [eax + 2]
je 0x52d613
mov edi, dword [ebp - 0x40]
mov dword [esp], ecx
lea eax, [edi - 1]
mov edi, dword [ebp - 0x54]
mov dword [esp + 8], eax
mov eax, edi
add eax, 1
mov dword [esp + 4], eax
call sub.msvcrt.dll_memmove
mov eax, edi
mov byte [edi + 1], 0x2e
mov edi, dword [ebp - 0x40]
test ebx, ebx
mov byte [eax + edi + 1], 0x65
lea ecx, [eax + edi + 2]
jns 0x52d1ad
mov ebx, 1
mov byte [ecx], 0x2d
add ecx, 1
sub ebx, esi
cmp ebx, 0x63
jg 0x52d66a
cmp ebx, 9
jg 0x52d64d
add ebx, 0x30
lea edi, [ecx + 1]
mov byte [ecx], bl
jmp 0x52be89
mov dword [ebp - 0x40], 0xfffffbcd
mov dword [ebp - 0x60], 0xfffffbce
jmp 0x52c5d0
mov eax, ebx
mov edx, 0x55e63b89
mul edx
mov eax, edx
shr eax, 0x19
imul edx, eax, 0x5f5e100
sub ebx, edx
cmp eax, 9
mov ecx, ebx
jbe 0x52d478
movzx edx, byte [eax + eax + 0x54fc20]
movzx eax, byte [eax + eax + 0x54fc21]
lea ebx, [ebp - 0x2f]
mov byte [ebp - 0x30], al
mov eax, ecx
mov edi, 0xd1b71759
mov byte [ebp - 0x31], dl
mul edi
mov eax, ecx
mov esi, edx
mov edi, edx
mov edx, 0x431bde83
shr esi, 0xd
shr edi, 0xd
imul esi, esi, 0x2710
sub eax, esi
mov esi, eax
mov eax, ecx
mul edx
mov eax, 0x51eb851f
mov ecx, edx
mul edi
shr ecx, 0x12
mov eax, edx
shr eax, 5
imul eax, eax, 0x64
sub edi, eax
mov eax, 0x51eb851f
mul esi
mov eax, edx
shr eax, 5
imul edx, eax, 0x64
sub esi, edx
movzx edx, byte [ecx + ecx + 0x54fc20]
mov byte [ebx], dl
movzx edx, byte [ecx + ecx + 0x54fc21]
mov byte [ebx + 1], dl
movzx edx, byte [edi + edi + 0x54fc20]
mov byte [ebx + 2], dl
movzx edx, byte [edi + edi + 0x54fc21]
lea edi, [ebx + 8]
mov byte [ebx + 3], dl
movzx edx, byte [eax + eax + 0x54fc20]
movzx eax, byte [eax + eax + 0x54fc21]
mov byte [ebx + 4], dl
mov byte [ebx + 5], al
movzx eax, byte [esi + esi + 0x54fc20]
mov byte [ebx + 6], al
movzx eax, byte [esi + esi + 0x54fc21]
mov byte [ebx + 7], al
lea eax, [ebp - 0x31]
mov dword [ebp - 0x58], eax
jmp 0x52c0fa
lea esi, [ebp - 0x31]
cmp ebx, 0x63
mov dword [ebp - 0x58], esi
ja 0x52d6a4
cmp ebx, 9
mov edx, esi
jbe 0x52c0ea
mov ecx, esi
jmp 0x52c0dd
mov esi, dword [ebp - 0x3c]
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x52d5db
mov ecx, dword [esi + 0x18]
jmp 0x52c3bc
mov esi, dword [ebp - 0x3c]
mov edi, dword [esi + 4]
test edi, edi
je 0x52d5bb
mov ecx, dword [esi + 0x18]
jmp 0x52c339
mov edx, dword [esi + 4]
cmp eax, edx
je 0x52ae37
mov ecx, dword [esi]
sub eax, edx
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 0xc], ecx
call sub.msvcrt.dll_fwrite
mov eax, dword [esi + 4]
jmp 0x52ae37
mov edx, dword [esi + 4]
cmp eax, edx
je 0x52c4af
mov ecx, dword [esi]
sub eax, edx
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 0xc], ecx
call sub.msvcrt.dll_fwrite
mov eax, dword [esi + 4]
jmp 0x52c4af
mov edx, dword [edi + 4]
cmp edx, eax
je 0x52c495
mov ecx, dword [edi]
sub eax, edx
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 0xc], ecx
call sub.msvcrt.dll_fwrite
mov eax, dword [edi + 4]
jmp 0x52c495
mov edx, dword [esi + 4]
cmp eax, edx
je 0x52bef5
mov ecx, dword [esi]
sub eax, edx
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 0xc], ecx
call sub.msvcrt.dll_fwrite
mov eax, dword [esi + 4]
jmp 0x52bef5
movsd xmm5, qword [ebp - 0x48]
lea eax, [ebp - 0x30]
mov byte [ebp - 0x31], 0x2d
xorpd xmm5, xmmword [0x53f190]
mov dword [ebp - 0x54], eax
lea eax, [ebp - 0x31]
mov dword [ebp - 0x58], eax
movsd qword [ebp - 0x48], xmm5
mov ecx, dword [ebp - 0x48]
mov edx, dword [ebp - 0x44]
jmp 0x52c59c
cmp esi, 0xf423f
ja 0x52d630
cmp esi, 0x1869f
jbe 0x52c2e1
mov esi, ecx
jmp 0x52c2d1
mov edx, dword [edi + 4]
cmp edx, eax
je 0x52ae1d
mov ecx, dword [edi]
sub eax, edx
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 0xc], ecx
call sub.msvcrt.dll_fwrite
mov eax, dword [edi + 4]
jmp 0x52ae1d
lea ebx, [ecx + 1]
lea edx, [eax + 0x30]
jmp 0x52d029
mov eax, dword [ebp - 0x60]
mov edx, 0x3fffff
sub eax, 2
mov dword [ebp - 0x40], eax
mov eax, 0xffffffff
jmp 0x52c648
lea edx, [eax + 0x30]
lea ebx, [ebp - 0x30]
jmp 0x52d21a
cmp ebx, 0xf423f
ja 0x52d697
lea edi, [ebp - 0x31]
cmp ebx, 0x1869f
mov dword [ebp - 0x58], edi
mov edx, edi
jbe 0x52cec2
mov ebx, edi
jmp 0x52ceb5
mov ebx, dword [ebp - 0x40]
mov esi, dword [ebp - 0x48]
mov edi, dword [ebp - 0x44]
jmp 0x52c619
mov eax, dword [ebp - 0x78]
mov ecx, dword [ebp - 0x54]
lea ebx, [esi + 1]
neg eax
lea edi, [ecx + esi]
mov dword [esp + 8], eax
lea eax, [ecx + ebx]
mov dword [esp + 4], edi
mov dword [esp], eax
call sub.msvcrt.dll_memmove
mov eax, dword [ebp - 0x78]
add eax, dword [ebp - 0x7c]
mov byte [edi], 0x2e
mov ecx, dword [ebp - 0x54]
mov edi, dword [ebp - 0x40]
lea edi, [ecx + edi + 1]
jns 0x52be89
mov eax, dword [ebp - 0x7c]
add eax, esi
cmp eax, ebx
jle 0x52d641
cmp byte [ecx + eax], 0x30
jne 0x52d51f
sub eax, 1
cmp eax, ebx
je 0x52d641
mov edi, dword [ebp - 0x54]
cmp byte [edi + eax], 0x30
je 0x52d50b
mov esi, dword [ebp - 0x54]
lea edi, [esi + eax + 1]
jmp 0x52be89
mov ebx, 2
mov eax, dword [ebp - 0x40]
sub ebx, esi
mov esi, dword [ebp - 0x54]
mov dword [esp + 8], eax
lea eax, [esi + ebx]
mov dword [esp + 4], esi
mov dword [esp], eax
call sub.msvcrt.dll_memmove
mov ecx, 0x2e30
cmp ebx, 2
mov word [esi], cx
je 0x52d56f
mov ecx, ebx
lea edx, [esi + 2]
sub ecx, 2
je 0x52d56f
xor eax, eax
mov byte [edx + eax], 0x30
add eax, 1
cmp eax, ecx
jb 0x52d564
mov eax, dword [ebp - 0x78]
mov esi, dword [ebp - 0x7c]
neg eax
cmp esi, eax
jge 0x52d606
lea eax, [esi + 1]
cmp eax, 2
jle 0x52d5fb
mov edi, dword [ebp - 0x54]
cmp byte [edi + esi + 1], 0x30
jne 0x52d51f
sub eax, 1
cmp eax, 2
je 0x52d5fb
mov esi, dword [ebp - 0x54]
cmp byte [esi + eax], 0x30
je 0x52d591
jmp 0x52d51f
mov edx, 0x2e30
mov byte [eax + 2], 0x30
lea edi, [eax + 3]
mov word [eax], dx
jmp 0x52be89
mov dword [esp], 1
call fcn.0053ca80
mov esi, dword [ebp - 0x3c]
mov dword [esi + 4], eax
mov dword [esi + 8], eax
mov edx, dword [esi + 0x10]
mov eax, dword [esi + 0xc]
jmp 0x52d316
mov dword [esp], 1
call fcn.0053ca80
mov esi, dword [ebp - 0x3c]
mov dword [esi + 4], eax
mov dword [esi + 8], eax
mov edx, dword [esi + 0x10]
mov eax, dword [esi + 0xc]
jmp 0x52d300
mov edi, dword [ebp - 0x54]
add edi, 3
jmp 0x52be89
add ebx, dword [ebp - 0x40]
mov edi, dword [ebp - 0x54]
add edi, ebx
jmp 0x52be89
test ebx, ebx
mov byte [eax + 1], 0x65
jns 0x52d1ad
mov ebx, dword [ebp - 0x40]
lea ecx, [eax + 3]
mov byte [eax + 2], 0x2d
sub ebx, esi
jmp 0x52d1ad
mov esi, ecx
jmp 0x52c2c2
mov ebx, 7
jmp 0x52c9aa
mov eax, dword [ebp - 0x54]
lea edi, [eax + esi + 2]
jmp 0x52be89
add ebx, ebx
lea edi, [ecx + 2]
movzx eax, byte [ebx + 0x54fc20]
mov byte [ecx], al
movzx eax, byte [ebx + 0x54fc21]
mov byte [ecx + 1], al
jmp 0x52be89
mov eax, ebx
mov esi, 0x64
lea edi, [ecx + 3]
cdq
idiv esi
add eax, 0x30
add edx, edx
mov byte [ecx], al
movzx eax, byte [edx + 0x54fc20]
mov byte [ecx + 1], al
movzx eax, byte [edx + 0x54fc21]
mov byte [ecx + 2], al
jmp 0x52be89
lea ebx, [ebp - 0x31]
mov dword [ebp - 0x58], ebx
mov edx, ebx
jmp 0x52cea8
mov ebx, esi
jmp 0x52c0d0
mov edi, ecx
jmp 0x52bf7f