Function at 0x64afa0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x6ca828
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x290
push ebx
push ebp
mov ebp, ecx
push esi
push edi
mov dword [esp + 0x4c], ebp
mov edi, dword [esp + 0x2b0]
xor esi, esi
mov ecx, edi
mov dword [esp + 0x2a8], esi
call fcn.0060d760
test ax, ax
je case.0x64b695.11
mov ecx, dword [ebp + 0x60]
call fcn.00683540
cmp eax, 0x15
jne 0x64b67b
mov al, byte [esp + 0x1b]
mov dword [esp + 0x2c], esi
mov byte [esp + 0x1c], al
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], esi
mov dword [esp + 0x28], esi
lea ecx, [esp + 0x10]
mov byte [esp + 0x2a8], 1
call fcn.0060fe70
mov ecx, edi
mov byte [esp + 0x2a8], 2
call fcn.0060d760
mov ebp, dword [ebp + 0x2014]
mov cl, byte [esp + 0x1b]
movsx eax, ax
mov dword [esp + 0x60], eax
add ebp, 3
mov byte [esp + 0x30], cl
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], esi
xor ebx, ebx
cmp eax, esi
mov byte [esp + 0x2a8], 3
jle 0x64b0c0
jmp 0x64b06b
mov edi, dword [esp + 0x2b0]
xor esi, esi
push ebx
mov ecx, edi
call fcn.0060d6a0
mov ecx, dword [eax + 4]
cmp ecx, esi
jne 0x64b07e
xor edi, edi
jmp 0x64b086
mov edi, dword [eax + 8]
sub edi, ecx
sar edi, 2
xor esi, esi
test edi, edi
jle 0x64b0b5
mov ecx, dword [esp + 0x2b0]
push ebx
call fcn.0060d6a0
mov eax, dword [eax + 4]
lea ecx, [esp + 0x1c]
lea edx, [eax + esi*4]
mov eax, dword [esp + 0x24]
push edx
push 1
push eax
call fcn.00414330
inc esi
cmp esi, edi
jl 0x64b08c
mov eax, dword [esp + 0x60]
inc ebx
cmp ebx, eax
jl 0x64b062
xor esi, esi
mov ecx, dword [esp + 0x20]
cmp ecx, esi
jne 0x64b0cc
xor eax, eax
jmp 0x64b0d5
mov eax, dword [esp + 0x24]
sub eax, ecx
sar eax, 2
lea ecx, [ecx + eax*4 - 4]
call fcn.00610330
movsx ecx, ax
cmp ecx, ebp
jle 0x64b276
mov ecx, dword [esp + 0x20]
cmp ecx, esi
jne 0x64b0f5
xor eax, eax
jmp 0x64b0fe
mov eax, dword [esp + 0x24]
sub eax, ecx
sar eax, 2
push ebp
lea ecx, [ecx + eax*4 - 4]
call fcn.00610190
cmp al, 0x7f
jne 0x64b276
xor ebx, ebx
lea ecx, [esp + 0x14]
push ebx
call fcn.0060fea0
mov byte [esp + 0x2a8], 4
mov esi, ebp
mov ecx, dword [esp + 0x20]
cmp ecx, ebx
jne 0x64b132
xor eax, eax
jmp 0x64b13b
mov eax, dword [esp + 0x24]
sub eax, ecx
sar eax, 2
lea ecx, [ecx + eax*4 - 4]
call fcn.00610330
movsx edx, ax
cmp esi, edx
jge 0x64b177
mov ecx, dword [esp + 0x20]
cmp ecx, ebx
jne 0x64b157
xor eax, eax
jmp 0x64b160
mov eax, dword [esp + 0x24]
sub eax, ecx
sar eax, 2
push esi
lea ecx, [ecx + eax*4 - 4]
call fcn.00610190
push eax
lea ecx, [esp + 0x18]
call fcn.00610310
inc esi
jmp 0x64b126
mov eax, dword [esp + 0x20]
push eax
mov eax, dword [esp + 0x28]
push eax
push eax
call fcn.00414b20
mov ecx, dword [esp + 0x30]
add esp, 0xc
mov esi, eax
push ecx
push esi
lea ecx, [esp + 0x24]
call fcn.00413d00
lea edx, [esp + 0x14]
lea ecx, [esp + 0x1c]
push edx
push 1
push esi
mov dword [esp + 0x30], esi
call fcn.00414330
lea ecx, [esp + 0x14]
call fcn.00610330
mov esi, dword [esp + 0x2b0]
mov ebp, eax
mov ecx, esi
call fcn.0060d780
lea eax, [esp + 0x1c]
mov ecx, esi
push eax
call fcn.0060d4f0
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a8], 3
call fcn.0060ffb0
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
cmp esi, eax
mov byte [esp + 0x2a8], 2
mov edi, eax
je 0x64b20f
push ebx
mov ecx, esi
call fcn.00415aa0
add esi, 4
cmp esi, edi
jne 0x64b1fc
mov esi, dword [esp + 0x34]
push esi
call fcn.00697880
add esp, 4
lea ecx, [esp + 0x10]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
mov byte [esp + 0x2a8], 1
call fcn.0060ffb0
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
cmp esi, edi
mov byte [esp + 0x2a8], 0
je 0x64b25c
push ebx
mov ecx, esi
call fcn.00415aa0
add esi, 4
cmp esi, edi
jne 0x64b249
mov esi, dword [esp + 0x20]
push esi
call fcn.00697880
add esp, 4
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
jmp 0x64b9f6
xor ebx, ebx
xor esi, esi
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
cmp eax, ebx
je 0x64b2cc
mov edx, ecx
sub edx, eax
sar edx, 2
cmp esi, edx
jae 0x64b2cc
lea ecx, [eax + esi*4]
call fcn.00610330
movsx eax, ax
cmp eax, ebp
jle 0x64b2b1
mov ecx, dword [esp + 0x20]
push ebp
lea ecx, [ecx + esi*4]
call fcn.00610190
cmp al, 0x7f
je 0x64b2c9
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x38]
lea eax, [edx + esi*4]
push eax
push 1
push ecx
lea ecx, [esp + 0x3c]
call fcn.00414330
inc esi
jmp 0x64b27a
mov edx, dword [esp + 0x34]
cmp edx, ebx
jne 0x64b2d8
xor ebp, ebp
jmp 0x64b2e1
mov ebp, dword [esp + 0x38]
sub ebp, edx
sar ebp, 2
push eax
push ecx
push ecx
call fcn.00414b20
mov edx, dword [esp + 0x30]
add esp, 0xc
mov esi, eax
lea ecx, [esp + 0x1c]
push edx
push esi
call fcn.00413d00
xor edi, edi
cmp ebp, ebx
mov dword [esp + 0x24], esi
jle 0x64b497
mov eax, dword [esp + 0x4c]
push ebx
lea ecx, [esp + 0x44]
mov esi, dword [eax + 0x2014]
call fcn.0060fea0
mov ecx, dword [esp + 0x34]
push 3
mov byte [esp + 0x2ac], 5
lea ecx, [ecx + edi*4]
call fcn.00610190
test al, 0xf
jne 0x64b42a
cmp edi, ebx
jne 0x64b349
add esi, 3
jmp 0x64b42a
mov ecx, dword [esp + 0x20]
add esi, 4
cmp ecx, ebx
jne 0x64b358
xor eax, eax
jmp 0x64b361
mov eax, dword [esp + 0x24]
sub eax, ecx
sar eax, 2
lea edx, [ecx + eax*4 - 4]
lea ecx, [esp + 0x14]
push edx
call fcn.0060fe80
push 0
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2ac], 6
call fcn.0060fea0
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a8], 7
xor ebx, ebx
call fcn.00610330
movsx eax, ax
dec eax
test eax, eax
jle 0x64b3c3
push ebx
lea ecx, [esp + 0x18]
call fcn.00610190
push eax
lea ecx, [esp + 0x4c]
call fcn.00610310
lea ecx, [esp + 0x14]
inc ebx
call fcn.00610330
movsx ecx, ax
dec ecx
cmp ebx, ecx
jl 0x64b39d
mov ecx, dword [esp + 0x24]
lea eax, [ecx - 4]
push eax
add eax, 4
push ecx
push eax
call fcn.00414b20
mov eax, dword [esp + 0x30]
add esp, 0xc
lea ecx, [esp + 0x1c]
push eax
add eax, 0xfffffffc
push eax
call fcn.00413d00
mov eax, dword [esp + 0x24]
lea edx, [esp + 0x48]
sub eax, 4
push edx
push 1
push eax
lea ecx, [esp + 0x28]
mov dword [esp + 0x30], eax
call fcn.00414330
lea ecx, [esp + 0x48]
mov byte [esp + 0x2a8], 6
call fcn.0060ffb0
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a8], 5
call fcn.0060ffb0
xor ebx, ebx
mov eax, dword [esp + 0x34]
lea ecx, [eax + edi*4]
call fcn.00610330
movsx ecx, ax
cmp esi, ecx
jge 0x64b468
mov edx, dword [esp + 0x34]
push esi
lea ecx, [edx + edi*4]
call fcn.00610190
push eax
lea ecx, [esp + 0x44]
call fcn.00610310
mov eax, dword [esp + 0x34]
inc esi
lea ecx, [eax + edi*4]
call fcn.00610330
movsx ecx, ax
cmp esi, ecx
jl 0x64b43d
mov eax, dword [esp + 0x24]
lea edx, [esp + 0x40]
push edx
push 1
push eax
lea ecx, [esp + 0x28]
call fcn.00414330
lea ecx, [esp + 0x40]
mov byte [esp + 0x2a8], 3
call fcn.0060ffb0
inc edi
cmp edi, ebp
jl 0x64b30b
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x38]
push ecx
push eax
push eax
call fcn.00414b20
mov edx, dword [esp + 0x44]
add esp, 0xc
mov esi, eax
lea ecx, [esp + 0x30]
push edx
push esi
call fcn.00413d00
mov eax, dword [esp + 0x20]
mov edx, esi
cmp eax, ebx
mov dword [esp + 0x38], edx
je 0x64b672
mov ecx, dword [esp + 0x24]
sub ecx, eax
sar ecx, 2
je 0x64b672
mov ebx, dword [esp + 0x2c8]
mov ebp, dword [esp + 0x2c]
xor edi, edi
xor esi, esi
test eax, eax
je 0x64b58f
mov ecx, dword [esp + 0x24]
sub ecx, eax
sar ecx, 2
cmp esi, ecx
jae 0x64b58f
cmp bl, 0xff
lea ecx, [eax + esi*4]
jne 0x64b524
call fcn.00610330
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x38]
add ebp, eax
lea eax, [edx + esi*4]
push eax
push 1
push ecx
jmp 0x64b578
call fcn.00610330
test ax, ax
jle 0x64b581
mov edx, dword [esp + 0x20]
push 0
lea ecx, [edx + esi*4]
call fcn.00610190
mov ecx, ebx
and eax, 0xff
and ecx, 0xff
add ecx, 0x40
cmp eax, ecx
jne 0x64b557
mov edi, 1
jmp 0x64b55b
test edi, edi
je 0x64b581
mov edx, dword [esp + 0x20]
lea ecx, [edx + esi*4]
call fcn.00610330
mov edx, dword [esp + 0x38]
add ebp, eax
mov eax, dword [esp + 0x20]
lea ecx, [eax + esi*4]
push ecx
push 1
push edx
lea ecx, [esp + 0x3c]
call fcn.00414330
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x38]
inc esi
jmp 0x64b4eb
mov ecx, dword [esp + 0x34]
test ecx, ecx
je 0x64b5bc
sub edx, ecx
sar edx, 2
je 0x64b5bc
mov esi, dword [esp + 0x2b0]
mov ecx, esi
call fcn.0060d780
lea eax, [esp + 0x30]
mov ecx, esi
push eax
call fcn.0060d4f0
mov eax, dword [esp + 0x20]
xor ebx, ebx
push eax
mov eax, dword [esp + 0x28]
push eax
push eax
call fcn.00414b20
mov ecx, dword [esp + 0x30]
add esp, 0xc
mov esi, eax
push ecx
push esi
lea ecx, [esp + 0x24]
call fcn.00413d00
mov eax, dword [esp + 0x38]
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x34]
mov byte [esp + 0x2a8], 2
cmp esi, eax
mov edi, eax
je 0x64b60b
push ebx
mov ecx, esi
call fcn.00415aa0
add esi, 4
cmp esi, edi
jne 0x64b5f8
mov esi, dword [esp + 0x34]
push esi
call fcn.00697880
add esp, 4
lea ecx, [esp + 0x10]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
mov byte [esp + 0x2a8], 1
call fcn.0060ffb0
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
cmp esi, edi
mov byte [esp + 0x2a8], 0
je 0x64b658
push ebx
mov ecx, esi
call fcn.00415aa0
add esi, 4
cmp esi, edi
jne 0x64b645
mov esi, dword [esp + 0x20]
push esi
call fcn.00697880
add esp, 4
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
jmp 0x64b9f6
mov ebp, dword [esp + 0x2c]
jmp 0x64b5be
mov ecx, dword [ebp + 0x60]
call fcn.00683a70
dec eax
cmp eax, 0x27
ja case.0x64b695.11
xor edx, edx
mov dl, byte [eax + 0x64cf30]
jmp dword [edx*4 + 0x64cf04]
lea eax, [esp + 0x14]
mov ecx, edi
push eax
call fcn.0060d6b0
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a8], 8
call fcn.00610330
push eax
lea ecx, [esp + 0xa4]
push esi
push ecx
lea ecx, [esp + 0x20]
call fcn.00610360
mov al, byte [esp + 0xa0]
cmp al, 0x80
jne 0x64b703
movzx bx, byte [esp + 0xa3]
mov ebp, dword [esp + 0x2cc]
mov ecx, ebx
and ecx, 0xffff
lea esi, [esp + 0xa4]
mov edx, ecx
mov edi, ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
jmp 0x64b777
jbe 0x64b721
xor bx, bx
lea esi, [esp + 0xa3]
mov bl, al
sub ebx, 0x80
mov ecx, ebx
and ecx, 0xffff
jmp 0x64b765
test al, al
jne 0x64b751
movzx bx, byte [esp + 0xa1]
mov ebp, dword [esp + 0x2cc]
mov ecx, ebx
and ecx, 0xffff
lea esi, [esp + 0xa2]
mov edx, ecx
mov edi, ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
jmp 0x64b777
xor bx, bx
lea esi, [esp + 0xa1]
mov bl, al
mov ecx, ebx
and ecx, 0xffff
mov ebp, dword [esp + 0x2cc]
mov eax, ecx
mov edi, ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov cl, byte [esp + 0x1b]
xor edi, edi
mov byte [esp + 0x30], cl
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], edi
push edi
push edi
push edi
mov byte [esp + 0x2b4], 9
call fcn.00414b20
mov edx, dword [esp + 0x44]
add esp, 0xc
mov esi, eax
lea ecx, [esp + 0x30]
push edx
push esi
call fcn.00413d00
push ebx
push ebp
lea ecx, [esp + 0x80]
mov dword [esp + 0x40], esi
call fcn.0060ff10
push eax
mov eax, dword [esp + 0x3c]
push 1
push eax
lea ecx, [esp + 0x3c]
mov byte [esp + 0x2b4], 0xa
call fcn.00414330
lea ecx, [esp + 0x78]
mov byte [esp + 0x2a8], 9
call fcn.0060ffb0
mov esi, dword [esp + 0x2b0]
mov ecx, esi
call fcn.0060d780
lea ecx, [esp + 0x30]
push ecx
mov ecx, esi
call fcn.0060d4f0
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
cmp esi, eax
mov byte [esp + 0x2a8], 8
mov ebp, eax
je 0x64b835
push edi
mov ecx, esi
call fcn.00415aa0
add esi, 4
cmp esi, ebp
jne 0x64b822
mov esi, dword [esp + 0x34]
push esi
call fcn.00697880
add esp, 4
lea ecx, [esp + 0x14]
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], edi
mov byte [esp + 0x2a8], 0
call fcn.0060ffb0
jmp 0x64cb55
push esi
mov ecx, edi
call fcn.0060d6a0
mov ecx, dword [eax + 4]
cmp ecx, esi
jne 0x64b875
mov dword [esp + 0x48], esi
jmp 0x64b881
mov eax, dword [eax + 8]
sub eax, ecx
sar eax, 2
mov dword [esp + 0x48], eax
mov dl, byte [esp + 0x1b]
mov dword [esp + 0x54], 0
mov byte [esp + 0x50], dl
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
mov eax, dword [esp + 0x48]
xor ebp, ebp
xor ebx, ebx
mov byte [esp + 0x2a8], 0xb
test eax, eax
jle 0x64b9ec
mov esi, dword [esp + 0x2b0]
push 0
mov ecx, esi
call fcn.0060d6a0
mov eax, dword [eax + 4]
lea ecx, [esp + 0x14]
lea eax, [eax + ebx*4]
push eax
call fcn.0060fe80
mov esi, dword [esp + 0x4c]
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a8], 0xc
mov edi, dword [esi + 0x2014]
call fcn.00610330
mov bp, ax
mov ecx, esi
sub ebp, edi
call fcn.00642400
mov esi, dword [esi + 0x2014]
xor cx, cx
mov cl, al
lea edx, [esp + 0x1a0]
sub ebp, ecx
lea ecx, [esp + 0x14]
push ebp
push esi
push edx
call fcn.00610360
call fcn.00626110
test al, al
je 0x64b947
mov edi, dword [esp + 0x2cc]
mov ecx, 0xc
lea esi, [esp + 0x1a0]
mov ebp, 0x32
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
jmp 0x64b96b
mov edi, dword [esp + 0x2cc]
mov ecx, ebp
and ecx, 0xffff
lea esi, [esp + 0x1a0]
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 + 0x2cc]
push ebp
push ecx
lea ecx, [esp + 0x48]
call fcn.0060ff10
push ecx
lea edx, [esp + 0x44]
mov ecx, esp
mov dword [esp + 0x48], esp
push edx
mov byte [esp + 0x2b0], 0xd
call fcn.0060fe80
mov esi, dword [esp + 0x2b4]
push ebx
push 0
mov ecx, esi
mov byte [esp + 0x2b4], 0xd
call fcn.0060d6a0
mov ecx, eax
call fcn.00413600
mov ecx, eax
call fcn.006101a0
lea ecx, [esp + 0x40]
mov byte [esp + 0x2a8], 0xc
call fcn.0060ffb0
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a8], 0xb
call fcn.0060ffb0
mov eax, dword [esp + 0x48]
inc ebx
cmp ebx, eax
jl 0x64b8c0
push 0
call fcn.00697880
add esp, 4
lea ecx, [esp + 0x2b4]
mov dword [esp + 0x2a8], 0xffffffff
call fcn.0061f9a0
mov ax, bp
jmp 0x64c193
mov ecx, dword [esp + 0x2b0]
lea eax, [esp + 0x14]
push eax
call fcn.0060d6b0
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a8], 0xf
call fcn.00610330
push eax
lea ecx, [esp + 0x1a4]
push 0
push ecx
lea ecx, [esp + 0x20]
call fcn.00610360
mov dl, byte [esp + 0x1a0]
xor ax, ax
shr dl, 4
mov al, dl
mov edi, dword [esp + 0x2cc]
mov ecx, eax
lea esi, [esp + 0x1a3]
and ecx, 0xffff
mov byte [esp + 0x2a8], 0
sub ecx, 3
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]
lea esi, [eax - 3]
lea ecx, [esp + 0x14]
jmp 0x64cedd
mov ecx, edi
call fcn.0060d760
mov edi, eax
mov al, byte [esp + 0x1b]
mov byte [esp + 0x1c], al
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], esi
mov dword [esp + 0x28], esi
lea ecx, [esp + 0x10]
mov byte [esp + 0x2a8], 0x10
call fcn.0060fe70
mov cl, byte [esp + 0x1b]
mov dword [esp + 0x34], esi
mov byte [esp + 0x30], cl
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], esi
mov ecx, dword [ebp + 0x60]
mov byte [esp + 0x2a8], 0x12
mov dword [esp + 0x40], esi
mov byte [esp + 0x2c], 4
call fcn.00683a70
cmp eax, 5
jne 0x64bafb
mov byte [esp + 0x2c], al
jmp 0x64bb1a
mov ecx, dword [ebp + 0x60]
call fcn.00683a70
cmp eax, 6
je 0x64bb15
mov ecx, dword [ebp + 0x60]
call fcn.00683a70
cmp eax, 7
jne 0x64bb1a
mov byte [esp + 0x2c], 6
mov ecx, dword [ebp + 0x60]
call fcn.00683a70
cmp eax, 9
je 0x64bb36
mov ecx, dword [ebp + 0x60]
call fcn.00683a70
cmp eax, 8
jne 0x64bbac
xor esi, esi
mov ecx, dword [esp + 0x2b0]
lea ebx, [edi - 1]
push ebx
call fcn.0060d6a0
mov ecx, dword [eax + 4]
cmp ecx, esi
jne 0x64bb51
xor eax, eax
jmp 0x64bb59
mov eax, dword [eax + 8]
sub eax, ecx
sar eax, 2
mov ebp, eax
xor esi, esi
and ebp, 0xffff
mov dword [esp + 0x48], esi
jle 0x64bbac
mov ecx, dword [esp + 0x2b0]
push esi
push ebx
call fcn.0060d6a0
mov ecx, eax
call fcn.00413600
push ecx
mov ecx, esp
mov dword [esp + 0x48], esp
push eax
call fcn.0060fe80
lea ecx, [esp + 0x14]
call fcn.006101a0
push 1
lea ecx, [esp + 0x14]
call fcn.00610190
cmp al, 5
je 0x64bcf1
inc esi
cmp esi, ebp
jl 0x64bb69
lea ecx, [esp + 0x64]
call fcn.0062da70
mov dl, byte [esp + 0x2b4]
sub esp, 0x10
mov esi, esp
lea ecx, [esp + 0x2c4]
mov byte [esp + 0x2b8], 0x17
mov dword [esp + 0x54], esp
mov byte [esi], dl
call fcn.0061c770
xor ebx, ebx
cmp eax, ebx
jge 0x64bbe3
xor eax, eax
shl eax, 3
push eax
call fcn.00697be2
add esp, 4
mov dword [esi + 4], eax
mov ecx, dword [esp + 0x2cc]
mov edx, dword [esp + 0x2c8]
push eax
push ecx
push edx
mov ecx, esi
call fcn.005483b0
lea ecx, [esp + 0x74]
mov dword [esi + 8], eax
mov dword [esi + 0xc], eax
call fcn.0061f9e0
mov ebp, dword [esp + 0x2b0]
mov al, byte [esp + 0x2c8]
sub esp, 0x10
lea edx, [esp + 0x74]
mov dword [esp + 0x54], esp
mov ecx, esp
push edx
mov byte [esp + 0x88], al
lea esi, [ebp + 0x10]
call fcn.00413210
mov ecx, esi
call fcn.0061f9e0
mov al, byte [esp + 0x74]
lea ecx, [esp + 0x2b4]
mov byte [esi + 0x10], al
call fcn.0061ffb0
cmp di, bx
jne 0x64c0cb
lea ecx, [esp + 0x64]
mov byte [esp + 0x2a8], 0x12
call fcn.0061f9a0
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
cmp esi, edi
mov byte [esp + 0x2a8], 0x11
je 0x64bc9f
push ebx
mov ecx, esi
call fcn.00415aa0
add esi, 4
cmp esi, edi
jne 0x64bc8c
mov esi, dword [esp + 0x34]
push esi
call fcn.00697880
add esp, 4
lea ecx, [esp + 0x10]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
mov byte [esp + 0x2a8], 0x10
call fcn.0060ffb0
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
cmp esi, edi
mov byte [esp + 0x2a8], 0
je 0x64c164
push ebx
mov ecx, esi
call fcn.00415aa0
add esi, 4
cmp esi, edi
jne 0x64bcdd
jmp 0x64c160
mov edx, dword [esp + 0x2c4]
mov edi, dword [esp + 0x2b0]
xor ebp, ebp
xor esi, esi
mov dword [edx], 1
mov dword [esp + 0x2c], esi
push ebx
mov ecx, edi
call fcn.0060d6a0
mov ecx, dword [eax + 4]
cmp ecx, ebp
je 0x64bdfb
mov eax, dword [eax + 8]
sub eax, ecx
sar eax, 2
cmp esi, eax
jae 0x64bdfb
push esi
push ebx
mov ecx, edi
call fcn.0060d6a0
mov ecx, eax
call fcn.00413600
push ecx
mov ecx, esp
mov dword [esp + 0x48], esp
push eax
call fcn.0060fe80
lea ecx, [esp + 0x14]
call fcn.006101a0
push 1
lea ecx, [esp + 0x14]
call fcn.00610190
cmp al, 5
je 0x64bdf1
mov edi, dword [esp + 0x2b0]
push ebx
mov ecx, edi
call fcn.0060d6a0
mov ecx, dword [eax + 4]
mov edx, dword [esp + 0x2c]
push ebx
lea esi, [ecx + edx*4]
mov ecx, edi
call fcn.0060d6a0
mov edi, eax
add esi, 4
mov ebp, dword [edi + 8]
cmp esi, ebp
je 0x64bdc5
lea eax, [esi - 4]
mov dword [esp + 0x14], eax
push ecx
mov ecx, esp
mov dword [esp + 0x48], esp
push esi
call fcn.0060fe80
mov ecx, dword [esp + 0x18]
call fcn.006101a0
mov ecx, dword [esp + 0x14]
add esi, 4
add ecx, 4
cmp esi, ebp
mov dword [esp + 0x14], ecx
jne 0x64bd9d
mov eax, dword [edi + 8]
mov ecx, edi
push eax
add eax, 0xfffffffc
push eax
call fcn.00413d00
mov ecx, dword [edi + 8]
mov eax, dword [esp + 0x2c]
add ecx, 0xfffffffc
dec eax
mov dword [edi + 8], ecx
mov edi, dword [esp + 0x2b0]
mov dword [esp + 0x2c], eax
mov esi, eax
xor ebp, ebp
inc esi
mov dword [esp + 0x2c], esi
jmp 0x64bd0d
push ebx
mov ecx, edi
call fcn.0060d6a0
mov ecx, dword [eax + 4]
cmp ecx, ebp
jne 0x64be0e
xor esi, esi
jmp 0x64be16
mov esi, dword [eax + 8]
sub esi, ecx
sar esi, 2
lea ecx, [esp + 0x7c]
call fcn.0060d180
mov cl, byte [esp + 0x1b]
mov dword [esp + 0x54], ebp
mov byte [esp + 0x50], cl
mov dword [esp + 0x58], ebp
mov dword [esp + 0x5c], ebp
and esi, 0xffff
mov byte [esp + 0x2a8], 0x14
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x14], esi
jle 0x64bf44
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x2b0]
push edx
push ebx
call fcn.0060d6a0
mov ecx, eax
call fcn.00413600
push ecx
mov ecx, esp
mov dword [esp + 0x48], esp
push eax
call fcn.0060fe80
lea ecx, [esp + 0x14]
call fcn.006101a0
mov ecx, 0x3f
xor eax, eax
lea edi, [esp + 0x1a0]
push 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea ecx, [esp + 0x14]
stosb byte es:[edi], al
call fcn.00610190
and eax, 0xff
lea ecx, [esp + 0x1a0]
mov ebp, eax
mov eax, dword [esp + 0x4c]
push ebp
mov eax, dword [eax + 0x2014]
dec eax
push eax
push ecx
lea ecx, [esp + 0x1c]
call fcn.00610360
mov eax, dword [esp + 0x2cc]
test eax, eax
je 0x64bee5
mov ecx, ebp
lea esi, [esp + 0x1a0]
mov edx, ecx
mov edi, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea eax, [esp + 0x1a0]
push ebp
push eax
lea ecx, [esp + 0x48]
call fcn.0060ff10
mov edx, dword [esp + 0x58]
lea ecx, [esp + 0x40]
push ecx
push 1
push edx
lea ecx, [esp + 0x5c]
mov byte [esp + 0x2b4], 0x15
call fcn.00414330
mov esi, dword [esp + 0x48]
lea ecx, [esp + 0x40]
add esi, ebp
mov byte [esp + 0x2a8], 0x14
mov dword [esp + 0x48], esi
call fcn.0060ffb0
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x14]
inc eax
cmp eax, ecx
mov dword [esp + 0x2c], eax
jl 0x64be4f
lea eax, [esp + 0x50]
lea ecx, [esp + 0x7c]
push eax
call fcn.0060d4f0
mov cl, byte [esp + 0x7c]
sub esp, 0x24
mov esi, esp
mov dword [esp + 0x68], esp
mov dword [esp + 0x68], esi
mov byte [esi], cl
lea ecx, [esp + 0xa0]
call fcn.00462a60
xor ebx, ebx
cmp eax, ebx
jge 0x64bf79
xor eax, eax
shl eax, 4
push eax
call fcn.00697be2
add esp, 4
mov dword [esi + 4], eax
mov edx, dword [esp + 0xa8]
mov ecx, esi
push eax
mov eax, dword [esp + 0xa8]
push edx
push eax
call fcn.00413ae0
mov dword [esi + 8], eax
mov dword [esi + 0xc], eax
lea ecx, [esp + 0xb0]
mov byte [esp + 0x2cc], 0x16
push ecx
lea ecx, [esi + 0x10]
call fcn.00406650
mov ecx, dword [esp + 0x2d4]
mov byte [esp + 0x2cc], 0x14
call fcn.0060d330
mov eax, dword [esp + 0x58]
mov esi, dword [esp + 0x54]
cmp esi, eax
mov byte [esp + 0x2a8], 0x13
mov edi, eax
je 0x64bffb
push ebx
mov ecx, esi
call fcn.00415aa0
add esi, 4
cmp esi, edi
jne 0x64bfe8
mov esi, dword [esp + 0x54]
push esi
call fcn.00697880
add esp, 4
lea ecx, [esp + 0x7c]
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], ebx
mov byte [esp + 0x2a8], 0x12
call fcn.0060d280
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
cmp esi, edi
mov byte [esp + 0x2a8], 0x11
je 0x64c048
push ebx
mov ecx, esi
call fcn.00415aa0
add esi, 4
cmp esi, edi
jne 0x64c035
mov esi, dword [esp + 0x34]
push esi
call fcn.00697880
add esp, 4
lea ecx, [esp + 0x10]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
mov byte [esp + 0x2a8], 0x10
call fcn.0060ffb0
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
cmp esi, edi
mov byte [esp + 0x2a8], 0
je 0x64c095
push ebx
mov ecx, esi
call fcn.00415aa0
add esi, 4
cmp esi, edi
jne 0x64c082
mov esi, dword [esp + 0x20]
push esi
call fcn.00697880
add esp, 4
lea ecx, [esp + 0x2b4]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2a8], 0xffffffff
call fcn.0061f9a0
mov ax, word [esp + 0x48]
jmp 0x64c193
cmp ax, 1
jbe 0x64c1ae
cmp di, 1
jae 0x64c1ae
lea ecx, [esp + 0x64]
mov byte [esp + 0x2a8], 0x12
call fcn.0061f9a0
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
cmp esi, edi
mov byte [esp + 0x2a8], 0x11
je 0x64c117
push ebx
mov ecx, esi
call fcn.00415aa0
add esi, 4
cmp esi, edi
jne 0x64c104
mov esi, dword [esp + 0x34]
push esi
call fcn.00697880
add esp, 4
lea ecx, [esp + 0x10]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
mov byte [esp + 0x2a8], 0x10
call fcn.0060ffb0
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
cmp esi, edi
mov byte [esp + 0x2a8], 0
je 0x64c164
push ebx
mov ecx, esi
call fcn.00415aa0
add esi, 4
cmp esi, edi
jne 0x64c151
mov esi, dword [esp + 0x20]
push esi
call fcn.00697880
add esp, 4
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
lea ecx, [esp + 0x2b4]
mov dword [esp + 0x2a8], 0xffffffff
call fcn.0061f9a0
xor ax, ax
mov ecx, dword [esp + 0x2a0]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x29c
ret 0x20
lea ebx, [edi - 1]
mov ecx, ebp
push ebx
call fcn.0060d6a0
mov ecx, dword [eax + 4]
test ecx, ecx
jne 0x64c1c4
xor esi, esi
jmp 0x64c1cc
mov esi, dword [eax + 8]
sub esi, ecx
sar esi, 2
test si, si
mov dword [esp + 0x4c], 0
jbe 0x64c502
mov ecx, esi
and ecx, 0xffff
dec ecx
push ecx
push ebx
mov ecx, ebp
call fcn.0060d6a0
mov ecx, eax
call fcn.00413600
push ecx
mov ecx, esp
mov dword [esp + 0x48], esp
push eax
call fcn.0060fe80
lea ecx, [esp + 0x14]
call fcn.006101a0
movzx di, byte [esp + 0x2c]
push edi
lea ecx, [esp + 0x14]
mov word [esp + 0x4c], di
call fcn.00610190
cmp al, 0x7f
jne 0x64c4fa
dec edi
lea ecx, [esp + 0x10]
push edi
call fcn.00610190
and al, 0x30
cmp al, 0x10
jne 0x64c4fa
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
push edx
push eax
push eax
mov esi, 1
call fcn.00414b20
mov ebp, dword [esp + 0x30]
mov ebx, eax
add esp, 0xc
cmp ebx, ebp
mov edi, ebx
je 0x64c272
push 0
mov ecx, edi
call fcn.00415aa0
add edi, 4
cmp edi, ebp
jne 0x64c262
lea eax, [esp + 0x10]
lea ecx, [esp + 0x1c]
push eax
push 1
push ebx
mov dword [esp + 0x30], ebx
call fcn.00414330
mov al, byte [esp + 0x1b]
mov byte [esp + 0x50], al
xor eax, eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
xor ebp, ebp
and esi, 0xffff
mov byte [esp + 0x2a8], 0x1a
mov dword [esp + 0x60], ebp
mov dword [esp + 0x14], esi
jle 0x64c402
push ebp
lea ecx, [esp + 0x20]
call fcn.00413600
push ecx
mov ecx, esp
mov dword [esp + 0x48], esp
push eax
call fcn.0060fe80
lea ecx, [esp + 0x14]
call fcn.006101a0
mov ecx, dword [esp + 0x48]
lea eax, [ecx - 1]
lea ecx, [esp + 0x10]
push eax
call fcn.00610190
xor bx, bx
mov bl, al
cmp bx, 7
mov dword [esp + 0x40], ebx
jbe 0x64c304
mov ebx, 7
mov dword [esp + 0x40], ebx
lea ecx, [esp + 0x10]
call fcn.00610330
movsx edx, ax
xor esi, esi
and ebx, 0xffff
mov dword [esp + 0x44], edx
jle 0x64c35e
mov ebp, dword [esp + 0x2c]
lea eax, [esp + 0xa0]
and ebp, 0xff
sub ebp, eax
mov eax, dword [esp + 0x44]
lea edi, [esp + esi + 0xa0]
lea ecx, [edi + ebp]
cmp ecx, eax
jge 0x64c35a
mov edx, dword [esp + 0x48]
lea ecx, [esp + 0x10]
add edx, esi
push edx
call fcn.00610190
inc esi
mov byte [edi], al
cmp esi, ebx
jl 0x64c331
mov ebp, dword [esp + 0x60]
mov eax, dword [esp + 0x40]
lea ecx, [esp + 0xa0]
push eax
push ecx
lea ecx, [esp + 0x54]
call fcn.0060ff10
mov eax, dword [esp + 0x58]
lea edx, [esp + 0x4c]
push edx
push 1
push eax
lea ecx, [esp + 0x5c]
mov byte [esp + 0x2b4], 0x1b
call fcn.00414330
mov edi, dword [esp + 0x2cc]
mov ecx, ebx
mov edx, ecx
lea esi, [esp + 0xa0]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov byte [esp + 0x2a8], 0x1a
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x4c]
call fcn.0060ffb0
mov eax, dword [esp + 0x14]
inc ebp
cmp ebp, eax
mov dword [esp + 0x60], ebp
jl 0x64c2bb
mov eax, dword [esp + 0x54]
test eax, eax
je 0x64c402
mov ecx, dword [esp + 0x58]
sub ecx, eax
sar ecx, 2
je 0x64c402
mov esi, dword [esp + 0x2b0]
mov ecx, esi
call fcn.0060d780
lea edx, [esp + 0x50]
mov ecx, esi
push edx
call fcn.0060d4f0
mov eax, dword [esp + 0x54]
mov edi, dword [esp + 0x58]
mov byte [esp + 0x2a8], 0x17
cmp eax, edi
mov esi, eax
je 0x64c426
mov ecx, esi
call fcn.0060ffb0
add esi, 4
cmp esi, edi
jne 0x64c414
mov eax, dword [esp + 0x54]
push eax
call fcn.00697880
xor edi, edi
add esp, 4
lea ecx, [esp + 0x64]
mov dword [esp + 0x54], edi
mov dword [esp + 0x58], edi
mov dword [esp + 0x5c], edi
mov byte [esp + 0x2a8], 0x12
call fcn.0061f9a0
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
cmp esi, eax
mov byte [esp + 0x2a8], 0x11
mov ebx, eax
je 0x64c476
mov ecx, esi
call fcn.0060ffb0
add esi, 4
cmp esi, ebx
jne 0x64c464
mov esi, dword [esp + 0x34]
push esi
call fcn.00697880
add esp, 4
lea ecx, [esp + 0x10]
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], edi
mov byte [esp + 0x2a8], 0x10
call fcn.0060ffb0
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
cmp esi, eax
mov byte [esp + 0x2a8], 0
mov ebx, eax
je 0x64c4c4
mov ecx, esi
call fcn.0060ffb0
add esi, 4
cmp esi, ebx
jne 0x64c4b2
mov esi, dword [esp + 0x20]
push esi
call fcn.00697880
add esp, 4
lea ecx, [esp + 0x2b4]
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], edi
mov dword [esp + 0x2a8], 0xffffffff
call fcn.0061f9a0
mov ax, word [esp + 0x40]
jmp 0x64c193
mov dword [esp + 0x4c], 1
xor edi, edi
and esi, 0xffff
mov dword [esp + 0x14], esi
jle 0x64c5ab
movzx si, byte [esp + 0x2c]
mov word [esp + 0x48], si
dec esi
push edi
push ebx
mov ecx, ebp
call fcn.0060d6a0
mov ecx, eax
call fcn.00413600
push ecx
mov ecx, esp
mov dword [esp + 0x48], esp
push eax
call fcn.0060fe80
lea ecx, [esp + 0x14]
call fcn.006101a0
push esi
lea ecx, [esp + 0x14]
call fcn.00610190
and al, 0x30
cmp al, 0x10
jne 0x64c560
mov dword [esp + 0x4c], 1
jmp 0x64c567
cmp dword [esp + 0x4c], 1
jne 0x64c589
push esi
lea ecx, [esp + 0x14]
call fcn.00610190
and al, 0x20
cmp al, 0x20
je 0x64c589
mov ecx, dword [esp + 0x48]
push ecx
lea ecx, [esp + 0x14]
call fcn.00610190
cmp al, 0x7f
je 0x64c59e
mov eax, dword [esp + 0x24]
lea edx, [esp + 0x10]
push edx
push 1
push eax
lea ecx, [esp + 0x28]
call fcn.00414330
mov eax, dword [esp + 0x14]
inc edi
cmp edi, eax
jl 0x64c520
mov eax, dword [esp + 0x20]
test eax, eax
je 0x64c5c3
mov edi, dword [esp + 0x24]
mov ecx, edi
sub ecx, eax
test ecx, 0xfffffffc
jne 0x64c60c
mov edx, dword [esp + 0x14]
mov ecx, ebp
dec edx
push edx
push 0
call fcn.0060d6a0
mov ecx, eax
call fcn.00413600
push ecx
mov ecx, esp
mov dword [esp + 0x48], esp
push eax
call fcn.0060fe80
lea ecx, [esp + 0x14]
call fcn.006101a0
mov ecx, dword [esp + 0x24]
lea eax, [esp + 0x10]
push eax
push 1
push ecx
lea ecx, [esp + 0x28]
call fcn.00414330
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
test eax, eax
jne 0x64c614
xor edi, edi
jmp 0x64c619
sub edi, eax
sar edi, 2
push 0
lea ecx, [esp + 0x20]
call fcn.00413600
push ecx
mov ecx, esp
mov dword [esp + 0x48], esp
push eax
call fcn.0060fe80
lea ecx, [esp + 0x14]
call fcn.006101a0
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
push edx
push eax
lea ecx, [esp + 0x38]
mov esi, eax
call fcn.00413d00
xor bl, bl
xor ebp, ebp
and edi, 0xffff
mov dword [esp + 0x38], esi
jle 0x64c70e
push ebp
lea ecx, [esp + 0x20]
call fcn.00413600
push ecx
mov ecx, esp
mov dword [esp + 0x48], esp
push eax
call fcn.0060fe80
lea ecx, [esp + 0x14]
call fcn.006101a0
test bl, bl
jne 0x64c6f0
movzx si, byte [esp + 0x2c]
push esi
lea ecx, [esp + 0x14]
call fcn.00610190
cmp al, 0x7f
jne 0x64c6a9
mov ecx, dword [esp + 0x38]
lea eax, [esp + 0x10]
push eax
push 1
push ecx
jmp 0x64c6fc
lea edx, [esi - 1]
lea ecx, [esp + 0x10]
push edx
call fcn.00610190
and al, 0x30
cmp al, 0x10
jne 0x64c6bd
inc esi
push esi
lea ecx, [esp + 0x14]
call fcn.00610190
mov ecx, dword [esp + 0x2c8]
and eax, 0xff
and ecx, 0xff
add ecx, 0x40
cmp eax, ecx
jne 0x64c705
mov eax, dword [esp + 0x38]
lea edx, [esp + 0x10]
push edx
push 1
mov bl, 1
push eax
jmp 0x64c6fc
mov edx, dword [esp + 0x38]
lea ecx, [esp + 0x10]
push ecx
push 1
push edx
lea ecx, [esp + 0x3c]
call fcn.00414330
inc ebp
cmp ebp, edi
jl 0x64c663
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
push ecx
push eax
lea ecx, [esp + 0x24]
mov esi, eax
call fcn.00413d00
mov eax, esi
xor esi, esi
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x34]
test ecx, ecx
je 0x64c757
mov edx, dword [esp + 0x38]
sub edx, ecx
sar edx, 2
cmp esi, edx
jae 0x64c757
lea ecx, [ecx + esi*4]
push ecx
push 1
push eax
lea ecx, [esp + 0x28]
call fcn.00414330
mov eax, dword [esp + 0x24]
inc esi
jmp 0x64c72b
mov ecx, dword [esp + 0x20]
test ecx, ecx
jne 0x64c763
xor esi, esi
jmp 0x64c76a
sub eax, ecx
sar eax, 2
mov esi, eax
push 0
lea ecx, [esp + 0x20]
call fcn.00413600
push ecx
mov ecx, esp
mov dword [esp + 0x48], esp
push eax
call fcn.0060fe80
lea ecx, [esp + 0x14]
call fcn.006101a0
movzx bx, byte [esp + 0x2c]
lea ecx, [esp + 0x10]
mov word [esp + 0x48], bx
lea edi, [ebx - 1]
push edi
call fcn.00610190
and al, 0x30
cmp al, 0x10
jne 0x64c287
push edi
lea ecx, [esp + 0x14]
call fcn.00610190
and al, 0xf
push ebx
movzx di, al
lea ecx, [esp + 0x14]
shl edi, 8
call fcn.00610190
xor dx, dx
mov ebx, 6
mov dl, al
mov al, byte [esp + 0x2c]
add edi, edx
cmp al, 5
mov dword [esp + 0x40], edi
jne 0x64c7e7
mov ebx, 5
mov ebp, dword [esp + 0x40]
lea edi, [ebx + 1]
sub ebp, ebx
mov dword [esp + 0x40], ebp
and ebp, 0xffff
mov eax, ebp
cdq
idiv edi
mov ecx, eax
mov eax, ebp
cdq
idiv edi
test edx, edx
je 0x64c80b
inc ecx
and esi, 0xffff
and ecx, 0xffff
dec esi
cmp ecx, esi
je 0x64c953
mov eax, dword [0x71bf18]
inc eax
cmp eax, 3
mov dword [0x71bf18], eax
jle 0x64c8c8
xor ebx, ebx
lea ecx, [esp + 0x64]
mov dword [0x71bf18], ebx
mov byte [esp + 0x2a8], 0x12
call fcn.0061f9a0
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
cmp esi, eax
mov byte [esp + 0x2a8], 0x11
mov edi, eax
je 0x64c875
mov ecx, esi
call fcn.0060ffb0
add esi, 4
cmp esi, edi
jne 0x64c863
mov esi, dword [esp + 0x34]
push esi
call fcn.00697880
add esp, 4
lea ecx, [esp + 0x10]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
mov byte [esp + 0x2a8], 0x10
call fcn.0060ffb0
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
cmp esi, eax
mov byte [esp + 0x2a8], 0
mov edi, eax
je 0x64c164
mov ecx, esi
call fcn.0060ffb0
add esi, 4
cmp esi, edi
jne 0x64c8b5
jmp 0x64c160
lea ecx, [esp + 0x64]
mov byte [esp + 0x2a8], 0x12
call fcn.0061f9a0
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
cmp esi, edi
mov byte [esp + 0x2a8], 0x11
je 0x64c8ff
mov ecx, esi
call fcn.0060ffb0
add esi, 4
cmp esi, edi
jne 0x64c8ed
mov esi, dword [esp + 0x34]
push esi
call fcn.00697880
xor ebx, ebx
add esp, 4
lea ecx, [esp + 0x10]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
mov byte [esp + 0x2a8], 0x10
call fcn.0060ffb0
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
cmp esi, eax
mov byte [esp + 0x2a8], bl
mov edi, eax
je 0x64c164
mov ecx, esi
call fcn.0060ffb0
add esi, 4
cmp esi, edi
jne 0x64c940
jmp 0x64c160
xor esi, esi
test ebx, ebx
jle 0x64c977
mov eax, dword [esp + 0x48]
lea ecx, [eax + esi + 1]
push ecx
lea ecx, [esp + 0x14]
call fcn.00610190
mov byte [esp + esi + 0xa0], al
inc esi
cmp esi, ebx
jl 0x64c959
xor esi, esi
test ebp, ebp
jle 0x64c9e7
mov eax, dword [esp + 0x2c]
and eax, 0xff
mov dword [esp + 0x60], eax
mov eax, esi
lea ecx, [esp + 0x1c]
cdq
idiv edi
and eax, 0xffff
inc eax
push eax
call fcn.00413600
push ecx
mov ecx, esp
mov dword [esp + 0x48], esp
push eax
call fcn.0060fe80
lea ecx, [esp + 0x14]
call fcn.006101a0
lea ecx, [esp + 0x10]
call fcn.00610330
movsx ecx, ax
mov eax, esi
cdq
idiv edi
add edx, dword [esp + 0x60]
cmp edx, ecx
jge 0x64c9e7
push edx
lea ecx, [esp + 0x14]
call fcn.00610190
lea edx, [ebx + esi]
inc esi
cmp esi, ebp
mov byte [esp + edx + 0xa0], al
jl 0x64c98a
mov edi, dword [esp + 0x2cc]
lea ecx, [ebx + ebp]
mov eax, ecx
lea esi, [esp + 0xa0]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
lea edx, [esp + 0xa0]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x40]
add ebx, ecx
lea ecx, [esp + 0x4c]
push ebx
push edx
call fcn.0060ff10
mov al, byte [esp + 0x1b]
mov byte [esp + 0x50], al
xor eax, eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2a8], 0x19
push ecx
push 1
push eax
lea ecx, [esp + 0x5c]
call fcn.00414330
mov esi, dword [esp + 0x2b0]
mov ecx, esi
call fcn.0060d780
lea edx, [esp + 0x50]
mov ecx, esi
push edx
call fcn.0060d4f0
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x54]
cmp eax, ecx
mov byte [esp + 0x2a8], 0x18
mov edi, ecx
mov esi, eax
je 0x64ca91
mov ecx, esi
call fcn.0060ffb0
add esi, 4
cmp esi, edi
jne 0x64ca7f
mov eax, dword [esp + 0x54]
push eax
call fcn.00697880
xor edi, edi
add esp, 4
lea ecx, [esp + 0x4c]
mov dword [esp + 0x54], edi
mov dword [esp + 0x58], edi
mov dword [esp + 0x5c], edi
mov byte [esp + 0x2a8], 0x17
call fcn.0060ffb0
lea ecx, [esp + 0x64]
mov byte [esp + 0x2a8], 0x12
call fcn.0061f9a0
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
cmp esi, eax
mov byte [esp + 0x2a8], 0x11
mov ebp, eax
je 0x64caf2
mov ecx, esi
call fcn.0060ffb0
add esi, 4
cmp esi, ebp
jne 0x64cae0
mov esi, dword [esp + 0x34]
push esi
call fcn.00697880
add esp, 4
lea ecx, [esp + 0x10]
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], edi
mov byte [esp + 0x2a8], 0x10
call fcn.0060ffb0
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
cmp esi, eax
mov byte [esp + 0x2a8], 0
mov ebp, eax
je 0x64cb40
mov ecx, esi
call fcn.0060ffb0
add esi, 4
cmp esi, ebp
jne 0x64cb2e
mov esi, dword [esp + 0x20]
push esi
call fcn.00697880
add esp, 4
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], edi
lea ecx, [esp + 0x2b4]
mov dword [esp + 0x2a8], 0xffffffff
call fcn.0061f9a0
mov ax, bx
jmp 0x64c193
mov ecx, dword [esp + 0x2b0]
call fcn.0060d760
xor ebp, ebp
test ax, ax
jbe case.0x64b695.11
xor edi, edi
and eax, 0xffff
mov dword [esp + 0x44], eax
jle 0x64b9f6
xor ebx, ebx
mov ecx, dword [esp + 0x2b0]
push edi
call fcn.0060d6a0
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x64cc38
mov eax, dword [eax + 8]
sub eax, ecx
sar eax, 2
cmp ebx, eax
jae 0x64cc38
mov ecx, dword [esp + 0x2b0]
push edi
xor esi, esi
call fcn.0060d6a0
mov eax, dword [eax + 4]
lea ecx, [eax + ebx*4]
call fcn.00610330
test ax, ax
jle 0x64cc32
mov ecx, dword [esp + 0x2b0]
push edi
call fcn.0060d6a0
mov eax, dword [eax + 4]
push esi
lea ecx, [eax + ebx*4]
call fcn.00610190
mov ecx, dword [esp + 0x2cc]
inc ebp
cmp ebp, 0xff
mov byte [ecx + ebp - 1], al
jg 0x64b9f6
mov ecx, dword [esp + 0x2b0]
push edi
inc esi
call fcn.0060d6a0
mov eax, dword [eax + 4]
lea ecx, [eax + ebx*4]
call fcn.00610330
movsx edx, ax
cmp esi, edx
jl 0x64cbe1
inc ebx
jmp 0x64cb9e
mov eax, dword [esp + 0x44]
inc edi
cmp edi, eax
jl 0x64cb9c
jmp 0x64b9f6
lea eax, [esp + 0x14]
mov ecx, edi
push eax
call fcn.0060d6b0
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a8], 0x1c
call fcn.00610330
cmp ax, 2
jge 0x64cc83
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a8], 0
call fcn.0060ffb0
jmp case.0x64b695.11
push 1
lea ecx, [esp + 0x18]
call fcn.00610190
and eax, 0xff
xor esi, esi
sub eax, 0x55
mov edi, eax
test edi, edi
jle 0x64ccba
mov ebx, dword [esp + 0x2cc]
lea ecx, [esi + 2]
push ecx
lea ecx, [esp + 0x18]
call fcn.00610190
mov byte [esi + ebx], al
inc esi
cmp esi, edi
jl 0x64cca5
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a8], 0
call fcn.0060ffb0
lea ecx, [esp + 0x2b4]
mov dword [esp + 0x2a8], 0xffffffff
call fcn.0061f9a0
mov ax, di
jmp 0x64c193
mov ecx, edi
call fcn.0060d760
test ax, ax
jle case.0x64b695.11
mov ecx, dword [esp + 0x2b0]
lea edx, [esp + 0x4c]
push edx
call fcn.0060d6b0
push 0
lea ecx, [esp + 0x50]
mov byte [esp + 0x2ac], 0x1d
call fcn.00610190
mov bl, al
xor esi, esi
dec bl
mov byte [esp + 0x44], bl
mov edi, dword [esp + 0x44]
and edi, 0xff
jle 0x64cd50
mov ebp, dword [esp + 0x2cc]
lea eax, [esi + 1]
lea ecx, [esp + 0x4c]
push eax
call fcn.00610190
mov byte [esi + ebp], al
inc esi
cmp esi, edi
jl 0x64cd3b
movzx si, bl
mov byte [esp + 0x2a8], 0
lea ecx, [esp + 0x4c]
jmp 0x64cedd
lea ecx, [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x2b4]
call fcn.0060d6b0
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a8], 0x1e
xor esi, esi
call fcn.00610330
test ax, ax
jle 0x64cdb3
mov edi, dword [esp + 0x2cc]
push esi
lea ecx, [esp + 0x18]
call fcn.00610190
mov byte [esi + edi], al
lea ecx, [esp + 0x14]
inc esi
call fcn.00610330
movsx edx, ax
cmp esi, edx
jl 0x64cd95
lea ecx, [esp + 0x14]
call fcn.00610330
mov esi, eax
mov byte [esp + 0x2a8], 0
lea ecx, [esp + 0x14]
jmp 0x64cedd
lea eax, [esp + 0x40]
mov ecx, edi
push eax
call fcn.0060d6b0
lea ecx, [esp + 0x40]
mov byte [esp + 0x2a8], 0x1f
call fcn.00610330
test ax, ax
jge 0x64ce07
lea ecx, [esp + 0x40]
mov byte [esp + 0x2a8], 0
call fcn.0060ffb0
jmp case.0x64b695.11
lea ecx, [esp + 0x40]
xor esi, esi
call fcn.00610330
test ax, ax
jle 0x64ce3c
mov edi, dword [esp + 0x2cc]
push esi
lea ecx, [esp + 0x44]
call fcn.00610190
mov byte [esi + edi], al
lea ecx, [esp + 0x40]
inc esi
call fcn.00610330
movsx ecx, ax
cmp esi, ecx
jl 0x64ce1e
lea ecx, [esp + 0x40]
call fcn.00610330
mov esi, eax
mov byte [esp + 0x2a8], 0
lea ecx, [esp + 0x40]
jmp 0x64cedd
lea edx, [esp + 0x2c]
mov ecx, edi
push edx
call fcn.0060d6b0
lea ecx, [esp + 0x2c]
mov byte [esp + 0x2a8], 0x20
call fcn.00610330
cmp ax, 4
jge 0x64ce91
lea ecx, [esp + 0x2c]
mov byte [esp + 0x2a8], 0
call fcn.0060ffb0
jmp case.0x64b695.11
lea ecx, [esp + 0x2c]
xor esi, esi
call fcn.00610330
test ax, ax
jle 0x64cec6
mov edi, dword [esp + 0x2cc]
push esi
lea ecx, [esp + 0x30]
call fcn.00610190
mov byte [esi + edi], al
lea ecx, [esp + 0x2c]
inc esi
call fcn.00610330
movsx eax, ax
cmp esi, eax
jl 0x64cea8
lea ecx, [esp + 0x2c]
call fcn.00610330
mov esi, eax
mov byte [esp + 0x2a8], 0
lea ecx, [esp + 0x2c]
call fcn.0060ffb0
lea ecx, [esp + 0x2b4]
mov dword [esp + 0x2a8], 0xffffffff
call fcn.0061f9a0
mov ax, si
jmp 0x64c193