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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x13c
test edx, edx
je 0x863751
mov dword [esp + 4], ecx
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x158]
mov eax, dword [edx]
mov ecx, dword [edx + 0x50]
mov dword [esp + 0x30], ecx
lea ecx, [eax + 1]
mov dword [edx], ecx
mov esi, 0xfffffff8
cmp eax, dword [edx + 4]
jae case.0x866089.6
mov eax, dword [esp + 0x15c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x154]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x150]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x158]
mov ecx, eax
lea eax, [ecx + 0x7c]
mov dword [esp + 0x14], eax
lea eax, [ecx + 0x88]
mov dword [esp + 0x20], eax
lea eax, [ecx + 0x1c]
mov dword [esp + 0x4c], eax
lea eax, [ecx + 0x8c]
mov dword [esp + 0x18], eax
lea eax, [ecx + 0x68]
mov dword [esp + 0x1c], eax
lea eax, [ecx + 0x44]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x54], 0
mov dword [esp + 0x40], 0
mov eax, dword [esp + 0x160]
mov ecx, dword [esp + 0x158]
cmp eax, dword [ecx + 8]
jae 0x8638b6
cmp dword [ecx + 0x9c], 2
jne 0x85e690
mov eax, dword [esp + 4]
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0xb0], eax
mov dword [ecx + 0x9c], 0
lea eax, [esp + 0xb0]
mov dword [esp + 0x34], eax
jmp 0x85e690
movzx eax, word [esp + 0x24]
cmp eax, 0x10
jne 0x85c80d
jmp 0x867099
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov edx, dword [esp + 0xc]
lea ecx, [edx + edx]
sub eax, ecx
mov ecx, dword [esp + 4]
cmp ecx, eax
jbe 0x85d52d
jmp 0x867099
movzx eax, word [esp + 0x24]
cmp eax, 0x10
je 0x85c80d
jmp 0x867099
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov edx, dword [esp + 0xc]
lea ecx, [edx + edx]
sub eax, ecx
mov ecx, dword [esp + 4]
cmp ecx, eax
jbe 0x85d52d
jmp 0x8672d8
add edx, 2
mov dword [esp + 0x10], edx
jmp 0x85e690
cmp eax, 0x24
je case.0x8611d6.0
cmp eax, 0x60
je case.0x8611d6.0
cmp eax, 0x40
je case.0x8611d6.0
lea ecx, [eax - 0xa0]
cmp ecx, 0xd760
setb cl
cmp eax, 0xdfff
seta al
or al, cl
movzx ecx, word [esp + 0x24]
cmp ecx, 0xf
sete cl
xor cl, al
cmp cl, 1
je 0x85c80d
jmp 0x867099
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85c3a1
mov ecx, dword [esp + 0x20]
cmp ebp, dword [ecx]
jbe 0x85c3a1
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
cmp eax, 1
jg 0x866463
mov dword [esp + 4], ebp
cmp dword [esp + 0x50], 0
jne 0x85e690
jmp 0x863382
cmp eax, 0x202f
je 0x85c321
cmp eax, 0x3000
je 0x85c321
cmp eax, 0x205f
je 0x85c321
jmp case.0x866089.6
mov eax, dword [esp + 8]
lea eax, [eax + 0x22]
mov dword [esp + 0x10], eax
mov dword [esp + 0x48], 0
mov ebp, 1
mov dword [esp + 0x38], 1
mov dword [esp + 0x44], 0
cmp dword [esp + 0x30], 0
mov dword [esp + 0xc], ebp
je 0x85c488
test ebp, ebp
jle 0x85c4ef
mov eax, dword [esp + 0x14]
mov edx, dword [eax]
xor esi, esi
mov ecx, dword [esp + 4]
cmp ecx, edx
jae 0x863a74
movzx ebx, word [ecx]
mov eax, ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x85c440
add ecx, 4
jmp 0x85c44b
add ecx, 2
cmp ebx, 0x100
jb 0x85c458
movzx eax, di
cmp eax, 0x6e
jne 0x85c481
jmp 0x867099
mov eax, ebx
shr eax, 3
mov ebp, edi
mov edi, ecx
mov ecx, dword [esp + 8]
movzx eax, byte [ecx + eax + 2]
mov ecx, edi
mov edi, ebp
mov ebp, dword [esp + 0xc]
and bl, 7
movzx ebx, bl
bt eax, ebx
jae 0x867099
inc esi
cmp esi, ebp
jl 0x85c422
jmp 0x85c4f3
test ebp, ebp
jle 0x85c4ef
mov eax, dword [esp + 0x14]
mov edx, dword [eax]
xor esi, esi
mov ecx, dword [esp + 4]
cmp ecx, edx
jae 0x863eda
movzx eax, word [ecx]
cmp eax, 0x100
jb 0x85c4b7
movzx eax, di
cmp eax, 0x6e
jne 0x85c4e5
jmp 0x867099
mov ebx, eax
and ebx, 0xfff8
shr ebx, 3
mov ebp, edi
mov edi, ecx
mov ecx, dword [esp + 8]
movzx ebx, byte [ecx + ebx + 2]
mov ecx, edi
mov edi, ebp
mov ebp, dword [esp + 0xc]
and al, 7
movzx eax, al
bt ebx, eax
jae 0x867099
add ecx, 2
inc esi
cmp esi, ebp
jl 0x85c498
jmp 0x85c4f3
mov ecx, dword [esp + 4]
cmp ebp, dword [esp + 0x38]
mov dword [esp + 0x50], ecx
mov dword [esp + 4], ecx
je 0x85e690
cmp dword [esp + 0x44], 0
jne 0x8657da
mov dword [esp + 0x24], edi
cmp dword [esp + 0x30], 0
mov ebp, dword [esp + 0xc]
mov eax, dword [esp + 0x50]
je 0x85c5aa
cmp ebp, dword [esp + 0x38]
jge 0x85c63d
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
mov eax, dword [esp + 0x50]
cmp eax, ecx
jae 0x85c60d
mov ebx, eax
movzx edx, word [eax]
mov eax, edx
and eax, 0xfc00
mov esi, 2
cmp eax, 0xd800
je 0x85c568
mov esi, 1
cmp edx, 0x100
jb 0x85c577
movzx eax, word [esp + 0x24]
cmp eax, 0x6e
jne 0x85c599
jmp 0x85c637
mov eax, edx
shr eax, 3
mov esi, dword [esp + 8]
movzx eax, byte [esi + eax + 2]
and dl, 7
movzx edx, dl
mov esi, 1
bt eax, edx
jae 0x85c637
mov eax, ebx
lea eax, [eax + esi*2]
inc ebp
cmp ebp, dword [esp + 0x38]
jl 0x85c53b
jmp 0x85c63d
cmp ebp, dword [esp + 0x38]
jge 0x85c681
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
mov eax, dword [esp + 0x50]
cmp eax, ecx
jae 0x85c651
mov esi, eax
movzx eax, word [eax]
cmp eax, 0x100
jb 0x85c5e1
movzx eax, word [esp + 0x24]
cmp eax, 0x6e
jne 0x85c5ff
jmp 0x85c67b
mov edx, eax
and edx, 0xfff8
shr edx, 3
mov ebx, dword [esp + 8]
movzx edx, byte [ebx + edx + 2]
and al, 7
movzx eax, al
bt edx, eax
jae 0x85c67b
mov eax, esi
add eax, 2
inc ebp
cmp ebp, dword [esp + 0x38]
jl 0x85c5be
jmp 0x85c681
mov edx, eax
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85c63b
mov ecx, dword [esp + 0x20]
cmp edx, dword [ecx]
jbe 0x85c63b
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
cmp eax, 1
mov eax, edx
jle 0x85c63d
jmp 0x865568
mov eax, ebx
jmp 0x85c63d
mov eax, edx
mov dword [esp + 4], eax
cmp byte [esp + 0x48], 0
jne 0x85e690
jmp 0x865d80
mov edx, eax
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85c67f
mov ecx, dword [esp + 0x20]
cmp edx, dword [ecx]
jbe 0x85c67f
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
cmp eax, 1
mov eax, edx
jle 0x85c681
jmp 0x865568
mov eax, esi
jmp 0x85c681
mov eax, edx
mov dword [esp + 4], eax
cmp byte [esp + 0x48], 0
jne 0x85e690
jmp 0x866637
cmp edx, 0xa
mov edx, ebp
je 0x8622e1
jmp case.0x866089.6
xor ecx, ecx
movzx eax, cl
mov ecx, dword [esp + 0x14]
cmp ebp, dword [ecx]
jae 0x85c716
movzx edx, word [ebp]
mov ecx, edx
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x85c6e0
shl edx, 0xa
and edx, 0xffc00
movzx ecx, word [ebp + 2]
and ecx, 0x3ff
lea edx, [edx + ecx + 0x10000]
cmp dword [esi + 0x58], 0
je 0x85c799
mov cl, 1
cmp edx, 0x5f
je 0x85c761
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 + 0x8a0804]
shl ecx, 7
sub edx, esi
add edx, ecx
jmp 0x85c72a
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx]
test ecx, ecx
je 0x85c75f
mov edx, dword [esp + 0x20]
cmp ebp, dword [edx]
jbe 0x85c75f
jmp 0x85c74c
movzx ecx, word [edx + edx + 0x8a2a04]
movzx ecx, byte [ecx*8 + 0x89f185]
mov ecx, dword [ecx*4 + 0x89e698]
or ecx, 2
cmp ecx, 3
sete cl
jmp 0x85c761
mov edx, dword [esp + 0x1c]
mov dword [edx], 1
cmp ecx, 1
jg 0x864bf7
xor ecx, ecx
mov edx, ebx
movzx ecx, cl
add edx, 2
mov edi, edx
movzx edx, word [esp + 0x24]
xor esi, esi
cmp edx, 5
jne 0x85c788
cmp eax, ecx
mov dword [esp + 0x10], edi
jne 0x85e690
jmp case.0x866089.6
cmp eax, ecx
mov dword [esp + 0x10], edi
je 0x85e690
jmp case.0x866089.6
cmp edx, 0xff
ja 0x85c75f
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
mov cl, byte [ecx + edx]
and cl, 0x10
shr cl, 4
jmp 0x85c761
xor eax, eax
movzx esi, al
test esi, esi
je case.0x85f59c.4
jmp 0x862fb4
cmp eax, 0x84
jg 0x85c7e6
add eax, 0xfffffff7
cmp eax, 0x17
ja case.0x8611f7.8203
mov edx, 0x80001f
bt edx, eax
jb case.0x8611d6.0
jmp case.0x8611f7.8203
cmp eax, 0x85
je case.0x8611d6.0
cmp eax, 0xa0
je case.0x8611d6.0
cmp eax, 0x1680
jne case.0x8611f7.8203
movzx eax, word [esp + 0x24]
cmp eax, 0xf
je 0x867099
mov dword [esp + 4], ebx
add ebp, 6
mov dword [esp + 0x10], ebp
jmp 0x85e690
mov eax, edx
mov dword [esp + 4], eax
cmp dword [esp + 0x48], 0
jne 0x85e690
jmp 0x86306a
movzx edx, word [ebx + 2]
cmp dx, word [edi + 0x36]
mov edx, ebp
jne 0x86494e
add ecx, ecx
sub eax, ecx
cmp ebx, eax
jne 0x86494e
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85c321
mov ecx, dword [esp + 0x20]
cmp ebx, dword [ecx]
jbe 0x85c321
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
cmp eax, 1
jle 0x85c321
jmp 0x864bf7
cmp eax, 9
je 0x85c321
cmp eax, 0x20
je 0x85c321
jmp case.0x866089.6
mov edi, dword [esp + 4]
cmp edi, eax
jae 0x85dd78
movzx ebx, word [edi]
mov esi, ebx
and esi, 0xfc00
mov edx, 1
cmp esi, 0xd800
jne 0x85c8db
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 0x85c926
cmp ebx, 0x202e
jg 0x85c948
add ebx, 0xffffe000
cmp ebx, 0xb
jae 0x85c96c
cmp esi, ecx
je 0x85e678
mov edi, dword [esp + 0xc]
inc edi
mov esi, dword [esp + 4]
lea esi, [esi + edx*2]
mov dword [esp + 4], esi
mov dword [esp + 0xc], edi
cmp edi, dword [esp + 0x24]
jl 0x85c898
jmp 0x85e678
cmp ebx, 0x9f
jle 0x85c962
cmp ebx, 0xa0
je 0x85c8fb
cmp ebx, 0x1680
je 0x85c8fb
cmp ebx, 0x180e
je 0x85c8fb
jmp 0x85c96c
cmp ebx, 0x202f
je 0x85c8fb
cmp ebx, 0x205f
je 0x85c8fb
cmp ebx, 0x3000
je 0x85c8fb
jmp 0x85c96c
cmp ebx, 9
je 0x85c8fb
cmp ebx, 0x20
je 0x85c8fb
xor esi, esi
cmp esi, ecx
jne 0x85c903
jmp 0x85e678
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 0x24], 0
mov ebx, 1
mov edx, esi
xor esi, esi
mov dword [esp + 0x10], edx
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 4]
cmp ebp, dword [eax]
jae 0x863df0
lea ecx, [ebp + 2]
movzx eax, word [ebp]
cmp dword [esp + 0x30], 0
je 0x85c9f0
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x85c9f0
shl eax, 0xa
and eax, 0xffc00
mov edx, dword [esp + 4]
movzx ecx, word [edx + 2]
add edx, 4
mov dword [esp + 4], edx
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x85c9f4
mov dword [esp + 4], ecx
sub esp, 4
push dword [esp + 0x34]
push edi
push eax
call fcn.00869440
add esp, 0x10
test eax, eax
je 0x867099
inc esi
cmp esi, ebx
jl 0x85c99c
mov eax, dword [esp + 4]
mov dword [esp + 0x38], eax
cmp ebx, dword [esp + 0xc]
je 0x85e690
cmp dword [esp + 8], 0
jne 0x865f11
cmp ebx, dword [esp + 0xc]
mov ecx, dword [esp + 0x38]
jge 0x85cad7
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x14]
cmp ecx, dword [eax]
jae 0x85caab
mov ebp, ecx
movzx eax, word [ecx]
cmp dword [esp + 0x30], 0
mov esi, 1
je 0x85ca88
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x85ca88
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 + 0x34]
push edi
push eax
call fcn.00869440
add esp, 0x10
mov ecx, ebp
test eax, eax
je 0x85cad7
lea ecx, [ecx + esi*2]
inc ebx
cmp ebx, dword [esp + 0xc]
jl 0x85ca41
jmp 0x85cad7
mov edx, ecx
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85cad5
mov ecx, dword [esp + 0x20]
cmp edx, dword [ecx]
jbe 0x85cad5
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
cmp eax, 1
mov ecx, edx
jle 0x85cad7
jmp 0x865568
mov ecx, edx
mov dword [esp + 4], ecx
cmp byte [esp + 0x24], 0
jne 0x85e690
jmp 0x86646d
mov ecx, edx
mov dword [esp + 4], ecx
cmp dword [esp + 0x48], 0
jne 0x85e690
jmp 0x863267
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85e63e
mov ecx, dword [esp + 0x20]
cmp ebp, dword [ecx]
jbe 0x85e63e
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
cmp eax, 1
jle 0x85e63e
jmp 0x866463
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx]
test ecx, ecx
je 0x8622e1
mov edx, dword [esp + 0x20]
cmp eax, dword [edx]
jbe 0x85cb63
mov edx, dword [esp + 0x1c]
mov dword [edx], 1
cmp ecx, 1
mov edx, ebp
jle 0x8622e1
jmp 0x865568
mov edx, ebp
jmp 0x8622e1
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 4]
mov dword [esp + 8], edx
mov edi, dword [esp + 8]
cmp edi, eax
jae 0x8658db
movzx edx, word [edi]
cmp edx, 0x7f
ja 0x867099
mov esi, dword [esp + 0x3c]
mov esi, dword [esi]
test byte [esi + edx], 4
je 0x867099
add edi, 2
mov dword [esp + 8], edi
inc ecx
cmp ecx, dword [esp + 0xc]
jl 0x85cb7a
jmp 0x860143
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
xor ecx, ecx
mov edi, dword [esp + 4]
cmp edi, eax
jae 0x865002
movzx edx, word [edi]
cmp edx, 0x7f
ja 0x85cbe1
mov esi, dword [esp + 0x3c]
mov esi, dword [esi]
test byte [esi + edx], 1
jne 0x867099
lea edx, [edi + 2]
mov esi, edx
cmp edx, eax
jae 0x85cbfc
movzx edx, word [edi + 2]
and edx, 0xfc00
cmp edx, 0xdc00
je 0x85cc00
mov edx, esi
jmp 0x85cc05
add edi, 4
mov edx, edi
inc ecx
cmp ecx, dword [esp + 0xc]
mov dword [esp + 8], edx
mov edi, edx
jl 0x85cbc1
jmp 0x860143
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 4]
mov dword [esp + 8], edx
mov edi, dword [esp + 8]
cmp edi, eax
jae 0x865916
movzx edx, word [edi]
cmp edx, 0x7f
ja 0x867099
mov esi, dword [esp + 0x3c]
mov esi, dword [esi]
test byte [esi + edx], 1
je 0x867099
add edi, 2
mov dword [esp + 8], edi
inc ecx
cmp ecx, dword [esp + 0xc]
jl 0x85cc27
jmp 0x860143
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
xor ecx, ecx
mov edi, dword [esp + 4]
cmp edi, eax
jae 0x865039
movzx edx, word [edi]
cmp edx, 0x7f
ja 0x85cc8e
mov esi, dword [esp + 0x3c]
mov esi, dword [esi]
test byte [esi + edx], 0x10
jne 0x867099
lea edx, [edi + 2]
mov esi, edx
cmp edx, eax
jae 0x85cca9
movzx edx, word [edi + 2]
and edx, 0xfc00
cmp edx, 0xdc00
je 0x85ccad
mov edx, esi
jmp 0x85ccb2
add edi, 4
mov edx, edi
inc ecx
cmp ecx, dword [esp + 0xc]
mov dword [esp + 8], edx
mov edi, edx
jl 0x85cc6e
jmp 0x860143
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 4]
mov dword [esp + 8], edx
mov edi, dword [esp + 8]
cmp edi, eax
jae 0x865951
movzx edx, word [edi]
cmp edx, 0x7f
ja 0x867099
mov esi, dword [esp + 0x3c]
mov esi, dword [esi]
test byte [esi + edx], 0x10
je 0x867099
add edi, 2
mov dword [esp + 8], edi
inc ecx
cmp ecx, dword [esp + 0xc]
jl 0x85ccd4
jmp 0x860143
xor esi, esi
mov ebx, dword [esp + 4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
cmp ebx, eax
jae 0x8650e4
mov edi, dword [esp + 0x158]
mov ecx, dword [edi + 0x18]
test ecx, ecx
je 0x85cd50
sub esp, 0xc
push dword [esp + 0x3c]
push dword [esp + 0x5c]
push eax
push ecx
push ebx
call fcn.00869060
add esp, 0x20
test eax, eax
je 0x85cd7f
jmp 0x867099
mov ecx, dword [esp + 0x4c]
mov ecx, dword [ecx]
lea edx, [ecx + ecx]
sub eax, edx
cmp ebx, eax
ja 0x85cd7f
movzx eax, word [ebx]
cmp ax, word [edi + 0x34]
jne 0x85cd7f
cmp ecx, 1
je 0x867099
movzx eax, word [ebx + 2]
cmp ax, word [edi + 0x36]
je 0x867099
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
test ecx, ecx
je 0x85cdce
lea edx, [ebx + 2]
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov ebp, edx
cmp edx, eax
jb 0x85cdc6
cmp dword [edi + 0x18], 0
jne 0x85cdc6
mov edx, dword [esp + 0x4c]
cmp dword [edx], 2
jne 0x85cdc6
movzx edx, word [ebx]
cmp dx, word [edi + 0x34]
jne 0x85cddd
mov edx, dword [esp + 0x1c]
mov dword [edx], 1
cmp ecx, 1
mov ecx, ebp
jle 0x85cddf
jmp 0x865568
mov ecx, ebp
cmp ecx, eax
jb 0x85cde3
jmp 0x85cdf8
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
lea ecx, [ebx + 2]
cmp ecx, eax
jb 0x85cde3
jmp 0x85cdf8
mov ecx, ebp
cmp ecx, eax
jae 0x85cdf8
movzx eax, word [ebx + 2]
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x85cdf8
add ebx, 4
mov ecx, ebx
inc esi
cmp esi, dword [esp + 0xc]
mov dword [esp + 8], ecx
mov ebx, ecx
jl 0x85cd15
jmp 0x860143
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
xor ecx, ecx
mov esi, dword [esp + 4]
cmp esi, eax
jae 0x864c01
lea edi, [esi + 2]
cmp edi, eax
jae 0x85ce40
movzx edx, word [esi + 2]
and edx, 0xfc00
cmp edx, 0xdc00
jne 0x85ce40
add esi, 4
mov edi, esi
inc ecx
cmp ecx, dword [esp + 0xc]
mov dword [esp + 8], edi
mov esi, edi
jl 0x85ce1a
jmp 0x860143
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 4]
mov dword [esp + 8], edx
mov edi, dword [esp + 8]
cmp edi, eax
jae 0x86579f
movzx edx, word [edi]
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x85cea0
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
jmp 0x85cea3
add edi, 2
mov ebx, dword [esp + 0x158]
mov dword [esp + 8], edi
xor esi, esi
cmp edx, 0xc
jle 0x85ceea
lea edi, [edx - 0x2028]
cmp edi, 2
jb 0x85cef2
cmp edx, 0x85
je 0x85cef2
cmp edx, 0xd
jne case.0x866089.6
mov esi, dword [esp + 8]
cmp esi, eax
jae 0x85cefc
movzx edx, word [esi]
cmp edx, 0xa
jne 0x85cefc
add esi, 2
mov dword [esp + 8], esi
jmp 0x85cefc
lea edi, [edx - 0xb]
cmp edi, 2
jae 0x85cf0c
cmp dword [ebx + 0x6c], 0
jne 0x867099
inc ecx
cmp ecx, dword [esp + 0xc]
jl 0x85ce62
jmp 0x860143
cmp edx, 0xa
je 0x85cefc
jmp case.0x866089.6
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 4]
mov dword [esp + 8], edx
mov edi, dword [esp + 8]
cmp edi, eax
jae 0x865572
movzx edx, word [edi]
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x85cf97
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 0x85cfa2
cmp edx, 0x9f
jle 0x85cfdf
cmp edx, 0xa0
je 0x867755
cmp edx, 0x1680
je 0x867755
cmp edx, 0x180e
jne 0x85cff1
jmp 0x867755
add edi, 2
cmp edx, 0x1fff
jle 0x85cf6a
cmp edx, 0x202e
jg 0x85cfba
add edx, 0xffffe000
cmp edx, 0xb
jae 0x85cff1
jmp 0x867755
cmp edx, 0x202f
je 0x867755
cmp edx, 0x205f
je 0x867755
cmp edx, 0x3000
jne 0x85cff1
jmp 0x867755
cmp edx, 9
je 0x867755
cmp edx, 0x20
je 0x867755
mov dword [esp + 8], edi
inc ecx
cmp ecx, dword [esp + 0xc]
jl 0x85cf26
jmp 0x860143
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 4]
mov dword [esp + 8], edx
mov edi, dword [esp + 8]
cmp edi, eax
jae 0x8655ad
movzx edx, word [edi]
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x85d07e
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 0x85d089
cmp edx, 0x9f
jle 0x85d0d1
cmp edx, 0xa0
je 0x85d0a0
cmp edx, 0x1680
je 0x85d0a0
cmp edx, 0x180e
je 0x85d0a0
jmp 0x867755
add edi, 2
cmp edx, 0x1fff
jle 0x85d059
cmp edx, 0x202e
jg 0x85d0b4
add edx, 0xffffe000
cmp edx, 0xb
jae 0x867755
mov dword [esp + 8], edi
inc ecx
cmp ecx, dword [esp + 0xc]
jl 0x85d015
jmp 0x860143
cmp edx, 0x202f
je 0x85d0a0
cmp edx, 0x3000
je 0x85d0a0
cmp edx, 0x205f
je 0x85d0a0
jmp 0x867755
cmp edx, 9
je 0x85d0a0
cmp edx, 0x20
je 0x85d0a0
jmp 0x867755
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 4]
mov dword [esp + 8], edx
mov edi, dword [esp + 8]
cmp edi, eax
jae 0x8655e8
movzx edx, word [edi]
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x85d12e
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
jmp 0x85d131
add edi, 2
lea esi, [edx - 0xa]
cmp esi, 4
jb 0x867755
lea esi, [edx - 0x2028]
cmp esi, 2
jb 0x867755
cmp edx, 0x85
je 0x867755
mov dword [esp + 8], edi
inc ecx
cmp ecx, dword [esp + 0xc]
jl 0x85d0f0
jmp 0x860143
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 4]
mov dword [esp + 8], edx
mov edi, dword [esp + 8]
cmp edi, eax
jae 0x865623
movzx edx, word [edi]
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x85d1b6
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
jmp 0x85d1b9
add edi, 2
lea esi, [edx - 0xa]
cmp esi, 4
jb 0x85d1d8
lea esi, [edx - 0x2028]
cmp esi, 2
jb 0x85d1d8
cmp edx, 0x85
jne 0x867755
mov dword [esp + 8], edi
inc ecx
cmp ecx, dword [esp + 0xc]
jl 0x85d178
jmp 0x860143
mov al, 1
movzx esi, al
test esi, esi
jne 0x862fb4
mov ecx, dword [esp + 0xc]
lea eax, [ebp + ecx*2]
mov dword [esp + 0x10], eax
movzx eax, word [ebp + ecx*2 - 4]
cmp eax, 0x77
mov eax, dword [esp + 0x24]
jne 0x85e690
jmp 0x862fce
cmp edx, dword [esp + 0xc]
mov eax, dword [esp + 8]
mov dword [esp + 4], eax
jle 0x85e678
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
xor ecx, ecx
cmp ebp, 0x14
sete cl
mov edx, dword [esp + 8]
mov dword [esp + 4], edx
mov ebx, dword [esp + 4]
cmp ebx, eax
jae 0x85dd78
movzx esi, word [ebx]
mov edi, esi
and edi, 0xfc00
mov edx, 1
cmp edi, 0xd800
jne 0x85d283
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 0x85d2a5
lea edi, [esi - 0x2028]
cmp edi, 2
jb 0x85d2a5
cmp esi, 0x85
je 0x85d2a5
xor ebx, ebx
cmp ebx, ecx
je 0x85e678
mov edi, dword [esp + 0xc]
inc edi
mov esi, dword [esp + 4]
lea esi, [esi + edx*2]
mov dword [esp + 4], esi
mov dword [esp + 0xc], edi
cmp edi, dword [esp + 0x24]
jl 0x85d240
jmp 0x85e678
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 4]
mov dword [esp + 8], edx
mov edi, dword [esp + 8]
cmp edi, eax
jae 0x865e0c
movzx edx, word [edi]
cmp edx, 0xff
ja 0x867099
mov esi, dword [esp + 0x3c]
mov esi, dword [esi]
test byte [esi + edx], 4
je 0x867099
add edi, 2
mov dword [esp + 8], edi
inc ecx
cmp ecx, dword [esp + 0xc]
jl 0x85d2e0
jmp 0x860143
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 4]
mov dword [esp + 8], edx
mov edi, dword [esp + 8]
cmp edi, eax
jae 0x86598c
movzx edx, word [edi]
cmp edx, 0xff
ja 0x85d355
mov esi, dword [esp + 0x3c]
mov esi, dword [esi]
test byte [esi + edx], 1
jne 0x867099
add edi, 2
mov dword [esp + 8], edi
inc ecx
cmp ecx, dword [esp + 0xc]
jl 0x85d32e
jmp 0x860143
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 4]
mov dword [esp + 8], edx
mov edi, dword [esp + 8]
cmp edi, eax
jae 0x865e47
movzx edx, word [edi]
cmp edx, 0xff
ja 0x867099
mov esi, dword [esp + 0x3c]
mov esi, dword [esi]
test byte [esi + edx], 1
je 0x867099
add edi, 2
mov dword [esp + 8], edi
inc ecx
cmp ecx, dword [esp + 0xc]
jl 0x85d378
jmp 0x860143
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 4]
mov dword [esp + 8], edx
mov edi, dword [esp + 8]
cmp edi, eax
jae 0x8659c7
movzx edx, word [edi]
cmp edx, 0xff
ja 0x85d3ed
mov esi, dword [esp + 0x3c]
mov esi, dword [esi]
test byte [esi + edx], 0x10
jne 0x867099
add edi, 2
mov dword [esp + 8], edi
inc ecx
cmp ecx, dword [esp + 0xc]
jl 0x85d3c6
jmp 0x860143
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 4]
mov dword [esp + 8], edx
mov edi, dword [esp + 8]
cmp edi, eax
jae 0x865e82
movzx edx, word [edi]
cmp edx, 0xff
ja 0x867099
mov esi, dword [esp + 0x3c]
mov esi, dword [esi]
test byte [esi + edx], 0x10
je 0x867099
add edi, 2
mov dword [esp + 8], edi
inc ecx
cmp ecx, dword [esp + 0xc]
jl 0x85d410
jmp 0x860143
xor esi, esi
mov ebx, dword [esp + 4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
cmp ebx, eax
jae 0x865b87
mov edi, dword [esp + 0x158]
mov ecx, dword [edi + 0x18]
test ecx, ecx
je 0x85d48d
sub esp, 0xc
push 0
push dword [esp + 0x5c]
push eax
push ecx
push ebx
call fcn.00869060
add esp, 0x20
test eax, eax
je 0x85d4bc
jmp 0x867099
mov ecx, dword [esp + 0x4c]
mov ecx, dword [ecx]
lea edx, [ecx + ecx]
sub eax, edx
cmp ebx, eax
ja 0x85d4bc
movzx eax, word [ebx]
cmp ax, word [edi + 0x34]
jne 0x85d4bc
cmp ecx, 1
je 0x867099
movzx eax, word [ebx + 2]
cmp ax, word [edi + 0x36]
je 0x867099
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
lea edx, [ebx + 2]
test eax, eax
je 0x85d4fc
mov ecx, dword [esp + 0x14]
cmp edx, dword [ecx]
jb 0x85d4fc
cmp dword [edi + 0x18], 0
jne 0x85d4fc
mov ecx, dword [esp + 0x4c]
cmp dword [ecx], 2
jne 0x85d4fc
movzx ecx, word [ebx]
cmp cx, word [edi + 0x34]
jne 0x85d4fc
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
cmp eax, 1
jg 0x865568
inc esi
cmp esi, dword [esp + 0xc]
mov dword [esp + 8], edx
mov ebx, edx
jl 0x85d454
jmp 0x860143
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov edx, dword [esp + 0xc]
lea ecx, [edx + edx]
sub eax, ecx
mov ecx, dword [esp + 4]
cmp ecx, eax
ja 0x867313
lea eax, [ecx + edx*2]
mov dword [esp + 8], eax
jmp 0x860143
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
xor ecx, ecx
mov ebp, dword [esp + 4]
cmp ebp, eax
jae 0x865d49
lea edx, [ebp + 2]
mov dword [esp + 8], edx
movsx edx, word [ebp]
xor esi, esi
cmp edx, 0xc
mov ebx, dword [esp + 0x158]
jle 0x85d5a0
lea edi, [edx - 0x2028]
movzx edi, di
cmp edi, 2
jb 0x85d5ab
movzx edx, dx
cmp edx, 0x85
je 0x85d5ab
cmp edx, 0xd
jne case.0x866089.6
cmp dword [esp + 8], eax
jae 0x85d5b5
movzx edx, word [ebp + 2]
cmp edx, 0xa
jne 0x85d5b5
add ebp, 4
mov dword [esp + 8], ebp
jmp 0x85d5b5
lea edi, [edx - 0xb]
movzx edi, di
cmp edi, 2
jae 0x85d5c5
cmp dword [ebx + 0x6c], 0
jne 0x867099
inc ecx
cmp ecx, dword [esp + 0xc]
mov ebp, dword [esp + 8]
jl 0x85d545
jmp 0x860143
movzx edx, dx
cmp edx, 0xa
je 0x85d5b5
jmp case.0x866089.6
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 4]
mov dword [esp + 8], edx
mov edi, dword [esp + 8]
cmp edi, eax
jae 0x865c18
movsx edx, word [edi]
movsx esi, dx
cmp edx, 0x1fff
jle 0x85d617
cmp esi, 0x202e
jg 0x85d647
lea edx, [edx - 0x2000]
movzx edx, dx
cmp edx, 0xb
jae 0x85d681
jmp 0x867755
movzx edx, dx
cmp esi, 0x9f
jle 0x85d66f
cmp edx, 0xa0
je 0x867755
cmp edx, 0x1680
je 0x867755
cmp edx, 0x180e
jne 0x85d681
jmp 0x867755
movzx edx, dx
cmp edx, 0x202f
je 0x867755
cmp edx, 0x205f
je 0x867755
cmp edx, 0x3000
jne 0x85d681
jmp 0x867755
cmp edx, 9
je 0x867755
cmp edx, 0x20
je 0x867755
add edi, 2
mov dword [esp + 8], edi
inc ecx
cmp ecx, dword [esp + 0xc]
jl 0x85d5e2
jmp 0x860143
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 4]
mov dword [esp + 8], edx
mov edi, dword [esp + 8]
cmp edi, eax
jae 0x865c53
movsx edx, word [edi]
movsx esi, dx
cmp edx, 0x1fff
jle 0x85d6ef
cmp esi, 0x202e
jg 0x85d717
lea edx, [edx - 0x2000]
movzx edx, dx
cmp edx, 0xb
jae 0x867755
add edi, 2
mov dword [esp + 8], edi
inc ecx
cmp ecx, dword [esp + 0xc]
jl 0x85d6a8
jmp 0x860143
movzx edx, dx
cmp esi, 0x9f
jle 0x85d737
cmp edx, 0xa0
je 0x85d6dc
cmp edx, 0x1680
je 0x85d6dc
cmp edx, 0x180e
je 0x85d6dc
jmp 0x867755
movzx edx, dx
cmp edx, 0x202f
je 0x85d6dc
cmp edx, 0x3000
je 0x85d6dc
cmp edx, 0x205f
je 0x85d6dc
jmp 0x867755
cmp edx, 9
je 0x85d6dc
cmp edx, 0x20
je 0x85d6dc
jmp 0x867755
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 4]
mov dword [esp + 8], edx
mov edi, dword [esp + 8]
cmp edi, eax
jae 0x865c8e
movzx edx, word [edi]
lea esi, [edx - 0xa]
movzx esi, si
cmp esi, 4
jb 0x867755
lea esi, [edx - 0x2028]
movzx esi, si
cmp esi, 2
jb 0x867755
movzx edx, dx
cmp edx, 0x85
je 0x867755
add edi, 2
mov dword [esp + 8], edi
inc ecx
cmp ecx, dword [esp + 0xc]
jl 0x85d756
jmp 0x860143
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 4]
mov dword [esp + 8], edx
mov edi, dword [esp + 8]
cmp edi, eax
jae 0x865cc9
movzx edx, word [edi]
lea esi, [edx - 0xa]
movzx esi, si
cmp esi, 4
jb 0x85d7ef
lea esi, [edx - 0x2028]
movzx esi, si
cmp esi, 2
jb 0x85d7ef
movzx edx, dx
cmp edx, 0x85
jne 0x867755
add edi, 2
mov dword [esp + 8], edi
inc ecx
cmp ecx, dword [esp + 0xc]
jl 0x85d7b8
jmp 0x860143
cmp edx, dword [esp + 0xc]
mov eax, dword [esp + 8]
mov dword [esp + 4], eax
jle 0x85e678
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov ecx, dword [esp + 8]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 4]
cmp ecx, eax
jae 0x85dd78
movzx ecx, word [ecx]
mov esi, ecx
and esi, 0xfc00
mov edx, 2
cmp esi, 0xd800
je 0x85d868
mov edx, 1
cmp ecx, 0xff
ja 0x85d868
mov edx, dword [esp + 0x3c]
mov esi, dword [edx]
mov edx, 1
test byte [esi + ecx], 4
jne 0x85e678
mov ecx, dword [esp + 4]
lea ecx, [ecx + edx*2]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0xc]
inc ecx
mov dword [esp + 0xc], ecx
cmp ecx, dword [esp + 0x24]
jl 0x85d822
jmp 0x85e678
cmp edx, dword [esp + 0xc]
mov eax, dword [esp + 8]
mov dword [esp + 4], eax
jle 0x85e678
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov ecx, dword [esp + 8]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 4]
cmp ecx, eax
jae 0x85dd78
movzx ecx, word [ecx]
cmp ecx, 0xff
ja 0x85e678
mov edx, ecx
and edx, 0xfc00
cmp edx, 0xd800
je 0x85e678
mov edx, dword [esp + 0x3c]
mov edx, dword [edx]
test byte [edx + ecx], 4
je 0x85e678
add dword [esp + 4], 2
mov ecx, dword [esp + 0xc]
inc ecx
mov dword [esp + 0xc], ecx
cmp ecx, dword [esp + 0x24]
jl 0x85d8a7
jmp 0x85e678
cmp edx, dword [esp + 0xc]
mov eax, dword [esp + 8]
mov dword [esp + 4], eax
jle 0x85e678
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov ecx, dword [esp + 8]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 4]
cmp ecx, eax
jae 0x85dd78
movzx ecx, word [ecx]
mov esi, ecx
and esi, 0xfc00
mov edx, 2
cmp esi, 0xd800
je 0x85d965
mov edx, 1
cmp ecx, 0xff
ja 0x85d965
mov edx, dword [esp + 0x3c]
mov esi, dword [edx]
mov edx, 1
test byte [esi + ecx], 1
jne 0x85e678
mov ecx, dword [esp + 4]
lea ecx, [ecx + edx*2]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0xc]
inc ecx
mov dword [esp + 0xc], ecx
cmp ecx, dword [esp + 0x24]
jl 0x85d91f
jmp 0x85e678
cmp edx, dword [esp + 0xc]
mov eax, dword [esp + 8]
mov dword [esp + 4], eax
jle 0x85e678
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov ecx, dword [esp + 8]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 4]
cmp ecx, eax
jae 0x85dd78
movzx ecx, word [ecx]
cmp ecx, 0xff
ja 0x85e678
mov edx, ecx
and edx, 0xfc00
cmp edx, 0xd800
je 0x85e678
mov edx, dword [esp + 0x3c]
mov edx, dword [edx]
test byte [edx + ecx], 1
je 0x85e678
add dword [esp + 4], 2
mov ecx, dword [esp + 0xc]
inc ecx
mov dword [esp + 0xc], ecx
cmp ecx, dword [esp + 0x24]
jl 0x85d9a4
jmp 0x85e678
cmp edx, dword [esp + 0xc]
mov eax, dword [esp + 8]
mov dword [esp + 4], eax
jle 0x85e678
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov ecx, dword [esp + 8]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 4]
cmp ecx, eax
jae 0x85dd78
movzx ecx, word [ecx]
mov esi, ecx
and esi, 0xfc00
mov edx, 2
cmp esi, 0xd800
je 0x85da62
mov edx, 1
cmp ecx, 0xff
ja 0x85da62
mov edx, dword [esp + 0x3c]
mov esi, dword [edx]
mov edx, 1
test byte [esi + ecx], 0x10
jne 0x85e678
mov ecx, dword [esp + 4]
lea ecx, [ecx + edx*2]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0xc]
inc ecx
mov dword [esp + 0xc], ecx
cmp ecx, dword [esp + 0x24]
jl 0x85da1c
jmp 0x85e678
cmp edx, dword [esp + 0xc]
mov eax, dword [esp + 8]
mov dword [esp + 4], eax
jle 0x85e678
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov ecx, dword [esp + 8]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 4]
cmp ecx, eax
jae 0x85dd78
movzx ecx, word [ecx]
cmp ecx, 0xff
ja 0x85e678
mov edx, ecx
and edx, 0xfc00
cmp edx, 0xd800
je 0x85e678
mov edx, dword [esp + 0x3c]
mov edx, dword [edx]
test byte [edx + ecx], 0x10
je 0x85e678
add dword [esp + 4], 2
mov ecx, dword [esp + 0xc]
inc ecx
mov dword [esp + 0xc], ecx
cmp ecx, dword [esp + 0x24]
jl 0x85daa1
jmp 0x85e678
cmp edx, dword [esp + 0xc]
mov eax, dword [esp + 8]
mov dword [esp + 4], eax
jle 0x85e678
mov esi, dword [esp + 8]
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
cmp esi, eax
jae 0x85dc26
mov ecx, dword [esp + 0x158]
mov ecx, dword [ecx + 0x18]
test ecx, ecx
je 0x85db4a
sub esp, 0xc
push dword [esp + 0x3c]
push dword [esp + 0x5c]
push eax
push ecx
push esi
call fcn.00869060
add esp, 0x20
test eax, eax
je 0x85db87
jmp 0x85dc54
mov ecx, dword [esp + 0x4c]
mov ecx, dword [ecx]
lea edx, [ecx + ecx]
sub eax, edx
cmp esi, eax
ja 0x85db87
movzx eax, word [esi]
mov edx, dword [esp + 0x158]
cmp ax, word [edx + 0x34]
jne 0x85db87
cmp ecx, 1
je 0x85dc90
movzx eax, word [esi + 2]
mov ecx, dword [esp + 0x158]
cmp ax, word [ecx + 0x36]
je 0x85dca4
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
test ecx, ecx
je 0x85dbe0
lea edx, [esi + 2]
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov ebx, edx
cmp edx, eax
jb 0x85dbdc
mov edx, dword [esp + 0x158]
cmp dword [edx + 0x18], 0
jne 0x85dbdc
mov edx, dword [esp + 0x4c]
cmp dword [edx], 2
jne 0x85dbdc
movzx edx, word [esi]
mov edi, dword [esp + 0x158]
cmp dx, word [edi + 0x34]
jne 0x85dbdc
mov edx, dword [esp + 0x1c]
mov dword [edx], 1
cmp ecx, 1
mov ecx, ebx
jle 0x85dbe9
jmp 0x866463
mov ecx, ebx
jmp 0x85dbe9
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
lea ecx, [esi + 2]
mov dword [esp + 4], ecx
cmp ecx, eax
mov ecx, dword [esp + 0x24]
jae 0x85dc0c
movzx eax, word [esi + 2]
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x85dc0c
add esi, 4
mov dword [esp + 4], esi
mov eax, dword [esp + 0xc]
inc eax
mov dword [esp + 0xc], eax
cmp eax, ecx
mov esi, dword [esp + 4]
jl 0x85db0f
jmp 0x85e678
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85dc68
mov ecx, dword [esp + 0x20]
cmp esi, dword [ecx]
jbe 0x85dc7c
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
cmp eax, 1
mov dword [esp + 4], esi
jle 0x85e678
jmp 0x866463
mov dword [esp + 4], esi
cmp dword [esp + 0x50], 0
jne 0x85e690
jmp 0x86358f
mov dword [esp + 4], esi
cmp dword [esp + 0x50], 0
jne 0x85e690
jmp 0x86358f
mov dword [esp + 4], esi
cmp dword [esp + 0x50], 0
jne 0x85e690
jmp 0x86358f
mov dword [esp + 4], esi
cmp dword [esp + 0x50], 0
jne 0x85e690
jmp 0x86358f
mov dword [esp + 4], esi
jmp 0x85e678
cmp edx, 0x7fffffff
jne 0x85dcc4
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov dword [esp + 4], eax
jmp 0x85dd78
cmp edx, dword [esp + 0xc]
mov eax, dword [esp + 8]
mov dword [esp + 4], eax
jle 0x85e678
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov ecx, dword [esp + 8]
cmp ecx, eax
jae 0x85dd22
lea edx, [ecx + 2]
mov dword [esp + 4], edx
cmp edx, eax
jae 0x85dd08
movzx edx, word [ecx + 2]
and edx, 0xfc00
cmp edx, 0xdc00
jne 0x85dd08
add ecx, 4
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
inc edx
mov dword [esp + 0xc], edx
cmp edx, ecx
mov ecx, dword [esp + 4]
jl 0x85dce0
jmp 0x85e678
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85dd50
mov edx, dword [esp + 0x20]
cmp ecx, dword [edx]
jbe 0x85dd64
mov edx, dword [esp + 0x1c]
mov dword [edx], 1
cmp eax, 1
mov dword [esp + 4], ecx
jle 0x85e678
jmp 0x866463
mov dword [esp + 4], ecx
cmp dword [esp + 0x50], 0
jne 0x85e690
jmp 0x86358f
mov dword [esp + 4], ecx
cmp dword [esp + 0x50], 0
jne 0x85e690
jmp 0x86358f
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85e678
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 4]
cmp edx, dword [ecx]
jbe 0x85e678
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
cmp eax, 1
jle 0x85e678
jmp 0x866463
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx]
mov dword [esp + 4], ecx
mov edx, dword [esp + 8]
sub ecx, edx
sar ecx, 1
cmp eax, ecx
ja 0x85dd78
lea eax, [edx + eax*2]
mov dword [esp + 4], eax
cmp dword [esp + 0x50], 0
jne 0x85e690
jmp 0x86358f
cmp edx, dword [esp + 0xc]
mov eax, dword [esp + 8]
mov dword [esp + 4], eax
jle 0x85e678
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov ecx, dword [esp + 8]
mov dword [esp + 4], ecx
mov edi, dword [esp + 4]
cmp edi, eax
jae 0x85dd78
movzx ecx, word [edi]
mov esi, ecx
and esi, 0xfc00
mov edx, 1
cmp esi, 0xd800
jne 0x85de3e
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 0x85de95
cmp ecx, 0xd
jne 0x85de65
mov esi, dword [esp + 4]
lea ecx, [esi + 2]
cmp ecx, eax
jae 0x85deba
movzx edx, word [esi + 2]
cmp edx, 0xa
jne 0x85de9c
add esi, 4
mov dword [esp + 4], esi
jmp 0x85dea0
mov esi, dword [esp + 0x158]
cmp dword [esi + 0x6c], 0
jne 0x85e678
lea esi, [ecx - 0xb]
cmp esi, 2
jb 0x85de95
lea esi, [ecx - 0x2028]
cmp esi, 2
jb 0x85de95
cmp ecx, 0x85
jne 0x85e678
mov ecx, dword [esp + 4]
lea ecx, [ecx + edx*2]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
inc edx
mov dword [esp + 0xc], edx
cmp edx, ecx
jl 0x85ddfb
jmp 0x85e678
mov dword [esp + 4], ecx
cmp dword [esp + 0x50], 0
jne 0x85e690
jmp 0x86358f
cmp eax, 0x3000
je case.0x8611d6.0
cmp eax, 0x180e
je case.0x8611d6.0
movzx eax, byte [ecx*8 + 0x89f185]
cmp dword [eax*4 + 0x89e698], 6
jmp 0x862dbf
cmp edx, dword [esp + 0xc]
mov eax, dword [esp + 8]
mov dword [esp + 4], eax
jle 0x85e630
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov ecx, dword [esp + 8]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 4]
cmp ecx, eax
jae 0x85e64e
movzx ecx, word [ecx]
cmp ecx, 0xff
ja 0x85df40
mov edx, dword [esp + 0x3c]
mov edx, dword [edx]
test byte [edx + ecx], 4
jne 0x85e630
add dword [esp + 4], 2
mov ecx, dword [esp + 0xc]
inc ecx
mov dword [esp + 0xc], ecx
cmp ecx, dword [esp + 0x24]
jl 0x85df19
jmp 0x85e630
cmp edx, dword [esp + 0xc]
mov eax, dword [esp + 8]
mov dword [esp + 4], eax
jle 0x85e630
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov ecx, dword [esp + 8]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 4]
cmp ecx, eax
jae 0x85e64e
movzx ecx, word [ecx]
cmp ecx, 0xff
ja 0x85e630
mov edx, dword [esp + 0x3c]
mov edx, dword [edx]
test byte [edx + ecx], 4
je 0x85e630
add dword [esp + 4], 2
mov ecx, dword [esp + 0xc]
inc ecx
mov dword [esp + 0xc], ecx
cmp ecx, dword [esp + 0x24]
jl 0x85df79
jmp 0x85e630
cmp edx, dword [esp + 0xc]
mov eax, dword [esp + 8]
mov dword [esp + 4], eax
jle 0x85e630
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov ecx, dword [esp + 8]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 4]
cmp ecx, eax
jae 0x85e64e
movzx ecx, word [ecx]
cmp ecx, 0xff
ja 0x85e004
mov edx, dword [esp + 0x3c]
mov edx, dword [edx]
test byte [edx + ecx], 1
jne 0x85e630
add dword [esp + 4], 2
mov ecx, dword [esp + 0xc]
inc ecx
mov dword [esp + 0xc], ecx
cmp ecx, dword [esp + 0x24]
jl 0x85dfdd
jmp 0x85e630
cmp edx, dword [esp + 0xc]
mov eax, dword [esp + 8]
mov dword [esp + 4], eax
jle 0x85e630
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov ecx, dword [esp + 8]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 4]
cmp ecx, eax
jae 0x85e64e
movzx ecx, word [ecx]
cmp ecx, 0xff
ja 0x85e630
mov edx, dword [esp + 0x3c]
mov edx, dword [edx]
test byte [edx + ecx], 1
je 0x85e630
add dword [esp + 4], 2
mov ecx, dword [esp + 0xc]
inc ecx
mov dword [esp + 0xc], ecx
cmp ecx, dword [esp + 0x24]
jl 0x85e03d
jmp 0x85e630
cmp edx, dword [esp + 0xc]
mov eax, dword [esp + 8]
mov dword [esp + 4], eax
jle 0x85e630
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov ecx, dword [esp + 8]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 4]
cmp ecx, eax
jae 0x85e64e
movzx ecx, word [ecx]
cmp ecx, 0xff
ja 0x85e0c8
mov edx, dword [esp + 0x3c]
mov edx, dword [edx]
test byte [edx + ecx], 0x10
jne 0x85e630
add dword [esp + 4], 2
mov ecx, dword [esp + 0xc]
inc ecx
mov dword [esp + 0xc], ecx
cmp ecx, dword [esp + 0x24]
jl 0x85e0a1
jmp 0x85e630
cmp edx, dword [esp + 0xc]
mov eax, dword [esp + 8]
mov dword [esp + 4], eax
jle 0x85e630
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov ecx, dword [esp + 8]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 4]
cmp ecx, eax
jae 0x85e64e
movzx ecx, word [ecx]
cmp ecx, 0xff
ja 0x85e630
mov edx, dword [esp + 0x3c]
mov edx, dword [edx]
test byte [edx + ecx], 0x10
je 0x85e630
add dword [esp + 4], 2
mov ecx, dword [esp + 0xc]
inc ecx
mov dword [esp + 0xc], ecx
cmp ecx, dword [esp + 0x24]
jl 0x85e101
jmp 0x85e630
cmp edx, dword [esp + 0xc]
mov eax, dword [esp + 8]
mov dword [esp + 4], eax
jle 0x85e630
mov esi, dword [esp + 8]
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
cmp esi, eax
jae 0x85e23d
mov ecx, dword [esp + 0x158]
mov ecx, dword [ecx + 0x18]
test ecx, ecx
je 0x85e194
sub esp, 0xc
push 0
push dword [esp + 0x5c]
push eax
push ecx
push esi
call fcn.00869060
add esp, 0x20
test eax, eax
je 0x85e1d1
jmp 0x85e26b
mov ecx, dword [esp + 0x4c]
mov ecx, dword [ecx]
lea edx, [ecx + ecx]
sub eax, edx
cmp esi, eax
ja 0x85e1d1
movzx eax, word [esi]
mov edx, dword [esp + 0x158]
cmp ax, word [edx + 0x34]
jne 0x85e1d1
cmp ecx, 1
je 0x85e2a7
movzx eax, word [esi + 2]
mov ecx, dword [esp + 0x158]
cmp ax, word [ecx + 0x36]
je 0x85e2bb
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
lea edi, [esi + 2]
test eax, eax
je 0x85e21f
mov ecx, dword [esp + 0x14]
cmp edi, dword [ecx]
jb 0x85e21f
mov ecx, dword [esp + 0x158]
cmp dword [ecx + 0x18], 0
jne 0x85e21f
mov ecx, dword [esp + 0x4c]
cmp dword [ecx], 2
jne 0x85e21f
movzx ecx, word [esi]
mov edx, dword [esp + 0x158]
cmp cx, word [edx + 0x34]
jne 0x85e21f
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
cmp eax, 1
jg 0x866463
mov eax, dword [esp + 0xc]
inc eax
mov dword [esp + 0xc], eax
cmp eax, dword [esp + 0x24]
mov dword [esp + 4], edi
mov esi, edi
jl 0x85e15b
jmp 0x85e630
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85e27f
mov ecx, dword [esp + 0x20]
cmp esi, dword [ecx]
jbe 0x85e293
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
cmp eax, 1
mov dword [esp + 4], esi
jle 0x85e630
jmp 0x866463
mov dword [esp + 4], esi
cmp dword [esp + 0x50], 0
jne 0x85e690
jmp 0x8636c5
mov dword [esp + 4], esi
cmp dword [esp + 0x50], 0
jne 0x85e690
jmp 0x8636c5
mov dword [esp + 4], esi
cmp dword [esp + 0x50], 0
jne 0x85e690
jmp 0x8636c5
mov dword [esp + 4], esi
cmp dword [esp + 0x50], 0
jne 0x85e690
jmp 0x8636c5
mov dword [esp + 4], esi
cmp dword [esp + 0x50], 0
jne 0x85e690
jmp 0x8636c5
cmp edx, dword [esp + 0xc]
mov eax, dword [esp + 8]
mov dword [esp + 4], eax
jle 0x85e630
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov ecx, dword [esp + 8]
mov dword [esp + 4], ecx
jmp 0x85e2fa
add esi, 4
mov dword [esp + 4], esi
jmp 0x85e36b
mov ecx, dword [esp + 4]
cmp ecx, eax
jae 0x85e64e
movzx ecx, word [ecx]
cmp ecx, 0xa
je 0x85e366
movzx edx, cx
cmp edx, 0xd
jne 0x85e330
mov esi, dword [esp + 4]
lea ecx, [esi + 2]
cmp ecx, eax
jae 0x85e385
movzx edx, word [esi + 2]
cmp edx, 0xa
je 0x85e2f1
mov dword [esp + 4], ecx
jmp 0x85e36b
mov esi, dword [esp + 0x158]
cmp dword [esi + 0x6c], 0
jne 0x85e630
lea esi, [ecx - 0xb]
movzx esi, si
cmp esi, 2
jb 0x85e366
add ecx, 0xffffdfd8
movzx ecx, cx
cmp ecx, 2
jb 0x85e366
cmp edx, 0x85
jne 0x85e630
add dword [esp + 4], 2
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
inc edx
mov dword [esp + 0xc], edx
cmp edx, ecx
jl 0x85e2fa
jmp 0x85e630
mov dword [esp + 4], ecx
cmp dword [esp + 0x50], 0
jne 0x85e690
jmp 0x8636c5
cmp edx, dword [esp + 0xc]
mov eax, dword [esp + 8]
mov dword [esp + 4], eax
jle 0x85e630
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov ecx, dword [esp + 8]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 4]
cmp ecx, eax
jae 0x85e64e
movsx ecx, word [ecx]
movsx edx, cx
cmp ecx, 0x1fff
jle 0x85e3f2
cmp edx, 0x202e
jg 0x85e426
lea ecx, [ecx - 0x2000]
movzx ecx, cx
cmp ecx, 0xb
mov edx, dword [esp + 0x24]
jae 0x85e468
jmp 0x85e630
movzx ecx, cx
cmp edx, 0x9f
jle 0x85e452
cmp ecx, 0xa0
mov edx, dword [esp + 0x24]
je 0x85e630
cmp ecx, 0x1680
je 0x85e630
cmp ecx, 0x180e
jne 0x85e468
jmp 0x85e630
movzx ecx, cx
cmp ecx, 0x202f
je 0x85e630
cmp ecx, 0x205f
mov edx, dword [esp + 0x24]
je 0x85e630
cmp ecx, 0x3000
jne 0x85e468
jmp 0x85e630
cmp ecx, 9
mov edx, dword [esp + 0x24]
je 0x85e630
cmp ecx, 0x20
je 0x85e630
add dword [esp + 4], 2
mov ecx, dword [esp + 0xc]
inc ecx
mov dword [esp + 0xc], ecx
cmp ecx, edx
jl 0x85e3b9
jmp 0x85e630
cmp edx, dword [esp + 0xc]
mov eax, dword [esp + 8]
mov dword [esp + 4], eax
jle 0x85e630
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov ecx, dword [esp + 8]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 4]
cmp ecx, eax
jae 0x85e64e
movsx ecx, word [ecx]
movsx edx, cx
cmp ecx, 0x1fff
jle 0x85e4f2
cmp edx, 0x202e
jg 0x85e51e
lea ecx, [ecx - 0x2000]
movzx ecx, cx
cmp ecx, 0xb
mov edx, dword [esp + 0x24]
jae 0x85e630
add dword [esp + 4], 2
mov ecx, dword [esp + 0xc]
inc ecx
mov dword [esp + 0xc], ecx
cmp ecx, edx
jl 0x85e4a3
jmp 0x85e630
movzx ecx, cx
cmp edx, 0x9f
jle 0x85e542
cmp ecx, 0xa0
mov edx, dword [esp + 0x24]
je 0x85e4db
cmp ecx, 0x1680
je 0x85e4db
cmp ecx, 0x180e
je 0x85e4db
jmp 0x85e630
movzx ecx, cx
cmp ecx, 0x202f
mov edx, dword [esp + 0x24]
je 0x85e4db
cmp ecx, 0x3000
je 0x85e4db
cmp ecx, 0x205f
je 0x85e4db
jmp 0x85e630
cmp ecx, 9
mov edx, dword [esp + 0x24]
je 0x85e4db
cmp ecx, 0x20
je 0x85e4db
jmp 0x85e630
cmp edx, dword [esp + 0xc]
mov eax, dword [esp + 8]
mov dword [esp + 4], eax
jle 0x85e630
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov ecx, dword [esp + 8]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 4]
cmp ecx, eax
jae 0x85e64e
movzx ecx, word [ecx]
lea edx, [ecx - 0xa]
movzx edx, dx
cmp edx, 4
jb 0x85e630
lea edx, [ecx - 0x2028]
movzx edx, dx
cmp edx, 2
jb 0x85e630
movzx ecx, cx
cmp ecx, 0x85
mov ecx, dword [esp + 0x24]
je 0x85e630
add dword [esp + 4], 2
mov edx, dword [esp + 0xc]
inc edx
mov dword [esp + 0xc], edx
cmp edx, ecx
jl 0x85e575
jmp 0x85e630
cmp edx, dword [esp + 0xc]
mov eax, dword [esp + 8]
mov dword [esp + 4], eax
jle 0x85e630
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov ecx, dword [esp + 8]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 4]
cmp ecx, eax
jae 0x85e64e
movzx ecx, word [ecx]
lea edx, [ecx - 0xa]
movzx edx, dx
cmp edx, 4
jb 0x85e613
lea edx, [ecx - 0x2028]
movzx edx, dx
cmp edx, 2
jb 0x85e613
movzx ecx, cx
cmp ecx, 0x85
jne 0x85e630
add dword [esp + 4], 2
mov ecx, dword [esp + 0xc]
inc ecx
mov dword [esp + 0xc], ecx
cmp ecx, dword [esp + 0x24]
jl 0x85e5e4
jmp 0x85e630
lea eax, [edx + eax*2]
mov dword [esp + 4], eax
cmp dword [esp + 0x50], 0
jne 0x85e690
jmp 0x8636c5
mov ebp, ecx
mov dword [esp + 4], ebp
cmp dword [esp + 0x50], 0
jne 0x85e690
jmp 0x862fe9
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85e630
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 4]
cmp edx, dword [ecx]
jbe 0x85e630
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
cmp eax, 1
jle 0x85e630
jmp 0x866463
cmp dword [esp + 0x50], 0
je 0x86358f
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0x10]
movzx edi, word [edx]
cmp edi, 0xa1
ja case.0x85e6a7.98
xor eax, eax
xor esi, esi
jmp dword [edi*4 + 0x86776c]
movzx eax, di
cmp eax, 0x2e
mov eax, 0x21
jb 0x85e6c0
mov eax, 0x2e
mov esi, edi
sub edi, eax
mov eax, 0x3cf
bt eax, edi
mov ecx, dword [esp + 0x158]
mov ebp, dword [esp + 4]
jae 0x85e75d
mov dword [esp + 0x38], 0x7fffffff
jmp 0x85e768
mov eax, edx
movzx ecx, word [eax + 2]
movzx edx, word [eax + ecx*2]
lea eax, [eax + ecx*2]
cmp edx, 0x77
mov edx, eax
je case.0x85e6a7.119
mov dword [esp + 0x10], edx
jmp 0x85e690
movzx eax, di
cmp eax, 0x47
mov eax, 0x48
ja 0x85e71c
mov eax, 0x3b
mov ebp, edi
sub ebp, eax
mov eax, 0x3cf
bt eax, ebp
mov esi, dword [esp + 4]
mov ebx, edi
jae 0x85e786
mov dword [esp + 0x38], 0x7fffffff
jmp 0x85e791
mov ebp, edx
lea eax, [edi - 0x55]
mov edx, edi
not edx
mov ecx, 0x3cf
bt ecx, eax
jae 0x85e81d
mov eax, edx
mov edx, 0x7fffffff
jmp 0x85e826
movsx eax, byte [edi + 0x89e54b]
mov dword [esp + 0x38], eax
add edx, 2
movsx eax, byte [edi + 0x89e540]
mov dword [esp + 0xc], eax
and edi, 1
mov dword [esp + 0x44], 0
jmp 0x85e9ee
movsx eax, byte [ebp + 0x89e54b]
mov dword [esp + 0x38], eax
add edx, 2
movsx edi, byte [ebp + 0x89e540]
and ebp, 1
mov dword [esp + 0x44], ebp
mov dword [esp + 0x48], 0
jmp 0x85ee20
movzx eax, word [edx + 2]
mov dword [esp + 0x38], eax
mov ebx, edi
movzx eax, di
cmp eax, 0x42
sete cl
cmp eax, 0x4f
sete al
or al, cl
movzx eax, al
mov dword [esp + 0x44], eax
add edx, 4
xor edi, edi
mov dword [esp + 0x48], 0
jmp 0x85ee1c
mov dword [esp + 0x24], edi
movzx eax, word [edx + 2]
add eax, eax
mov ecx, eax
neg ecx
movzx esi, word [edx + ecx]
cmp esi, 0x87
ja 0x85f5c9
movzx ecx, si
cmp ecx, 0x81
je 0x85f5c9
mov dword [esp + 0x10], 0
jmp 0x85f5da
mov eax, edx
movsx edx, byte [edi + 0x89e4f6]
mov esi, dword [esp + 4]
mov ebx, ebp
add ebx, 2
and eax, 1
mov dword [esp + 0x48], eax
movsx ecx, byte [edi + 0x89e4eb]
xor edi, edi
jmp 0x85ff9d
cmp dword [esp + 0x30], 0
mov esi, dword [esp + 0x158]
mov eax, dword [esi + 0x78]
mov dword [esp + 0x24], edi
je 0x860dc9
mov ebp, dword [esp + 4]
cmp ebp, eax
je 0x861336
movzx eax, word [ebp - 2]
and eax, 0xfc00
cmp eax, 0xdc00
je 0x861ab0
lea ecx, [ebp - 2]
jmp 0x861ab3
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 4]
cmp ebx, dword [eax]
jae 0x864765
mov dword [esp + 0x24], edi
lea ecx, [ebx + 2]
movzx eax, word [ebx]
cmp dword [esp + 0x30], 0
je 0x861192
mov esi, edx
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x861196
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [ebx + 2]
add ebx, 4
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x861198
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 4]
cmp ebx, dword [eax]
jae 0x8647a0
cmp dword [esp + 0x30], 0
je 0x860e42
movzx eax, word [edx + 2]
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x860f1b
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [edx + 4]
add edx, 6
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x860f1e
mov esi, edi
movzx eax, word [edx + 2]
add edx, 4
mov dword [esp + 0x44], 0
mov dword [esp + 0xc], eax
mov dword [esp + 0x38], eax
jmp 0x85e9ad
mov esi, edi
add edx, 2
mov dword [esp + 0x44], 1
mov dword [esp + 0x38], 0x7fffffff
mov dword [esp + 0xc], 0
jmp 0x85e9ad
mov esi, edi
add edx, 2
xor edi, edi
mov dword [esp + 0x38], 0x7fffffff
mov dword [esp + 0xc], 1
mov dword [esp + 0x44], 1
jmp 0x85e9e3
mov esi, edi
add edx, 2
mov dword [esp + 0x38], 1
mov dword [esp + 0xc], 0
mov dword [esp + 0x44], 1
xor edi, edi
jmp 0x85e9e3
mov eax, 1
mov dword [esp + 0x44], eax
movzx eax, word [edx + 2]
mov dword [esp + 0x38], eax
mov esi, edi
movzx eax, di
cmp eax, 0x28
sete cl
cmp eax, 0x35
sete al
or al, cl
movzx edi, al
add edx, 4
mov dword [esp + 0xc], 0
mov ecx, dword [esp + 0x158]
mov ebp, dword [esp + 4]
movzx ebx, word [edx]
cmp dword [esp + 0x30], 0
je 0x85ea7f
mov eax, ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x85ea7f
movzx eax, si
xor ecx, ecx
cmp eax, 0x2e
mov dword [esp + 8], edx
jb 0x85ec48
shl ebx, 0xa
and ebx, 0xffc00
movzx eax, word [edx + 2]
and eax, 0x3ff
lea eax, [ebx + eax + 0x10000]
mov ecx, eax
shr ecx, 7
movzx ecx, byte [ecx + 0x8a0804]
shl ecx, 7
mov edx, eax
and edx, 0x7f
or edx, ecx
movzx ecx, word [edx + edx + 0x8a2a04]
mov ecx, dword [ecx*8 + 0x89f188]
test ecx, ecx
je 0x85ec42
add ecx, eax
sub esp, 8
lea eax, [esp + 0xc0]
push eax
push ecx
call fcn.008691e0
add esp, 0x10
mov ecx, eax
jmp 0x85ec44
mov eax, edx
add eax, 2
mov dword [esp + 0x10], eax
movzx eax, si
cmp eax, 0x2e
jb 0x85eae6
mov dword [esp + 0x48], edi
cmp dword [esp + 0x30], 0
je 0x85eb7c
movzx eax, bx
cmp eax, 0x80
jb 0x85eb7c
mov eax, ebx
shr eax, 7
movzx eax, byte [eax + 0x8a0804]
shl eax, 7
mov ecx, ebx
and ecx, 0x7f
or ecx, eax
movzx eax, word [ecx + ecx + 0x8a2a04]
mov edi, dword [eax*8 + 0x89f188]
add edi, ebx
cmp dword [esp + 0xc], 0
jg 0x85eb98
mov edx, ebp
jmp 0x85ebd6
cmp dword [esp + 0xc], 0
jle 0x85eb1c
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp ebp, eax
jae 0x863848
cmp bx, word [ebp]
jne 0x867099
add ebp, 2
inc ecx
cmp ecx, dword [esp + 0xc]
jl 0x85eb00
mov ecx, edi
mov eax, dword [esp + 0xc]
cmp eax, dword [esp + 0x38]
mov edi, ebp
mov dword [esp + 4], ebp
je 0x85e690
test ecx, ecx
jne 0x864825
mov eax, dword [esp + 0xc]
cmp eax, dword [esp + 0x38]
mov ecx, edi
mov edx, ecx
jge 0x861fb3
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov edx, ecx
cmp edx, eax
jae 0x861f8e
cmp bx, word [edx]
jne 0x861fb3
add edx, 2
mov ecx, dword [esp + 0xc]
inc ecx
mov dword [esp + 0xc], ecx
cmp ecx, dword [esp + 0x38]
jl 0x85eb54
jmp 0x861fb3
cmp ebx, 0xff
mov edi, ebx
ja 0x85eb8d
mov eax, dword [ecx + 0x40]
movzx edi, byte [eax + ebx]
cmp dword [esp + 0xc], 0
jle 0x85eadf
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
xor ecx, ecx
mov edx, ebp
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp edx, eax
jae 0x86387f
mov esi, edx
movzx edx, word [edx]
cmp bx, dx
je 0x85ebca
cmp edi, edx
jne 0x867099
mov edx, esi
add edx, 2
inc ecx
cmp ecx, dword [esp + 0xc]
jl 0x85ebb0
mov eax, dword [esp + 0xc]
cmp eax, dword [esp + 0x38]
mov dword [esp + 8], edx
mov dword [esp + 4], edx
je 0x85e690
cmp dword [esp + 0x48], 0
jne 0x8648b1
mov eax, dword [esp + 0xc]
cmp eax, dword [esp + 0x38]
mov edx, dword [esp + 8]
jge 0x861fec
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov edx, dword [esp + 8]
cmp edx, eax
jae 0x861fc7
movzx ecx, word [edx]
cmp bx, cx
je 0x85ec2b
cmp edi, ecx
jne 0x861fec
add edx, 2
mov ecx, dword [esp + 0xc]
inc ecx
mov dword [esp + 0xc], ecx
cmp ecx, dword [esp + 0x38]
jl 0x85ec13
jmp 0x861fec
xor ecx, ecx
mov edx, dword [esp + 8]
mov dword [esp + 0x48], edi
cmp dword [esp + 0xc], 0
mov dword [esp + 0x24], ecx
jle 0x85ecd0
mov eax, dword [esp + 0x14]
mov edi, dword [eax]
lea esi, [edi - 4]
lea eax, [ecx + ecx]
mov dword [esp + 0x10], edi
mov dword [esp + 4], eax
sub edi, eax
mov ebx, ebp
xor ebp, ebp
jmp 0x85ec80
mov eax, 2
jmp 0x85ecc4
cmp ebx, esi
ja 0x85ec8a
mov eax, dword [ebx]
cmp eax, dword [edx]
je 0x85ec73
test ecx, ecx
jle 0x863799
cmp ebx, edi
ja 0x863799
sub esp, 4
lea eax, [esp + 0xbc]
push dword [esp + 8]
push eax
push ebx
call sub.msvcrt.dll_memcmp
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x18]
add esp, 0x10
test eax, eax
mov eax, ecx
jne 0x863799
lea ebx, [ebx + eax*2]
inc ebp
cmp ebp, dword [esp + 0xc]
jl 0x85ec80
jmp 0x85ecd2
mov ebx, ebp
lea eax, [edx + 4]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xc]
cmp eax, dword [esp + 0x38]
mov dword [esp + 4], ebx
je 0x85e690
cmp dword [esp + 0x48], 0
jne 0x864138
mov eax, dword [esp + 0xc]
cmp eax, dword [esp + 0x38]
mov edi, ebx
mov ecx, dword [esp + 0x24]
jge 0x86209d
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
lea ebp, [eax - 4]
lea esi, [ecx + ecx]
mov dword [esp + 0x50], eax
mov dword [esp + 0x48], esi
sub eax, esi
mov dword [esp + 4], eax
mov edi, ebx
jmp 0x85ed31
mov eax, 2
mov edi, esi
jmp 0x85ed7b
mov esi, edi
cmp edi, ebp
ja 0x85ed3d
mov eax, dword [esi]
cmp eax, dword [edx]
je 0x85ed28
test ecx, ecx
mov edi, esi
jle 0x85f7a3
cmp edi, dword [esp + 4]
ja 0x85f7a3
sub esp, 4
lea eax, [esp + 0xbc]
push dword [esp + 0x4c]
push eax
push edi
call sub.msvcrt.dll_memcmp
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x18]
add esp, 0x10
test eax, eax
mov eax, ecx
jne 0x85f7a3
lea edi, [edi + eax*2]
mov eax, dword [esp + 0xc]
inc eax
mov dword [esp + 0xc], eax
cmp eax, dword [esp + 0x38]
jl 0x85ed31
jmp 0x86209d
mov ebx, edi
movzx edi, word [edx + 2]
add edx, 4
mov dword [esp + 0x48], 0
mov dword [esp + 0x38], edi
jmp 0x85ee14
mov ebx, edi
add edx, 2
mov dword [esp + 0x48], 1
mov dword [esp + 0x38], 0x7fffffff
jmp 0x85ee12
mov ebx, edi
add edx, 2
mov dword [esp + 0x44], 0
mov dword [esp + 0x38], 0x7fffffff
mov edi, 1
mov dword [esp + 0x48], 1
jmp 0x85ee1c
mov ebx, edi
add edx, 2
mov dword [esp + 0x38], 1
xor edi, edi
mov dword [esp + 0x48], 1
jmp 0x85ee14
mov ebx, edi
movzx eax, word [edx + 2]
mov dword [esp + 0x38], eax
add edx, 4
mov dword [esp + 0x48], 1
xor edi, edi
mov dword [esp + 0x44], 0
mov esi, dword [esp + 4]
lea ecx, [edx + 2]
movzx ebp, word [edx]
cmp dword [esp + 0x30], 0
je 0x85ee5f
mov eax, ebp
and eax, 0xfc00
cmp eax, 0xd800
jne 0x85ee5f
shl ebp, 0xa
and ebp, 0xffc00
movzx eax, word [edx + 2]
add edx, 4
and eax, 0x3ff
lea ebp, [ebp + eax + 0x10000]
mov dword [esp + 0xc], ebp
mov ecx, edx
jmp 0x85ee63
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], ecx
movzx eax, bx
cmp eax, 0x48
jb 0x85eec5
cmp dword [esp + 0x30], 0
mov esi, dword [esp + 0xc]
je 0x85ef47
cmp esi, 0x80
jb 0x85ef47
mov eax, esi
sar eax, 0x1f
shr eax, 0x19
add eax, esi
mov ecx, eax
and ecx, 0x7fffff80
sar eax, 7
movzx eax, byte [eax + 0x8a0804]
shl eax, 7
mov edx, esi
sub edx, ecx
add edx, eax
movzx eax, word [edx + edx + 0x8a2a04]
mov eax, dword [eax*8 + 0x89f188]
add eax, esi
jmp 0x85ef61
cmp dword [esp + 0x30], 0
mov ebx, dword [esp + 0xc]
je 0x85eff0
test edi, edi
jle 0x85f073
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
xor edx, edx
mov ebp, esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp ebp, eax
jae 0x8637da
movzx ecx, word [ebp]
mov esi, ecx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x85ef32
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 0x85ef3d
jmp 0x867099
add ebp, 2
cmp ebx, ecx
je 0x867099
inc edx
cmp edx, edi
jl 0x85eef0
jmp 0x85f075
cmp esi, 0xff
mov dword [esp + 0x24], esi
ja 0x85ef65
mov eax, dword [esp + 0x158]
mov eax, dword [eax + 0x40]
movzx eax, byte [eax + esi]
mov dword [esp + 0x24], eax
cmp dword [esp + 0x30], 0
je 0x85f01e
test edi, edi
jle 0x85f111
mov eax, dword [esp + 0x14]
mov edx, dword [eax]
xor eax, eax
mov ebp, dword [esp + 4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp ebp, edx
jae 0x863811
movzx ecx, word [ebp]
mov esi, ecx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x85efcb
shl ecx, 0xa
and ecx, 0xffc00
movzx esi, word [ebp + 2]
add ebp, 4
and esi, 0x3ff
lea ecx, [ecx + esi + 0x10000]
jmp 0x85efce
add ebp, 2
mov ebx, dword [esp + 0xc]
xor esi, esi
cmp ebx, ecx
je case.0x866089.6
cmp dword [esp + 0x24], ecx
je case.0x866089.6
inc eax
cmp eax, edi
jl 0x85ef90
jmp 0x85f115
test edi, edi
jle 0x85f073
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
xor ecx, ecx
mov ebp, esi
nop
nop
cmp ebp, eax
jae 0x8638c0
movzx edx, word [ebp]
cmp ebx, edx
je 0x867099
add ebp, 2
inc ecx
cmp ecx, edi
jl 0x85f000
jmp 0x85f075
test edi, edi
jle 0x85f111
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
xor ecx, ecx
mov ebp, dword [esp + 4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp ebp, eax
jae 0x8638f7
mov ebx, ebp
movzx edx, word [ebp]
xor esi, esi
cmp dword [esp + 0xc], edx
je case.0x866089.6
cmp dword [esp + 0x24], edx
je case.0x866089.6
mov ebp, ebx
add ebp, 2
inc ecx
cmp ecx, edi
jl 0x85f040
jmp 0x85f115
mov ebp, esi
cmp edi, dword [esp + 0x38]
mov dword [esp + 8], ebp
mov dword [esp + 4], ebp
je 0x85e690
cmp dword [esp + 0x44], 0
jne 0x8643f4
cmp dword [esp + 0x30], 0
je 0x85f719
cmp edi, dword [esp + 0x38]
mov ebp, dword [esp + 8]
mov ebx, dword [esp + 0xc]
jge 0x861b71
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov ebp, dword [esp + 8]
cmp ebp, eax
jae 0x861b4c
movzx ecx, word [ebp]
mov esi, ecx
and esi, 0xfc00
mov edx, 1
cmp esi, 0xd800
jne 0x85f0f9
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 0x861b71
lea ebp, [ebp + edx*2]
inc edi
cmp edi, dword [esp + 0x38]
jl 0x85f0b9
jmp 0x861b71
mov ebp, dword [esp + 4]
cmp edi, dword [esp + 0x38]
mov dword [esp + 8], ebp
mov dword [esp + 4], ebp
je 0x85e690
cmp dword [esp + 0x44], 0
jne 0x864543
cmp dword [esp + 0x30], 0
je 0x85f757
cmp edi, dword [esp + 0x38]
mov eax, dword [esp + 8]
mov ebx, dword [esp + 0xc]
jge 0x85c81f
mov eax, dword [esp + 0x14]
mov ebp, dword [eax]
mov eax, dword [esp + 8]
cmp eax, ebp
jae 0x861b85
movzx ecx, word [eax]
mov esi, ecx
and esi, 0xfc00
mov edx, 1
cmp esi, 0xd800
jne 0x85f1a3
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 0x85f1ad
jmp 0x861bbb
mov esi, eax
cmp ebx, ecx
je 0x861bbb
cmp dword [esp + 0x24], ecx
je 0x861bbb
mov eax, esi
lea eax, [eax + edx*2]
inc edi
cmp edi, dword [esp + 0x38]
jl 0x85f159
jmp 0x85c81f
mov ebx, edx
movzx edx, word [ebx + 2]
movzx eax, di
xor ecx, ecx
cmp eax, 0x5c
sete cl
mov dword [esp + 0x48], ecx
add ebx, 4
xor ecx, ecx
xor edi, edi
jmp 0x85ff99
mov dword [esp + 8], edx
movzx edx, word [edx + 0x22]
lea esi, [edx - 0x62]
movzx eax, si
cmp eax, 0xb
ja 0x85c3db
mov eax, 0x73f
bt eax, esi
jae 0x86133f
cmp esi, 7
seta al
mov dword [esp + 0x48], eax
cmp esi, 8
jb 0x860edc
mov dword [esp + 0x44], 0
jmp 0x860ee5
movzx eax, di
xor ecx, ecx
cmp eax, 0x72
sete cl
mov dword [esp + 0x24], ecx
movzx ebx, word [edx + 2]
add ebx, ebx
add edx, 4
cmp ebx, dword [esp + 0x28]
mov edi, dword [esp + 0x158]
jge 0x85f70a
mov ecx, dword [edi + 0xc]
mov eax, dword [ecx + ebx*4]
test eax, eax
js 0x85f70a
mov esi, edx
mov edx, ebx
or edx, 1
mov ecx, dword [ecx + edx*4]
mov edx, esi
sub ecx, eax
mov dword [esp + 0xc], ecx
jmp 0x861991
movzx eax, di
xor ecx, ecx
cmp eax, 0x74
sete cl
mov dword [esp + 0x24], ecx
movzx ecx, word [edx + 4]
lea eax, [edx + 6]
mov edi, dword [esp + 0x158]
cmp dword [edi + 0x54], 1
sbb esi, esi
mov dword [esp + 0xc], esi
test ecx, ecx
je 0x860e39
mov esi, edx
mov edx, dword [edi + 0x24]
movzx esi, word [esi + 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 + 0x28]
jge 0x85f2e0
mov edi, dword [esp + 0x158]
mov ebp, dword [edi + 0xc]
mov edi, dword [ebp + ebx*4]
test edi, edi
jns 0x861979
dec ecx
add esi, edx
cmp ecx, 1
jg 0x85f2bf
jmp 0x861988
mov ebp, dword [esp + 0x158]
mov ebx, dword [ebp + 0xb0]
xor eax, eax
cmp dword [ebp + 0x9c], 1
jne 0x85f314
mov dword [ebp + 0x9c], 0
mov eax, 1
mov dword [esp + 0x10], eax
mov eax, edx
mov edi, eax
lea edx, [eax + 4]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x10]
push eax
push 0
push ebp
push dword [esp + 0x40]
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
cmp esi, 1
je 0x8610b9
cmp esi, 0xfffffc19
je 0x8610b9
mov dword [ebp + 0xb0], ebx
cmp esi, 0xfffffc20
je 0x85f375
test esi, esi
jne case.0x866089.6
mov ax, word [edi + 2]
jmp 0x85f39e
mov edx, edi
movzx eax, word [edx + 2]
lea ecx, [edx + eax*2]
cmp dword [ebp + 0x80], ecx
jae 0x865b7d
movzx edx, word [edx]
cmp edx, 0x77
je 0x85f39e
movzx ecx, word [ecx]
cmp ecx, 0x77
jne 0x865b7d
movzx eax, ax
lea edx, [edi + eax*2]
movzx eax, word [edi + eax*2]
cmp eax, 0x77
je 0x85f318
mov ecx, edx
jmp 0x8610c8
mov ebp, dword [esp + 0x158]
mov ebx, dword [ebp + 0xb0]
xor eax, eax
cmp dword [ebp + 0x9c], 1
jne 0x85f3df
mov dword [ebp + 0x9c], 0
mov eax, 1
mov dword [esp + 0x10], eax
mov edi, edx
lea edx, [edx + 4]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x10]
push eax
push 0
push ebp
push dword [esp + 0x40]
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
mov dword [ebp + 0xb0], ebx
test esi, esi
jns 0x85f444
cmp esi, 0xfffffc20
jne 0x860fbf
mov edx, edi
movzx eax, word [edx + 2]
lea ecx, [edx + eax*2]
cmp dword [ebp + 0x80], ecx
jae 0x860fd0
movzx edx, word [edx]
cmp edx, 0x77
jne 0x85f452
mov edx, edi
jmp 0x85f460
jne 0x863f15
mov edx, edi
mov ax, word [edx + 2]
jmp 0x85f460
movzx ecx, word [ecx]
cmp ecx, 0x77
mov edx, edi
jne 0x860fd0
movzx eax, ax
lea ecx, [edx + eax*2]
movzx eax, word [edx + eax*2]
cmp eax, 0x77
mov edx, ecx
je 0x85f3e3
jmp 0x860fe2
movzx ebx, word [edx + 2]
lea ebp, [edx + 4]
movzx ecx, word [edx + 4]
cmp ecx, 0x76
mov dword [esp + 0x24], edi
jne 0x85f582
mov eax, dword [0x89cdc0]
test eax, eax
je 0x85f570
mov dword [esp + 0xc], ebx
mov dword [esp + 0x70], 2
movzx ecx, word [edx + 6]
mov dword [esp + 0x74], ecx
mov esi, dword [esp + 0x158]
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x78], ecx
mov ecx, dword [esi + 0x78]
mov dword [esp + 0x7c], ecx
mov ebx, edx
mov edx, dword [esi + 0x7c]
sub edx, ecx
sar edx, 1
mov dword [esp + 0x80], edx
mov edx, dword [esp + 0x2c]
sub edx, ecx
sar edx, 1
mov dword [esp + 0x84], edx
mov edx, dword [esp + 4]
sub edx, ecx
sar edx, 1
mov dword [esp + 0x88], edx
movzx ecx, word [ebx + 8]
mov dword [esp + 0x98], ecx
movzx ecx, word [ebx + 0xa]
mov dword [esp + 0x9c], ecx
mov edx, dword [esp + 0x28]
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sar ecx, 1
mov dword [esp + 0x8c], ecx
movzx ecx, word [esi + 0x94]
cmp ecx, 1
sbb edx, edx
or edx, ecx
mov dword [esp + 0x90], edx
mov ecx, dword [esi + 0xac]
mov dword [esp + 0x94], ecx
mov ecx, dword [esi + 0xb4]
mov dword [esp + 0xa0], ecx
sub esp, 0xc
lea ecx, [esp + 0x7c]
push ecx
call eax
add esp, 0x10
mov esi, eax
test esi, esi
jg 0x863f1e
mov ebx, dword [esp + 0xc]
jne case.0x866089.6
movzx eax, byte [0x89e5fa]
mov cx, word [ebp + eax*2]
lea ebp, [ebp + eax*2]
sub ebx, eax
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ecx
lea eax, [ecx - 0x8d]
movzx eax, ax
cmp eax, 0x10
ja case.0x85f59c.5
jmp dword [eax*4 + 0x868224]
movzx eax, word [ebp + 2]
add eax, eax
cmp eax, dword [esp + 0x28]
jge 0x85c7b2
mov ecx, dword [esp + 0x158]
mov ecx, dword [ecx + 0xc]
cmp dword [ecx + eax*4], 0
setns al
jmp 0x85c7b4
mov ecx, dword [esp + 0x34]
mov edi, dword [ecx + 4]
mov dword [esp + 0x10], edi
mov ecx, dword [ecx]
mov dword [esp + 0x34], ecx
mov ebp, dword [esp + 0x158]
mov ebx, dword [esp + 0x28]
lea ecx, [esi - 0x7d]
movzx ecx, cx
cmp ecx, 4
jb 0x863aad
mov edi, edx
sub edi, eax
lea eax, [esi - 0x82]
movzx ecx, ax
cmp ecx, 9
mov dword [esp + 0xc], edi
ja 0x861151
mov ecx, 0x318
bt ecx, eax
jae 0x861148
movzx ebx, word [edi + 4]
mov eax, dword [ebp + 0xa8]
test eax, eax
je 0x85f633
cmp dword [eax + 4], ebx
je 0x864816
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 0x85f6f4
mov dword [esp + 8], edx
mov edi, dword [esp + 0x28]
cmp ebp, edi
jle 0x85f6a9
mov eax, dword [esp + 0x158]
mov ecx, dword [eax + 0xc]
lea eax, [ecx + ebp*4]
lea edx, [ecx + edi*4]
mov dword [esp + 0x38], edx
lea edx, [ecx + edi*4 + 4]
cmp edx, eax
ja 0x85f67e
mov edx, eax
neg ecx
mov edi, dword [esp + 0x28]
lea eax, [edi*4]
sub ecx, eax
lea eax, [edx + ecx + 3]
and eax, 0xfffffffc
sub esp, 4
push eax
push 0xff
push dword [esp + 0x44]
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 + 4]
sub ecx, dword [edx + 0x78]
sar ecx, 1
mov edx, ebp
or edx, 1
mov dword [eax + edx*4], ecx
cmp edi, ebp
mov ebx, edi
jg 0x85f6dc
add ebp, 2
mov ebx, ebp
mov ebp, dword [esp + 0x158]
mov edx, dword [esp + 8]
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0xc]
jmp 0x861155
or eax, 0x10000
mov dword [ecx + 0x94], eax
mov ebp, ecx
mov ebx, dword [esp + 0x28]
jmp 0x861151
cmp dword [edi + 0x54], 1
sbb eax, eax
mov dword [esp + 0xc], eax
jmp 0x861991
cmp edi, dword [esp + 0x38]
mov edx, dword [esp + 8]
mov esi, dword [esp + 0xc]
jge 0x862483
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov edx, dword [esp + 8]
cmp edx, eax
jae 0x86245e
movzx ecx, word [edx]
cmp esi, ecx
je 0x862483
add edx, 2
inc edi
cmp edi, dword [esp + 0x38]
jl 0x85f735
jmp 0x862483
cmp edi, dword [esp + 0x38]
mov ecx, dword [esp + 8]
mov esi, dword [esp + 0xc]
jge 0x85caed
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov ecx, dword [esp + 8]
cmp ecx, eax
jae 0x862497
mov edx, ecx
movzx ecx, word [ecx]
cmp esi, ecx
je 0x85caeb
cmp dword [esp + 0x24], ecx
je 0x85caeb
mov ecx, edx
add ecx, 2
inc edi
cmp edi, dword [esp + 0x38]
jl 0x85f773
jmp 0x85caed
cmp edi, dword [esp + 0x50]
jb 0x86209d
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x86209d
mov ecx, dword [esp + 0x20]
cmp edi, dword [ecx]
jbe 0x86209b
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
cmp eax, 1
mov edi, esi
jle 0x86209d
jmp 0x865568
mov eax, dword [esp + 0x158]
mov ecx, eax
mov eax, dword [ecx + 0x98]
add eax, eax
add eax, dword [ecx + 0x78]
cmp dword [esp + 4], eax
je 0x85c321
jmp 0x863f1e
add edx, 2
mov eax, dword [esp + 4]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x10], edx
jmp 0x85e690
mov esi, edx
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 4]
cmp edx, dword [eax]
jae 0x864c38
movzx eax, word [edx]
cmp dword [esp + 0x30], 0
je 0x85f848
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
je 0x85f9aa
add edx, 2
cmp eax, 0xff
mov dword [esp + 4], edx
ja 0x86121c
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 4
je 0x86121c
jmp 0x863f1e
mov edi, edx
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 4]
cmp edx, dword [eax]
jae 0x864c73
cmp dword [esp + 0x30], 0
setne cl
movzx eax, word [edx]
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
sete dl
xor esi, esi
cmp eax, 0xff
ja case.0x866089.6
and cl, dl
jne case.0x866089.6
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 4
jne 0x85fa09
jmp 0x863f1e
mov esi, edx
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 4]
cmp edx, dword [eax]
jae 0x864cae
movzx eax, word [edx]
cmp dword [esp + 0x30], 0
je 0x85f8f7
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
je 0x85f9aa
add edx, 2
cmp eax, 0xff
mov dword [esp + 4], edx
ja 0x86121c
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 1
je 0x86121c
jmp 0x863f1e
mov edi, edx
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 4]
cmp edx, dword [eax]
jae 0x864ce9
cmp dword [esp + 0x30], 0
setne cl
movzx eax, word [edx]
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
sete dl
xor esi, esi
cmp eax, 0xff
ja case.0x866089.6
and cl, dl
jne case.0x866089.6
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 1
jne 0x85fa09
jmp 0x863f1e
mov esi, edx
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 4]
cmp edx, dword [eax]
jae 0x864d24
movzx eax, word [edx]
cmp dword [esp + 0x30], 0
je 0x8611fe
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x8611fe
add edx, 4
mov dword [esp + 4], edx
jmp 0x86121c
mov edi, edx
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 4]
cmp edx, dword [eax]
jae 0x864d5f
cmp dword [esp + 0x30], 0
setne cl
movzx eax, word [edx]
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
sete dl
xor esi, esi
cmp eax, 0xff
ja case.0x866089.6
and cl, dl
jne case.0x866089.6
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 0x10
je 0x867099
add dword [esp + 4], 2
add edi, 2
mov dword [esp + 0x10], edi
jmp 0x85e690
mov edi, edx
mov esi, dword [esp + 0x158]
mov ecx, dword [esi + 0x18]
mov eax, dword [esi + 0x7c]
test ecx, ecx
je 0x861c2f
mov edx, dword [esp + 4]
cmp edx, eax
jae 0x861c62
sub esp, 0xc
push dword [esp + 0x3c]
push dword [esp + 0x5c]
push eax
push ecx
push edx
call fcn.00869060
add esp, 0x20
test eax, eax
je 0x861c62
jmp 0x863f1e
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 4]
cmp ecx, dword [eax]
jae 0x864d9a
add ecx, 2
mov dword [esp + 4], ecx
jmp 0x85c321
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
mov edi, dword [esp + 4]
cmp edi, ecx
jae 0x864dd5
mov ebp, edx
lea eax, [edi + 2]
movzx edx, word [edi]
cmp dword [esp + 0x30], 0
je 0x862288
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
mov ebx, dword [esp + 0x158]
jne 0x86228f
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
jmp 0x86228f
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 4]
cmp edi, dword [eax]
jae 0x864e10
lea ecx, [edi + 2]
movzx eax, word [edi]
cmp dword [esp + 0x30], 0
je 0x8622f1
mov esi, edx
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x8622f5
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [edi + 2]
add edi, 4
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x8622f7
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 4]
cmp edi, dword [eax]
jae 0x864e4b
lea ecx, [edi + 2]
movzx eax, word [edi]
cmp dword [esp + 0x30], 0
je 0x862355
mov esi, edx
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x862359
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [edi + 2]
add edi, 4
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x86235b
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 4]
cmp edi, dword [eax]
jae 0x864e86
lea ecx, [edi + 2]
movzx eax, word [edi]
cmp dword [esp + 0x30], 0
je 0x8623b9
mov esi, edx
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x8623bd
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [edi + 2]
add edi, 4
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x8623bf
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 4]
cmp esi, dword [eax]
jae 0x864ec1
lea ecx, [esi + 2]
movzx eax, word [esi]
cmp dword [esp + 0x30], 0
je 0x8623f2
mov edi, edx
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x8623f6
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [esi + 2]
add esi, 4
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x8623f8
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov ebp, dword [esp + 4]
cmp ebp, eax
jae 0x864efc
mov dword [esp + 8], edx
lea edx, [ebp + 2]
movzx ecx, word [ebp]
cmp dword [esp + 0x30], 0
je 0x861228
mov esi, ecx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x861228
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 0x861232
jmp 0x8612f9
mov eax, dword [esp + 0x158]
cmp dword [eax + 0x4c], 0
jne 0x863f1e
cmp dword [eax + 0x5c], 0
je case.0x85e6a7.23
mov esi, edx
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 4]
cmp edx, dword [eax]
jb 0x863f1e
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x86121c
mov ecx, dword [esp + 0x20]
cmp edx, dword [ecx]
jbe 0x86121c
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
cmp eax, 1
jle 0x86121c
jmp 0x864bf7
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov ebx, dword [esp + 4]
cmp ebx, eax
mov edi, dword [esp + 0x158]
jae 0x85c84f
mov ebp, edx
mov ecx, dword [edi + 0x18]
test ecx, ecx
je 0x862251
sub esp, 0xc
push dword [esp + 0x3c]
push dword [esp + 0x5c]
push eax
push ecx
push ebx
call fcn.00869060
add esp, 0x20
test eax, eax
mov edx, ebp
je 0x86494e
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov ecx, dword [esp + 0x4c]
mov ecx, dword [ecx]
jmp 0x85c843
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov edi, dword [esp + 4]
cmp edi, eax
jae 0x861108
mov ebx, edx
mov esi, dword [esp + 0x158]
mov ecx, dword [esi + 0x18]
test ecx, ecx
je 0x862c67
sub esp, 0xc
push dword [esp + 0x3c]
push dword [esp + 0x5c]
push eax
push ecx
push edi
call fcn.00869060
add esp, 0x20
test eax, eax
mov edx, ebx
jne 0x85c321
jmp 0x865070
mov eax, dword [esp + 0x158]
cmp dword [eax + 0x48], 0
je case.0x85e6a7.1
mov eax, dword [esp + 0x158]
mov ecx, dword [esp + 4]
cmp ecx, dword [eax + 0x78]
je 0x863f1e
mov eax, dword [esp + 0x158]
mov ecx, dword [esp + 4]
cmp ecx, dword [eax + 0x78]
je 0x85c321
jmp 0x863f1e
mov esi, dword [esp + 0x158]
cmp dword [esi + 0x48], 0
mov eax, dword [esi + 0x78]
mov edi, dword [esp + 4]
je 0x85fdf8
cmp edi, eax
je 0x863f1e
cmp edi, eax
je 0x85c321
mov ecx, dword [esp + 0x14]
cmp edi, dword [ecx]
je 0x863f1e
mov ecx, dword [esi + 0x18]
test ecx, ecx
je 0x86256c
mov esi, edx
cmp edi, eax
jbe 0x863f1e
sub esp, 0xc
push dword [esp + 0x3c]
push dword [esp + 0x5c]
push eax
push ecx
push edi
call fcn.00869110
add esp, 0x20
test eax, eax
mov edx, esi
jne 0x85c321
jmp 0x863f1e
cmp dword [esp + 0x30], 0
je 0x861d05
mov ebx, edx
movzx ecx, word [edx + 2]
mov edx, ecx
and edx, 0xfc00
xor eax, eax
cmp edx, 0xd800
sete al
inc eax
mov edx, dword [esp + 0x14]
mov edx, dword [edx]
mov esi, edx
mov edi, dword [esp + 4]
sub esi, edi
sar esi, 1
cmp eax, esi
jg 0x86569d
cmp cx, word [edi]
jne 0x867099
add ebx, 4
add edi, 2
mov dword [esp + 4], edi
mov dword [esp + 0x10], ebx
cmp eax, 2
jl 0x85e690
dec eax
mov edx, dword [esp + 0x10]
movzx ecx, word [edx]
add edx, 2
mov dword [esp + 0x10], edx
xor esi, esi
mov edx, dword [esp + 4]
cmp cx, word [edx]
lea edx, [edx + 2]
mov dword [esp + 4], edx
je 0x85fe9a
jmp case.0x866089.6
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 4]
cmp edi, dword [eax]
jae 0x864f37
cmp dword [esp + 0x30], 0
movzx eax, word [edx + 2]
je 0x861eee
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
mov esi, dword [esp + 0x158]
jne 0x862000
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [edx + 4]
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
mov ebx, edx
mov edx, 2
jmp 0x86203d
movzx ecx, word [edx + 2]
add edx, 4
mov dword [esp + 0x48], 1
xor edi, edi
mov ebx, edx
mov edx, ecx
jmp 0x85ff99
add edx, 2
mov edi, 1
mov ebx, edx
mov edx, 0x7fffffff
jmp 0x85ff8f
add edx, 2
mov dword [esp + 0x48], 0
mov ebx, edx
mov edx, 0x7fffffff
mov ecx, 1
mov edi, 1
jmp 0x85ff99
add edx, 2
mov ebx, edx
mov edx, 1
xor ecx, ecx
mov edi, 1
jmp 0x85ff91
mov ebx, edx
movzx edx, word [ebx + 2]
add ebx, 4
mov edi, 1
xor ecx, ecx
mov dword [esp + 0x48], 0
mov esi, dword [esp + 4]
movzx ebp, word [ebx]
mov eax, ebp
add eax, 0xfffffff1
movzx eax, ax
cmp eax, 1
mov dword [esp + 0xc], ecx
ja 0x85ffd9
movzx eax, bp
xor ecx, ecx
cmp eax, 0xf
sete cl
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0xc]
movzx eax, word [ebx + 2]
mov dword [esp + 0x38], eax
movzx eax, word [ebx + 4]
mov dword [esp + 0x54], eax
add ebx, 6
jmp 0x85ffe4
add ebx, 2
mov dword [esp + 0x38], 0xffffffff
mov eax, ebx
mov dword [esp + 0x10], eax
test ecx, ecx
mov dword [esp + 0x24], edx
mov dword [esp + 0x44], ebp
mov dword [esp + 0x50], edi
jle 0x86013f
mov eax, dword [esp + 0x38]
test eax, eax
js 0x8602b5
cmp eax, 0xa
ja case.default.0x8611d6
jmp dword [eax*4 + 0x867a74]
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
xor ecx, ecx
mov dword [esp + 8], esi
mov edi, dword [esp + 8]
cmp edi, eax
jae 0x8639eb
lea esi, [edi + 2]
movzx edx, word [edi]
cmp dword [esp + 0x30], 0
je 0x860086
mov ebx, edx
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x860086
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
jle 0x860090
lea esi, [edx - 0x2000]
cmp esi, 0x5f
ja case.default.0x86007f
jmp dword [esi*4 + 0x867aa0]
mov edi, esi
cmp edx, 0x180d
jg 0x860074
cmp edx, 0x84
jg 0x8600c6
lea esi, [edx - 9]
cmp esi, 0x17
ja case.0x86007f.8203
mov ebx, 0x80001f
bt ebx, esi
jae case.0x86007f.8203
cmp dword [esp + 0x40], 0
jne 0x867099
mov dword [esp + 8], edi
inc ecx
cmp ecx, dword [esp + 0xc]
jl 0x860026
jmp 0x860143
cmp edx, 0x85
je case.0x86007f.8192
cmp edx, 0xa0
je case.0x86007f.8192
cmp edx, 0x1680
je case.0x86007f.8192
jmp case.0x86007f.8203
cmp edx, 0x3000
je case.0x86007f.8192
cmp edx, 0x180e
je case.0x86007f.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 + 0x8a0804]
shl esi, 7
sub edx, ebx
add edx, esi
movzx edx, word [edx + edx + 0x8a2a04]
movzx edx, byte [edx*8 + 0x89f185]
xor ebx, ebx
cmp dword [edx*4 + 0x89e698], 6
sete bl
cmp dword [esp + 0x40], ebx
jne 0x8600b5
jmp 0x867099
mov dword [esp + 8], esi
mov edx, dword [esp + 0x24]
mov eax, edx
sub eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov dword [esp + 4], ecx
je 0x85e690
cmp dword [esp + 0x48], 0
jne 0x864231
mov edi, dword [esp + 0x38]
test edi, edi
mov ebx, dword [esp + 0xc]
mov esi, dword [esp + 0x44]
js 0x8604d9
cmp edi, 0xa
mov edx, dword [esp + 8]
ja case.default.0x860187
jmp dword [edi*4 + 0x867ecc]
cmp dword [esp + 0x24], ebx
mov ebp, edx
jle 0x85e63e
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov ebp, edx
cmp ebp, eax
jae 0x85cb01
movzx edx, word [ebp]
cmp dword [esp + 0x30], 0
mov ecx, 1
je 0x8601e9
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x8601e9
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 0x860203
lea esi, [edx - 0x2000]
cmp esi, 0x5f
ja case.default.0x8601fc
jmp dword [esi*4 + 0x867ef8]
cmp edx, 0x84
jg 0x86023c
lea esi, [edx - 9]
cmp esi, 0x17
ja case.0x8601fc.8203
mov edi, 0x80001f
bt edi, esi
jae case.0x8601fc.8203
cmp dword [esp + 0x40], 0
jne 0x85e63e
lea ebp, [ebp + ecx*2]
inc ebx
cmp ebx, dword [esp + 0x24]
jl 0x8601a2
jmp 0x85e63e
cmp edx, 0x85
je case.0x8601fc.8192
cmp edx, 0xa0
je case.0x8601fc.8192
cmp edx, 0x1680
je case.0x8601fc.8192
jmp case.0x8601fc.8203
cmp edx, 0x3000
je case.0x8601fc.8192
cmp edx, 0x180e
je case.0x8601fc.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 + 0x8a0804]
shl esi, 7
sub edx, edi
add edx, esi
movzx edx, word [edx + edx + 0x8a2a04]
movzx esi, byte [edx*8 + 0x89f185]
xor edx, edx
cmp dword [esi*4 + 0x89e698], 6
sete dl
cmp dword [esp + 0x40], edx
jne 0x860228
jmp 0x85e63e
movzx eax, bp
cmp eax, 0x16
jne 0x860453
mov eax, 1
mov dword [esp + 8], esi
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
mov edi, dword [esp + 8]
cmp edi, edx
jae 0x863988
lea esi, [edi + 2]
movzx ecx, word [edi]
cmp dword [esp + 0x30], 0
je 0x860318
mov ebx, ecx
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x860318
shl ecx, 0xa
and ecx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea ecx, [ecx + esi + 0x10000]
jmp 0x86031a
mov edi, esi
mov dword [esp + 4], eax
cmp edi, edx
jae 0x860410
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 + 0x8a0804]
shl esi, 7
sub ecx, ebx
add ecx, esi
movzx ecx, word [ecx + ecx + 0x8a2a04]
movzx esi, byte [ecx*8 + 0x89f186]
nop
nop
nop
nop
nop
nop
nop
movzx ecx, word [edi]
cmp dword [esp + 0x30], 0
mov ebx, 1
je 0x8603b0
mov ebp, ecx
and ebp, 0xfc00
cmp ebp, 0xd800
jne 0x8603b0
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 0x8603b2
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 + 0x8a0804]
shl ebp, 7
sub ecx, edi
add ecx, ebp
movzx ecx, word [ecx + ecx + 0x8a2a04]
movzx ecx, byte [ecx*8 + 0x89f186]
mov ebp, 1
shl ebp, cl
and ebp, dword [esi*4 + 0x89e710]
je 0x860400
mov edi, eax
lea edi, [edi + ebx*2]
cmp edi, edx
jb 0x860406
jmp 0x860410
mov edi, eax
cmp edi, edx
jae 0x860410
test ebp, ebp
mov esi, ecx
jne 0x860360
cmp edi, edx
jb 0x860439
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx]
test ecx, ecx
je 0x860439
mov edx, dword [esp + 0x20]
cmp edi, dword [edx]
jbe 0x860439
mov edx, dword [esp + 0x1c]
mov dword [edx], 1
cmp ecx, 1
jg 0x865568
mov dword [esp + 8], edi
mov eax, dword [esp + 4]
cmp eax, dword [esp + 0xc]
lea eax, [eax + 1]
jl 0x8602ca
jmp 0x860143
cmp dword [esp + 0x30], 0
je 0x861054
mov esi, 0xfffffff2
lea eax, [ebp - 6]
movzx eax, ax
cmp eax, 0xf
ja case.0x866089.6
jmp dword [eax*4 + 0x8679f4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 4]
mov dword [esp + 8], edx
mov edi, dword [esp + 8]
cmp edi, eax
jae 0x864fc7
movzx edx, word [edi]
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x8604b1
add edi, 4
mov dword [esp + 8], edi
jmp 0x8604cd
add edi, 2
cmp edx, 0x7f
mov dword [esp + 8], edi
ja 0x8604cd
mov esi, dword [esp + 0x3c]
mov esi, dword [esi]
test byte [esi + edx], 4
jne 0x867099
inc ecx
cmp ecx, dword [esp + 0xc]
jl 0x860489
jmp 0x860143
movzx ebp, si
cmp ebp, 0x16
mov ecx, dword [esp + 8]
jne 0x860e85
cmp edx, dword [esp + 0xc]
mov ebp, ecx
jle 0x85c3a1
mov ebp, ecx
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
cmp ebp, eax
jae 0x85c37c
lea edx, [ebp + 2]
movzx ecx, word [ebp]
cmp dword [esp + 0x30], 0
je 0x860549
mov esi, ecx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x860549
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 0x860553
jmp 0x860624
mov ebp, edx
cmp ebp, eax
jae 0x860624
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 + 0x8a0804]
shl edx, 7
sub ecx, esi
add ecx, edx
movzx ecx, word [ecx + ecx + 0x8a2a04]
movzx edx, byte [ecx*8 + 0x89f186]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, word [ebp]
cmp dword [esp + 0x30], 0
mov esi, 1
je 0x8605cf
mov edi, ecx
and edi, 0xfc00
cmp edi, 0xd800
jne 0x8605cf
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 + 0x8a0804]
shl edi, 7
sub ecx, ebx
add ecx, edi
movzx ecx, word [ecx + ecx + 0x8a2a04]
movzx ecx, byte [ecx*8 + 0x89f186]
mov ebx, 1
shl ebx, cl
and ebx, dword [edx*4 + 0x89e710]
je 0x860616
lea ebp, [ebp + esi*2]
cmp ebp, eax
jae 0x860624
test ebx, ebx
mov edx, ecx
jne 0x860590
cmp ebp, eax
jb 0x86064d
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x86064d
mov ecx, dword [esp + 0x20]
cmp ebp, dword [ecx]
jbe 0x86064d
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
cmp eax, 1
jg 0x866463
mov eax, dword [esp + 0xc]
inc eax
mov dword [esp + 0xc], eax
cmp eax, dword [esp + 0x24]
jl 0x8604f7
jmp 0x85c3a1
lea edi, [edx + 4]
movzx eax, word [edx + 2]
lea esi, [edx + eax*2]
movzx eax, word [edx + eax*2]
lea ecx, [eax - 0x62]
movzx edx, cx
cmp edx, 0xb
ja 0x85c977
mov edx, 0x73f
bt edx, ecx
jae 0x8624cd
cmp ecx, 7
seta dl
mov dword [esp + 0x24], edx
cmp ecx, 8
jb 0x861f32
mov dword [esp + 8], 0
jmp 0x861f3b
movzx eax, word [edx + 2]
lea edi, [eax + eax]
mov esi, dword [esp + 0x158]
add edi, dword [esi + 0x74]
mov ebp, edx
test eax, eax
je 0x861d3a
movzx eax, word [edi + 4]
jmp 0x861d3c
mov eax, dword [0x89cdc0]
test eax, eax
je 0x8607ae
mov dword [esp + 0x70], 2
movzx ecx, word [edx + 2]
mov dword [esp + 0x74], ecx
mov esi, dword [esp + 0x158]
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x78], ecx
mov ecx, dword [esi + 0x78]
mov dword [esp + 0x7c], ecx
mov ebx, edx
mov edx, dword [esi + 0x7c]
sub edx, ecx
sar edx, 1
mov dword [esp + 0x80], edx
mov edx, dword [esp + 0x2c]
sub edx, ecx
sar edx, 1
mov dword [esp + 0x84], edx
mov edx, dword [esp + 4]
sub edx, ecx
sar edx, 1
mov dword [esp + 0x88], edx
movzx ecx, word [ebx + 4]
mov dword [esp + 0x98], ecx
mov edi, ebx
movzx ecx, word [ebx + 6]
mov dword [esp + 0x9c], ecx
mov edx, dword [esp + 0x28]
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sar ecx, 1
mov dword [esp + 0x8c], ecx
movzx ecx, word [esi + 0x94]
cmp ecx, 1
sbb edx, edx
or edx, ecx
mov dword [esp + 0x90], edx
mov ecx, dword [esi + 0xac]
mov dword [esp + 0x94], ecx
mov ecx, dword [esi + 0xb4]
mov dword [esp + 0xa0], ecx
sub esp, 0xc
lea ecx, [esp + 0x7c]
push ecx
call eax
add esp, 0x10
mov esi, eax
test esi, esi
jg 0x863f1e
mov edx, edi
jne case.0x866089.6
add edx, 8
mov dword [esp + 0x10], edx
jmp 0x85e690
cmp dword [esp + 0x30], 0
movzx eax, word [edx + 2]
mov ebx, edx
je 0x861eb8
test ax, ax
mov ecx, dword [esp + 0x158]
mov edi, dword [esp + 4]
je 0x861ed0
mov ecx, dword [ecx + 0x78]
inc eax
mov edx, edi
lea edi, [edx - 2]
cmp edi, ecx
jb 0x863f1e
movzx esi, word [edx - 2]
and esi, 0xfc00
cmp esi, 0xdc00
je 0x860806
mov edx, edi
jmp 0x86080b
add edx, 0xfffffffc
mov edi, edx
dec eax
cmp eax, 1
jg 0x8607e5
jmp 0x861ed0
mov ebp, dword [esp + 0x158]
mov eax, dword [ebp + 0xb0]
mov dword [esp + 0x10], eax
mov dword [esp + 8], edx
mov ecx, edx
mov ebx, dword [esp + 0x28]
mov edi, ecx
lea edx, [edi + 4]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x10]
push eax
push dword [esp + 0x44]
push ebp
push ebx
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
cmp esi, 0xfffffc20
je 0x860870
test esi, esi
jne 0x861bc2
mov ax, word [edi + 2]
jmp 0x86089f
movzx eax, word [edi + 2]
lea ecx, [edi + eax*2]
cmp dword [ebp + 0x80], ecx
jae 0x865b7d
mov esi, edi
movzx edx, word [edi]
cmp edx, 0x77
jne 0x860891
mov edi, esi
jmp 0x86089f
movzx ecx, word [ecx]
cmp ecx, 0x77
mov edi, esi
jne 0x865b7d
movzx eax, ax
lea ecx, [edi + eax*2]
mov esi, dword [esp + 0x10]
mov dword [ebp + 0xb0], esi
movzx eax, word [edi + eax*2]
cmp eax, 0x77
je 0x860831
jmp 0x861be1
add edx, 2
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x10]
mov edi, edx
push eax
push dword [esp + 0x44]
push dword [esp + 0x16c]
push dword [esp + 0x40]
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
test esi, esi
jne case.0x866089.6
mov eax, edi
nop
nop
nop
movzx ecx, word [eax + 2]
movzx edx, word [eax + ecx*2]
lea eax, [eax + ecx*2]
cmp edx, 0x77
je 0x860900
add eax, 4
mov dword [esp + 0x10], eax
jmp 0x85e690
mov eax, edx
add eax, 2
mov dword [esp + 0x10], eax
mov edx, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, word [edx + 2]
movzx ecx, word [edx + eax*2]
lea edx, [edx + eax*2]
cmp ecx, 0x77
je 0x860930
add edx, 4
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x10]
push eax
push dword [esp + 0x44]
push dword [esp + 0x16c]
push dword [esp + 0x40]
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
test esi, esi
je 0x85e690
jmp case.0x866089.6
movzx edi, word [edx + 2]
add edx, 2
mov eax, 1
cmp edi, 0x86
je case.0x85e6a7.134
movzx eax, di
cmp eax, 0x8b
mov eax, 1
jne case.0x85e6a7.132
mov dword [esp + 0x44], eax
movzx ebx, word [edx + 4]
lea ebp, [ebx + ebx]
mov eax, edx
mov edx, dword [esp + 0x158]
cmp ebp, dword [edx + 0x14]
jge 0x860b5e
mov dword [esp + 0x24], edi
mov esi, eax
sub eax, dword [edx + 0x74]
sar eax, 1
mov dword [esp + 0x38], eax
mov eax, dword [edx + 0xc]
mov ecx, dword [edx + 0x10]
mov edi, dword [eax + ebp*4]
mov dword [esp + 0x50], edi
mov dword [esp + 0x48], ebp
or ebp, 1
mov dword [esp + 0xac], ebp
mov edi, dword [eax + ebp*4]
mov dword [esp + 0xa4], edi
sub ecx, ebx
mov eax, dword [eax + ecx*4]
mov dword [esp + 0xa8], eax
mov dword [esp + 8], 0
mov edi, dword [esp + 4]
mov dword [esp + 0x10], ebx
mov ebp, edx
mov eax, dword [ebp + 0x94]
mov dword [esp + 0xc], eax
mov dword [esp + 4], 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 + 0x24], 0x88
jb 0x860a47
mov dword [ebp + 0x9c], 2
movzx eax, word [ebx]
movzx eax, byte [eax + 0x89e584]
lea edx, [ebx + eax*2]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x10]
push eax
push dword [esp + 0x44]
push ebp
push dword [esp + 0x40]
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
cmp esi, 0xfffffc20
je 0x860a8d
test esi, esi
jne 0x860ae5
mov ax, word [ebx + 2]
jmp 0x860ab4
movzx eax, word [ebx + 2]
lea ecx, [ebx + eax*2]
cmp dword [ebp + 0x80], ecx
jae 0x865b7d
movzx edx, word [ebx]
cmp edx, 0x77
je 0x860ab4
movzx ecx, word [ecx]
cmp ecx, 0x77
jne 0x865b7d
mov ebp, dword [esp + 0x158]
mov ecx, dword [esp + 0xc]
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 + 0x10]
mov edi, dword [esp + 4]
je 0x860a21
jmp 0x860ff9
cmp esi, 0xfffffc1a
jne case.0x866089.6
mov edx, dword [esp + 0x158]
mov eax, dword [edx + 0x90]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x38]
lea esi, [eax + eax]
add esi, dword [edx + 0x74]
mov eax, dword [edx + 0x80]
mov dword [esp + 0x2c], eax
mov edi, dword [edx + 0x84]
mov dword [esp + 8], 1
cmp dword [esp + 4], edi
mov ebx, dword [esp + 0x10]
jne 0x860a11
mov eax, esi
movzx ecx, word [eax + 2]
movzx edx, word [eax + ecx*2]
lea eax, [eax + ecx*2]
mov ecx, 1
cmp edx, 0x77
je 0x860b34
mov esi, eax
mov edi, dword [esp + 4]
or ecx, dword [esp + 0x44]
jne 0x861044
jmp 0x863f1e
mov edx, eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x44], eax
mov ecx, edx
mov eax, dword [esp + 0x158]
sub ecx, dword [eax + 0x74]
sar ecx, 1
mov dword [esp + 0xc], ecx
mov eax, dword [eax + 0x94]
mov dword [esp + 0x10], eax
xor ecx, ecx
mov eax, dword [esp + 4]
mov dword [esp + 0x24], edi
mov dword [esp + 4], ecx
mov ecx, eax
cmp edi, 0x88
jb 0x860bd1
mov eax, dword [esp + 0x158]
mov dword [eax + 0x9c], 2
jmp 0x860bd1
mov eax, dword [esp + 0x158]
mov edx, dword [esp + 0x10]
mov dword [eax + 0x94], edx
mov edx, ecx
mov edi, dword [esp + 0x24]
mov ecx, ebx
cmp edi, 0x88
jae 0x860b9c
movzx eax, word [edx]
movzx eax, byte [eax + 0x89e584]
mov edi, edx
lea edx, [edi + eax*2]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ebx, ecx
push eax
push dword [esp + 0x44]
mov ebp, dword [esp + 0x16c]
push ebp
push dword [esp + 0x40]
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
cmp esi, 0xfffffc20
je 0x860c1e
test esi, esi
jne 0x860c62
mov ax, word [edi + 2]
jmp 0x860c4d
movzx eax, word [edi + 2]
lea ecx, [edi + eax*2]
cmp dword [ebp + 0x80], ecx
jae 0x865b7d
mov esi, edi
movzx edx, word [edi]
cmp edx, 0x77
jne 0x860c3f
mov edi, esi
jmp 0x860c4d
movzx ecx, word [ecx]
cmp ecx, 0x77
mov edi, esi
jne 0x865b7d
movzx eax, ax
lea ecx, [edi + eax*2]
movzx eax, word [edi + eax*2]
cmp eax, 0x77
je 0x860bb0
jmp 0x860cc8
cmp esi, 0xfffffc1a
jne case.0x866089.6
mov eax, dword [esp + 0x158]
mov ecx, dword [eax + 0x90]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0xc]
lea edx, [ecx + ecx]
add edx, dword [eax + 0x74]
mov ecx, dword [eax + 0x80]
mov dword [esp + 0x2c], ecx
mov edi, dword [esp + 0x24]
mov eax, dword [eax + 0x84]
mov ecx, 1
cmp ebx, eax
jne 0x860b8e
mov eax, edx
movzx ecx, word [eax + 2]
movzx edx, word [eax + ecx*2]
lea eax, [eax + ecx*2]
cmp edx, 0x77
mov edx, eax
je 0x860caa
mov dword [esp + 4], 1
mov ecx, edx
mov eax, dword [esp + 4]
or eax, dword [esp + 0x44]
je 0x863f1e
add ecx, 4
mov dword [esp + 0x10], ecx
mov dword [esp + 4], ebx
jmp 0x85e690
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 [edi + 0x89e584]
ja 0x864f72
movzx ecx, word [edx + 2]
add ecx, eax
lea eax, [edx + ecx*2]
mov dword [esp + 0x10], eax
jmp 0x85e690
movzx ecx, word [edx + 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 0x861138
mov ebp, edx
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 + 4]
sub ecx, dword [edi + 0x78]
sar ecx, 1
mov edx, esi
or edx, 1
mov dword [eax + edx*4], ecx
mov ebx, dword [esp + 0x28]
cmp esi, ebx
jl 0x860da4
cmp ebx, esi
jge 0x860d9d
lea edi, [eax + esi*4]
lea ecx, [eax + ebx*4]
lea edx, [eax + ebx*4 + 4]
cmp edx, edi
ja 0x860d7d
mov edx, edi
neg eax
shl ebx, 2
sub eax, ebx
lea eax, [edx + eax + 3]
and eax, 0xfffffffc
sub esp, 4
push eax
push 0xff
push ecx
call sub.msvcrt.dll_memset
add esp, 0x10
add esi, 2
mov dword [esp + 0x28], esi
mov edx, ebp
jmp 0x861d2e
add edx, 2
nop
nop
mov eax, edx
movzx ecx, word [eax + 2]
movzx edx, word [eax + ecx*2]
lea eax, [eax + ecx*2]
cmp edx, 0x77
mov edx, eax
je 0x860db0
jmp 0x861d2e
mov edi, dword [esp + 4]
cmp edi, eax
je 0x862cbf
lea eax, [edi - 2]
mov ecx, dword [esp + 0x20]
cmp edi, dword [ecx]
ja 0x860de6
mov ecx, dword [esp + 0x20]
mov dword [ecx], eax
cmp dword [esi + 0x58], 0
movzx eax, word [eax]
je 0x862ca5
mov ebx, edx
mov cl, 1
cmp eax, 0x5f
je 0x862cc3
mov ecx, eax
shr ecx, 7
movzx ecx, byte [ecx + 0x8a0804]
shl ecx, 7
and eax, 0x7f
or eax, ecx
movzx eax, word [eax + eax + 0x8a2a04]
movzx eax, byte [eax*8 + 0x89f185]
mov eax, dword [eax*4 + 0x89e698]
or eax, 2
cmp eax, 3
sete cl
jmp 0x862cc3
xor ebx, ebx
mov edx, eax
jmp 0x861991
movzx eax, word [edx + 2]
movzx ecx, word [ebx]
cmp ax, cx
je 0x867099
mov esi, edx
movzx edx, di
cmp edx, 0x20
jne 0x860e79
cmp eax, 0xff
mov edx, dword [esp + 0x158]
ja 0x860e71
mov edx, dword [edx + 0x40]
movzx eax, byte [edx + eax]
cmp eax, ecx
je 0x867099
add ebx, 2
mov dword [esp + 4], ebx
jmp 0x861f26
cmp dword [esp + 0x30], 0
je 0x862213
mov esi, 0xfffffff2
mov ecx, dword [esp + 0x44]
lea ecx, [ecx - 6]
movzx ecx, cx
cmp ecx, 0xf
ja case.0x866089.6
jmp dword [ecx*4 + 0x867e4c]
cmp edx, dword [esp + 0xc]
mov eax, dword [esp + 8]
mov dword [esp + 4], eax
jle 0x85e678
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
xor ecx, ecx
cmp ebp, 0x12
sete cl
mov edx, dword [esp + 8]
mov dword [esp + 4], edx
jmp 0x85c898
mov eax, edx
and eax, 1
mov dword [esp + 0x44], eax
mov eax, 0x3cf
bt eax, esi
jae 0x860ef9
mov dword [esp + 0x38], 0x7fffffff
jmp 0x860f04
movsx eax, byte [edx + 0x89e4e9]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 8]
lea eax, [eax + 0x24]
mov dword [esp + 0x10], eax
movsx ebp, byte [edx + 0x89e4de]
jmp 0x85c403
add edx, 4
mov dword [esp + 0x10], edx
movzx ecx, word [ebx]
mov edx, ecx
and edx, 0xfc00
cmp edx, 0xd800
jne 0x860f54
shl ecx, 0xa
and ecx, 0xffc00
movzx edx, word [ebx + 2]
add ebx, 4
and edx, 0x3ff
lea ecx, [ecx + edx + 0x10000]
jmp 0x860f57
add ebx, 2
movzx edx, di
cmp edx, 0x1f
mov dword [esp + 4], ebx
jne 0x860f72
xor esi, esi
cmp eax, ecx
jne 0x85e690
jmp case.0x866089.6
cmp eax, 0x80
mov edx, dword [esp + 0x158]
jb 0x86207d
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 + 0x8a0804]
shl edx, 7
mov edi, eax
sub edi, esi
add edi, edx
movzx edx, word [edi + edi + 0x8a2a04]
mov edx, dword [edx*8 + 0x89f188]
add edx, eax
jmp 0x862084
lea eax, [esi + 0x3e4]
cmp eax, 4
mov edx, edi
jae 0x863f08
movzx eax, word [edx + 2]
lea ecx, [edx + eax*2]
movzx eax, word [edx + eax*2]
cmp eax, 0x77
mov edx, ecx
je 0x860fd0
cmp dword [esp + 0x10], 0
jne 0x864751
add ecx, 4
mov dword [esp + 0x10], ecx
jmp 0x85e690
mov ecx, dword [esp + 8]
test ecx, ecx
jne 0x86103a
mov eax, dword [esp + 0x158]
mov ecx, eax
mov eax, dword [ecx + 0xc]
mov edx, dword [esp + 0x48]
mov ebp, dword [esp + 0x50]
mov dword [eax + edx*4], ebp
mov edx, dword [esp + 0xac]
mov ebp, dword [esp + 0xa4]
mov dword [eax + edx*4], ebp
mov ecx, dword [ecx + 0x10]
sub ecx, ebx
mov edx, dword [esp + 0xa8]
mov dword [eax + ecx*4], edx
xor ecx, ecx
or ecx, dword [esp + 0x44]
je 0x863f1e
add esi, 4
mov dword [esp + 0x10], esi
mov dword [esp + 4], edi
jmp 0x85e690
mov esi, 0xfffffff2
lea eax, [ebp - 6]
movzx eax, ax
cmp eax, 0xf
ja case.0x866089.6
jmp dword [eax*4 + 0x867a34]
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 4]
mov dword [esp + 8], edx
mov edi, dword [esp + 8]
cmp edi, eax
jae 0x865a02
movzx edx, word [edi]
cmp edx, 0xff
ja 0x8610a6
mov esi, dword [esp + 0x3c]
mov esi, dword [esi]
test byte [esi + edx], 4
jne 0x867099
add edi, 2
mov dword [esp + 8], edi
inc ecx
cmp ecx, dword [esp + 0xc]
jl 0x86107f
jmp 0x860143
mov eax, dword [ebp + 0x80]
mov dword [esp + 0x2c], eax
mov ecx, edi
mov ax, word [ecx]
movzx eax, ax
cmp eax, 0x78
je 0x863f1e
cmp dword [esp + 0x10], 0
jne 0x864751
nop
mov eax, ecx
movzx ecx, word [eax + 2]
movzx edx, word [eax + ecx*2]
lea ecx, [eax + ecx*2]
cmp edx, 0x77
je 0x8610e0
add ecx, 4
mov dword [esp + 0x10], ecx
mov eax, dword [ebp + 0x90]
mov dword [esp + 0x28], eax
jmp 0x85e690
mov eax, dword [esp + 0x158]
cmp dword [eax + 0x4c], 0
jne 0x863f1e
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85c321
mov ecx, dword [esp + 0x20]
cmp edi, dword [ecx]
ja 0x85c869
jmp 0x85c321
or eax, 0x10000
mov dword [edi + 0x94], eax
jmp 0x861d2e
test ax, ax
je 0x863aad
mov eax, dword [esp + 0x24]
movzx eax, ax
cmp eax, 0x78
mov dword [esp + 0x28], ebx
je 0x861178
cmp eax, 0x7b
je 0x8646ac
mov ecx, dword [esp + 0x10]
cmp dword [esp + 4], ecx
jne 0x863208
movzx eax, si
add edx, 4
cmp eax, 0x81
mov dword [esp + 0x10], edx
jne 0x85e690
jmp 0x8646d0
mov ebx, ecx
jmp 0x86119a
mov ebx, ecx
mov edx, esi
mov ebp, edx
movzx edx, word [edx + 2]
cmp edx, 0xa
ja case.default.0x8611d6
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 + 0x8a0804]
shl ecx, 7
mov edi, eax
sub edi, esi
add edi, ecx
movzx ecx, word [edi + edi + 0x8a2a04]
jmp dword [edx*4 + 0x868078]
cmp eax, 0x180d
jle 0x85c7c4
lea edx, [eax - 0x2000]
cmp edx, 0x5f
ja case.default.0x8611f7
jmp dword [edx*4 + 0x8680a4]
add edx, 2
cmp eax, 0xff
mov dword [esp + 4], edx
ja 0x86121c
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 0x10
jne 0x867099
add esi, 2
mov dword [esp + 0x10], esi
jmp 0x85e690
mov ebp, edx
cmp ebp, eax
jae 0x8612f9
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 + 0x8a0804]
shl edx, 7
sub ecx, esi
add ecx, edx
movzx ecx, word [ecx + ecx + 0x8a2a04]
movzx edx, byte [ecx*8 + 0x89f186]
movzx ecx, word [ebp]
cmp dword [esp + 0x30], 0
mov esi, 1
je 0x8612a4
mov edi, ecx
and edi, 0xfc00
cmp edi, 0xd800
jne 0x8612a4
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 + 0x8a0804]
shl edi, 7
sub ecx, ebx
add ecx, edi
movzx ecx, word [ecx + ecx + 0x8a2a04]
movzx ecx, byte [ecx*8 + 0x89f186]
mov edi, 1
shl edi, cl
and edi, dword [edx*4 + 0x89e710]
je 0x8612eb
lea ebp, [ebp + esi*2]
cmp ebp, eax
jae 0x8612f9
test edi, edi
mov edx, ecx
jne 0x861265
cmp ebp, eax
jb 0x861322
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x861322
mov ecx, dword [esp + 0x20]
cmp ebp, dword [ecx]
jbe 0x861322
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
cmp eax, 1
jg 0x865568
mov dword [esp + 4], ebp
mov eax, dword [esp + 8]
add eax, 2
mov dword [esp + 0x10], eax
jmp 0x85e690
mov ebx, edx
xor eax, eax
jmp 0x85c6aa
cmp edx, 0x69
sete al
cmp edx, 0x6d
sete cl
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 8]
movzx ebp, word [ecx + 0x24]
movzx edx, word [ecx + 0x26]
test edx, edx
mov dword [esp + 0x38], 0x7fffffff
je 0x86136b
mov dword [esp + 0x38], edx
xor ecx, ecx
mov cl, al
mov dword [esp + 0x44], ecx
mov eax, dword [esp + 8]
lea eax, [eax + 0x28]
mov dword [esp + 0x10], eax
jmp 0x85c403
cmp dword [esp + 0x40], 0
jne 0x867099
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
xor ecx, ecx
cmp esi, eax
jae 0x863e2b
lea edi, [esi + 2]
cmp dword [esp + 0x30], 0
je 0x8613be
movzx edx, word [esi]
and edx, 0xfc00
cmp edx, 0xd800
jne 0x8613be
add esi, 4
mov edi, esi
inc ecx
cmp ecx, dword [esp + 0xc]
mov dword [esp + 8], edi
mov esi, edi
jl 0x861396
jmp 0x860143
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
xor ecx, ecx
mov dword [esp + 8], esi
mov edi, dword [esp + 8]
cmp edi, eax
jae 0x863f25
lea esi, [edi + 2]
movzx edx, word [edi]
cmp dword [esp + 0x30], 0
je 0x861424
mov ebx, edx
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x861424
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
jmp 0x861426
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 + 0x8a0804]
shl esi, 7
sub edx, ebx
add edx, esi
movzx edx, word [edx + edx + 0x8a2a04]
movzx edx, byte [edx*8 + 0x89f185]
add dl, 0xfb
xor esi, esi
cmp dl, 4
ja 0x86146d
movsx edx, dl
mov esi, dword [edx*4 + 0x89e560]
cmp dword [esp + 0x40], esi
je 0x867099
mov dword [esp + 8], edi
inc ecx
cmp ecx, dword [esp + 0xc]
jl 0x8613dc
jmp 0x860143
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
xor ecx, ecx
mov dword [esp + 8], esi
mov edi, dword [esp + 8]
cmp edi, eax
jae 0x863f60
lea esi, [edi + 2]
movzx edx, word [edi]
cmp dword [esp + 0x30], 0
je 0x8614df
mov ebx, edx
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x8614df
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
jmp 0x8614e1
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 + 0x8a0804]
shl esi, 7
sub edx, ebx
add edx, esi
movzx edx, word [edx + edx + 0x8a2a04]
movzx edx, byte [edx*8 + 0x89f185]
xor ebx, ebx
mov esi, dword [esp + 0x54]
cmp dword [edx*4 + 0x89e698], esi
sete bl
cmp dword [esp + 0x40], ebx
je 0x867099
mov dword [esp + 8], edi
inc ecx
cmp ecx, dword [esp + 0xc]
jl 0x861497
jmp 0x860143
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
xor ecx, ecx
mov dword [esp + 8], esi
mov edi, dword [esp + 8]
cmp edi, eax
jae 0x863f9b
lea esi, [edi + 2]
movzx edx, word [edi]
cmp dword [esp + 0x30], 0
je 0x861596
mov ebx, edx
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x861596
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
jmp 0x861598
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 + 0x8a0804]
shl esi, 7
sub edx, ebx
add edx, esi
movzx edx, word [edx + edx + 0x8a2a04]
movzx edx, byte [edx*8 + 0x89f185]
xor ebx, ebx
cmp dword [esp + 0x54], edx
sete bl
cmp dword [esp + 0x40], ebx
je 0x867099
mov dword [esp + 8], edi
inc ecx
cmp ecx, dword [esp + 0xc]
jl 0x86154e
jmp 0x860143
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
xor ecx, ecx
mov dword [esp + 8], esi
mov edi, dword [esp + 8]
cmp edi, eax
jae 0x863fd6
lea esi, [edi + 2]
movzx edx, word [edi]
cmp dword [esp + 0x30], 0
je 0x861646
mov ebx, edx
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x861646
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
jmp 0x861648
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 + 0x8a0804]
shl esi, 7
sub edx, ebx
add edx, esi
movzx edx, word [edx + edx + 0x8a2a04]
movzx edx, byte [edx*8 + 0x89f184]
xor ebx, ebx
cmp dword [esp + 0x54], edx
sete bl
cmp dword [esp + 0x40], ebx
je 0x867099
mov dword [esp + 8], edi
inc ecx
cmp ecx, dword [esp + 0xc]
jl 0x8615fe
jmp 0x860143
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
xor ecx, ecx
mov dword [esp + 8], esi
mov edi, dword [esp + 8]
cmp edi, eax
jae 0x864011
lea esi, [edi + 2]
movzx edx, word [edi]
cmp dword [esp + 0x30], 0
je 0x8616f6
mov ebx, edx
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x8616f6
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
jmp 0x8616f8
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 + 0x8a0804]
shl esi, 7
sub edx, ebx
add edx, esi
movzx edx, word [edx + edx + 0x8a2a04]
movzx edx, byte [edx*8 + 0x89f185]
mov edx, dword [edx*4 + 0x89e698]
or edx, 2
xor ebx, ebx
cmp edx, 3
sete bl
cmp dword [esp + 0x40], ebx
je 0x867099
mov dword [esp + 8], edi
inc ecx
cmp ecx, dword [esp + 0xc]
jl 0x8616ae
jmp 0x860143
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
xor ecx, ecx
mov dword [esp + 8], esi
mov edi, dword [esp + 8]
cmp edi, eax
jae 0x86404c
lea esi, [edi + 2]
movzx edx, word [edi]
cmp dword [esp + 0x30], 0
je 0x8617af
mov ebx, edx
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x8617af
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
jmp 0x8617b1
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 + 0x8a0804]
shl esi, 7
mov ebp, edx
sub ebp, ebx
add ebp, esi
movzx esi, word [ebp + ebp + 0x8a2a04]
movzx esi, byte [esi*8 + 0x89f185]
mov esi, dword [esi*4 + 0x89e698]
or esi, 2
cmp esi, 3
sete bl
cmp edx, 0x5f
sete dl
or dl, bl
movzx edx, dl
cmp dword [esp + 0x40], edx
je 0x867099
mov dword [esp + 8], edi
inc ecx
cmp ecx, dword [esp + 0xc]
jl 0x861767
jmp 0x860143
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov ecx, dword [esp + 0x54]
lea ecx, [ecx*4 + 0x89f04c]
mov edx, 1
mov dword [esp + 8], esi
mov edi, dword [esp + 8]
cmp edi, eax
jae 0x864087
lea ebx, [edi + 2]
movzx esi, word [edi]
cmp dword [esp + 0x30], 0
je 0x861885
mov ebp, esi
and ebp, 0xfc00
cmp ebp, 0xd800
jne 0x861885
shl esi, 0xa
and esi, 0xffc00
movzx ebx, word [edi + 2]
add edi, 4
mov dword [esp + 8], edi
and ebx, 0x3ff
lea esi, [esi + ebx + 0x10000]
jmp 0x861889
mov dword [esp + 8], ebx
mov edi, dword [esp + 0x54]
mov ebx, dword [edi*4 + 0x89f048]
cmp esi, ebx
jb 0x8618ae
mov ebp, ecx
nop
nop
nop
nop
nop
nop
cmp esi, ebx
je 0x8618ba
mov ebx, dword [ebp]
add ebp, 4
cmp esi, ebx
jae 0x8618a0
cmp dword [esp + 0x40], 0
jne 0x8618c5
jmp 0x867099
cmp dword [esp + 0x40], 0
jne 0x867099
cmp edx, dword [esp + 0xc]
lea edx, [edx + 1]
jl 0x861839
jmp 0x860143
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
xor ecx, ecx
mov dword [esp + 8], esi
mov edi, dword [esp + 8]
cmp edi, eax
jae 0x8640c2
lea esi, [edi + 2]
movzx edx, word [edi]
cmp dword [esp + 0x30], 0
je 0x86192b
mov ebx, edx
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x86192b
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
jmp 0x86192d
mov edi, esi
mov bl, 1
cmp edx, 0x24
je 0x861958
cmp edx, 0x40
je 0x861958
cmp edx, 0x60
je 0x861958
lea esi, [edx - 0xa0]
cmp esi, 0xd760
setb bh
cmp edx, 0xdfff
seta bl
or bl, bh
movzx edx, bl
cmp dword [esp + 0x40], edx
je 0x867099
mov dword [esp + 8], edi
inc ecx
cmp ecx, dword [esp + 0xc]
jl 0x8618e3
jmp 0x860143
mov ecx, ebx
or ecx, 1
mov ecx, dword [ebp + ecx*4]
sub ecx, edi
mov dword [esp + 0xc], ecx
mov edx, eax
mov edi, dword [esp + 0x158]
mov esi, dword [esp + 4]
mov ebp, edx
movzx ecx, word [edx]
movzx eax, cx
mov edx, ecx
add edx, 0xffffff9e
movzx edx, dx
cmp edx, 6
jae 0x8619ca
lea ecx, [eax - 0x62]
mov edx, eax
and edx, 1
mov dword [esp + 0x44], edx
mov edx, 0x3cf
bt edx, ecx
jae 0x861a04
mov dword [esp + 0x38], 0x7fffffff
jmp 0x861a0f
lea ecx, [ecx - 0x68]
movzx ecx, cx
cmp ecx, 2
jae 0x861a80
cmp eax, 0x69
sete al
mov dword [esp + 0x44], eax
movzx eax, word [ebp + 2]
mov dword [esp + 8], eax
movzx eax, word [ebp + 4]
test eax, eax
mov dword [esp + 0x38], 0x7fffffff
je 0x8619ff
mov dword [esp + 0x38], eax
add ebp, 6
jmp 0x861a1d
movsx ecx, byte [eax + 0x89e4e9]
mov dword [esp + 0x38], ecx
add ebp, 2
movsx eax, byte [eax + 0x89e4de]
mov dword [esp + 8], eax
mov dword [esp + 0x10], ebp
cmp dword [esp + 0xc], 0
je 0x85e690
jns 0x861a39
cmp dword [esp + 8], 0
je 0x85e690
cmp dword [esp + 8], 0
jle 0x861f73
xor esi, esi
mov ebp, dword [esp + 0x158]
mov edi, dword [esp + 4]
sub esp, 4
mov ecx, ebx
mov edx, edi
push dword [esp + 0x28]
push ebp
push dword [esp + 0x18]
call fcn.00868270
add esp, 0x10
test eax, eax
js 0x863a26
lea edi, [edi + eax*2]
inc esi
cmp esi, dword [esp + 8]
jl 0x861a51
jmp 0x861f77
sub esp, 4
mov ecx, ebx
mov edx, esi
push dword [esp + 0x28]
push edi
push dword [esp + 0x18]
call fcn.00868270
add esp, 0x10
test eax, eax
js 0x865bbe
lea esi, [esi + eax*2]
mov dword [esp + 4], esi
mov dword [esp + 0x10], ebp
jmp 0x85e690
lea ecx, [ebp - 4]
mov ebx, edx
mov eax, dword [esp + 0x20]
cmp ecx, dword [eax]
jae 0x861ac3
mov eax, dword [esp + 0x20]
mov dword [eax], ecx
movzx eax, word [ecx]
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x861aef
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [ecx + 2]
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
cmp dword [esi + 0x58], 0
je 0x8620b1
mov cl, 1
cmp eax, 0x5f
je 0x85c6a7
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 + 0x8a0804]
shl ecx, 7
sub eax, edx
add eax, ecx
movzx eax, word [eax + eax + 0x8a2a04]
movzx eax, byte [eax*8 + 0x89f185]
mov eax, dword [eax*4 + 0x89e698]
or eax, 2
cmp eax, 3
sete cl
jmp 0x85c6a7
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x861b71
mov ecx, dword [esp + 0x20]
cmp ebp, dword [ecx]
jbe 0x861b71
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
cmp eax, 1
jg 0x865568
mov dword [esp + 4], ebp
cmp dword [esp + 0x48], 0
jne 0x85e690
jmp 0x8630d8
mov edx, eax
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85c81d
mov ecx, dword [esp + 0x20]
cmp edx, dword [ecx]
jbe 0x85c81d
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
cmp eax, 1
mov eax, edx
jle 0x85c81f
jmp 0x865568
mov eax, esi
jmp 0x85c81f
cmp esi, 1
jne case.0x866089.6
mov ebp, dword [esp + 0x158]
mov eax, dword [ebp + 0x80]
mov dword [esp + 0x2c], eax
mov ecx, edi
mov ax, word [ecx]
movzx eax, ax
cmp eax, 0x82
je 0x861bf4
cmp eax, 0x77
jne 0x863f1e
movzx edx, word [ecx + 2]
movzx eax, word [ecx + edx*2]
lea ecx, [ecx + edx*2]
cmp eax, 0x77
je 0x861bf4
mov ebx, dword [ebp + 0x84]
mov esi, dword [ebp + 0x90]
movzx eax, ax
cmp eax, 0x78
mov dword [esp + 0x28], esi
je 0x860cd6
cmp ebx, dword [esp + 4]
je 0x860cd6
jmp 0x863550
mov ecx, dword [esp + 0x4c]
mov ecx, dword [ecx]
lea edx, [ecx + ecx]
sub eax, edx
mov edx, dword [esp + 4]
cmp edx, eax
ja 0x861c62
movzx eax, word [edx]
cmp ax, word [esi + 0x34]
jne 0x861c62
cmp ecx, 1
je 0x863f1e
movzx eax, word [edx + 2]
cmp ax, word [esi + 0x36]
je 0x863f1e
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
mov edx, edi
je case.0x85e6a7.13
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx]
add ecx, 0xfffffffe
cmp dword [esp + 4], ecx
jne case.0x85e6a7.13
mov ecx, dword [esp + 0x158]
cmp dword [ecx + 0x18], 0
jne case.0x85e6a7.13
mov ecx, dword [esp + 0x4c]
cmp dword [ecx], 2
jne case.0x85e6a7.13
mov ecx, dword [esp + 4]
movzx ecx, word [ecx]
mov edx, dword [esp + 0x158]
cmp cx, word [edx + 0x34]
mov edx, edi
jne case.0x85e6a7.13
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
cmp eax, 1
jg 0x864bf7
mov esi, edx
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
mov edx, dword [esp + 4]
cmp edx, ecx
jae 0x8647db
lea eax, [edx + 2]
cmp dword [esp + 0x30], 0
je 0x861cf5
cmp eax, ecx
jae 0x861cf5
movzx ecx, word [edx + 2]
and ecx, 0xfc00
cmp ecx, 0xdc00
jne 0x861cf5
add edx, 4
mov eax, edx
add esi, 2
mov dword [esp + 0x10], esi
mov dword [esp + 4], eax
jmp 0x85e690
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov ecx, dword [esp + 4]
sub eax, ecx
cmp eax, 1
jle 0x865d0e
movzx eax, word [edx + 2]
cmp ax, word [ecx]
jne 0x867099
add ecx, 2
mov dword [esp + 4], ecx
add edx, 4
mov dword [esp + 0x10], edx
jmp 0x85e690
xor eax, eax
mov ebx, dword [esp + 4]
mov ecx, dword [esi + 0xa8]
test ecx, ecx
je 0x861d60
mov edx, ecx
cmp eax, dword [edx + 4]
jne 0x861d5a
cmp ebx, dword [edx + 0x14]
je 0x863e62
mov edx, dword [edx]
test edx, edx
jne 0x861d4c
mov dword [esp + 0x5c], eax
mov eax, dword [esi + 0x94]
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x58], ecx
lea eax, [esp + 0x58]
mov dword [esi + 0xa8], eax
mov ecx, dword [esi + 0x10]
mov dword [esp + 0x64], ecx
cmp ecx, 0x1e
jg 0x861d99
lea eax, [esp + 0xc4]
mov dword [esp + 0x60], eax
jmp 0x861db9
shl ecx, 2
sub esp, 0xc
push ecx
call dword [0x89cdb8]
add esp, 0x10
mov dword [esp + 0x60], eax
test eax, eax
je 0x865d04
mov ecx, dword [esp + 0x64]
mov edx, ebp
add edx, 4
mov dword [esp + 8], edx
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 0x861df5
mov eax, dword [esp + 0x158]
mov dword [eax + 0x9c], 2
movzx eax, cx
movzx eax, byte [eax + 0x89e584]
lea edx, [edi + eax*2]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x10]
push eax
push dword [esp + 0x44]
mov ebx, dword [esp + 0x16c]
push ebx
push dword [esp + 0x40]
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
mov eax, dword [esp + 0x64]
shl eax, 2
sub esp, 4
push eax
push dword [esp + 0x68]
push dword [ebx + 0xc]
call sub.msvcrt.dll_memcpy
add esp, 0x10
mov eax, dword [esp + 0x68]
mov dword [ebx + 0x94], eax
mov eax, dword [esp + 0x58]
mov dword [ebx + 0xa8], eax
cmp esi, 1
je 0x862c23
cmp esi, 0xfffffc19
je 0x862c23
lea ecx, [esi + 0x3e4]
cmp ecx, 4
jbe 0x863e6c
test esi, esi
jne 0x863e85
mov ecx, dword [esp + 0x158]
lea edx, [esp + 0x58]
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 0x861dda
jmp 0x863eaa
add eax, eax
mov edi, dword [esp + 4]
sub edi, eax
mov eax, dword [esp + 0x158]
cmp edi, dword [eax + 0x78]
jb 0x863f1e
mov eax, dword [esp + 0x20]
cmp edi, dword [eax]
jae 0x861ede
mov eax, dword [esp + 0x20]
mov dword [eax], edi
mov dword [esp + 4], edi
add ebx, 4
mov dword [esp + 0x10], ebx
jmp 0x85e690
mov esi, edx
cmp eax, 0xff
mov edx, dword [esp + 0x158]
ja 0x861f05
mov ecx, dword [edx + 0x3c]
movzx eax, byte [ecx + eax]
movzx ecx, word [edi]
cmp ecx, 0xff
ja 0x861f17
mov edx, dword [edx + 0x3c]
movzx ecx, byte [edx + ecx]
cmp eax, ecx
jne 0x867099
add edi, 2
mov dword [esp + 4], edi
add esi, 4
mov dword [esp + 0x10], esi
jmp 0x85e690
mov edx, eax
and edx, 1
mov dword [esp + 8], edx
mov edx, 0x3cf
bt edx, ecx
jae 0x861f4f
mov dword [esp + 0xc], 0x7fffffff
jmp 0x861f5a
movsx ecx, byte [eax + 0x89e4e9]
mov dword [esp + 0xc], ecx
mov edx, esi
add edx, 2
movsx ebx, byte [eax + 0x89e4de]
test ebx, ebx
jg 0x85c996
jmp 0x86250a
mov edi, dword [esp + 4]
mov dword [esp + 4], edi
mov eax, dword [esp + 8]
cmp eax, dword [esp + 0x38]
je 0x85e690
jmp 0x8656e0
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x861fb3
mov ecx, dword [esp + 0x20]
cmp edx, dword [ecx]
jbe 0x861fb3
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
cmp eax, 1
jg 0x865568
mov dword [esp + 4], edx
cmp dword [esp + 0x44], 0
jne 0x85e690
jmp 0x863151
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x861fec
mov ecx, dword [esp + 0x20]
cmp edx, dword [ecx]
jbe 0x861fec
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
cmp eax, 1
jg 0x865568
mov dword [esp + 4], edx
cmp dword [esp + 0x44], 0
jne 0x85e690
jmp 0x8631ab
mov ebx, edx
mov edx, 1
cmp eax, 0x7f
ja 0x86203d
movzx ecx, word [edi]
cmp ecx, 0xff
mov edx, dword [esi + 0x3c]
movzx eax, byte [edx + eax]
ja 0x862022
movzx ecx, byte [edx + ecx]
cmp ecx, eax
jne 0x867099
add ebx, 4
add edi, 2
mov dword [esp + 4], edi
mov dword [esp + 0x10], ebx
jmp 0x85e690
add ebx, 2
movzx ecx, word [edi]
mov esi, ecx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x862513
shl ecx, 0xa
and ecx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
mov dword [esp + 4], edi
and esi, 0x3ff
lea ecx, [ecx + esi + 0x10000]
jmp 0x86251a
mov edx, dword [edx + 0x40]
movzx edx, byte [edx + eax]
xor esi, esi
cmp eax, ecx
je case.0x866089.6
cmp edx, ecx
jne 0x85e690
jmp case.0x866089.6
mov edi, esi
mov dword [esp + 4], edi
cmp dword [esp + 0x44], 0
jne 0x85e690
jmp 0x862f35
cmp eax, 0xff
ja 0x85c6a5
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
mov cl, byte [ecx + eax]
and cl, 0x10
shr cl, 4
jmp 0x85c6a7
movzx eax, word [ebp + 4]
test eax, eax
je case.0x85f59c.4
mov ecx, dword [esp + 0x158]
mov esi, ecx
mov ecx, dword [esi + 0x24]
movzx edx, word [ebp + 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 + 0x28]
jge 0x862121
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 0x85d1ed
dec eax
add edx, ecx
cmp eax, 1
jg 0x8620f7
jmp 0x85d1ed
mov eax, dword [esp + 0x158]
mov eax, dword [eax + 0xa8]
test eax, eax
je case.0x85f59c.4
movzx ecx, word [ebp + 2]
cmp ecx, 0xffff
je 0x85d1e8
cmp dword [eax + 4], ecx
sete al
movzx esi, al
test esi, esi
je case.0x85f59c.4
jmp 0x862fb4
mov eax, dword [esp + 0x158]
mov esi, dword [eax + 0xa8]
test esi, esi
je case.0x85f59c.4
movzx eax, word [ebp + 4]
test eax, eax
je case.0x85f59c.4
mov ecx, dword [esp + 0x158]
mov ebx, ecx
mov ecx, dword [ebx + 0x24]
movzx edx, word [ebp + 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 0x862fb4
dec eax
add edx, ecx
cmp eax, 1
jg 0x8621a8
jmp case.0x85f59c.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 + 0x10]
mov edx, ebp
push eax
push 0
push esi
push dword [esp + 0x40]
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
cmp esi, 0xfffffc20
je case.0x85f59c.4
test esi, esi
je case.0x85f59c.4
jmp 0x86362c
mov esi, 0xfffffff2
mov ecx, dword [esp + 0x44]
lea ecx, [ecx - 6]
movzx ecx, cx
cmp ecx, 0xf
ja case.0x866089.6
jmp dword [ecx*4 + 0x867e8c]
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx]
mov dword [esp + 4], ecx
mov edx, dword [esp + 8]
sub ecx, edx
sar ecx, 1
cmp eax, ecx
jbe 0x85e629
jmp 0x85e64e
mov ecx, dword [esp + 0x4c]
mov ecx, dword [ecx]
lea edx, [ecx + ecx]
mov esi, eax
sub esi, edx
cmp ebx, esi
ja 0x86494e
movzx edx, word [ebx]
cmp dx, word [edi + 0x34]
mov edx, ebp
jne 0x86494e
cmp ecx, 1
jne 0x85c833
mov ecx, 1
jmp 0x85c843
mov ebx, dword [esp + 0x158]
xor esi, esi
cmp edx, 0xc
jle 0x8622c9
lea edi, [edx - 0x2028]
cmp edi, 2
jb 0x8622d5
cmp edx, 0x85
je 0x8622d5
cmp edx, 0xd
mov edx, ebp
jne case.0x866089.6
cmp eax, ecx
jae 0x85cb33
movzx ecx, word [eax]
cmp ecx, 0xa
jne 0x8622e1
add eax, 2
jmp 0x8622e1
lea ecx, [edx - 0xb]
cmp ecx, 2
jae 0x85c695
cmp dword [ebx + 0x6c], 0
mov edx, ebp
jne 0x867099
add edx, 2
mov dword [esp + 0x10], edx
mov dword [esp + 4], eax
jmp 0x85e690
mov edi, ecx
jmp 0x8622f9
mov edi, ecx
mov edx, esi
xor esi, esi
cmp eax, 0x1fff
mov dword [esp + 4], edi
jle 0x862324
cmp eax, 0x202e
jg 0x862421
add eax, 0xffffe000
cmp eax, 0xb
jae 0x85c321
jmp case.0x866089.6
cmp eax, 0x9f
jle 0x862447
cmp eax, 0xa0
je case.0x866089.6
cmp eax, 0x1680
je case.0x866089.6
cmp eax, 0x180e
jne 0x85c321
jmp case.0x866089.6
mov edi, ecx
jmp 0x86235d
mov edi, ecx
mov edx, esi
xor esi, esi
cmp eax, 0x1fff
mov dword [esp + 4], edi
jle 0x862388
cmp eax, 0x202e
jg 0x85c3b5
add eax, 0xffffe000
cmp eax, 0xb
jb 0x85c321
jmp case.0x866089.6
cmp eax, 0x9f
jle 0x85c881
cmp eax, 0xa0
je 0x85c321
cmp eax, 0x1680
je 0x85c321
cmp eax, 0x180e
je 0x85c321
jmp case.0x866089.6
mov edi, ecx
jmp 0x8623c1
mov edi, ecx
mov edx, esi
xor esi, esi
lea ecx, [eax - 0xa]
cmp ecx, 4
jb case.0x866089.6
mov dword [esp + 4], edi
lea ecx, [eax - 0x2028]
cmp ecx, 2
jb case.0x866089.6
cmp eax, 0x85
jne 0x85c321
jmp case.0x866089.6
mov esi, ecx
jmp 0x8623fa
mov esi, ecx
mov edx, edi
lea ecx, [eax - 0xa]
cmp ecx, 4
jb 0x862418
lea ecx, [eax - 0x2028]
cmp ecx, 2
jb 0x862418
cmp eax, 0x85
jne 0x867099
mov dword [esp + 4], esi
jmp 0x85c321
cmp eax, 0x202f
je case.0x866089.6
cmp eax, 0x205f
je case.0x866089.6
cmp eax, 0x3000
jne 0x85c321
jmp case.0x866089.6
cmp eax, 9
je case.0x866089.6
cmp eax, 0x20
jne 0x85c321
jmp case.0x866089.6
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x862483
mov ecx, dword [esp + 0x20]
cmp edx, dword [ecx]
jbe 0x862483
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
cmp eax, 1
jg 0x865568
mov dword [esp + 4], edx
cmp dword [esp + 0x48], 0
jne 0x85e690
jmp 0x8632c1
mov edx, ecx
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85caeb
mov ecx, dword [esp + 0x20]
cmp edx, dword [ecx]
jbe 0x85caeb
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
cmp eax, 1
mov ecx, edx
jle 0x85caed
jmp 0x865568
cmp eax, 0x69
sete cl
cmp eax, 0x6d
sete al
mov dword [esp + 0x24], eax
mov edx, esi
movzx ebx, word [edx + 2]
movzx eax, word [edx + 4]
test eax, eax
mov dword [esp + 0xc], 0x7fffffff
je 0x8624f7
mov dword [esp + 0xc], eax
xor eax, eax
mov al, cl
mov dword [esp + 8], eax
add edx, 6
test ebx, ebx
jg 0x85c996
mov dword [esp + 0x10], edx
jmp 0x85ca12
add edi, 2
mov dword [esp + 4], edi
lea edx, [ebx + edx*2]
mov dword [esp + 0x10], edx
cmp eax, ecx
je 0x85e690
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 + 0x8a0804]
shl edx, 7
mov edi, eax
sub edi, esi
add edi, edx
movzx edx, word [edi + edi + 0x8a2a04]
add eax, dword [edx*8 + 0x89f188]
xor esi, esi
cmp ecx, eax
je 0x85e690
jmp case.0x866089.6
mov ebx, edx
mov ecx, dword [esp + 0x4c]
mov ecx, dword [ecx]
lea eax, [eax + ecx*2]
cmp edi, eax
jb 0x863f1e
lea eax, [ecx + ecx]
mov edx, edi
sub edx, eax
movzx eax, word [edx]
cmp ax, word [esi + 0x34]
jne 0x863f1e
cmp ecx, 1
mov edx, ebx
je 0x85c321
neg ecx
movzx eax, word [edi + ecx*2 + 2]
cmp ax, word [esi + 0x36]
je 0x85c321
jmp 0x863f1e
cmp dword [esp + 0x24], ebx
mov ebp, edx
jle 0x85e63e
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov ebp, edx
cmp ebp, eax
jae 0x85cb01
cmp dword [esp + 0x30], 0
je 0x8625ef
movzx edx, word [ebp]
and edx, 0xfc00
xor ecx, ecx
cmp edx, 0xd800
sete cl
inc ecx
jmp 0x8625f4
mov ecx, 1
mov edx, dword [esp + 0x24]
cmp dword [esp + 0x40], 0
jne 0x85e63e
lea ebp, [ebp + ecx*2]
inc ebx
cmp ebx, edx
jl 0x8625c8
jmp 0x85e63e
cmp dword [esp + 0x24], ebx
mov ebp, edx
jle 0x85e63e
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov ebp, edx
cmp ebp, eax
jae 0x85cb01
movzx edx, word [ebp]
cmp dword [esp + 0x30], 0
mov ecx, 1
je 0x86266c
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x86266c
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 + 0x8a0804]
shl esi, 7
sub edx, edi
add edx, esi
movzx edx, word [edx + edx + 0x8a2a04]
movzx edx, byte [edx*8 + 0x89f185]
add dl, 0xfb
xor esi, esi
cmp dl, 4
ja 0x8626b3
movsx edx, dl
mov esi, dword [edx*4 + 0x89e560]
cmp dword [esp + 0x40], esi
je 0x85e63e
inc ebx
lea ebp, [ebp + ecx*2]
cmp ebx, dword [esp + 0x24]
jl 0x862625
jmp 0x85e63e
cmp dword [esp + 0x24], ebx
mov ebp, edx
jle 0x85e63e
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov dword [esp + 4], eax
mov ebp, edx
cmp ebp, dword [esp + 4]
jae 0x85cb01
mov eax, ebx
movzx ecx, word [ebp]
cmp dword [esp + 0x30], 0
mov edx, 1
je 0x862734
mov esi, ecx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x862734
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 + 0x8a0804]
shl esi, 7
sub ecx, edi
add ecx, esi
movzx ecx, word [ecx + ecx + 0x8a2a04]
movzx ecx, byte [ecx*8 + 0x89f185]
xor ebx, ebx
mov esi, dword [esp + 0x54]
cmp dword [ecx*4 + 0x89e698], esi
sete bl
cmp dword [esp + 0x40], ebx
je 0x85e63e
lea ebp, [ebp + edx*2]
mov ebx, eax
inc ebx
cmp ebx, dword [esp + 0x24]
jl 0x8626e9
jmp 0x85e63e
cmp dword [esp + 0x24], ebx
mov ebp, edx
jle 0x85e63e
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov dword [esp + 4], eax
mov ebp, edx
cmp ebp, dword [esp + 4]
jae 0x85cb01
mov eax, ebx
movzx ecx, word [ebp]
cmp dword [esp + 0x30], 0
mov edx, 1
je 0x8627fa
mov esi, ecx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x8627fa
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 + 0x8a0804]
shl esi, 7
sub ecx, edi
add ecx, esi
movzx ecx, word [ecx + ecx + 0x8a2a04]
movzx ecx, byte [ecx*8 + 0x89f185]
xor ebx, ebx
cmp dword [esp + 0x54], ecx
sete bl
cmp dword [esp + 0x40], ebx
je 0x85e63e
lea ebp, [ebp + edx*2]
mov ebx, eax
inc ebx
cmp ebx, dword [esp + 0x24]
jl 0x8627af
jmp 0x85e63e
cmp dword [esp + 0x24], ebx
mov ebp, edx
jle 0x85e63e
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov dword [esp + 4], eax
mov ebp, edx
cmp ebp, dword [esp + 4]
jae 0x85cb01
mov eax, ebx
movzx ecx, word [ebp]
cmp dword [esp + 0x30], 0
mov edx, 1
je 0x8628b9
mov esi, ecx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x8628b9
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 + 0x8a0804]
shl esi, 7
sub ecx, edi
add ecx, esi
movzx ecx, word [ecx + ecx + 0x8a2a04]
movzx ecx, byte [ecx*8 + 0x89f184]
xor ebx, ebx
cmp dword [esp + 0x54], ecx
sete bl
cmp dword [esp + 0x40], ebx
je 0x85e63e
lea ebp, [ebp + edx*2]
mov ebx, eax
inc ebx
cmp ebx, dword [esp + 0x24]
jl 0x86286e
jmp 0x85e63e
cmp dword [esp + 0x24], ebx
mov ebp, edx
jle 0x85e63e
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov dword [esp + 4], eax
mov ebp, edx
cmp ebp, dword [esp + 4]
jae 0x85cb01
mov eax, ebx
movzx edx, word [ebp]
cmp dword [esp + 0x30], 0
mov ecx, 1
je 0x862978
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x862978
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 + 0x8a0804]
shl esi, 7
sub edx, edi
add edx, esi
movzx edx, word [edx + edx + 0x8a2a04]
movzx edx, byte [edx*8 + 0x89f185]
mov edx, dword [edx*4 + 0x89e698]
or edx, 2
xor ebx, ebx
cmp edx, 3
sete bl
cmp dword [esp + 0x40], ebx
je 0x85e63e
lea ebp, [ebp + ecx*2]
mov ebx, eax
inc ebx
cmp ebx, dword [esp + 0x24]
jl 0x86292d
jmp 0x85e63e
cmp dword [esp + 0x24], ebx
mov ebp, edx
jle 0x85e63e
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov dword [esp + 4], eax
mov ebp, edx
cmp ebp, dword [esp + 4]
jae 0x85cb01
mov eax, ebx
movzx ecx, word [ebp]
cmp dword [esp + 0x30], 0
mov edx, 1
je 0x862a40
mov esi, ecx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x862a40
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 + 0x8a0804]
shl esi, 7
mov ebx, ecx
sub ebx, edi
add ebx, esi
movzx esi, word [ebx + ebx + 0x8a2a04]
movzx esi, byte [esi*8 + 0x89f185]
mov esi, dword [esi*4 + 0x89e698]
or esi, 2
cmp esi, 3
sete bl
cmp ecx, 0x5f
sete cl
or cl, bl
movzx ecx, cl
cmp dword [esp + 0x40], ecx
je 0x85e63e
lea ebp, [ebp + edx*2]
mov ebx, eax
inc ebx
cmp ebx, dword [esp + 0x24]
jl 0x8629f5
jmp 0x85e63e
cmp dword [esp + 0x24], ebx
mov ebp, edx
jle 0x85e63e
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov dword [esp + 4], eax
mov ecx, dword [esp + 0x54]
lea eax, [ecx*4 + 0x89f04c]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xc]
mov ebp, edx
cmp ebp, dword [esp + 4]
jae 0x85cb01
movzx edx, word [ebp]
cmp dword [esp + 0x30], 0
mov esi, 1
je 0x862b28
mov edi, edx
and edi, 0xfc00
cmp edi, 0xd800
jne 0x862b28
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 0x862b2a
mov ecx, ebp
mov edi, dword [esp + 0x54]
mov ebx, dword [edi*4 + 0x89f048]
cmp edx, ebx
jb 0x862b4b
mov ebp, dword [esp + 0x38]
cmp edx, ebx
je 0x862b57
mov ebx, dword [ebp]
add ebp, 4
cmp edx, ebx
jae 0x862b3d
cmp dword [esp + 0x40], 0
jne 0x862b62
jmp 0x85e63c
cmp dword [esp + 0x40], 0
jne 0x85e63c
mov ebp, ecx
lea ebp, [ebp + esi*2]
inc eax
cmp eax, dword [esp + 0x24]
jl 0x862adb
jmp 0x85e63e
cmp dword [esp + 0x24], ebx
mov ebp, edx
jle 0x85e63e
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov ebp, edx
cmp ebp, eax
jae 0x85cb01
mov edi, ebx
movzx edx, word [ebp]
cmp dword [esp + 0x30], 0
mov ecx, 1
je 0x862bd5
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x862bd5
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 0x862c00
cmp edx, 0x40
je 0x862c00
cmp edx, 0x60
je 0x862c00
lea esi, [edx - 0xa0]
cmp esi, 0xd760
setb bh
cmp edx, 0xdfff
seta bl
or bl, bh
movzx edx, bl
cmp dword [esp + 0x40], edx
je 0x85e63e
mov ebx, edi
inc ebx
lea ebp, [ebp + ecx*2]
cmp ebx, dword [esp + 0x24]
jl 0x862b8c
jmp 0x85e63e
mov eax, dword [esp + 0x60]
lea ecx, [esp + 0xc4]
cmp eax, ecx
je 0x862c3f
sub esp, 0xc
push eax
call dword [0x89cdbc]
add esp, 0x10
mov eax, dword [esp + 0x158]
mov ecx, dword [eax + 0x80]
mov dword [esp + 0x2c], ecx
mov eax, dword [eax + 0x84]
mov dword [esp + 4], eax
mov eax, dword [esp + 8]
mov dword [esp + 0x10], eax
jmp 0x85e690
mov ecx, dword [esp + 0x4c]
mov ecx, dword [ecx]
lea edx, [ecx + ecx]
sub eax, edx
cmp edi, eax
mov edx, ebx
ja 0x865070
movzx eax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x865070
cmp ecx, 1
je 0x85c321
movzx eax, word [edi + 2]
cmp ax, word [esi + 0x36]
je 0x85c321
jmp 0x865070
cmp eax, 0xff
ja 0x862cbf
mov ebx, edx
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
mov cl, byte [ecx + eax]
and cl, 0x10
shr cl, 4
jmp 0x862cc3
mov ebx, edx
xor ecx, ecx
movzx eax, cl
mov ecx, dword [esp + 0x14]
cmp edi, dword [ecx]
jae 0x862cff
cmp dword [esi + 0x58], 0
movzx edx, word [edi]
je 0x85c799
mov cl, 1
cmp edx, 0x5f
je 0x85c761
mov ecx, edx
shr ecx, 7
movzx ecx, byte [ecx + 0x8a0804]
shl ecx, 7
and edx, 0x7f
or edx, ecx
jmp 0x85c72a
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx]
test ecx, ecx
je 0x85c75f
mov edx, dword [esp + 0x20]
cmp edi, dword [edx]
ja 0x85c74c
jmp 0x85c75f
movzx eax, byte [ecx*8 + 0x89f185]
cmp eax, 9
ja 0x862d39
mov ecx, 0x320
bt ecx, eax
jb case.0x8611d6.0
movzx eax, word [esp + 0x24]
cmp eax, 0xf
je 0x85c80d
jmp 0x867099
movzx eax, word [ebp + 4]
movzx ecx, byte [ecx*8 + 0x89f185]
cmp dword [ecx*4 + 0x89e698], eax
jmp 0x862d7d
movzx eax, word [ebp + 4]
movzx ecx, byte [ecx*8 + 0x89f185]
jmp 0x862d7b
movzx eax, word [ebp + 4]
movzx ecx, byte [ecx*8 + 0x89f184]
cmp eax, ecx
setne al
movzx ecx, word [esp + 0x24]
cmp ecx, 0x10
jmp 0x862dca
movzx eax, byte [ecx*8 + 0x89f185]
mov eax, dword [eax*4 + 0x89e698]
or eax, 2
cmp eax, 3
jmp 0x862dbf
movzx ecx, byte [ecx*8 + 0x89f185]
mov ecx, dword [ecx*4 + 0x89e698]
or ecx, 2
cmp ecx, 3
je case.0x8611d6.0
cmp eax, 0x5f
sete al
movzx ecx, word [esp + 0x24]
cmp ecx, 0xf
sete cl
xor cl, al
jne 0x85c80d
jmp 0x867099
movzx edx, word [ebp + 4]
mov ecx, dword [edx*4 + 0x89f048]
cmp eax, ecx
jb 0x85c2bb
lea edx, [edx*4 + 0x89f04c]
cmp eax, ecx
je 0x85c2ee
mov ecx, dword [edx]
add edx, 4
cmp eax, ecx
jae 0x862df4
jmp 0x85c2bb
movzx eax, word [edx + 4]
mov dword [esp + 0x30], eax
lea ebx, [eax + eax]
mov eax, dword [esp + 0x158]
cmp ebx, dword [eax + 0x14]
jl 0x865a3d
movzx eax, di
cmp eax, 0x87
seta cl
cmp eax, 0x81
sete al
or al, cl
mov byte [esp + 0x10], al
mov ebp, dword [esp + 0x158]
cmp byte [esp + 0x10], 0
jne 0x862e7c
cmp dword [ebp + 0x70], 0
jne 0x862e86
movzx eax, word [edx + 2]
movzx eax, word [edx + eax*2]
cmp eax, 0x77
je 0x862e86
jmp 0x862f9e
lea edx, [edx + eax*2]
mov eax, dword [esp + 0x30]
mov dword [ebp + 0x94], eax
mov di, 0x77
cmp byte [esp + 0x10], 0
je 0x862e4c
mov dword [ebp + 0x9c], 2
mov eax, dword [ebp + 0x94]
mov dword [esp + 0x30], eax
mov ebx, dword [ebp + 0xb0]
movzx eax, di
movzx eax, byte [eax + 0x89e584]
mov edi, edx
lea edx, [edi + eax*2]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x10]
push eax
push dword [esp + 0x44]
push ebp
push dword [esp + 0x40]
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
cmp esi, 0xfffffc20
je 0x862ee4
test esi, esi
jne 0x8639c3
mov edx, edi
mov ax, word [edx + 2]
jmp 0x862f13
movzx eax, word [edi + 2]
lea ecx, [edi + eax*2]
cmp dword [ebp + 0x80], ecx
jae 0x865b7d
mov esi, edi
movzx edx, word [edi]
cmp edx, 0x77
jne 0x862f05
mov edx, esi
jmp 0x862f13
movzx ecx, word [ecx]
cmp ecx, 0x77
mov edx, esi
jne 0x865b7d
movzx eax, ax
mov ebp, dword [esp + 0x158]
mov dword [ebp + 0xb0], ebx
movzx ecx, word [edx + eax*2]
cmp ecx, 0x77
je 0x862e64
jmp 0x863f1e
mov edi, dword [esp + 4]
cmp edi, ebx
jbe 0x863146
mov ebp, dword [esp + 0x158]
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, edi
push eax
push dword [esp + 0x44]
push ebp
push dword [esp + 0x40]
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
test esi, esi
jne case.0x866089.6
movzx eax, word [edi - 2]
and eax, 0xfc00
cmp eax, 0xdc00
je 0x862f8e
add edi, 0xfffffffe
jmp 0x862f91
add edi, 0xfffffffc
mov edx, dword [esp + 0x10]
cmp edi, ebx
ja 0x862f4c
jmp 0x8631a4
movzx eax, di
movzx eax, byte [eax + 0x89e584]
lea edx, [edx + eax*2]
mov ebx, dword [esp + 4]
jmp 0x863525
movzx eax, word [esp + 0x10]
mov cl, byte [eax + 0x89e584]
movzx eax, cl
lea eax, [ebp + eax*2]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x24]
movzx eax, ax
cmp eax, 0x8c
je 0x867156
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 4]
jmp 0x86351e
mov ebx, dword [esp + 4]
cmp ebx, dword [esp + 8]
jbe 0x86351a
mov ebp, dword [esp + 0x158]
mov edi, dword [esp + 0x28]
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, ebx
push eax
push dword [esp + 0x44]
push ebp
push edi
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
test esi, esi
jne case.0x866089.6
lea eax, [ebx - 2]
cmp dword [esp + 0x30], 0
je 0x863054
movzx ecx, word [ebx - 2]
and ecx, 0xfc00
cmp ecx, 0xdc00
mov edx, dword [esp + 0x10]
je 0x86305c
mov ebx, eax
jmp 0x86305f
mov ebx, eax
mov edx, dword [esp + 0x10]
jmp 0x86305f
add ebx, 0xfffffffc
cmp ebx, dword [esp + 8]
ja 0x863006
jmp 0x863525
mov ebx, dword [esp + 4]
cmp ebx, dword [esp + 8]
jbe 0x86351a
mov ebp, dword [esp + 0x158]
mov edi, dword [esp + 0x28]
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, ebx
push eax
push dword [esp + 0x44]
push ebp
push edi
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
test esi, esi
jne case.0x866089.6
movzx eax, word [ebx - 2]
and eax, 0xfc00
cmp eax, 0xdc00
je 0x8630c6
add ebx, 0xfffffffe
jmp 0x8630c9
add ebx, 0xfffffffc
mov edx, dword [esp + 0x10]
cmp ebx, dword [esp + 8]
ja 0x863087
jmp 0x863525
mov ebx, dword [esp + 4]
cmp ebx, dword [esp + 8]
jbe 0x86351a
mov ebp, dword [esp + 0x158]
mov edi, dword [esp + 0x28]
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, ebx
push eax
push dword [esp + 0x44]
push ebp
push edi
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
test esi, esi
jne case.0x866089.6
movzx eax, word [ebx - 2]
and eax, 0xfc00
cmp eax, 0xdc00
je 0x863134
add ebx, 0xfffffffe
jmp 0x863137
add ebx, 0xfffffffc
mov edx, dword [esp + 0x10]
cmp ebx, dword [esp + 8]
ja 0x8630f5
jmp 0x863525
mov edx, dword [esp + 0x10]
mov ebx, edi
jmp 0x86351e
mov eax, dword [esp + 4]
mov ebx, edi
cmp eax, ebx
je 0x86351a
mov ebx, eax
mov ebp, dword [esp + 0x158]
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, ebx
push eax
push dword [esp + 0x44]
push ebp
push dword [esp + 0x40]
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
test esi, esi
jne case.0x866089.6
add ebx, 0xfffffffe
cmp edi, ebx
mov edx, dword [esp + 0x10]
jne 0x86316c
mov ebx, edi
jmp 0x863525
mov eax, dword [esp + 4]
mov ebx, dword [esp + 8]
cmp eax, ebx
je 0x86351a
mov ebx, eax
mov ebp, dword [esp + 0x158]
mov edi, dword [esp + 0x28]
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, ebx
push eax
push dword [esp + 0x44]
push ebp
push edi
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
test esi, esi
jne case.0x866089.6
add ebx, 0xfffffffe
cmp dword [esp + 8], ebx
mov edx, dword [esp + 0x10]
jne 0x8631cc
jmp 0x863319
cmp eax, 0x7a
jne 0x863322
add edx, 4
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x10]
push eax
push dword [esp + 0x44]
push ebp
push ebx
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
test esi, esi
jne case.0x866089.6
movzx eax, word [edi]
cmp eax, 0x81
je 0x867459
movzx eax, ax
cmp eax, 0x88
jae 0x8674d7
mov edx, edi
mov ebx, dword [esp + 4]
jmp 0x863525
mov ebx, dword [esp + 8]
cmp dword [esp + 4], ebx
je 0x86351a
mov ebp, dword [esp + 0x158]
mov edi, dword [esp + 0x28]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 4]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, ebx
push eax
push dword [esp + 0x44]
push ebp
push edi
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
test esi, esi
jne case.0x866089.6
add ebx, 0xfffffffe
cmp dword [esp + 8], ebx
mov edx, dword [esp + 0x10]
jne 0x863288
jmp 0x863319
mov ebx, dword [esp + 8]
cmp dword [esp + 4], ebx
je 0x86351a
mov ebp, dword [esp + 0x158]
mov edi, dword [esp + 0x28]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 4]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, ebx
push eax
push dword [esp + 0x44]
push ebp
push edi
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
test esi, esi
jne case.0x866089.6
add ebx, 0xfffffffe
cmp dword [esp + 8], ebx
mov edx, dword [esp + 0x10]
jne 0x8632e2
mov ebx, dword [esp + 8]
jmp 0x863525
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x10]
mov esi, edx
mov edx, edi
push eax
push dword [esp + 0x44]
push ebp
push ebx
push dword [esp + 0x48]
call fcn.0085c1c0
mov edx, esi
add esp, 0x20
mov esi, eax
test esi, esi
je 0x863368
cmp esi, 0xfffffc1b
jne case.0x866089.6
cmp dword [ebp + 0xb8], edi
jne 0x867764
movzx eax, word [edi]
add edx, 4
cmp eax, 0x81
je 0x86747a
mov ebx, dword [esp + 4]
jmp 0x863525
mov ebx, dword [esp + 4]
cmp ebx, dword [esp + 8]
jbe 0x86351a
mov ebp, dword [esp + 0x158]
mov esi, dword [esp + 0x28]
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov edi, dword [esp + 0x10]
mov ecx, edi
push eax
push dword [esp + 0x44]
push ebp
push esi
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
test esi, esi
jne case.0x866089.6
lea ebx, [edi - 2]
cmp dword [esp + 0x30], 0
movzx ecx, word [edi - 2]
je 0x86341b
and ecx, 0xfc00
cmp ecx, 0xdc00
jne 0x8633ee
add edi, 0xfffffffc
mov ebx, edi
movzx ecx, word [ebx]
mov edx, ecx
and edx, 0xfc00
cmp edx, 0xd800
jne 0x86341b
shl ecx, 0xa
and ecx, 0xffc00
movzx edx, word [ebx + 2]
and edx, 0x3ff
lea ecx, [ecx + edx + 0x10000]
mov edx, dword [esp + 8]
cmp ebx, edx
jbe 0x86351a
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 + 0x8a0804]
shl edx, 7
sub ecx, esi
add ecx, edx
movzx ecx, word [ecx + ecx + 0x8a2a04]
movzx ecx, byte [ecx*8 + 0x89f186]
lea eax, [ebx - 2]
cmp dword [esp + 0x30], 0
movzx edx, word [ebx - 2]
je 0x8634a6
and edx, 0xfc00
cmp edx, 0xdc00
jne 0x863479
lea eax, [ebx - 4]
movzx edx, word [eax]
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x8634a6
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 + 0x8a0804]
shl esi, 7
sub edx, edi
add edx, esi
movzx edx, word [edx + edx + 0x8a2a04]
movzx edx, byte [edx*8 + 0x89f186]
mov esi, dword [edx*4 + 0x89e710]
bt esi, ecx
jae 0x8634f8
cmp eax, dword [esp + 8]
mov ecx, edx
mov ebx, eax
ja 0x86345a
jmp 0x863621
mov dword [esp + 4], ebx
cmp ebx, dword [esp + 8]
mov ebp, dword [esp + 0x158]
mov esi, dword [esp + 0x28]
mov edx, dword [esp + 0x10]
ja 0x86339f
jmp 0x863379
mov edx, dword [esp + 0x10]
mov ebp, dword [esp + 0x158]
mov eax, dword [ebp]
mov ecx, dword [ebp + 0x50]
mov dword [esp + 0x30], ecx
lea ecx, [eax + 1]
mov dword [ebp], ecx
mov esi, 0xfffffff8
cmp eax, dword [ebp + 4]
mov dword [esp + 4], ebx
mov dword [esp + 0x10], edx
jb 0x85c267
jmp case.0x866089.6
mov edi, ecx
cmp eax, 0x7a
jne 0x86368d
mov edx, edi
add edx, 4
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, ebx
push eax
push dword [esp + 0x44]
push ebp
push esi
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
test esi, esi
mov edx, dword [esp + 8]
je 0x863525
jmp case.0x866089.6
mov eax, dword [esp + 8]
cmp dword [esp + 4], eax
jbe 0x862fdc
mov edi, dword [esp + 0x28]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 4]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, ebx
push eax
push dword [esp + 0x44]
push dword [esp + 0x16c]
push edi
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
test esi, esi
jne case.0x866089.6
movzx eax, word [ebx - 2]
and eax, 0xfc00
cmp eax, 0xdc00
je 0x8635ee
add ebx, 0xfffffffe
jmp 0x8635f1
add ebx, 0xfffffffc
mov edx, dword [esp + 0x10]
cmp ebp, 0x11
jne 0x863616
mov ecx, ebx
cmp ecx, dword [esp + 8]
jbe 0x863616
movzx eax, word [ecx]
cmp eax, 0xa
jne 0x863616
movzx eax, word [ecx - 2]
cmp eax, 0xd
jne 0x863616
add ebx, 0xfffffffe
cmp ebx, dword [esp + 8]
ja 0x8635a9
jmp 0x86351e
mov edx, dword [esp + 0x10]
mov ebx, eax
jmp 0x86351e
cmp esi, 1
jne case.0x866089.6
mov eax, dword [esp + 0x158]
mov eax, dword [eax + 0x90]
movzx ecx, word [ebp]
cmp ecx, 0x92
jne 0x863651
add ebp, 2
movzx ecx, word [ebp + 2]
movzx edx, word [ebp + ecx*2]
lea ebp, [ebp + ecx*2]
cmp edx, 0x77
je 0x863651
cmp eax, dword [esp + 0x28]
movzx ecx, word [esp + 0x10]
jge 0x863672
mov eax, dword [esp + 0x28]
movzx ecx, byte [ecx + 0x89e584]
mov edx, 2
sub edx, ecx
lea ebp, [ebp + edx*2]
mov dword [esp + 0x28], eax
jmp 0x862fbf
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, ebx
mov edx, dword [esp + 0x14]
push eax
push dword [esp + 0x44]
push ebp
push esi
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
test esi, esi
jne case.0x866089.6
add edi, 4
mov edx, edi
jmp 0x86351e
mov eax, dword [esp + 8]
cmp dword [esp + 4], eax
je 0x86373d
mov edi, dword [esp + 0x28]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 4]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, ebx
push eax
push dword [esp + 0x44]
push dword [esp + 0x16c]
push edi
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
test esi, esi
jne case.0x866089.6
mov esi, ebx
lea ebx, [ebx - 2]
cmp ebp, 0x11
mov edx, dword [esp + 0x10]
jne 0x863735
cmp ebx, dword [esp + 8]
jbe 0x863735
movzx ecx, word [ebx]
cmp ecx, 0xa
jne 0x863735
movzx ecx, word [esi - 4]
cmp ecx, 0xd
jne 0x863735
add esi, 0xfffffffc
mov ebx, esi
cmp ebx, dword [esp + 8]
jne 0x8636db
jmp 0x863741
mov edx, dword [esp + 0x10]
mov ebp, dword [esp + 0x158]
mov ebx, dword [esp + 8]
jmp 0x863525
mov eax, dword [esp + 0x160]
test eax, eax
je 0x863774
lea esi, [esp + 0x160]
sub esi, ecx
test esi, esi
jle case.0x866089.6
neg esi
jmp case.0x866089.6
sub esp, 0xc
lea ecx, [esp + 0x16c]
xor edx, edx
push 1
push 0
push 0
push 0
push 0
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
jmp case.0x866089.6
cmp ebx, dword [esp + 0x10]
jb 0x867755
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x867755
mov ecx, dword [esp + 0x20]
cmp ebx, dword [ecx]
jbe 0x867755
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x867755
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x867755
mov ecx, dword [esp + 0x20]
cmp ebp, dword [ecx]
jbe 0x867755
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x867755
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x867755
mov ecx, dword [esp + 0x20]
cmp ebp, dword [ecx]
jbe 0x867755
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x867755
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x867755
mov ecx, dword [esp + 0x20]
cmp ebp, dword [ecx]
jbe 0x867755
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x867755
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x867755
mov ecx, dword [esp + 0x20]
cmp edx, dword [ecx]
jbe 0x867755
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x867755
mov esi, 0xffffffeb
jmp case.0x866089.6
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x867755
mov ecx, dword [esp + 0x20]
cmp ebp, dword [ecx]
jbe 0x867755
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x867755
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x867755
mov ecx, dword [esp + 0x20]
cmp ebp, dword [ecx]
jbe 0x867755
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x867755
mov edx, dword [esp + 4]
cmp edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x158]
jne 0x863956
movzx eax, di
cmp eax, 0x9f
je 0x863956
cmp dword [ecx + 0xa8], 0
je 0x8640fd
mov dword [ecx + 0x84], edx
mov eax, dword [esp + 0x28]
mov dword [ecx + 0x90], eax
mov eax, dword [esp + 0x2c]
mov dword [ecx + 0x80], eax
test di, di
mov esi, 1
je case.0x866089.6
mov esi, 0xfffffc19
jmp case.0x866089.6
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x867755
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x867755
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x867755
cmp esi, 0xfffffc1b
mov edx, edi
jne case.0x866089.6
movzx eax, word [edx]
cmp eax, 0x81
jne 0x864720
mov edi, dword [esp + 0x158]
jmp 0x8649ca
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x867755
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x867755
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x867755
cmp eax, 0xfffffffe
jne 0x863a31
mov eax, dword [esp + 0x14]
mov edi, dword [eax]
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x863f1e
mov ecx, dword [esp + 0x14]
cmp edi, dword [ecx]
jb 0x863f1e
mov ecx, dword [esp + 0x20]
cmp edi, dword [ecx]
jbe 0x863f1e
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x863f1e
mov edx, ecx
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x863f1e
mov ecx, dword [esp + 0x20]
cmp edx, dword [ecx]
jbe 0x863f1e
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x863f1e
mov eax, dword [esp + 4]
mov dword [ebp + 0x84], eax
mov dword [ebp + 0x90], ebx
mov eax, dword [esp + 0x2c]
mov dword [ebp + 0x80], eax
mov esi, 1
jmp case.0x866089.6
mov esi, 0xfffffffb
jmp case.0x866089.6
lea ebp, [edx + 4]
mov ebx, dword [esp + 0x158]
mov dword [ebx + 0xb4], ebp
mov dword [ebx + 0xb0], 0
movzx eax, byte [edi + 0x89e584]
lea eax, [edx + eax*2]
movzx ecx, word [edx + 2]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x10]
push eax
push dword [esp + 0x44]
push ebx
push dword [esp + 0x40]
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
cmp esi, 1
je 0x863b4d
cmp esi, 0xfffffc1f
je 0x863b66
cmp esi, 0xfffffc19
mov ebx, dword [esp + 0x158]
jne case.0x866089.6
cmp dword [ebx + 0xb0], 0
je 0x8649e2
cmp esi, 0xfffffc1f
jne case.0x866089.6
sub esp, 8
mov eax, dword [esp + 0x160]
push dword [eax + 0x80]
push ebp
call fcn.00869230
add esp, 0x10
mov esi, 0xfffffc1f
test eax, eax
jne case.0x866089.6
jmp 0x863ca6
movzx eax, byte [edi + 0x89e584]
lea edx, [edx + eax*2]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x10]
push eax
push dword [esp + 0x44]
push dword [esp + 0x16c]
push dword [esp + 0x40]
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
test eax, eax
mov esi, 0xfffffc1d
jne 0x863792
jmp case.0x866089.6
lea ebp, [edx + 4]
mov ebx, dword [esp + 0x158]
mov dword [ebx + 0xb4], ebp
mov dword [ebx + 0xb0], 0
movzx eax, byte [edi + 0x89e584]
lea eax, [edx + eax*2]
movzx ecx, word [edx + 2]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x10]
push eax
push dword [esp + 0x44]
push ebx
push dword [esp + 0x40]
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
cmp esi, 1
je 0x863c46
test esi, esi
je 0x863c5d
cmp esi, 0xfffffc19
mov ebx, dword [esp + 0x158]
jne case.0x866089.6
cmp dword [ebx + 0xb0], 0
jne 0x863c55
mov dword [ebx + 0xb0], ebp
test esi, esi
jne case.0x866089.6
mov esi, 0xfffffc1d
jmp case.0x866089.6
movzx eax, byte [edi + 0x89e584]
lea edx, [edx + eax*2]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x10]
push eax
push dword [esp + 0x44]
push dword [esp + 0x16c]
push dword [esp + 0x40]
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
test esi, esi
jne case.0x866089.6
mov eax, dword [esp + 0x158]
mov ecx, dword [esp + 4]
mov dword [eax + 0x80], ecx
mov esi, 0xfffffc1e
jmp case.0x866089.6
movzx eax, byte [edi + 0x89e584]
mov esi, edx
lea edx, [esi + eax*2]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x10]
push eax
push dword [esp + 0x44]
push dword [esp + 0x16c]
push dword [esp + 0x40]
push dword [esp + 0x48]
call fcn.0085c1c0
mov ecx, esi
add esp, 0x20
mov esi, eax
test esi, esi
jne case.0x866089.6
jmp 0x863d92
lea ebp, [edx + 4]
mov ebx, dword [esp + 0x158]
mov dword [ebx + 0xb4], ebp
mov dword [ebx + 0xb0], 0
movzx eax, byte [edi + 0x89e584]
lea eax, [edx + eax*2]
movzx ecx, word [edx + 2]
mov esi, edx
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x10]
push eax
push dword [esp + 0x44]
push ebx
push dword [esp + 0x40]
push dword [esp + 0x48]
call fcn.0085c1c0
mov ecx, esi
add esp, 0x20
mov esi, eax
cmp esi, 1
je 0x863d7b
test esi, esi
je 0x863d92
cmp esi, 0xfffffc19
mov ebx, dword [esp + 0x158]
jne case.0x866089.6
cmp dword [ebx + 0xb0], 0
jne 0x863d8a
mov dword [ebx + 0xb0], ebp
test esi, esi
jne case.0x866089.6
mov eax, dword [esp + 0x158]
mov dword [eax + 0x80], ecx
mov esi, 0xfffffc20
jmp case.0x866089.6
movzx eax, byte [edi + 0x89e584]
lea edx, [edx + eax*2]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x10]
push eax
push dword [esp + 0x44]
push dword [esp + 0x16c]
push dword [esp + 0x40]
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
test eax, eax
mov esi, 0xfffffc1c
jne 0x863792
jmp case.0x866089.6
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x863f1e
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 4]
cmp edx, dword [ecx]
jbe 0x863f1e
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x863f1e
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x867755
mov ecx, dword [esp + 0x20]
cmp esi, dword [ecx]
jbe 0x867755
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x867755
mov esi, 0xffffffe6
jmp case.0x866089.6
mov eax, dword [esp + 0x60]
lea ecx, [esp + 0xc4]
cmp eax, ecx
je 0x863f1e
sub esp, 0xc
push eax
jmp 0x863eca
mov eax, dword [esp + 0x60]
lea ecx, [esp + 0xc4]
cmp eax, ecx
je case.0x866089.6
sub esp, 0xc
push eax
call dword [0x89cdbc]
add esp, 0x10
jmp case.0x866089.6
mov ecx, dword [esp + 0x158]
mov dword [ecx + 0xa8], eax
mov eax, dword [esp + 0x60]
lea ecx, [esp + 0xc4]
cmp eax, ecx
je 0x863f1e
sub esp, 0xc
push eax
call dword [0x89cdbc]
add esp, 0x10
xor esi, esi
jmp case.0x866089.6
mov edx, ecx
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x863f1e
mov ecx, dword [esp + 0x20]
cmp edx, dword [ecx]
jbe 0x863f1e
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x863f1e
cmp esi, 0xfffffc19
je 0x863f1e
jmp case.0x866089.6
cmp esi, 1
jne case.0x866089.6
xor esi, esi
jmp case.0x866089.6
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x867755
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x867755
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x867755
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x867755
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x867755
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x867755
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x867755
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x867755
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x867755
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x867755
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x867755
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x867755
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x867755
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x867755
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x867755
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x867755
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x867755
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x867755
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x867755
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x867755
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x867755
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x867755
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x867755
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x867755
xor esi, esi
cmp dword [ecx + 0x60], 0
jne case.0x866089.6
mov ecx, dword [esp + 0x158]
cmp dword [ecx + 0x64], 0
mov edx, dword [esp + 4]
je 0x863956
mov eax, dword [ecx + 0x98]
add eax, eax
add eax, dword [ecx + 0x78]
cmp dword [esp + 0x2c], eax
jne 0x863956
jmp 0x863f1e
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, ebx
mov edx, dword [esp + 0x1c]
push eax
push dword [esp + 0x44]
push dword [esp + 0x16c]
push dword [esp + 0x40]
push dword [esp + 0x48]
call fcn.0085c1c0
mov ecx, dword [esp + 0x28]
add esp, 0x20
mov esi, eax
test esi, esi
jne case.0x866089.6
mov eax, dword [esp + 0x24]
mov ebp, eax
neg ebp
lea eax, [eax + eax]
mov dword [esp + 0x30], eax
dec dword [esp + 0xc]
mov eax, dword [esp + 0xc]
inc eax
mov dword [esp + 0xc], eax
cmp eax, dword [esp + 0x38]
jge 0x867099
mov eax, dword [esp + 0x14]
mov esi, dword [eax]
lea eax, [esi - 4]
cmp ebx, eax
mov edi, dword [esp + 0x158]
ja 0x8641b3
mov eax, dword [ebx]
cmp eax, dword [ecx]
je 0x86422a
cmp dword [esp + 0x24], 0
jle 0x86565e
lea eax, [esi + ebp*2]
cmp ebx, eax
ja 0x86565e
sub esp, 4
push dword [esp + 0x34]
lea eax, [esp + 0xc0]
push eax
push ebx
call sub.msvcrt.dll_memcmp
add esp, 0x10
test eax, eax
mov eax, dword [esp + 0x24]
jne 0x86565e
lea ebx, [ebx + eax*2]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, ebx
mov edx, dword [esp + 0x1c]
push eax
push dword [esp + 0x44]
push edi
push dword [esp + 0x40]
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
test esi, esi
mov ecx, dword [esp + 8]
je 0x864186
jmp case.0x866089.6
mov eax, 2
jmp 0x8641ed
mov ecx, dword [esp + 0x38]
test ecx, ecx
mov esi, dword [esp + 0x158]
mov edi, dword [esp + 0x28]
mov eax, dword [esp + 0x44]
js 0x8649ed
cmp ecx, 0xa
mov edx, dword [esp + 0x10]
ja case.default.0x8611d6
jmp dword [ecx*4 + 0x867ca0]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
push eax
push dword [esp + 0x44]
push esi
push edi
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
test esi, esi
mov eax, dword [esp + 0x24]
jne case.0x866089.6
dec dword [esp + 0xc]
mov ebp, 0x80001f
mov ecx, dword [esp + 0xc]
inc ecx
mov dword [esp + 0xc], ecx
cmp ecx, eax
jge 0x867099
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 8]
cmp ecx, dword [eax]
mov esi, dword [esp + 0x158]
jae 0x86734e
lea edi, [ecx + 2]
movzx eax, word [ecx]
cmp dword [esp + 0x30], 0
je 0x8642fc
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x8642fc
shl eax, 0xa
and eax, 0xffc00
movzx edx, word [ecx + 2]
add ecx, 4
and edx, 0x3ff
lea eax, [eax + edx + 0x10000]
jmp 0x8642fe
mov ecx, edi
mov edx, dword [esp + 0x10]
cmp eax, 0x180d
jle 0x86431b
lea edi, [eax - 0x2000]
cmp edi, 0x5f
ja case.default.0x864314
jmp dword [edi*4 + 0x867ccc]
cmp eax, 0x84
jg 0x864372
lea edi, [eax - 9]
cmp edi, 0x17
ja case.0x864314.8203
bt ebp, edi
jae case.0x864314.8203
cmp dword [esp + 0x40], 0
jne 0x867099
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov dword [esp + 0x14], ecx
push eax
push dword [esp + 0x44]
push esi
push dword [esp + 0x40]
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
test esi, esi
mov eax, dword [esp + 0x24]
je 0x864299
jmp case.0x866089.6
cmp eax, 0x85
je case.0x864314.8192
cmp eax, 0xa0
je case.0x864314.8192
cmp eax, 0x1680
je case.0x864314.8192
jmp case.0x864314.8203
cmp eax, 0x3000
je case.0x864314.8192
cmp eax, 0x180e
je case.0x864314.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 + 0x8a0804]
shl edi, 7
sub eax, edx
mov edx, dword [esp + 0x10]
add eax, edi
movzx eax, word [eax + eax + 0x8a2a04]
movzx eax, byte [eax*8 + 0x89f185]
xor ebx, ebx
cmp dword [eax*4 + 0x89e698], 6
sete bl
cmp dword [esp + 0x40], ebx
jne 0x86433a
jmp 0x867099
mov esi, 0xfffffff2
jmp case.0x866089.6
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
push eax
push dword [esp + 0x44]
push dword [esp + 0x16c]
push dword [esp + 0x40]
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
cmp dword [esp + 0x30], 0
je 0x864506
test esi, esi
jne case.0x866089.6
dec edi
inc edi
cmp edi, dword [esp + 0x38]
jge 0x867099
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 8]
cmp edx, dword [eax]
mov esi, dword [esp + 0x158]
jae 0x866517
movzx eax, word [edx]
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
mov ebx, dword [esp + 0xc]
jne 0x864494
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [edx + 2]
add edx, 4
mov dword [esp + 8], edx
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x86449b
add edx, 2
mov dword [esp + 8], edx
mov edx, dword [esp + 0x10]
cmp ebx, eax
je 0x867099
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
push eax
push dword [esp + 0x44]
push esi
push dword [esp + 0x40]
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
test esi, esi
je 0x864439
jmp case.0x866089.6
add ecx, 2
inc edi
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov dword [esp + 0x14], ecx
push eax
push dword [esp + 0x44]
push esi
push dword [esp + 0x40]
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
test esi, esi
jne case.0x866089.6
cmp edi, dword [esp + 0x38]
jge 0x867099
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 8]
cmp ecx, dword [eax]
mov esi, dword [esp + 0x158]
mov edx, dword [esp + 0xc]
jae 0x86718f
movzx eax, word [ecx]
cmp edx, eax
mov edx, dword [esp + 0x10]
jne 0x8644db
jmp 0x867099
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
push eax
push dword [esp + 0x44]
push dword [esp + 0x16c]
push dword [esp + 0x40]
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
cmp dword [esp + 0x30], 0
je 0x86466e
test esi, esi
jne case.0x866089.6
dec edi
inc edi
cmp edi, dword [esp + 0x38]
jge 0x867099
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 8]
cmp edx, dword [eax]
jae 0x866552
movzx eax, word [edx]
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
mov ebx, dword [esp + 0xc]
jne 0x8645dc
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [edx + 2]
add edx, 4
mov dword [esp + 8], edx
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x8645e3
add edx, 2
mov dword [esp + 8], edx
xor esi, esi
cmp ebx, eax
je case.0x866089.6
cmp dword [esp + 0x24], eax
je case.0x866089.6
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
push eax
push dword [esp + 0x44]
push dword [esp + 0x16c]
push dword [esp + 0x40]
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
test esi, esi
je 0x864588
jmp case.0x866089.6
mov ecx, dword [esp + 8]
add ecx, 2
inc edi
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov dword [esp + 0x14], ecx
mov edx, dword [esp + 0x1c]
push eax
push dword [esp + 0x44]
push dword [esp + 0x16c]
push dword [esp + 0x40]
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
test esi, esi
jne case.0x866089.6
cmp edi, dword [esp + 0x38]
jge 0x867099
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 8]
cmp ecx, dword [eax]
mov edx, dword [esp + 0xc]
jae 0x8671ca
movzx eax, word [ecx]
xor esi, esi
cmp edx, eax
je case.0x866089.6
cmp dword [esp + 0x24], eax
jne 0x864635
jmp case.0x866089.6
mov eax, dword [esp + 0x2c]
mov dword [ebp + 0x80], eax
mov eax, dword [esp + 4]
mov dword [ebp + 0x84], eax
mov dword [ebp + 0x90], ebx
mov esi, 0xfffffc1a
jmp case.0x866089.6
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x10]
push eax
push dword [esp + 0x44]
push dword [esp + 0x16c]
push dword [esp + 0x40]
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
test esi, esi
jne case.0x866089.6
mov eax, dword [esp + 0x158]
mov ecx, dword [esp + 0xc]
mov dword [eax + 0xb8], ecx
mov esi, 0xfffffc1b
jmp case.0x866089.6
movzx eax, ax
cmp eax, 0x77
movzx eax, word [edx + 2]
mov edi, dword [esp + 0x158]
jne 0x8649c2
lea ecx, [edx + eax*2]
mov esi, edx
movzx edx, word [esi + eax*2]
cmp edx, 0x77
movzx eax, word [esi + eax*2 + 2]
mov edx, ecx
je 0x864737
jmp 0x8649c4
mov esi, 1
jmp case.0x866089.6
mov esi, 0xfffffff2
jmp case.0x866089.6
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x863f1e
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 4]
cmp edx, dword [ecx]
jbe 0x863f1e
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x863f1e
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x867755
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 4]
cmp edx, dword [ecx]
jbe 0x867755
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x867755
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x863f1e
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 4]
cmp edx, dword [ecx]
jbe 0x863f1e
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x863f1e
mov eax, dword [esp + 4]
mov dword [ebp + 0x84], eax
jmp 0x863abd
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, edi
mov edx, dword [esp + 0x1c]
push eax
push dword [esp + 0x44]
push dword [esp + 0x16c]
push dword [esp + 0x40]
push dword [esp + 0x48]
jmp 0x86486e
add ecx, 2
inc dword [esp + 0xc]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov edi, ecx
push eax
push dword [esp + 0x44]
push esi
push dword [esp + 0x40]
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
test esi, esi
jne case.0x866089.6
mov eax, dword [esp + 0xc]
cmp eax, dword [esp + 0x38]
jge 0x867099
mov eax, dword [esp + 0x14]
mov ecx, edi
cmp ecx, dword [eax]
mov esi, dword [esp + 0x158]
jae 0x8670e4
cmp bx, word [ecx]
mov edx, dword [esp + 0x10]
je 0x86484c
jmp 0x867099
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
push eax
push dword [esp + 0x44]
push dword [esp + 0x16c]
push dword [esp + 0x40]
push dword [esp + 0x48]
jmp 0x864902
mov ecx, dword [esp + 8]
add ecx, 2
inc dword [esp + 0xc]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov dword [esp + 0x14], ecx
push eax
push dword [esp + 0x44]
push esi
push dword [esp + 0x40]
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
test esi, esi
jne case.0x866089.6
mov eax, dword [esp + 0xc]
cmp eax, dword [esp + 0x38]
jge 0x867099
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 8]
cmp ecx, dword [eax]
mov esi, dword [esp + 0x158]
jae 0x86711b
movzx eax, word [ecx]
cmp bx, ax
mov edx, dword [esp + 0x10]
je 0x8648da
cmp edi, eax
je 0x8648da
jmp 0x867099
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x863f1e
mov ecx, dword [esp + 4]
lea ecx, [ecx + 2]
mov edx, dword [esp + 0x14]
cmp ecx, dword [edx]
jb 0x863f1e
mov ecx, dword [esp + 0x158]
cmp dword [ecx + 0x18], 0
jne 0x863f1e
mov ecx, dword [esp + 0x4c]
cmp dword [ecx], 2
jne 0x863f1e
mov ecx, dword [esp + 4]
movzx ecx, word [ecx]
mov edx, dword [esp + 0x158]
cmp cx, word [edx + 0x34]
jne 0x863f1e
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x863f1e
mov ecx, edx
add eax, eax
sub ecx, eax
mov edx, ecx
xor esi, esi
cmp dword [edi + 0xb8], edx
je case.0x866089.6
mov esi, 0xfffffc1b
jmp case.0x866089.6
mov dword [ebx + 0xb0], ebp
jmp case.0x866089.6
movzx ebx, ax
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
push eax
push dword [esp + 0x44]
push esi
push edi
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
mov dword [esp + 4], ebx
cmp ebx, 0x16
jne 0x86511b
test esi, esi
mov eax, dword [esp + 0x24]
jne case.0x866089.6
cmp dword [esp + 0xc], eax
jge 0x867099
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov ecx, dword [esp + 8]
cmp ecx, eax
mov ebp, dword [esp + 0x158]
mov edi, dword [esp + 0x28]
jae 0x867205
lea edx, [ecx + 2]
movzx ecx, word [ecx]
cmp dword [esp + 0x30], 0
je 0x864a98
mov esi, ecx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x864a98
shl ecx, 0xa
and ecx, 0xffc00
mov esi, dword [esp + 8]
movzx edx, word [esi + 2]
add esi, 4
and edx, 0x3ff
lea ecx, [ecx + edx + 0x10000]
jmp 0x864a9a
mov esi, edx
mov dword [esp + 8], esi
cmp esi, eax
jae 0x864b8b
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 + 0x8a0804]
shl edx, 7
sub ecx, esi
add ecx, edx
movzx ecx, word [ecx + ecx + 0x8a2a04]
movzx edx, byte [ecx*8 + 0x89f186]
mov ecx, dword [esp + 8]
movzx ecx, word [ecx]
cmp dword [esp + 0x30], 0
mov esi, 1
je 0x864b1f
mov edi, ecx
and edi, 0xfc00
cmp edi, 0xd800
jne 0x864b1f
shl ecx, 0xa
and ecx, 0xffc00
mov esi, dword [esp + 8]
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 + 0x8a0804]
shl edi, 7
sub ecx, ebx
add ecx, edi
movzx ecx, word [ecx + ecx + 0x8a2a04]
movzx ecx, byte [ecx*8 + 0x89f186]
mov ebx, 1
shl ebx, cl
and ebx, dword [edx*4 + 0x89e710]
je 0x864b6b
mov edx, dword [esp + 8]
lea edx, [edx + esi*2]
jmp 0x864b6f
mov edx, dword [esp + 8]
mov dword [esp + 8], edx
cmp edx, eax
jae 0x864b87
test ebx, ebx
mov edx, ecx
mov edi, dword [esp + 0x28]
jne 0x864ad9
jmp 0x864b8b
mov edi, dword [esp + 0x28]
cmp dword [esp + 8], eax
jb 0x864bba
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x864bba
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x864bba
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
cmp eax, 1
jg 0x865568
inc dword [esp + 0xc]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
push eax
push dword [esp + 0x44]
push ebp
push edi
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
test esi, esi
mov eax, dword [esp + 0x24]
je 0x864a31
jmp case.0x866089.6
mov esi, 0xfffffff4
jmp case.0x866089.6
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x867755
mov ecx, dword [esp + 0x20]
cmp esi, dword [ecx]
jbe 0x867755
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x867755
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x863f1e
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 4]
cmp edx, dword [ecx]
jbe 0x863f1e
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x863f1e
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x863f1e
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 4]
cmp edx, dword [ecx]
jbe 0x863f1e
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x863f1e
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x863f1e
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 4]
cmp edx, dword [ecx]
jbe 0x863f1e
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x863f1e
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x863f1e
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 4]
cmp edx, dword [ecx]
jbe 0x863f1e
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x863f1e
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x863f1e
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 4]
cmp edx, dword [ecx]
jbe 0x863f1e
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x863f1e
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x863f1e
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 4]
cmp edx, dword [ecx]
jbe 0x863f1e
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x863f1e
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x863f1e
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 4]
cmp edx, dword [ecx]
jbe 0x863f1e
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x863f1e
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x863f1e
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 4]
cmp edx, dword [ecx]
jbe 0x863f1e
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x863f1e
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x863f1e
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 4]
cmp edx, dword [ecx]
jbe 0x863f1e
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x863f1e
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x863f1e
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 4]
cmp edx, dword [ecx]
jbe 0x863f1e
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x863f1e
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x863f1e
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 4]
cmp edx, dword [ecx]
jbe 0x863f1e
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x863f1e
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x863f1e
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 4]
cmp edx, dword [ecx]
jbe 0x863f1e
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x863f1e
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x863f1e
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 4]
cmp edx, dword [ecx]
jbe 0x863f1e
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x863f1e
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x863f1e
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 4]
cmp edx, dword [ecx]
jbe 0x863f1e
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x863f1e
lea eax, [edx + eax*2]
movzx ecx, word [edx + 2]
mov edi, edx
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x10]
push eax
push dword [esp + 0x44]
push esi
push dword [esp + 0x40]
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
test esi, esi
jne case.0x866089.6
add edi, 4
mov eax, dword [esp + 0x158]
mov dword [eax + 0x80], edi
mov esi, 0xfffffc1f
jmp case.0x866089.6
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x867755
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x867755
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x867755
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x867755
mov ecx, dword [esp + 0x20]
cmp edi, dword [ecx]
jbe 0x867755
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x867755
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x867755
mov ecx, dword [esp + 0x20]
cmp edi, dword [ecx]
jbe 0x867755
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x867755
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x863f1e
mov ecx, dword [esp + 4]
lea ecx, [ecx + 2]
mov edx, dword [esp + 0x14]
cmp ecx, dword [edx]
jb 0x863f1e
mov ecx, dword [esp + 0x158]
cmp dword [ecx + 0x18], 0
jne 0x863f1e
mov ecx, dword [esp + 0x4c]
cmp dword [ecx], 2
jne 0x863f1e
mov ecx, dword [esp + 4]
movzx ecx, word [ecx]
mov edx, dword [esp + 0x158]
cmp cx, word [edx + 0x34]
jne 0x863f1e
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x863f1e
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x867755
mov ecx, dword [esp + 0x20]
cmp ebx, dword [ecx]
jbe 0x867755
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x867755
cmp dword [esp + 0x30], 0
mov ecx, dword [esp + 0x24]
je 0x866006
test esi, esi
jne case.0x866089.6
dec dword [esp + 0xc]
mov eax, dword [esp + 0x44]
lea eax, [eax - 6]
movzx ebx, ax
mov eax, dword [esp + 0xc]
inc eax
cmp eax, ecx
jge 0x867099
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov edi, dword [esp + 8]
cmp edi, eax
mov esi, dword [esp + 0x158]
jae 0x86741e
cmp dword [esp + 4], 0xc
jne 0x8651d1
mov ecx, dword [esi + 0x18]
test ecx, ecx
je 0x865197
sub esp, 0xc
push dword [esp + 0x3c]
push dword [esp + 0x5c]
push eax
push ecx
push edi
call fcn.00869060
add esp, 0x20
test eax, eax
je 0x8651d1
jmp 0x867099
mov ecx, dword [esp + 0x4c]
mov ecx, dword [ecx]
lea edx, [ecx + ecx]
sub eax, edx
cmp edi, eax
ja 0x8651d1
movzx eax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x8651d1
cmp ecx, 1
je 0x867099
mov edi, dword [esp + 8]
movzx eax, word [edi + 2]
mov ecx, dword [esp + 0x158]
cmp ax, word [ecx + 0x36]
je 0x867099
movzx eax, word [edi]
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x865202
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [edi + 2]
add edi, 4
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x865205
add edi, 2
mov dword [esp + 8], edi
mov esi, 0xfffffff2
cmp ebx, 0xf
ja case.0x866089.6
jmp dword [ebx*4 + 0x867c20]
cmp eax, 0xff
ja case.0x865217.7
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 4
je case.0x865217.7
jmp 0x867099
cmp eax, 0xff
ja 0x867099
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 4
jne case.0x865217.7
jmp 0x867099
cmp eax, 0xff
ja case.0x865217.7
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 1
je case.0x865217.7
jmp 0x867099
cmp eax, 0xff
ja 0x867099
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 1
jne case.0x865217.7
jmp 0x867099
cmp eax, 0xff
ja case.0x865217.7
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 0x10
je case.0x865217.7
jmp 0x8672d1
cmp eax, 0xff
ja 0x8672d1
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 0x10
jne case.0x865217.7
jmp 0x8672d1
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx]
test ecx, ecx
je case.0x865217.7
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 8]
cmp esi, dword [edx]
jb case.0x865217.7
mov edx, dword [esp + 0x158]
cmp dword [edx + 0x18], 0
jne case.0x865217.7
mov edx, dword [esp + 0x4c]
cmp dword [edx], 2
jne case.0x865217.7
mov edx, dword [esp + 0x158]
movzx edx, word [edx + 0x34]
cmp eax, edx
jne case.0x865217.7
mov eax, dword [esp + 0x1c]
mov dword [eax], 1
cmp ecx, 1
jle case.0x865217.7
jmp 0x865568
xor esi, esi
cmp eax, 0xc
jle 0x86547c
lea ecx, [eax - 0x2028]
cmp ecx, 2
jb 0x865488
cmp eax, 0x85
je 0x865488
cmp eax, 0xd
jne case.0x866089.6
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 8]
cmp ecx, dword [eax]
jae case.0x865217.7
mov eax, dword [esp + 8]
movzx eax, word [eax]
cmp eax, 0xa
jne case.0x865217.7
add dword [esp + 8], 2
jmp case.0x865217.7
xor esi, esi
cmp eax, 0x1fff
jle 0x86544b
cmp eax, 0x202e
jg 0x8654bf
add eax, 0xffffe000
cmp eax, 0xb
jae case.0x865217.7
jmp case.0x866089.6
xor esi, esi
cmp eax, 0x1fff
jle 0x86549e
cmp eax, 0x202e
jg 0x8654f4
add eax, 0xffffe000
cmp eax, 0xb
jb case.0x865217.7
jmp case.0x866089.6
xor esi, esi
lea ecx, [eax - 0xa]
cmp ecx, 4
jb case.0x866089.6
lea ecx, [eax - 0x2028]
cmp ecx, 2
jb case.0x866089.6
cmp eax, 0x85
jne case.0x865217.7
jmp case.0x866089.6
lea ecx, [eax - 0xa]
cmp ecx, 4
jb case.0x865217.7
lea ecx, [eax - 0x2028]
cmp ecx, 2
jb case.0x865217.7
cmp eax, 0x85
je case.0x865217.7
jmp 0x867099
cmp eax, 0x9f
jle 0x8654e1
cmp eax, 0xa0
je case.0x866089.6
cmp eax, 0x1680
je case.0x866089.6
cmp eax, 0x180e
jne case.0x865217.7
jmp case.0x866089.6
lea ecx, [eax - 0xb]
cmp ecx, 2
jae 0x86550e
mov eax, dword [esp + 0x158]
cmp dword [eax + 0x6c], 0
je case.0x865217.7
jmp 0x867099
cmp eax, 0x9f
jle 0x865518
cmp eax, 0xa0
je case.0x865217.7
cmp eax, 0x1680
je case.0x865217.7
cmp eax, 0x180e
je case.0x865217.7
jmp case.0x866089.6
cmp eax, 0x202f
je case.0x866089.6
cmp eax, 0x205f
je case.0x866089.6
cmp eax, 0x3000
jne case.0x865217.7
jmp case.0x866089.6
cmp eax, 9
je case.0x866089.6
cmp eax, 0x20
jne case.0x865217.7
jmp case.0x866089.6
cmp eax, 0x202f
je case.0x865217.7
cmp eax, 0x205f
je case.0x865217.7
cmp eax, 0x3000
je case.0x865217.7
jmp case.0x866089.6
cmp eax, 0xa
je case.0x865217.7
jmp case.0x866089.6
cmp eax, 9
je case.0x865217.7
cmp eax, 0x20
jne case.0x866089.6
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
push eax
push dword [esp + 0x44]
push dword [esp + 0x16c]
push dword [esp + 0x40]
push dword [esp + 0x48]
call fcn.0085c1c0
mov ecx, dword [esp + 0x44]
add esp, 0x20
mov esi, eax
test esi, esi
je 0x865140
jmp case.0x866089.6
mov esi, 0xfffffff4
jmp case.0x866089.6
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x867755
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x867755
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x867755
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x867755
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x867755
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x867755
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x867755
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x867755
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x867755
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x867755
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x867755
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x867755
cmp ebx, esi
jb 0x863f1e
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x863f1e
mov ecx, dword [esp + 0x20]
cmp ebx, dword [ecx]
jbe 0x863f1e
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x863f1e
cmp edi, edx
jb 0x863f1e
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x863f1e
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 4]
cmp edx, dword [ecx]
jbe 0x863f1e
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x863f1e
cmp byte [esp + 0x44], 0
je 0x865ebd
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
push eax
push dword [esp + 0x44]
push dword [esp + 0x16c]
push dword [esp + 0x40]
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
test esi, esi
jne case.0x866089.6
dec dword [esp + 8]
mov eax, dword [esp + 8]
inc eax
mov dword [esp + 8], eax
cmp eax, dword [esp + 0x38]
jge 0x867099
sub esp, 4
mov ecx, ebx
mov edi, dword [esp + 8]
mov edx, edi
push dword [esp + 0x28]
mov esi, dword [esp + 0x160]
push esi
push dword [esp + 0x18]
call fcn.00868270
add esp, 0x10
test eax, eax
js 0x867389
lea edi, [edi + eax*2]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov dword [esp + 0x10], edi
mov ecx, edi
mov edx, dword [esp + 0x1c]
push eax
push dword [esp + 0x44]
push esi
push dword [esp + 0x40]
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
test esi, esi
je 0x865728
jmp case.0x866089.6
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x867755
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x867755
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x867755
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x1c]
push eax
push dword [esp + 0x44]
push dword [esp + 0x16c]
push dword [esp + 0x40]
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
cmp dword [esp + 0x30], 0
je 0x86658d
test esi, esi
jne case.0x866089.6
dec dword [esp + 0xc]
movzx ebx, di
mov edx, dword [esp + 0xc]
inc edx
cmp edx, dword [esp + 0x38]
jge 0x867099
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x50]
cmp ecx, dword [eax]
jae 0x8673e3
movzx eax, word [ecx]
mov edi, ecx
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
mov dword [esp + 0xc], edx
jne 0x865862
add edi, 4
jmp 0x86586c
add edi, 2
cmp eax, 0x100
jb 0x86587e
mov esi, dword [esp + 0x28]
mov edx, dword [esp + 0x10]
cmp ebx, 0x6e
jne 0x8658a2
jmp 0x867099
mov ecx, eax
shr ecx, 3
mov edx, dword [esp + 8]
movzx ecx, byte [edx + ecx + 2]
and al, 7
movzx eax, al
bt ecx, eax
mov esi, dword [esp + 0x28]
mov edx, dword [esp + 0x10]
jae 0x867099
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov dword [esp + 0x5c], edi
mov ecx, edi
push eax
push dword [esp + 0x44]
push dword [esp + 0x16c]
push esi
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
test esi, esi
je 0x865825
jmp case.0x866089.6
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x867755
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x867755
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x867755
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x867755
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x867755
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x867755
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x867755
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x867755
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x867755
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x867755
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x867755
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x867755
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x867755
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x867755
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x867755
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x867755
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x867755
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x867755
mov eax, dword [esp + 0x158]
mov esi, eax
mov eax, dword [esi + 0xc]
mov dword [esp + 0x24], edi
mov ecx, dword [esi + 0x10]
mov edi, dword [eax + ebx*4]
mov dword [esp + 0x40], edi
mov ebp, ebx
or ebp, 1
mov dword [esp + 0x20], ebp
mov ebp, dword [eax + ebp*4]
mov dword [esp + 0x38], ebp
sub ecx, dword [esp + 0x30]
mov ebp, dword [eax + ecx*4]
mov dword [esp + 0x18], ebp
mov ebp, dword [esp + 4]
mov dword [esp + 8], edx
mov edx, ebp
sub edx, dword [esi + 0x78]
sar edx, 1
mov edi, dword [esi + 0x94]
mov dword [esp + 0xc], edi
mov esi, dword [esi + 0xb0]
mov dword [esp + 0x14], esi
mov dword [eax + ecx*4], edx
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0x24]
mov edx, eax
movzx eax, ax
mov dword [esp + 0x10], eax
cmp dword [esp + 0x10], 0x88
jb 0x865ac4
mov eax, dword [esp + 0x158]
mov dword [eax + 0x9c], 2
movzx eax, byte [edx + 0x89e584]
mov edi, ecx
lea edx, [ecx + eax*2]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, ebp
push eax
push dword [esp + 0x44]
mov ebp, dword [esp + 0x16c]
push ebp
push dword [esp + 0x40]
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
cmp esi, 0xfffffc20
je 0x865b16
test esi, esi
jne 0x8670a0
mov ax, word [edi + 2]
mov ebp, dword [esp + 4]
jmp 0x865b41
movzx eax, word [edi + 2]
lea ecx, [edi + eax*2]
cmp dword [ebp + 0x80], ecx
jae 0x865b7d
mov esi, edi
movzx edx, word [edi]
cmp edx, 0x77
mov ebp, dword [esp + 4]
jne 0x865b37
mov edi, esi
jmp 0x865b41
movzx ecx, word [ecx]
cmp ecx, 0x77
mov edi, esi
jne 0x865b7d
mov ecx, dword [esp + 0x158]
mov esi, dword [esp + 0xc]
mov dword [ecx + 0x94], esi
movzx eax, ax
mov esi, dword [esp + 0x14]
mov dword [ecx + 0xb0], esi
movzx ecx, word [edi + eax*2]
lea eax, [edi + eax*2]
mov edx, 0x77
cmp ecx, 0x77
mov ecx, eax
je 0x865aa9
xor eax, eax
jmp 0x8670b1
mov esi, 0xfffffc20
jmp case.0x866089.6
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x867755
mov ecx, dword [esp + 0x20]
cmp ebx, dword [ecx]
jbe 0x867755
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x867755
cmp eax, 0xfffffffe
jne 0x865bcd
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x863f1e
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 4]
cmp edx, dword [ecx]
jb 0x863f1e
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 4]
cmp edx, dword [ecx]
jbe 0x863f1e
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x863f1e
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x867755
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x867755
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x867755
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x867755
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x867755
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x867755
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x867755
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x867755
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x867755
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x867755
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x867755
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x867755
mov esi, 0xfffffffa
jmp case.0x866089.6
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x863f1e
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 4]
cmp edx, dword [ecx]
jbe 0x863f1e
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x863f1e
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x867755
mov ecx, dword [esp + 0x20]
cmp ebp, dword [ecx]
jbe 0x867755
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x867755
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
push eax
push dword [esp + 0x44]
push dword [esp + 0x16c]
push dword [esp + 0x40]
push dword [esp + 0x48]
jmp 0x865dc7
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov dword [esp + 0x10], ecx
push eax
push dword [esp + 0x44]
push esi
push ebx
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
test esi, esi
jne case.0x866089.6
mov ecx, dword [esp + 4]
cmp ecx, dword [esp + 0x50]
jbe 0x867099
movzx eax, word [ecx - 2]
and eax, 0xfc00
cmp eax, 0xdc00
mov esi, dword [esp + 0x158]
mov ebx, dword [esp + 0x28]
je 0x865e07
add ecx, 0xfffffffe
jmp 0x865da9
add ecx, 0xfffffffc
jmp 0x865da9
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x867755
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x867755
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x867755
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x867755
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x867755
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x867755
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x867755
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x867755
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x867755
mov eax, dword [esp + 8]
cmp eax, dword [esp + 0x38]
mov ebp, dword [esp + 4]
jge 0x867281
mov ebp, dword [esp + 4]
sub esp, 4
mov ecx, ebx
mov edx, ebp
push dword [esp + 0x28]
push dword [esp + 0x160]
push dword [esp + 0x18]
call fcn.00868270
add esp, 0x10
test eax, eax
js 0x867240
lea ebp, [ebp + eax*2]
mov eax, dword [esp + 8]
inc eax
mov dword [esp + 8], eax
cmp eax, dword [esp + 0x38]
jl 0x865ed3
jmp 0x867275
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x1c]
push eax
push dword [esp + 0x44]
push dword [esp + 0x16c]
push dword [esp + 0x40]
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
test esi, esi
jne case.0x866089.6
dec ebx
inc ebx
cmp ebx, dword [esp + 0xc]
jge 0x867099
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x38]
cmp ecx, dword [eax]
mov eax, ecx
jae 0x86749c
lea ecx, [eax + 2]
movzx eax, word [eax]
cmp dword [esp + 0x30], 0
je 0x865fab
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x865fab
shl eax, 0xa
and eax, 0xffc00
mov edx, dword [esp + 0x38]
movzx ecx, word [edx + 2]
add edx, 4
mov dword [esp + 0x38], edx
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x865faf
mov dword [esp + 0x38], ecx
sub esp, 4
push dword [esp + 0x34]
push edi
push eax
call fcn.00869440
add esp, 0x10
test eax, eax
je 0x867099
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x1c]
push eax
push dword [esp + 0x44]
push dword [esp + 0x16c]
push dword [esp + 0x40]
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
test esi, esi
je 0x865f4b
jmp case.0x866089.6
test esi, esi
jne case.0x866089.6
dec dword [esp + 0xc]
mov eax, dword [esp + 0x44]
lea eax, [eax - 6]
movzx ebx, ax
mov eax, dword [esp + 0xc]
inc eax
mov dword [esp + 0xc], eax
cmp eax, ecx
jge 0x8672d1
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
mov edi, dword [esp + 8]
cmp edi, ecx
jae 0x8674fb
cmp dword [esp + 4], 0xc
jne 0x866075
mov eax, dword [esp + 0x158]
mov eax, dword [eax + 0x18]
test eax, eax
je 0x8660b0
sub esp, 0xc
push 0
push dword [esp + 0x5c]
push ecx
push eax
push edi
call fcn.00869060
add esp, 0x20
test eax, eax
je 0x8660f1
jmp 0x8672d1
mov esi, 0xfffffff2
cmp ebx, 0xf
ja case.0x866089.6
lea ebp, [edi + 2]
movzx eax, word [edi]
jmp dword [ebx*4 + 0x867c60]
cmp eax, 0xff
ja case.0x866089.7
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 4
je case.0x866089.7
jmp 0x8672d1
mov eax, dword [esp + 0x4c]
mov eax, dword [eax]
lea edx, [eax + eax]
sub ecx, edx
cmp edi, ecx
ja 0x8660f1
movzx ecx, word [edi]
mov edx, dword [esp + 0x158]
cmp cx, word [edx + 0x34]
jne 0x8660f1
cmp eax, 1
je 0x8672d1
mov edi, dword [esp + 8]
movzx eax, word [edi + 2]
mov ecx, dword [esp + 0x158]
cmp ax, word [ecx + 0x36]
je 0x8672d1
lea ebp, [edi + 2]
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je case.0x866089.7
mov ecx, dword [esp + 0x14]
cmp ebp, dword [ecx]
jb case.0x866089.7
mov ecx, dword [esp + 0x158]
cmp dword [ecx + 0x18], 0
jne case.0x866089.7
mov ecx, dword [esp + 0x4c]
cmp dword [ecx], 2
jne case.0x866089.7
mov ecx, dword [esp + 8]
movzx ecx, word [ecx]
mov edx, dword [esp + 0x158]
cmp cx, word [edx + 0x34]
jne case.0x866089.7
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
cmp eax, 1
jle case.0x866089.7
jmp 0x866463
cmp eax, 0xff
ja 0x8672d1
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 4
jne case.0x866089.7
jmp 0x8672d1
cmp eax, 0xff
ja case.0x866089.7
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 1
je case.0x866089.7
jmp 0x8672d1
cmp eax, 0xff
ja 0x8672d1
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 1
jne case.0x866089.7
jmp 0x8672d1
cmp eax, 0xff
ja case.0x866089.7
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 0x10
je case.0x866089.7
jmp 0x8672d1
cmp eax, 0xff
ja 0x8672d1
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 0x10
jne case.0x866089.7
jmp 0x8672d1
xor esi, esi
movsx edx, ax
cmp edx, 0xc
jle 0x86635d
lea edx, [eax - 0x2028]
movzx edx, dx
cmp edx, 2
jb 0x86636c
movzx eax, ax
cmp eax, 0x85
je 0x86636c
cmp eax, 0xd
jne case.0x866089.6
cmp ebp, ecx
jae case.0x866089.7
mov eax, dword [esp + 8]
movzx eax, word [eax + 2]
cmp eax, 0xa
jne case.0x866089.7
mov ebp, dword [esp + 8]
add ebp, 4
jmp case.0x866089.7
xor esi, esi
movsx ecx, ax
cmp ecx, 0x1fff
jle 0x866328
cmp ecx, 0x202e
jg 0x8663af
add eax, 0xffffe000
movzx eax, ax
cmp eax, 0xb
jae case.0x866089.7
jmp case.0x866089.6
xor esi, esi
movsx ecx, ax
cmp ecx, 0x1fff
jle 0x866382
cmp ecx, 0x202e
jg 0x8663e7
add eax, 0xffffe000
movzx eax, ax
cmp eax, 0xb
jb case.0x866089.7
jmp case.0x866089.6
xor esi, esi
lea ecx, [eax - 0xa]
movzx ecx, cx
cmp ecx, 4
jb case.0x866089.6
lea ecx, [eax - 0x2028]
movzx ecx, cx
cmp ecx, 2
jb case.0x866089.6
movzx eax, ax
cmp eax, 0x85
jne case.0x866089.7
jmp case.0x866089.6
lea ecx, [eax - 0xa]
movzx ecx, cx
cmp ecx, 4
jb case.0x866089.7
lea ecx, [eax - 0x2028]
movzx ecx, cx
cmp ecx, 2
jb case.0x866089.7
movzx eax, ax
cmp eax, 0x85
je case.0x866089.7
jmp 0x8672d1
movzx eax, ax
cmp ecx, 0x9f
jle 0x8663d4
cmp eax, 0xa0
je case.0x866089.6
cmp eax, 0x1680
je case.0x866089.6
cmp eax, 0x180e
jne case.0x866089.7
jmp case.0x866089.6
lea ecx, [eax - 0xb]
movzx ecx, cx
cmp ecx, 2
jae 0x866404
mov eax, dword [esp + 0x158]
cmp dword [eax + 0x6c], 0
je case.0x866089.7
jmp 0x8672d1
movzx eax, ax
cmp ecx, 0x9f
jle 0x866411
cmp eax, 0xa0
je case.0x866089.7
cmp eax, 0x1680
je case.0x866089.7
cmp eax, 0x180e
je case.0x866089.7
jmp case.0x866089.6
movzx eax, ax
cmp eax, 0x202f
je case.0x866089.6
cmp eax, 0x205f
je case.0x866089.6
cmp eax, 0x3000
jne case.0x866089.7
jmp case.0x866089.6
cmp eax, 9
je case.0x866089.6
cmp eax, 0x20
jne case.0x866089.7
jmp case.0x866089.6
movzx eax, ax
cmp eax, 0x202f
je case.0x866089.7
cmp eax, 0x205f
je case.0x866089.7
cmp eax, 0x3000
je case.0x866089.7
jmp case.0x866089.6
movzx eax, ax
cmp eax, 0xa
je case.0x866089.7
jmp case.0x866089.6
cmp eax, 9
je case.0x866089.7
cmp eax, 0x20
jne case.0x866089.6
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, ebp
mov edx, dword [esp + 0x1c]
push eax
push dword [esp + 0x44]
push dword [esp + 0x16c]
push dword [esp + 0x40]
push dword [esp + 0x48]
call fcn.0085c1c0
mov ecx, dword [esp + 0x44]
add esp, 0x20
mov esi, eax
test esi, esi
mov dword [esp + 8], ebp
je 0x86601c
jmp case.0x866089.6
mov esi, 0xfffffff4
jmp case.0x866089.6
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
push eax
push dword [esp + 0x44]
push dword [esp + 0x16c]
push dword [esp + 0x40]
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
test esi, esi
jne case.0x866089.6
mov ecx, dword [esp + 4]
cmp ecx, dword [esp + 0x38]
jbe 0x867099
lea edi, [ecx - 2]
cmp dword [esp + 0x30], 0
mov esi, dword [esp + 0x158]
mov ebx, dword [esp + 0x28]
je 0x8664e4
movzx eax, word [ecx - 2]
and eax, 0xfc00
cmp eax, 0xdc00
mov edx, dword [esp + 0x10]
jne 0x8664e8
add ecx, 0xfffffffc
mov edi, ecx
jmp 0x8664e8
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, edi
push eax
push dword [esp + 0x44]
push esi
push ebx
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
test esi, esi
mov dword [esp + 4], edi
je 0x8664a6
jmp case.0x866089.6
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x867755
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x867755
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x867755
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x867755
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x867755
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x867755
test esi, esi
jne case.0x866089.6
movzx edi, di
mov ebp, dword [esp + 0xc]
cmp ebp, dword [esp + 0x38]
jge 0x867099
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x50]
cmp ecx, dword [eax]
mov esi, dword [esp + 0x28]
jae 0x867536
movzx eax, word [ecx]
cmp eax, 0x100
mov edx, dword [esp + 0x10]
jb 0x8665d2
cmp edi, 0x6e
jne 0x8665f8
jmp 0x867099
mov ecx, eax
and ecx, 0xfff8
shr ecx, 3
mov ebx, dword [esp + 8]
movzx ecx, byte [ebx + ecx + 2]
and al, 7
movzx eax, al
bt ecx, eax
mov ecx, dword [esp + 0x50]
jae 0x867099
add ecx, 2
inc ebp
mov dword [esp + 0xc], ebp
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov dword [esp + 0x5c], ecx
push eax
push dword [esp + 0x44]
push dword [esp + 0x16c]
push esi
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
test esi, esi
je 0x866598
jmp case.0x866089.6
xor esi, esi
mov eax, dword [esp + 0x50]
cmp dword [esp + 4], eax
jb case.0x866089.6
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ebx, dword [esp + 0x10]
mov ecx, ebx
mov edx, dword [esp + 0x1c]
push eax
push dword [esp + 0x44]
push dword [esp + 0x16c]
push dword [esp + 0x40]
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
test esi, esi
jne case.0x866089.6
add ebx, 0xfffffffe
xor esi, esi
mov dword [esp + 4], ebx
cmp ebx, dword [esp + 0x50]
jae 0x866647
jmp case.0x866089.6
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
push eax
push dword [esp + 0x44]
push esi
push edi
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
test esi, esi
mov eax, dword [esp + 0x24]
jne case.0x866089.6
dec dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
inc ecx
cmp ecx, eax
jge 0x867099
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 8]
cmp edx, dword [eax]
jae 0x867571
mov dword [esp + 0xc], ecx
lea eax, [edx + 2]
cmp dword [esp + 0x30], 0
je 0x866706
movzx ecx, word [edx]
and ecx, 0xfc00
cmp ecx, 0xd800
je 0x86670c
mov dword [esp + 8], eax
jmp 0x866713
add edx, 4
mov dword [esp + 8], edx
mov esi, dword [esp + 0x158]
mov edi, dword [esp + 0x28]
mov edx, dword [esp + 0x10]
cmp dword [esp + 0x40], 0
jne 0x867099
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
push eax
push dword [esp + 0x44]
push esi
push edi
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
test esi, esi
mov eax, dword [esp + 0x24]
je 0x8666ca
jmp case.0x866089.6
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
push eax
push dword [esp + 0x44]
push esi
push edi
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
test esi, esi
mov eax, dword [esp + 0x24]
jne case.0x866089.6
dec dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
inc ecx
cmp ecx, eax
jge 0x867099
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 8]
cmp esi, dword [eax]
jae 0x8675ac
lea ecx, [esi + 2]
movzx eax, word [esi]
cmp dword [esp + 0x30], 0
je 0x8667f6
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x8667f6
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [esi + 2]
add esi, 4
mov dword [esp + 8], esi
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x8667fa
mov dword [esp + 8], ecx
mov esi, dword [esp + 0x158]
mov edi, dword [esp + 0x28]
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 + 0x8a0804]
shl ecx, 7
sub eax, edx
add eax, ecx
movzx eax, word [eax + eax + 0x8a2a04]
movzx eax, byte [eax*8 + 0x89f185]
add al, 0xfb
xor ecx, ecx
cmp al, 4
ja 0x86684a
movsx eax, al
mov ecx, dword [eax*4 + 0x89e560]
cmp dword [esp + 0x40], ecx
mov edx, dword [esp + 0x10]
je 0x867099
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
push eax
push dword [esp + 0x44]
push esi
push edi
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
test esi, esi
mov eax, dword [esp + 0x24]
je 0x866796
jmp case.0x866089.6
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
push eax
push dword [esp + 0x44]
push esi
push edi
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
test esi, esi
mov eax, dword [esp + 0x24]
jne case.0x866089.6
dec dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
inc ecx
cmp ecx, eax
jge 0x867099
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 8]
cmp esi, dword [eax]
jae 0x8675e7
lea ecx, [esi + 2]
movzx eax, word [esi]
cmp dword [esp + 0x30], 0
je 0x866921
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x866921
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [esi + 2]
add esi, 4
mov dword [esp + 8], esi
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x866925
mov dword [esp + 8], ecx
mov esi, dword [esp + 0x158]
mov edi, dword [esp + 0x28]
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 + 0x8a0804]
shl ecx, 7
sub eax, edx
add eax, ecx
movzx eax, word [eax + eax + 0x8a2a04]
movzx eax, byte [eax*8 + 0x89f185]
xor ecx, ecx
mov edx, dword [esp + 0x54]
cmp dword [eax*4 + 0x89e698], edx
sete cl
cmp dword [esp + 0x40], ecx
je 0x867099
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
push eax
push dword [esp + 0x44]
push esi
push edi
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
test esi, esi
mov eax, dword [esp + 0x24]
je 0x8668c1
jmp case.0x866089.6
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
push eax
push dword [esp + 0x44]
push esi
push edi
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
test esi, esi
mov eax, dword [esp + 0x24]
jne case.0x866089.6
dec dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
inc ecx
cmp ecx, eax
jge 0x867099
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 8]
cmp esi, dword [eax]
jae 0x867622
lea ecx, [esi + 2]
movzx eax, word [esi]
cmp dword [esp + 0x30], 0
je 0x866a4a
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x866a4a
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [esi + 2]
add esi, 4
mov dword [esp + 8], esi
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x866a4e
mov dword [esp + 8], ecx
mov esi, dword [esp + 0x158]
mov edi, dword [esp + 0x28]
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 + 0x8a0804]
shl ecx, 7
sub eax, edx
add eax, ecx
movzx eax, word [eax + eax + 0x8a2a04]
movzx eax, byte [eax*8 + 0x89f185]
xor ecx, ecx
cmp dword [esp + 0x54], eax
sete cl
cmp dword [esp + 0x40], ecx
je 0x867099
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
push eax
push dword [esp + 0x44]
push esi
push edi
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
test esi, esi
mov eax, dword [esp + 0x24]
je 0x8669ea
jmp case.0x866089.6
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
push eax
push dword [esp + 0x44]
push esi
push edi
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
test esi, esi
mov eax, dword [esp + 0x24]
jne case.0x866089.6
dec dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
inc ecx
cmp ecx, eax
jge 0x867099
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 8]
cmp esi, dword [eax]
jae 0x86765d
lea ecx, [esi + 2]
movzx eax, word [esi]
cmp dword [esp + 0x30], 0
je 0x866b6c
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x866b6c
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [esi + 2]
add esi, 4
mov dword [esp + 8], esi
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x866b70
mov dword [esp + 8], ecx
mov esi, dword [esp + 0x158]
mov edi, dword [esp + 0x28]
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 + 0x8a0804]
shl ecx, 7
sub eax, edx
add eax, ecx
movzx eax, word [eax + eax + 0x8a2a04]
movzx eax, byte [eax*8 + 0x89f184]
xor ecx, ecx
cmp dword [esp + 0x54], eax
sete cl
cmp dword [esp + 0x40], ecx
je 0x867099
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
push eax
push dword [esp + 0x44]
push esi
push edi
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
test esi, esi
mov eax, dword [esp + 0x24]
je 0x866b0c
jmp case.0x866089.6
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
push eax
push dword [esp + 0x44]
push esi
push edi
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
test esi, esi
mov eax, dword [esp + 0x24]
jne case.0x866089.6
dec dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
inc ecx
cmp ecx, eax
jge 0x867099
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 8]
cmp esi, dword [eax]
jae 0x867698
lea ecx, [esi + 2]
movzx eax, word [esi]
cmp dword [esp + 0x30], 0
je 0x866c8e
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x866c8e
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [esi + 2]
add esi, 4
mov dword [esp + 8], esi
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x866c92
mov dword [esp + 8], ecx
mov esi, dword [esp + 0x158]
mov edi, dword [esp + 0x28]
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 + 0x8a0804]
shl ecx, 7
sub eax, edx
add eax, ecx
movzx eax, word [eax + eax + 0x8a2a04]
movzx eax, byte [eax*8 + 0x89f185]
mov eax, dword [eax*4 + 0x89e698]
or eax, 2
xor ecx, ecx
cmp eax, 3
sete cl
cmp dword [esp + 0x40], ecx
je 0x867099
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
push eax
push dword [esp + 0x44]
push esi
push edi
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
test esi, esi
mov eax, dword [esp + 0x24]
je 0x866c2e
jmp case.0x866089.6
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
push eax
push dword [esp + 0x44]
push esi
push edi
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
test esi, esi
mov eax, dword [esp + 0x24]
jne case.0x866089.6
dec dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
inc ecx
cmp ecx, eax
jge 0x867099
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 8]
cmp esi, dword [eax]
jae 0x8676d3
lea ecx, [esi + 2]
movzx eax, word [esi]
cmp dword [esp + 0x30], 0
je 0x866db9
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x866db9
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [esi + 2]
add esi, 4
mov dword [esp + 8], esi
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x866dbd
mov dword [esp + 8], ecx
mov edi, dword [esp + 0x158]
mov ebx, dword [esp + 0x28]
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 + 0x8a0804]
shl ecx, 7
mov esi, eax
sub esi, edx
add esi, ecx
movzx ecx, word [esi + esi + 0x8a2a04]
movzx ecx, byte [ecx*8 + 0x89f185]
mov ecx, dword [ecx*4 + 0x89e698]
or ecx, 2
cmp ecx, 3
sete cl
cmp eax, 0x5f
sete al
or al, cl
movzx eax, al
cmp dword [esp + 0x40], eax
je 0x867099
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
push eax
push dword [esp + 0x44]
push edi
push ebx
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
test esi, esi
mov eax, dword [esp + 0x24]
je 0x866d59
jmp case.0x866089.6
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
push eax
push dword [esp + 0x44]
push esi
push edi
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
test esi, esi
mov ecx, dword [esp + 0x24]
jne case.0x866089.6
mov eax, dword [esp + 0x54]
lea ebx, [eax*4 + 0x89f04c]
cmp dword [esp + 0xc], ecx
jge 0x867099
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 8]
cmp edi, dword [eax]
jae 0x8676ff
lea ecx, [edi + 2]
movzx eax, word [edi]
cmp dword [esp + 0x30], 0
je 0x866eeb
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x866eeb
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [edi + 2]
add edi, 4
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x866eed
mov edi, ecx
mov ecx, dword [esp + 0x54]
mov ecx, dword [ecx*4 + 0x89f048]
cmp eax, ecx
jb 0x866f0b
mov edx, ebx
cmp eax, ecx
je 0x866f26
mov ecx, dword [edx]
add edx, 4
cmp eax, ecx
jae 0x866efe
cmp dword [esp + 0x40], 0
mov esi, dword [esp + 0x158]
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
jne 0x866f40
jmp 0x867099
cmp dword [esp + 0x40], 0
mov esi, dword [esp + 0x158]
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
jne 0x867099
inc eax
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov dword [esp + 0x14], edi
mov ecx, edi
push eax
push dword [esp + 0x44]
push esi
push dword [esp + 0x40]
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
test esi, esi
mov ecx, dword [esp + 0x24]
je 0x866e96
jmp case.0x866089.6
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
push eax
push dword [esp + 0x44]
push esi
push edi
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
test esi, esi
mov eax, dword [esp + 0x24]
jne case.0x866089.6
dec dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
inc ecx
cmp ecx, eax
jge 0x867099
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 8]
cmp esi, dword [eax]
jae 0x86772b
lea ecx, [esi + 2]
movzx eax, word [esi]
cmp dword [esp + 0x30], 0
je 0x86700f
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x86700f
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [esi + 2]
add esi, 4
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x867011
mov esi, ecx
mov dword [esp + 8], esi
mov cl, 1
cmp eax, 0x24
je 0x86704c
cmp eax, 0x40
je 0x86704c
cmp eax, 0x60
mov esi, dword [esp + 0x158]
mov edi, dword [esp + 0x28]
je 0x867057
lea ecx, [eax - 0xa0]
cmp ecx, 0xd760
setb dl
cmp eax, 0xdfff
seta cl
or cl, dl
jmp 0x867057
mov esi, dword [esp + 0x158]
mov edi, dword [esp + 0x28]
movzx eax, cl
cmp dword [esp + 0x40], eax
mov edx, dword [esp + 0x10]
je 0x867099
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
push eax
push dword [esp + 0x44]
push esi
push edi
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
test esi, esi
mov eax, dword [esp + 0x24]
je 0x866fb3
jmp case.0x866089.6
xor esi, esi
jmp case.0x866089.6
mov eax, 0xfffffc1b
cmp esi, 0xfffffc1b
jne case.0x866089.6
mov ecx, dword [esp + 0x158]
mov edx, ecx
mov ecx, dword [edx + 0xc]
mov esi, dword [esp + 0x40]
mov dword [ecx + ebx*4], esi
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0x20]
mov dword [ecx + edi*4], esi
mov edx, dword [edx + 0x10]
sub edx, dword [esp + 0x30]
mov esi, dword [esp + 0x18]
mov dword [ecx + edx*4], esi
mov esi, eax
jmp case.0x866089.6
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x867755
mov ecx, dword [esp + 0x20]
cmp edi, dword [ecx]
jbe 0x867755
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x867755
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x867755
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x867755
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x867755
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 + 0x10]
mov edx, dword [esp + 0x1c]
push eax
push dword [esp + 0x44]
push esi
push dword [esp + 0x40]
push dword [esp + 0x48]
jmp 0x86378a
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x867755
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x867755
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x867755
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x867755
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x867755
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x867755
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x867755
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x867755
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x867755
cmp eax, 0xfffffffe
jne 0x867275
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x867275
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx]
mov edx, dword [esp + 0x20]
cmp ecx, dword [edx]
jbe 0x867275
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
xor esi, esi
cmp ebp, dword [esp + 4]
jb case.0x866089.6
mov eax, dword [esp + 0xc]
add eax, eax
neg eax
mov edi, eax
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, ebp
mov edx, dword [esp + 0x1c]
push eax
push dword [esp + 0x44]
push dword [esp + 0x16c]
push dword [esp + 0x40]
push dword [esp + 0x48]
call fcn.0085c1c0
add esp, 0x20
mov esi, eax
test esi, esi
jne case.0x866089.6
add ebp, edi
xor esi, esi
cmp ebp, dword [esp + 4]
jae 0x86728b
jmp case.0x866089.6
xor esi, esi
jmp case.0x866089.6
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x867755
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 4]
cmp edx, dword [ecx]
jbe 0x867755
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x867755
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x867755
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 4]
cmp edx, dword [ecx]
jbe 0x867755
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x867755
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x867755
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x867755
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x867755
cmp eax, 0xfffffffe
jne 0x867398
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x863f1e
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 4]
cmp edx, dword [ecx]
jb 0x863f1e
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 4]
cmp edx, dword [ecx]
jbe 0x863f1e
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x863f1e
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x863f1e
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x50]
cmp edx, dword [ecx]
jbe 0x863f1e
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x863f1e
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x867755
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x867755
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x867755
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x10]
mov edx, edi
push eax
push dword [esp + 0x44]
push ebp
push ebx
push dword [esp + 0x48]
jmp 0x8646f3
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x10]
push eax
push dword [esp + 0x44]
push ebp
push dword [esp + 0x40]
push dword [esp + 0x48]
jmp 0x8646f3
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x863f1e
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x38]
cmp edx, dword [ecx]
jbe 0x863f1e
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x863f1e
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x10]
mov edx, edi
push eax
push dword [esp + 0x44]
push ebp
push dword [esp + 0x40]
push dword [esp + 0x48]
jmp 0x86378a
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x867755
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x867755
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x867755
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x863f1e
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x50]
cmp edx, dword [ecx]
jbe 0x863f1e
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x863f1e
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x867755
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x867755
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x867755
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x867755
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x867755
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x867755
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x867755
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x867755
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x867755
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x867755
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x867755
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x867755
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x867755
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x867755
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x867755
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x867755
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x867755
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x867755
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x867755
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x867755
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x867755
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x867755
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x867755
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
jmp 0x867755
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x867755
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x867755
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x866089.6
xor esi, esi
mov eax, esi
add esp, 0x13c
pop esi
pop edi
pop ebx
pop ebp
ret
mov esi, 0xfffffc1b
jmp case.0x866089.6