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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x13c
test edx, edx
je 0x65467e
mov dword [esp + 8], ecx
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x158]
mov eax, dword [edx]
mov ecx, dword [edx + 0x50]
mov dword [esp + 0x34], ecx
lea ecx, [eax + 1]
mov dword [edx], ecx
mov dword [esp + 4], 0xfffffff8
cmp eax, dword [edx + 4]
jae case.0x657114.6
mov eax, dword [esp + 0x15c]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x154]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x150]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x158]
mov ecx, eax
lea eax, [ecx + 0x7c]
mov dword [esp + 0x18], eax
lea eax, [ecx + 0x88]
mov dword [esp + 0x24], eax
lea eax, [ecx + 0x1c]
mov dword [esp + 0x48], eax
lea eax, [ecx + 0x8c]
mov dword [esp + 0x1c], eax
lea eax, [ecx + 0x68]
mov dword [esp + 0x20], eax
lea eax, [ecx + 0x44]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x54], 0
mov dword [esp + 0x44], 0
mov eax, dword [esp + 0x160]
mov ecx, dword [esp + 0x158]
cmp eax, dword [ecx + 8]
jae 0x6547f7
cmp dword [ecx + 0x9c], 2
jne 0x64f730
mov eax, dword [esp + 8]
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0xb0], eax
mov dword [ecx + 0x9c], 0
lea eax, [esp + 0xb0]
mov dword [esp + 0x38], eax
jmp 0x64f730
movzx eax, word [esp + 0x28]
cmp eax, 0x10
jne 0x64d7d1
jmp 0x65805d
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov edx, dword [esp + 0x10]
lea ecx, [edx + edx]
sub eax, ecx
mov ecx, dword [esp + 8]
cmp ecx, eax
jbe 0x64e5b9
jmp 0x65805d
movzx eax, word [esp + 0x28]
cmp eax, 0x10
je 0x64d7d1
jmp 0x65805d
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov edx, dword [esp + 0x10]
lea ecx, [edx + edx]
sub eax, ecx
mov ecx, dword [esp + 8]
cmp ecx, eax
jbe 0x64e5b9
jmp 0x6583fb
add ebp, 2
mov dword [esp + 0x14], ebp
jmp 0x64f730
cmp eax, 0x24
je case.0x651f77.0
cmp eax, 0x60
je case.0x651f77.0
cmp eax, 0x40
je case.0x651f77.0
lea ecx, [eax - 0xa0]
cmp ecx, 0xd760
setb cl
cmp eax, 0xdfff
seta al
or al, cl
movzx ecx, word [esp + 0x28]
cmp ecx, 0xf
sete cl
xor cl, al
cmp cl, 1
je 0x64d7d1
jmp 0x65805d
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x64d394
mov ecx, dword [esp + 0x24]
cmp ebp, dword [ecx]
jbe 0x64d394
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
jg 0x65752a
mov dword [esp + 8], ebp
cmp dword [esp + 0x58], 0
jne 0x64f730
jmp 0x6542b5
cmp eax, 0x202f
mov dword [esp + 4], 0
je 0x64d314
cmp eax, 0x3000
je 0x64d314
cmp eax, 0x205f
je 0x64d314
jmp case.0x657114.6
lea eax, [ebp + 0x22]
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], 0
mov ebx, 1
mov dword [esp + 0x10], 1
mov dword [esp + 4], 0
cmp dword [esp + 0x34], 0
je 0x64d4b2
test ebx, ebx
jle 0x64d50b
mov eax, dword [esp + 0x18]
mov edx, dword [eax]
xor esi, esi
mov edi, dword [esp + 8]
cmp edi, edx
jae 0x6549c4
movzx ecx, word [edi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x64d437
add edi, 4
jmp 0x64d442
add edi, 2
cmp ecx, 0x100
jb 0x64d451
movzx eax, word [esp + 0x28]
cmp eax, 0x6e
jne 0x64d46a
jmp 0x65805d
mov eax, ecx
shr eax, 3
movzx eax, byte [ebp + eax + 2]
and cl, 7
movzx ecx, cl
bt eax, ecx
jae 0x65805d
inc esi
cmp esi, ebx
jl 0x64d419
jmp 0x64d50f
xor eax, eax
cmp edx, 0x69
sete al
mov dword [esp + 4], eax
cmp edx, 0x6d
sete al
mov dword [esp + 0xc], eax
movzx ebx, word [ebp + 0x24]
movzx eax, word [ebp + 0x26]
test eax, eax
mov ecx, 0x7fffffff
cmovne ecx, eax
mov dword [esp + 0x10], ecx
lea eax, [ebp + 0x28]
mov dword [esp + 0x14], eax
cmp dword [esp + 0x34], 0
jne 0x64d405
test ebx, ebx
jle 0x64d50b
mov eax, dword [esp + 0x18]
mov edx, dword [eax]
xor esi, esi
mov edi, dword [esp + 8]
cmp edi, edx
jae 0x654e5a
movzx eax, word [edi]
cmp eax, 0x100
jb 0x64d4e3
movzx eax, word [esp + 0x28]
cmp eax, 0x6e
jne 0x64d501
jmp 0x65805d
mov ecx, eax
and ecx, 0xfff8
shr ecx, 3
movzx ecx, byte [ebp + ecx + 2]
and al, 7
movzx eax, al
bt ecx, eax
jae 0x65805d
add edi, 2
inc esi
cmp esi, ebx
jl 0x64d4c2
jmp 0x64d50f
mov edi, dword [esp + 8]
cmp ebx, dword [esp + 0x10]
mov dword [esp + 8], edi
mov edx, dword [esp + 0x28]
je 0x64f730
cmp dword [esp + 4], 0
jne 0x656838
cmp dword [esp + 0x34], 0
je 0x64d5bc
cmp ebx, dword [esp + 0x10]
mov eax, edi
jge 0x64d64d
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov dword [esp + 4], eax
mov eax, edi
cmp eax, dword [esp + 4]
jae 0x64d61d
mov ecx, eax
movzx edx, word [eax]
mov eax, edx
and eax, 0xfc00
mov esi, 2
cmp eax, 0xd800
je 0x64d57e
mov esi, 1
cmp edx, 0x100
jb 0x64d58d
movzx eax, word [esp + 0x28]
cmp eax, 0x6e
jne 0x64d5ab
jmp 0x64d647
mov eax, edx
shr eax, 3
movzx eax, byte [ebp + eax + 2]
and dl, 7
movzx edx, dl
mov esi, 1
bt eax, edx
jae 0x64d647
mov eax, ecx
lea eax, [eax + esi*2]
inc ebx
cmp ebx, dword [esp + 0x10]
jl 0x64d54f
jmp 0x64d64d
cmp ebx, dword [esp + 0x10]
mov eax, edi
jge 0x64d691
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
mov eax, edi
cmp eax, ecx
jae 0x64d661
mov esi, eax
movzx eax, word [eax]
cmp eax, 0x100
jb 0x64d5f1
movzx eax, dx
cmp eax, 0x6e
jne 0x64d60f
jmp 0x64d68b
mov edx, eax
and edx, 0xfff8
shr edx, 3
movzx edx, byte [ebp + edx + 2]
and al, 7
movzx eax, al
bt edx, eax
mov edx, dword [esp + 0x28]
jae 0x64d68b
mov eax, esi
add eax, 2
inc ebx
cmp ebx, dword [esp + 0x10]
jl 0x64d5d0
jmp 0x64d691
mov edx, eax
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x64d64b
mov ecx, dword [esp + 0x24]
cmp edx, dword [ecx]
jbe 0x64d64b
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
mov eax, edx
jle 0x64d64d
jmp 0x654dc8
mov eax, ecx
jmp 0x64d64d
mov eax, edx
mov dword [esp + 8], eax
cmp byte [esp + 0xc], 0
jne 0x64f730
jmp 0x656e0c
mov edx, eax
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x64d68f
mov ecx, dword [esp + 0x24]
cmp edx, dword [ecx]
jbe 0x64d68f
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
mov eax, edx
jle 0x64d691
jmp 0x654dc8
mov eax, esi
jmp 0x64d691
mov eax, edx
mov dword [esp + 8], eax
cmp byte [esp + 0xc], 0
jne 0x64f730
jmp 0x6576fa
cmp edx, 0xa
mov dword [esp + 4], 0
jne case.0x657114.6
add ebp, 2
mov dword [esp + 0x14], ebp
mov dword [esp + 8], eax
jmp 0x64f730
xor ecx, ecx
movzx eax, cl
mov ecx, dword [esp + 0x18]
cmp edi, dword [ecx]
jae 0x64d73f
mov ebx, edx
movzx edx, word [edi]
mov ecx, edx
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x64d702
shl edx, 0xa
and edx, 0xffc00
movzx ecx, word [edi + 2]
and ecx, 0x3ff
lea edx, [edx + ecx + 0x10000]
cmp dword [esi + 0x58], 0
je 0x64d99a
mov cl, 1
cmp edx, 0x5f
je 0x64d9b5
mov ecx, edx
sar ecx, 0x1f
shr ecx, 0x19
add ecx, edx
mov esi, ecx
and esi, 0x7fffff80
sar ecx, 7
movzx ecx, byte [ecx + 0x7dd1f4]
shl ecx, 7
sub edx, esi
add edx, ecx
jmp 0x64d978
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx]
test ecx, ecx
je 0x64d76f
mov esi, edx
mov edx, dword [esp + 0x24]
cmp edi, dword [edx]
jbe 0x64d766
mov edx, dword [esp + 0x20]
mov dword [edx], 1
cmp ecx, 1
jg 0x654dc8
xor ecx, ecx
mov edx, esi
jmp 0x64d9b7
xor ecx, ecx
jmp 0x64d9b7
xor eax, eax
movzx esi, al
test esi, esi
je case.0x650b79.4
jmp 0x653ef4
cmp eax, 0x84
jg 0x64d7aa
add eax, 0xfffffff7
cmp eax, 0x17
ja case.0x651f98.8203
mov edx, 0x80001f
bt edx, eax
jb case.0x651f77.0
jmp case.0x651f98.8203
cmp eax, 0x85
je case.0x651f77.0
cmp eax, 0xa0
je case.0x651f77.0
cmp eax, 0x1680
jne case.0x651f98.8203
movzx eax, word [esp + 0x28]
cmp eax, 0xf
je 0x65805d
mov dword [esp + 8], ebx
add ebp, 6
mov dword [esp + 0x14], ebp
jmp 0x64f730
mov eax, edx
mov dword [esp + 8], eax
cmp dword [esp + 0x4c], 0
jne 0x64f730
jmp 0x653fa5
movzx edx, word [ebx + 2]
cmp dx, word [edi + 0x36]
jne 0x65592e
add ecx, ecx
sub eax, ecx
cmp ebx, eax
jne 0x65592e
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x64d314
mov ecx, dword [esp + 0x24]
cmp ebx, dword [ecx]
jbe 0x64d314
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
jle 0x64d314
jmp 0x655c19
cmp eax, 9
mov dword [esp + 4], 0
je 0x64d314
cmp eax, 0x20
je 0x64d314
jmp case.0x657114.6
mov edi, dword [esp + 8]
cmp edi, eax
jae 0x64ee16
movzx ebx, word [edi]
mov esi, ebx
and esi, 0xfc00
mov edx, 1
cmp esi, 0xd800
jne 0x64d8a5
shl ebx, 0xa
and ebx, 0xffc00
movzx edx, word [edi + 2]
and edx, 0x3ff
lea ebx, [ebx + edx + 0x10000]
mov edx, 2
mov esi, 1
cmp ebx, 0x1fff
jle 0x64d8f0
cmp ebx, 0x202e
jg 0x64d912
add ebx, 0xffffe000
cmp ebx, 0xb
jae 0x64d936
cmp esi, ecx
je 0x64f716
mov edi, dword [esp + 0x10]
inc edi
mov esi, dword [esp + 8]
lea esi, [esi + edx*2]
mov dword [esp + 8], esi
mov dword [esp + 0x10], edi
cmp edi, dword [esp + 0x28]
jl 0x64d862
jmp 0x64f716
cmp ebx, 0x9f
jle 0x64d92c
cmp ebx, 0xa0
je 0x64d8c5
cmp ebx, 0x1680
je 0x64d8c5
cmp ebx, 0x180e
je 0x64d8c5
jmp 0x64d936
cmp ebx, 0x202f
je 0x64d8c5
cmp ebx, 0x205f
je 0x64d8c5
cmp ebx, 0x3000
je 0x64d8c5
jmp 0x64d936
cmp ebx, 9
je 0x64d8c5
cmp ebx, 0x20
je 0x64d8c5
xor esi, esi
cmp esi, ecx
jne 0x64d8cd
jmp 0x64f716
xor ecx, ecx
movzx eax, cl
mov ecx, dword [esp + 0x18]
cmp edi, dword [ecx]
jae 0x64d73f
mov ebx, edx
cmp dword [esi + 0x58], 0
movzx edx, word [edi]
je 0x64d99a
mov cl, 1
cmp edx, 0x5f
je 0x64d9b5
mov ecx, edx
shr ecx, 7
movzx ecx, byte [ecx + 0x7dd1f4]
shl ecx, 7
and edx, 0x7f
or edx, ecx
movzx ecx, word [edx + edx + 0x7df3f4]
movzx ecx, byte [ecx*8 + 0x7dbb75]
mov ecx, dword [ecx*4 + 0x7db088]
or ecx, 2
cmp ecx, 3
sete cl
jmp 0x64d9b5
cmp edx, 0xff
ja 0x64d9b3
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
mov cl, byte [ecx + edx]
and cl, 0x10
shr cl, 4
jmp 0x64d9b5
xor ecx, ecx
mov edx, ebx
movzx ecx, cl
add ebp, 2
movzx edx, dx
cmp edx, 5
jne 0x64d9de
mov dword [esp + 4], 0
cmp eax, ecx
mov dword [esp + 0x14], ebp
jne 0x64f730
jmp case.0x657114.6
mov dword [esp + 4], 0
cmp eax, ecx
mov dword [esp + 0x14], ebp
je 0x64f730
jmp case.0x657114.6
mov dword [esp + 0x10], 1
xor ebp, ebp
mov dword [esp + 4], 0
mov ebx, 1
xor esi, esi
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 8]
cmp edx, dword [eax]
jae 0x654d50
lea ecx, [edx + 2]
movzx eax, word [edx]
cmp dword [esp + 0x34], 0
je 0x64da63
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x64da63
shl eax, 0xa
and eax, 0xffc00
mov edx, dword [esp + 8]
movzx ecx, word [edx + 2]
add edx, 4
mov dword [esp + 8], edx
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x64da67
mov dword [esp + 8], ecx
sub esp, 4
push dword [esp + 0x38]
push edi
push eax
call fcn.0065a5e0
add esp, 0x10
test eax, eax
je 0x65805d
inc esi
cmp esi, ebx
jl 0x64da10
mov eax, dword [esp + 8]
mov dword [esp + 0xc], eax
cmp ebx, dword [esp + 0x10]
je 0x64f730
test ebp, ebp
jne 0x656f99
cmp ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
jge 0x64db47
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x18]
cmp ecx, dword [eax]
jae 0x64db1b
mov ebp, ecx
movzx eax, word [ecx]
cmp dword [esp + 0x34], 0
mov esi, 1
je 0x64daf8
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x64daf8
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [ebp + 2]
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
mov esi, 2
sub esp, 4
push dword [esp + 0x38]
push edi
push eax
call fcn.0065a5e0
add esp, 0x10
mov ecx, ebp
test eax, eax
je 0x64db47
lea ecx, [ecx + esi*2]
inc ebx
cmp ebx, dword [esp + 0x10]
jl 0x64dab1
jmp 0x64db47
mov edx, ecx
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x64db45
mov ecx, dword [esp + 0x24]
cmp edx, dword [ecx]
jbe 0x64db45
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
mov ecx, edx
jle 0x64db47
jmp 0x654dc8
mov ecx, edx
mov dword [esp + 8], ecx
cmp byte [esp + 4], 0
jne 0x64f730
jmp 0x657537
mov ecx, edx
mov dword [esp + 8], ecx
cmp dword [esp + 0x4c], 0
jne 0x64f730
jmp 0x65419d
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x64f6dc
mov ecx, dword [esp + 0x24]
cmp ebp, dword [ecx]
jbe 0x64f6dc
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
jle 0x64f6dc
jmp 0x65752a
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx]
test ecx, ecx
je 0x64d6b6
mov edx, dword [esp + 0x24]
cmp eax, dword [edx]
jbe 0x64d6b6
mov edx, dword [esp + 0x20]
mov dword [edx], 1
cmp ecx, 1
jle 0x64d6b6
jmp 0x654dc8
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 8]
mov dword [esp + 0xc], edx
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x656921
movzx edx, word [edi]
cmp edx, 0x7f
ja 0x65805d
mov esi, dword [esp + 0x3c]
mov esi, dword [esi]
test byte [esi + edx], 4
je 0x65805d
add edi, 2
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x64dbe5
jmp 0x65048f
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov edi, dword [esp + 8]
cmp edi, eax
jae 0x656021
movzx edx, word [edi]
cmp edx, 0x7f
ja 0x64dc4c
mov esi, dword [esp + 0x3c]
mov esi, dword [esi]
test byte [esi + edx], 1
jne 0x65805d
lea edx, [edi + 2]
mov esi, edx
cmp edx, eax
jae 0x64dc67
movzx edx, word [edi + 2]
and edx, 0xfc00
cmp edx, 0xdc00
je 0x64dc6b
mov edx, esi
jmp 0x64dc70
add edi, 4
mov edx, edi
inc ecx
cmp ecx, dword [esp + 0x10]
mov dword [esp + 0xc], edx
mov edi, edx
jl 0x64dc2c
jmp 0x65048f
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 8]
mov dword [esp + 0xc], edx
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x65695f
movzx edx, word [edi]
cmp edx, 0x7f
ja 0x65805d
mov esi, dword [esp + 0x3c]
mov esi, dword [esi]
test byte [esi + edx], 1
je 0x65805d
add edi, 2
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x64dc92
jmp 0x65048f
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov edi, dword [esp + 8]
cmp edi, eax
jae 0x65605b
movzx edx, word [edi]
cmp edx, 0x7f
ja 0x64dcf9
mov esi, dword [esp + 0x3c]
mov esi, dword [esi]
test byte [esi + edx], 0x10
jne 0x65805d
lea edx, [edi + 2]
mov esi, edx
cmp edx, eax
jae 0x64dd14
movzx edx, word [edi + 2]
and edx, 0xfc00
cmp edx, 0xdc00
je 0x64dd18
mov edx, esi
jmp 0x64dd1d
add edi, 4
mov edx, edi
inc ecx
cmp ecx, dword [esp + 0x10]
mov dword [esp + 0xc], edx
mov edi, edx
jl 0x64dcd9
jmp 0x65048f
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 8]
mov dword [esp + 0xc], edx
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x65699d
movzx edx, word [edi]
cmp edx, 0x7f
ja 0x65805d
mov esi, dword [esp + 0x3c]
mov esi, dword [esi]
test byte [esi + edx], 0x10
je 0x65805d
add edi, 2
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x64dd3f
jmp 0x65048f
xor esi, esi
mov ebx, dword [esp + 8]
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
cmp ebx, eax
jae 0x65610c
mov edi, dword [esp + 0x158]
mov ecx, dword [edi + 0x18]
test ecx, ecx
je 0x64ddbf
sub esp, 0xc
push dword [esp + 0x40]
push dword [esp + 0x58]
push eax
push ecx
push ebx
call fcn.0065a200
add esp, 0x20
test eax, eax
mov edx, dword [esp + 0x10]
je 0x64ddf2
jmp 0x65805d
mov ecx, dword [esp + 0x48]
mov ecx, dword [ecx]
lea edx, [ecx + ecx]
sub eax, edx
cmp ebx, eax
mov edx, dword [esp + 0x10]
ja 0x64ddf2
movzx eax, word [ebx]
cmp ax, word [edi + 0x34]
jne 0x64ddf2
cmp ecx, 1
je 0x65805d
movzx eax, word [ebx + 2]
cmp ax, word [edi + 0x36]
je 0x65805d
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
test ecx, ecx
je 0x64de17
lea edx, [ebx + 2]
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ebp, edx
cmp edx, eax
jae 0x64de26
mov ecx, ebp
mov edx, dword [esp + 0x10]
cmp ecx, eax
jb 0x64de36
jmp 0x64de4b
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
lea ecx, [ebx + 2]
cmp ecx, eax
jb 0x64de36
jmp 0x64de4b
cmp dword [edi + 0x18], 0
mov edx, dword [esp + 0x10]
je 0x64de5f
mov ecx, ebp
cmp ecx, eax
jae 0x64de4b
movzx eax, word [ebx + 2]
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x64de4b
add ebx, 4
mov ecx, ebx
inc esi
cmp esi, edx
mov dword [esp + 0xc], ecx
mov ebx, ecx
jl 0x64dd80
jmp 0x65048f
mov edx, dword [esp + 0x48]
cmp dword [edx], 2
jne 0x64de0b
movzx edx, word [ebx]
cmp dx, word [edi + 0x34]
jne 0x64de0b
mov edx, dword [esp + 0x20]
mov dword [edx], 1
cmp ecx, 1
mov ecx, ebp
mov edx, dword [esp + 0x10]
jle 0x64de32
jmp 0x654dc8
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov esi, dword [esp + 8]
cmp esi, eax
jae 0x655bdf
lea edi, [esi + 2]
cmp edi, eax
jae 0x64debd
movzx edx, word [esi + 2]
and edx, 0xfc00
cmp edx, 0xdc00
jne 0x64debd
add esi, 4
mov edi, esi
mov edx, dword [esp + 0x10]
inc ecx
cmp ecx, edx
mov dword [esp + 0xc], edi
mov esi, edi
jl 0x64de97
jmp 0x65048f
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 8]
mov dword [esp + 0xc], edx
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x6567fa
movzx edx, word [edi]
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x64df1f
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
jmp 0x64df22
add edi, 2
mov ebx, dword [esp + 0x158]
mov dword [esp + 0xc], edi
cmp edx, 0xc
jle 0x64df6f
lea edi, [edx - 0x2028]
cmp edi, 2
jb 0x64df77
cmp edx, 0x85
je 0x64df77
cmp edx, 0xd
mov dword [esp + 4], 0
jne case.0x657114.6
mov esi, dword [esp + 0xc]
cmp esi, eax
jae 0x64df81
movzx edx, word [esi]
cmp edx, 0xa
jne 0x64df81
add esi, 2
mov dword [esp + 0xc], esi
jmp 0x64df81
lea edi, [edx - 0xb]
cmp edi, 2
jae 0x64df91
cmp dword [ebx + 0x6c], 0
jne 0x65805d
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x64dee1
jmp 0x65048f
cmp edx, 0xa
mov dword [esp + 4], 0
je 0x64df81
jmp case.0x657114.6
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 8]
mov dword [esp + 0xc], edx
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x6565c1
movzx edx, word [edi]
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x64e024
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
cmp edx, 0x1fff
jg 0x64e02f
cmp edx, 0x9f
jle 0x64e06c
cmp edx, 0xa0
je 0x6588df
cmp edx, 0x1680
je 0x6588df
cmp edx, 0x180e
jne 0x64e07e
jmp 0x6588df
add edi, 2
cmp edx, 0x1fff
jle 0x64dff7
cmp edx, 0x202e
jg 0x64e047
add edx, 0xffffe000
cmp edx, 0xb
jae 0x64e07e
jmp 0x6588df
cmp edx, 0x202f
je 0x6588df
cmp edx, 0x205f
je 0x6588df
cmp edx, 0x3000
jne 0x64e07e
jmp 0x6588df
cmp edx, 9
je 0x6588df
cmp edx, 0x20
je 0x6588df
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x64dfb3
jmp 0x65048f
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 8]
mov dword [esp + 0xc], edx
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x6565ff
movzx edx, word [edi]
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x64e10b
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
cmp edx, 0x1fff
jg 0x64e116
cmp edx, 0x9f
jle 0x64e15e
cmp edx, 0xa0
je 0x64e12d
cmp edx, 0x1680
je 0x64e12d
cmp edx, 0x180e
je 0x64e12d
jmp 0x6588df
add edi, 2
cmp edx, 0x1fff
jle 0x64e0e6
cmp edx, 0x202e
jg 0x64e141
add edx, 0xffffe000
cmp edx, 0xb
jae 0x6588df
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x64e0a2
jmp 0x65048f
cmp edx, 0x202f
je 0x64e12d
cmp edx, 0x3000
je 0x64e12d
cmp edx, 0x205f
je 0x64e12d
jmp 0x6588df
cmp edx, 9
je 0x64e12d
cmp edx, 0x20
je 0x64e12d
jmp 0x6588df
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 8]
mov dword [esp + 0xc], edx
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x65663d
movzx edx, word [edi]
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x64e1bb
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
jmp 0x64e1be
add edi, 2
lea esi, [edx - 0xa]
cmp esi, 4
jb 0x6588df
lea esi, [edx - 0x2028]
cmp esi, 2
jb 0x6588df
cmp edx, 0x85
je 0x6588df
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x64e17d
jmp 0x65048f
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 8]
mov dword [esp + 0xc], edx
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x65667b
movzx edx, word [edi]
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x64e243
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
jmp 0x64e246
add edi, 2
lea esi, [edx - 0xa]
cmp esi, 4
jb 0x64e265
lea esi, [edx - 0x2028]
cmp esi, 2
jb 0x64e265
cmp edx, 0x85
jne 0x6588df
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x64e205
jmp 0x65048f
mov al, 1
movzx esi, al
test esi, esi
jne 0x653ef4
mov ecx, dword [esp + 4]
lea eax, [edi + ecx*2]
mov dword [esp + 0x14], eax
movzx eax, word [edi + ecx*2 - 4]
cmp eax, 0x77
mov eax, dword [esp + 0x28]
jne 0x64f730
jmp 0x653f0b
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x64f716
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
cmp ebp, 0x14
sete cl
mov edx, dword [esp + 0xc]
mov dword [esp + 8], edx
mov ebx, dword [esp + 8]
cmp ebx, eax
jae 0x64ee16
movzx esi, word [ebx]
mov edi, esi
and edi, 0xfc00
mov edx, 1
cmp edi, 0xd800
jne 0x64e30f
shl esi, 0xa
and esi, 0xffc00
movzx edx, word [ebx + 2]
and edx, 0x3ff
lea esi, [esi + edx + 0x10000]
mov edx, 2
mov ebx, 1
lea edi, [esi - 0xa]
cmp edi, 4
jb 0x64e331
lea edi, [esi - 0x2028]
cmp edi, 2
jb 0x64e331
cmp esi, 0x85
je 0x64e331
xor ebx, ebx
cmp ebx, ecx
je 0x64f716
mov edi, dword [esp + 0x10]
inc edi
mov esi, dword [esp + 8]
lea esi, [esi + edx*2]
mov dword [esp + 8], esi
mov dword [esp + 0x10], edi
cmp edi, dword [esp + 0x28]
jl 0x64e2cc
jmp 0x64f716
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 8]
mov dword [esp + 0xc], edx
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x656e98
movzx edx, word [edi]
cmp edx, 0xff
ja 0x65805d
mov esi, dword [esp + 0x3c]
mov esi, dword [esi]
test byte [esi + edx], 4
je 0x65805d
add edi, 2
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x64e36c
jmp 0x65048f
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 8]
mov dword [esp + 0xc], edx
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x6569db
movzx edx, word [edi]
cmp edx, 0xff
ja 0x64e3e1
mov esi, dword [esp + 0x3c]
mov esi, dword [esi]
test byte [esi + edx], 1
jne 0x65805d
add edi, 2
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x64e3ba
jmp 0x65048f
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 8]
mov dword [esp + 0xc], edx
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x656ed6
movzx edx, word [edi]
cmp edx, 0xff
ja 0x65805d
mov esi, dword [esp + 0x3c]
mov esi, dword [esi]
test byte [esi + edx], 1
je 0x65805d
add edi, 2
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x64e404
jmp 0x65048f
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 8]
mov dword [esp + 0xc], edx
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x656a19
movzx edx, word [edi]
cmp edx, 0xff
ja 0x64e479
mov esi, dword [esp + 0x3c]
mov esi, dword [esi]
test byte [esi + edx], 0x10
jne 0x65805d
add edi, 2
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x64e452
jmp 0x65048f
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 8]
mov dword [esp + 0xc], edx
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x656f14
movzx edx, word [edi]
cmp edx, 0xff
ja 0x65805d
mov esi, dword [esp + 0x3c]
mov esi, dword [esi]
test byte [esi + edx], 0x10
je 0x65805d
add edi, 2
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x64e49c
jmp 0x65048f
xor esi, esi
mov ebx, dword [esp + 8]
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
cmp ebx, eax
jae 0x656bf8
mov edi, dword [esp + 0x158]
mov ecx, dword [edi + 0x18]
test ecx, ecx
je 0x64e519
sub esp, 0xc
push 0
push dword [esp + 0x58]
push eax
push ecx
push ebx
call fcn.0065a200
add esp, 0x20
test eax, eax
je 0x64e548
jmp 0x65805d
mov ecx, dword [esp + 0x48]
mov ecx, dword [ecx]
lea edx, [ecx + ecx]
sub eax, edx
cmp ebx, eax
ja 0x64e548
movzx eax, word [ebx]
cmp ax, word [edi + 0x34]
jne 0x64e548
cmp ecx, 1
je 0x65805d
movzx eax, word [ebx + 2]
cmp ax, word [edi + 0x36]
je 0x65805d
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
lea edx, [ebx + 2]
test eax, eax
je 0x64e588
mov ecx, dword [esp + 0x18]
cmp edx, dword [ecx]
jb 0x64e588
cmp dword [edi + 0x18], 0
jne 0x64e588
mov ecx, dword [esp + 0x48]
cmp dword [ecx], 2
jne 0x64e588
movzx ecx, word [ebx]
cmp cx, word [edi + 0x34]
jne 0x64e588
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
jg 0x654dc8
inc esi
cmp esi, dword [esp + 0x10]
mov dword [esp + 0xc], edx
mov ebx, edx
jl 0x64e4e0
jmp 0x65048f
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov edx, dword [esp + 0x10]
lea ecx, [edx + edx]
sub eax, ecx
mov ecx, dword [esp + 8]
cmp ecx, eax
ja 0x658439
lea eax, [ecx + edx*2]
mov dword [esp + 0xc], eax
jmp 0x65048f
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov ebp, dword [esp + 8]
cmp ebp, eax
jae 0x656dd2
lea edx, [ebp + 2]
mov dword [esp + 0xc], edx
movsx edx, word [ebp]
cmp edx, 0xc
mov ebx, dword [esp + 0x158]
jle 0x64e632
lea edi, [edx - 0x2028]
movzx edi, di
cmp edi, 2
jb 0x64e63d
movzx edx, dx
cmp edx, 0x85
je 0x64e63d
cmp edx, 0xd
mov dword [esp + 4], 0
jne case.0x657114.6
cmp dword [esp + 0xc], eax
jae 0x64e647
movzx edx, word [ebp + 2]
cmp edx, 0xa
jne 0x64e647
add ebp, 4
mov dword [esp + 0xc], ebp
jmp 0x64e647
lea edi, [edx - 0xb]
movzx edi, di
cmp edi, 2
jae 0x64e65b
cmp dword [ebx + 0x6c], 0
jne 0x65805d
inc ecx
cmp ecx, dword [esp + 0x10]
mov ebp, dword [esp + 0xc]
jl 0x64e5d1
jmp 0x65048f
movzx edx, dx
cmp edx, 0xa
mov dword [esp + 4], 0
je 0x64e647
jmp case.0x657114.6
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 8]
mov dword [esp + 0xc], edx
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x656c8f
movsx edx, word [edi]
movsx esi, dx
cmp edx, 0x1fff
jle 0x64e6b5
cmp esi, 0x202e
jg 0x64e6e5
lea edx, [edx - 0x2000]
movzx edx, dx
cmp edx, 0xb
jae 0x64e71f
jmp 0x6588df
movzx edx, dx
cmp esi, 0x9f
jle 0x64e70d
cmp edx, 0xa0
je 0x6588df
cmp edx, 0x1680
je 0x6588df
cmp edx, 0x180e
jne 0x64e71f
jmp 0x6588df
movzx edx, dx
cmp edx, 0x202f
je 0x6588df
cmp edx, 0x205f
je 0x6588df
cmp edx, 0x3000
jne 0x64e71f
jmp 0x6588df
cmp edx, 9
je 0x6588df
cmp edx, 0x20
je 0x6588df
add edi, 2
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x64e680
jmp 0x65048f
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 8]
mov dword [esp + 0xc], edx
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x656ccd
movsx edx, word [edi]
movsx esi, dx
cmp edx, 0x1fff
jle 0x64e78d
cmp esi, 0x202e
jg 0x64e7b5
lea edx, [edx - 0x2000]
movzx edx, dx
cmp edx, 0xb
jae 0x6588df
add edi, 2
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x64e746
jmp 0x65048f
movzx edx, dx
cmp esi, 0x9f
jle 0x64e7d5
cmp edx, 0xa0
je 0x64e77a
cmp edx, 0x1680
je 0x64e77a
cmp edx, 0x180e
je 0x64e77a
jmp 0x6588df
movzx edx, dx
cmp edx, 0x202f
je 0x64e77a
cmp edx, 0x3000
je 0x64e77a
cmp edx, 0x205f
je 0x64e77a
jmp 0x6588df
cmp edx, 9
je 0x64e77a
cmp edx, 0x20
je 0x64e77a
jmp 0x6588df
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 8]
mov dword [esp + 0xc], edx
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x656d0b
movzx edx, word [edi]
lea esi, [edx - 0xa]
movzx esi, si
cmp esi, 4
jb 0x6588df
lea esi, [edx - 0x2028]
movzx esi, si
cmp esi, 2
jb 0x6588df
movzx edx, dx
cmp edx, 0x85
je 0x6588df
add edi, 2
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x64e7f4
jmp 0x65048f
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 8]
mov dword [esp + 0xc], edx
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x656d49
movzx edx, word [edi]
lea esi, [edx - 0xa]
movzx esi, si
cmp esi, 4
jb 0x64e88d
lea esi, [edx - 0x2028]
movzx esi, si
cmp esi, 2
jb 0x64e88d
movzx edx, dx
cmp edx, 0x85
jne 0x6588df
add edi, 2
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x64e856
jmp 0x65048f
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x64f716
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
cmp ecx, eax
jae 0x64ee16
movzx ecx, word [ecx]
mov esi, ecx
and esi, 0xfc00
mov edx, 2
cmp esi, 0xd800
je 0x64e906
mov edx, 1
cmp ecx, 0xff
ja 0x64e906
mov edx, dword [esp + 0x3c]
mov esi, dword [edx]
mov edx, 1
test byte [esi + ecx], 4
jne 0x64f716
mov ecx, dword [esp + 8]
lea ecx, [ecx + edx*2]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x64e8c0
jmp 0x64f716
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x64f716
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
cmp ecx, eax
jae 0x64ee16
movzx ecx, word [ecx]
cmp ecx, 0xff
ja 0x64f716
mov edx, ecx
and edx, 0xfc00
cmp edx, 0xd800
je 0x64f716
mov edx, dword [esp + 0x3c]
mov edx, dword [edx]
test byte [edx + ecx], 4
je 0x64f716
add dword [esp + 8], 2
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x64e945
jmp 0x64f716
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x64f716
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
cmp ecx, eax
jae 0x64ee16
movzx ecx, word [ecx]
mov esi, ecx
and esi, 0xfc00
mov edx, 2
cmp esi, 0xd800
je 0x64ea03
mov edx, 1
cmp ecx, 0xff
ja 0x64ea03
mov edx, dword [esp + 0x3c]
mov esi, dword [edx]
mov edx, 1
test byte [esi + ecx], 1
jne 0x64f716
mov ecx, dword [esp + 8]
lea ecx, [ecx + edx*2]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x64e9bd
jmp 0x64f716
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x64f716
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
cmp ecx, eax
jae 0x64ee16
movzx ecx, word [ecx]
cmp ecx, 0xff
ja 0x64f716
mov edx, ecx
and edx, 0xfc00
cmp edx, 0xd800
je 0x64f716
mov edx, dword [esp + 0x3c]
mov edx, dword [edx]
test byte [edx + ecx], 1
je 0x64f716
add dword [esp + 8], 2
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x64ea42
jmp 0x64f716
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x64f716
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
cmp ecx, eax
jae 0x64ee16
movzx ecx, word [ecx]
mov esi, ecx
and esi, 0xfc00
mov edx, 2
cmp esi, 0xd800
je 0x64eb00
mov edx, 1
cmp ecx, 0xff
ja 0x64eb00
mov edx, dword [esp + 0x3c]
mov esi, dword [edx]
mov edx, 1
test byte [esi + ecx], 0x10
jne 0x64f716
mov ecx, dword [esp + 8]
lea ecx, [ecx + edx*2]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x64eaba
jmp 0x64f716
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x64f716
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
cmp ecx, eax
jae 0x64ee16
movzx ecx, word [ecx]
cmp ecx, 0xff
ja 0x64f716
mov edx, ecx
and edx, 0xfc00
cmp edx, 0xd800
je 0x64f716
mov edx, dword [esp + 0x3c]
mov edx, dword [edx]
test byte [edx + ecx], 0x10
je 0x64f716
add dword [esp + 8], 2
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x64eb3f
jmp 0x64f716
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x64f716
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
cmp esi, eax
jae 0x64ecc4
mov ecx, dword [esp + 0x158]
mov ecx, dword [ecx + 0x18]
test ecx, ecx
je 0x64ebe8
sub esp, 0xc
push dword [esp + 0x40]
push dword [esp + 0x58]
push eax
push ecx
push esi
call fcn.0065a200
add esp, 0x20
test eax, eax
je 0x64ec25
jmp 0x64ecf2
mov ecx, dword [esp + 0x48]
mov ecx, dword [ecx]
lea edx, [ecx + ecx]
sub eax, edx
cmp esi, eax
ja 0x64ec25
movzx eax, word [esi]
mov edx, dword [esp + 0x158]
cmp ax, word [edx + 0x34]
jne 0x64ec25
cmp ecx, 1
je 0x64ed2e
movzx eax, word [esi + 2]
mov ecx, dword [esp + 0x158]
cmp ax, word [ecx + 0x36]
je 0x64ed42
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
test ecx, ecx
je 0x64ec7e
lea edx, [esi + 2]
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ebx, edx
cmp edx, eax
jb 0x64ec7a
mov edx, dword [esp + 0x158]
cmp dword [edx + 0x18], 0
jne 0x64ec7a
mov edx, dword [esp + 0x48]
cmp dword [edx], 2
jne 0x64ec7a
movzx edx, word [esi]
mov edi, dword [esp + 0x158]
cmp dx, word [edi + 0x34]
jne 0x64ec7a
mov edx, dword [esp + 0x20]
mov dword [edx], 1
cmp ecx, 1
mov ecx, ebx
jle 0x64ec87
jmp 0x65752a
mov ecx, ebx
jmp 0x64ec87
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
lea ecx, [esi + 2]
mov dword [esp + 8], ecx
cmp ecx, eax
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x10]
jae 0x64ecae
movzx eax, word [esi + 2]
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x64ecae
add esi, 4
mov dword [esp + 8], esi
inc edx
mov dword [esp + 0x10], edx
cmp edx, ecx
mov esi, dword [esp + 8]
jl 0x64ebad
jmp 0x64f716
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x64ed06
mov ecx, dword [esp + 0x24]
cmp esi, dword [ecx]
jbe 0x64ed1a
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
mov dword [esp + 8], esi
jle 0x64f716
jmp 0x65752a
mov dword [esp + 8], esi
cmp dword [esp + 0x58], 0
jne 0x64f730
jmp 0x6544c2
mov dword [esp + 8], esi
cmp dword [esp + 0x58], 0
jne 0x64f730
jmp 0x6544c2
mov dword [esp + 8], esi
cmp dword [esp + 0x58], 0
jne 0x64f730
jmp 0x6544c2
mov dword [esp + 8], esi
cmp dword [esp + 0x58], 0
jne 0x64f730
jmp 0x6544c2
mov dword [esp + 8], esi
jmp 0x64f716
cmp edx, 0x7fffffff
jne 0x64ed62
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov dword [esp + 8], eax
jmp 0x64ee16
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x64f716
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
cmp ecx, eax
jae 0x64edc0
lea edx, [ecx + 2]
mov dword [esp + 8], edx
cmp edx, eax
jae 0x64eda6
movzx edx, word [ecx + 2]
and edx, 0xfc00
cmp edx, 0xdc00
jne 0x64eda6
add ecx, 4
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x10]
inc edx
mov dword [esp + 0x10], edx
cmp edx, ecx
mov ecx, dword [esp + 8]
jl 0x64ed7e
jmp 0x64f716
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x64edee
mov edx, dword [esp + 0x24]
cmp ecx, dword [edx]
jbe 0x64ee02
mov edx, dword [esp + 0x20]
mov dword [edx], 1
cmp eax, 1
mov dword [esp + 8], ecx
jle 0x64f716
jmp 0x65752a
mov dword [esp + 8], ecx
cmp dword [esp + 0x58], 0
jne 0x64f730
jmp 0x6544c2
mov dword [esp + 8], ecx
cmp dword [esp + 0x58], 0
jne 0x64f730
jmp 0x6544c2
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x64f716
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x64f716
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
jle 0x64f716
jmp 0x65752a
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx]
mov dword [esp + 8], ecx
mov edx, dword [esp + 0xc]
sub ecx, edx
sar ecx, 1
cmp eax, ecx
ja 0x64ee16
lea eax, [edx + eax*2]
mov dword [esp + 8], eax
cmp dword [esp + 0x58], 0
jne 0x64f730
jmp 0x6544c2
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x64f716
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], ecx
mov edi, dword [esp + 8]
cmp edi, eax
jae 0x64ee16
movzx ecx, word [edi]
mov esi, ecx
and esi, 0xfc00
mov edx, 1
cmp esi, 0xd800
jne 0x64eedc
shl ecx, 0xa
and ecx, 0xffc00
movzx edx, word [edi + 2]
and edx, 0x3ff
lea ecx, [ecx + edx + 0x10000]
mov edx, 2
cmp ecx, 0xa
je 0x64ef33
cmp ecx, 0xd
jne 0x64ef03
mov esi, dword [esp + 8]
lea ecx, [esi + 2]
cmp ecx, eax
jae 0x64ef58
movzx edx, word [esi + 2]
cmp edx, 0xa
jne 0x64ef3a
add esi, 4
mov dword [esp + 8], esi
jmp 0x64ef3e
mov esi, dword [esp + 0x158]
cmp dword [esi + 0x6c], 0
jne 0x64f716
lea esi, [ecx - 0xb]
cmp esi, 2
jb 0x64ef33
lea esi, [ecx - 0x2028]
cmp esi, 2
jb 0x64ef33
cmp ecx, 0x85
jne 0x64f716
mov ecx, dword [esp + 8]
lea ecx, [ecx + edx*2]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x10]
inc edx
mov dword [esp + 0x10], edx
cmp edx, ecx
jl 0x64ee99
jmp 0x64f716
mov dword [esp + 8], ecx
cmp dword [esp + 0x58], 0
jne 0x64f730
jmp 0x6544c2
cmp eax, 0x3000
je case.0x651f77.0
cmp eax, 0x180e
je case.0x651f77.0
movzx eax, byte [ecx*8 + 0x7dbb75]
cmp dword [eax*4 + 0x7db088], 6
jmp 0x653d10
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x64f6ce
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
cmp ecx, eax
jae 0x64f6ec
movzx ecx, word [ecx]
cmp ecx, 0xff
ja 0x64efde
mov edx, dword [esp + 0x3c]
mov edx, dword [edx]
test byte [edx + ecx], 4
jne 0x64f6ce
add dword [esp + 8], 2
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x64efb7
jmp 0x64f6ce
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x64f6ce
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
cmp ecx, eax
jae 0x64f6ec
movzx ecx, word [ecx]
cmp ecx, 0xff
ja 0x64f6ce
mov edx, dword [esp + 0x3c]
mov edx, dword [edx]
test byte [edx + ecx], 4
je 0x64f6ce
add dword [esp + 8], 2
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x64f017
jmp 0x64f6ce
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x64f6ce
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
cmp ecx, eax
jae 0x64f6ec
movzx ecx, word [ecx]
cmp ecx, 0xff
ja 0x64f0a2
mov edx, dword [esp + 0x3c]
mov edx, dword [edx]
test byte [edx + ecx], 1
jne 0x64f6ce
add dword [esp + 8], 2
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x64f07b
jmp 0x64f6ce
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x64f6ce
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
cmp ecx, eax
jae 0x64f6ec
movzx ecx, word [ecx]
cmp ecx, 0xff
ja 0x64f6ce
mov edx, dword [esp + 0x3c]
mov edx, dword [edx]
test byte [edx + ecx], 1
je 0x64f6ce
add dword [esp + 8], 2
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x64f0db
jmp 0x64f6ce
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x64f6ce
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
cmp ecx, eax
jae 0x64f6ec
movzx ecx, word [ecx]
cmp ecx, 0xff
ja 0x64f166
mov edx, dword [esp + 0x3c]
mov edx, dword [edx]
test byte [edx + ecx], 0x10
jne 0x64f6ce
add dword [esp + 8], 2
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x64f13f
jmp 0x64f6ce
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x64f6ce
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
cmp ecx, eax
jae 0x64f6ec
movzx ecx, word [ecx]
cmp ecx, 0xff
ja 0x64f6ce
mov edx, dword [esp + 0x3c]
mov edx, dword [edx]
test byte [edx + ecx], 0x10
je 0x64f6ce
add dword [esp + 8], 2
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x64f19f
jmp 0x64f6ce
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x64f6ce
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
cmp esi, eax
jae 0x64f2db
mov ecx, dword [esp + 0x158]
mov ecx, dword [ecx + 0x18]
test ecx, ecx
je 0x64f232
sub esp, 0xc
push 0
push dword [esp + 0x58]
push eax
push ecx
push esi
call fcn.0065a200
add esp, 0x20
test eax, eax
je 0x64f26f
jmp 0x64f309
mov ecx, dword [esp + 0x48]
mov ecx, dword [ecx]
lea edx, [ecx + ecx]
sub eax, edx
cmp esi, eax
ja 0x64f26f
movzx eax, word [esi]
mov edx, dword [esp + 0x158]
cmp ax, word [edx + 0x34]
jne 0x64f26f
cmp ecx, 1
je 0x64f345
movzx eax, word [esi + 2]
mov ecx, dword [esp + 0x158]
cmp ax, word [ecx + 0x36]
je 0x64f359
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
lea edi, [esi + 2]
test eax, eax
je 0x64f2bd
mov ecx, dword [esp + 0x18]
cmp edi, dword [ecx]
jb 0x64f2bd
mov ecx, dword [esp + 0x158]
cmp dword [ecx + 0x18], 0
jne 0x64f2bd
mov ecx, dword [esp + 0x48]
cmp dword [ecx], 2
jne 0x64f2bd
movzx ecx, word [esi]
mov edx, dword [esp + 0x158]
cmp cx, word [edx + 0x34]
jne 0x64f2bd
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
jg 0x65752a
mov eax, dword [esp + 0x10]
inc eax
mov dword [esp + 0x10], eax
cmp eax, dword [esp + 0x28]
mov dword [esp + 8], edi
mov esi, edi
jl 0x64f1f9
jmp 0x64f6ce
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x64f31d
mov ecx, dword [esp + 0x24]
cmp esi, dword [ecx]
jbe 0x64f331
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
mov dword [esp + 8], esi
jle 0x64f6ce
jmp 0x65752a
mov dword [esp + 8], esi
cmp dword [esp + 0x58], 0
jne 0x64f730
jmp 0x6545f4
mov dword [esp + 8], esi
cmp dword [esp + 0x58], 0
jne 0x64f730
jmp 0x6545f4
mov dword [esp + 8], esi
cmp dword [esp + 0x58], 0
jne 0x64f730
jmp 0x6545f4
mov dword [esp + 8], esi
cmp dword [esp + 0x58], 0
jne 0x64f730
jmp 0x6545f4
mov dword [esp + 8], esi
cmp dword [esp + 0x58], 0
jne 0x64f730
jmp 0x6545f4
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x64f6ce
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], ecx
jmp 0x64f398
add esi, 4
mov dword [esp + 8], esi
jmp 0x64f409
mov ecx, dword [esp + 8]
cmp ecx, eax
jae 0x64f6ec
movzx ecx, word [ecx]
cmp ecx, 0xa
je 0x64f404
movzx edx, cx
cmp edx, 0xd
jne 0x64f3ce
mov esi, dword [esp + 8]
lea ecx, [esi + 2]
cmp ecx, eax
jae 0x64f423
movzx edx, word [esi + 2]
cmp edx, 0xa
je 0x64f38f
mov dword [esp + 8], ecx
jmp 0x64f409
mov esi, dword [esp + 0x158]
cmp dword [esi + 0x6c], 0
jne 0x64f6ce
lea esi, [ecx - 0xb]
movzx esi, si
cmp esi, 2
jb 0x64f404
add ecx, 0xffffdfd8
movzx ecx, cx
cmp ecx, 2
jb 0x64f404
cmp edx, 0x85
jne 0x64f6ce
add dword [esp + 8], 2
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x10]
inc edx
mov dword [esp + 0x10], edx
cmp edx, ecx
jl 0x64f398
jmp 0x64f6ce
mov dword [esp + 8], ecx
cmp dword [esp + 0x58], 0
jne 0x64f730
jmp 0x6545f4
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x64f6ce
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
cmp ecx, eax
jae 0x64f6ec
movsx ecx, word [ecx]
movsx edx, cx
cmp ecx, 0x1fff
jle 0x64f490
cmp edx, 0x202e
jg 0x64f4c4
lea ecx, [ecx - 0x2000]
movzx ecx, cx
cmp ecx, 0xb
mov edx, dword [esp + 0x28]
jae 0x64f506
jmp 0x64f6ce
movzx ecx, cx
cmp edx, 0x9f
jle 0x64f4f0
cmp ecx, 0xa0
mov edx, dword [esp + 0x28]
je 0x64f6ce
cmp ecx, 0x1680
je 0x64f6ce
cmp ecx, 0x180e
jne 0x64f506
jmp 0x64f6ce
movzx ecx, cx
cmp ecx, 0x202f
je 0x64f6ce
cmp ecx, 0x205f
mov edx, dword [esp + 0x28]
je 0x64f6ce
cmp ecx, 0x3000
jne 0x64f506
jmp 0x64f6ce
cmp ecx, 9
mov edx, dword [esp + 0x28]
je 0x64f6ce
cmp ecx, 0x20
je 0x64f6ce
add dword [esp + 8], 2
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, edx
jl 0x64f457
jmp 0x64f6ce
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x64f6ce
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
cmp ecx, eax
jae 0x64f6ec
movsx ecx, word [ecx]
movsx edx, cx
cmp ecx, 0x1fff
jle 0x64f590
cmp edx, 0x202e
jg 0x64f5bc
lea ecx, [ecx - 0x2000]
movzx ecx, cx
cmp ecx, 0xb
mov edx, dword [esp + 0x28]
jae 0x64f6ce
add dword [esp + 8], 2
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, edx
jl 0x64f541
jmp 0x64f6ce
movzx ecx, cx
cmp edx, 0x9f
jle 0x64f5e0
cmp ecx, 0xa0
mov edx, dword [esp + 0x28]
je 0x64f579
cmp ecx, 0x1680
je 0x64f579
cmp ecx, 0x180e
je 0x64f579
jmp 0x64f6ce
movzx ecx, cx
cmp ecx, 0x202f
mov edx, dword [esp + 0x28]
je 0x64f579
cmp ecx, 0x3000
je 0x64f579
cmp ecx, 0x205f
je 0x64f579
jmp 0x64f6ce
cmp ecx, 9
mov edx, dword [esp + 0x28]
je 0x64f579
cmp ecx, 0x20
je 0x64f579
jmp 0x64f6ce
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x64f6ce
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
cmp ecx, eax
jae 0x64f6ec
movzx ecx, word [ecx]
lea edx, [ecx - 0xa]
movzx edx, dx
cmp edx, 4
jb 0x64f6ce
lea edx, [ecx - 0x2028]
movzx edx, dx
cmp edx, 2
jb 0x64f6ce
movzx ecx, cx
cmp ecx, 0x85
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x10]
je 0x64f6ce
add dword [esp + 8], 2
inc edx
mov dword [esp + 0x10], edx
cmp edx, ecx
jl 0x64f613
jmp 0x64f6ce
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x64f6ce
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
cmp ecx, eax
jae 0x64f6ec
movzx ecx, word [ecx]
lea edx, [ecx - 0xa]
movzx edx, dx
cmp edx, 4
jb 0x64f6b1
lea edx, [ecx - 0x2028]
movzx edx, dx
cmp edx, 2
jb 0x64f6b1
movzx ecx, cx
cmp ecx, 0x85
jne 0x64f6ce
add dword [esp + 8], 2
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x64f682
jmp 0x64f6ce
lea eax, [edx + eax*2]
mov dword [esp + 8], eax
cmp dword [esp + 0x58], 0
jne 0x64f730
jmp 0x6545f4
mov ebp, ecx
mov dword [esp + 8], ebp
cmp dword [esp + 0x58], 0
jne 0x64f730
jmp 0x653f26
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x64f6ce
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x64f6ce
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
jle 0x64f6ce
jmp 0x65752a
cmp dword [esp + 0x58], 0
je 0x6544c2
nop word cs:[eax + eax]
mov ebp, dword [esp + 0x14]
movzx edx, word [ebp]
cmp edx, 0xa1
ja case.0x64f74e.98
xor eax, eax
mov dword [esp + 4], 0
jmp dword [edx*4 + 0x658900]
add ebp, 2
movzx eax, dx
cmp eax, 0x2e
mov eax, 0x21
mov ecx, 0x2e
cmovb ecx, eax
mov eax, edx
sub eax, ecx
mov edi, eax
and edi, 1
movsx ecx, byte [eax + 0x7daf30]
mov dword [esp + 0x10], ecx
movsx ecx, byte [eax + 0x7daf3b]
mov esi, edx
mov edx, 0x3cf
bt edx, eax
mov edx, esi
mov eax, 0x7fffffff
cmovae eax, ecx
mov dword [esp + 0x40], eax
mov dword [esp + 0x50], 0
jmp 0x64faed
movzx ecx, word [ebp + 2]
movzx edx, word [ebp + ecx*2]
lea ebp, [ebp + ecx*2]
cmp edx, 0x77
je case.0x64f74e.119
mov dword [esp + 0x14], ebp
jmp 0x64f730
add ebp, 2
movzx eax, dx
cmp eax, 0x47
mov eax, 0x48
mov ecx, 0x3b
cmova ecx, eax
mov eax, edx
sub eax, ecx
mov ecx, eax
and ecx, 1
mov dword [esp + 0x50], ecx
movsx edi, byte [eax + 0x7daf30]
movsx ecx, byte [eax + 0x7daf3b]
mov esi, edx
mov edx, 0x3cf
bt edx, eax
mov edx, esi
mov eax, 0x7fffffff
cmovae eax, ecx
mov dword [esp + 0x40], eax
jmp 0x64f873
add ebp, 2
lea eax, [edx - 0x55]
mov ecx, edx
not ecx
and ecx, 1
mov dword [esp + 0x4c], ecx
movsx ecx, byte [edx + 0x7daedb]
mov dword [esp + 0x10], ecx
movsx ecx, byte [edx + 0x7daee6]
mov edx, 0x3cf
bt edx, eax
mov edx, 0x7fffffff
cmovae edx, ecx
jmp 0x6502ee
movzx eax, word [ebp + 2]
mov dword [esp + 0x40], eax
movzx eax, dx
cmp eax, 0x42
sete cl
cmp eax, 0x4f
sete al
or al, cl
movzx eax, al
mov dword [esp + 0x50], eax
add ebp, 4
xor edi, edi
mov dword [esp + 0x4c], 0
jmp 0x64ff22
movzx eax, word [ebp + 2]
add eax, eax
mov ecx, eax
neg ecx
mov dword [esp + 0xc], ebp
movzx esi, word [ebp + ecx]
cmp esi, 0x87
ja 0x650ba6
movzx ecx, si
cmp ecx, 0x81
je 0x650ba6
mov dword [esp + 4], 0
jmp 0x650bb7
cmp dword [esp + 0x34], 0
mov esi, dword [esp + 0x158]
mov eax, dword [esi + 0x78]
je 0x651f9f
mov edi, dword [esp + 8]
cmp edi, eax
je 0x652518
mov ebx, edx
lea eax, [edi - 2]
movzx edx, word [edi - 2]
and edx, 0xfc00
lea ecx, [edi - 4]
cmp edx, 0xdc00
cmovne ecx, eax
mov eax, dword [esp + 0x24]
cmp ecx, dword [eax]
jae 0x64f905
mov eax, dword [esp + 0x24]
mov dword [eax], ecx
movzx eax, word [ecx]
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x64f931
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [ecx + 2]
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
mov edx, ebx
cmp dword [esi + 0x58], 0
je 0x653141
mov cl, 1
cmp eax, 0x5f
je 0x64d6c8
mov ecx, eax
sar ecx, 0x1f
shr ecx, 0x19
add ecx, eax
mov edx, ecx
and edx, 0x7fffff80
sar ecx, 7
movzx ecx, byte [ecx + 0x7dd1f4]
shl ecx, 7
sub eax, edx
mov edx, ebx
add eax, ecx
movzx eax, word [eax + eax + 0x7df3f4]
movzx eax, byte [eax*8 + 0x7dbb75]
mov eax, dword [eax*4 + 0x7db088]
or eax, 2
cmp eax, 3
sete cl
jmp 0x64d6c8
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 8]
cmp ebx, dword [eax]
jae 0x655738
mov dword [esp + 0x28], edx
lea ecx, [ebx + 2]
movzx eax, word [ebx]
cmp dword [esp + 0x34], 0
je 0x651f3b
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x651f3b
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [ebx + 2]
add ebx, 4
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x651f3d
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 8]
cmp ebx, dword [eax]
jae 0x655776
cmp dword [esp + 0x34], 0
je 0x652016
movzx eax, word [ebp + 2]
mov ecx, eax
and ecx, 0xfc00
mov esi, edx
cmp ecx, 0xd800
jne 0x6520ad
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [ebp + 4]
add ebp, 6
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x6520b0
movzx eax, word [ebp + 2]
add ebp, 4
mov dword [esp + 0x50], 0
mov dword [esp + 0x10], eax
mov dword [esp + 0x40], eax
xor edi, edi
jmp 0x64faed
add ebp, 2
mov dword [esp + 0x50], 1
mov dword [esp + 0x40], 0x7fffffff
mov dword [esp + 0x10], 0
xor edi, edi
jmp 0x64faed
add ebp, 2
xor edi, edi
mov dword [esp + 0x40], 0x7fffffff
mov dword [esp + 0x10], 1
mov dword [esp + 0x50], 1
jmp 0x64faed
add ebp, 2
mov dword [esp + 0x40], 1
mov dword [esp + 0x10], 0
mov dword [esp + 0x50], 1
xor edi, edi
jmp 0x64faed
mov eax, 1
mov dword [esp + 0x50], eax
movzx eax, word [ebp + 2]
mov dword [esp + 0x40], eax
movzx eax, dx
cmp eax, 0x28
sete cl
cmp eax, 0x35
sete al
or al, cl
movzx edi, al
add ebp, 4
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], ebp
movzx ebx, word [ebp]
cmp dword [esp + 0x34], 0
mov ecx, dword [esp + 0x158]
mov ebp, dword [esp + 8]
je 0x64fb8e
mov eax, ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x64fb8e
movzx eax, dx
xor edx, edx
cmp eax, 0x2e
jb 0x64fd54
shl ebx, 0xa
and ebx, 0xffc00
mov eax, dword [esp + 0xc]
movzx eax, word [eax + 2]
and eax, 0x3ff
lea eax, [ebx + eax + 0x10000]
mov ecx, eax
shr ecx, 7
movzx ecx, byte [ecx + 0x7dd1f4]
shl ecx, 7
mov edx, eax
and edx, 0x7f
or edx, ecx
movzx ecx, word [edx + edx + 0x7df3f4]
mov ecx, dword [ecx*8 + 0x7dbb78]
test ecx, ecx
je 0x64fd52
add ecx, eax
sub esp, 8
lea eax, [esp + 0xc0]
push eax
push ecx
call fcn.0065a380
add esp, 0x10
mov edx, eax
jmp 0x64fd54
mov eax, dword [esp + 0xc]
add eax, 2
mov dword [esp + 0x14], eax
movzx eax, dx
cmp eax, 0x2e
jb 0x64fbf7
mov dword [esp + 0x4c], edi
cmp dword [esp + 0x34], 0
je 0x64fc8c
movzx eax, bx
cmp eax, 0x80
jb 0x64fc8c
mov eax, ebx
shr eax, 7
movzx eax, byte [eax + 0x7dd1f4]
shl eax, 7
mov ecx, ebx
and ecx, 0x7f
or ecx, eax
movzx eax, word [ecx + ecx + 0x7df3f4]
mov edi, dword [eax*8 + 0x7dbb78]
add edi, ebx
cmp dword [esp + 0x10], 0
jg 0x64fca8
mov edx, ebp
jmp 0x64fce6
cmp dword [esp + 0x10], 0
jle 0x64fc2c
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
nop word cs:[eax + eax]
cmp ebp, eax
jae 0x654783
cmp bx, word [ebp]
jne 0x65805d
add ebp, 2
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x64fc10
mov ecx, edi
mov eax, dword [esp + 0x10]
cmp eax, dword [esp + 0x40]
mov edi, ebp
mov dword [esp + 8], ebp
je 0x64f730
test ecx, ecx
jne 0x655801
mov eax, dword [esp + 0x10]
cmp eax, dword [esp + 0x40]
mov ecx, edi
mov edx, ecx
jge 0x65303f
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov edx, ecx
cmp edx, eax
jae 0x65301a
cmp bx, word [edx]
jne 0x65303f
add edx, 2
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x40]
jl 0x64fc64
jmp 0x65303f
cmp ebx, 0xff
mov edi, ebx
ja 0x64fc9d
mov eax, dword [ecx + 0x40]
movzx edi, byte [eax + ebx]
cmp dword [esp + 0x10], 0
jle 0x64fbf0
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov edx, ebp
nop word cs:[eax + eax]
cmp edx, eax
jae 0x6547bd
mov esi, edx
movzx edx, word [edx]
cmp bx, dx
je 0x64fcda
cmp edi, edx
jne 0x65805d
mov edx, esi
add edx, 2
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x64fcc0
mov eax, dword [esp + 0x10]
cmp eax, dword [esp + 0x40]
mov dword [esp + 0xc], edx
mov dword [esp + 8], edx
je 0x64f730
cmp dword [esp + 0x4c], 0
jne 0x65588f
mov eax, dword [esp + 0x10]
cmp eax, dword [esp + 0x40]
mov edx, dword [esp + 0xc]
jge 0x653078
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov edx, dword [esp + 0xc]
cmp edx, eax
jae 0x653053
movzx ecx, word [edx]
cmp bx, cx
je 0x64fd3b
cmp edi, ecx
jne 0x653078
add edx, 2
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x40]
jl 0x64fd23
jmp 0x653078
xor edx, edx
mov dword [esp + 0x4c], edi
cmp dword [esp + 0x10], 0
mov dword [esp + 0x28], edx
jle 0x64fde0
mov eax, dword [esp + 0x18]
mov edi, dword [eax]
lea esi, [edi - 4]
lea eax, [edx + edx]
mov dword [esp + 0x14], edi
mov dword [esp + 4], eax
sub edi, eax
mov ebx, ebp
xor ebp, ebp
jmp 0x64fd90
mov eax, 2
jmp 0x64fdd4
cmp ebx, esi
ja 0x64fd9e
mov eax, dword [ebx]
mov ecx, dword [esp + 0xc]
cmp eax, dword [ecx]
je 0x64fd7f
test edx, edx
jle 0x6546cb
cmp ebx, edi
ja 0x6546cb
sub esp, 4
lea eax, [esp + 0xbc]
push dword [esp + 8]
push eax
push ebx
call sub.msvcrt.dll_memcmp
mov edx, dword [esp + 0x38]
add esp, 0x10
test eax, eax
mov eax, edx
jne 0x6546cb
lea ebx, [ebx + eax*2]
inc ebp
cmp ebp, dword [esp + 0x10]
jl 0x64fd90
jmp 0x64fde2
mov ebx, ebp
mov ebp, dword [esp + 0xc]
lea eax, [ebp + 4]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x10]
cmp eax, dword [esp + 0x40]
mov dword [esp + 8], ebx
je 0x64f730
cmp dword [esp + 0x4c], 0
jne 0x6550e4
mov eax, dword [esp + 0x10]
cmp eax, dword [esp + 0x40]
mov edi, ebx
jge 0x65312d
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
lea ebp, [eax - 4]
lea ecx, [edx + edx]
mov dword [esp + 0x4c], eax
mov dword [esp + 8], ecx
sub eax, ecx
mov dword [esp + 4], eax
mov edi, ebx
jmp 0x64fe41
mov eax, 2
mov edi, esi
jmp 0x64fe8b
mov esi, edi
cmp edi, ebp
ja 0x64fe51
mov eax, dword [esi]
mov ecx, dword [esp + 0xc]
cmp eax, dword [ecx]
je 0x64fe38
test edx, edx
mov edi, esi
jle 0x650fca
cmp edi, dword [esp + 4]
ja 0x650fca
sub esp, 4
lea eax, [esp + 0xbc]
push dword [esp + 0xc]
push eax
push edi
call sub.msvcrt.dll_memcmp
mov edx, dword [esp + 0x38]
add esp, 0x10
test eax, eax
mov eax, edx
jne 0x650fca
lea edi, [edi + eax*2]
mov eax, dword [esp + 0x10]
inc eax
mov dword [esp + 0x10], eax
cmp eax, dword [esp + 0x40]
jl 0x64fe41
jmp 0x65312d
movzx edi, word [ebp + 2]
add ebp, 4
mov dword [esp + 0x4c], 0
mov dword [esp + 0x40], edi
jmp 0x64ff1a
add ebp, 2
mov dword [esp + 0x4c], 1
mov dword [esp + 0x40], 0x7fffffff
jmp 0x64ff18
add ebp, 2
mov dword [esp + 0x50], 0
mov dword [esp + 0x40], 0x7fffffff
mov edi, 1
mov dword [esp + 0x4c], 1
jmp 0x64ff22
add ebp, 2
mov dword [esp + 0x40], 1
xor edi, edi
mov dword [esp + 0x4c], 1
jmp 0x64ff1a
movzx eax, word [ebp + 2]
mov dword [esp + 0x40], eax
add ebp, 4
mov dword [esp + 0x4c], 1
xor edi, edi
mov dword [esp + 0x50], 0
lea ecx, [ebp + 2]
movzx ebx, word [ebp]
cmp dword [esp + 0x34], 0
mov esi, dword [esp + 8]
je 0x64ff60
mov eax, ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x64ff60
shl ebx, 0xa
and ebx, 0xffc00
movzx eax, word [ebp + 2]
add ebp, 4
and eax, 0x3ff
lea ebx, [ebx + eax + 0x10000]
mov ecx, ebp
mov dword [esp + 0x14], ecx
movzx eax, dx
cmp eax, 0x48
mov dword [esp + 0x28], ebx
jb 0x64ffc2
cmp dword [esp + 0x34], 0
je 0x650037
cmp ebx, 0x80
jb 0x650037
mov eax, ebx
sar eax, 0x1f
shr eax, 0x19
add eax, ebx
mov ecx, eax
and ecx, 0x7fffff80
sar eax, 7
movzx eax, byte [eax + 0x7dd1f4]
shl eax, 7
mov edx, ebx
sub edx, ecx
add edx, eax
movzx eax, word [edx + edx + 0x7df3f4]
mov eax, dword [eax*8 + 0x7dbb78]
add eax, ebx
jmp 0x650051
cmp dword [esp + 0x34], 0
je 0x6500e6
test edi, edi
jle 0x650179
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor edx, edx
mov ebp, esi
nop
cmp ebp, eax
jae 0x65470f
movzx ecx, word [ebp]
mov esi, ecx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x650022
shl ecx, 0xa
and ecx, 0xffc00
movzx esi, word [ebp + 2]
add ebp, 4
and esi, 0x3ff
lea ecx, [ecx + esi + 0x10000]
cmp ebx, ecx
jne 0x65002d
jmp 0x65805d
add ebp, 2
cmp ebx, ecx
je 0x65805d
inc edx
cmp edx, edi
jl 0x64ffe0
jmp 0x65017b
cmp ebx, 0xff
mov dword [esp + 0x10], ebx
ja 0x650055
mov eax, dword [esp + 0x158]
mov eax, dword [eax + 0x40]
movzx eax, byte [eax + ebx]
mov dword [esp + 0x10], eax
cmp dword [esp + 0x34], 0
je 0x65011e
test edi, edi
jle 0x650217
mov eax, dword [esp + 0x18]
mov edx, dword [eax]
xor eax, eax
mov ebp, dword [esp + 8]
nop word cs:[eax + eax]
cmp ebp, edx
jae 0x654749
movzx ecx, word [ebp]
mov esi, ecx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x6500bb
shl ecx, 0xa
and ecx, 0xffc00
movzx esi, word [ebp + 2]
add ebp, 4
and esi, 0x3ff
lea ecx, [ecx + esi + 0x10000]
jmp 0x6500be
add ebp, 2
mov ebx, dword [esp + 0x28]
cmp ebx, ecx
je 0x658188
cmp dword [esp + 0x10], ecx
mov dword [esp + 4], 0
je case.0x657114.6
inc eax
cmp eax, edi
jl 0x650080
jmp 0x65021b
test edi, edi
jle 0x650179
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov ebp, esi
nop dword [eax + eax]
cmp ebp, eax
jae 0x654804
movzx edx, word [ebp]
cmp ebx, edx
je 0x65805d
add ebp, 2
inc ecx
cmp ecx, edi
jl 0x650100
jmp 0x65017b
test edi, edi
jle 0x650217
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov ebp, dword [esp + 8]
nop word cs:[eax + eax]
cmp ebp, eax
jae 0x65483e
mov ebx, ebp
movzx edx, word [ebp]
cmp dword [esp + 0x28], edx
je 0x658188
cmp dword [esp + 0x10], edx
mov dword [esp + 4], 0
je case.0x657114.6
mov ebp, ebx
add ebp, 2
inc ecx
cmp ecx, edi
jl 0x650140
jmp 0x65021b
mov ebp, esi
cmp edi, dword [esp + 0x40]
mov dword [esp + 0xc], ebp
mov dword [esp + 8], ebp
je 0x64f730
cmp dword [esp + 0x50], 0
jne 0x6553ad
cmp dword [esp + 0x34], 0
je 0x650f40
cmp edi, dword [esp + 0x40]
mov ebp, dword [esp + 0xc]
mov ebx, dword [esp + 0x28]
jge 0x652c5a
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ebp, dword [esp + 0xc]
cmp ebp, eax
jae 0x652c35
movzx ecx, word [ebp]
mov esi, ecx
and esi, 0xfc00
mov edx, 1
cmp esi, 0xd800
jne 0x6501ff
shl ecx, 0xa
and ecx, 0xffc00
movzx edx, word [ebp + 2]
and edx, 0x3ff
lea ecx, [ecx + edx + 0x10000]
mov edx, 2
cmp ebx, ecx
je 0x652c5a
lea ebp, [ebp + edx*2]
inc edi
cmp edi, dword [esp + 0x40]
jl 0x6501bf
jmp 0x652c5a
mov ebp, dword [esp + 8]
cmp edi, dword [esp + 0x40]
mov dword [esp + 0xc], ebp
mov dword [esp + 8], ebp
je 0x64f730
cmp dword [esp + 0x50], 0
jne 0x655502
cmp dword [esp + 0x34], 0
je 0x650f7e
cmp edi, dword [esp + 0x40]
mov eax, dword [esp + 0xc]
mov ebx, dword [esp + 0x28]
jge 0x64d7e3
mov eax, dword [esp + 0x18]
mov ebp, dword [eax]
mov eax, dword [esp + 0xc]
cmp eax, ebp
jae 0x652c6e
movzx ecx, word [eax]
mov esi, ecx
and esi, 0xfc00
mov edx, 1
cmp esi, 0xd800
jne 0x6502a9
shl ecx, 0xa
and ecx, 0xffc00
mov esi, eax
movzx edx, word [eax + 2]
and edx, 0x3ff
lea ecx, [ecx + edx + 0x10000]
mov edx, 2
cmp ebx, ecx
jne 0x6502b3
jmp 0x652ca4
mov esi, eax
cmp ebx, ecx
je 0x652ca4
cmp dword [esp + 0x10], ecx
je 0x652ca4
mov eax, esi
lea eax, [eax + edx*2]
inc edi
cmp edi, dword [esp + 0x40]
jl 0x65025f
jmp 0x64d7e3
mov eax, edx
movzx edx, word [ebp + 2]
movzx eax, ax
xor ecx, ecx
cmp eax, 0x5c
sete cl
mov dword [esp + 0x4c], ecx
add ebp, 4
mov dword [esp + 0x10], 0
xor edi, edi
movzx ebx, word [ebp]
mov eax, ebx
add eax, 0xfffffff1
movzx eax, ax
cmp eax, 1
mov esi, dword [esp + 8]
ja 0x650325
movzx eax, bx
xor ecx, ecx
cmp eax, 0xf
sete cl
mov dword [esp + 0x44], ecx
movzx ecx, word [ebp + 2]
movzx eax, word [ebp + 4]
mov dword [esp + 0x54], eax
add ebp, 6
jmp 0x65032d
add ebp, 2
mov ecx, 0xffffffff
mov dword [esp + 0x14], ebp
cmp dword [esp + 0x10], 0
mov dword [esp + 0x28], edx
mov dword [esp + 0x58], edi
mov dword [esp + 0x40], ebx
mov dword [esp + 0x50], ecx
jle 0x65048b
test ecx, ecx
js 0x650609
cmp ecx, 0xa
ja case.default.0x651f77
jmp dword [ecx*4 + 0x658c08]
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov dword [esp + 0xc], esi
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x654935
lea esi, [edi + 2]
movzx edx, word [edi]
cmp dword [esp + 0x34], 0
je 0x6503da
mov ebx, edx
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x6503da
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
cmp edx, 0x180d
jg 0x6503e4
cmp edx, 0x84
jg 0x650412
lea esi, [edx - 9]
cmp esi, 0x17
ja case.0x6503ef.8203
mov ebx, 0x80001f
bt ebx, esi
jb case.0x6503ef.8192
jmp case.0x6503ef.8203
mov edi, esi
cmp edx, 0x180d
jle 0x6503be
lea esi, [edx - 0x2000]
cmp esi, 0x5f
ja case.default.0x6503ef
jmp dword [esi*4 + 0x658c34]
cmp dword [esp + 0x44], 0
jne 0x65805d
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x650370
jmp 0x65048f
cmp edx, 0x85
je case.0x6503ef.8192
cmp edx, 0xa0
je case.0x6503ef.8192
cmp edx, 0x1680
je case.0x6503ef.8192
jmp case.0x6503ef.8203
cmp edx, 0x3000
je case.0x6503ef.8192
cmp edx, 0x180e
je case.0x6503ef.8192
mov esi, edx
sar esi, 0x1f
shr esi, 0x19
add esi, edx
mov ebx, esi
and ebx, 0x7fffff80
sar esi, 7
movzx esi, byte [esi + 0x7dd1f4]
shl esi, 7
sub edx, ebx
add edx, esi
movzx edx, word [edx + edx + 0x7df3f4]
movzx edx, byte [edx*8 + 0x7dbb75]
xor ebx, ebx
cmp dword [edx*4 + 0x7db088], 6
sete bl
cmp dword [esp + 0x44], ebx
jne 0x650401
jmp 0x65805d
mov dword [esp + 0xc], esi
mov edx, dword [esp + 0x28]
mov eax, edx
sub eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], ecx
je 0x64f730
cmp dword [esp + 0x4c], 0
jne 0x6551e3
mov ecx, dword [esp + 0x50]
test ecx, ecx
mov edi, dword [esp + 0x40]
js 0x650d9f
cmp ecx, 0xa
mov edx, dword [esp + 0xc]
ja case.default.0x657114
jmp dword [ecx*4 + 0x659060]
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x28], eax
mov ebp, edx
jle 0x64f6dc
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ebp, edx
cmp ebp, eax
jae 0x64db71
movzx edx, word [ebp]
cmp dword [esp + 0x34], 0
mov ecx, 1
je 0x650535
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x650535
shl edx, 0xa
and edx, 0xffc00
movzx ecx, word [ebp + 2]
and ecx, 0x3ff
lea edx, [edx + ecx + 0x10000]
mov ecx, 2
cmp edx, 0x180d
jle 0x65054f
lea esi, [edx - 0x2000]
cmp esi, 0x5f
ja case.default.0x650548
jmp dword [esi*4 + 0x65908c]
cmp edx, 0x84
jg 0x650590
lea esi, [edx - 9]
cmp esi, 0x17
ja case.0x650548.8203
mov edi, 0x80001f
bt edi, esi
jae case.0x650548.8203
cmp dword [esp + 0x44], 0
jne 0x64f6dc
lea ebp, [ebp + ecx*2]
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x6504ee
jmp 0x64f6dc
cmp edx, 0x85
je case.0x650548.8192
cmp edx, 0xa0
je case.0x650548.8192
cmp edx, 0x1680
je case.0x650548.8192
jmp case.0x650548.8203
cmp edx, 0x3000
je case.0x650548.8192
cmp edx, 0x180e
je case.0x650548.8192
mov esi, edx
sar esi, 0x1f
shr esi, 0x19
add esi, edx
mov edi, esi
and edi, 0x7fffff80
sar esi, 7
movzx esi, byte [esi + 0x7dd1f4]
shl esi, 7
sub edx, edi
add edx, esi
movzx edx, word [edx + edx + 0x7df3f4]
movzx edx, byte [edx*8 + 0x7dbb75]
xor ebx, ebx
cmp dword [edx*4 + 0x7db088], 6
sete bl
cmp dword [esp + 0x44], ebx
jne 0x650574
jmp 0x64f6dc
movzx eax, bx
cmp eax, 0x16
jne 0x650cc0
mov eax, 1
mov dword [esp + 0xc], esi
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx]
mov edi, dword [esp + 0xc]
cmp edi, edx
jae 0x6548ce
lea esi, [edi + 2]
movzx ecx, word [edi]
cmp dword [esp + 0x34], 0
je 0x65066c
mov ebx, ecx
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x65066c
shl ecx, 0xa
and ecx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea ecx, [ecx + esi + 0x10000]
jmp 0x65066e
mov edi, esi
mov dword [esp + 4], eax
cmp edi, edx
jae 0x650760
mov esi, ecx
sar esi, 0x1f
shr esi, 0x19
add esi, ecx
mov ebx, esi
and ebx, 0x7fffff80
sar esi, 7
movzx esi, byte [esi + 0x7dd1f4]
shl esi, 7
sub ecx, ebx
add ecx, esi
movzx ecx, word [ecx + ecx + 0x7df3f4]
movzx esi, byte [ecx*8 + 0x7dbb76]
nop dword [eax]
movzx ecx, word [edi]
cmp dword [esp + 0x34], 0
mov ebx, 1
je 0x650700
mov ebp, ecx
and ebp, 0xfc00
cmp ebp, 0xd800
jne 0x650700
shl ecx, 0xa
and ecx, 0xffc00
mov eax, edi
movzx ebx, word [edi + 2]
and ebx, 0x3ff
lea ecx, [ecx + ebx + 0x10000]
mov ebx, 2
jmp 0x650702
mov eax, edi
mov ebp, ecx
sar ebp, 0x1f
shr ebp, 0x19
add ebp, ecx
mov edi, ebp
and edi, 0x7fffff80
sar ebp, 7
movzx ebp, byte [ebp + 0x7dd1f4]
shl ebp, 7
sub ecx, edi
add ecx, ebp
movzx ecx, word [ecx + ecx + 0x7df3f4]
movzx ecx, byte [ecx*8 + 0x7dbb76]
mov ebp, 1
shl ebp, cl
and ebp, dword [esi*4 + 0x7db100]
je 0x650750
mov edi, eax
lea edi, [edi + ebx*2]
cmp edi, edx
jb 0x650756
jmp 0x650760
mov edi, eax
cmp edi, edx
jae 0x650760
test ebp, ebp
mov esi, ecx
jne 0x6506b0
cmp edi, edx
jb 0x650789
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx]
test ecx, ecx
je 0x650789
mov edx, dword [esp + 0x24]
cmp edi, dword [edx]
jbe 0x650789
mov edx, dword [esp + 0x20]
mov dword [edx], 1
cmp ecx, 1
jg 0x654dc8
mov dword [esp + 0xc], edi
mov eax, dword [esp + 4]
cmp eax, dword [esp + 0x10]
lea eax, [eax + 1]
jl 0x65061e
jmp 0x65048f
mov dword [esp + 0x28], edx
movzx edx, word [ebp + 0x22]
lea esi, [edx - 0x62]
movzx eax, si
cmp eax, 0xb
ja 0x64d3d6
mov eax, 0x73f
bt eax, esi
jae 0x64d474
cmp esi, 7
seta al
mov dword [esp + 0xc], eax
mov eax, edx
and eax, 1
xor ecx, ecx
cmp esi, 8
cmovb ecx, eax
mov dword [esp + 4], ecx
mov eax, 0x3cf
bt eax, esi
movsx eax, byte [edx + 0x7daed9]
mov ecx, 0x7fffffff
cmovae ecx, eax
mov dword [esp + 0x10], ecx
lea eax, [ebp + 0x24]
mov dword [esp + 0x14], eax
movsx ebx, byte [edx + 0x7daece]
cmp dword [esp + 0x34], 0
jne 0x64d405
jmp 0x64d4b2
movzx eax, dx
xor ecx, ecx
cmp eax, 0x72
sete cl
mov dword [esp + 0xc], ecx
movzx ebx, word [ebp + 2]
add ebx, ebx
add ebp, 4
cmp ebx, dword [esp + 0x2c]
mov edi, dword [esp + 0x158]
jge 0x650f31
mov ecx, dword [edi + 0xc]
mov eax, dword [ecx + ebx*4]
test eax, eax
js 0x650f31
mov edx, ebx
or edx, 1
mov ecx, dword [ecx + edx*4]
sub ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x652b31
movzx eax, dx
xor ecx, ecx
cmp eax, 0x74
sete cl
mov dword [esp + 0xc], ecx
movzx ecx, word [ebp + 4]
lea eax, [ebp + 6]
mov edi, dword [esp + 0x158]
cmp dword [edi + 0x54], 1
sbb edx, edx
mov dword [esp + 0x10], edx
test ecx, ecx
je 0x65200d
mov edx, dword [edi + 0x24]
movzx esi, word [ebp + 2]
imul esi, edx
add esi, esi
add esi, dword [edi + 0x30]
inc ecx
add edx, edx
movzx ebx, word [esi]
add ebx, ebx
cmp ebx, dword [esp + 0x2c]
jge 0x6508c8
mov edi, dword [esp + 0x158]
mov ebp, dword [edi + 0xc]
mov edi, dword [ebp + ebx*4]
test edi, edi
jns 0x652b19
dec ecx
add esi, edx
cmp ecx, 1
jg 0x6508a7
jmp 0x652b28
mov eax, ebp
mov ebp, dword [esp + 0x158]
mov ebx, dword [ebp + 0xb0]
xor esi, esi
cmp dword [ebp + 0x9c], 1
jne 0x6508fe
mov dword [ebp + 0x9c], 0
mov esi, 1
mov ecx, eax
mov eax, ecx
mov edi, eax
lea edx, [eax + 4]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
push eax
push 0
push ebp
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
cmp eax, 1
je 0x652258
cmp eax, 0xfffffc19
je 0x652258
mov dword [ebp + 0xb0], ebx
cmp eax, 0xfffffc20
je 0x650959
test eax, eax
jne 0x6546c2
mov ax, word [edi + 2]
jmp 0x650982
mov edx, edi
movzx eax, word [edx + 2]
lea ecx, [edx + eax*2]
cmp dword [ebp + 0x80], ecx
jae 0x656beb
movzx edx, word [edx]
cmp edx, 0x77
je 0x650982
movzx ecx, word [ecx]
cmp ecx, 0x77
jne 0x656beb
movzx eax, ax
lea ecx, [edi + eax*2]
movzx eax, word [edi + eax*2]
cmp eax, 0x77
je 0x650900
jmp 0x652267
mov eax, ebp
mov ebp, dword [esp + 0x158]
mov ebx, dword [ebp + 0xb0]
xor esi, esi
cmp dword [ebp + 0x9c], 1
jne 0x6509c3
mov dword [ebp + 0x9c], 0
mov esi, 1
mov edi, eax
lea edx, [eax + 4]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
push eax
push 0
push ebp
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
mov dword [ebp + 0xb0], ebx
test eax, eax
jns 0x650a21
cmp eax, 0xfffffc20
jne 0x65215f
mov edx, edi
movzx eax, word [edx + 2]
lea ecx, [edx + eax*2]
cmp dword [ebp + 0x80], ecx
jae 0x652170
movzx edx, word [edx]
cmp edx, 0x77
jne 0x650a2f
mov edx, edi
jmp 0x650a3d
jne 0x654e89
mov edx, edi
mov ax, word [edx + 2]
jmp 0x650a3d
movzx ecx, word [ecx]
cmp ecx, 0x77
mov edx, edi
jne 0x652170
movzx eax, ax
lea ecx, [edx + eax*2]
movzx eax, word [edx + eax*2]
cmp eax, 0x77
mov eax, ecx
je 0x6509c3
jmp 0x652182
movzx ebx, word [ebp + 2]
lea edi, [ebp + 4]
mov ecx, ebp
movzx ebp, word [ebp + 4]
cmp ebp, 0x76
mov dword [esp + 0x28], edx
jne 0x650b63
mov eax, dword [0x7d97b0]
test eax, eax
je 0x650b53
mov dword [esp + 4], ebx
mov dword [esp + 0x74], 2
mov ebx, ecx
movzx ecx, word [ebx + 6]
mov dword [esp + 0x78], ecx
mov esi, dword [esp + 0x158]
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x7c], ecx
mov ecx, dword [esi + 0x78]
mov dword [esp + 0x80], ecx
mov edx, dword [esi + 0x7c]
sub edx, ecx
sar edx, 1
mov dword [esp + 0x84], edx
mov edx, dword [esp + 0x30]
sub edx, ecx
sar edx, 1
mov dword [esp + 0x88], edx
mov edx, dword [esp + 8]
sub edx, ecx
sar edx, 1
mov dword [esp + 0x8c], edx
movzx ecx, word [ebx + 8]
mov dword [esp + 0x9c], ecx
movzx ecx, word [ebx + 0xa]
mov dword [esp + 0xa0], ecx
mov edx, dword [esp + 0x2c]
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sar ecx, 1
mov dword [esp + 0x90], ecx
movzx ecx, word [esi + 0x94]
cmp ecx, 1
sbb edx, edx
or edx, ecx
mov dword [esp + 0x94], edx
mov ecx, dword [esi + 0xac]
mov dword [esp + 0x98], ecx
mov ecx, dword [esi + 0xb4]
mov dword [esp + 0xa4], ecx
sub esp, 0xc
lea ecx, [esp + 0x80]
push ecx
call eax
add esp, 0x10
test eax, eax
jg 0x654ea6
mov ebx, dword [esp + 4]
jne 0x6546c2
movzx eax, byte [0x7dafea]
mov bp, word [edi + eax*2]
lea edi, [edi + eax*2]
sub ebx, eax
mov dword [esp + 4], ebx
lea eax, [ebp - 0x8d]
movzx eax, ax
cmp eax, 0x10
ja case.0x650b79.5
jmp dword [eax*4 + 0x6593b8]
movzx eax, word [edi + 2]
add eax, eax
cmp eax, dword [esp + 0x2c]
jge 0x64d776
mov ecx, dword [esp + 0x158]
mov ecx, dword [ecx + 0xc]
cmp dword [ecx + eax*4], 0
setns al
jmp 0x64d778
mov ecx, dword [esp + 0x38]
mov edi, dword [ecx + 4]
mov dword [esp + 4], edi
mov ecx, dword [ecx]
mov dword [esp + 0x38], ecx
mov ebp, dword [esp + 0x158]
mov edi, dword [esp + 0x2c]
lea ecx, [esi - 0x7d]
movzx ecx, cx
cmp ecx, 4
jb 0x6549fe
mov ebx, dword [esp + 0xc]
sub ebx, eax
lea eax, [esi - 0x82]
movzx ecx, ax
cmp ecx, 9
ja 0x650d5e
mov ecx, 0x318
bt ecx, eax
jae 0x6522e8
mov dword [esp + 0x14], ebx
movzx ebx, word [ebx + 4]
mov eax, dword [ebp + 0xa8]
test eax, eax
je 0x650c12
cmp dword [eax + 4], ebx
je 0x6557f2
mov ecx, ebp
lea ebp, [ebx + ebx]
mov eax, 0xffff0000
and eax, dword [ecx + 0x94]
or eax, ebx
mov dword [ecx + 0x94], eax
cmp ebp, dword [ecx + 0x14]
jge 0x650d49
mov dword [esp + 0x28], edx
mov edi, dword [esp + 0x2c]
cmp ebp, edi
jle 0x650c83
mov eax, dword [esp + 0x158]
mov eax, dword [eax + 0xc]
lea ecx, [eax + ebp*4]
lea edx, [eax + edi*4]
mov dword [esp + 0x10], edx
lea edx, [eax + edi*4 + 4]
cmp edx, ecx
cmova ecx, edx
neg eax
lea edx, [edi*4]
sub eax, edx
lea eax, [ecx + eax + 3]
and eax, 0xfffffffc
sub esp, 4
push eax
push 0xff
push dword [esp + 0x1c]
call sub.msvcrt.dll_memset
add esp, 0x10
mov eax, dword [esp + 0x158]
mov edx, eax
mov eax, dword [edx + 0xc]
mov ecx, dword [edx + 0x10]
sub ecx, ebx
mov ecx, dword [eax + ecx*4]
mov dword [eax + ebp*4], ecx
mov ecx, dword [esp + 8]
sub ecx, dword [edx + 0x78]
mov ebx, edx
sar ecx, 1
mov edx, ebp
or edx, 1
mov dword [eax + edx*4], ecx
cmp edi, ebp
lea eax, [ebp + 2]
mov ebp, ebx
cmovle edi, eax
mov edx, dword [esp + 0x28]
jmp 0x650d5a
cmp dword [esp + 0x34], 0
je 0x6521f0
lea eax, [ebx - 6]
movzx eax, ax
cmp eax, 0xf
ja case.default.0x657114
mov dword [esp + 4], 0xfffffff2
jmp dword [eax*4 + 0x658b88]
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 8]
mov dword [esp + 0xc], edx
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x655fe3
movzx edx, word [edi]
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x650d21
add edi, 4
mov dword [esp + 0xc], edi
jmp 0x650d3d
add edi, 2
cmp edx, 0x7f
mov dword [esp + 0xc], edi
ja 0x650d3d
mov esi, dword [esp + 0x3c]
mov esi, dword [esi]
test byte [esi + edx], 4
jne 0x65805d
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x650cf9
jmp 0x65048f
or eax, 0x10000
mov dword [ecx + 0x94], eax
mov ebp, ecx
mov edi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x14]
movzx eax, dx
cmp eax, 0x78
mov dword [esp + 0x2c], edi
je 0x650d81
cmp eax, 0x7b
je 0x655684
mov ecx, dword [esp + 4]
cmp dword [esp + 8], ecx
jne 0x65413c
movzx eax, si
mov edx, dword [esp + 0xc]
add edx, 4
cmp eax, 0x81
mov dword [esp + 0x14], edx
jne 0x64f730
jmp 0x6556ab
movzx ebp, di
cmp ebp, 0x16
mov ecx, dword [esp + 0xc]
jne 0x652057
mov eax, dword [esp + 0x10]
cmp edx, eax
mov edx, eax
mov ebp, ecx
jle 0x64d394
mov ebp, ecx
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
cmp ebp, eax
jae 0x64d36f
mov dword [esp + 0x10], edx
lea edx, [ebp + 2]
movzx ecx, word [ebp]
cmp dword [esp + 0x34], 0
je 0x650e17
mov esi, ecx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x650e17
shl ecx, 0xa
and ecx, 0xffc00
movzx edx, word [ebp + 2]
add ebp, 4
and edx, 0x3ff
lea ecx, [ecx + edx + 0x10000]
cmp ebp, eax
jb 0x650e21
jmp 0x650ef4
mov ebp, edx
cmp ebp, eax
jae 0x650ef4
mov edx, ecx
sar edx, 0x1f
shr edx, 0x19
add edx, ecx
mov esi, edx
and esi, 0x7fffff80
sar edx, 7
movzx edx, byte [edx + 0x7dd1f4]
shl edx, 7
sub ecx, esi
add ecx, edx
movzx ecx, word [ecx + ecx + 0x7df3f4]
movzx edx, byte [ecx*8 + 0x7dbb76]
nop word cs:[eax + eax]
movzx ecx, word [ebp]
cmp dword [esp + 0x34], 0
mov esi, 1
je 0x650e9f
mov edi, ecx
and edi, 0xfc00
cmp edi, 0xd800
jne 0x650e9f
shl ecx, 0xa
and ecx, 0xffc00
movzx esi, word [ebp + 2]
and esi, 0x3ff
lea ecx, [ecx + esi + 0x10000]
mov esi, 2
mov edi, ecx
sar edi, 0x1f
shr edi, 0x19
add edi, ecx
mov ebx, edi
and ebx, 0x7fffff80
sar edi, 7
movzx edi, byte [edi + 0x7dd1f4]
shl edi, 7
sub ecx, ebx
add ecx, edi
movzx ecx, word [ecx + ecx + 0x7df3f4]
movzx ecx, byte [ecx*8 + 0x7dbb76]
mov ebx, 1
shl ebx, cl
and ebx, dword [edx*4 + 0x7db100]
je 0x650ee6
lea ebp, [ebp + esi*2]
cmp ebp, eax
jae 0x650ef4
test ebx, ebx
mov edx, ecx
jne 0x650e60
cmp ebp, eax
jb 0x650f1d
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x650f1d
mov ecx, dword [esp + 0x24]
cmp ebp, dword [ecx]
jbe 0x650f1d
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
jg 0x65752a
mov edx, dword [esp + 0x10]
inc edx
cmp edx, dword [esp + 0x28]
jl 0x650dc1
jmp 0x64d394
cmp dword [edi + 0x54], 1
sbb eax, eax
mov dword [esp + 0x10], eax
jmp 0x652b31
cmp edi, dword [esp + 0x40]
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x28]
jge 0x653405
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov edx, dword [esp + 0xc]
cmp edx, eax
jae 0x6533e0
movzx ecx, word [edx]
cmp esi, ecx
je 0x653405
add edx, 2
inc edi
cmp edi, dword [esp + 0x40]
jl 0x650f5c
jmp 0x653405
cmp edi, dword [esp + 0x40]
mov ecx, dword [esp + 0xc]
mov esi, dword [esp + 0x28]
jge 0x64db5d
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
cmp ecx, eax
jae 0x653419
mov edx, ecx
movzx ecx, word [ecx]
cmp esi, ecx
je 0x64db5b
cmp dword [esp + 0x10], ecx
je 0x64db5b
mov ecx, edx
add ecx, 2
inc edi
cmp edi, dword [esp + 0x40]
jl 0x650f9a
jmp 0x64db5d
cmp edi, dword [esp + 0x4c]
jb 0x65312d
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x65312d
mov ecx, dword [esp + 0x24]
cmp edi, dword [ecx]
jbe 0x65312b
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
mov edi, esi
jle 0x65312d
jmp 0x654dc8
mov eax, dword [esp + 0x158]
mov ecx, eax
mov eax, dword [ecx + 0x98]
add eax, eax
add eax, dword [ecx + 0x78]
cmp dword [esp + 8], eax
je 0x64d314
jmp 0x654ea6
add ebp, 2
mov eax, dword [esp + 8]
mov dword [esp + 0x30], eax
mov dword [esp + 0x14], ebp
jmp 0x64f730
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 8]
cmp edx, dword [eax]
jae 0x655c26
movzx eax, word [edx]
cmp dword [esp + 0x34], 0
je 0x65106d
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
je 0x6511d3
add edx, 2
cmp eax, 0xff
mov dword [esp + 8], edx
ja 0x64d314
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 4
je 0x64d314
jmp 0x65805d
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 8]
cmp edx, dword [eax]
jae 0x655c64
cmp dword [esp + 0x34], 0
setne cl
movzx eax, word [edx]
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
sete dl
cmp eax, 0xff
ja 0x658188
and cl, dl
mov dword [esp + 4], 0
jne case.0x657114.6
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 4
jne 0x651236
jmp 0x65805d
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 8]
cmp edx, dword [eax]
jae 0x655ca2
movzx eax, word [edx]
cmp dword [esp + 0x34], 0
je 0x65111e
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
je 0x6511d3
add edx, 2
cmp eax, 0xff
mov dword [esp + 8], edx
ja 0x64d314
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 1
je 0x64d314
jmp 0x65805d
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 8]
cmp edx, dword [eax]
jae 0x655ce0
cmp dword [esp + 0x34], 0
setne cl
movzx eax, word [edx]
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
sete dl
cmp eax, 0xff
ja 0x658188
and cl, dl
mov dword [esp + 4], 0
jne case.0x657114.6
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 1
jne 0x651236
jmp 0x65805d
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 8]
cmp edx, dword [eax]
jae 0x655d1e
movzx eax, word [edx]
cmp dword [esp + 0x34], 0
je 0x6522f6
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x6522f6
add edx, 4
mov dword [esp + 8], edx
jmp 0x64d314
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 8]
cmp edx, dword [eax]
jae 0x655d5c
cmp dword [esp + 0x34], 0
setne cl
movzx eax, word [edx]
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
sete dl
cmp eax, 0xff
ja 0x658188
and cl, dl
mov dword [esp + 4], 0
jne case.0x657114.6
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 0x10
je 0x65805d
add dword [esp + 8], 2
jmp 0x64d314
mov esi, dword [esp + 0x158]
mov ecx, dword [esi + 0x18]
mov eax, dword [esi + 0x7c]
test ecx, ecx
je 0x652d23
mov edx, dword [esp + 8]
cmp edx, eax
jae 0x652d56
sub esp, 0xc
push dword [esp + 0x40]
push dword [esp + 0x58]
push eax
push ecx
push edx
call fcn.0065a200
add esp, 0x20
test eax, eax
je 0x652d56
jmp 0x65805d
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 8]
cmp ecx, dword [eax]
jae 0x655d9a
add ecx, 2
mov dword [esp + 8], ecx
jmp 0x64d314
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
mov edi, dword [esp + 8]
cmp edi, ecx
jae 0x655dd8
lea eax, [edi + 2]
movzx edx, word [edi]
cmp dword [esp + 0x34], 0
je 0x65334b
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
mov ebx, dword [esp + 0x158]
jne 0x653352
shl edx, 0xa
and edx, 0xffc00
movzx eax, word [edi + 2]
add edi, 4
and eax, 0x3ff
lea edx, [edx + eax + 0x10000]
mov eax, edi
cmp edx, 0xc
jg 0x65335b
lea ecx, [edx - 0xb]
cmp ecx, 2
jb 0x653395
jmp 0x64d6a5
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 8]
cmp edi, dword [eax]
jae 0x655e16
lea ecx, [edi + 2]
movzx eax, word [edi]
cmp dword [esp + 0x34], 0
je 0x65231d
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x65231d
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [edi + 2]
add edi, 4
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x65231f
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 8]
cmp edi, dword [eax]
jae 0x655e54
lea ecx, [edi + 2]
movzx eax, word [edi]
cmp dword [esp + 0x34], 0
je 0x652354
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x652354
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [edi + 2]
add edi, 4
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x652356
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 8]
cmp edi, dword [eax]
jae 0x655e92
lea ecx, [edi + 2]
movzx eax, word [edi]
cmp dword [esp + 0x34], 0
je 0x65238b
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x65238b
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [edi + 2]
add edi, 4
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x65238d
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 8]
cmp esi, dword [eax]
jae 0x655ed0
lea ecx, [esi + 2]
movzx eax, word [esi]
cmp dword [esp + 0x34], 0
je 0x6523b6
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x6523b6
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [esi + 2]
add esi, 4
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x6523b8
mov dword [esp + 0xc], ebp
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ebp, dword [esp + 8]
cmp ebp, eax
jae 0x655f0e
lea edx, [ebp + 2]
movzx ecx, word [ebp]
cmp dword [esp + 0x34], 0
je 0x6523df
mov esi, ecx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x6523df
shl ecx, 0xa
and ecx, 0xffc00
movzx edx, word [ebp + 2]
add ebp, 4
and edx, 0x3ff
lea ecx, [ecx + edx + 0x10000]
cmp ebp, eax
jb 0x6523e9
jmp 0x6524b0
mov eax, dword [esp + 0x158]
cmp dword [eax + 0x4c], 0
jne 0x654ea6
cmp dword [eax + 0x5c], 0
je case.0x64f74e.23
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 8]
cmp edx, dword [eax]
jb 0x654ea6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x64d314
mov ecx, dword [esp + 0x24]
cmp edx, dword [ecx]
ja 0x64d82b
jmp 0x64d314
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ebx, dword [esp + 8]
cmp ebx, eax
mov edi, dword [esp + 0x158]
jae 0x64d811
mov ecx, dword [edi + 0x18]
test ecx, ecx
je 0x653316
sub esp, 0xc
push dword [esp + 0x40]
push dword [esp + 0x58]
push eax
push ecx
push ebx
call fcn.0065a200
add esp, 0x20
test eax, eax
je 0x65592e
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0x48]
mov ecx, dword [ecx]
jmp 0x64d805
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov edi, dword [esp + 8]
cmp edi, eax
jae 0x6522a8
mov esi, dword [esp + 0x158]
mov ecx, dword [esi + 0x18]
test ecx, ecx
je 0x653c14
sub esp, 0xc
push dword [esp + 0x40]
push dword [esp + 0x58]
push eax
push ecx
push edi
call fcn.0065a200
add esp, 0x20
test eax, eax
jne 0x64d314
jmp 0x656095
mov eax, dword [esp + 0x158]
cmp dword [eax + 0x48], 0
je case.0x64f74e.1
mov eax, dword [esp + 0x158]
mov ecx, dword [esp + 8]
cmp ecx, dword [eax + 0x78]
je 0x654ea6
mov eax, dword [esp + 0x158]
mov ecx, dword [esp + 8]
cmp ecx, dword [eax + 0x78]
je 0x64d314
jmp 0x654ea6
mov esi, dword [esp + 0x158]
cmp dword [esi + 0x48], 0
mov eax, dword [esi + 0x78]
mov edi, dword [esp + 8]
je 0x65160a
cmp edi, eax
je 0x654ea6
cmp edi, eax
je 0x64d314
mov ecx, dword [esp + 0x18]
cmp edi, dword [ecx]
je 0x654ea6
mov ecx, dword [esi + 0x18]
test ecx, ecx
je 0x6534f1
cmp edi, eax
jbe 0x654ea6
sub esp, 0xc
push dword [esp + 0x40]
push dword [esp + 0x58]
push eax
push ecx
push edi
call fcn.0065a2b0
add esp, 0x20
test eax, eax
jne 0x64d314
jmp 0x654ea6
cmp dword [esp + 0x34], 0
je 0x652def
movzx ecx, word [ebp + 2]
mov edx, ecx
and edx, 0xfc00
xor eax, eax
cmp edx, 0xd800
sete al
inc eax
mov edx, dword [esp + 0x18]
mov edx, dword [edx]
mov esi, edx
mov edi, dword [esp + 8]
sub esi, edi
sar esi, 1
cmp eax, esi
jg 0x6566fb
cmp cx, word [edi]
jne 0x65805d
add ebp, 4
add edi, 2
mov dword [esp + 8], edi
mov dword [esp + 0x14], ebp
cmp eax, 2
jl 0x64f730
dec eax
mov edx, dword [esp + 0x14]
movzx ecx, word [edx]
add edx, 2
mov dword [esp + 0x14], edx
mov dword [esp + 4], 0
mov edx, dword [esp + 8]
cmp cx, word [edx]
lea edx, [edx + 2]
mov dword [esp + 8], edx
je 0x6516a6
jmp case.0x657114.6
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 8]
cmp edi, dword [eax]
jae 0x655f4c
cmp dword [esp + 0x34], 0
movzx eax, word [ebp + 2]
je 0x652fc1
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
mov esi, dword [esp + 0x158]
jne 0x65308c
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [ebp + 4]
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
mov edx, 2
jmp 0x6530c7
movzx edx, word [ebp + 2]
add ebp, 4
mov dword [esp + 0x4c], 1
xor edi, edi
mov dword [esp + 0x10], edx
jmp 0x6502f0
add ebp, 2
mov edi, 1
mov edx, 0x7fffffff
jmp 0x65178f
add ebp, 2
mov edx, 1
mov dword [esp + 0x10], 0
mov edi, 1
mov dword [esp + 0x4c], 0
jmp 0x6502f0
movzx edx, word [ebp + 2]
add ebp, 4
mov edi, 1
mov dword [esp + 0x10], 0
mov dword [esp + 0x4c], 0
jmp 0x6502f0
lea edi, [ebp + 4]
movzx eax, word [ebp + 2]
lea ecx, [ebp + eax*2]
mov dword [esp + 0x14], ecx
movzx eax, word [ebp + eax*2]
lea ecx, [eax - 0x62]
movzx edx, cx
cmp edx, 0xb
ja 0x64d9f7
mov edx, 0x73f
bt edx, ecx
jae 0x65344f
add dword [esp + 0x14], 2
cmp ecx, 7
seta dl
mov dword [esp + 4], edx
mov edx, eax
and edx, 1
xor ebp, ebp
cmp ecx, 8
cmovb ebp, edx
movsx ebx, byte [eax + 0x7daece]
movsx eax, byte [eax + 0x7daed9]
mov edx, 0x3cf
bt edx, ecx
mov ecx, 0x7fffffff
cmovae ecx, eax
mov dword [esp + 0x10], ecx
test ebx, ebx
jg 0x64da0e
jmp 0x64da85
movzx eax, word [ebp + 2]
lea edi, [eax + eax]
mov esi, dword [esp + 0x158]
add edi, dword [esi + 0x74]
test eax, eax
je 0x652e1d
movzx eax, word [edi + 4]
jmp 0x652e1f
cmp dword [esp + 0x34], 0
movzx eax, word [ebp + 2]
je 0x652f99
test ax, ax
mov ecx, dword [esp + 0x158]
mov edi, dword [esp + 8]
je 0x652fb1
mov ecx, dword [ecx + 0x78]
inc eax
mov edx, edi
lea edi, [edx - 2]
cmp edi, ecx
jb 0x654ea6
movzx esi, word [edx - 2]
and esi, 0xfc00
cmp esi, 0xdc00
je 0x65188c
mov edx, edi
jmp 0x651891
add edx, 0xfffffffc
mov edi, edx
dec eax
cmp eax, 1
jg 0x65186b
jmp 0x652fb1
mov eax, ebp
mov ebp, dword [esp + 0x158]
mov esi, dword [ebp + 0xb0]
mov dword [esp + 0xc], eax
mov ecx, eax
mov ebx, dword [esp + 0x2c]
mov edi, ecx
lea edx, [edi + 4]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
push eax
push dword [esp + 0x48]
push ebp
push ebx
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
cmp eax, 0xfffffc20
je 0x6518f1
test eax, eax
jne 0x652cab
mov ax, word [edi + 2]
jmp 0x65193a
movzx eax, word [edi + 2]
lea ecx, [edi + eax*2]
cmp dword [ebp + 0x80], ecx
jae 0x656beb
mov ebp, ebx
mov ebx, esi
mov esi, edi
movzx edx, word [edi]
cmp edx, 0x77
jne 0x651921
mov edi, esi
mov esi, ebx
mov ebx, ebp
mov ebp, dword [esp + 0x158]
jmp 0x65193a
movzx ecx, word [ecx]
cmp ecx, 0x77
mov edi, esi
mov esi, ebx
mov ebx, ebp
mov ebp, dword [esp + 0x158]
jne 0x656beb
movzx eax, ax
lea ecx, [edi + eax*2]
mov dword [ebp + 0xb0], esi
movzx eax, word [edi + eax*2]
cmp eax, 0x77
je 0x6518b5
jmp 0x652cce
add ebp, 2
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
mov edx, ebp
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
test eax, eax
jne 0x6546c2
movzx ecx, word [ebp + 2]
movzx edx, word [ebp + ecx*2]
lea ebp, [ebp + ecx*2]
cmp edx, 0x77
je 0x651990
jmp 0x652ff7
add ebp, 2
mov dword [esp + 0x14], ebp
mov edx, ebp
movzx eax, word [edx + 2]
movzx ecx, word [edx + eax*2]
lea edx, [edx + eax*2]
cmp ecx, 0x77
je 0x6519b0
add edx, 4
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
je 0x64f730
jmp case.0x657114.6
movzx ecx, word [ebp + 2]
lea esi, [ecx + ecx]
mov eax, 0xffff0000
mov edi, dword [esp + 0x158]
and eax, dword [edi + 0x94]
or eax, ecx
mov dword [edi + 0x94], eax
cmp esi, dword [edi + 0x14]
jge 0x6522d8
mov eax, dword [edi + 0xc]
mov edx, dword [edi + 0x10]
sub edx, ecx
mov ecx, dword [eax + edx*4]
mov dword [eax + esi*4], ecx
mov ecx, dword [esp + 8]
sub ecx, dword [edi + 0x78]
sar ecx, 1
mov edx, esi
or edx, 1
mov dword [eax + edx*4], ecx
mov ebx, dword [esp + 0x2c]
cmp esi, ebx
jl 0x652ff7
cmp ebx, esi
jge 0x651a87
lea ecx, [eax + esi*4]
lea edx, [eax + ebx*4]
lea edi, [eax + ebx*4 + 4]
cmp edi, ecx
cmova ecx, edi
neg eax
shl ebx, 2
sub eax, ebx
lea eax, [ecx + eax + 3]
and eax, 0xfffffffc
sub esp, 4
push eax
push 0xff
push edx
call sub.msvcrt.dll_memset
add esp, 0x10
add esi, 2
mov dword [esp + 0x2c], esi
jmp 0x652ff7
add ebp, 2
nop word cs:[eax + eax]
movzx ecx, word [ebp + 2]
movzx edx, word [ebp + ecx*2]
lea ebp, [ebp + ecx*2]
cmp edx, 0x77
je 0x651aa0
jmp 0x652ff7
add ebp, 2
mov dword [esp + 0x4c], 0
mov edx, 0x7fffffff
mov dword [esp + 0x10], 1
mov edi, 1
jmp 0x6502f0
mov eax, dword [0x7d97b0]
test eax, eax
je 0x651bb1
mov dword [esp + 0x74], 2
movzx ecx, word [ebp + 2]
mov dword [esp + 0x78], ecx
mov esi, dword [esp + 0x158]
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x7c], ecx
mov ecx, dword [esi + 0x78]
mov dword [esp + 0x80], ecx
mov edx, dword [esi + 0x7c]
sub edx, ecx
sar edx, 1
mov dword [esp + 0x84], edx
mov edx, dword [esp + 0x30]
sub edx, ecx
sar edx, 1
mov dword [esp + 0x88], edx
mov edx, dword [esp + 8]
sub edx, ecx
sar edx, 1
mov dword [esp + 0x8c], edx
movzx ecx, word [ebp + 4]
mov dword [esp + 0x9c], ecx
movzx ecx, word [ebp + 6]
mov dword [esp + 0xa0], ecx
mov edx, dword [esp + 0x2c]
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sar ecx, 1
mov dword [esp + 0x90], ecx
movzx ecx, word [esi + 0x94]
cmp ecx, 1
sbb edx, edx
or edx, ecx
mov dword [esp + 0x94], edx
mov ecx, dword [esi + 0xac]
mov dword [esp + 0x98], ecx
mov ecx, dword [esi + 0xb4]
mov dword [esp + 0xa4], ecx
sub esp, 0xc
lea ecx, [esp + 0x80]
push ecx
call eax
add esp, 0x10
test eax, eax
jg 0x654ea6
jne 0x6546c2
add ebp, 8
mov dword [esp + 0x14], ebp
jmp 0x64f730
movzx edx, word [ebp + 2]
add ebp, 2
mov eax, 1
cmp edx, 0x86
je case.0x64f74e.134
movzx eax, dx
cmp eax, 0x8b
mov eax, 1
jne case.0x64f74e.132
mov dword [esp + 0x28], edx
movzx ebx, word [ebp + 4]
lea esi, [ebx + ebx]
mov edx, dword [esp + 0x158]
cmp esi, dword [edx + 0x14]
jge 0x651d99
mov dword [esp + 0x50], eax
mov eax, ebp
sub eax, dword [edx + 0x74]
sar eax, 1
mov dword [esp + 0xc], eax
mov eax, dword [edx + 0xc]
mov ecx, dword [edx + 0x10]
mov edi, dword [eax + esi*4]
mov dword [esp + 0x4c], edi
mov dword [esp + 0x40], esi
or esi, 1
mov dword [esp + 0x58], esi
mov esi, dword [eax + esi*4]
mov dword [esp + 0xa8], esi
sub ecx, ebx
mov eax, dword [eax + ecx*4]
mov dword [esp + 0xac], eax
mov dword [esp + 0x10], 0
mov edi, dword [esp + 8]
mov dword [esp + 0x14], ebx
mov esi, ebp
mov ebp, edx
mov eax, dword [ebp + 0x94]
mov dword [esp + 4], eax
mov dword [esp + 8], edi
sub edi, dword [ebp + 0x78]
sar edi, 1
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 0x10]
sub edx, ebx
mov dword [ecx + edx*4], edi
mov ebx, esi
cmp dword [esp + 0x28], 0x88
jb 0x651c84
mov dword [ebp + 0x9c], 2
movzx eax, word [ebx]
movzx eax, byte [eax + 0x7daf74]
lea edx, [ebx + eax*2]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
push eax
push dword [esp + 0x48]
push ebp
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
cmp eax, 0xfffffc20
je 0x651cc7
test eax, eax
jne 0x651d1f
mov ax, word [ebx + 2]
jmp 0x651cee
movzx eax, word [ebx + 2]
lea ecx, [ebx + eax*2]
cmp dword [ebp + 0x80], ecx
jae 0x656beb
movzx edx, word [ebx]
cmp edx, 0x77
je 0x651cee
movzx ecx, word [ecx]
cmp ecx, 0x77
jne 0x656beb
mov ebp, dword [esp + 0x158]
mov ecx, dword [esp + 4]
mov dword [ebp + 0x94], ecx
movzx eax, ax
lea esi, [ebx + eax*2]
movzx eax, word [ebx + eax*2]
cmp eax, 0x77
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 8]
je 0x651c5e
jmp 0x652196
cmp eax, 0xfffffc1a
mov dword [esp + 4], eax
jne case.0x657114.6
mov edx, dword [esp + 0x158]
mov eax, dword [edx + 0x90]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0xc]
lea ebp, [eax + eax]
add ebp, dword [edx + 0x74]
mov eax, dword [edx + 0x80]
mov dword [esp + 0x30], eax
mov edi, dword [edx + 0x84]
mov dword [esp + 0x10], 1
cmp dword [esp + 8], edi
mov ebx, dword [esp + 0x14]
jne 0x651c4c
movzx ecx, word [ebp + 2]
movzx edx, word [ebp + ecx*2]
lea ebp, [ebp + ecx*2]
mov eax, 1
cmp edx, 0x77
je 0x651d6f
mov edi, dword [esp + 8]
or eax, dword [esp + 0x50]
jne 0x6521e0
jmp 0x654ea6
mov edx, dword [esp + 0x28]
mov dword [esp + 0x50], eax
mov ecx, ebp
mov eax, dword [esp + 0x158]
sub ecx, dword [eax + 0x74]
sar ecx, 1
mov dword [esp + 0x10], ecx
mov eax, dword [eax + 0x94]
mov dword [esp + 0x14], eax
xor edi, edi
mov eax, dword [esp + 8]
mov dword [esp + 4], edi
mov ecx, eax
jmp 0x651de5
mov eax, dword [esp + 0x158]
mov edx, dword [esp + 0x14]
mov dword [eax + 0x94], edx
mov edx, ebx
mov ecx, esi
mov ebx, edx
cmp edx, 0x88
jb 0x651e00
mov eax, dword [esp + 0x158]
mov dword [eax + 0x9c], 2
movzx eax, word [ebp]
movzx eax, byte [eax + 0x7daf74]
lea edx, [ebp + eax*2]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov esi, ecx
push eax
push dword [esp + 0x48]
mov edi, ebp
mov ebp, dword [esp + 0x16c]
push ebp
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
cmp eax, 0xfffffc20
je 0x651e4c
test eax, eax
jne 0x651e88
mov ax, word [edi + 2]
jmp 0x651e73
movzx eax, word [edi + 2]
lea ecx, [edi + eax*2]
cmp dword [ebp + 0x80], ecx
jae 0x656beb
movzx edx, word [edi]
cmp edx, 0x77
je 0x651e73
movzx ecx, word [ecx]
cmp ecx, 0x77
jne 0x656beb
movzx eax, ax
lea ebp, [edi + eax*2]
movzx eax, word [edi + eax*2]
cmp eax, 0x77
je 0x651dd0
jmp 0x651eec
cmp eax, 0xfffffc1a
mov dword [esp + 4], eax
mov edx, ebx
jne case.0x657114.6
mov eax, dword [esp + 0x158]
mov ecx, dword [eax + 0x90]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x10]
lea ebp, [ecx + ecx]
add ebp, dword [eax + 0x74]
mov ecx, dword [eax + 0x80]
mov dword [esp + 0x30], ecx
mov eax, dword [eax + 0x84]
mov edi, 1
mov ecx, esi
cmp ecx, eax
jne 0x651dc3
movzx ecx, word [ebp + 2]
movzx edx, word [ebp + ecx*2]
lea ebp, [ebp + ecx*2]
mov eax, 1
cmp edx, 0x77
je 0x651ed3
jmp 0x651ef0
mov eax, dword [esp + 4]
or eax, dword [esp + 0x50]
je 0x654ea6
add ebp, 4
mov dword [esp + 0x14], ebp
mov dword [esp + 8], esi
jmp 0x64f730
mov esi, dword [esp + 0x158]
mov eax, dword [esi + 0x28]
inc eax
mov dword [esi + 0x28], eax
cmp eax, dword [esi + 0x2c]
movzx eax, byte [edx + 0x7daf74]
ja 0x655f8a
movzx ecx, word [ebp + 2]
add ecx, eax
lea eax, [ebp + ecx*2]
mov dword [esp + 0x14], eax
jmp 0x64f730
mov ebx, ecx
movzx edx, word [ebp + 2]
cmp edx, 0xa
ja case.default.0x651f77
mov ecx, eax
sar ecx, 0x1f
shr ecx, 0x19
add ecx, eax
mov esi, ecx
and esi, 0x7fffff80
sar ecx, 7
movzx ecx, byte [ecx + 0x7dd1f4]
shl ecx, 7
mov edi, eax
sub edi, esi
add edi, ecx
movzx ecx, word [edi + edi + 0x7df3f4]
jmp dword [edx*4 + 0x65920c]
cmp eax, 0x180d
jle 0x64d788
lea edx, [eax - 0x2000]
cmp edx, 0x5f
ja case.default.0x651f98
jmp dword [edx*4 + 0x659238]
mov edi, dword [esp + 8]
cmp edi, eax
je 0x64d941
lea eax, [edi - 2]
mov ecx, dword [esp + 0x24]
cmp edi, dword [ecx]
ja 0x651fbc
mov ecx, dword [esp + 0x24]
mov dword [ecx], eax
cmp dword [esi + 0x58], 0
movzx eax, word [eax]
je 0x653c50
mov cl, 1
cmp eax, 0x5f
je 0x64d943
mov ecx, eax
shr ecx, 7
movzx ecx, byte [ecx + 0x7dd1f4]
shl ecx, 7
and eax, 0x7f
or eax, ecx
movzx eax, word [eax + eax + 0x7df3f4]
movzx eax, byte [eax*8 + 0x7dbb75]
mov eax, dword [eax*4 + 0x7db088]
or eax, 2
cmp eax, 3
sete cl
jmp 0x64d943
xor ebx, ebx
mov ebp, eax
jmp 0x652b31
movzx eax, word [ebp + 2]
movzx ecx, word [ebx]
cmp ax, cx
je 0x65805d
movzx edx, dx
cmp edx, 0x20
jne 0x65204b
cmp eax, 0xff
mov edx, dword [esp + 0x158]
ja 0x652043
mov edx, dword [edx + 0x40]
movzx eax, byte [edx + eax]
cmp eax, ecx
je 0x65805d
add ebx, 2
mov dword [esp + 8], ebx
jmp 0x652ff7
cmp dword [esp + 0x34], 0
je 0x6532a0
lea ecx, [edi - 6]
movzx ecx, cx
cmp ecx, 0xf
ja case.default.0x657114
mov dword [esp + 4], 0xfffffff2
jmp dword [ecx*4 + 0x658fe0]
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x64f716
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
cmp ebp, 0x12
sete cl
mov edx, dword [esp + 0xc]
mov dword [esp + 8], edx
jmp 0x64d862
add ebp, 4
mov dword [esp + 0x14], ebp
movzx ecx, word [ebx]
mov edx, ecx
and edx, 0xfc00
cmp edx, 0xd800
jne 0x6520e6
shl ecx, 0xa
and ecx, 0xffc00
movzx edx, word [ebx + 2]
add ebx, 4
and edx, 0x3ff
lea ecx, [ecx + edx + 0x10000]
jmp 0x6520e9
add ebx, 2
movzx edx, si
cmp edx, 0x1f
mov dword [esp + 8], ebx
jne 0x65210a
mov dword [esp + 4], 0
cmp eax, ecx
jne 0x64f730
jmp case.0x657114.6
cmp eax, 0x80
mov edx, dword [esp + 0x158]
jb 0x653107
mov edx, eax
sar edx, 0x1f
shr edx, 0x19
add edx, eax
mov esi, edx
and esi, 0x7fffff80
sar edx, 7
movzx edx, byte [edx + 0x7dd1f4]
shl edx, 7
mov edi, eax
sub edi, esi
add edi, edx
movzx edx, word [edi + edi + 0x7df3f4]
mov edx, dword [edx*8 + 0x7dbb78]
add edx, eax
cmp eax, ecx
jne 0x653116
jmp 0x658188
lea ecx, [eax + 0x3e4]
cmp ecx, 4
mov edx, edi
jae 0x654e97
movzx eax, word [edx + 2]
lea ecx, [edx + eax*2]
movzx eax, word [edx + eax*2]
cmp eax, 0x77
mov edx, ecx
je 0x652170
test esi, esi
jne 0x65572b
add ecx, 4
mov dword [esp + 0x14], ecx
jmp 0x64f730
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x6521d4
mov eax, dword [esp + 0x158]
mov ecx, eax
mov eax, dword [ecx + 0xc]
mov edx, dword [esp + 0x40]
mov ebp, dword [esp + 0x4c]
mov dword [eax + edx*4], ebp
mov edx, dword [esp + 0x58]
mov ebp, dword [esp + 0xa8]
mov dword [eax + edx*4], ebp
mov ecx, dword [ecx + 0x10]
sub ecx, ebx
mov edx, dword [esp + 0xac]
mov dword [eax + ecx*4], edx
xor eax, eax
mov ebp, esi
or eax, dword [esp + 0x50]
je 0x654ea6
add ebp, 4
mov dword [esp + 0x14], ebp
mov dword [esp + 8], edi
jmp 0x64f730
lea eax, [ebx - 6]
movzx eax, ax
cmp eax, 0xf
ja case.default.0x657114
mov dword [esp + 4], 0xfffffff2
jmp dword [eax*4 + 0x658bc8]
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 8]
mov dword [esp + 0xc], edx
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x656a57
movzx edx, word [edi]
cmp edx, 0xff
ja 0x652245
mov esi, dword [esp + 0x3c]
mov esi, dword [esi]
test byte [esi + edx], 4
jne 0x65805d
add edi, 2
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x65221e
jmp 0x65048f
mov eax, dword [ebp + 0x80]
mov dword [esp + 0x30], eax
mov ecx, edi
mov ax, word [ecx]
movzx eax, ax
cmp eax, 0x78
je 0x654ea6
test esi, esi
jne 0x65572b
nop dword [eax + eax]
mov eax, ecx
movzx ecx, word [eax + 2]
movzx edx, word [eax + ecx*2]
lea ecx, [eax + ecx*2]
cmp edx, 0x77
je 0x652280
add ecx, 4
mov dword [esp + 0x14], ecx
mov eax, dword [ebp + 0x90]
mov dword [esp + 0x2c], eax
jmp 0x64f730
mov eax, dword [esp + 0x158]
cmp dword [eax + 0x4c], 0
jne 0x654ea6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x64d314
mov ecx, dword [esp + 0x24]
cmp edi, dword [ecx]
ja 0x64d82b
jmp 0x64d314
or eax, 0x10000
mov dword [edi + 0x94], eax
jmp 0x652ff7
test ax, ax
jne 0x650d5e
jmp 0x6549fe
add edx, 2
cmp eax, 0xff
mov dword [esp + 8], edx
ja 0x64d314
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 0x10
je 0x64d314
jmp 0x65805d
mov edi, ecx
cmp eax, 0x1fff
mov dword [esp + 8], edi
jle 0x6524ed
cmp eax, 0x202e
jg 0x6533a4
add eax, 0xffffe000
cmp eax, 0xb
mov dword [esp + 4], 0
jae 0x64d314
jmp case.0x657114.6
mov edi, ecx
cmp eax, 0x1fff
mov dword [esp + 8], edi
jle 0x6532dd
cmp eax, 0x202e
jg 0x64d3a8
add eax, 0xffffe000
cmp eax, 0xb
mov dword [esp + 4], 0
jb 0x64d314
jmp case.0x657114.6
mov edi, ecx
lea ecx, [eax - 0xa]
cmp ecx, 4
jb 0x658188
mov dword [esp + 8], edi
lea ecx, [eax - 0x2028]
cmp ecx, 2
jb 0x658188
cmp eax, 0x85
jmp 0x6533cd
mov esi, ecx
lea ecx, [eax - 0xa]
cmp ecx, 4
jb 0x6523d6
lea ecx, [eax - 0x2028]
cmp ecx, 2
jb 0x6523d6
cmp eax, 0x85
jne 0x65805d
mov dword [esp + 8], esi
jmp 0x64d314
mov ebp, edx
cmp ebp, eax
jae 0x6524b0
mov edx, ecx
sar edx, 0x1f
shr edx, 0x19
add edx, ecx
mov esi, edx
and esi, 0x7fffff80
sar edx, 7
movzx edx, byte [edx + 0x7dd1f4]
shl edx, 7
sub ecx, esi
add ecx, edx
movzx ecx, word [ecx + ecx + 0x7df3f4]
movzx edx, byte [ecx*8 + 0x7dbb76]
movzx ecx, word [ebp]
cmp dword [esp + 0x34], 0
mov esi, 1
je 0x65245b
mov edi, ecx
and edi, 0xfc00
cmp edi, 0xd800
jne 0x65245b
shl ecx, 0xa
and ecx, 0xffc00
movzx esi, word [ebp + 2]
and esi, 0x3ff
lea ecx, [ecx + esi + 0x10000]
mov esi, 2
mov edi, ecx
sar edi, 0x1f
shr edi, 0x19
add edi, ecx
mov ebx, edi
and ebx, 0x7fffff80
sar edi, 7
movzx edi, byte [edi + 0x7dd1f4]
shl edi, 7
sub ecx, ebx
add ecx, edi
movzx ecx, word [ecx + ecx + 0x7df3f4]
movzx ecx, byte [ecx*8 + 0x7dbb76]
mov edi, 1
shl edi, cl
and edi, dword [edx*4 + 0x7db100]
je 0x6524a2
lea ebp, [ebp + esi*2]
cmp ebp, eax
jae 0x6524b0
test edi, edi
mov edx, ecx
jne 0x65241c
cmp ebp, eax
jb 0x6524d9
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x6524d9
mov ecx, dword [esp + 0x24]
cmp ebp, dword [ecx]
jbe 0x6524d9
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
jg 0x654dc8
mov dword [esp + 8], ebp
mov eax, dword [esp + 0xc]
add eax, 2
mov dword [esp + 0x14], eax
jmp 0x64f730
cmp eax, 0x9f
jle 0x6533c1
cmp eax, 0xa0
je 0x658188
cmp eax, 0x1680
je 0x658188
cmp eax, 0x180e
jmp 0x6533cd
xor eax, eax
jmp 0x64d6cb
cmp dword [esp + 0x44], 0
jne 0x65805d
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
cmp esi, eax
jae 0x654d8e
lea edi, [esi + 2]
cmp dword [esp + 0x34], 0
je 0x65255a
movzx edx, word [esi]
and edx, 0xfc00
cmp edx, 0xd800
jne 0x65255a
add esi, 4
mov edi, esi
mov edx, dword [esp + 0x10]
inc ecx
cmp ecx, edx
mov dword [esp + 0xc], edi
mov esi, edi
jl 0x652532
jmp 0x65048f
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov dword [esp + 0xc], esi
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x654eb3
lea esi, [edi + 2]
movzx edx, word [edi]
cmp dword [esp + 0x34], 0
je 0x6525c2
mov ebx, edx
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x6525c2
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
jmp 0x6525c4
mov edi, esi
mov esi, edx
sar esi, 0x1f
shr esi, 0x19
add esi, edx
mov ebx, esi
and ebx, 0x7fffff80
sar esi, 7
movzx esi, byte [esi + 0x7dd1f4]
shl esi, 7
sub edx, ebx
add edx, esi
movzx edx, word [edx + edx + 0x7df3f4]
movzx edx, byte [edx*8 + 0x7dbb75]
add dl, 0xfb
xor esi, esi
cmp dl, 4
ja 0x65260b
movsx edx, dl
mov esi, dword [edx*4 + 0x7daf50]
cmp dword [esp + 0x44], esi
je 0x65805d
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x65257a
jmp 0x65048f
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov dword [esp + 0xc], esi
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x654ef1
lea esi, [edi + 2]
movzx edx, word [edi]
cmp dword [esp + 0x34], 0
je 0x65267d
mov ebx, edx
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x65267d
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
jmp 0x65267f
mov edi, esi
mov esi, edx
sar esi, 0x1f
shr esi, 0x19
add esi, edx
mov ebx, esi
and ebx, 0x7fffff80
sar esi, 7
movzx esi, byte [esi + 0x7dd1f4]
shl esi, 7
sub edx, ebx
add edx, esi
movzx edx, word [edx + edx + 0x7df3f4]
movzx edx, byte [edx*8 + 0x7dbb75]
xor ebx, ebx
mov esi, dword [esp + 0x54]
cmp dword [edx*4 + 0x7db088], esi
sete bl
cmp dword [esp + 0x44], ebx
je 0x65805d
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x652635
jmp 0x65048f
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov dword [esp + 0xc], esi
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x654f2f
lea esi, [edi + 2]
movzx edx, word [edi]
cmp dword [esp + 0x34], 0
je 0x652734
mov ebx, edx
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x652734
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
jmp 0x652736
mov edi, esi
mov esi, edx
sar esi, 0x1f
shr esi, 0x19
add esi, edx
mov ebx, esi
and ebx, 0x7fffff80
sar esi, 7
movzx esi, byte [esi + 0x7dd1f4]
shl esi, 7
sub edx, ebx
add edx, esi
movzx edx, word [edx + edx + 0x7df3f4]
movzx edx, byte [edx*8 + 0x7dbb75]
xor ebx, ebx
cmp dword [esp + 0x54], edx
sete bl
cmp dword [esp + 0x44], ebx
je 0x65805d
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x6526ec
jmp 0x65048f
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov dword [esp + 0xc], esi
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x654f6d
lea esi, [edi + 2]
movzx edx, word [edi]
cmp dword [esp + 0x34], 0
je 0x6527e4
mov ebx, edx
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x6527e4
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
jmp 0x6527e6
mov edi, esi
mov esi, edx
sar esi, 0x1f
shr esi, 0x19
add esi, edx
mov ebx, esi
and ebx, 0x7fffff80
sar esi, 7
movzx esi, byte [esi + 0x7dd1f4]
shl esi, 7
sub edx, ebx
add edx, esi
movzx edx, word [edx + edx + 0x7df3f4]
movzx edx, byte [edx*8 + 0x7dbb74]
xor ebx, ebx
cmp dword [esp + 0x54], edx
sete bl
cmp dword [esp + 0x44], ebx
je 0x65805d
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x65279c
jmp 0x65048f
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov dword [esp + 0xc], esi
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x654fab
lea esi, [edi + 2]
movzx edx, word [edi]
cmp dword [esp + 0x34], 0
je 0x652894
mov ebx, edx
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x652894
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
jmp 0x652896
mov edi, esi
mov esi, edx
sar esi, 0x1f
shr esi, 0x19
add esi, edx
mov ebx, esi
and ebx, 0x7fffff80
sar esi, 7
movzx esi, byte [esi + 0x7dd1f4]
shl esi, 7
sub edx, ebx
add edx, esi
movzx edx, word [edx + edx + 0x7df3f4]
movzx edx, byte [edx*8 + 0x7dbb75]
mov edx, dword [edx*4 + 0x7db088]
or edx, 2
xor ebx, ebx
cmp edx, 3
sete bl
cmp dword [esp + 0x44], ebx
je 0x65805d
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x65284c
jmp 0x65048f
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov dword [esp + 0xc], esi
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x654fe9
lea esi, [edi + 2]
movzx edx, word [edi]
cmp dword [esp + 0x34], 0
je 0x65294d
mov ebx, edx
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x65294d
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
jmp 0x65294f
mov edi, esi
mov esi, edx
sar esi, 0x1f
shr esi, 0x19
add esi, edx
mov ebx, esi
and ebx, 0x7fffff80
sar esi, 7
movzx esi, byte [esi + 0x7dd1f4]
shl esi, 7
mov ebp, edx
sub ebp, ebx
add ebp, esi
movzx esi, word [ebp + ebp + 0x7df3f4]
movzx esi, byte [esi*8 + 0x7dbb75]
mov esi, dword [esi*4 + 0x7db088]
or esi, 2
cmp esi, 3
sete bl
cmp edx, 0x5f
sete dl
or dl, bl
movzx edx, dl
cmp dword [esp + 0x44], edx
je 0x65805d
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x652905
jmp 0x65048f
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0x54]
lea ecx, [ecx*4 + 0x7dba3c]
mov edx, 1
mov dword [esp + 0xc], esi
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x655027
lea ebx, [edi + 2]
movzx esi, word [edi]
cmp dword [esp + 0x34], 0
je 0x652a23
mov ebp, esi
and ebp, 0xfc00
cmp ebp, 0xd800
jne 0x652a23
shl esi, 0xa
and esi, 0xffc00
movzx ebx, word [edi + 2]
add edi, 4
mov dword [esp + 0xc], edi
and ebx, 0x3ff
lea esi, [esi + ebx + 0x10000]
jmp 0x652a27
mov dword [esp + 0xc], ebx
mov edi, dword [esp + 0x54]
mov ebx, dword [edi*4 + 0x7dba38]
cmp esi, ebx
jb 0x652a4e
mov ebp, ecx
nop dword [eax + eax]
cmp esi, ebx
je 0x652a5a
mov ebx, dword [ebp]
add ebp, 4
cmp esi, ebx
jae 0x652a40
cmp dword [esp + 0x44], 0
jne 0x652a65
jmp 0x65805d
cmp dword [esp + 0x44], 0
jne 0x65805d
cmp edx, dword [esp + 0x10]
lea edx, [edx + 1]
jl 0x6529d7
jmp 0x65048f
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov dword [esp + 0xc], esi
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x655065
lea esi, [edi + 2]
movzx edx, word [edi]
cmp dword [esp + 0x34], 0
je 0x652acb
mov ebx, edx
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x652acb
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
jmp 0x652acd
mov edi, esi
mov bl, 1
cmp edx, 0x24
je 0x652af8
cmp edx, 0x40
je 0x652af8
cmp edx, 0x60
je 0x652af8
lea esi, [edx - 0xa0]
cmp esi, 0xd760
setb bh
cmp edx, 0xdfff
seta bl
or bl, bh
movzx edx, bl
cmp dword [esp + 0x44], edx
je 0x65805d
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x652a83
jmp 0x65048f
mov ecx, ebx
or ecx, 1
mov ecx, dword [ebp + ecx*4]
sub ecx, edi
mov dword [esp + 0x10], ecx
mov ebp, eax
mov edi, dword [esp + 0x158]
movzx ecx, word [ebp]
movzx eax, cx
mov edx, ecx
add edx, 0xffffff9e
movzx edx, dx
cmp edx, 6
jae 0x652b78
add ebp, 2
lea ecx, [eax - 0x62]
mov edx, eax
and edx, 1
mov dword [esp + 4], edx
movsx edi, byte [eax + 0x7daece]
movsx eax, byte [eax + 0x7daed9]
mov edx, 0x3cf
bt edx, ecx
mov ecx, 0x7fffffff
cmovae ecx, eax
mov dword [esp + 0x28], ecx
jmp 0x652ba6
lea ecx, [ecx - 0x68]
movzx ecx, cx
cmp ecx, 2
jae 0x652c01
cmp eax, 0x69
sete al
mov dword [esp + 4], eax
movzx edi, word [ebp + 2]
movzx eax, word [ebp + 4]
test eax, eax
mov ecx, 0x7fffffff
cmovne ecx, eax
mov dword [esp + 0x28], ecx
add ebp, 6
mov dword [esp + 0x14], ebp
cmp dword [esp + 0x10], 0
je 0x64f730
jns 0x652bbf
test edi, edi
je 0x64f730
test edi, edi
jle 0x653003
xor esi, esi
mov ebp, dword [esp + 8]
sub esp, 4
mov ecx, ebx
mov edx, ebp
push dword [esp + 0x10]
push dword [esp + 0x160]
push dword [esp + 0x1c]
call fcn.00659400
add esp, 0x10
test eax, eax
js 0x654973
lea ebp, [ebp + eax*2]
inc esi
cmp esi, edi
jl 0x652bcd
jmp 0x653007
sub esp, 4
mov ecx, ebx
mov esi, dword [esp + 0xc]
mov edx, esi
push dword [esp + 0x10]
push edi
push dword [esp + 0x1c]
call fcn.00659400
add esp, 0x10
test eax, eax
js 0x656c32
lea esi, [esi + eax*2]
mov dword [esp + 8], esi
mov dword [esp + 0x14], ebp
jmp 0x64f730
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x652c5a
mov ecx, dword [esp + 0x24]
cmp ebp, dword [ecx]
jbe 0x652c5a
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
jg 0x654dc8
mov dword [esp + 8], ebp
cmp dword [esp + 0x4c], 0
jne 0x64f730
jmp 0x654011
mov edx, eax
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x64d7e1
mov ecx, dword [esp + 0x24]
cmp edx, dword [ecx]
jbe 0x64d7e1
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
mov eax, edx
jle 0x64d7e3
jmp 0x654dc8
mov eax, esi
jmp 0x64d7e3
cmp eax, 1
mov dword [esp + 4], eax
jne case.0x657114.6
mov ebp, dword [esp + 0x158]
mov eax, dword [ebp + 0x80]
mov dword [esp + 0x30], eax
mov ecx, edi
mov ax, word [ecx]
movzx eax, ax
cmp eax, 0x82
je 0x652ce1
cmp eax, 0x77
jne 0x654ea6
movzx edx, word [ecx + 2]
movzx eax, word [ecx + edx*2]
lea ecx, [ecx + edx*2]
cmp eax, 0x77
je 0x652ce1
mov ebx, dword [ebp + 0x84]
mov esi, dword [ebp + 0x90]
movzx eax, ax
cmp eax, 0x78
mov dword [esp + 0x2c], esi
je 0x652d13
cmp ebx, dword [esp + 8]
jne 0x654483
add ecx, 4
mov dword [esp + 0x14], ecx
mov dword [esp + 8], ebx
jmp 0x64f730
mov ecx, dword [esp + 0x48]
mov ecx, dword [ecx]
lea edx, [ecx + ecx]
sub eax, edx
mov edx, dword [esp + 8]
cmp edx, eax
ja 0x652d56
movzx eax, word [edx]
cmp ax, word [esi + 0x34]
jne 0x652d56
cmp ecx, 1
je 0x65805d
movzx eax, word [edx + 2]
cmp ax, word [esi + 0x36]
je 0x65805d
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je case.0x64f74e.13
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx]
add ecx, 0xfffffffe
cmp dword [esp + 8], ecx
jne case.0x64f74e.13
mov ecx, dword [esp + 0x158]
cmp dword [ecx + 0x18], 0
jne case.0x64f74e.13
mov ecx, dword [esp + 0x48]
cmp dword [ecx], 2
jne case.0x64f74e.13
mov ecx, dword [esp + 8]
movzx ecx, word [ecx]
mov edx, dword [esp + 0x158]
cmp cx, word [edx + 0x34]
jne case.0x64f74e.13
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
jg 0x654dc8
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
mov edx, dword [esp + 8]
cmp edx, ecx
jae 0x6557b4
lea eax, [edx + 2]
cmp dword [esp + 0x34], 0
je 0x64d6b6
cmp eax, ecx
jae 0x64d6b6
movzx ecx, word [edx + 2]
and ecx, 0xfc00
add edx, 4
cmp ecx, 0xdc00
cmove eax, edx
jmp 0x64d6b6
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 8]
sub eax, ecx
cmp eax, 1
jle 0x656d94
movzx eax, word [ebp + 2]
cmp ax, word [ecx]
jne 0x65805d
add ecx, 2
mov dword [esp + 8], ecx
jmp 0x652ff7
xor eax, eax
mov ebx, dword [esp + 8]
mov ecx, dword [esi + 0xa8]
test ecx, ecx
je 0x652e43
mov edx, ecx
cmp eax, dword [edx + 4]
jne 0x652e3d
cmp ebx, dword [edx + 0x14]
je 0x654dd5
mov edx, dword [edx]
test edx, edx
jne 0x652e2f
mov dword [esp + 0x60], eax
mov eax, dword [esi + 0x94]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], ebx
mov dword [esp + 0x5c], ecx
lea eax, [esp + 0x5c]
mov dword [esi + 0xa8], eax
mov ecx, dword [esi + 0x10]
mov dword [esp + 0x68], ecx
cmp ecx, 0x1e
jg 0x652e7c
lea eax, [esp + 0xc4]
mov dword [esp + 0x64], eax
jmp 0x652e9c
shl ecx, 2
sub esp, 0xc
push ecx
call dword [0x7d97a8]
add esp, 0x10
mov dword [esp + 0x64], eax
test eax, eax
je 0x656d87
mov ecx, dword [esp + 0x68]
add ebp, 4
mov dword [esp + 0xc], ebp
shl ecx, 2
sub esp, 4
push ecx
push dword [esi + 0xc]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0x10
movzx ebp, word [edi]
mov ecx, ebp
movzx eax, bp
cmp eax, 0x88
jb 0x652ed6
mov eax, dword [esp + 0x158]
mov dword [eax + 0x9c], 2
movzx eax, cx
movzx eax, byte [eax + 0x7daf74]
lea edx, [edi + eax*2]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
push eax
push dword [esp + 0x48]
mov ebx, dword [esp + 0x16c]
push ebx
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
mov esi, eax
mov eax, dword [esp + 0x68]
shl eax, 2
sub esp, 4
push eax
push dword [esp + 0x6c]
push dword [ebx + 0xc]
call sub.msvcrt.dll_memcpy
add esp, 0x10
mov eax, dword [esp + 0x6c]
mov dword [ebx + 0x94], eax
mov eax, dword [esp + 0x5c]
mov dword [ebx + 0xa8], eax
cmp esi, 1
je 0x653bd0
cmp esi, 0xfffffc19
je 0x653bd0
lea ecx, [esi + 0x3e4]
cmp ecx, 4
jbe 0x654de2
test esi, esi
jne 0x654dfb
mov ecx, dword [esp + 0x158]
lea edx, [esp + 0x5c]
mov dword [ecx + 0xa8], edx
movzx ecx, word [edi + 2]
movzx edx, word [edi + ecx*2]
lea edi, [edi + ecx*2]
mov cx, 0x77
cmp edx, 0x77
je 0x652ebb
jmp 0x654e24
add eax, eax
mov edi, dword [esp + 8]
sub edi, eax
mov eax, dword [esp + 0x158]
cmp edi, dword [eax + 0x78]
jb 0x654ea6
mov eax, dword [esp + 0x24]
cmp edi, dword [eax]
jae 0x652ff3
mov eax, dword [esp + 0x24]
mov dword [eax], edi
jmp 0x652ff3
cmp eax, 0xff
mov edx, dword [esp + 0x158]
ja 0x652fd6
mov ecx, dword [edx + 0x3c]
movzx eax, byte [ecx + eax]
movzx ecx, word [edi]
cmp ecx, 0xff
ja 0x652fe8
mov edx, dword [edx + 0x3c]
movzx ecx, byte [edx + ecx]
cmp eax, ecx
jne 0x65805d
add edi, 2
mov dword [esp + 8], edi
add ebp, 4
mov dword [esp + 0x14], ebp
jmp 0x64f730
mov ebp, dword [esp + 8]
mov dword [esp + 8], ebp
cmp edi, dword [esp + 0x28]
je 0x64f730
jmp 0x656741
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x65303f
mov ecx, dword [esp + 0x24]
cmp edx, dword [ecx]
jbe 0x65303f
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
jg 0x654dc8
mov dword [esp + 8], edx
cmp dword [esp + 0x50], 0
jne 0x64f730
jmp 0x654088
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x653078
mov ecx, dword [esp + 0x24]
cmp edx, dword [ecx]
jbe 0x653078
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
jg 0x654dc8
mov dword [esp + 8], edx
cmp dword [esp + 0x50], 0
jne 0x64f730
jmp 0x6540e1
mov edx, 1
cmp eax, 0x7f
ja 0x6530c7
movzx ecx, word [edi]
cmp ecx, 0xff
mov edx, dword [esi + 0x3c]
movzx eax, byte [edx + eax]
ja 0x6530ac
movzx ecx, byte [edx + ecx]
cmp ecx, eax
jne 0x65805d
add ebp, 4
add edi, 2
mov dword [esp + 8], edi
mov dword [esp + 0x14], ebp
jmp 0x64f730
add ebp, 2
movzx ecx, word [edi]
mov esi, ecx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x653491
shl ecx, 0xa
and ecx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
mov dword [esp + 8], edi
and esi, 0x3ff
lea ecx, [ecx + esi + 0x10000]
jmp 0x653498
mov edx, dword [edx + 0x40]
movzx edx, byte [edx + eax]
cmp eax, ecx
je 0x658188
cmp edx, ecx
mov dword [esp + 4], 0
jne 0x64f730
jmp case.0x657114.6
mov edi, esi
mov dword [esp + 8], edi
cmp dword [esp + 0x50], 0
jne 0x64f730
jmp 0x653e79
cmp eax, 0xff
ja 0x64d6c6
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
mov cl, byte [ecx + eax]
and cl, 0x10
shr cl, 4
jmp 0x64d6c8
movzx eax, word [edi + 4]
test eax, eax
je case.0x650b79.4
mov ecx, dword [esp + 0x158]
mov esi, ecx
mov ecx, dword [esi + 0x24]
movzx edx, word [edi + 2]
imul edx, ecx
add edx, edx
add edx, dword [esi + 0x30]
inc eax
add ecx, ecx
movzx ebx, word [edx]
add ebx, ebx
xor esi, esi
cmp ebx, dword [esp + 0x2c]
jge 0x6531b1
mov esi, dword [esp + 0x158]
mov esi, dword [esi + 0xc]
mov ebx, dword [esi + ebx*4]
mov esi, ebx
shr esi, 0x1f
xor esi, 1
test ebx, ebx
jns 0x64e27a
dec eax
add edx, ecx
cmp eax, 1
jg 0x653187
jmp 0x64e27a
mov eax, dword [esp + 0x158]
mov eax, dword [eax + 0xa8]
test eax, eax
je case.0x650b79.4
movzx ecx, word [edi + 2]
cmp ecx, 0xffff
je 0x64e275
cmp dword [eax + 4], ecx
sete al
movzx esi, al
test esi, esi
je case.0x650b79.4
jmp 0x653ef4
mov eax, dword [esp + 0x158]
mov esi, dword [eax + 0xa8]
test esi, esi
je case.0x650b79.4
movzx eax, word [edi + 4]
test eax, eax
je case.0x650b79.4
mov ecx, dword [esp + 0x158]
mov ebx, ecx
mov ecx, dword [ebx + 0x24]
movzx edx, word [edi + 2]
imul edx, ecx
add edx, edx
add edx, dword [ebx + 0x30]
mov esi, dword [esi + 4]
inc eax
add ecx, ecx
movzx ebx, word [edx]
cmp esi, ebx
je 0x653ef4
dec eax
add edx, ecx
cmp eax, 1
jg 0x653238
jmp case.0x650b79.4
mov eax, dword [esp + 0x158]
mov esi, eax
mov dword [esi + 0x9c], 1
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
mov edx, edi
push eax
push 0
push esi
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
cmp eax, 0xfffffc20
je case.0x650b79.4
test eax, eax
je case.0x650b79.4
jmp 0x65455d
lea ecx, [edi - 6]
movzx ecx, cx
cmp ecx, 0xf
ja case.default.0x657114
mov dword [esp + 4], 0xfffffff2
jmp dword [ecx*4 + 0x659020]
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx]
mov dword [esp + 8], ecx
mov edx, dword [esp + 0xc]
sub ecx, edx
sar ecx, 1
cmp eax, ecx
jbe 0x64f6c7
jmp 0x64f6ec
cmp eax, 0x9f
jle 0x64d843
cmp eax, 0xa0
mov dword [esp + 4], 0
je 0x64d314
cmp eax, 0x1680
je 0x64d314
cmp eax, 0x180e
je 0x64d314
jmp case.0x657114.6
mov ecx, dword [esp + 0x48]
mov ecx, dword [ecx]
lea edx, [ecx + ecx]
mov esi, eax
sub esi, edx
cmp ebx, esi
ja 0x65592e
movzx edx, word [ebx]
cmp dx, word [edi + 0x34]
jne 0x65592e
cmp ecx, 1
jne 0x64d7f7
mov ecx, 1
jmp 0x64d805
mov ebx, dword [esp + 0x158]
cmp edx, 0xc
jle 0x651305
lea edi, [edx - 0x2028]
cmp edi, 2
jb 0x653395
cmp edx, 0x85
je 0x653395
cmp edx, 0xd
mov dword [esp + 4], 0
jne case.0x657114.6
cmp eax, ecx
jae 0x64dba3
movzx ecx, word [eax]
lea edx, [eax + 2]
cmp ecx, 0xa
jmp 0x652de7
cmp dword [ebx + 0x6c], 0
je 0x64d6b6
jmp 0x65805d
cmp eax, 0x202f
je 0x658188
cmp eax, 0x205f
je 0x658188
cmp eax, 0x3000
jmp 0x6533cd
cmp eax, 9
je 0x658188
cmp eax, 0x20
mov dword [esp + 4], 0
jne 0x64d314
jmp case.0x657114.6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x653405
mov ecx, dword [esp + 0x24]
cmp edx, dword [ecx]
jbe 0x653405
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
jg 0x654dc8
mov dword [esp + 8], edx
cmp dword [esp + 0x4c], 0
jne 0x64f730
jmp 0x6541f5
mov edx, ecx
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x64db5b
mov ecx, dword [esp + 0x24]
cmp edx, dword [ecx]
jbe 0x64db5b
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
mov ecx, edx
jle 0x64db5d
jmp 0x654dc8
xor ecx, ecx
cmp eax, 0x69
sete cl
mov ebp, ecx
cmp eax, 0x6d
sete al
mov dword [esp + 4], eax
mov ecx, dword [esp + 0x14]
movzx ebx, word [ecx + 2]
movzx eax, word [ecx + 4]
test eax, eax
mov edx, 0x7fffffff
cmovne edx, eax
mov dword [esp + 0x10], edx
add ecx, 6
mov dword [esp + 0x14], ecx
test ebx, ebx
jg 0x64da0e
jmp 0x64da85
add edi, 2
mov dword [esp + 8], edi
lea edx, [ebp + edx*2]
mov dword [esp + 0x14], edx
cmp eax, ecx
je 0x64f730
mov edx, eax
sar edx, 0x1f
shr edx, 0x19
add edx, eax
mov esi, edx
and esi, 0x7fffff80
sar edx, 7
movzx edx, byte [edx + 0x7dd1f4]
shl edx, 7
mov edi, eax
sub edi, esi
add edi, edx
movzx edx, word [edi + edi + 0x7df3f4]
add eax, dword [edx*8 + 0x7dbb78]
mov dword [esp + 4], 0
cmp ecx, eax
je 0x64f730
jmp case.0x657114.6
mov ecx, dword [esp + 0x48]
mov ecx, dword [ecx]
lea eax, [eax + ecx*2]
cmp edi, eax
jb 0x654ea6
lea eax, [ecx + ecx]
mov edx, edi
sub edx, eax
movzx eax, word [edx]
cmp ax, word [esi + 0x34]
jne 0x654ea6
cmp ecx, 1
je 0x64d314
neg ecx
movzx eax, word [edi + ecx*2 + 2]
cmp ax, word [esi + 0x36]
je 0x64d314
jmp 0x654ea6
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x28], eax
mov ebp, edx
jle 0x64f6dc
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ebp, edx
cmp ebp, eax
jae 0x64db71
cmp dword [esp + 0x34], 0
je 0x653574
movzx edx, word [ebp]
and edx, 0xfc00
xor ecx, ecx
cmp edx, 0xd800
sete cl
inc ecx
jmp 0x653579
mov ecx, 1
mov edx, dword [esp + 0x28]
cmp dword [esp + 0x44], 0
jne 0x64f6dc
lea ebp, [ebp + ecx*2]
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, edx
jl 0x65354d
jmp 0x64f6dc
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x28], eax
mov ebp, edx
jle 0x64f6dc
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ebp, edx
cmp ebp, eax
jae 0x64db71
movzx edx, word [ebp]
cmp dword [esp + 0x34], 0
mov ecx, 1
je 0x6535fd
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x6535fd
shl edx, 0xa
and edx, 0xffc00
movzx ecx, word [ebp + 2]
and ecx, 0x3ff
lea edx, [edx + ecx + 0x10000]
mov ecx, 2
mov esi, edx
sar esi, 0x1f
shr esi, 0x19
add esi, edx
mov edi, esi
and edi, 0x7fffff80
sar esi, 7
movzx esi, byte [esi + 0x7dd1f4]
shl esi, 7
sub edx, edi
add edx, esi
movzx edx, word [edx + edx + 0x7df3f4]
movzx edx, byte [edx*8 + 0x7dbb75]
add dl, 0xfb
xor esi, esi
cmp dl, 4
ja 0x653644
movsx edx, dl
mov esi, dword [edx*4 + 0x7daf50]
cmp dword [esp + 0x44], esi
je 0x64f6dc
mov edx, dword [esp + 0x10]
inc edx
lea ebp, [ebp + ecx*2]
mov dword [esp + 0x10], edx
cmp edx, dword [esp + 0x28]
jl 0x6535b6
jmp 0x64f6dc
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x28], eax
mov ebp, edx
jle 0x64f6dc
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ebp, edx
cmp ebp, eax
jae 0x64db71
movzx ecx, word [ebp]
cmp dword [esp + 0x34], 0
mov edx, 1
je 0x6536c9
mov esi, ecx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x6536c9
shl ecx, 0xa
and ecx, 0xffc00
movzx edx, word [ebp + 2]
and edx, 0x3ff
lea ecx, [ecx + edx + 0x10000]
mov edx, 2
mov esi, ecx
sar esi, 0x1f
shr esi, 0x19
add esi, ecx
mov edi, esi
and edi, 0x7fffff80
sar esi, 7
movzx esi, byte [esi + 0x7dd1f4]
shl esi, 7
sub ecx, edi
add ecx, esi
movzx ecx, word [ecx + ecx + 0x7df3f4]
movzx ecx, byte [ecx*8 + 0x7dbb75]
xor ebx, ebx
mov esi, dword [esp + 0x54]
cmp dword [ecx*4 + 0x7db088], esi
sete bl
cmp dword [esp + 0x44], ebx
je 0x64f6dc
lea ebp, [ebp + edx*2]
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x653682
jmp 0x64f6dc
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x28], eax
mov ebp, edx
jle 0x64f6dc
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ebp, edx
cmp ebp, eax
jae 0x64db71
movzx ecx, word [ebp]
cmp dword [esp + 0x34], 0
mov edx, 1
je 0x653791
mov esi, ecx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x653791
shl ecx, 0xa
and ecx, 0xffc00
movzx edx, word [ebp + 2]
and edx, 0x3ff
lea ecx, [ecx + edx + 0x10000]
mov edx, 2
mov esi, ecx
sar esi, 0x1f
shr esi, 0x19
add esi, ecx
mov edi, esi
and edi, 0x7fffff80
sar esi, 7
movzx esi, byte [esi + 0x7dd1f4]
shl esi, 7
sub ecx, edi
add ecx, esi
movzx ecx, word [ecx + ecx + 0x7df3f4]
movzx ecx, byte [ecx*8 + 0x7dbb75]
xor ebx, ebx
cmp dword [esp + 0x54], ecx
sete bl
cmp dword [esp + 0x44], ebx
je 0x64f6dc
lea ebp, [ebp + edx*2]
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x65374a
jmp 0x64f6dc
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x28], eax
mov ebp, edx
jle 0x64f6dc
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ebp, edx
cmp ebp, eax
jae 0x64db71
movzx ecx, word [ebp]
cmp dword [esp + 0x34], 0
mov edx, 1
je 0x653852
mov esi, ecx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x653852
shl ecx, 0xa
and ecx, 0xffc00
movzx edx, word [ebp + 2]
and edx, 0x3ff
lea ecx, [ecx + edx + 0x10000]
mov edx, 2
mov esi, ecx
sar esi, 0x1f
shr esi, 0x19
add esi, ecx
mov edi, esi
and edi, 0x7fffff80
sar esi, 7
movzx esi, byte [esi + 0x7dd1f4]
shl esi, 7
sub ecx, edi
add ecx, esi
movzx ecx, word [ecx + ecx + 0x7df3f4]
movzx ecx, byte [ecx*8 + 0x7dbb74]
xor ebx, ebx
cmp dword [esp + 0x54], ecx
sete bl
cmp dword [esp + 0x44], ebx
je 0x64f6dc
lea ebp, [ebp + edx*2]
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x65380b
jmp 0x64f6dc
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x28], eax
mov ebp, edx
jle 0x64f6dc
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ebp, edx
cmp ebp, eax
jae 0x64db71
movzx edx, word [ebp]
cmp dword [esp + 0x34], 0
mov ecx, 1
je 0x653913
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x653913
shl edx, 0xa
and edx, 0xffc00
movzx ecx, word [ebp + 2]
and ecx, 0x3ff
lea edx, [edx + ecx + 0x10000]
mov ecx, 2
mov esi, edx
sar esi, 0x1f
shr esi, 0x19
add esi, edx
mov edi, esi
and edi, 0x7fffff80
sar esi, 7
movzx esi, byte [esi + 0x7dd1f4]
shl esi, 7
sub edx, edi
add edx, esi
movzx edx, word [edx + edx + 0x7df3f4]
movzx edx, byte [edx*8 + 0x7dbb75]
mov edx, dword [edx*4 + 0x7db088]
or edx, 2
xor ebx, ebx
cmp edx, 3
sete bl
cmp dword [esp + 0x44], ebx
je 0x64f6dc
lea ebp, [ebp + ecx*2]
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x6538cc
jmp 0x64f6dc
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x28], eax
mov ebp, edx
jle 0x64f6dc
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ebp, edx
cmp ebp, eax
jae 0x64db71
movzx ecx, word [ebp]
cmp dword [esp + 0x34], 0
mov edx, 1
je 0x6539dd
mov esi, ecx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x6539dd
shl ecx, 0xa
and ecx, 0xffc00
movzx edx, word [ebp + 2]
and edx, 0x3ff
lea ecx, [ecx + edx + 0x10000]
mov edx, 2
mov esi, ecx
sar esi, 0x1f
shr esi, 0x19
add esi, ecx
mov edi, esi
and edi, 0x7fffff80
sar esi, 7
movzx esi, byte [esi + 0x7dd1f4]
shl esi, 7
mov ebx, ecx
sub ebx, edi
add ebx, esi
movzx esi, word [ebx + ebx + 0x7df3f4]
movzx esi, byte [esi*8 + 0x7dbb75]
mov esi, dword [esi*4 + 0x7db088]
or esi, 2
cmp esi, 3
sete bl
cmp ecx, 0x5f
sete cl
or cl, bl
movzx ecx, cl
cmp dword [esp + 0x44], ecx
je 0x64f6dc
lea ebp, [ebp + edx*2]
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x653996
jmp 0x64f6dc
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x28], eax
mov ebp, edx
jle 0x64f6dc
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0x54]
lea ecx, [ecx*4 + 0x7dba3c]
mov dword [esp + 4], ecx
mov ebp, edx
cmp ebp, eax
jae 0x64db71
movzx edx, word [ebp]
cmp dword [esp + 0x34], 0
mov esi, 1
je 0x653ac5
mov edi, edx
and edi, 0xfc00
cmp edi, 0xd800
jne 0x653ac5
shl edx, 0xa
and edx, 0xffc00
mov ecx, ebp
movzx esi, word [ebp + 2]
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
mov esi, 2
jmp 0x653ac7
mov ecx, ebp
mov edi, dword [esp + 0x54]
mov ebx, dword [edi*4 + 0x7dba38]
cmp edx, ebx
jb 0x653ae8
mov ebp, dword [esp + 4]
cmp edx, ebx
je 0x653af4
mov ebx, dword [ebp]
add ebp, 4
cmp edx, ebx
jae 0x653ada
cmp dword [esp + 0x44], 0
jne 0x653aff
jmp 0x64f6da
cmp dword [esp + 0x44], 0
jne 0x64f6da
mov ebp, ecx
lea ebp, [ebp + esi*2]
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x653a7a
jmp 0x64f6dc
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x28], eax
mov ebp, edx
jle 0x64f6dc
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ebp, edx
cmp ebp, eax
jae 0x64db71
movzx edx, word [ebp]
cmp dword [esp + 0x34], 0
mov ecx, 1
je 0x653b7c
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x653b7c
shl edx, 0xa
and edx, 0xffc00
movzx ecx, word [ebp + 2]
and ecx, 0x3ff
lea edx, [edx + ecx + 0x10000]
mov ecx, 2
mov bl, 1
cmp edx, 0x24
je 0x653ba7
cmp edx, 0x40
je 0x653ba7
cmp edx, 0x60
je 0x653ba7
lea esi, [edx - 0xa0]
cmp esi, 0xd760
setb bh
cmp edx, 0xdfff
seta bl
or bl, bh
movzx edx, bl
cmp dword [esp + 0x44], edx
je 0x64f6dc
mov edx, dword [esp + 0x10]
inc edx
lea ebp, [ebp + ecx*2]
mov dword [esp + 0x10], edx
cmp edx, dword [esp + 0x28]
jl 0x653b35
jmp 0x64f6dc
mov eax, dword [esp + 0x64]
lea ecx, [esp + 0xc4]
cmp eax, ecx
je 0x653bec
sub esp, 0xc
push eax
call dword [0x7d97ac]
add esp, 0x10
mov eax, dword [esp + 0x158]
mov ecx, dword [eax + 0x80]
mov dword [esp + 0x30], ecx
mov eax, dword [eax + 0x84]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x14], eax
jmp 0x64f730
mov ecx, dword [esp + 0x48]
mov ecx, dword [ecx]
lea edx, [ecx + ecx]
sub eax, edx
cmp edi, eax
ja 0x656095
movzx eax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x656095
cmp ecx, 1
je 0x64d314
movzx eax, word [edi + 2]
cmp ax, word [esi + 0x36]
je 0x64d314
jmp 0x656095
cmp eax, 0xff
ja 0x64d941
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
mov cl, byte [ecx + eax]
and cl, 0x10
shr cl, 4
jmp 0x64d943
movzx eax, byte [ecx*8 + 0x7dbb75]
cmp eax, 9
ja 0x653c8a
mov ecx, 0x320
bt ecx, eax
jb case.0x651f77.0
movzx eax, word [esp + 0x28]
cmp eax, 0xf
je 0x64d7d1
jmp 0x65805d
movzx eax, word [ebp + 4]
movzx ecx, byte [ecx*8 + 0x7dbb75]
cmp dword [ecx*4 + 0x7db088], eax
jmp 0x653cce
movzx eax, word [ebp + 4]
movzx ecx, byte [ecx*8 + 0x7dbb75]
jmp 0x653ccc
movzx eax, word [ebp + 4]
movzx ecx, byte [ecx*8 + 0x7dbb74]
cmp eax, ecx
setne al
movzx ecx, word [esp + 0x28]
cmp ecx, 0x10
jmp 0x653d1b
movzx eax, byte [ecx*8 + 0x7dbb75]
mov eax, dword [eax*4 + 0x7db088]
or eax, 2
cmp eax, 3
jmp 0x653d10
movzx ecx, byte [ecx*8 + 0x7dbb75]
mov ecx, dword [ecx*4 + 0x7db088]
or ecx, 2
cmp ecx, 3
je case.0x651f77.0
cmp eax, 0x5f
sete al
movzx ecx, word [esp + 0x28]
cmp ecx, 0xf
sete cl
xor cl, al
jne 0x64d7d1
jmp 0x65805d
movzx edx, word [ebp + 4]
mov ecx, dword [edx*4 + 0x7dba38]
cmp eax, ecx
jb 0x64d2ae
lea edx, [edx*4 + 0x7dba3c]
cmp eax, ecx
je 0x64d2e1
mov ecx, dword [edx]
add edx, 4
cmp eax, ecx
jae 0x653d45
jmp 0x64d2ae
movzx edi, word [ebp + 4]
lea ebx, [edi + edi]
mov eax, dword [esp + 0x158]
cmp ebx, dword [eax + 0x14]
jl 0x656a95
mov ebx, ebp
movzx eax, dx
cmp eax, 0x87
seta cl
cmp eax, 0x81
sete al
or al, cl
mov byte [esp + 4], al
mov ebp, dword [esp + 0x158]
cmp byte [esp + 4], 0
jne 0x653dc9
cmp dword [ebp + 0x70], 0
jne 0x653dd3
mov ecx, ebx
movzx eax, word [ecx + 2]
movzx eax, word [ecx + eax*2]
cmp eax, 0x77
je 0x653dd3
jmp 0x653ee0
lea ebx, [ebx + eax*2]
mov dword [ebp + 0x94], esi
mov dx, 0x77
cmp byte [esp + 4], 0
je 0x653d9b
mov dword [ebp + 0x9c], 2
mov esi, dword [ebp + 0x94]
mov eax, dword [ebp + 0xb0]
mov dword [esp + 0x34], eax
movzx eax, dx
movzx eax, byte [eax + 0x7daf74]
mov edi, ebx
lea edx, [edi + eax*2]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
push eax
push dword [esp + 0x48]
push ebp
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
cmp eax, 0xfffffc20
je 0x653e2c
test eax, eax
jne 0x65490c
mov ax, word [ebx + 2]
jmp 0x653e53
movzx eax, word [edi + 2]
lea ecx, [edi + eax*2]
cmp dword [ebp + 0x80], ecx
jae 0x656beb
movzx edx, word [edi]
cmp edx, 0x77
je 0x653e53
movzx ecx, word [ecx]
cmp ecx, 0x77
jne 0x656beb
movzx eax, ax
mov ebp, dword [esp + 0x158]
mov edx, dword [esp + 0x34]
mov dword [ebp + 0xb0], edx
movzx ecx, word [ebx + eax*2]
cmp ecx, 0x77
je 0x653db5
jmp 0x654ea6
mov edi, dword [esp + 8]
cmp edi, ebx
jbe 0x65407d
mov ebp, dword [esp + 0x158]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, edi
push eax
push dword [esp + 0x48]
push ebp
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
test eax, eax
jne 0x6583e9
movzx eax, word [edi - 2]
and eax, 0xfc00
cmp eax, 0xdc00
je 0x653ed0
add edi, 0xfffffffe
jmp 0x653ed3
add edi, 0xfffffffc
mov edx, dword [esp + 0x14]
cmp edi, ebx
ja 0x653e90
jmp 0x6540da
movzx eax, dx
movzx eax, byte [eax + 0x7daf74]
mov edx, ebx
lea edx, [edx + eax*2]
jmp 0x654194
movzx eax, bp
mov cl, byte [eax + 0x7daf74]
movzx eax, cl
lea eax, [edi + eax*2]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x28]
movzx eax, ax
cmp eax, 0x8c
je 0x658254
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 8]
jmp 0x65444e
mov ebx, dword [esp + 8]
cmp ebx, dword [esp + 0xc]
jbe 0x65444a
mov ebp, dword [esp + 0x158]
mov edi, dword [esp + 0x2c]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, ebx
push eax
push dword [esp + 0x48]
push ebp
push edi
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
test eax, eax
jne 0x6546c2
lea eax, [ebx - 2]
cmp dword [esp + 0x34], 0
je 0x653f8f
movzx ecx, word [ebx - 2]
and ecx, 0xfc00
cmp ecx, 0xdc00
mov edx, dword [esp + 0x14]
je 0x653f97
mov ebx, eax
jmp 0x653f9a
mov ebx, eax
mov edx, dword [esp + 0x14]
jmp 0x653f9a
add ebx, 0xfffffffc
cmp ebx, dword [esp + 0xc]
ja 0x653f43
jmp 0x654455
mov ebx, dword [esp + 8]
cmp ebx, dword [esp + 0xc]
jbe 0x65444a
mov ebp, dword [esp + 0x158]
mov edi, dword [esp + 0x2c]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, ebx
push eax
push dword [esp + 0x48]
push ebp
push edi
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
test eax, eax
jne 0x6583e9
movzx eax, word [ebx - 2]
and eax, 0xfc00
cmp eax, 0xdc00
je 0x653fff
add ebx, 0xfffffffe
jmp 0x654002
add ebx, 0xfffffffc
mov edx, dword [esp + 0x14]
cmp ebx, dword [esp + 0xc]
ja 0x653fc2
jmp 0x654455
mov ebx, dword [esp + 8]
cmp ebx, dword [esp + 0xc]
jbe 0x65444a
mov ebp, dword [esp + 0x158]
mov edi, dword [esp + 0x2c]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, ebx
push eax
push dword [esp + 0x48]
push ebp
push edi
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
test eax, eax
jne 0x6583e9
movzx eax, word [ebx - 2]
and eax, 0xfc00
cmp eax, 0xdc00
je 0x65406b
add ebx, 0xfffffffe
jmp 0x65406e
add ebx, 0xfffffffc
mov edx, dword [esp + 0x14]
cmp ebx, dword [esp + 0xc]
ja 0x65402e
jmp 0x654455
mov edx, dword [esp + 0x14]
mov ebx, edi
jmp 0x65444e
mov eax, dword [esp + 8]
mov ebx, edi
cmp eax, ebx
je 0x65444a
mov ebx, eax
mov ebp, dword [esp + 0x158]
mov esi, dword [esp + 0x2c]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, ebx
push eax
push dword [esp + 0x48]
push ebp
push esi
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
test eax, eax
jne 0x6583e9
add ebx, 0xfffffffe
cmp edi, ebx
mov edx, dword [esp + 0x14]
jne 0x6540a7
mov ebx, edi
jmp 0x654455
mov eax, dword [esp + 8]
mov ebx, dword [esp + 0xc]
cmp eax, ebx
je 0x65444a
mov ebx, eax
mov ebp, dword [esp + 0x158]
mov edi, dword [esp + 0x2c]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, ebx
push eax
push dword [esp + 0x48]
push ebp
push edi
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
test eax, eax
jne 0x6583e9
add ebx, 0xfffffffe
cmp dword [esp + 0xc], ebx
mov edx, dword [esp + 0x14]
jne 0x654102
jmp 0x65424b
cmp eax, 0x7a
jne 0x654254
mov edx, dword [esp + 0xc]
add edx, 4
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
push eax
push dword [esp + 0x48]
push ebp
push edi
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
test eax, eax
jne 0x6546c2
movzx eax, word [ebx]
cmp eax, 0x81
je 0x65858a
movzx eax, ax
cmp eax, 0x88
jae 0x658640
mov edx, ebx
mov ebx, dword [esp + 8]
jmp 0x654455
mov ebx, dword [esp + 0xc]
cmp dword [esp + 8], ebx
je 0x65444a
mov ebp, dword [esp + 0x158]
mov edi, dword [esp + 0x2c]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 8]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, ebx
push eax
push dword [esp + 0x48]
push ebp
push edi
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
test eax, eax
jne 0x6583e9
add ebx, 0xfffffffe
cmp dword [esp + 0xc], ebx
mov edx, dword [esp + 0x14]
jne 0x6541be
jmp 0x65424b
mov ebx, dword [esp + 0xc]
cmp dword [esp + 8], ebx
je 0x65444a
mov ebp, dword [esp + 0x158]
mov edi, dword [esp + 0x2c]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 8]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, ebx
push eax
push dword [esp + 0x48]
push ebp
push edi
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
test eax, eax
jne 0x6583e9
add ebx, 0xfffffffe
cmp dword [esp + 0xc], ebx
mov edx, dword [esp + 0x14]
jne 0x654216
mov ebx, dword [esp + 0xc]
jmp 0x654455
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
mov edx, ebx
push eax
push dword [esp + 0x48]
push ebp
push edi
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
test eax, eax
je 0x654295
mov ecx, eax
cmp eax, 0xfffffc1b
jne 0x6583f2
cmp dword [ebp + 0xb8], ebx
jne 0x6588f6
movzx eax, word [ebx]
add dword [esp + 0xc], 4
cmp eax, 0x81
je 0x6585dc
mov ebx, dword [esp + 8]
mov edx, dword [esp + 0xc]
jmp 0x654455
mov ebx, dword [esp + 8]
cmp ebx, dword [esp + 0xc]
jbe 0x65444a
mov ebp, dword [esp + 0x158]
mov esi, dword [esp + 0x2c]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov edi, dword [esp + 0x14]
mov ecx, edi
push eax
push dword [esp + 0x48]
push ebp
push esi
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
test eax, eax
jne 0x6546c2
lea ebx, [edi - 2]
cmp dword [esp + 0x34], 0
movzx ecx, word [edi - 2]
je 0x65434b
and ecx, 0xfc00
add edi, 0xfffffffc
cmp ecx, 0xdc00
cmove ebx, edi
movzx ecx, word [ebx]
mov edx, ecx
and edx, 0xfc00
cmp edx, 0xd800
jne 0x65434b
shl ecx, 0xa
and ecx, 0xffc00
movzx edx, word [ebx + 2]
and edx, 0x3ff
lea ecx, [ecx + edx + 0x10000]
mov edx, dword [esp + 0xc]
cmp ebx, edx
jbe 0x65444a
mov edx, ecx
sar edx, 0x1f
shr edx, 0x19
add edx, ecx
mov esi, edx
and esi, 0x7fffff80
sar edx, 7
movzx edx, byte [edx + 0x7dd1f4]
shl edx, 7
sub ecx, esi
add ecx, edx
movzx ecx, word [ecx + ecx + 0x7df3f4]
movzx ecx, byte [ecx*8 + 0x7dbb76]
lea eax, [ebx - 2]
cmp dword [esp + 0x34], 0
movzx edx, word [ebx - 2]
je 0x6543d6
and edx, 0xfc00
cmp edx, 0xdc00
jne 0x6543a9
lea eax, [ebx - 4]
movzx edx, word [eax]
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x6543d6
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [eax + 2]
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
mov esi, edx
sar esi, 0x1f
shr esi, 0x19
add esi, edx
mov edi, esi
and edi, 0x7fffff80
sar esi, 7
movzx esi, byte [esi + 0x7dd1f4]
shl esi, 7
sub edx, edi
add edx, esi
movzx edx, word [edx + edx + 0x7df3f4]
movzx edx, byte [edx*8 + 0x7dbb76]
mov esi, dword [edx*4 + 0x7db100]
bt esi, ecx
jae 0x654428
cmp eax, dword [esp + 0xc]
mov ecx, edx
mov ebx, eax
ja 0x65438a
jmp 0x654552
mov dword [esp + 8], ebx
cmp ebx, dword [esp + 0xc]
mov ebp, dword [esp + 0x158]
mov esi, dword [esp + 0x2c]
mov edx, dword [esp + 0x14]
ja 0x6542d2
jmp 0x654194
mov edx, dword [esp + 0x14]
mov ebp, dword [esp + 0x158]
mov eax, dword [ebp]
mov ecx, dword [ebp + 0x50]
mov dword [esp + 0x34], ecx
lea ecx, [eax + 1]
mov dword [ebp], ecx
mov dword [esp + 4], 0xfffffff8
cmp eax, dword [ebp + 4]
mov dword [esp + 8], ebx
mov dword [esp + 0x14], edx
jb 0x64d25a
jmp case.0x657114.6
mov edi, ecx
cmp eax, 0x7a
jne 0x6545bc
mov edx, edi
add edx, 4
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, ebx
push eax
push dword [esp + 0x48]
push ebp
push esi
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
mov ecx, eax
test eax, eax
mov edx, dword [esp + 0xc]
je 0x654455
jmp 0x6583f2
mov eax, dword [esp + 0xc]
cmp dword [esp + 8], eax
jbe 0x653f19
mov edi, dword [esp + 0x2c]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 8]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, ebx
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push edi
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
test eax, eax
jne 0x6546c2
movzx eax, word [ebx - 2]
and eax, 0xfc00
cmp eax, 0xdc00
je 0x65451f
add ebx, 0xfffffffe
jmp 0x654522
add ebx, 0xfffffffc
mov edx, dword [esp + 0x14]
cmp ebp, 0x11
jne 0x654547
mov ecx, ebx
cmp ecx, dword [esp + 0xc]
jbe 0x654547
movzx eax, word [ecx]
cmp eax, 0xa
jne 0x654547
movzx eax, word [ecx - 2]
cmp eax, 0xd
jne 0x654547
add ebx, 0xfffffffe
cmp ebx, dword [esp + 0xc]
ja 0x6544dc
jmp 0x65444e
mov edx, dword [esp + 0x14]
mov ebx, eax
jmp 0x65444e
cmp eax, 1
mov dword [esp + 4], eax
jne case.0x657114.6
mov eax, dword [esp + 0x158]
mov ecx, dword [eax + 0x90]
movzx edx, word [edi]
lea eax, [edi + 2]
cmp edx, 0x92
cmovne eax, edi
movzx edx, word [eax + 2]
movzx esi, word [eax + edx*2]
lea eax, [eax + edx*2]
cmp esi, 0x77
je 0x654586
mov esi, dword [esp + 0x2c]
cmp ecx, esi
movzx edx, bp
cmovge esi, ecx
mov dword [esp + 0x2c], esi
movzx ecx, byte [edx + 0x7daf74]
mov edx, 2
sub edx, ecx
lea edi, [eax + edx*2]
jmp 0x653efd
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, ebx
mov edx, dword [esp + 0x18]
push eax
push dword [esp + 0x48]
push ebp
push esi
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
mov ecx, eax
test eax, eax
jne 0x6583f2
add edi, 4
mov edx, edi
jmp 0x65444e
mov eax, dword [esp + 0xc]
cmp dword [esp + 8], eax
je 0x65466a
mov edi, dword [esp + 0x2c]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 8]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, ebx
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push edi
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
test eax, eax
jne 0x6546c2
mov esi, ebx
lea ebx, [ebx - 2]
cmp ebp, 0x11
mov edx, dword [esp + 0x14]
jne 0x654662
cmp ebx, dword [esp + 0xc]
jbe 0x654662
movzx ecx, word [ebx]
cmp ecx, 0xa
jne 0x654662
movzx ecx, word [esi - 4]
cmp ecx, 0xd
jne 0x654662
add esi, 0xfffffffc
mov ebx, esi
cmp ebx, dword [esp + 0xc]
jne 0x65460a
jmp 0x65466e
mov edx, dword [esp + 0x14]
mov ebp, dword [esp + 0x158]
mov ebx, dword [esp + 0xc]
jmp 0x654455
mov eax, dword [esp + 0x160]
test eax, eax
je 0x6546a4
lea eax, [esp + 0x160]
sub eax, ecx
mov ecx, eax
neg ecx
test eax, eax
cmovle ecx, eax
mov dword [esp + 4], ecx
jmp case.0x657114.6
sub esp, 0xc
lea ecx, [esp + 0x16c]
xor edx, edx
push 1
push 0
push 0
push 0
push 0
call fcn.0064d1b0
add esp, 0x20
mov dword [esp + 4], eax
jmp case.0x657114.6
cmp ebx, dword [esp + 0x14]
jb 0x6588df
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x6588df
mov ecx, dword [esp + 0x24]
cmp ebx, dword [ecx]
jbe 0x6588df
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x6588df
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x6588df
mov ecx, dword [esp + 0x24]
cmp ebp, dword [ecx]
jbe 0x6588df
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x6588df
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x6588df
mov ecx, dword [esp + 0x24]
cmp ebp, dword [ecx]
jbe 0x6588df
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x6588df
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x6588df
mov ecx, dword [esp + 0x24]
cmp ebp, dword [ecx]
jbe 0x6588df
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x6588df
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x6588df
mov ecx, dword [esp + 0x24]
cmp edx, dword [ecx]
jbe 0x6588df
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x6588df
mov dword [esp + 4], 0xffffffeb
jmp case.0x657114.6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x6588df
mov ecx, dword [esp + 0x24]
cmp ebp, dword [ecx]
jbe 0x6588df
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x6588df
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x6588df
mov ecx, dword [esp + 0x24]
cmp ebp, dword [ecx]
jbe 0x6588df
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x6588df
mov edi, edx
mov edx, dword [esp + 8]
cmp edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x158]
jne 0x6548a2
movzx eax, di
cmp eax, 0x9f
je 0x6548a2
cmp dword [ecx + 0xa8], 0
je 0x6550a3
mov dword [ecx + 0x84], edx
mov eax, dword [esp + 0x2c]
mov dword [ecx + 0x90], eax
mov eax, dword [esp + 0x30]
mov dword [ecx + 0x80], eax
test di, di
mov eax, 1
mov ecx, 0xfffffc19
jmp 0x6559ba
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x6588df
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x6588df
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x6588df
cmp eax, 0xfffffc1b
mov dword [esp + 4], eax
jne case.0x657114.6
movzx eax, word [ebx]
cmp eax, 0x81
jne 0x6556fc
mov esi, dword [esp + 0x158]
jmp 0x6559ad
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x6588df
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x6588df
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x6588df
cmp eax, 0xfffffffe
jne 0x65497e
mov eax, dword [esp + 0x18]
mov ebp, dword [eax]
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x654ea6
mov ecx, dword [esp + 0x18]
cmp ebp, dword [ecx]
jb 0x654ea6
mov ecx, dword [esp + 0x24]
cmp ebp, dword [ecx]
jbe 0x654ea6
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x654ea6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x654ea6
mov ecx, dword [esp + 0x24]
cmp edi, dword [ecx]
jbe 0x654ea6
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x654ea6
mov eax, dword [esp + 8]
mov dword [ebp + 0x84], eax
mov dword [ebp + 0x90], edi
mov eax, dword [esp + 0x30]
mov dword [ebp + 0x80], eax
mov dword [esp + 4], 1
jmp case.0x657114.6
lea edi, [ebp + 4]
mov ebx, dword [esp + 0x158]
mov dword [ebx + 0xb4], edi
mov dword [ebx + 0xb0], 0
movzx eax, byte [edx + 0x7daf74]
lea eax, [ebp + eax*2]
movzx ecx, word [ebp + 2]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
push eax
push dword [esp + 0x48]
push ebx
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
cmp eax, 1
je 0x654a94
cmp eax, 0xfffffc1f
je 0x654ab0
cmp eax, 0xfffffc19
mov ebx, dword [esp + 0x158]
jne 0x6546c2
cmp dword [ebx + 0xb0], 0
mov dword [esp + 4], eax
je 0x6559c6
cmp eax, 0xfffffc1f
jne case.0x657114.6
sub esp, 8
mov eax, dword [esp + 0x160]
push dword [eax + 0x80]
push edi
call fcn.0065a3d0
add esp, 0x10
mov dword [esp + 4], 0xfffffc1f
test eax, eax
jne case.0x657114.6
jmp 0x654b1d
movzx eax, byte [edx + 0x7daf74]
lea edx, [ebp + eax*2]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
jne case.0x657114.6
mov eax, dword [esp + 0x158]
mov ecx, dword [esp + 8]
mov dword [eax + 0x80], ecx
mov dword [esp + 4], 0xfffffc1e
jmp case.0x657114.6
lea edi, [ebp + 4]
mov ebx, dword [esp + 0x158]
mov dword [ebx + 0xb4], edi
mov dword [ebx + 0xb0], 0
movzx eax, byte [edx + 0x7daf74]
lea eax, [ebp + eax*2]
movzx ecx, word [ebp + 2]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
push eax
push dword [esp + 0x48]
push ebx
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
cmp eax, 1
je 0x654bab
test eax, eax
je 0x654d36
cmp eax, 0xfffffc19
mov ebx, dword [esp + 0x158]
jne 0x6546c2
cmp dword [ebx + 0xb0], 0
jne 0x654bba
mov dword [ebx + 0xb0], edi
test eax, eax
mov dword [esp + 4], eax
jne case.0x657114.6
jmp 0x654d36
movzx eax, byte [edx + 0x7daf74]
lea edx, [ebp + eax*2]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
test eax, eax
mov ecx, 0xfffffc1c
jmp 0x654c54
mov dword [esp + 4], 0xfffffffb
jmp case.0x657114.6
movzx eax, byte [edx + 0x7daf74]
lea edx, [ebp + eax*2]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
test eax, eax
mov ecx, 0xfffffc1d
cmovne ecx, eax
mov dword [esp + 4], ecx
jmp case.0x657114.6
lea edi, [ebp + 4]
mov ebx, dword [esp + 0x158]
mov dword [ebx + 0xb4], edi
mov dword [ebx + 0xb0], 0
movzx eax, byte [edx + 0x7daf74]
lea eax, [ebp + eax*2]
movzx ecx, word [ebp + 2]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
push eax
push dword [esp + 0x48]
push ebx
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
cmp eax, 1
je 0x654ccc
test eax, eax
je 0x654ce7
cmp eax, 0xfffffc19
mov ebx, dword [esp + 0x158]
jne 0x6546c2
cmp dword [ebx + 0xb0], 0
jne 0x654cdb
mov dword [ebx + 0xb0], edi
test eax, eax
mov dword [esp + 4], eax
jne case.0x657114.6
mov dword [esp + 4], 0xfffffc1d
jmp case.0x657114.6
movzx eax, byte [edx + 0x7daf74]
lea edx, [ebp + eax*2]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
jne case.0x657114.6
mov eax, dword [esp + 0x158]
mov dword [eax + 0x80], ebp
mov dword [esp + 4], 0xfffffc20
jmp case.0x657114.6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x654ea6
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x654ea6
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x654ea6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x6588df
mov ecx, dword [esp + 0x24]
cmp esi, dword [ecx]
jbe 0x6588df
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x6588df
mov dword [esp + 4], 0xfffffff4
jmp case.0x657114.6
mov dword [esp + 4], 0xffffffe6
jmp case.0x657114.6
mov eax, dword [esp + 0x64]
lea ecx, [esp + 0xc4]
cmp eax, ecx
je 0x654ea6
sub esp, 0xc
push eax
jmp 0x654e44
mov eax, dword [esp + 0x64]
lea ecx, [esp + 0xc4]
cmp eax, ecx
mov dword [esp + 4], esi
je case.0x657114.6
sub esp, 0xc
push eax
call dword [0x7d97ac]
add esp, 0x10
jmp case.0x657114.6
mov ecx, dword [esp + 0x158]
mov dword [ecx + 0xa8], eax
mov eax, dword [esp + 0x64]
lea ecx, [esp + 0xc4]
cmp eax, ecx
je 0x654ea6
sub esp, 0xc
push eax
call dword [0x7d97ac]
add esp, 0x10
mov dword [esp + 4], 0
jmp case.0x657114.6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x654ea6
mov ecx, dword [esp + 0x24]
cmp edi, dword [ecx]
jbe 0x654ea6
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x654ea6
cmp eax, 1
mov dword [esp + 4], eax
je 0x654ea6
jmp case.0x657114.6
cmp eax, 0xfffffc19
mov dword [esp + 4], eax
jne case.0x657114.6
mov dword [esp + 4], 0
jmp case.0x657114.6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x6588df
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x6588df
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x6588df
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x6588df
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x6588df
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x6588df
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x6588df
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x6588df
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x6588df
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x6588df
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x6588df
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x6588df
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x6588df
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x6588df
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x6588df
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x6588df
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x6588df
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x6588df
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x6588df
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x6588df
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x6588df
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x6588df
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x6588df
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x6588df
mov dword [esp + 4], 0
cmp dword [ecx + 0x60], 0
jne case.0x657114.6
mov ecx, dword [esp + 0x158]
cmp dword [ecx + 0x64], 0
mov edx, dword [esp + 8]
je 0x6548a2
mov eax, dword [ecx + 0x98]
add eax, eax
add eax, dword [ecx + 0x78]
cmp dword [esp + 0x30], eax
jne 0x6548a2
jmp 0x654ea6
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, ebx
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.0064d1b0
mov ecx, dword [esp + 0x48]
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
jne case.0x657114.6
mov eax, ecx
neg eax
mov dword [esp + 0x34], eax
lea eax, [ecx + ecx]
mov dword [esp + 8], eax
dec dword [esp + 0x10]
mov eax, dword [esp + 0x10]
inc eax
mov dword [esp + 0x10], eax
cmp eax, dword [esp + 0x40]
jge 0x65805d
mov eax, dword [esp + 0x18]
mov esi, dword [eax]
lea eax, [esi - 4]
cmp ebx, eax
mov edi, dword [esp + 0x158]
ja 0x655162
mov eax, dword [ebx]
cmp eax, dword [ebp]
je 0x6551dc
test ecx, ecx
jle 0x6566b9
mov eax, dword [esp + 0x34]
lea eax, [esi + eax*2]
cmp ebx, eax
ja 0x6566b9
sub esp, 4
push dword [esp + 0xc]
lea eax, [esp + 0xc0]
push eax
push ebx
call sub.msvcrt.dll_memcmp
add esp, 0x10
test eax, eax
mov eax, dword [esp + 0x28]
jne 0x6566b9
lea ebx, [ebx + eax*2]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, ebx
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push edi
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.0064d1b0
mov ecx, dword [esp + 0x48]
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
je 0x655134
jmp case.0x657114.6
mov eax, 2
jmp 0x65519d
mov eax, dword [esp + 0x50]
test eax, eax
mov esi, dword [esp + 0x158]
mov edi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x40]
js 0x6559d1
cmp eax, 0xa
mov edx, dword [esp + 0x14]
ja case.default.0x651f77
jmp dword [eax*4 + 0x658e34]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
push eax
push dword [esp + 0x48]
push esi
push edi
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov eax, dword [esp + 0x28]
jne case.0x657114.6
dec dword [esp + 0x10]
mov ebp, 0x80001f
mov edx, dword [esp + 0x10]
inc edx
cmp edx, eax
jge 0x65805d
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0xc]
cmp ecx, dword [eax]
mov esi, dword [esp + 0x158]
jae 0x658477
mov dword [esp + 0x10], edx
lea edi, [ecx + 2]
movzx eax, word [ecx]
cmp dword [esp + 0x34], 0
je 0x6552b0
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x6552b0
shl eax, 0xa
and eax, 0xffc00
movzx edx, word [ecx + 2]
add ecx, 4
and edx, 0x3ff
lea eax, [eax + edx + 0x10000]
jmp 0x6552b2
mov ecx, edi
mov edx, dword [esp + 0x14]
cmp eax, 0x180d
jle 0x6552cf
lea edi, [eax - 0x2000]
cmp edi, 0x5f
ja case.default.0x6552c8
jmp dword [edi*4 + 0x658e60]
cmp eax, 0x84
jg 0x655328
lea edi, [eax - 9]
cmp edi, 0x17
ja case.0x6552c8.8203
bt ebp, edi
jae case.0x6552c8.8203
cmp dword [esp + 0x44], 0
jne 0x65805d
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov dword [esp + 0x18], ecx
push eax
push dword [esp + 0x48]
push esi
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov eax, dword [esp + 0x28]
je 0x65524d
jmp case.0x657114.6
cmp eax, 0x85
je case.0x6552c8.8192
cmp eax, 0xa0
je case.0x6552c8.8192
cmp eax, 0x1680
je case.0x6552c8.8192
jmp case.0x6552c8.8203
cmp eax, 0x3000
je case.0x6552c8.8192
cmp eax, 0x180e
je case.0x6552c8.8192
mov edi, eax
sar edi, 0x1f
shr edi, 0x19
add edi, eax
mov edx, edi
and edx, 0x7fffff80
sar edi, 7
movzx edi, byte [edi + 0x7dd1f4]
shl edi, 7
sub eax, edx
mov edx, dword [esp + 0x14]
add eax, edi
movzx eax, word [eax + eax + 0x7df3f4]
movzx eax, byte [eax*8 + 0x7dbb75]
xor ebx, ebx
cmp dword [eax*4 + 0x7db088], 6
sete bl
cmp dword [esp + 0x44], ebx
jne 0x6552ee
jmp 0x65805d
mov dword [esp + 4], 0xfffffff2
jmp case.0x657114.6
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
cmp dword [esp + 0x34], 0
mov dword [esp + 4], eax
je 0x6554c5
test eax, eax
jne case.0x657114.6
dec edi
inc edi
cmp edi, dword [esp + 0x40]
jge 0x65805d
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0xc]
cmp edx, dword [eax]
mov esi, dword [esp + 0x158]
jae 0x6575e5
movzx eax, word [edx]
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
mov ebx, dword [esp + 0x28]
jne 0x65544f
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [edx + 2]
add edx, 4
mov dword [esp + 0xc], edx
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x655456
add edx, 2
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x14]
cmp ebx, eax
je 0x65805d
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
push eax
push dword [esp + 0x48]
push esi
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
je 0x6553f4
jmp case.0x657114.6
add ecx, 2
inc edi
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov dword [esp + 0x18], ecx
push eax
push dword [esp + 0x48]
push esi
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
jne case.0x657114.6
cmp edi, dword [esp + 0x40]
jge 0x65805d
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0xc]
cmp ecx, dword [eax]
mov esi, dword [esp + 0x158]
mov edx, dword [esp + 0x28]
jae 0x658295
movzx eax, word [ecx]
cmp edx, eax
mov edx, dword [esp + 0x14]
jne 0x655498
jmp 0x65805d
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
cmp dword [esp + 0x34], 0
mov dword [esp + 4], eax
je 0x655640
test eax, eax
jne case.0x657114.6
dec edi
inc edi
cmp edi, dword [esp + 0x40]
jge 0x65805d
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0xc]
cmp edx, dword [eax]
jae 0x657623
movzx eax, word [edx]
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
mov ebx, dword [esp + 0x28]
jne 0x6555a4
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [edx + 2]
add edx, 4
mov dword [esp + 0xc], edx
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
cmp ebx, eax
jne 0x6555b3
jmp 0x658188
add edx, 2
mov dword [esp + 0xc], edx
cmp ebx, eax
je 0x658188
cmp dword [esp + 0x10], eax
mov dword [esp + 4], 0
je case.0x657114.6
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
je 0x655549
jmp case.0x657114.6
mov ecx, dword [esp + 0xc]
add ecx, 2
inc edi
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov dword [esp + 0x18], ecx
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
jne case.0x657114.6
cmp edi, dword [esp + 0x40]
jge 0x65805d
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0xc]
cmp ecx, dword [eax]
mov edx, dword [esp + 0x28]
jae 0x6582d3
movzx eax, word [ecx]
cmp edx, eax
je 0x658188
cmp dword [esp + 0x10], eax
mov dword [esp + 4], 0
jne 0x655605
jmp case.0x657114.6
mov eax, dword [esp + 0x30]
mov dword [ebp + 0x80], eax
mov eax, dword [esp + 8]
mov dword [ebp + 0x84], eax
mov dword [ebp + 0x90], edi
mov dword [esp + 4], 0xfffffc1a
jmp case.0x657114.6
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
jne case.0x657114.6
mov eax, dword [esp + 0x158]
mov dword [eax + 0xb8], ebx
mov dword [esp + 4], 0xfffffc1b
jmp case.0x657114.6
movzx eax, ax
cmp eax, 0x77
movzx eax, word [ebx + 2]
mov esi, dword [esp + 0x158]
jne 0x6559a5
lea ecx, [ebx + eax*2]
movzx edx, word [ebx + eax*2]
cmp edx, 0x77
movzx eax, word [ebx + eax*2 + 2]
mov ebx, ecx
je 0x655713
jmp 0x6559a7
mov dword [esp + 4], 1
jmp case.0x657114.6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x654ea6
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x654ea6
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x654ea6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x6588df
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x6588df
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x6588df
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x654ea6
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x654ea6
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x654ea6
mov eax, dword [esp + 8]
mov dword [ebp + 0x84], eax
jmp 0x654a0e
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, edi
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
jmp 0x65584a
add ecx, 2
inc dword [esp + 0x10]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov edi, ecx
push eax
push dword [esp + 0x48]
push esi
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
jne case.0x657114.6
mov eax, dword [esp + 0x10]
cmp eax, dword [esp + 0x40]
jge 0x65805d
mov eax, dword [esp + 0x18]
mov ecx, edi
cmp ecx, dword [eax]
mov esi, dword [esp + 0x158]
jae 0x6581dc
cmp bx, word [ecx]
mov edx, dword [esp + 0x14]
je 0x655828
jmp 0x65805d
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
jmp 0x6558e0
mov ecx, dword [esp + 0xc]
add ecx, 2
inc dword [esp + 0x10]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov dword [esp + 0x18], ecx
push eax
push dword [esp + 0x48]
push esi
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
jne case.0x657114.6
mov eax, dword [esp + 0x10]
cmp eax, dword [esp + 0x40]
jge 0x65805d
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0xc]
cmp ecx, dword [eax]
mov esi, dword [esp + 0x158]
jae 0x658216
movzx eax, word [ecx]
cmp bx, ax
mov edx, dword [esp + 0x14]
je 0x6558b8
cmp edi, eax
je 0x6558b8
jmp 0x65805d
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x654ea6
mov ecx, dword [esp + 8]
lea ecx, [ecx + 2]
mov edx, dword [esp + 0x18]
cmp ecx, dword [edx]
jb 0x654ea6
mov ecx, dword [esp + 0x158]
cmp dword [ecx + 0x18], 0
jne 0x654ea6
mov ecx, dword [esp + 0x48]
cmp dword [ecx], 2
jne 0x654ea6
mov ecx, dword [esp + 8]
movzx ecx, word [ecx]
mov edx, dword [esp + 0x158]
cmp cx, word [edx + 0x34]
jne 0x654ea6
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x654ea6
mov ecx, ebx
add eax, eax
sub ecx, eax
mov ebx, ecx
xor eax, eax
cmp dword [esi + 0xb8], ebx
mov ecx, 0xfffffc1b
cmove ecx, eax
mov dword [esp + 4], ecx
jmp case.0x657114.6
mov dword [ebx + 0xb0], edi
jmp case.0x657114.6
movzx ebp, bx
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push esi
push edi
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
mov dword [esp + 8], ebp
cmp ebp, 0x16
mov dword [esp + 4], eax
jne 0x656146
test eax, eax
mov ecx, dword [esp + 0x28]
jne case.0x657114.6
cmp dword [esp + 0x10], ecx
jge 0x658188
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
cmp ecx, eax
mov ebp, dword [esp + 0x158]
mov edi, dword [esp + 0x2c]
jae 0x658311
lea edx, [ecx + 2]
movzx ecx, word [ecx]
cmp dword [esp + 0x34], 0
je 0x655a7e
mov esi, ecx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x655a7e
shl ecx, 0xa
and ecx, 0xffc00
mov esi, dword [esp + 0xc]
movzx edx, word [esi + 2]
add esi, 4
and edx, 0x3ff
lea ecx, [ecx + edx + 0x10000]
jmp 0x655a80
mov esi, edx
mov dword [esp + 0xc], esi
cmp esi, eax
jae 0x655b71
mov edx, ecx
sar edx, 0x1f
shr edx, 0x19
add edx, ecx
mov esi, edx
and esi, 0x7fffff80
sar edx, 7
movzx edx, byte [edx + 0x7dd1f4]
shl edx, 7
sub ecx, esi
add ecx, edx
movzx ecx, word [ecx + ecx + 0x7df3f4]
movzx edx, byte [ecx*8 + 0x7dbb76]
mov ecx, dword [esp + 0xc]
movzx ecx, word [ecx]
cmp dword [esp + 0x34], 0
mov esi, 1
je 0x655b05
mov edi, ecx
and edi, 0xfc00
cmp edi, 0xd800
jne 0x655b05
shl ecx, 0xa
and ecx, 0xffc00
mov esi, dword [esp + 0xc]
movzx esi, word [esi + 2]
and esi, 0x3ff
lea ecx, [ecx + esi + 0x10000]
mov esi, 2
mov edi, ecx
sar edi, 0x1f
shr edi, 0x19
add edi, ecx
mov ebx, edi
and ebx, 0x7fffff80
sar edi, 7
movzx edi, byte [edi + 0x7dd1f4]
shl edi, 7
sub ecx, ebx
add ecx, edi
movzx ecx, word [ecx + ecx + 0x7df3f4]
movzx ecx, byte [ecx*8 + 0x7dbb76]
mov ebx, 1
shl ebx, cl
and ebx, dword [edx*4 + 0x7db100]
je 0x655b51
mov edx, dword [esp + 0xc]
lea edx, [edx + esi*2]
jmp 0x655b55
mov edx, dword [esp + 0xc]
mov dword [esp + 0xc], edx
cmp edx, eax
jae 0x655b6d
test ebx, ebx
mov edx, ecx
mov edi, dword [esp + 0x2c]
jne 0x655abf
jmp 0x655b71
mov edi, dword [esp + 0x2c]
cmp dword [esp + 0xc], eax
jb 0x655ba0
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x655ba0
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x655ba0
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
jg 0x65752a
inc dword [esp + 0x10]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push ebp
push edi
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov ecx, dword [esp + 0x28]
je 0x655a17
jmp case.0x657114.6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x6588df
mov ecx, dword [esp + 0x24]
cmp esi, dword [ecx]
jbe 0x6588df
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x6588df
mov dword [esp + 4], 0xfffffff4
jmp case.0x657114.6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x654ea6
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x654ea6
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x654ea6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x654ea6
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x654ea6
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x654ea6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x654ea6
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x654ea6
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x654ea6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x654ea6
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x654ea6
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x654ea6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x654ea6
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x654ea6
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x654ea6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x654ea6
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x654ea6
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x654ea6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x654ea6
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x654ea6
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x654ea6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x654ea6
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x654ea6
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x654ea6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x654ea6
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x654ea6
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x654ea6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x654ea6
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x654ea6
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x654ea6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x654ea6
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x654ea6
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x654ea6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x654ea6
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x654ea6
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x654ea6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x654ea6
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x654ea6
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x654ea6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x654ea6
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x654ea6
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x654ea6
lea eax, [ebp + eax*2]
movzx ecx, word [ebp + 2]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
push eax
push dword [esp + 0x48]
push esi
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
jne case.0x657114.6
add ebp, 4
mov eax, dword [esp + 0x158]
mov dword [eax + 0x80], ebp
mov dword [esp + 4], 0xfffffc1f
jmp case.0x657114.6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x6588df
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x6588df
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x6588df
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x6588df
mov ecx, dword [esp + 0x24]
cmp edi, dword [ecx]
jbe 0x6588df
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x6588df
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x6588df
mov ecx, dword [esp + 0x24]
cmp edi, dword [ecx]
jbe 0x6588df
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x6588df
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x654ea6
mov ecx, dword [esp + 8]
lea ecx, [ecx + 2]
mov edx, dword [esp + 0x18]
cmp ecx, dword [edx]
jb 0x654ea6
mov ecx, dword [esp + 0x158]
cmp dword [ecx + 0x18], 0
jne 0x654ea6
mov ecx, dword [esp + 0x48]
cmp dword [ecx], 2
jne 0x654ea6
mov ecx, dword [esp + 8]
movzx ecx, word [ecx]
mov edx, dword [esp + 0x158]
cmp cx, word [edx + 0x34]
jne 0x654ea6
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x654ea6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x6588df
mov ecx, dword [esp + 0x24]
cmp ebx, dword [ecx]
jbe 0x6588df
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x6588df
cmp dword [esp + 0x34], 0
mov ecx, dword [esp + 0x28]
je 0x657092
test eax, eax
jne case.0x657114.6
dec dword [esp + 0x10]
lea eax, [ebx - 6]
movzx ebx, ax
mov edx, dword [esp + 0x10]
inc edx
cmp edx, ecx
jge 0x658188
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov edi, dword [esp + 0xc]
cmp edi, eax
mov esi, dword [esp + 0x158]
jae 0x65854c
cmp dword [esp + 8], 0xc
mov dword [esp + 0x10], edx
jne 0x6561f8
mov ecx, dword [esi + 0x18]
test ecx, ecx
je 0x6561be
sub esp, 0xc
push dword [esp + 0x40]
push dword [esp + 0x58]
push eax
push ecx
push edi
call fcn.0065a200
add esp, 0x20
test eax, eax
je 0x6561f8
jmp 0x658188
mov ecx, dword [esp + 0x48]
mov ecx, dword [ecx]
lea edx, [ecx + ecx]
sub eax, edx
cmp edi, eax
ja 0x6561f8
movzx eax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x6561f8
cmp ecx, 1
je 0x658188
mov edi, dword [esp + 0xc]
movzx eax, word [edi + 2]
mov ecx, dword [esp + 0x158]
cmp ax, word [ecx + 0x36]
je 0x658188
movzx eax, word [edi]
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x656229
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [edi + 2]
add edi, 4
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x65622c
add edi, 2
mov dword [esp + 0xc], edi
cmp ebx, 0xf
ja case.default.0x657114
mov dword [esp + 4], 0xfffffff2
jmp dword [ebx*4 + 0x658db4]
cmp eax, 0xff
ja case.0x656241.7
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 4
je case.0x656241.7
jmp 0x658188
cmp eax, 0xff
ja 0x658188
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 4
jne case.0x656241.7
jmp 0x658188
cmp eax, 0xff
ja case.0x656241.7
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 1
je case.0x656241.7
jmp 0x658188
cmp eax, 0xff
ja 0x658188
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 1
jne case.0x656241.7
jmp 0x658188
cmp eax, 0xff
ja case.0x656241.7
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 0x10
je case.0x656241.7
jmp 0x658188
cmp eax, 0xff
ja 0x658188
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 0x10
jne case.0x656241.7
jmp 0x658188
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx]
test ecx, ecx
je case.0x656241.7
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0xc]
cmp esi, dword [edx]
jb case.0x656241.7
mov edx, dword [esp + 0x158]
cmp dword [edx + 0x18], 0
jne case.0x656241.7
mov edx, dword [esp + 0x48]
cmp dword [edx], 2
jne case.0x656241.7
mov edx, dword [esp + 0x158]
movzx edx, word [edx + 0x34]
cmp eax, edx
jne case.0x656241.7
mov eax, dword [esp + 0x20]
mov dword [eax], 1
cmp ecx, 1
jle case.0x656241.7
jmp 0x65752a
cmp eax, 0xc
jle 0x6564c6
lea ecx, [eax - 0x2028]
cmp ecx, 2
jb 0x6564d2
cmp eax, 0x85
je 0x6564d2
cmp eax, 0xd
mov dword [esp + 4], 0
jne case.0x657114.6
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0xc]
cmp ecx, dword [eax]
jae case.0x656241.7
mov eax, dword [esp + 0xc]
movzx eax, word [eax]
cmp eax, 0xa
jne case.0x656241.7
add dword [esp + 0xc], 2
jmp case.0x656241.7
cmp eax, 0x1fff
jle 0x65648d
cmp eax, 0x202e
jg 0x656508
add eax, 0xffffe000
cmp eax, 0xb
mov dword [esp + 4], 0
jae case.0x656241.7
jmp case.0x657114.6
cmp eax, 0x1fff
jle 0x6564e8
cmp eax, 0x202e
jg 0x65654d
add eax, 0xffffe000
cmp eax, 0xb
mov dword [esp + 4], 0
jb case.0x656241.7
jmp case.0x657114.6
lea ecx, [eax - 0xa]
cmp ecx, 4
jb 0x658188
lea ecx, [eax - 0x2028]
cmp ecx, 2
jb 0x658188
cmp eax, 0x85
mov dword [esp + 4], 0
jne case.0x656241.7
jmp case.0x657114.6
lea ecx, [eax - 0xa]
cmp ecx, 4
jb case.0x656241.7
lea ecx, [eax - 0x2028]
cmp ecx, 2
jb case.0x656241.7
cmp eax, 0x85
je case.0x656241.7
jmp 0x658188
cmp eax, 0x9f
jle 0x656532
cmp eax, 0xa0
je 0x658188
cmp eax, 0x1680
je 0x658188
cmp eax, 0x180e
mov dword [esp + 4], 0
jne case.0x656241.7
jmp case.0x657114.6
lea ecx, [eax - 0xb]
cmp ecx, 2
jae 0x656562
mov eax, dword [esp + 0x158]
cmp dword [eax + 0x6c], 0
je case.0x656241.7
jmp 0x658188
cmp eax, 0x9f
jle 0x656567
cmp eax, 0xa0
je case.0x656241.7
cmp eax, 0x1680
je case.0x656241.7
cmp eax, 0x180e
jmp 0x65656f
cmp eax, 0x202f
je 0x658188
cmp eax, 0x205f
je 0x658188
cmp eax, 0x3000
mov dword [esp + 4], 0
jne case.0x656241.7
jmp case.0x657114.6
cmp eax, 9
je 0x658188
cmp eax, 0x20
mov dword [esp + 4], 0
jne case.0x656241.7
jmp case.0x657114.6
cmp eax, 0x202f
je case.0x656241.7
cmp eax, 0x205f
je case.0x656241.7
cmp eax, 0x3000
jmp 0x65656f
cmp eax, 0xa
jmp 0x65656f
cmp eax, 9
je case.0x656241.7
cmp eax, 0x20
mov dword [esp + 4], 0
jne case.0x657114.6
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.0064d1b0
mov ecx, dword [esp + 0x48]
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
je 0x656167
jmp case.0x657114.6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x6588df
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x6588df
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x6588df
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x6588df
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x6588df
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x6588df
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x6588df
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x6588df
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x6588df
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x6588df
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x6588df
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x6588df
cmp ebx, esi
jb 0x654ea6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x654ea6
mov ecx, dword [esp + 0x24]
cmp ebx, dword [ecx]
jbe 0x654ea6
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x654ea6
cmp edi, edx
jb 0x654ea6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x654ea6
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x654ea6
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x654ea6
cmp byte [esp + 4], 0
je 0x656f52
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
jne case.0x657114.6
dec edi
inc edi
cmp edi, dword [esp + 0x28]
jge 0x65805d
sub esp, 4
mov ecx, ebx
mov ebp, dword [esp + 0xc]
mov edx, ebp
push dword [esp + 0x10]
mov esi, dword [esp + 0x160]
push esi
push dword [esp + 0x1c]
call fcn.00659400
add esp, 0x10
test eax, eax
js 0x6584b5
lea ebp, [ebp + eax*2]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov dword [esp + 0x14], ebp
mov ecx, ebp
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push esi
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
je 0x656788
jmp case.0x657114.6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x6588df
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x6588df
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x6588df
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, edi
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
cmp dword [esp + 0x34], 0
mov dword [esp + 4], eax
je 0x657661
test eax, eax
mov ecx, dword [esp + 0x28]
jne case.0x657114.6
dec ebx
movzx esi, cx
inc ebx
cmp ebx, dword [esp + 0x10]
jge 0x65805d
mov eax, dword [esp + 0x18]
cmp edi, dword [eax]
jae 0x658512
movzx eax, word [edi]
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x6568b3
add edi, 4
jmp 0x6568bd
add edi, 2
cmp eax, 0x100
jb 0x6568cb
mov edx, dword [esp + 0x14]
cmp esi, 0x6e
jne 0x6568e7
jmp 0x65805d
mov ecx, eax
shr ecx, 3
movzx ecx, byte [ebp + ecx + 2]
and al, 7
movzx eax, al
bt ecx, eax
mov edx, dword [esp + 0x14]
jae 0x65805d
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, edi
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
je 0x656884
jmp case.0x657114.6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x6588df
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x6588df
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x6588df
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x6588df
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x6588df
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x6588df
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x6588df
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x6588df
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x6588df
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x6588df
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x6588df
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x6588df
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x6588df
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x6588df
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x6588df
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x6588df
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x6588df
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x6588df
mov dword [esp + 0xc], ebp
mov eax, dword [esp + 0x158]
mov ecx, eax
mov eax, dword [ecx + 0xc]
mov ecx, dword [ecx + 0x10]
mov ebp, dword [eax + ebx*4]
mov dword [esp + 0x10], ebp
mov ebp, ebx
or ebp, 1
mov dword [esp + 0x18], ebp
mov ebp, dword [eax + ebp*4]
mov dword [esp + 0x1c], ebp
sub ecx, edi
mov ebp, dword [eax + ecx*4]
mov dword [esp + 0x44], ebp
mov esi, dword [esp + 8]
mov dword [esp + 0x28], edx
mov edx, esi
mov ebp, dword [esp + 0x158]
sub edx, dword [ebp + 0x78]
sar edx, 1
mov ebp, dword [esp + 0x158]
mov ebp, dword [ebp + 0x94]
mov dword [esp + 0x14], ebp
mov ebp, dword [esp + 0x158]
mov ebp, dword [ebp + 0xb0]
mov dword [esp + 4], ebp
mov dword [eax + ecx*4], edx
mov edx, dword [esp + 0x28]
movzx eax, dx
mov dword [esp + 0x34], eax
mov ecx, esi
cmp dword [esp + 0x34], 0x88
jb 0x656b2b
mov eax, dword [esp + 0x158]
mov dword [eax + 0x9c], 2
movzx eax, byte [edx + 0x7daf74]
mov edx, dword [esp + 0xc]
mov esi, edx
lea edx, [edx + eax*2]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
push eax
push dword [esp + 0x48]
mov ebp, dword [esp + 0x16c]
push ebp
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
cmp eax, 0xfffffc20
je 0x656b80
test eax, eax
jne 0x658195
mov edx, dword [esp + 0xc]
mov ax, word [edx + 2]
mov esi, dword [esp + 8]
jmp 0x656bad
movzx eax, word [esi + 2]
lea ecx, [esi + eax*2]
cmp dword [ebp + 0x80], ecx
jae 0x656beb
movzx edx, word [esi]
cmp edx, 0x77
mov esi, dword [esp + 8]
jne 0x656ba1
mov edx, dword [esp + 0xc]
jmp 0x656bad
movzx ecx, word [ecx]
cmp ecx, 0x77
mov edx, dword [esp + 0xc]
jne 0x656beb
mov ecx, dword [esp + 0x158]
mov ebp, dword [esp + 0x14]
mov dword [ecx + 0x94], ebp
movzx eax, ax
mov ebp, dword [esp + 4]
mov dword [ecx + 0xb0], ebp
movzx ecx, word [edx + eax*2]
lea eax, [edx + eax*2]
mov edx, 0x77
cmp ecx, 0x77
mov dword [esp + 0xc], eax
je 0x656b0e
xor esi, esi
jmp 0x6581a9
mov dword [esp + 4], 0xfffffc20
jmp case.0x657114.6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x6588df
mov ecx, dword [esp + 0x24]
cmp ebx, dword [ecx]
jbe 0x6588df
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x6588df
cmp eax, 0xfffffffe
jne 0x656c41
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x654ea6
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jb 0x654ea6
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x654ea6
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x654ea6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x6588df
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x6588df
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x6588df
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x6588df
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x6588df
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x6588df
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x6588df
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x6588df
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x6588df
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x6588df
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x6588df
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x6588df
mov dword [esp + 4], 0xfffffffa
jmp case.0x657114.6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x654ea6
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x654ea6
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x654ea6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x6588df
mov ecx, dword [esp + 0x24]
cmp ebp, dword [ecx]
jbe 0x6588df
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x6588df
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
jmp 0x656e53
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov dword [esp + 0x14], ecx
push eax
push dword [esp + 0x48]
push esi
push ebx
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
jne case.0x657114.6
mov ecx, dword [esp + 8]
cmp ecx, edi
jbe 0x65805d
movzx eax, word [ecx - 2]
and eax, 0xfc00
cmp eax, 0xdc00
mov esi, dword [esp + 0x158]
mov ebx, dword [esp + 0x2c]
je 0x656e93
add ecx, 0xfffffffe
jmp 0x656e35
add ecx, 0xfffffffc
jmp 0x656e35
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x6588df
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x6588df
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x6588df
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x6588df
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x6588df
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x6588df
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x6588df
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x6588df
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x6588df
cmp edi, dword [esp + 0x28]
mov esi, dword [esp + 8]
jge 0x658399
mov esi, dword [esp + 8]
sub esp, 4
mov ecx, ebx
mov edx, esi
push dword [esp + 0x10]
push dword [esp + 0x160]
push dword [esp + 0x1c]
call fcn.00659400
add esp, 0x10
test eax, eax
js 0x65834f
lea esi, [esi + eax*2]
inc edi
cmp edi, dword [esp + 0x28]
jl 0x656f64
jmp 0x658387
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
jne case.0x657114.6
dec ebx
inc ebx
cmp ebx, dword [esp + 0x10]
jge 0x65805d
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0xc]
cmp ecx, dword [eax]
mov eax, ecx
jae 0x658602
lea ecx, [eax + 2]
movzx eax, word [eax]
cmp dword [esp + 0x34], 0
je 0x657035
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x657035
shl eax, 0xa
and eax, 0xffc00
mov edx, dword [esp + 0xc]
movzx ecx, word [edx + 2]
add edx, 4
mov dword [esp + 0xc], edx
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x657039
mov dword [esp + 0xc], ecx
sub esp, 4
push dword [esp + 0x38]
push edi
push eax
call fcn.0065a5e0
add esp, 0x10
test eax, eax
je 0x65805d
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
je 0x656fd5
jmp case.0x657114.6
test eax, eax
jne case.0x657114.6
dec dword [esp + 0x10]
lea eax, [ebx - 6]
movzx ebx, ax
mov edx, dword [esp + 0x10]
inc edx
cmp edx, ecx
jge 0x658188
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
mov edi, dword [esp + 0xc]
cmp edi, ecx
jae 0x658664
cmp dword [esp + 8], 0xc
mov dword [esp + 0x10], edx
jne 0x6570fd
mov eax, dword [esp + 0x158]
mov eax, dword [eax + 0x18]
test eax, eax
je 0x65713b
sub esp, 0xc
push 0
push dword [esp + 0x58]
push ecx
push eax
push edi
call fcn.0065a200
add esp, 0x20
test eax, eax
je 0x65717c
jmp 0x658188
cmp ebx, 0xf
ja case.default.0x657114
lea ebp, [edi + 2]
movzx eax, word [edi]
mov dword [esp + 4], 0xfffffff2
jmp dword [ebx*4 + 0x658df4]
cmp eax, 0xff
ja case.0x657114.7
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 4
je case.0x657114.7
jmp 0x658188
mov eax, dword [esp + 0x48]
mov eax, dword [eax]
lea edx, [eax + eax]
sub ecx, edx
cmp edi, ecx
ja 0x65717c
movzx ecx, word [edi]
mov edx, dword [esp + 0x158]
cmp cx, word [edx + 0x34]
jne 0x65717c
cmp eax, 1
je 0x658188
mov edi, dword [esp + 0xc]
movzx eax, word [edi + 2]
mov ecx, dword [esp + 0x158]
cmp ax, word [ecx + 0x36]
je 0x658188
lea ebp, [edi + 2]
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je case.0x657114.7
mov ecx, dword [esp + 0x18]
cmp ebp, dword [ecx]
jb case.0x657114.7
mov ecx, dword [esp + 0x158]
cmp dword [ecx + 0x18], 0
jne case.0x657114.7
mov ecx, dword [esp + 0x48]
cmp dword [ecx], 2
jne case.0x657114.7
mov ecx, dword [esp + 0xc]
movzx ecx, word [ecx]
mov edx, dword [esp + 0x158]
cmp cx, word [edx + 0x34]
jne case.0x657114.7
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
jle case.0x657114.7
jmp 0x65752a
cmp eax, 0xff
ja 0x658188
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 4
jne case.0x657114.7
jmp 0x658188
cmp eax, 0xff
ja case.0x657114.7
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 1
je case.0x657114.7
jmp 0x658188
cmp eax, 0xff
ja 0x658188
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 1
jne case.0x657114.7
jmp 0x658188
cmp eax, 0xff
ja case.0x657114.7
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 0x10
je case.0x657114.7
jmp 0x658188
cmp eax, 0xff
ja 0x658188
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 0x10
jne case.0x657114.7
jmp 0x658188
movsx edx, ax
cmp edx, 0xc
jle 0x657408
lea edx, [eax - 0x2028]
movzx edx, dx
cmp edx, 2
jb 0x657417
movzx eax, ax
cmp eax, 0x85
je 0x657417
cmp eax, 0xd
mov dword [esp + 4], 0
jne case.0x657114.6
cmp ebp, ecx
jae case.0x657114.7
mov eax, dword [esp + 0xc]
movzx eax, word [eax + 2]
cmp eax, 0xa
jne case.0x657114.7
mov ebp, dword [esp + 0xc]
add ebp, 4
jmp case.0x657114.7
movsx ecx, ax
cmp ecx, 0x1fff
jle 0x6573cb
cmp ecx, 0x202e
jg 0x657459
add eax, 0xffffe000
movzx eax, ax
cmp eax, 0xb
mov dword [esp + 4], 0
jae case.0x657114.7
jmp case.0x657114.6
movsx ecx, ax
cmp ecx, 0x1fff
jle 0x65742d
cmp ecx, 0x202e
jg 0x6574a1
add eax, 0xffffe000
movzx eax, ax
cmp eax, 0xb
mov dword [esp + 4], 0
jb case.0x657114.7
jmp case.0x657114.6
lea ecx, [eax - 0xa]
movzx ecx, cx
cmp ecx, 4
jb 0x658188
lea ecx, [eax - 0x2028]
movzx ecx, cx
cmp ecx, 2
jb 0x658188
movzx eax, ax
cmp eax, 0x85
mov dword [esp + 4], 0
jne case.0x657114.7
jmp case.0x657114.6
lea ecx, [eax - 0xa]
movzx ecx, cx
cmp ecx, 4
jb case.0x657114.7
lea ecx, [eax - 0x2028]
movzx ecx, cx
cmp ecx, 2
jb case.0x657114.7
movzx eax, ax
cmp eax, 0x85
je case.0x657114.7
jmp 0x658188
movzx eax, ax
cmp ecx, 0x9f
jle 0x657486
cmp eax, 0xa0
je 0x658188
cmp eax, 0x1680
je 0x658188
cmp eax, 0x180e
mov dword [esp + 4], 0
jne case.0x657114.7
jmp case.0x657114.6
lea ecx, [eax - 0xb]
movzx ecx, cx
cmp ecx, 2
jae 0x6574b9
mov eax, dword [esp + 0x158]
cmp dword [eax + 0x6c], 0
je case.0x657114.7
jmp 0x658188
movzx eax, ax
cmp ecx, 0x9f
jle 0x6574c1
cmp eax, 0xa0
je case.0x657114.7
cmp eax, 0x1680
je case.0x657114.7
cmp eax, 0x180e
jmp 0x6574c9
movzx eax, ax
cmp eax, 0x202f
je 0x658188
cmp eax, 0x205f
je 0x658188
cmp eax, 0x3000
mov dword [esp + 4], 0
jne case.0x657114.7
jmp case.0x657114.6
cmp eax, 9
je 0x658188
cmp eax, 0x20
mov dword [esp + 4], 0
jne case.0x657114.7
jmp case.0x657114.6
movzx eax, ax
cmp eax, 0x202f
je case.0x657114.7
cmp eax, 0x205f
je case.0x657114.7
cmp eax, 0x3000
jmp 0x6574c9
movzx eax, ax
cmp eax, 0xa
jmp 0x6574c9
cmp eax, 9
je case.0x657114.7
cmp eax, 0x20
mov dword [esp + 4], 0
jne case.0x657114.6
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, ebp
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.0064d1b0
mov ecx, dword [esp + 0x48]
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov dword [esp + 0xc], ebp
je 0x6570a4
jmp case.0x657114.6
mov dword [esp + 4], 0xfffffff2
jmp case.0x657114.6
mov dword [esp + 4], 0xfffffff4
jmp case.0x657114.6
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
jne case.0x657114.6
mov ecx, dword [esp + 8]
cmp ecx, dword [esp + 0xc]
jbe 0x65805d
lea edi, [ecx - 2]
cmp dword [esp + 0x34], 0
mov esi, dword [esp + 0x158]
mov ebx, dword [esp + 0x2c]
je 0x6575b0
movzx eax, word [ecx - 2]
and eax, 0xfc00
cmp eax, 0xdc00
mov edx, dword [esp + 0x14]
jne 0x6575b4
add ecx, 0xfffffffc
mov edi, ecx
jmp 0x6575b4
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, edi
push eax
push dword [esp + 0x48]
push esi
push ebx
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov dword [esp + 8], edi
je 0x657572
jmp case.0x657114.6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x6588df
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x6588df
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x6588df
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x6588df
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x6588df
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x6588df
test eax, eax
mov ecx, dword [esp + 0x28]
jne case.0x657114.6
movzx esi, cx
cmp ebx, dword [esp + 0x10]
jge 0x65805d
mov eax, dword [esp + 0x18]
cmp edi, dword [eax]
jae 0x6586a2
movzx eax, word [edi]
cmp eax, 0x100
mov edx, dword [esp + 0x14]
jb 0x65769e
cmp esi, 0x6e
jne 0x6576bc
jmp 0x65805d
mov ecx, eax
and ecx, 0xfff8
shr ecx, 3
movzx ecx, byte [ebp + ecx + 2]
and al, 7
movzx eax, al
bt ecx, eax
jae 0x65805d
add edi, 2
inc ebx
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, edi
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
je 0x657670
jmp case.0x657114.6
mov dword [esp + 4], 0
cmp dword [esp + 8], edi
jb case.0x657114.6
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ebx, dword [esp + 0x14]
mov ecx, ebx
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
test eax, eax
jne 0x6583e9
add ebx, 0xfffffffe
mov dword [esp + 4], 0
mov dword [esp + 8], ebx
cmp ebx, edi
jae 0x65770c
jmp case.0x657114.6
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
push eax
push dword [esp + 0x48]
push esi
push edi
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov eax, dword [esp + 0x28]
jne case.0x657114.6
dec dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, eax
jge 0x65805d
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0xc]
cmp edx, dword [eax]
jae 0x6586dc
lea eax, [edx + 2]
cmp dword [esp + 0x34], 0
je 0x6577cf
movzx ecx, word [edx]
and ecx, 0xfc00
cmp ecx, 0xd800
je 0x6577d5
mov dword [esp + 0xc], eax
jmp 0x6577dc
add edx, 4
mov dword [esp + 0xc], edx
mov esi, dword [esp + 0x158]
mov edi, dword [esp + 0x2c]
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x44], 0
jne 0x65805d
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
push eax
push dword [esp + 0x48]
push esi
push edi
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov eax, dword [esp + 0x28]
je 0x657793
jmp case.0x657114.6
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
push eax
push dword [esp + 0x48]
push esi
push edi
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov eax, dword [esp + 0x28]
jne case.0x657114.6
dec dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
inc ecx
cmp ecx, eax
jge 0x65805d
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0xc]
cmp esi, dword [eax]
jae 0x65871a
mov dword [esp + 0x10], ecx
lea ecx, [esi + 2]
movzx eax, word [esi]
cmp dword [esp + 0x34], 0
je 0x6578c3
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x6578c3
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [esi + 2]
add esi, 4
mov dword [esp + 0xc], esi
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x6578c7
mov dword [esp + 0xc], ecx
mov esi, dword [esp + 0x158]
mov edi, dword [esp + 0x2c]
mov ecx, eax
sar ecx, 0x1f
shr ecx, 0x19
add ecx, eax
mov edx, ecx
and edx, 0x7fffff80
sar ecx, 7
movzx ecx, byte [ecx + 0x7dd1f4]
shl ecx, 7
sub eax, edx
add eax, ecx
movzx eax, word [eax + eax + 0x7df3f4]
movzx eax, byte [eax*8 + 0x7dbb75]
add al, 0xfb
xor ecx, ecx
cmp al, 4
ja 0x657917
movsx eax, al
mov ecx, dword [eax*4 + 0x7daf50]
cmp dword [esp + 0x44], ecx
mov edx, dword [esp + 0x14]
je 0x65805d
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
push eax
push dword [esp + 0x48]
push esi
push edi
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov eax, dword [esp + 0x28]
je 0x657863
jmp case.0x657114.6
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
push eax
push dword [esp + 0x48]
push esi
push edi
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov eax, dword [esp + 0x28]
jne case.0x657114.6
dec dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
inc ecx
cmp ecx, eax
jge 0x65805d
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0xc]
cmp esi, dword [eax]
jae 0x658758
mov dword [esp + 0x10], ecx
lea ecx, [esi + 2]
movzx eax, word [esi]
cmp dword [esp + 0x34], 0
je 0x6579f2
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x6579f2
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [esi + 2]
add esi, 4
mov dword [esp + 0xc], esi
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x6579f6
mov dword [esp + 0xc], ecx
mov esi, dword [esp + 0x158]
mov edi, dword [esp + 0x2c]
mov ecx, eax
sar ecx, 0x1f
shr ecx, 0x19
add ecx, eax
mov edx, ecx
and edx, 0x7fffff80
sar ecx, 7
movzx ecx, byte [ecx + 0x7dd1f4]
shl ecx, 7
sub eax, edx
add eax, ecx
movzx eax, word [eax + eax + 0x7df3f4]
movzx eax, byte [eax*8 + 0x7dbb75]
xor ecx, ecx
mov edx, dword [esp + 0x54]
cmp dword [eax*4 + 0x7db088], edx
sete cl
cmp dword [esp + 0x44], ecx
je 0x65805d
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push esi
push edi
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov eax, dword [esp + 0x28]
je 0x657992
jmp case.0x657114.6
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
push eax
push dword [esp + 0x48]
push esi
push edi
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov eax, dword [esp + 0x28]
jne case.0x657114.6
dec dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
inc ecx
cmp ecx, eax
jge 0x65805d
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0xc]
cmp esi, dword [eax]
jae 0x658796
mov dword [esp + 0x10], ecx
lea ecx, [esi + 2]
movzx eax, word [esi]
cmp dword [esp + 0x34], 0
je 0x657b1f
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x657b1f
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [esi + 2]
add esi, 4
mov dword [esp + 0xc], esi
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x657b23
mov dword [esp + 0xc], ecx
mov esi, dword [esp + 0x158]
mov edi, dword [esp + 0x2c]
mov ecx, eax
sar ecx, 0x1f
shr ecx, 0x19
add ecx, eax
mov edx, ecx
and edx, 0x7fffff80
sar ecx, 7
movzx ecx, byte [ecx + 0x7dd1f4]
shl ecx, 7
sub eax, edx
add eax, ecx
movzx eax, word [eax + eax + 0x7df3f4]
movzx eax, byte [eax*8 + 0x7dbb75]
xor ecx, ecx
cmp dword [esp + 0x54], eax
sete cl
cmp dword [esp + 0x44], ecx
je 0x65805d
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push esi
push edi
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov eax, dword [esp + 0x28]
je 0x657abf
jmp case.0x657114.6
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
push eax
push dword [esp + 0x48]
push esi
push edi
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov eax, dword [esp + 0x28]
jne case.0x657114.6
dec dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
inc ecx
cmp ecx, eax
jge 0x65805d
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0xc]
cmp esi, dword [eax]
jae 0x6587d4
mov dword [esp + 0x10], ecx
lea ecx, [esi + 2]
movzx eax, word [esi]
cmp dword [esp + 0x34], 0
je 0x657c45
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x657c45
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [esi + 2]
add esi, 4
mov dword [esp + 0xc], esi
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x657c49
mov dword [esp + 0xc], ecx
mov esi, dword [esp + 0x158]
mov edi, dword [esp + 0x2c]
mov ecx, eax
sar ecx, 0x1f
shr ecx, 0x19
add ecx, eax
mov edx, ecx
and edx, 0x7fffff80
sar ecx, 7
movzx ecx, byte [ecx + 0x7dd1f4]
shl ecx, 7
sub eax, edx
add eax, ecx
movzx eax, word [eax + eax + 0x7df3f4]
movzx eax, byte [eax*8 + 0x7dbb74]
xor ecx, ecx
cmp dword [esp + 0x54], eax
sete cl
cmp dword [esp + 0x44], ecx
je 0x65805d
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push esi
push edi
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov eax, dword [esp + 0x28]
je 0x657be5
jmp case.0x657114.6
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
push eax
push dword [esp + 0x48]
push esi
push edi
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov eax, dword [esp + 0x28]
jne case.0x657114.6
dec dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
inc ecx
cmp ecx, eax
jge 0x65805d
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0xc]
cmp esi, dword [eax]
jae 0x658812
mov dword [esp + 0x10], ecx
lea ecx, [esi + 2]
movzx eax, word [esi]
cmp dword [esp + 0x34], 0
je 0x657d6b
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x657d6b
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [esi + 2]
add esi, 4
mov dword [esp + 0xc], esi
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x657d6f
mov dword [esp + 0xc], ecx
mov esi, dword [esp + 0x158]
mov edi, dword [esp + 0x2c]
mov ecx, eax
sar ecx, 0x1f
shr ecx, 0x19
add ecx, eax
mov edx, ecx
and edx, 0x7fffff80
sar ecx, 7
movzx ecx, byte [ecx + 0x7dd1f4]
shl ecx, 7
sub eax, edx
add eax, ecx
movzx eax, word [eax + eax + 0x7df3f4]
movzx eax, byte [eax*8 + 0x7dbb75]
mov eax, dword [eax*4 + 0x7db088]
or eax, 2
xor ecx, ecx
cmp eax, 3
sete cl
cmp dword [esp + 0x44], ecx
je 0x65805d
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push esi
push edi
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov eax, dword [esp + 0x28]
je 0x657d0b
jmp case.0x657114.6
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
push eax
push dword [esp + 0x48]
push esi
push edi
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov eax, dword [esp + 0x28]
jne case.0x657114.6
dec dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
inc ecx
cmp ecx, eax
jge 0x65805d
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0xc]
cmp esi, dword [eax]
jae 0x658850
mov dword [esp + 0x10], ecx
lea ecx, [esi + 2]
movzx eax, word [esi]
cmp dword [esp + 0x34], 0
je 0x657e9a
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x657e9a
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [esi + 2]
add esi, 4
mov dword [esp + 0xc], esi
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x657e9e
mov dword [esp + 0xc], ecx
mov edi, dword [esp + 0x158]
mov ebx, dword [esp + 0x2c]
mov ecx, eax
sar ecx, 0x1f
shr ecx, 0x19
add ecx, eax
mov edx, ecx
and edx, 0x7fffff80
sar ecx, 7
movzx ecx, byte [ecx + 0x7dd1f4]
shl ecx, 7
mov esi, eax
sub esi, edx
add esi, ecx
movzx ecx, word [esi + esi + 0x7df3f4]
movzx ecx, byte [ecx*8 + 0x7dbb75]
mov ecx, dword [ecx*4 + 0x7db088]
or ecx, 2
cmp ecx, 3
sete cl
cmp eax, 0x5f
sete al
or al, cl
movzx eax, al
cmp dword [esp + 0x44], eax
je 0x65805d
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push edi
push ebx
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov eax, dword [esp + 0x28]
je 0x657e3a
jmp case.0x657114.6
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
push eax
push dword [esp + 0x48]
push esi
push edi
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov ecx, dword [esp + 0x28]
jne case.0x657114.6
mov eax, dword [esp + 0x54]
lea ebx, [eax*4 + 0x7dba3c]
cmp dword [esp + 0x10], ecx
jge 0x65805d
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0xc]
cmp edi, dword [eax]
jae 0x658883
lea ecx, [edi + 2]
movzx eax, word [edi]
cmp dword [esp + 0x34], 0
je 0x657fd0
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x657fd0
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [edi + 2]
add edi, 4
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x657fd2
mov edi, ecx
mov ecx, dword [esp + 0x54]
mov ecx, dword [ecx*4 + 0x7dba38]
cmp eax, ecx
jb 0x657ff0
mov edx, ebx
cmp eax, ecx
je 0x658007
mov ecx, dword [edx]
add edx, 4
cmp eax, ecx
jae 0x657fe3
cmp dword [esp + 0x44], 0
mov esi, dword [esp + 0x158]
mov edx, dword [esp + 0x14]
jne 0x65801d
jmp 0x658188
cmp dword [esp + 0x44], 0
mov esi, dword [esp + 0x158]
mov edx, dword [esp + 0x14]
jne 0x658188
inc dword [esp + 0x10]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov dword [esp + 0x18], edi
mov ecx, edi
push eax
push dword [esp + 0x48]
push esi
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov ecx, dword [esp + 0x28]
je 0x657f7b
jmp case.0x657114.6
mov dword [esp + 4], 0
jmp case.0x657114.6
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
push eax
push dword [esp + 0x48]
push esi
push edi
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov eax, dword [esp + 0x28]
jne case.0x657114.6
dec dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
inc ecx
cmp ecx, eax
jge 0x658188
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0xc]
cmp esi, dword [eax]
jae 0x6588b2
mov dword [esp + 0x10], ecx
lea ecx, [esi + 2]
movzx eax, word [esi]
cmp dword [esp + 0x34], 0
je 0x6580fc
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x6580fc
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [esi + 2]
add esi, 4
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x6580fe
mov esi, ecx
mov dword [esp + 0xc], esi
mov cl, 1
cmp eax, 0x24
je 0x658139
cmp eax, 0x40
je 0x658139
cmp eax, 0x60
mov esi, dword [esp + 0x158]
mov edi, dword [esp + 0x2c]
je 0x658144
lea ecx, [eax - 0xa0]
cmp ecx, 0xd760
setb dl
cmp eax, 0xdfff
seta cl
or cl, dl
jmp 0x658144
mov esi, dword [esp + 0x158]
mov edi, dword [esp + 0x2c]
movzx eax, cl
cmp dword [esp + 0x44], eax
mov edx, dword [esp + 0x14]
je 0x658188
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
push eax
push dword [esp + 0x48]
push esi
push edi
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov eax, dword [esp + 0x28]
je 0x6580a0
jmp case.0x657114.6
mov dword [esp + 4], 0
jmp case.0x657114.6
mov esi, 0xfffffc1b
cmp eax, 0xfffffc1b
mov dword [esp + 4], eax
jne case.0x657114.6
mov ecx, dword [esp + 0x158]
mov edx, ecx
mov ecx, dword [edx + 0xc]
mov eax, dword [esp + 0x10]
mov dword [ecx + ebx*4], eax
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov dword [ecx + eax*4], ebx
mov edx, dword [edx + 0x10]
sub edx, edi
mov eax, dword [esp + 0x44]
mov dword [ecx + edx*4], eax
mov dword [esp + 4], esi
jmp case.0x657114.6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x6588df
mov ecx, dword [esp + 0x24]
cmp edi, dword [ecx]
jbe 0x6588df
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x6588df
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x6588df
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x6588df
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x6588df
mov eax, dword [esp + 0x158]
mov esi, eax
mov dword [esi + 0x9c], 2
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push esi
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
jmp 0x6546c2
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x6588df
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x6588df
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x6588df
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x6588df
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x6588df
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x6588df
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x6588df
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x6588df
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x6588df
cmp eax, 0xfffffffe
jne 0x658387
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x658387
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx]
mov edx, dword [esp + 0x24]
cmp ecx, dword [edx]
jbe 0x658387
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
mov dword [esp + 4], 0
cmp esi, dword [esp + 8]
jb case.0x657114.6
mov eax, dword [esp + 0x10]
add eax, eax
neg eax
mov edi, eax
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, esi
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
test eax, eax
jne 0x6583e9
add esi, edi
mov dword [esp + 4], 0
cmp esi, dword [esp + 8]
jae 0x6583a3
jmp case.0x657114.6
mov dword [esp + 4], eax
jmp case.0x657114.6
mov dword [esp + 4], ecx
jmp case.0x657114.6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x6588df
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x6588df
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x6588df
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x6588df
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x6588df
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x6588df
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x6588df
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x6588df
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x6588df
cmp eax, 0xfffffffe
jne 0x6584c4
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x654ea6
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jb 0x654ea6
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x654ea6
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x654ea6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x654ea6
mov ecx, dword [esp + 0x24]
cmp edi, dword [ecx]
jbe 0x654ea6
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x654ea6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x6588df
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x6588df
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x6588df
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x20], ebx
mov edx, ebx
push eax
push dword [esp + 0x48]
push ebp
push edi
push dword [esp + 0x4c]
call fcn.0064d1b0
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
jne case.0x657114.6
mov eax, dword [esp + 0x158]
mov ecx, dword [esp + 0x14]
mov dword [eax + 0xb8], ecx
mov dword [esp + 4], 0xfffffc1b
jmp case.0x657114.6
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
push eax
push dword [esp + 0x48]
push ebp
push dword [esp + 0x44]
push dword [esp + 0x4c]
jmp 0x6556ce
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x654ea6
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x654ea6
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x654ea6
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
mov edx, ebx
push eax
push dword [esp + 0x48]
push ebp
push dword [esp + 0x44]
push dword [esp + 0x4c]
jmp 0x658288
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x6588df
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x6588df
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x6588df
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x654ea6
mov ecx, dword [esp + 0x24]
cmp edi, dword [ecx]
jbe 0x654ea6
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x654ea6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x6588df
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x6588df
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x6588df
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x6588df
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x6588df
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x6588df
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x6588df
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x6588df
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x6588df
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x6588df
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x6588df
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x6588df
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x6588df
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x6588df
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x6588df
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x6588df
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x6588df
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x6588df
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x6588df
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x6588df
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x6588df
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x6588df
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x6588df
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
jmp 0x6588df
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x6588df
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x6588df
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x657114.6
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
add esp, 0x13c
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esp + 4], 0xfffffc1b
jmp case.0x657114.6