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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x13c
test edx, edx
je 0x85b5b1
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.0x85dee9.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 0x85b716
cmp dword [ecx + 0x9c], 2
jne 0x8564f0
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 0x8564f0
movzx eax, word [esp + 0x24]
cmp eax, 0x10
jne 0x85466d
jmp 0x85eef9
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 0x85538d
jmp 0x85eef9
movzx eax, word [esp + 0x24]
cmp eax, 0x10
je 0x85466d
jmp 0x85eef9
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 0x85538d
jmp 0x85f138
add edx, 2
mov dword [esp + 0x10], edx
jmp 0x8564f0
cmp eax, 0x24
je case.0x859036.0
cmp eax, 0x60
je case.0x859036.0
cmp eax, 0x40
je case.0x859036.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 0x85466d
jmp 0x85eef9
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x854201
mov ecx, dword [esp + 0x20]
cmp ebp, dword [ecx]
jbe 0x854201
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
cmp eax, 1
jg 0x85e2c3
mov dword [esp + 4], ebp
cmp dword [esp + 0x50], 0
jne 0x8564f0
jmp 0x85b1e2
cmp eax, 0x202f
je 0x854181
cmp eax, 0x3000
je 0x854181
cmp eax, 0x205f
je 0x854181
jmp case.0x85dee9.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 0x8542e8
test ebp, ebp
jle 0x85434f
mov eax, dword [esp + 0x14]
mov edx, dword [eax]
xor esi, esi
mov ecx, dword [esp + 4]
cmp ecx, edx
jae 0x85b8d4
movzx ebx, word [ecx]
mov eax, ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x8542a0
add ecx, 4
jmp 0x8542ab
add ecx, 2
cmp ebx, 0x100
jb 0x8542b8
movzx eax, di
cmp eax, 0x6e
jne 0x8542e1
jmp 0x85eef9
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 0x85eef9
inc esi
cmp esi, ebp
jl 0x854282
jmp 0x854353
test ebp, ebp
jle 0x85434f
mov eax, dword [esp + 0x14]
mov edx, dword [eax]
xor esi, esi
mov ecx, dword [esp + 4]
cmp ecx, edx
jae 0x85bd3a
movzx eax, word [ecx]
cmp eax, 0x100
jb 0x854317
movzx eax, di
cmp eax, 0x6e
jne 0x854345
jmp 0x85eef9
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 0x85eef9
add ecx, 2
inc esi
cmp esi, ebp
jl 0x8542f8
jmp 0x854353
mov ecx, dword [esp + 4]
cmp ebp, dword [esp + 0x38]
mov dword [esp + 0x50], ecx
mov dword [esp + 4], ecx
je 0x8564f0
cmp dword [esp + 0x44], 0
jne 0x85d63a
mov dword [esp + 0x24], edi
cmp dword [esp + 0x30], 0
mov ebp, dword [esp + 0xc]
mov eax, dword [esp + 0x50]
je 0x85440a
cmp ebp, dword [esp + 0x38]
jge 0x85449d
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
mov eax, dword [esp + 0x50]
cmp eax, ecx
jae 0x85446d
mov ebx, eax
movzx edx, word [eax]
mov eax, edx
and eax, 0xfc00
mov esi, 2
cmp eax, 0xd800
je 0x8543c8
mov esi, 1
cmp edx, 0x100
jb 0x8543d7
movzx eax, word [esp + 0x24]
cmp eax, 0x6e
jne 0x8543f9
jmp 0x854497
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 0x854497
mov eax, ebx
lea eax, [eax + esi*2]
inc ebp
cmp ebp, dword [esp + 0x38]
jl 0x85439b
jmp 0x85449d
cmp ebp, dword [esp + 0x38]
jge 0x8544e1
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
mov eax, dword [esp + 0x50]
cmp eax, ecx
jae 0x8544b1
mov esi, eax
movzx eax, word [eax]
cmp eax, 0x100
jb 0x854441
movzx eax, word [esp + 0x24]
cmp eax, 0x6e
jne 0x85445f
jmp 0x8544db
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 0x8544db
mov eax, esi
add eax, 2
inc ebp
cmp ebp, dword [esp + 0x38]
jl 0x85441e
jmp 0x8544e1
mov edx, eax
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85449b
mov ecx, dword [esp + 0x20]
cmp edx, dword [ecx]
jbe 0x85449b
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
cmp eax, 1
mov eax, edx
jle 0x85449d
jmp 0x85d3c8
mov eax, ebx
jmp 0x85449d
mov eax, edx
mov dword [esp + 4], eax
cmp byte [esp + 0x48], 0
jne 0x8564f0
jmp 0x85dbe0
mov edx, eax
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x8544df
mov ecx, dword [esp + 0x20]
cmp edx, dword [ecx]
jbe 0x8544df
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
cmp eax, 1
mov eax, edx
jle 0x8544e1
jmp 0x85d3c8
mov eax, esi
jmp 0x8544e1
mov eax, edx
mov dword [esp + 4], eax
cmp byte [esp + 0x48], 0
jne 0x8564f0
jmp 0x85e497
cmp edx, 0xa
mov edx, ebp
je 0x85a141
jmp case.0x85dee9.6
xor ecx, ecx
movzx eax, cl
mov ecx, dword [esp + 0x14]
cmp ebp, dword [ecx]
jae 0x854576
movzx edx, word [ebp]
mov ecx, edx
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x854540
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 0x8545f9
mov cl, 1
cmp edx, 0x5f
je 0x8545c1
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 + 0x894a84]
shl ecx, 7
sub edx, esi
add edx, ecx
jmp 0x85458a
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx]
test ecx, ecx
je 0x8545bf
mov edx, dword [esp + 0x20]
cmp ebp, dword [edx]
jbe 0x8545bf
jmp 0x8545ac
movzx ecx, word [edx + edx + 0x896c84]
movzx ecx, byte [ecx*8 + 0x893405]
mov ecx, dword [ecx*4 + 0x892918]
or ecx, 2
cmp ecx, 3
sete cl
jmp 0x8545c1
mov edx, dword [esp + 0x1c]
mov dword [edx], 1
cmp ecx, 1
jg 0x85ca57
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 0x8545e8
cmp eax, ecx
mov dword [esp + 0x10], edi
jne 0x8564f0
jmp case.0x85dee9.6
cmp eax, ecx
mov dword [esp + 0x10], edi
je 0x8564f0
jmp case.0x85dee9.6
cmp edx, 0xff
ja 0x8545bf
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
mov cl, byte [ecx + edx]
and cl, 0x10
shr cl, 4
jmp 0x8545c1
xor eax, eax
movzx esi, al
test esi, esi
je case.0x8573fc.4
jmp 0x85ae14
cmp eax, 0x84
jg 0x854646
add eax, 0xfffffff7
cmp eax, 0x17
ja case.0x859057.8203
mov edx, 0x80001f
bt edx, eax
jb case.0x859036.0
jmp case.0x859057.8203
cmp eax, 0x85
je case.0x859036.0
cmp eax, 0xa0
je case.0x859036.0
cmp eax, 0x1680
jne case.0x859057.8203
movzx eax, word [esp + 0x24]
cmp eax, 0xf
je 0x85eef9
mov dword [esp + 4], ebx
add ebp, 6
mov dword [esp + 0x10], ebp
jmp 0x8564f0
mov eax, edx
mov dword [esp + 4], eax
cmp dword [esp + 0x48], 0
jne 0x8564f0
jmp 0x85aeca
movzx edx, word [ebx + 2]
cmp dx, word [edi + 0x36]
mov edx, ebp
jne 0x85c7ae
add ecx, ecx
sub eax, ecx
cmp ebx, eax
jne 0x85c7ae
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x854181
mov ecx, dword [esp + 0x20]
cmp ebx, dword [ecx]
jbe 0x854181
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
cmp eax, 1
jle 0x854181
jmp 0x85ca57
cmp eax, 9
je 0x854181
cmp eax, 0x20
je 0x854181
jmp case.0x85dee9.6
mov edi, dword [esp + 4]
cmp edi, eax
jae 0x855bd8
movzx ebx, word [edi]
mov esi, ebx
and esi, 0xfc00
mov edx, 1
cmp esi, 0xd800
jne 0x85473b
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 0x854786
cmp ebx, 0x202e
jg 0x8547a8
add ebx, 0xffffe000
cmp ebx, 0xb
jae 0x8547cc
cmp esi, ecx
je 0x8564d8
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 0x8546f8
jmp 0x8564d8
cmp ebx, 0x9f
jle 0x8547c2
cmp ebx, 0xa0
je 0x85475b
cmp ebx, 0x1680
je 0x85475b
cmp ebx, 0x180e
je 0x85475b
jmp 0x8547cc
cmp ebx, 0x202f
je 0x85475b
cmp ebx, 0x205f
je 0x85475b
cmp ebx, 0x3000
je 0x85475b
jmp 0x8547cc
cmp ebx, 9
je 0x85475b
cmp ebx, 0x20
je 0x85475b
xor esi, esi
cmp esi, ecx
jne 0x854763
jmp 0x8564d8
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 0x85bc50
lea ecx, [ebp + 2]
movzx eax, word [ebp]
cmp dword [esp + 0x30], 0
je 0x854850
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x854850
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 0x854854
mov dword [esp + 4], ecx
sub esp, 4
push dword [esp + 0x34]
push edi
push eax
call fcn.008612a0
add esp, 0x10
test eax, eax
je 0x85eef9
inc esi
cmp esi, ebx
jl 0x8547fc
mov eax, dword [esp + 4]
mov dword [esp + 0x38], eax
cmp ebx, dword [esp + 0xc]
je 0x8564f0
cmp dword [esp + 8], 0
jne 0x85dd71
cmp ebx, dword [esp + 0xc]
mov ecx, dword [esp + 0x38]
jge 0x854937
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x14]
cmp ecx, dword [eax]
jae 0x85490b
mov ebp, ecx
movzx eax, word [ecx]
cmp dword [esp + 0x30], 0
mov esi, 1
je 0x8548e8
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x8548e8
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.008612a0
add esp, 0x10
mov ecx, ebp
test eax, eax
je 0x854937
lea ecx, [ecx + esi*2]
inc ebx
cmp ebx, dword [esp + 0xc]
jl 0x8548a1
jmp 0x854937
mov edx, ecx
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x854935
mov ecx, dword [esp + 0x20]
cmp edx, dword [ecx]
jbe 0x854935
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
cmp eax, 1
mov ecx, edx
jle 0x854937
jmp 0x85d3c8
mov ecx, edx
mov dword [esp + 4], ecx
cmp byte [esp + 0x24], 0
jne 0x8564f0
jmp 0x85e2cd
mov ecx, edx
mov dword [esp + 4], ecx
cmp dword [esp + 0x48], 0
jne 0x8564f0
jmp 0x85b0c7
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85649e
mov ecx, dword [esp + 0x20]
cmp ebp, dword [ecx]
jbe 0x85649e
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
cmp eax, 1
jle 0x85649e
jmp 0x85e2c3
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx]
test ecx, ecx
je 0x85a141
mov edx, dword [esp + 0x20]
cmp eax, dword [edx]
jbe 0x8549c3
mov edx, dword [esp + 0x1c]
mov dword [edx], 1
cmp ecx, 1
mov edx, ebp
jle 0x85a141
jmp 0x85d3c8
mov edx, ebp
jmp 0x85a141
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 0x85d73b
movzx edx, word [edi]
cmp edx, 0x7f
ja 0x85eef9
mov esi, dword [esp + 0x3c]
mov esi, dword [esi]
test byte [esi + edx], 4
je 0x85eef9
add edi, 2
mov dword [esp + 8], edi
inc ecx
cmp ecx, dword [esp + 0xc]
jl 0x8549da
jmp 0x857fa3
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
xor ecx, ecx
mov edi, dword [esp + 4]
cmp edi, eax
jae 0x85ce62
movzx edx, word [edi]
cmp edx, 0x7f
ja 0x854a41
mov esi, dword [esp + 0x3c]
mov esi, dword [esi]
test byte [esi + edx], 1
jne 0x85eef9
lea edx, [edi + 2]
mov esi, edx
cmp edx, eax
jae 0x854a5c
movzx edx, word [edi + 2]
and edx, 0xfc00
cmp edx, 0xdc00
je 0x854a60
mov edx, esi
jmp 0x854a65
add edi, 4
mov edx, edi
inc ecx
cmp ecx, dword [esp + 0xc]
mov dword [esp + 8], edx
mov edi, edx
jl 0x854a21
jmp 0x857fa3
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 0x85d776
movzx edx, word [edi]
cmp edx, 0x7f
ja 0x85eef9
mov esi, dword [esp + 0x3c]
mov esi, dword [esi]
test byte [esi + edx], 1
je 0x85eef9
add edi, 2
mov dword [esp + 8], edi
inc ecx
cmp ecx, dword [esp + 0xc]
jl 0x854a87
jmp 0x857fa3
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
xor ecx, ecx
mov edi, dword [esp + 4]
cmp edi, eax
jae 0x85ce99
movzx edx, word [edi]
cmp edx, 0x7f
ja 0x854aee
mov esi, dword [esp + 0x3c]
mov esi, dword [esi]
test byte [esi + edx], 0x10
jne 0x85eef9
lea edx, [edi + 2]
mov esi, edx
cmp edx, eax
jae 0x854b09
movzx edx, word [edi + 2]
and edx, 0xfc00
cmp edx, 0xdc00
je 0x854b0d
mov edx, esi
jmp 0x854b12
add edi, 4
mov edx, edi
inc ecx
cmp ecx, dword [esp + 0xc]
mov dword [esp + 8], edx
mov edi, edx
jl 0x854ace
jmp 0x857fa3
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 0x85d7b1
movzx edx, word [edi]
cmp edx, 0x7f
ja 0x85eef9
mov esi, dword [esp + 0x3c]
mov esi, dword [esi]
test byte [esi + edx], 0x10
je 0x85eef9
add edi, 2
mov dword [esp + 8], edi
inc ecx
cmp ecx, dword [esp + 0xc]
jl 0x854b34
jmp 0x857fa3
xor esi, esi
mov ebx, dword [esp + 4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
cmp ebx, eax
jae 0x85cf44
mov edi, dword [esp + 0x158]
mov ecx, dword [edi + 0x18]
test ecx, ecx
je 0x854bb0
sub esp, 0xc
push dword [esp + 0x3c]
push dword [esp + 0x5c]
push eax
push ecx
push ebx
call fcn.00860ec0
add esp, 0x20
test eax, eax
je 0x854bdf
jmp 0x85eef9
mov ecx, dword [esp + 0x4c]
mov ecx, dword [ecx]
lea edx, [ecx + ecx]
sub eax, edx
cmp ebx, eax
ja 0x854bdf
movzx eax, word [ebx]
cmp ax, word [edi + 0x34]
jne 0x854bdf
cmp ecx, 1
je 0x85eef9
movzx eax, word [ebx + 2]
cmp ax, word [edi + 0x36]
je 0x85eef9
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
test ecx, ecx
je 0x854c2e
lea edx, [ebx + 2]
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov ebp, edx
cmp edx, eax
jb 0x854c26
cmp dword [edi + 0x18], 0
jne 0x854c26
mov edx, dword [esp + 0x4c]
cmp dword [edx], 2
jne 0x854c26
movzx edx, word [ebx]
cmp dx, word [edi + 0x34]
jne 0x854c3d
mov edx, dword [esp + 0x1c]
mov dword [edx], 1
cmp ecx, 1
mov ecx, ebp
jle 0x854c3f
jmp 0x85d3c8
mov ecx, ebp
cmp ecx, eax
jb 0x854c43
jmp 0x854c58
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
lea ecx, [ebx + 2]
cmp ecx, eax
jb 0x854c43
jmp 0x854c58
mov ecx, ebp
cmp ecx, eax
jae 0x854c58
movzx eax, word [ebx + 2]
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x854c58
add ebx, 4
mov ecx, ebx
inc esi
cmp esi, dword [esp + 0xc]
mov dword [esp + 8], ecx
mov ebx, ecx
jl 0x854b75
jmp 0x857fa3
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
xor ecx, ecx
mov esi, dword [esp + 4]
cmp esi, eax
jae 0x85ca61
lea edi, [esi + 2]
cmp edi, eax
jae 0x854ca0
movzx edx, word [esi + 2]
and edx, 0xfc00
cmp edx, 0xdc00
jne 0x854ca0
add esi, 4
mov edi, esi
inc ecx
cmp ecx, dword [esp + 0xc]
mov dword [esp + 8], edi
mov esi, edi
jl 0x854c7a
jmp 0x857fa3
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 0x85d5ff
movzx edx, word [edi]
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x854d00
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
jmp 0x854d03
add edi, 2
mov ebx, dword [esp + 0x158]
mov dword [esp + 8], edi
xor esi, esi
cmp edx, 0xc
jle 0x854d4a
lea edi, [edx - 0x2028]
cmp edi, 2
jb 0x854d52
cmp edx, 0x85
je 0x854d52
cmp edx, 0xd
jne case.0x85dee9.6
mov esi, dword [esp + 8]
cmp esi, eax
jae 0x854d5c
movzx edx, word [esi]
cmp edx, 0xa
jne 0x854d5c
add esi, 2
mov dword [esp + 8], esi
jmp 0x854d5c
lea edi, [edx - 0xb]
cmp edi, 2
jae 0x854d6c
cmp dword [ebx + 0x6c], 0
jne 0x85eef9
inc ecx
cmp ecx, dword [esp + 0xc]
jl 0x854cc2
jmp 0x857fa3
cmp edx, 0xa
je 0x854d5c
jmp case.0x85dee9.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 0x85d3d2
movzx edx, word [edi]
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x854df7
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 0x854e02
cmp edx, 0x9f
jle 0x854e3f
cmp edx, 0xa0
je 0x85f5b5
cmp edx, 0x1680
je 0x85f5b5
cmp edx, 0x180e
jne 0x854e51
jmp 0x85f5b5
add edi, 2
cmp edx, 0x1fff
jle 0x854dca
cmp edx, 0x202e
jg 0x854e1a
add edx, 0xffffe000
cmp edx, 0xb
jae 0x854e51
jmp 0x85f5b5
cmp edx, 0x202f
je 0x85f5b5
cmp edx, 0x205f
je 0x85f5b5
cmp edx, 0x3000
jne 0x854e51
jmp 0x85f5b5
cmp edx, 9
je 0x85f5b5
cmp edx, 0x20
je 0x85f5b5
mov dword [esp + 8], edi
inc ecx
cmp ecx, dword [esp + 0xc]
jl 0x854d86
jmp 0x857fa3
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 0x85d40d
movzx edx, word [edi]
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x854ede
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 0x854ee9
cmp edx, 0x9f
jle 0x854f31
cmp edx, 0xa0
je 0x854f00
cmp edx, 0x1680
je 0x854f00
cmp edx, 0x180e
je 0x854f00
jmp 0x85f5b5
add edi, 2
cmp edx, 0x1fff
jle 0x854eb9
cmp edx, 0x202e
jg 0x854f14
add edx, 0xffffe000
cmp edx, 0xb
jae 0x85f5b5
mov dword [esp + 8], edi
inc ecx
cmp ecx, dword [esp + 0xc]
jl 0x854e75
jmp 0x857fa3
cmp edx, 0x202f
je 0x854f00
cmp edx, 0x3000
je 0x854f00
cmp edx, 0x205f
je 0x854f00
jmp 0x85f5b5
cmp edx, 9
je 0x854f00
cmp edx, 0x20
je 0x854f00
jmp 0x85f5b5
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 0x85d448
movzx edx, word [edi]
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x854f8e
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
jmp 0x854f91
add edi, 2
lea esi, [edx - 0xa]
cmp esi, 4
jb 0x85f5b5
lea esi, [edx - 0x2028]
cmp esi, 2
jb 0x85f5b5
cmp edx, 0x85
je 0x85f5b5
mov dword [esp + 8], edi
inc ecx
cmp ecx, dword [esp + 0xc]
jl 0x854f50
jmp 0x857fa3
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 0x85d483
movzx edx, word [edi]
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x855016
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
jmp 0x855019
add edi, 2
lea esi, [edx - 0xa]
cmp esi, 4
jb 0x855038
lea esi, [edx - 0x2028]
cmp esi, 2
jb 0x855038
cmp edx, 0x85
jne 0x85f5b5
mov dword [esp + 8], edi
inc ecx
cmp ecx, dword [esp + 0xc]
jl 0x854fd8
jmp 0x857fa3
mov al, 1
movzx esi, al
test esi, esi
jne 0x85ae14
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 0x8564f0
jmp 0x85ae2e
cmp edx, dword [esp + 0xc]
mov eax, dword [esp + 8]
mov dword [esp + 4], eax
jle 0x8564d8
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 0x855bd8
movzx esi, word [ebx]
mov edi, esi
and edi, 0xfc00
mov edx, 1
cmp edi, 0xd800
jne 0x8550e3
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 0x855105
lea edi, [esi - 0x2028]
cmp edi, 2
jb 0x855105
cmp esi, 0x85
je 0x855105
xor ebx, ebx
cmp ebx, ecx
je 0x8564d8
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 0x8550a0
jmp 0x8564d8
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 0x85dc6c
movzx edx, word [edi]
cmp edx, 0xff
ja 0x85eef9
mov esi, dword [esp + 0x3c]
mov esi, dword [esi]
test byte [esi + edx], 4
je 0x85eef9
add edi, 2
mov dword [esp + 8], edi
inc ecx
cmp ecx, dword [esp + 0xc]
jl 0x855140
jmp 0x857fa3
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 0x85d7ec
movzx edx, word [edi]
cmp edx, 0xff
ja 0x8551b5
mov esi, dword [esp + 0x3c]
mov esi, dword [esi]
test byte [esi + edx], 1
jne 0x85eef9
add edi, 2
mov dword [esp + 8], edi
inc ecx
cmp ecx, dword [esp + 0xc]
jl 0x85518e
jmp 0x857fa3
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 0x85dca7
movzx edx, word [edi]
cmp edx, 0xff
ja 0x85eef9
mov esi, dword [esp + 0x3c]
mov esi, dword [esi]
test byte [esi + edx], 1
je 0x85eef9
add edi, 2
mov dword [esp + 8], edi
inc ecx
cmp ecx, dword [esp + 0xc]
jl 0x8551d8
jmp 0x857fa3
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 0x85d827
movzx edx, word [edi]
cmp edx, 0xff
ja 0x85524d
mov esi, dword [esp + 0x3c]
mov esi, dword [esi]
test byte [esi + edx], 0x10
jne 0x85eef9
add edi, 2
mov dword [esp + 8], edi
inc ecx
cmp ecx, dword [esp + 0xc]
jl 0x855226
jmp 0x857fa3
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 0x85dce2
movzx edx, word [edi]
cmp edx, 0xff
ja 0x85eef9
mov esi, dword [esp + 0x3c]
mov esi, dword [esi]
test byte [esi + edx], 0x10
je 0x85eef9
add edi, 2
mov dword [esp + 8], edi
inc ecx
cmp ecx, dword [esp + 0xc]
jl 0x855270
jmp 0x857fa3
xor esi, esi
mov ebx, dword [esp + 4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
cmp ebx, eax
jae 0x85d9e7
mov edi, dword [esp + 0x158]
mov ecx, dword [edi + 0x18]
test ecx, ecx
je 0x8552ed
sub esp, 0xc
push 0
push dword [esp + 0x5c]
push eax
push ecx
push ebx
call fcn.00860ec0
add esp, 0x20
test eax, eax
je 0x85531c
jmp 0x85eef9
mov ecx, dword [esp + 0x4c]
mov ecx, dword [ecx]
lea edx, [ecx + ecx]
sub eax, edx
cmp ebx, eax
ja 0x85531c
movzx eax, word [ebx]
cmp ax, word [edi + 0x34]
jne 0x85531c
cmp ecx, 1
je 0x85eef9
movzx eax, word [ebx + 2]
cmp ax, word [edi + 0x36]
je 0x85eef9
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
lea edx, [ebx + 2]
test eax, eax
je 0x85535c
mov ecx, dword [esp + 0x14]
cmp edx, dword [ecx]
jb 0x85535c
cmp dword [edi + 0x18], 0
jne 0x85535c
mov ecx, dword [esp + 0x4c]
cmp dword [ecx], 2
jne 0x85535c
movzx ecx, word [ebx]
cmp cx, word [edi + 0x34]
jne 0x85535c
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
cmp eax, 1
jg 0x85d3c8
inc esi
cmp esi, dword [esp + 0xc]
mov dword [esp + 8], edx
mov ebx, edx
jl 0x8552b4
jmp 0x857fa3
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 0x85f173
lea eax, [ecx + edx*2]
mov dword [esp + 8], eax
jmp 0x857fa3
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
xor ecx, ecx
mov ebp, dword [esp + 4]
cmp ebp, eax
jae 0x85dba9
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 0x855400
lea edi, [edx - 0x2028]
movzx edi, di
cmp edi, 2
jb 0x85540b
movzx edx, dx
cmp edx, 0x85
je 0x85540b
cmp edx, 0xd
jne case.0x85dee9.6
cmp dword [esp + 8], eax
jae 0x855415
movzx edx, word [ebp + 2]
cmp edx, 0xa
jne 0x855415
add ebp, 4
mov dword [esp + 8], ebp
jmp 0x855415
lea edi, [edx - 0xb]
movzx edi, di
cmp edi, 2
jae 0x855425
cmp dword [ebx + 0x6c], 0
jne 0x85eef9
inc ecx
cmp ecx, dword [esp + 0xc]
mov ebp, dword [esp + 8]
jl 0x8553a5
jmp 0x857fa3
movzx edx, dx
cmp edx, 0xa
je 0x855415
jmp case.0x85dee9.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 0x85da78
movsx edx, word [edi]
movsx esi, dx
cmp edx, 0x1fff
jle 0x855477
cmp esi, 0x202e
jg 0x8554a7
lea edx, [edx - 0x2000]
movzx edx, dx
cmp edx, 0xb
jae 0x8554e1
jmp 0x85f5b5
movzx edx, dx
cmp esi, 0x9f
jle 0x8554cf
cmp edx, 0xa0
je 0x85f5b5
cmp edx, 0x1680
je 0x85f5b5
cmp edx, 0x180e
jne 0x8554e1
jmp 0x85f5b5
movzx edx, dx
cmp edx, 0x202f
je 0x85f5b5
cmp edx, 0x205f
je 0x85f5b5
cmp edx, 0x3000
jne 0x8554e1
jmp 0x85f5b5
cmp edx, 9
je 0x85f5b5
cmp edx, 0x20
je 0x85f5b5
add edi, 2
mov dword [esp + 8], edi
inc ecx
cmp ecx, dword [esp + 0xc]
jl 0x855442
jmp 0x857fa3
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 0x85dab3
movsx edx, word [edi]
movsx esi, dx
cmp edx, 0x1fff
jle 0x85554f
cmp esi, 0x202e
jg 0x855577
lea edx, [edx - 0x2000]
movzx edx, dx
cmp edx, 0xb
jae 0x85f5b5
add edi, 2
mov dword [esp + 8], edi
inc ecx
cmp ecx, dword [esp + 0xc]
jl 0x855508
jmp 0x857fa3
movzx edx, dx
cmp esi, 0x9f
jle 0x855597
cmp edx, 0xa0
je 0x85553c
cmp edx, 0x1680
je 0x85553c
cmp edx, 0x180e
je 0x85553c
jmp 0x85f5b5
movzx edx, dx
cmp edx, 0x202f
je 0x85553c
cmp edx, 0x3000
je 0x85553c
cmp edx, 0x205f
je 0x85553c
jmp 0x85f5b5
cmp edx, 9
je 0x85553c
cmp edx, 0x20
je 0x85553c
jmp 0x85f5b5
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 0x85daee
movzx edx, word [edi]
lea esi, [edx - 0xa]
movzx esi, si
cmp esi, 4
jb 0x85f5b5
lea esi, [edx - 0x2028]
movzx esi, si
cmp esi, 2
jb 0x85f5b5
movzx edx, dx
cmp edx, 0x85
je 0x85f5b5
add edi, 2
mov dword [esp + 8], edi
inc ecx
cmp ecx, dword [esp + 0xc]
jl 0x8555b6
jmp 0x857fa3
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 0x85db29
movzx edx, word [edi]
lea esi, [edx - 0xa]
movzx esi, si
cmp esi, 4
jb 0x85564f
lea esi, [edx - 0x2028]
movzx esi, si
cmp esi, 2
jb 0x85564f
movzx edx, dx
cmp edx, 0x85
jne 0x85f5b5
add edi, 2
mov dword [esp + 8], edi
inc ecx
cmp ecx, dword [esp + 0xc]
jl 0x855618
jmp 0x857fa3
cmp edx, dword [esp + 0xc]
mov eax, dword [esp + 8]
mov dword [esp + 4], eax
jle 0x8564d8
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 0x855bd8
movzx ecx, word [ecx]
mov esi, ecx
and esi, 0xfc00
mov edx, 2
cmp esi, 0xd800
je 0x8556c8
mov edx, 1
cmp ecx, 0xff
ja 0x8556c8
mov edx, dword [esp + 0x3c]
mov esi, dword [edx]
mov edx, 1
test byte [esi + ecx], 4
jne 0x8564d8
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 0x855682
jmp 0x8564d8
cmp edx, dword [esp + 0xc]
mov eax, dword [esp + 8]
mov dword [esp + 4], eax
jle 0x8564d8
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 0x855bd8
movzx ecx, word [ecx]
cmp ecx, 0xff
ja 0x8564d8
mov edx, ecx
and edx, 0xfc00
cmp edx, 0xd800
je 0x8564d8
mov edx, dword [esp + 0x3c]
mov edx, dword [edx]
test byte [edx + ecx], 4
je 0x8564d8
add dword [esp + 4], 2
mov ecx, dword [esp + 0xc]
inc ecx
mov dword [esp + 0xc], ecx
cmp ecx, dword [esp + 0x24]
jl 0x855707
jmp 0x8564d8
cmp edx, dword [esp + 0xc]
mov eax, dword [esp + 8]
mov dword [esp + 4], eax
jle 0x8564d8
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 0x855bd8
movzx ecx, word [ecx]
mov esi, ecx
and esi, 0xfc00
mov edx, 2
cmp esi, 0xd800
je 0x8557c5
mov edx, 1
cmp ecx, 0xff
ja 0x8557c5
mov edx, dword [esp + 0x3c]
mov esi, dword [edx]
mov edx, 1
test byte [esi + ecx], 1
jne 0x8564d8
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 0x85577f
jmp 0x8564d8
cmp edx, dword [esp + 0xc]
mov eax, dword [esp + 8]
mov dword [esp + 4], eax
jle 0x8564d8
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 0x855bd8
movzx ecx, word [ecx]
cmp ecx, 0xff
ja 0x8564d8
mov edx, ecx
and edx, 0xfc00
cmp edx, 0xd800
je 0x8564d8
mov edx, dword [esp + 0x3c]
mov edx, dword [edx]
test byte [edx + ecx], 1
je 0x8564d8
add dword [esp + 4], 2
mov ecx, dword [esp + 0xc]
inc ecx
mov dword [esp + 0xc], ecx
cmp ecx, dword [esp + 0x24]
jl 0x855804
jmp 0x8564d8
cmp edx, dword [esp + 0xc]
mov eax, dword [esp + 8]
mov dword [esp + 4], eax
jle 0x8564d8
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 0x855bd8
movzx ecx, word [ecx]
mov esi, ecx
and esi, 0xfc00
mov edx, 2
cmp esi, 0xd800
je 0x8558c2
mov edx, 1
cmp ecx, 0xff
ja 0x8558c2
mov edx, dword [esp + 0x3c]
mov esi, dword [edx]
mov edx, 1
test byte [esi + ecx], 0x10
jne 0x8564d8
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 0x85587c
jmp 0x8564d8
cmp edx, dword [esp + 0xc]
mov eax, dword [esp + 8]
mov dword [esp + 4], eax
jle 0x8564d8
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 0x855bd8
movzx ecx, word [ecx]
cmp ecx, 0xff
ja 0x8564d8
mov edx, ecx
and edx, 0xfc00
cmp edx, 0xd800
je 0x8564d8
mov edx, dword [esp + 0x3c]
mov edx, dword [edx]
test byte [edx + ecx], 0x10
je 0x8564d8
add dword [esp + 4], 2
mov ecx, dword [esp + 0xc]
inc ecx
mov dword [esp + 0xc], ecx
cmp ecx, dword [esp + 0x24]
jl 0x855901
jmp 0x8564d8
cmp edx, dword [esp + 0xc]
mov eax, dword [esp + 8]
mov dword [esp + 4], eax
jle 0x8564d8
mov esi, dword [esp + 8]
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
cmp esi, eax
jae 0x855a86
mov ecx, dword [esp + 0x158]
mov ecx, dword [ecx + 0x18]
test ecx, ecx
je 0x8559aa
sub esp, 0xc
push dword [esp + 0x3c]
push dword [esp + 0x5c]
push eax
push ecx
push esi
call fcn.00860ec0
add esp, 0x20
test eax, eax
je 0x8559e7
jmp 0x855ab4
mov ecx, dword [esp + 0x4c]
mov ecx, dword [ecx]
lea edx, [ecx + ecx]
sub eax, edx
cmp esi, eax
ja 0x8559e7
movzx eax, word [esi]
mov edx, dword [esp + 0x158]
cmp ax, word [edx + 0x34]
jne 0x8559e7
cmp ecx, 1
je 0x855af0
movzx eax, word [esi + 2]
mov ecx, dword [esp + 0x158]
cmp ax, word [ecx + 0x36]
je 0x855b04
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
test ecx, ecx
je 0x855a40
lea edx, [esi + 2]
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov ebx, edx
cmp edx, eax
jb 0x855a3c
mov edx, dword [esp + 0x158]
cmp dword [edx + 0x18], 0
jne 0x855a3c
mov edx, dword [esp + 0x4c]
cmp dword [edx], 2
jne 0x855a3c
movzx edx, word [esi]
mov edi, dword [esp + 0x158]
cmp dx, word [edi + 0x34]
jne 0x855a3c
mov edx, dword [esp + 0x1c]
mov dword [edx], 1
cmp ecx, 1
mov ecx, ebx
jle 0x855a49
jmp 0x85e2c3
mov ecx, ebx
jmp 0x855a49
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 0x855a6c
movzx eax, word [esi + 2]
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x855a6c
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 0x85596f
jmp 0x8564d8
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x855ac8
mov ecx, dword [esp + 0x20]
cmp esi, dword [ecx]
jbe 0x855adc
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
cmp eax, 1
mov dword [esp + 4], esi
jle 0x8564d8
jmp 0x85e2c3
mov dword [esp + 4], esi
cmp dword [esp + 0x50], 0
jne 0x8564f0
jmp 0x85b3ef
mov dword [esp + 4], esi
cmp dword [esp + 0x50], 0
jne 0x8564f0
jmp 0x85b3ef
mov dword [esp + 4], esi
cmp dword [esp + 0x50], 0
jne 0x8564f0
jmp 0x85b3ef
mov dword [esp + 4], esi
cmp dword [esp + 0x50], 0
jne 0x8564f0
jmp 0x85b3ef
mov dword [esp + 4], esi
jmp 0x8564d8
cmp edx, 0x7fffffff
jne 0x855b24
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov dword [esp + 4], eax
jmp 0x855bd8
cmp edx, dword [esp + 0xc]
mov eax, dword [esp + 8]
mov dword [esp + 4], eax
jle 0x8564d8
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov ecx, dword [esp + 8]
cmp ecx, eax
jae 0x855b82
lea edx, [ecx + 2]
mov dword [esp + 4], edx
cmp edx, eax
jae 0x855b68
movzx edx, word [ecx + 2]
and edx, 0xfc00
cmp edx, 0xdc00
jne 0x855b68
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 0x855b40
jmp 0x8564d8
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x855bb0
mov edx, dword [esp + 0x20]
cmp ecx, dword [edx]
jbe 0x855bc4
mov edx, dword [esp + 0x1c]
mov dword [edx], 1
cmp eax, 1
mov dword [esp + 4], ecx
jle 0x8564d8
jmp 0x85e2c3
mov dword [esp + 4], ecx
cmp dword [esp + 0x50], 0
jne 0x8564f0
jmp 0x85b3ef
mov dword [esp + 4], ecx
cmp dword [esp + 0x50], 0
jne 0x8564f0
jmp 0x85b3ef
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x8564d8
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 4]
cmp edx, dword [ecx]
jbe 0x8564d8
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
cmp eax, 1
jle 0x8564d8
jmp 0x85e2c3
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 0x855bd8
lea eax, [edx + eax*2]
mov dword [esp + 4], eax
cmp dword [esp + 0x50], 0
jne 0x8564f0
jmp 0x85b3ef
cmp edx, dword [esp + 0xc]
mov eax, dword [esp + 8]
mov dword [esp + 4], eax
jle 0x8564d8
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 0x855bd8
movzx ecx, word [edi]
mov esi, ecx
and esi, 0xfc00
mov edx, 1
cmp esi, 0xd800
jne 0x855c9e
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 0x855cf5
cmp ecx, 0xd
jne 0x855cc5
mov esi, dword [esp + 4]
lea ecx, [esi + 2]
cmp ecx, eax
jae 0x855d1a
movzx edx, word [esi + 2]
cmp edx, 0xa
jne 0x855cfc
add esi, 4
mov dword [esp + 4], esi
jmp 0x855d00
mov esi, dword [esp + 0x158]
cmp dword [esi + 0x6c], 0
jne 0x8564d8
lea esi, [ecx - 0xb]
cmp esi, 2
jb 0x855cf5
lea esi, [ecx - 0x2028]
cmp esi, 2
jb 0x855cf5
cmp ecx, 0x85
jne 0x8564d8
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 0x855c5b
jmp 0x8564d8
mov dword [esp + 4], ecx
cmp dword [esp + 0x50], 0
jne 0x8564f0
jmp 0x85b3ef
cmp eax, 0x3000
je case.0x859036.0
cmp eax, 0x180e
je case.0x859036.0
movzx eax, byte [ecx*8 + 0x893405]
cmp dword [eax*4 + 0x892918], 6
jmp 0x85ac1f
cmp edx, dword [esp + 0xc]
mov eax, dword [esp + 8]
mov dword [esp + 4], eax
jle 0x856490
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 0x8564ae
movzx ecx, word [ecx]
cmp ecx, 0xff
ja 0x855da0
mov edx, dword [esp + 0x3c]
mov edx, dword [edx]
test byte [edx + ecx], 4
jne 0x856490
add dword [esp + 4], 2
mov ecx, dword [esp + 0xc]
inc ecx
mov dword [esp + 0xc], ecx
cmp ecx, dword [esp + 0x24]
jl 0x855d79
jmp 0x856490
cmp edx, dword [esp + 0xc]
mov eax, dword [esp + 8]
mov dword [esp + 4], eax
jle 0x856490
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 0x8564ae
movzx ecx, word [ecx]
cmp ecx, 0xff
ja 0x856490
mov edx, dword [esp + 0x3c]
mov edx, dword [edx]
test byte [edx + ecx], 4
je 0x856490
add dword [esp + 4], 2
mov ecx, dword [esp + 0xc]
inc ecx
mov dword [esp + 0xc], ecx
cmp ecx, dword [esp + 0x24]
jl 0x855dd9
jmp 0x856490
cmp edx, dword [esp + 0xc]
mov eax, dword [esp + 8]
mov dword [esp + 4], eax
jle 0x856490
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 0x8564ae
movzx ecx, word [ecx]
cmp ecx, 0xff
ja 0x855e64
mov edx, dword [esp + 0x3c]
mov edx, dword [edx]
test byte [edx + ecx], 1
jne 0x856490
add dword [esp + 4], 2
mov ecx, dword [esp + 0xc]
inc ecx
mov dword [esp + 0xc], ecx
cmp ecx, dword [esp + 0x24]
jl 0x855e3d
jmp 0x856490
cmp edx, dword [esp + 0xc]
mov eax, dword [esp + 8]
mov dword [esp + 4], eax
jle 0x856490
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 0x8564ae
movzx ecx, word [ecx]
cmp ecx, 0xff
ja 0x856490
mov edx, dword [esp + 0x3c]
mov edx, dword [edx]
test byte [edx + ecx], 1
je 0x856490
add dword [esp + 4], 2
mov ecx, dword [esp + 0xc]
inc ecx
mov dword [esp + 0xc], ecx
cmp ecx, dword [esp + 0x24]
jl 0x855e9d
jmp 0x856490
cmp edx, dword [esp + 0xc]
mov eax, dword [esp + 8]
mov dword [esp + 4], eax
jle 0x856490
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 0x8564ae
movzx ecx, word [ecx]
cmp ecx, 0xff
ja 0x855f28
mov edx, dword [esp + 0x3c]
mov edx, dword [edx]
test byte [edx + ecx], 0x10
jne 0x856490
add dword [esp + 4], 2
mov ecx, dword [esp + 0xc]
inc ecx
mov dword [esp + 0xc], ecx
cmp ecx, dword [esp + 0x24]
jl 0x855f01
jmp 0x856490
cmp edx, dword [esp + 0xc]
mov eax, dword [esp + 8]
mov dword [esp + 4], eax
jle 0x856490
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 0x8564ae
movzx ecx, word [ecx]
cmp ecx, 0xff
ja 0x856490
mov edx, dword [esp + 0x3c]
mov edx, dword [edx]
test byte [edx + ecx], 0x10
je 0x856490
add dword [esp + 4], 2
mov ecx, dword [esp + 0xc]
inc ecx
mov dword [esp + 0xc], ecx
cmp ecx, dword [esp + 0x24]
jl 0x855f61
jmp 0x856490
cmp edx, dword [esp + 0xc]
mov eax, dword [esp + 8]
mov dword [esp + 4], eax
jle 0x856490
mov esi, dword [esp + 8]
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
cmp esi, eax
jae 0x85609d
mov ecx, dword [esp + 0x158]
mov ecx, dword [ecx + 0x18]
test ecx, ecx
je 0x855ff4
sub esp, 0xc
push 0
push dword [esp + 0x5c]
push eax
push ecx
push esi
call fcn.00860ec0
add esp, 0x20
test eax, eax
je 0x856031
jmp 0x8560cb
mov ecx, dword [esp + 0x4c]
mov ecx, dword [ecx]
lea edx, [ecx + ecx]
sub eax, edx
cmp esi, eax
ja 0x856031
movzx eax, word [esi]
mov edx, dword [esp + 0x158]
cmp ax, word [edx + 0x34]
jne 0x856031
cmp ecx, 1
je 0x856107
movzx eax, word [esi + 2]
mov ecx, dword [esp + 0x158]
cmp ax, word [ecx + 0x36]
je 0x85611b
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
lea edi, [esi + 2]
test eax, eax
je 0x85607f
mov ecx, dword [esp + 0x14]
cmp edi, dword [ecx]
jb 0x85607f
mov ecx, dword [esp + 0x158]
cmp dword [ecx + 0x18], 0
jne 0x85607f
mov ecx, dword [esp + 0x4c]
cmp dword [ecx], 2
jne 0x85607f
movzx ecx, word [esi]
mov edx, dword [esp + 0x158]
cmp cx, word [edx + 0x34]
jne 0x85607f
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
cmp eax, 1
jg 0x85e2c3
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 0x855fbb
jmp 0x856490
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x8560df
mov ecx, dword [esp + 0x20]
cmp esi, dword [ecx]
jbe 0x8560f3
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
cmp eax, 1
mov dword [esp + 4], esi
jle 0x856490
jmp 0x85e2c3
mov dword [esp + 4], esi
cmp dword [esp + 0x50], 0
jne 0x8564f0
jmp 0x85b525
mov dword [esp + 4], esi
cmp dword [esp + 0x50], 0
jne 0x8564f0
jmp 0x85b525
mov dword [esp + 4], esi
cmp dword [esp + 0x50], 0
jne 0x8564f0
jmp 0x85b525
mov dword [esp + 4], esi
cmp dword [esp + 0x50], 0
jne 0x8564f0
jmp 0x85b525
mov dword [esp + 4], esi
cmp dword [esp + 0x50], 0
jne 0x8564f0
jmp 0x85b525
cmp edx, dword [esp + 0xc]
mov eax, dword [esp + 8]
mov dword [esp + 4], eax
jle 0x856490
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov ecx, dword [esp + 8]
mov dword [esp + 4], ecx
jmp 0x85615a
add esi, 4
mov dword [esp + 4], esi
jmp 0x8561cb
mov ecx, dword [esp + 4]
cmp ecx, eax
jae 0x8564ae
movzx ecx, word [ecx]
cmp ecx, 0xa
je 0x8561c6
movzx edx, cx
cmp edx, 0xd
jne 0x856190
mov esi, dword [esp + 4]
lea ecx, [esi + 2]
cmp ecx, eax
jae 0x8561e5
movzx edx, word [esi + 2]
cmp edx, 0xa
je 0x856151
mov dword [esp + 4], ecx
jmp 0x8561cb
mov esi, dword [esp + 0x158]
cmp dword [esi + 0x6c], 0
jne 0x856490
lea esi, [ecx - 0xb]
movzx esi, si
cmp esi, 2
jb 0x8561c6
add ecx, 0xffffdfd8
movzx ecx, cx
cmp ecx, 2
jb 0x8561c6
cmp edx, 0x85
jne 0x856490
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 0x85615a
jmp 0x856490
mov dword [esp + 4], ecx
cmp dword [esp + 0x50], 0
jne 0x8564f0
jmp 0x85b525
cmp edx, dword [esp + 0xc]
mov eax, dword [esp + 8]
mov dword [esp + 4], eax
jle 0x856490
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 0x8564ae
movsx ecx, word [ecx]
movsx edx, cx
cmp ecx, 0x1fff
jle 0x856252
cmp edx, 0x202e
jg 0x856286
lea ecx, [ecx - 0x2000]
movzx ecx, cx
cmp ecx, 0xb
mov edx, dword [esp + 0x24]
jae 0x8562c8
jmp 0x856490
movzx ecx, cx
cmp edx, 0x9f
jle 0x8562b2
cmp ecx, 0xa0
mov edx, dword [esp + 0x24]
je 0x856490
cmp ecx, 0x1680
je 0x856490
cmp ecx, 0x180e
jne 0x8562c8
jmp 0x856490
movzx ecx, cx
cmp ecx, 0x202f
je 0x856490
cmp ecx, 0x205f
mov edx, dword [esp + 0x24]
je 0x856490
cmp ecx, 0x3000
jne 0x8562c8
jmp 0x856490
cmp ecx, 9
mov edx, dword [esp + 0x24]
je 0x856490
cmp ecx, 0x20
je 0x856490
add dword [esp + 4], 2
mov ecx, dword [esp + 0xc]
inc ecx
mov dword [esp + 0xc], ecx
cmp ecx, edx
jl 0x856219
jmp 0x856490
cmp edx, dword [esp + 0xc]
mov eax, dword [esp + 8]
mov dword [esp + 4], eax
jle 0x856490
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 0x8564ae
movsx ecx, word [ecx]
movsx edx, cx
cmp ecx, 0x1fff
jle 0x856352
cmp edx, 0x202e
jg 0x85637e
lea ecx, [ecx - 0x2000]
movzx ecx, cx
cmp ecx, 0xb
mov edx, dword [esp + 0x24]
jae 0x856490
add dword [esp + 4], 2
mov ecx, dword [esp + 0xc]
inc ecx
mov dword [esp + 0xc], ecx
cmp ecx, edx
jl 0x856303
jmp 0x856490
movzx ecx, cx
cmp edx, 0x9f
jle 0x8563a2
cmp ecx, 0xa0
mov edx, dword [esp + 0x24]
je 0x85633b
cmp ecx, 0x1680
je 0x85633b
cmp ecx, 0x180e
je 0x85633b
jmp 0x856490
movzx ecx, cx
cmp ecx, 0x202f
mov edx, dword [esp + 0x24]
je 0x85633b
cmp ecx, 0x3000
je 0x85633b
cmp ecx, 0x205f
je 0x85633b
jmp 0x856490
cmp ecx, 9
mov edx, dword [esp + 0x24]
je 0x85633b
cmp ecx, 0x20
je 0x85633b
jmp 0x856490
cmp edx, dword [esp + 0xc]
mov eax, dword [esp + 8]
mov dword [esp + 4], eax
jle 0x856490
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 0x8564ae
movzx ecx, word [ecx]
lea edx, [ecx - 0xa]
movzx edx, dx
cmp edx, 4
jb 0x856490
lea edx, [ecx - 0x2028]
movzx edx, dx
cmp edx, 2
jb 0x856490
movzx ecx, cx
cmp ecx, 0x85
mov ecx, dword [esp + 0x24]
je 0x856490
add dword [esp + 4], 2
mov edx, dword [esp + 0xc]
inc edx
mov dword [esp + 0xc], edx
cmp edx, ecx
jl 0x8563d5
jmp 0x856490
cmp edx, dword [esp + 0xc]
mov eax, dword [esp + 8]
mov dword [esp + 4], eax
jle 0x856490
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 0x8564ae
movzx ecx, word [ecx]
lea edx, [ecx - 0xa]
movzx edx, dx
cmp edx, 4
jb 0x856473
lea edx, [ecx - 0x2028]
movzx edx, dx
cmp edx, 2
jb 0x856473
movzx ecx, cx
cmp ecx, 0x85
jne 0x856490
add dword [esp + 4], 2
mov ecx, dword [esp + 0xc]
inc ecx
mov dword [esp + 0xc], ecx
cmp ecx, dword [esp + 0x24]
jl 0x856444
jmp 0x856490
lea eax, [edx + eax*2]
mov dword [esp + 4], eax
cmp dword [esp + 0x50], 0
jne 0x8564f0
jmp 0x85b525
mov ebp, ecx
mov dword [esp + 4], ebp
cmp dword [esp + 0x50], 0
jne 0x8564f0
jmp 0x85ae49
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x856490
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 4]
cmp edx, dword [ecx]
jbe 0x856490
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
cmp eax, 1
jle 0x856490
jmp 0x85e2c3
cmp dword [esp + 0x50], 0
je 0x85b3ef
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.0x856507.98
xor eax, eax
xor esi, esi
jmp dword [edi*4 + 0x85f5cc]
movzx eax, di
cmp eax, 0x2e
mov eax, 0x21
jb 0x856520
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 0x8565bd
mov dword [esp + 0x38], 0x7fffffff
jmp 0x8565c8
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.0x856507.119
mov dword [esp + 0x10], edx
jmp 0x8564f0
movzx eax, di
cmp eax, 0x47
mov eax, 0x48
ja 0x85657c
mov eax, 0x3b
mov ebp, edi
sub ebp, eax
mov eax, 0x3cf
bt eax, ebp
mov esi, dword [esp + 4]
mov ebx, edi
jae 0x8565e6
mov dword [esp + 0x38], 0x7fffffff
jmp 0x8565f1
mov ebp, edx
lea eax, [edi - 0x55]
mov edx, edi
not edx
mov ecx, 0x3cf
bt ecx, eax
jae 0x85667d
mov eax, edx
mov edx, 0x7fffffff
jmp 0x856686
movsx eax, byte [edi + 0x8927cb]
mov dword [esp + 0x38], eax
add edx, 2
movsx eax, byte [edi + 0x8927c0]
mov dword [esp + 0xc], eax
and edi, 1
mov dword [esp + 0x44], 0
jmp 0x85684e
movsx eax, byte [ebp + 0x8927cb]
mov dword [esp + 0x38], eax
add edx, 2
movsx edi, byte [ebp + 0x8927c0]
and ebp, 1
mov dword [esp + 0x44], ebp
mov dword [esp + 0x48], 0
jmp 0x856c80
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 0x856c7c
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 0x857429
movzx ecx, si
cmp ecx, 0x81
je 0x857429
mov dword [esp + 0x10], 0
jmp 0x85743a
mov eax, edx
movsx edx, byte [edi + 0x892776]
mov esi, dword [esp + 4]
mov ebx, ebp
add ebx, 2
and eax, 1
mov dword [esp + 0x48], eax
movsx ecx, byte [edi + 0x89276b]
xor edi, edi
jmp 0x857dfd
cmp dword [esp + 0x30], 0
mov esi, dword [esp + 0x158]
mov eax, dword [esi + 0x78]
mov dword [esp + 0x24], edi
je 0x858c29
mov ebp, dword [esp + 4]
cmp ebp, eax
je 0x859196
movzx eax, word [ebp - 2]
and eax, 0xfc00
cmp eax, 0xdc00
je 0x859910
lea ecx, [ebp - 2]
jmp 0x859913
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 4]
cmp ebx, dword [eax]
jae 0x85c5c5
mov dword [esp + 0x24], edi
lea ecx, [ebx + 2]
movzx eax, word [ebx]
cmp dword [esp + 0x30], 0
je 0x858ff2
mov esi, edx
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x858ff6
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [ebx + 2]
add ebx, 4
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x858ff8
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 4]
cmp ebx, dword [eax]
jae 0x85c600
cmp dword [esp + 0x30], 0
je 0x858ca2
movzx eax, word [edx + 2]
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x858d7b
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [edx + 4]
add edx, 6
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x858d7e
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 0x85680d
mov esi, edi
add edx, 2
mov dword [esp + 0x44], 1
mov dword [esp + 0x38], 0x7fffffff
mov dword [esp + 0xc], 0
jmp 0x85680d
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 0x856843
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 0x856843
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 0x8568df
mov eax, ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x8568df
movzx eax, si
xor ecx, ecx
cmp eax, 0x2e
mov dword [esp + 8], edx
jb 0x856aa8
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 + 0x894a84]
shl ecx, 7
mov edx, eax
and edx, 0x7f
or edx, ecx
movzx ecx, word [edx + edx + 0x896c84]
mov ecx, dword [ecx*8 + 0x893408]
test ecx, ecx
je 0x856aa2
add ecx, eax
sub esp, 8
lea eax, [esp + 0xc0]
push eax
push ecx
call fcn.00861040
add esp, 0x10
mov ecx, eax
jmp 0x856aa4
mov eax, edx
add eax, 2
mov dword [esp + 0x10], eax
movzx eax, si
cmp eax, 0x2e
jb 0x856946
mov dword [esp + 0x48], edi
cmp dword [esp + 0x30], 0
je 0x8569dc
movzx eax, bx
cmp eax, 0x80
jb 0x8569dc
mov eax, ebx
shr eax, 7
movzx eax, byte [eax + 0x894a84]
shl eax, 7
mov ecx, ebx
and ecx, 0x7f
or ecx, eax
movzx eax, word [ecx + ecx + 0x896c84]
mov edi, dword [eax*8 + 0x893408]
add edi, ebx
cmp dword [esp + 0xc], 0
jg 0x8569f8
mov edx, ebp
jmp 0x856a36
cmp dword [esp + 0xc], 0
jle 0x85697c
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 0x85b6a8
cmp bx, word [ebp]
jne 0x85eef9
add ebp, 2
inc ecx
cmp ecx, dword [esp + 0xc]
jl 0x856960
mov ecx, edi
mov eax, dword [esp + 0xc]
cmp eax, dword [esp + 0x38]
mov edi, ebp
mov dword [esp + 4], ebp
je 0x8564f0
test ecx, ecx
jne 0x85c685
mov eax, dword [esp + 0xc]
cmp eax, dword [esp + 0x38]
mov ecx, edi
mov edx, ecx
jge 0x859e13
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov edx, ecx
cmp edx, eax
jae 0x859dee
cmp bx, word [edx]
jne 0x859e13
add edx, 2
mov ecx, dword [esp + 0xc]
inc ecx
mov dword [esp + 0xc], ecx
cmp ecx, dword [esp + 0x38]
jl 0x8569b4
jmp 0x859e13
cmp ebx, 0xff
mov edi, ebx
ja 0x8569ed
mov eax, dword [ecx + 0x40]
movzx edi, byte [eax + ebx]
cmp dword [esp + 0xc], 0
jle 0x85693f
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 0x85b6df
mov esi, edx
movzx edx, word [edx]
cmp bx, dx
je 0x856a2a
cmp edi, edx
jne 0x85eef9
mov edx, esi
add edx, 2
inc ecx
cmp ecx, dword [esp + 0xc]
jl 0x856a10
mov eax, dword [esp + 0xc]
cmp eax, dword [esp + 0x38]
mov dword [esp + 8], edx
mov dword [esp + 4], edx
je 0x8564f0
cmp dword [esp + 0x48], 0
jne 0x85c711
mov eax, dword [esp + 0xc]
cmp eax, dword [esp + 0x38]
mov edx, dword [esp + 8]
jge 0x859e4c
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov edx, dword [esp + 8]
cmp edx, eax
jae 0x859e27
movzx ecx, word [edx]
cmp bx, cx
je 0x856a8b
cmp edi, ecx
jne 0x859e4c
add edx, 2
mov ecx, dword [esp + 0xc]
inc ecx
mov dword [esp + 0xc], ecx
cmp ecx, dword [esp + 0x38]
jl 0x856a73
jmp 0x859e4c
xor ecx, ecx
mov edx, dword [esp + 8]
mov dword [esp + 0x48], edi
cmp dword [esp + 0xc], 0
mov dword [esp + 0x24], ecx
jle 0x856b30
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 0x856ae0
mov eax, 2
jmp 0x856b24
cmp ebx, esi
ja 0x856aea
mov eax, dword [ebx]
cmp eax, dword [edx]
je 0x856ad3
test ecx, ecx
jle 0x85b5f9
cmp ebx, edi
ja 0x85b5f9
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 0x85b5f9
lea ebx, [ebx + eax*2]
inc ebp
cmp ebp, dword [esp + 0xc]
jl 0x856ae0
jmp 0x856b32
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 0x8564f0
cmp dword [esp + 0x48], 0
jne 0x85bf98
mov eax, dword [esp + 0xc]
cmp eax, dword [esp + 0x38]
mov edi, ebx
mov ecx, dword [esp + 0x24]
jge 0x859efd
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 0x856b91
mov eax, 2
mov edi, esi
jmp 0x856bdb
mov esi, edi
cmp edi, ebp
ja 0x856b9d
mov eax, dword [esi]
cmp eax, dword [edx]
je 0x856b88
test ecx, ecx
mov edi, esi
jle 0x857603
cmp edi, dword [esp + 4]
ja 0x857603
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 0x857603
lea edi, [edi + eax*2]
mov eax, dword [esp + 0xc]
inc eax
mov dword [esp + 0xc], eax
cmp eax, dword [esp + 0x38]
jl 0x856b91
jmp 0x859efd
mov ebx, edi
movzx edi, word [edx + 2]
add edx, 4
mov dword [esp + 0x48], 0
mov dword [esp + 0x38], edi
jmp 0x856c74
mov ebx, edi
add edx, 2
mov dword [esp + 0x48], 1
mov dword [esp + 0x38], 0x7fffffff
jmp 0x856c72
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 0x856c7c
mov ebx, edi
add edx, 2
mov dword [esp + 0x38], 1
xor edi, edi
mov dword [esp + 0x48], 1
jmp 0x856c74
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 0x856cbf
mov eax, ebp
and eax, 0xfc00
cmp eax, 0xd800
jne 0x856cbf
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 0x856cc3
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], ecx
movzx eax, bx
cmp eax, 0x48
jb 0x856d25
cmp dword [esp + 0x30], 0
mov esi, dword [esp + 0xc]
je 0x856da7
cmp esi, 0x80
jb 0x856da7
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 + 0x894a84]
shl eax, 7
mov edx, esi
sub edx, ecx
add edx, eax
movzx eax, word [edx + edx + 0x896c84]
mov eax, dword [eax*8 + 0x893408]
add eax, esi
jmp 0x856dc1
cmp dword [esp + 0x30], 0
mov ebx, dword [esp + 0xc]
je 0x856e50
test edi, edi
jle 0x856ed3
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 0x85b63a
movzx ecx, word [ebp]
mov esi, ecx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x856d92
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 0x856d9d
jmp 0x85eef9
add ebp, 2
cmp ebx, ecx
je 0x85eef9
inc edx
cmp edx, edi
jl 0x856d50
jmp 0x856ed5
cmp esi, 0xff
mov dword [esp + 0x24], esi
ja 0x856dc5
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 0x856e7e
test edi, edi
jle 0x856f71
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 0x85b671
movzx ecx, word [ebp]
mov esi, ecx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x856e2b
shl ecx, 0xa
and ecx, 0xffc00
movzx esi, word [ebp + 2]
add ebp, 4
and esi, 0x3ff
lea ecx, [ecx + esi + 0x10000]
jmp 0x856e2e
add ebp, 2
mov ebx, dword [esp + 0xc]
xor esi, esi
cmp ebx, ecx
je case.0x85dee9.6
cmp dword [esp + 0x24], ecx
je case.0x85dee9.6
inc eax
cmp eax, edi
jl 0x856df0
jmp 0x856f75
test edi, edi
jle 0x856ed3
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
xor ecx, ecx
mov ebp, esi
nop
nop
cmp ebp, eax
jae 0x85b720
movzx edx, word [ebp]
cmp ebx, edx
je 0x85eef9
add ebp, 2
inc ecx
cmp ecx, edi
jl 0x856e60
jmp 0x856ed5
test edi, edi
jle 0x856f71
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 0x85b757
mov ebx, ebp
movzx edx, word [ebp]
xor esi, esi
cmp dword [esp + 0xc], edx
je case.0x85dee9.6
cmp dword [esp + 0x24], edx
je case.0x85dee9.6
mov ebp, ebx
add ebp, 2
inc ecx
cmp ecx, edi
jl 0x856ea0
jmp 0x856f75
mov ebp, esi
cmp edi, dword [esp + 0x38]
mov dword [esp + 8], ebp
mov dword [esp + 4], ebp
je 0x8564f0
cmp dword [esp + 0x44], 0
jne 0x85c254
cmp dword [esp + 0x30], 0
je 0x857579
cmp edi, dword [esp + 0x38]
mov ebp, dword [esp + 8]
mov ebx, dword [esp + 0xc]
jge 0x8599d1
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov ebp, dword [esp + 8]
cmp ebp, eax
jae 0x8599ac
movzx ecx, word [ebp]
mov esi, ecx
and esi, 0xfc00
mov edx, 1
cmp esi, 0xd800
jne 0x856f59
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 0x8599d1
lea ebp, [ebp + edx*2]
inc edi
cmp edi, dword [esp + 0x38]
jl 0x856f19
jmp 0x8599d1
mov ebp, dword [esp + 4]
cmp edi, dword [esp + 0x38]
mov dword [esp + 8], ebp
mov dword [esp + 4], ebp
je 0x8564f0
cmp dword [esp + 0x44], 0
jne 0x85c3a3
cmp dword [esp + 0x30], 0
je 0x8575b7
cmp edi, dword [esp + 0x38]
mov eax, dword [esp + 8]
mov ebx, dword [esp + 0xc]
jge 0x85467f
mov eax, dword [esp + 0x14]
mov ebp, dword [eax]
mov eax, dword [esp + 8]
cmp eax, ebp
jae 0x8599e5
movzx ecx, word [eax]
mov esi, ecx
and esi, 0xfc00
mov edx, 1
cmp esi, 0xd800
jne 0x857003
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 0x85700d
jmp 0x859a1b
mov esi, eax
cmp ebx, ecx
je 0x859a1b
cmp dword [esp + 0x24], ecx
je 0x859a1b
mov eax, esi
lea eax, [eax + edx*2]
inc edi
cmp edi, dword [esp + 0x38]
jl 0x856fb9
jmp 0x85467f
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 0x857df9
mov dword [esp + 8], edx
movzx edx, word [edx + 0x22]
lea esi, [edx - 0x62]
movzx eax, si
cmp eax, 0xb
ja 0x85423b
mov eax, 0x73f
bt eax, esi
jae 0x85919f
cmp esi, 7
seta al
mov dword [esp + 0x48], eax
cmp esi, 8
jb 0x858d3c
mov dword [esp + 0x44], 0
jmp 0x858d45
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 0x85756a
mov ecx, dword [edi + 0xc]
mov eax, dword [ecx + ebx*4]
test eax, eax
js 0x85756a
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 0x8597f1
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 0x858c99
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 0x857140
mov edi, dword [esp + 0x158]
mov ebp, dword [edi + 0xc]
mov edi, dword [ebp + ebx*4]
test edi, edi
jns 0x8597d9
dec ecx
add esi, edx
cmp ecx, 1
jg 0x85711f
jmp 0x8597e8
mov ebp, dword [esp + 0x158]
mov ebx, dword [ebp + 0xb0]
xor eax, eax
cmp dword [ebp + 0x9c], 1
jne 0x857174
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.00854020
add esp, 0x20
mov esi, eax
cmp esi, 1
je 0x858f19
cmp esi, 0xfffffc19
je 0x858f19
mov dword [ebp + 0xb0], ebx
cmp esi, 0xfffffc20
je 0x8571d5
test esi, esi
jne case.0x85dee9.6
mov ax, word [edi + 2]
jmp 0x8571fe
mov edx, edi
movzx eax, word [edx + 2]
lea ecx, [edx + eax*2]
cmp dword [ebp + 0x80], ecx
jae 0x85d9dd
movzx edx, word [edx]
cmp edx, 0x77
je 0x8571fe
movzx ecx, word [ecx]
cmp ecx, 0x77
jne 0x85d9dd
movzx eax, ax
lea edx, [edi + eax*2]
movzx eax, word [edi + eax*2]
cmp eax, 0x77
je 0x857178
mov ecx, edx
jmp 0x858f28
mov ebp, dword [esp + 0x158]
mov ebx, dword [ebp + 0xb0]
xor eax, eax
cmp dword [ebp + 0x9c], 1
jne 0x85723f
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.00854020
add esp, 0x20
mov esi, eax
mov dword [ebp + 0xb0], ebx
test esi, esi
jns 0x8572a4
cmp esi, 0xfffffc20
jne 0x858e1f
mov edx, edi
movzx eax, word [edx + 2]
lea ecx, [edx + eax*2]
cmp dword [ebp + 0x80], ecx
jae 0x858e30
movzx edx, word [edx]
cmp edx, 0x77
jne 0x8572b2
mov edx, edi
jmp 0x8572c0
jne 0x85bd75
mov edx, edi
mov ax, word [edx + 2]
jmp 0x8572c0
movzx ecx, word [ecx]
cmp ecx, 0x77
mov edx, edi
jne 0x858e30
movzx eax, ax
lea ecx, [edx + eax*2]
movzx eax, word [edx + eax*2]
cmp eax, 0x77
mov edx, ecx
je 0x857243
jmp 0x858e42
movzx ebx, word [edx + 2]
lea ebp, [edx + 4]
movzx ecx, word [edx + 4]
cmp ecx, 0x76
mov dword [esp + 0x24], edi
jne 0x8573e2
mov eax, dword [0x891048]
test eax, eax
je 0x8573d0
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 0x85bd7e
mov ebx, dword [esp + 0xc]
jne case.0x85dee9.6
movzx eax, byte [0x89287a]
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.0x8573fc.5
jmp dword [eax*4 + 0x860084]
movzx eax, word [ebp + 2]
add eax, eax
cmp eax, dword [esp + 0x28]
jge 0x854612
mov ecx, dword [esp + 0x158]
mov ecx, dword [ecx + 0xc]
cmp dword [ecx + eax*4], 0
setns al
jmp 0x854614
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 0x85b90d
mov edi, edx
sub edi, eax
lea eax, [esi - 0x82]
movzx ecx, ax
cmp ecx, 9
mov dword [esp + 0xc], edi
ja 0x858fb1
mov ecx, 0x318
bt ecx, eax
jae 0x858fa8
movzx ebx, word [edi + 4]
mov eax, dword [ebp + 0xa8]
test eax, eax
je 0x857493
cmp dword [eax + 4], ebx
je 0x85c676
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 0x857554
mov dword [esp + 8], edx
mov edi, dword [esp + 0x28]
cmp ebp, edi
jle 0x857509
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 0x8574de
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 0x85753c
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 0x858fb5
or eax, 0x10000
mov dword [ecx + 0x94], eax
mov ebp, ecx
mov ebx, dword [esp + 0x28]
jmp 0x858fb1
cmp dword [edi + 0x54], 1
sbb eax, eax
mov dword [esp + 0xc], eax
jmp 0x8597f1
cmp edi, dword [esp + 0x38]
mov edx, dword [esp + 8]
mov esi, dword [esp + 0xc]
jge 0x85a2e3
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov edx, dword [esp + 8]
cmp edx, eax
jae 0x85a2be
movzx ecx, word [edx]
cmp esi, ecx
je 0x85a2e3
add edx, 2
inc edi
cmp edi, dword [esp + 0x38]
jl 0x857595
jmp 0x85a2e3
cmp edi, dword [esp + 0x38]
mov ecx, dword [esp + 8]
mov esi, dword [esp + 0xc]
jge 0x85494d
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov ecx, dword [esp + 8]
cmp ecx, eax
jae 0x85a2f7
mov edx, ecx
movzx ecx, word [ecx]
cmp esi, ecx
je 0x85494b
cmp dword [esp + 0x24], ecx
je 0x85494b
mov ecx, edx
add ecx, 2
inc edi
cmp edi, dword [esp + 0x38]
jl 0x8575d3
jmp 0x85494d
cmp edi, dword [esp + 0x50]
jb 0x859efd
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x859efd
mov ecx, dword [esp + 0x20]
cmp edi, dword [ecx]
jbe 0x859efb
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
cmp eax, 1
mov edi, esi
jle 0x859efd
jmp 0x85d3c8
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 0x854181
jmp 0x85bd7e
add edx, 2
mov eax, dword [esp + 4]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x10], edx
jmp 0x8564f0
mov esi, edx
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 4]
cmp edx, dword [eax]
jae 0x85ca98
movzx eax, word [edx]
cmp dword [esp + 0x30], 0
je 0x8576a8
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
je 0x85780a
add edx, 2
cmp eax, 0xff
mov dword [esp + 4], edx
ja 0x85907c
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 4
je 0x85907c
jmp 0x85bd7e
mov edi, edx
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 4]
cmp edx, dword [eax]
jae 0x85cad3
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.0x85dee9.6
and cl, dl
jne case.0x85dee9.6
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 4
jne 0x857869
jmp 0x85bd7e
mov esi, edx
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 4]
cmp edx, dword [eax]
jae 0x85cb0e
movzx eax, word [edx]
cmp dword [esp + 0x30], 0
je 0x857757
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
je 0x85780a
add edx, 2
cmp eax, 0xff
mov dword [esp + 4], edx
ja 0x85907c
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 1
je 0x85907c
jmp 0x85bd7e
mov edi, edx
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 4]
cmp edx, dword [eax]
jae 0x85cb49
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.0x85dee9.6
and cl, dl
jne case.0x85dee9.6
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 1
jne 0x857869
jmp 0x85bd7e
mov esi, edx
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 4]
cmp edx, dword [eax]
jae 0x85cb84
movzx eax, word [edx]
cmp dword [esp + 0x30], 0
je 0x85905e
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x85905e
add edx, 4
mov dword [esp + 4], edx
jmp 0x85907c
mov edi, edx
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 4]
cmp edx, dword [eax]
jae 0x85cbbf
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.0x85dee9.6
and cl, dl
jne case.0x85dee9.6
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 0x10
je 0x85eef9
add dword [esp + 4], 2
add edi, 2
mov dword [esp + 0x10], edi
jmp 0x8564f0
mov edi, edx
mov esi, dword [esp + 0x158]
mov ecx, dword [esi + 0x18]
mov eax, dword [esi + 0x7c]
test ecx, ecx
je 0x859a8f
mov edx, dword [esp + 4]
cmp edx, eax
jae 0x859ac2
sub esp, 0xc
push dword [esp + 0x3c]
push dword [esp + 0x5c]
push eax
push ecx
push edx
call fcn.00860ec0
add esp, 0x20
test eax, eax
je 0x859ac2
jmp 0x85bd7e
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 4]
cmp ecx, dword [eax]
jae 0x85cbfa
add ecx, 2
mov dword [esp + 4], ecx
jmp 0x854181
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
mov edi, dword [esp + 4]
cmp edi, ecx
jae 0x85cc35
mov ebp, edx
lea eax, [edi + 2]
movzx edx, word [edi]
cmp dword [esp + 0x30], 0
je 0x85a0e8
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
mov ebx, dword [esp + 0x158]
jne 0x85a0ef
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 0x85a0ef
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 4]
cmp edi, dword [eax]
jae 0x85cc70
lea ecx, [edi + 2]
movzx eax, word [edi]
cmp dword [esp + 0x30], 0
je 0x85a151
mov esi, edx
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x85a155
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [edi + 2]
add edi, 4
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x85a157
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 4]
cmp edi, dword [eax]
jae 0x85ccab
lea ecx, [edi + 2]
movzx eax, word [edi]
cmp dword [esp + 0x30], 0
je 0x85a1b5
mov esi, edx
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x85a1b9
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [edi + 2]
add edi, 4
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x85a1bb
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 4]
cmp edi, dword [eax]
jae 0x85cce6
lea ecx, [edi + 2]
movzx eax, word [edi]
cmp dword [esp + 0x30], 0
je 0x85a219
mov esi, edx
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x85a21d
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [edi + 2]
add edi, 4
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x85a21f
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 4]
cmp esi, dword [eax]
jae 0x85cd21
lea ecx, [esi + 2]
movzx eax, word [esi]
cmp dword [esp + 0x30], 0
je 0x85a252
mov edi, edx
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x85a256
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [esi + 2]
add esi, 4
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x85a258
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov ebp, dword [esp + 4]
cmp ebp, eax
jae 0x85cd5c
mov dword [esp + 8], edx
lea edx, [ebp + 2]
movzx ecx, word [ebp]
cmp dword [esp + 0x30], 0
je 0x859088
mov esi, ecx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x859088
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 0x859092
jmp 0x859159
mov eax, dword [esp + 0x158]
cmp dword [eax + 0x4c], 0
jne 0x85bd7e
cmp dword [eax + 0x5c], 0
je case.0x856507.23
mov esi, edx
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 4]
cmp edx, dword [eax]
jb 0x85bd7e
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85907c
mov ecx, dword [esp + 0x20]
cmp edx, dword [ecx]
jbe 0x85907c
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
cmp eax, 1
jle 0x85907c
jmp 0x85ca57
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov ebx, dword [esp + 4]
cmp ebx, eax
mov edi, dword [esp + 0x158]
jae 0x8546af
mov ebp, edx
mov ecx, dword [edi + 0x18]
test ecx, ecx
je 0x85a0b1
sub esp, 0xc
push dword [esp + 0x3c]
push dword [esp + 0x5c]
push eax
push ecx
push ebx
call fcn.00860ec0
add esp, 0x20
test eax, eax
mov edx, ebp
je 0x85c7ae
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov ecx, dword [esp + 0x4c]
mov ecx, dword [ecx]
jmp 0x8546a3
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov edi, dword [esp + 4]
cmp edi, eax
jae 0x858f68
mov ebx, edx
mov esi, dword [esp + 0x158]
mov ecx, dword [esi + 0x18]
test ecx, ecx
je 0x85aac7
sub esp, 0xc
push dword [esp + 0x3c]
push dword [esp + 0x5c]
push eax
push ecx
push edi
call fcn.00860ec0
add esp, 0x20
test eax, eax
mov edx, ebx
jne 0x854181
jmp 0x85ced0
mov eax, dword [esp + 0x158]
cmp dword [eax + 0x48], 0
je case.0x856507.1
mov eax, dword [esp + 0x158]
mov ecx, dword [esp + 4]
cmp ecx, dword [eax + 0x78]
je 0x85bd7e
mov eax, dword [esp + 0x158]
mov ecx, dword [esp + 4]
cmp ecx, dword [eax + 0x78]
je 0x854181
jmp 0x85bd7e
mov esi, dword [esp + 0x158]
cmp dword [esi + 0x48], 0
mov eax, dword [esi + 0x78]
mov edi, dword [esp + 4]
je 0x857c58
cmp edi, eax
je 0x85bd7e
cmp edi, eax
je 0x854181
mov ecx, dword [esp + 0x14]
cmp edi, dword [ecx]
je 0x85bd7e
mov ecx, dword [esi + 0x18]
test ecx, ecx
je 0x85a3cc
mov esi, edx
cmp edi, eax
jbe 0x85bd7e
sub esp, 0xc
push dword [esp + 0x3c]
push dword [esp + 0x5c]
push eax
push ecx
push edi
call fcn.00860f70
add esp, 0x20
test eax, eax
mov edx, esi
jne 0x854181
jmp 0x85bd7e
cmp dword [esp + 0x30], 0
je 0x859b65
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 0x85d4fd
cmp cx, word [edi]
jne 0x85eef9
add ebx, 4
add edi, 2
mov dword [esp + 4], edi
mov dword [esp + 0x10], ebx
cmp eax, 2
jl 0x8564f0
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 0x857cfa
jmp case.0x85dee9.6
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 4]
cmp edi, dword [eax]
jae 0x85cd97
cmp dword [esp + 0x30], 0
movzx eax, word [edx + 2]
je 0x859d4e
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
mov esi, dword [esp + 0x158]
jne 0x859e60
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 0x859e9d
movzx ecx, word [edx + 2]
add edx, 4
mov dword [esp + 0x48], 1
xor edi, edi
mov ebx, edx
mov edx, ecx
jmp 0x857df9
add edx, 2
mov edi, 1
mov ebx, edx
mov edx, 0x7fffffff
jmp 0x857def
add edx, 2
mov dword [esp + 0x48], 0
mov ebx, edx
mov edx, 0x7fffffff
mov ecx, 1
mov edi, 1
jmp 0x857df9
add edx, 2
mov ebx, edx
mov edx, 1
xor ecx, ecx
mov edi, 1
jmp 0x857df1
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 0x857e39
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 0x857e44
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 0x857f9f
mov eax, dword [esp + 0x38]
test eax, eax
js 0x858115
cmp eax, 0xa
ja case.default.0x859036
jmp dword [eax*4 + 0x85f8d4]
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 0x85b84b
lea esi, [edi + 2]
movzx edx, word [edi]
cmp dword [esp + 0x30], 0
je 0x857ee6
mov ebx, edx
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x857ee6
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 0x857ef0
lea esi, [edx - 0x2000]
cmp esi, 0x5f
ja case.default.0x857edf
jmp dword [esi*4 + 0x85f900]
mov edi, esi
cmp edx, 0x180d
jg 0x857ed4
cmp edx, 0x84
jg 0x857f26
lea esi, [edx - 9]
cmp esi, 0x17
ja case.0x857edf.8203
mov ebx, 0x80001f
bt ebx, esi
jae case.0x857edf.8203
cmp dword [esp + 0x40], 0
jne 0x85eef9
mov dword [esp + 8], edi
inc ecx
cmp ecx, dword [esp + 0xc]
jl 0x857e86
jmp 0x857fa3
cmp edx, 0x85
je case.0x857edf.8192
cmp edx, 0xa0
je case.0x857edf.8192
cmp edx, 0x1680
je case.0x857edf.8192
jmp case.0x857edf.8203
cmp edx, 0x3000
je case.0x857edf.8192
cmp edx, 0x180e
je case.0x857edf.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 + 0x894a84]
shl esi, 7
sub edx, ebx
add edx, esi
movzx edx, word [edx + edx + 0x896c84]
movzx edx, byte [edx*8 + 0x893405]
xor ebx, ebx
cmp dword [edx*4 + 0x892918], 6
sete bl
cmp dword [esp + 0x40], ebx
jne 0x857f15
jmp 0x85eef9
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 0x8564f0
cmp dword [esp + 0x48], 0
jne 0x85c091
mov edi, dword [esp + 0x38]
test edi, edi
mov ebx, dword [esp + 0xc]
mov esi, dword [esp + 0x44]
js 0x858339
cmp edi, 0xa
mov edx, dword [esp + 8]
ja case.default.0x857fe7
jmp dword [edi*4 + 0x85fd2c]
cmp dword [esp + 0x24], ebx
mov ebp, edx
jle 0x85649e
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov ebp, edx
cmp ebp, eax
jae 0x854961
movzx edx, word [ebp]
cmp dword [esp + 0x30], 0
mov ecx, 1
je 0x858049
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x858049
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 0x858063
lea esi, [edx - 0x2000]
cmp esi, 0x5f
ja case.default.0x85805c
jmp dword [esi*4 + 0x85fd58]
cmp edx, 0x84
jg 0x85809c
lea esi, [edx - 9]
cmp esi, 0x17
ja case.0x85805c.8203
mov edi, 0x80001f
bt edi, esi
jae case.0x85805c.8203
cmp dword [esp + 0x40], 0
jne 0x85649e
lea ebp, [ebp + ecx*2]
inc ebx
cmp ebx, dword [esp + 0x24]
jl 0x858002
jmp 0x85649e
cmp edx, 0x85
je case.0x85805c.8192
cmp edx, 0xa0
je case.0x85805c.8192
cmp edx, 0x1680
je case.0x85805c.8192
jmp case.0x85805c.8203
cmp edx, 0x3000
je case.0x85805c.8192
cmp edx, 0x180e
je case.0x85805c.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 + 0x894a84]
shl esi, 7
sub edx, edi
add edx, esi
movzx edx, word [edx + edx + 0x896c84]
movzx esi, byte [edx*8 + 0x893405]
xor edx, edx
cmp dword [esi*4 + 0x892918], 6
sete dl
cmp dword [esp + 0x40], edx
jne 0x858088
jmp 0x85649e
movzx eax, bp
cmp eax, 0x16
jne 0x8582b3
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 0x85b7e8
lea esi, [edi + 2]
movzx ecx, word [edi]
cmp dword [esp + 0x30], 0
je 0x858178
mov ebx, ecx
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x858178
shl ecx, 0xa
and ecx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea ecx, [ecx + esi + 0x10000]
jmp 0x85817a
mov edi, esi
mov dword [esp + 4], eax
cmp edi, edx
jae 0x858270
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 + 0x894a84]
shl esi, 7
sub ecx, ebx
add ecx, esi
movzx ecx, word [ecx + ecx + 0x896c84]
movzx esi, byte [ecx*8 + 0x893406]
nop
nop
nop
nop
nop
nop
nop
movzx ecx, word [edi]
cmp dword [esp + 0x30], 0
mov ebx, 1
je 0x858210
mov ebp, ecx
and ebp, 0xfc00
cmp ebp, 0xd800
jne 0x858210
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 0x858212
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 + 0x894a84]
shl ebp, 7
sub ecx, edi
add ecx, ebp
movzx ecx, word [ecx + ecx + 0x896c84]
movzx ecx, byte [ecx*8 + 0x893406]
mov ebp, 1
shl ebp, cl
and ebp, dword [esi*4 + 0x892990]
je 0x858260
mov edi, eax
lea edi, [edi + ebx*2]
cmp edi, edx
jb 0x858266
jmp 0x858270
mov edi, eax
cmp edi, edx
jae 0x858270
test ebp, ebp
mov esi, ecx
jne 0x8581c0
cmp edi, edx
jb 0x858299
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx]
test ecx, ecx
je 0x858299
mov edx, dword [esp + 0x20]
cmp edi, dword [edx]
jbe 0x858299
mov edx, dword [esp + 0x1c]
mov dword [edx], 1
cmp ecx, 1
jg 0x85d3c8
mov dword [esp + 8], edi
mov eax, dword [esp + 4]
cmp eax, dword [esp + 0xc]
lea eax, [eax + 1]
jl 0x85812a
jmp 0x857fa3
cmp dword [esp + 0x30], 0
je 0x858eb4
mov esi, 0xfffffff2
lea eax, [ebp - 6]
movzx eax, ax
cmp eax, 0xf
ja case.0x85dee9.6
jmp dword [eax*4 + 0x85f854]
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 0x85ce27
movzx edx, word [edi]
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x858311
add edi, 4
mov dword [esp + 8], edi
jmp 0x85832d
add edi, 2
cmp edx, 0x7f
mov dword [esp + 8], edi
ja 0x85832d
mov esi, dword [esp + 0x3c]
mov esi, dword [esi]
test byte [esi + edx], 4
jne 0x85eef9
inc ecx
cmp ecx, dword [esp + 0xc]
jl 0x8582e9
jmp 0x857fa3
movzx ebp, si
cmp ebp, 0x16
mov ecx, dword [esp + 8]
jne 0x858ce5
cmp edx, dword [esp + 0xc]
mov ebp, ecx
jle 0x854201
mov ebp, ecx
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
cmp ebp, eax
jae 0x8541dc
lea edx, [ebp + 2]
movzx ecx, word [ebp]
cmp dword [esp + 0x30], 0
je 0x8583a9
mov esi, ecx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x8583a9
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 0x8583b3
jmp 0x858484
mov ebp, edx
cmp ebp, eax
jae 0x858484
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 + 0x894a84]
shl edx, 7
sub ecx, esi
add ecx, edx
movzx ecx, word [ecx + ecx + 0x896c84]
movzx edx, byte [ecx*8 + 0x893406]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, word [ebp]
cmp dword [esp + 0x30], 0
mov esi, 1
je 0x85842f
mov edi, ecx
and edi, 0xfc00
cmp edi, 0xd800
jne 0x85842f
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 + 0x894a84]
shl edi, 7
sub ecx, ebx
add ecx, edi
movzx ecx, word [ecx + ecx + 0x896c84]
movzx ecx, byte [ecx*8 + 0x893406]
mov ebx, 1
shl ebx, cl
and ebx, dword [edx*4 + 0x892990]
je 0x858476
lea ebp, [ebp + esi*2]
cmp ebp, eax
jae 0x858484
test ebx, ebx
mov edx, ecx
jne 0x8583f0
cmp ebp, eax
jb 0x8584ad
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x8584ad
mov ecx, dword [esp + 0x20]
cmp ebp, dword [ecx]
jbe 0x8584ad
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
cmp eax, 1
jg 0x85e2c3
mov eax, dword [esp + 0xc]
inc eax
mov dword [esp + 0xc], eax
cmp eax, dword [esp + 0x24]
jl 0x858357
jmp 0x854201
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 0x8547d7
mov edx, 0x73f
bt edx, ecx
jae 0x85a32d
cmp ecx, 7
seta dl
mov dword [esp + 0x24], edx
cmp ecx, 8
jb 0x859d92
mov dword [esp + 8], 0
jmp 0x859d9b
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 0x859b9a
movzx eax, word [edi + 4]
jmp 0x859b9c
mov eax, dword [0x891048]
test eax, eax
je 0x85860e
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 0x85bd7e
mov edx, edi
jne case.0x85dee9.6
add edx, 8
mov dword [esp + 0x10], edx
jmp 0x8564f0
cmp dword [esp + 0x30], 0
movzx eax, word [edx + 2]
mov ebx, edx
je 0x859d18
test ax, ax
mov ecx, dword [esp + 0x158]
mov edi, dword [esp + 4]
je 0x859d30
mov ecx, dword [ecx + 0x78]
inc eax
mov edx, edi
lea edi, [edx - 2]
cmp edi, ecx
jb 0x85bd7e
movzx esi, word [edx - 2]
and esi, 0xfc00
cmp esi, 0xdc00
je 0x858666
mov edx, edi
jmp 0x85866b
add edx, 0xfffffffc
mov edi, edx
dec eax
cmp eax, 1
jg 0x858645
jmp 0x859d30
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.00854020
add esp, 0x20
mov esi, eax
cmp esi, 0xfffffc20
je 0x8586d0
test esi, esi
jne 0x859a22
mov ax, word [edi + 2]
jmp 0x8586ff
movzx eax, word [edi + 2]
lea ecx, [edi + eax*2]
cmp dword [ebp + 0x80], ecx
jae 0x85d9dd
mov esi, edi
movzx edx, word [edi]
cmp edx, 0x77
jne 0x8586f1
mov edi, esi
jmp 0x8586ff
movzx ecx, word [ecx]
cmp ecx, 0x77
mov edi, esi
jne 0x85d9dd
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 0x858691
jmp 0x859a41
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.00854020
add esp, 0x20
mov esi, eax
test esi, esi
jne case.0x85dee9.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 0x858760
add eax, 4
mov dword [esp + 0x10], eax
jmp 0x8564f0
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 0x858790
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.00854020
add esp, 0x20
mov esi, eax
test esi, esi
je 0x8564f0
jmp case.0x85dee9.6
movzx edi, word [edx + 2]
add edx, 2
mov eax, 1
cmp edi, 0x86
je case.0x856507.134
movzx eax, di
cmp eax, 0x8b
mov eax, 1
jne case.0x856507.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 0x8589be
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 0x8588a7
mov dword [ebp + 0x9c], 2
movzx eax, word [ebx]
movzx eax, byte [eax + 0x892804]
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.00854020
add esp, 0x20
mov esi, eax
cmp esi, 0xfffffc20
je 0x8588ed
test esi, esi
jne 0x858945
mov ax, word [ebx + 2]
jmp 0x858914
movzx eax, word [ebx + 2]
lea ecx, [ebx + eax*2]
cmp dword [ebp + 0x80], ecx
jae 0x85d9dd
movzx edx, word [ebx]
cmp edx, 0x77
je 0x858914
movzx ecx, word [ecx]
cmp ecx, 0x77
jne 0x85d9dd
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 0x858881
jmp 0x858e59
cmp esi, 0xfffffc1a
jne case.0x85dee9.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 0x858871
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 0x858994
mov esi, eax
mov edi, dword [esp + 4]
or ecx, dword [esp + 0x44]
jne 0x858ea4
jmp 0x85bd7e
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 0x858a31
mov eax, dword [esp + 0x158]
mov dword [eax + 0x9c], 2
jmp 0x858a31
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 0x8589fc
movzx eax, word [edx]
movzx eax, byte [eax + 0x892804]
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.00854020
add esp, 0x20
mov esi, eax
cmp esi, 0xfffffc20
je 0x858a7e
test esi, esi
jne 0x858ac2
mov ax, word [edi + 2]
jmp 0x858aad
movzx eax, word [edi + 2]
lea ecx, [edi + eax*2]
cmp dword [ebp + 0x80], ecx
jae 0x85d9dd
mov esi, edi
movzx edx, word [edi]
cmp edx, 0x77
jne 0x858a9f
mov edi, esi
jmp 0x858aad
movzx ecx, word [ecx]
cmp ecx, 0x77
mov edi, esi
jne 0x85d9dd
movzx eax, ax
lea ecx, [edi + eax*2]
movzx eax, word [edi + eax*2]
cmp eax, 0x77
je 0x858a10
jmp 0x858b28
cmp esi, 0xfffffc1a
jne case.0x85dee9.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 0x8589ee
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 0x858b0a
mov dword [esp + 4], 1
mov ecx, edx
mov eax, dword [esp + 4]
or eax, dword [esp + 0x44]
je 0x85bd7e
add ecx, 4
mov dword [esp + 0x10], ecx
mov dword [esp + 4], ebx
jmp 0x8564f0
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 + 0x892804]
ja 0x85cdd2
movzx ecx, word [edx + 2]
add ecx, eax
lea eax, [edx + ecx*2]
mov dword [esp + 0x10], eax
jmp 0x8564f0
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 0x858f98
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 0x858c04
cmp ebx, esi
jge 0x858bfd
lea edi, [eax + esi*4]
lea ecx, [eax + ebx*4]
lea edx, [eax + ebx*4 + 4]
cmp edx, edi
ja 0x858bdd
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 0x859b8e
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 0x858c10
jmp 0x859b8e
mov edi, dword [esp + 4]
cmp edi, eax
je 0x85ab1f
lea eax, [edi - 2]
mov ecx, dword [esp + 0x20]
cmp edi, dword [ecx]
ja 0x858c46
mov ecx, dword [esp + 0x20]
mov dword [ecx], eax
cmp dword [esi + 0x58], 0
movzx eax, word [eax]
je 0x85ab05
mov ebx, edx
mov cl, 1
cmp eax, 0x5f
je 0x85ab23
mov ecx, eax
shr ecx, 7
movzx ecx, byte [ecx + 0x894a84]
shl ecx, 7
and eax, 0x7f
or eax, ecx
movzx eax, word [eax + eax + 0x896c84]
movzx eax, byte [eax*8 + 0x893405]
mov eax, dword [eax*4 + 0x892918]
or eax, 2
cmp eax, 3
sete cl
jmp 0x85ab23
xor ebx, ebx
mov edx, eax
jmp 0x8597f1
movzx eax, word [edx + 2]
movzx ecx, word [ebx]
cmp ax, cx
je 0x85eef9
mov esi, edx
movzx edx, di
cmp edx, 0x20
jne 0x858cd9
cmp eax, 0xff
mov edx, dword [esp + 0x158]
ja 0x858cd1
mov edx, dword [edx + 0x40]
movzx eax, byte [edx + eax]
cmp eax, ecx
je 0x85eef9
add ebx, 2
mov dword [esp + 4], ebx
jmp 0x859d86
cmp dword [esp + 0x30], 0
je 0x85a073
mov esi, 0xfffffff2
mov ecx, dword [esp + 0x44]
lea ecx, [ecx - 6]
movzx ecx, cx
cmp ecx, 0xf
ja case.0x85dee9.6
jmp dword [ecx*4 + 0x85fcac]
cmp edx, dword [esp + 0xc]
mov eax, dword [esp + 8]
mov dword [esp + 4], eax
jle 0x8564d8
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 0x8546f8
mov eax, edx
and eax, 1
mov dword [esp + 0x44], eax
mov eax, 0x3cf
bt eax, esi
jae 0x858d59
mov dword [esp + 0x38], 0x7fffffff
jmp 0x858d64
movsx eax, byte [edx + 0x892769]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 8]
lea eax, [eax + 0x24]
mov dword [esp + 0x10], eax
movsx ebp, byte [edx + 0x89275e]
jmp 0x854263
add edx, 4
mov dword [esp + 0x10], edx
movzx ecx, word [ebx]
mov edx, ecx
and edx, 0xfc00
cmp edx, 0xd800
jne 0x858db4
shl ecx, 0xa
and ecx, 0xffc00
movzx edx, word [ebx + 2]
add ebx, 4
and edx, 0x3ff
lea ecx, [ecx + edx + 0x10000]
jmp 0x858db7
add ebx, 2
movzx edx, di
cmp edx, 0x1f
mov dword [esp + 4], ebx
jne 0x858dd2
xor esi, esi
cmp eax, ecx
jne 0x8564f0
jmp case.0x85dee9.6
cmp eax, 0x80
mov edx, dword [esp + 0x158]
jb 0x859edd
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 + 0x894a84]
shl edx, 7
mov edi, eax
sub edi, esi
add edi, edx
movzx edx, word [edi + edi + 0x896c84]
mov edx, dword [edx*8 + 0x893408]
add edx, eax
jmp 0x859ee4
lea eax, [esi + 0x3e4]
cmp eax, 4
mov edx, edi
jae 0x85bd68
movzx eax, word [edx + 2]
lea ecx, [edx + eax*2]
movzx eax, word [edx + eax*2]
cmp eax, 0x77
mov edx, ecx
je 0x858e30
cmp dword [esp + 0x10], 0
jne 0x85c5b1
add ecx, 4
mov dword [esp + 0x10], ecx
jmp 0x8564f0
mov ecx, dword [esp + 8]
test ecx, ecx
jne 0x858e9a
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 0x85bd7e
add esi, 4
mov dword [esp + 0x10], esi
mov dword [esp + 4], edi
jmp 0x8564f0
mov esi, 0xfffffff2
lea eax, [ebp - 6]
movzx eax, ax
cmp eax, 0xf
ja case.0x85dee9.6
jmp dword [eax*4 + 0x85f894]
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 0x85d862
movzx edx, word [edi]
cmp edx, 0xff
ja 0x858f06
mov esi, dword [esp + 0x3c]
mov esi, dword [esi]
test byte [esi + edx], 4
jne 0x85eef9
add edi, 2
mov dword [esp + 8], edi
inc ecx
cmp ecx, dword [esp + 0xc]
jl 0x858edf
jmp 0x857fa3
mov eax, dword [ebp + 0x80]
mov dword [esp + 0x2c], eax
mov ecx, edi
mov ax, word [ecx]
movzx eax, ax
cmp eax, 0x78
je 0x85bd7e
cmp dword [esp + 0x10], 0
jne 0x85c5b1
nop
mov eax, ecx
movzx ecx, word [eax + 2]
movzx edx, word [eax + ecx*2]
lea ecx, [eax + ecx*2]
cmp edx, 0x77
je 0x858f40
add ecx, 4
mov dword [esp + 0x10], ecx
mov eax, dword [ebp + 0x90]
mov dword [esp + 0x28], eax
jmp 0x8564f0
mov eax, dword [esp + 0x158]
cmp dword [eax + 0x4c], 0
jne 0x85bd7e
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x854181
mov ecx, dword [esp + 0x20]
cmp edi, dword [ecx]
ja 0x8546c9
jmp 0x854181
or eax, 0x10000
mov dword [edi + 0x94], eax
jmp 0x859b8e
test ax, ax
je 0x85b90d
mov eax, dword [esp + 0x24]
movzx eax, ax
cmp eax, 0x78
mov dword [esp + 0x28], ebx
je 0x858fd8
cmp eax, 0x7b
je 0x85c50c
mov ecx, dword [esp + 0x10]
cmp dword [esp + 4], ecx
jne 0x85b068
movzx eax, si
add edx, 4
cmp eax, 0x81
mov dword [esp + 0x10], edx
jne 0x8564f0
jmp 0x85c530
mov ebx, ecx
jmp 0x858ffa
mov ebx, ecx
mov edx, esi
mov ebp, edx
movzx edx, word [edx + 2]
cmp edx, 0xa
ja case.default.0x859036
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 + 0x894a84]
shl ecx, 7
mov edi, eax
sub edi, esi
add edi, ecx
movzx ecx, word [edi + edi + 0x896c84]
jmp dword [edx*4 + 0x85fed8]
cmp eax, 0x180d
jle 0x854624
lea edx, [eax - 0x2000]
cmp edx, 0x5f
ja case.default.0x859057
jmp dword [edx*4 + 0x85ff04]
add edx, 2
cmp eax, 0xff
mov dword [esp + 4], edx
ja 0x85907c
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 0x10
jne 0x85eef9
add esi, 2
mov dword [esp + 0x10], esi
jmp 0x8564f0
mov ebp, edx
cmp ebp, eax
jae 0x859159
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 + 0x894a84]
shl edx, 7
sub ecx, esi
add ecx, edx
movzx ecx, word [ecx + ecx + 0x896c84]
movzx edx, byte [ecx*8 + 0x893406]
movzx ecx, word [ebp]
cmp dword [esp + 0x30], 0
mov esi, 1
je 0x859104
mov edi, ecx
and edi, 0xfc00
cmp edi, 0xd800
jne 0x859104
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 + 0x894a84]
shl edi, 7
sub ecx, ebx
add ecx, edi
movzx ecx, word [ecx + ecx + 0x896c84]
movzx ecx, byte [ecx*8 + 0x893406]
mov edi, 1
shl edi, cl
and edi, dword [edx*4 + 0x892990]
je 0x85914b
lea ebp, [ebp + esi*2]
cmp ebp, eax
jae 0x859159
test edi, edi
mov edx, ecx
jne 0x8590c5
cmp ebp, eax
jb 0x859182
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x859182
mov ecx, dword [esp + 0x20]
cmp ebp, dword [ecx]
jbe 0x859182
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
cmp eax, 1
jg 0x85d3c8
mov dword [esp + 4], ebp
mov eax, dword [esp + 8]
add eax, 2
mov dword [esp + 0x10], eax
jmp 0x8564f0
mov ebx, edx
xor eax, eax
jmp 0x85450a
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 0x8591cb
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 0x854263
cmp dword [esp + 0x40], 0
jne 0x85eef9
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
xor ecx, ecx
cmp esi, eax
jae 0x85bc8b
lea edi, [esi + 2]
cmp dword [esp + 0x30], 0
je 0x85921e
movzx edx, word [esi]
and edx, 0xfc00
cmp edx, 0xd800
jne 0x85921e
add esi, 4
mov edi, esi
inc ecx
cmp ecx, dword [esp + 0xc]
mov dword [esp + 8], edi
mov esi, edi
jl 0x8591f6
jmp 0x857fa3
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 0x85bd85
lea esi, [edi + 2]
movzx edx, word [edi]
cmp dword [esp + 0x30], 0
je 0x859284
mov ebx, edx
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x859284
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
jmp 0x859286
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 + 0x894a84]
shl esi, 7
sub edx, ebx
add edx, esi
movzx edx, word [edx + edx + 0x896c84]
movzx edx, byte [edx*8 + 0x893405]
add dl, 0xfb
xor esi, esi
cmp dl, 4
ja 0x8592cd
movsx edx, dl
mov esi, dword [edx*4 + 0x8927e0]
cmp dword [esp + 0x40], esi
je 0x85eef9
mov dword [esp + 8], edi
inc ecx
cmp ecx, dword [esp + 0xc]
jl 0x85923c
jmp 0x857fa3
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 0x85bdc0
lea esi, [edi + 2]
movzx edx, word [edi]
cmp dword [esp + 0x30], 0
je 0x85933f
mov ebx, edx
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x85933f
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
jmp 0x859341
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 + 0x894a84]
shl esi, 7
sub edx, ebx
add edx, esi
movzx edx, word [edx + edx + 0x896c84]
movzx edx, byte [edx*8 + 0x893405]
xor ebx, ebx
mov esi, dword [esp + 0x54]
cmp dword [edx*4 + 0x892918], esi
sete bl
cmp dword [esp + 0x40], ebx
je 0x85eef9
mov dword [esp + 8], edi
inc ecx
cmp ecx, dword [esp + 0xc]
jl 0x8592f7
jmp 0x857fa3
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 0x85bdfb
lea esi, [edi + 2]
movzx edx, word [edi]
cmp dword [esp + 0x30], 0
je 0x8593f6
mov ebx, edx
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x8593f6
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
jmp 0x8593f8
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 + 0x894a84]
shl esi, 7
sub edx, ebx
add edx, esi
movzx edx, word [edx + edx + 0x896c84]
movzx edx, byte [edx*8 + 0x893405]
xor ebx, ebx
cmp dword [esp + 0x54], edx
sete bl
cmp dword [esp + 0x40], ebx
je 0x85eef9
mov dword [esp + 8], edi
inc ecx
cmp ecx, dword [esp + 0xc]
jl 0x8593ae
jmp 0x857fa3
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 0x85be36
lea esi, [edi + 2]
movzx edx, word [edi]
cmp dword [esp + 0x30], 0
je 0x8594a6
mov ebx, edx
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x8594a6
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
jmp 0x8594a8
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 + 0x894a84]
shl esi, 7
sub edx, ebx
add edx, esi
movzx edx, word [edx + edx + 0x896c84]
movzx edx, byte [edx*8 + 0x893404]
xor ebx, ebx
cmp dword [esp + 0x54], edx
sete bl
cmp dword [esp + 0x40], ebx
je 0x85eef9
mov dword [esp + 8], edi
inc ecx
cmp ecx, dword [esp + 0xc]
jl 0x85945e
jmp 0x857fa3
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 0x85be71
lea esi, [edi + 2]
movzx edx, word [edi]
cmp dword [esp + 0x30], 0
je 0x859556
mov ebx, edx
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x859556
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
jmp 0x859558
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 + 0x894a84]
shl esi, 7
sub edx, ebx
add edx, esi
movzx edx, word [edx + edx + 0x896c84]
movzx edx, byte [edx*8 + 0x893405]
mov edx, dword [edx*4 + 0x892918]
or edx, 2
xor ebx, ebx
cmp edx, 3
sete bl
cmp dword [esp + 0x40], ebx
je 0x85eef9
mov dword [esp + 8], edi
inc ecx
cmp ecx, dword [esp + 0xc]
jl 0x85950e
jmp 0x857fa3
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 0x85beac
lea esi, [edi + 2]
movzx edx, word [edi]
cmp dword [esp + 0x30], 0
je 0x85960f
mov ebx, edx
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x85960f
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
jmp 0x859611
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 + 0x894a84]
shl esi, 7
mov ebp, edx
sub ebp, ebx
add ebp, esi
movzx esi, word [ebp + ebp + 0x896c84]
movzx esi, byte [esi*8 + 0x893405]
mov esi, dword [esi*4 + 0x892918]
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 0x85eef9
mov dword [esp + 8], edi
inc ecx
cmp ecx, dword [esp + 0xc]
jl 0x8595c7
jmp 0x857fa3
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov ecx, dword [esp + 0x54]
lea ecx, [ecx*4 + 0x8932cc]
mov edx, 1
mov dword [esp + 8], esi
mov edi, dword [esp + 8]
cmp edi, eax
jae 0x85bee7
lea ebx, [edi + 2]
movzx esi, word [edi]
cmp dword [esp + 0x30], 0
je 0x8596e5
mov ebp, esi
and ebp, 0xfc00
cmp ebp, 0xd800
jne 0x8596e5
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 0x8596e9
mov dword [esp + 8], ebx
mov edi, dword [esp + 0x54]
mov ebx, dword [edi*4 + 0x8932c8]
cmp esi, ebx
jb 0x85970e
mov ebp, ecx
nop
nop
nop
nop
nop
nop
cmp esi, ebx
je 0x85971a
mov ebx, dword [ebp]
add ebp, 4
cmp esi, ebx
jae 0x859700
cmp dword [esp + 0x40], 0
jne 0x859725
jmp 0x85eef9
cmp dword [esp + 0x40], 0
jne 0x85eef9
cmp edx, dword [esp + 0xc]
lea edx, [edx + 1]
jl 0x859699
jmp 0x857fa3
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 0x85bf22
lea esi, [edi + 2]
movzx edx, word [edi]
cmp dword [esp + 0x30], 0
je 0x85978b
mov ebx, edx
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x85978b
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
jmp 0x85978d
mov edi, esi
mov bl, 1
cmp edx, 0x24
je 0x8597b8
cmp edx, 0x40
je 0x8597b8
cmp edx, 0x60
je 0x8597b8
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 0x85eef9
mov dword [esp + 8], edi
inc ecx
cmp ecx, dword [esp + 0xc]
jl 0x859743
jmp 0x857fa3
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 0x85982a
lea ecx, [eax - 0x62]
mov edx, eax
and edx, 1
mov dword [esp + 0x44], edx
mov edx, 0x3cf
bt edx, ecx
jae 0x859864
mov dword [esp + 0x38], 0x7fffffff
jmp 0x85986f
lea ecx, [ecx - 0x68]
movzx ecx, cx
cmp ecx, 2
jae 0x8598e0
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 0x85985f
mov dword [esp + 0x38], eax
add ebp, 6
jmp 0x85987d
movsx ecx, byte [eax + 0x892769]
mov dword [esp + 0x38], ecx
add ebp, 2
movsx eax, byte [eax + 0x89275e]
mov dword [esp + 8], eax
mov dword [esp + 0x10], ebp
cmp dword [esp + 0xc], 0
je 0x8564f0
jns 0x859899
cmp dword [esp + 8], 0
je 0x8564f0
cmp dword [esp + 8], 0
jle 0x859dd3
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.008600d0
add esp, 0x10
test eax, eax
js 0x85b886
lea edi, [edi + eax*2]
inc esi
cmp esi, dword [esp + 8]
jl 0x8598b1
jmp 0x859dd7
sub esp, 4
mov ecx, ebx
mov edx, esi
push dword [esp + 0x28]
push edi
push dword [esp + 0x18]
call fcn.008600d0
add esp, 0x10
test eax, eax
js 0x85da1e
lea esi, [esi + eax*2]
mov dword [esp + 4], esi
mov dword [esp + 0x10], ebp
jmp 0x8564f0
lea ecx, [ebp - 4]
mov ebx, edx
mov eax, dword [esp + 0x20]
cmp ecx, dword [eax]
jae 0x859923
mov eax, dword [esp + 0x20]
mov dword [eax], ecx
movzx eax, word [ecx]
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x85994f
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 0x859f11
mov cl, 1
cmp eax, 0x5f
je 0x854507
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 + 0x894a84]
shl ecx, 7
sub eax, edx
add eax, ecx
movzx eax, word [eax + eax + 0x896c84]
movzx eax, byte [eax*8 + 0x893405]
mov eax, dword [eax*4 + 0x892918]
or eax, 2
cmp eax, 3
sete cl
jmp 0x854507
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x8599d1
mov ecx, dword [esp + 0x20]
cmp ebp, dword [ecx]
jbe 0x8599d1
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
cmp eax, 1
jg 0x85d3c8
mov dword [esp + 4], ebp
cmp dword [esp + 0x48], 0
jne 0x8564f0
jmp 0x85af38
mov edx, eax
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85467d
mov ecx, dword [esp + 0x20]
cmp edx, dword [ecx]
jbe 0x85467d
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
cmp eax, 1
mov eax, edx
jle 0x85467f
jmp 0x85d3c8
mov eax, esi
jmp 0x85467f
cmp esi, 1
jne case.0x85dee9.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 0x859a54
cmp eax, 0x77
jne 0x85bd7e
movzx edx, word [ecx + 2]
movzx eax, word [ecx + edx*2]
lea ecx, [ecx + edx*2]
cmp eax, 0x77
je 0x859a54
mov ebx, dword [ebp + 0x84]
mov esi, dword [ebp + 0x90]
movzx eax, ax
cmp eax, 0x78
mov dword [esp + 0x28], esi
je 0x858b36
cmp ebx, dword [esp + 4]
je 0x858b36
jmp 0x85b3b0
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 0x859ac2
movzx eax, word [edx]
cmp ax, word [esi + 0x34]
jne 0x859ac2
cmp ecx, 1
je 0x85bd7e
movzx eax, word [edx + 2]
cmp ax, word [esi + 0x36]
je 0x85bd7e
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
mov edx, edi
je case.0x856507.13
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx]
add ecx, 0xfffffffe
cmp dword [esp + 4], ecx
jne case.0x856507.13
mov ecx, dword [esp + 0x158]
cmp dword [ecx + 0x18], 0
jne case.0x856507.13
mov ecx, dword [esp + 0x4c]
cmp dword [ecx], 2
jne case.0x856507.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.0x856507.13
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
cmp eax, 1
jg 0x85ca57
mov esi, edx
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
mov edx, dword [esp + 4]
cmp edx, ecx
jae 0x85c63b
lea eax, [edx + 2]
cmp dword [esp + 0x30], 0
je 0x859b55
cmp eax, ecx
jae 0x859b55
movzx ecx, word [edx + 2]
and ecx, 0xfc00
cmp ecx, 0xdc00
jne 0x859b55
add edx, 4
mov eax, edx
add esi, 2
mov dword [esp + 0x10], esi
mov dword [esp + 4], eax
jmp 0x8564f0
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov ecx, dword [esp + 4]
sub eax, ecx
cmp eax, 1
jle 0x85db6e
movzx eax, word [edx + 2]
cmp ax, word [ecx]
jne 0x85eef9
add ecx, 2
mov dword [esp + 4], ecx
add edx, 4
mov dword [esp + 0x10], edx
jmp 0x8564f0
xor eax, eax
mov ebx, dword [esp + 4]
mov ecx, dword [esi + 0xa8]
test ecx, ecx
je 0x859bc0
mov edx, ecx
cmp eax, dword [edx + 4]
jne 0x859bba
cmp ebx, dword [edx + 0x14]
je 0x85bcc2
mov edx, dword [edx]
test edx, edx
jne 0x859bac
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 0x859bf9
lea eax, [esp + 0xc4]
mov dword [esp + 0x60], eax
jmp 0x859c19
shl ecx, 2
sub esp, 0xc
push ecx
call dword [0x891040]
add esp, 0x10
mov dword [esp + 0x60], eax
test eax, eax
je 0x85db64
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 0x859c55
mov eax, dword [esp + 0x158]
mov dword [eax + 0x9c], 2
movzx eax, cx
movzx eax, byte [eax + 0x892804]
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.00854020
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 0x85aa83
cmp esi, 0xfffffc19
je 0x85aa83
lea ecx, [esi + 0x3e4]
cmp ecx, 4
jbe 0x85bccc
test esi, esi
jne 0x85bce5
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 0x859c3a
jmp 0x85bd0a
add eax, eax
mov edi, dword [esp + 4]
sub edi, eax
mov eax, dword [esp + 0x158]
cmp edi, dword [eax + 0x78]
jb 0x85bd7e
mov eax, dword [esp + 0x20]
cmp edi, dword [eax]
jae 0x859d3e
mov eax, dword [esp + 0x20]
mov dword [eax], edi
mov dword [esp + 4], edi
add ebx, 4
mov dword [esp + 0x10], ebx
jmp 0x8564f0
mov esi, edx
cmp eax, 0xff
mov edx, dword [esp + 0x158]
ja 0x859d65
mov ecx, dword [edx + 0x3c]
movzx eax, byte [ecx + eax]
movzx ecx, word [edi]
cmp ecx, 0xff
ja 0x859d77
mov edx, dword [edx + 0x3c]
movzx ecx, byte [edx + ecx]
cmp eax, ecx
jne 0x85eef9
add edi, 2
mov dword [esp + 4], edi
add esi, 4
mov dword [esp + 0x10], esi
jmp 0x8564f0
mov edx, eax
and edx, 1
mov dword [esp + 8], edx
mov edx, 0x3cf
bt edx, ecx
jae 0x859daf
mov dword [esp + 0xc], 0x7fffffff
jmp 0x859dba
movsx ecx, byte [eax + 0x892769]
mov dword [esp + 0xc], ecx
mov edx, esi
add edx, 2
movsx ebx, byte [eax + 0x89275e]
test ebx, ebx
jg 0x8547f6
jmp 0x85a36a
mov edi, dword [esp + 4]
mov dword [esp + 4], edi
mov eax, dword [esp + 8]
cmp eax, dword [esp + 0x38]
je 0x8564f0
jmp 0x85d540
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x859e13
mov ecx, dword [esp + 0x20]
cmp edx, dword [ecx]
jbe 0x859e13
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
cmp eax, 1
jg 0x85d3c8
mov dword [esp + 4], edx
cmp dword [esp + 0x44], 0
jne 0x8564f0
jmp 0x85afb1
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x859e4c
mov ecx, dword [esp + 0x20]
cmp edx, dword [ecx]
jbe 0x859e4c
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
cmp eax, 1
jg 0x85d3c8
mov dword [esp + 4], edx
cmp dword [esp + 0x44], 0
jne 0x8564f0
jmp 0x85b00b
mov ebx, edx
mov edx, 1
cmp eax, 0x7f
ja 0x859e9d
movzx ecx, word [edi]
cmp ecx, 0xff
mov edx, dword [esi + 0x3c]
movzx eax, byte [edx + eax]
ja 0x859e82
movzx ecx, byte [edx + ecx]
cmp ecx, eax
jne 0x85eef9
add ebx, 4
add edi, 2
mov dword [esp + 4], edi
mov dword [esp + 0x10], ebx
jmp 0x8564f0
add ebx, 2
movzx ecx, word [edi]
mov esi, ecx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x85a373
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 0x85a37a
mov edx, dword [edx + 0x40]
movzx edx, byte [edx + eax]
xor esi, esi
cmp eax, ecx
je case.0x85dee9.6
cmp edx, ecx
jne 0x8564f0
jmp case.0x85dee9.6
mov edi, esi
mov dword [esp + 4], edi
cmp dword [esp + 0x44], 0
jne 0x8564f0
jmp 0x85ad95
cmp eax, 0xff
ja 0x854505
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
mov cl, byte [ecx + eax]
and cl, 0x10
shr cl, 4
jmp 0x854507
movzx eax, word [ebp + 4]
test eax, eax
je case.0x8573fc.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 0x859f81
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 0x85504d
dec eax
add edx, ecx
cmp eax, 1
jg 0x859f57
jmp 0x85504d
mov eax, dword [esp + 0x158]
mov eax, dword [eax + 0xa8]
test eax, eax
je case.0x8573fc.4
movzx ecx, word [ebp + 2]
cmp ecx, 0xffff
je 0x855048
cmp dword [eax + 4], ecx
sete al
movzx esi, al
test esi, esi
je case.0x8573fc.4
jmp 0x85ae14
mov eax, dword [esp + 0x158]
mov esi, dword [eax + 0xa8]
test esi, esi
je case.0x8573fc.4
movzx eax, word [ebp + 4]
test eax, eax
je case.0x8573fc.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 0x85ae14
dec eax
add edx, ecx
cmp eax, 1
jg 0x85a008
jmp case.0x8573fc.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.00854020
add esp, 0x20
mov esi, eax
cmp esi, 0xfffffc20
je case.0x8573fc.4
test esi, esi
je case.0x8573fc.4
jmp 0x85b48c
mov esi, 0xfffffff2
mov ecx, dword [esp + 0x44]
lea ecx, [ecx - 6]
movzx ecx, cx
cmp ecx, 0xf
ja case.0x85dee9.6
jmp dword [ecx*4 + 0x85fcec]
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 0x856489
jmp 0x8564ae
mov ecx, dword [esp + 0x4c]
mov ecx, dword [ecx]
lea edx, [ecx + ecx]
mov esi, eax
sub esi, edx
cmp ebx, esi
ja 0x85c7ae
movzx edx, word [ebx]
cmp dx, word [edi + 0x34]
mov edx, ebp
jne 0x85c7ae
cmp ecx, 1
jne 0x854693
mov ecx, 1
jmp 0x8546a3
mov ebx, dword [esp + 0x158]
xor esi, esi
cmp edx, 0xc
jle 0x85a129
lea edi, [edx - 0x2028]
cmp edi, 2
jb 0x85a135
cmp edx, 0x85
je 0x85a135
cmp edx, 0xd
mov edx, ebp
jne case.0x85dee9.6
cmp eax, ecx
jae 0x854993
movzx ecx, word [eax]
cmp ecx, 0xa
jne 0x85a141
add eax, 2
jmp 0x85a141
lea ecx, [edx - 0xb]
cmp ecx, 2
jae 0x8544f5
cmp dword [ebx + 0x6c], 0
mov edx, ebp
jne 0x85eef9
add edx, 2
mov dword [esp + 0x10], edx
mov dword [esp + 4], eax
jmp 0x8564f0
mov edi, ecx
jmp 0x85a159
mov edi, ecx
mov edx, esi
xor esi, esi
cmp eax, 0x1fff
mov dword [esp + 4], edi
jle 0x85a184
cmp eax, 0x202e
jg 0x85a281
add eax, 0xffffe000
cmp eax, 0xb
jae 0x854181
jmp case.0x85dee9.6
cmp eax, 0x9f
jle 0x85a2a7
cmp eax, 0xa0
je case.0x85dee9.6
cmp eax, 0x1680
je case.0x85dee9.6
cmp eax, 0x180e
jne 0x854181
jmp case.0x85dee9.6
mov edi, ecx
jmp 0x85a1bd
mov edi, ecx
mov edx, esi
xor esi, esi
cmp eax, 0x1fff
mov dword [esp + 4], edi
jle 0x85a1e8
cmp eax, 0x202e
jg 0x854215
add eax, 0xffffe000
cmp eax, 0xb
jb 0x854181
jmp case.0x85dee9.6
cmp eax, 0x9f
jle 0x8546e1
cmp eax, 0xa0
je 0x854181
cmp eax, 0x1680
je 0x854181
cmp eax, 0x180e
je 0x854181
jmp case.0x85dee9.6
mov edi, ecx
jmp 0x85a221
mov edi, ecx
mov edx, esi
xor esi, esi
lea ecx, [eax - 0xa]
cmp ecx, 4
jb case.0x85dee9.6
mov dword [esp + 4], edi
lea ecx, [eax - 0x2028]
cmp ecx, 2
jb case.0x85dee9.6
cmp eax, 0x85
jne 0x854181
jmp case.0x85dee9.6
mov esi, ecx
jmp 0x85a25a
mov esi, ecx
mov edx, edi
lea ecx, [eax - 0xa]
cmp ecx, 4
jb 0x85a278
lea ecx, [eax - 0x2028]
cmp ecx, 2
jb 0x85a278
cmp eax, 0x85
jne 0x85eef9
mov dword [esp + 4], esi
jmp 0x854181
cmp eax, 0x202f
je case.0x85dee9.6
cmp eax, 0x205f
je case.0x85dee9.6
cmp eax, 0x3000
jne 0x854181
jmp case.0x85dee9.6
cmp eax, 9
je case.0x85dee9.6
cmp eax, 0x20
jne 0x854181
jmp case.0x85dee9.6
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85a2e3
mov ecx, dword [esp + 0x20]
cmp edx, dword [ecx]
jbe 0x85a2e3
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
cmp eax, 1
jg 0x85d3c8
mov dword [esp + 4], edx
cmp dword [esp + 0x48], 0
jne 0x8564f0
jmp 0x85b121
mov edx, ecx
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85494b
mov ecx, dword [esp + 0x20]
cmp edx, dword [ecx]
jbe 0x85494b
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
cmp eax, 1
mov ecx, edx
jle 0x85494d
jmp 0x85d3c8
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 0x85a357
mov dword [esp + 0xc], eax
xor eax, eax
mov al, cl
mov dword [esp + 8], eax
add edx, 6
test ebx, ebx
jg 0x8547f6
mov dword [esp + 0x10], edx
jmp 0x854872
add edi, 2
mov dword [esp + 4], edi
lea edx, [ebx + edx*2]
mov dword [esp + 0x10], edx
cmp eax, ecx
je 0x8564f0
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 + 0x894a84]
shl edx, 7
mov edi, eax
sub edi, esi
add edi, edx
movzx edx, word [edi + edi + 0x896c84]
add eax, dword [edx*8 + 0x893408]
xor esi, esi
cmp ecx, eax
je 0x8564f0
jmp case.0x85dee9.6
mov ebx, edx
mov ecx, dword [esp + 0x4c]
mov ecx, dword [ecx]
lea eax, [eax + ecx*2]
cmp edi, eax
jb 0x85bd7e
lea eax, [ecx + ecx]
mov edx, edi
sub edx, eax
movzx eax, word [edx]
cmp ax, word [esi + 0x34]
jne 0x85bd7e
cmp ecx, 1
mov edx, ebx
je 0x854181
neg ecx
movzx eax, word [edi + ecx*2 + 2]
cmp ax, word [esi + 0x36]
je 0x854181
jmp 0x85bd7e
cmp dword [esp + 0x24], ebx
mov ebp, edx
jle 0x85649e
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov ebp, edx
cmp ebp, eax
jae 0x854961
cmp dword [esp + 0x30], 0
je 0x85a44f
movzx edx, word [ebp]
and edx, 0xfc00
xor ecx, ecx
cmp edx, 0xd800
sete cl
inc ecx
jmp 0x85a454
mov ecx, 1
mov edx, dword [esp + 0x24]
cmp dword [esp + 0x40], 0
jne 0x85649e
lea ebp, [ebp + ecx*2]
inc ebx
cmp ebx, edx
jl 0x85a428
jmp 0x85649e
cmp dword [esp + 0x24], ebx
mov ebp, edx
jle 0x85649e
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov ebp, edx
cmp ebp, eax
jae 0x854961
movzx edx, word [ebp]
cmp dword [esp + 0x30], 0
mov ecx, 1
je 0x85a4cc
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x85a4cc
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 + 0x894a84]
shl esi, 7
sub edx, edi
add edx, esi
movzx edx, word [edx + edx + 0x896c84]
movzx edx, byte [edx*8 + 0x893405]
add dl, 0xfb
xor esi, esi
cmp dl, 4
ja 0x85a513
movsx edx, dl
mov esi, dword [edx*4 + 0x8927e0]
cmp dword [esp + 0x40], esi
je 0x85649e
inc ebx
lea ebp, [ebp + ecx*2]
cmp ebx, dword [esp + 0x24]
jl 0x85a485
jmp 0x85649e
cmp dword [esp + 0x24], ebx
mov ebp, edx
jle 0x85649e
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov dword [esp + 4], eax
mov ebp, edx
cmp ebp, dword [esp + 4]
jae 0x854961
mov eax, ebx
movzx ecx, word [ebp]
cmp dword [esp + 0x30], 0
mov edx, 1
je 0x85a594
mov esi, ecx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x85a594
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 + 0x894a84]
shl esi, 7
sub ecx, edi
add ecx, esi
movzx ecx, word [ecx + ecx + 0x896c84]
movzx ecx, byte [ecx*8 + 0x893405]
xor ebx, ebx
mov esi, dword [esp + 0x54]
cmp dword [ecx*4 + 0x892918], esi
sete bl
cmp dword [esp + 0x40], ebx
je 0x85649e
lea ebp, [ebp + edx*2]
mov ebx, eax
inc ebx
cmp ebx, dword [esp + 0x24]
jl 0x85a549
jmp 0x85649e
cmp dword [esp + 0x24], ebx
mov ebp, edx
jle 0x85649e
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov dword [esp + 4], eax
mov ebp, edx
cmp ebp, dword [esp + 4]
jae 0x854961
mov eax, ebx
movzx ecx, word [ebp]
cmp dword [esp + 0x30], 0
mov edx, 1
je 0x85a65a
mov esi, ecx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x85a65a
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 + 0x894a84]
shl esi, 7
sub ecx, edi
add ecx, esi
movzx ecx, word [ecx + ecx + 0x896c84]
movzx ecx, byte [ecx*8 + 0x893405]
xor ebx, ebx
cmp dword [esp + 0x54], ecx
sete bl
cmp dword [esp + 0x40], ebx
je 0x85649e
lea ebp, [ebp + edx*2]
mov ebx, eax
inc ebx
cmp ebx, dword [esp + 0x24]
jl 0x85a60f
jmp 0x85649e
cmp dword [esp + 0x24], ebx
mov ebp, edx
jle 0x85649e
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov dword [esp + 4], eax
mov ebp, edx
cmp ebp, dword [esp + 4]
jae 0x854961
mov eax, ebx
movzx ecx, word [ebp]
cmp dword [esp + 0x30], 0
mov edx, 1
je 0x85a719
mov esi, ecx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x85a719
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 + 0x894a84]
shl esi, 7
sub ecx, edi
add ecx, esi
movzx ecx, word [ecx + ecx + 0x896c84]
movzx ecx, byte [ecx*8 + 0x893404]
xor ebx, ebx
cmp dword [esp + 0x54], ecx
sete bl
cmp dword [esp + 0x40], ebx
je 0x85649e
lea ebp, [ebp + edx*2]
mov ebx, eax
inc ebx
cmp ebx, dword [esp + 0x24]
jl 0x85a6ce
jmp 0x85649e
cmp dword [esp + 0x24], ebx
mov ebp, edx
jle 0x85649e
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov dword [esp + 4], eax
mov ebp, edx
cmp ebp, dword [esp + 4]
jae 0x854961
mov eax, ebx
movzx edx, word [ebp]
cmp dword [esp + 0x30], 0
mov ecx, 1
je 0x85a7d8
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x85a7d8
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 + 0x894a84]
shl esi, 7
sub edx, edi
add edx, esi
movzx edx, word [edx + edx + 0x896c84]
movzx edx, byte [edx*8 + 0x893405]
mov edx, dword [edx*4 + 0x892918]
or edx, 2
xor ebx, ebx
cmp edx, 3
sete bl
cmp dword [esp + 0x40], ebx
je 0x85649e
lea ebp, [ebp + ecx*2]
mov ebx, eax
inc ebx
cmp ebx, dword [esp + 0x24]
jl 0x85a78d
jmp 0x85649e
cmp dword [esp + 0x24], ebx
mov ebp, edx
jle 0x85649e
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov dword [esp + 4], eax
mov ebp, edx
cmp ebp, dword [esp + 4]
jae 0x854961
mov eax, ebx
movzx ecx, word [ebp]
cmp dword [esp + 0x30], 0
mov edx, 1
je 0x85a8a0
mov esi, ecx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x85a8a0
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 + 0x894a84]
shl esi, 7
mov ebx, ecx
sub ebx, edi
add ebx, esi
movzx esi, word [ebx + ebx + 0x896c84]
movzx esi, byte [esi*8 + 0x893405]
mov esi, dword [esi*4 + 0x892918]
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 0x85649e
lea ebp, [ebp + edx*2]
mov ebx, eax
inc ebx
cmp ebx, dword [esp + 0x24]
jl 0x85a855
jmp 0x85649e
cmp dword [esp + 0x24], ebx
mov ebp, edx
jle 0x85649e
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov dword [esp + 4], eax
mov ecx, dword [esp + 0x54]
lea eax, [ecx*4 + 0x8932cc]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xc]
mov ebp, edx
cmp ebp, dword [esp + 4]
jae 0x854961
movzx edx, word [ebp]
cmp dword [esp + 0x30], 0
mov esi, 1
je 0x85a988
mov edi, edx
and edi, 0xfc00
cmp edi, 0xd800
jne 0x85a988
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 0x85a98a
mov ecx, ebp
mov edi, dword [esp + 0x54]
mov ebx, dword [edi*4 + 0x8932c8]
cmp edx, ebx
jb 0x85a9ab
mov ebp, dword [esp + 0x38]
cmp edx, ebx
je 0x85a9b7
mov ebx, dword [ebp]
add ebp, 4
cmp edx, ebx
jae 0x85a99d
cmp dword [esp + 0x40], 0
jne 0x85a9c2
jmp 0x85649c
cmp dword [esp + 0x40], 0
jne 0x85649c
mov ebp, ecx
lea ebp, [ebp + esi*2]
inc eax
cmp eax, dword [esp + 0x24]
jl 0x85a93b
jmp 0x85649e
cmp dword [esp + 0x24], ebx
mov ebp, edx
jle 0x85649e
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov ebp, edx
cmp ebp, eax
jae 0x854961
mov edi, ebx
movzx edx, word [ebp]
cmp dword [esp + 0x30], 0
mov ecx, 1
je 0x85aa35
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x85aa35
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 0x85aa60
cmp edx, 0x40
je 0x85aa60
cmp edx, 0x60
je 0x85aa60
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 0x85649e
mov ebx, edi
inc ebx
lea ebp, [ebp + ecx*2]
cmp ebx, dword [esp + 0x24]
jl 0x85a9ec
jmp 0x85649e
mov eax, dword [esp + 0x60]
lea ecx, [esp + 0xc4]
cmp eax, ecx
je 0x85aa9f
sub esp, 0xc
push eax
call dword [0x891044]
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 0x8564f0
mov ecx, dword [esp + 0x4c]
mov ecx, dword [ecx]
lea edx, [ecx + ecx]
sub eax, edx
cmp edi, eax
mov edx, ebx
ja 0x85ced0
movzx eax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x85ced0
cmp ecx, 1
je 0x854181
movzx eax, word [edi + 2]
cmp ax, word [esi + 0x36]
je 0x854181
jmp 0x85ced0
cmp eax, 0xff
ja 0x85ab1f
mov ebx, edx
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
mov cl, byte [ecx + eax]
and cl, 0x10
shr cl, 4
jmp 0x85ab23
mov ebx, edx
xor ecx, ecx
movzx eax, cl
mov ecx, dword [esp + 0x14]
cmp edi, dword [ecx]
jae 0x85ab5f
cmp dword [esi + 0x58], 0
movzx edx, word [edi]
je 0x8545f9
mov cl, 1
cmp edx, 0x5f
je 0x8545c1
mov ecx, edx
shr ecx, 7
movzx ecx, byte [ecx + 0x894a84]
shl ecx, 7
and edx, 0x7f
or edx, ecx
jmp 0x85458a
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx]
test ecx, ecx
je 0x8545bf
mov edx, dword [esp + 0x20]
cmp edi, dword [edx]
ja 0x8545ac
jmp 0x8545bf
movzx eax, byte [ecx*8 + 0x893405]
cmp eax, 9
ja 0x85ab99
mov ecx, 0x320
bt ecx, eax
jb case.0x859036.0
movzx eax, word [esp + 0x24]
cmp eax, 0xf
je 0x85466d
jmp 0x85eef9
movzx eax, word [ebp + 4]
movzx ecx, byte [ecx*8 + 0x893405]
cmp dword [ecx*4 + 0x892918], eax
jmp 0x85abdd
movzx eax, word [ebp + 4]
movzx ecx, byte [ecx*8 + 0x893405]
jmp 0x85abdb
movzx eax, word [ebp + 4]
movzx ecx, byte [ecx*8 + 0x893404]
cmp eax, ecx
setne al
movzx ecx, word [esp + 0x24]
cmp ecx, 0x10
jmp 0x85ac2a
movzx eax, byte [ecx*8 + 0x893405]
mov eax, dword [eax*4 + 0x892918]
or eax, 2
cmp eax, 3
jmp 0x85ac1f
movzx ecx, byte [ecx*8 + 0x893405]
mov ecx, dword [ecx*4 + 0x892918]
or ecx, 2
cmp ecx, 3
je case.0x859036.0
cmp eax, 0x5f
sete al
movzx ecx, word [esp + 0x24]
cmp ecx, 0xf
sete cl
xor cl, al
jne 0x85466d
jmp 0x85eef9
movzx edx, word [ebp + 4]
mov ecx, dword [edx*4 + 0x8932c8]
cmp eax, ecx
jb 0x85411b
lea edx, [edx*4 + 0x8932cc]
cmp eax, ecx
je 0x85414e
mov ecx, dword [edx]
add edx, 4
cmp eax, ecx
jae 0x85ac54
jmp 0x85411b
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 0x85d89d
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 0x85acdc
cmp dword [ebp + 0x70], 0
jne 0x85ace6
movzx eax, word [edx + 2]
movzx eax, word [edx + eax*2]
cmp eax, 0x77
je 0x85ace6
jmp 0x85adfe
lea edx, [edx + eax*2]
mov eax, dword [esp + 0x30]
mov dword [ebp + 0x94], eax
mov di, 0x77
cmp byte [esp + 0x10], 0
je 0x85acac
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 + 0x892804]
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.00854020
add esp, 0x20
mov esi, eax
cmp esi, 0xfffffc20
je 0x85ad44
test esi, esi
jne 0x85b823
mov edx, edi
mov ax, word [edx + 2]
jmp 0x85ad73
movzx eax, word [edi + 2]
lea ecx, [edi + eax*2]
cmp dword [ebp + 0x80], ecx
jae 0x85d9dd
mov esi, edi
movzx edx, word [edi]
cmp edx, 0x77
jne 0x85ad65
mov edx, esi
jmp 0x85ad73
movzx ecx, word [ecx]
cmp ecx, 0x77
mov edx, esi
jne 0x85d9dd
movzx eax, ax
mov ebp, dword [esp + 0x158]
mov dword [ebp + 0xb0], ebx
movzx ecx, word [edx + eax*2]
cmp ecx, 0x77
je 0x85acc4
jmp 0x85bd7e
mov edi, dword [esp + 4]
cmp edi, ebx
jbe 0x85afa6
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.00854020
add esp, 0x20
mov esi, eax
test esi, esi
jne case.0x85dee9.6
movzx eax, word [edi - 2]
and eax, 0xfc00
cmp eax, 0xdc00
je 0x85adee
add edi, 0xfffffffe
jmp 0x85adf1
add edi, 0xfffffffc
mov edx, dword [esp + 0x10]
cmp edi, ebx
ja 0x85adac
jmp 0x85b004
movzx eax, di
movzx eax, byte [eax + 0x892804]
lea edx, [edx + eax*2]
mov ebx, dword [esp + 4]
jmp 0x85b385
movzx eax, word [esp + 0x10]
mov cl, byte [eax + 0x892804]
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 0x85efb6
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 4]
jmp 0x85b37e
mov ebx, dword [esp + 4]
cmp ebx, dword [esp + 8]
jbe 0x85b37a
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.00854020
add esp, 0x20
mov esi, eax
test esi, esi
jne case.0x85dee9.6
lea eax, [ebx - 2]
cmp dword [esp + 0x30], 0
je 0x85aeb4
movzx ecx, word [ebx - 2]
and ecx, 0xfc00
cmp ecx, 0xdc00
mov edx, dword [esp + 0x10]
je 0x85aebc
mov ebx, eax
jmp 0x85aebf
mov ebx, eax
mov edx, dword [esp + 0x10]
jmp 0x85aebf
add ebx, 0xfffffffc
cmp ebx, dword [esp + 8]
ja 0x85ae66
jmp 0x85b385
mov ebx, dword [esp + 4]
cmp ebx, dword [esp + 8]
jbe 0x85b37a
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.00854020
add esp, 0x20
mov esi, eax
test esi, esi
jne case.0x85dee9.6
movzx eax, word [ebx - 2]
and eax, 0xfc00
cmp eax, 0xdc00
je 0x85af26
add ebx, 0xfffffffe
jmp 0x85af29
add ebx, 0xfffffffc
mov edx, dword [esp + 0x10]
cmp ebx, dword [esp + 8]
ja 0x85aee7
jmp 0x85b385
mov ebx, dword [esp + 4]
cmp ebx, dword [esp + 8]
jbe 0x85b37a
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.00854020
add esp, 0x20
mov esi, eax
test esi, esi
jne case.0x85dee9.6
movzx eax, word [ebx - 2]
and eax, 0xfc00
cmp eax, 0xdc00
je 0x85af94
add ebx, 0xfffffffe
jmp 0x85af97
add ebx, 0xfffffffc
mov edx, dword [esp + 0x10]
cmp ebx, dword [esp + 8]
ja 0x85af55
jmp 0x85b385
mov edx, dword [esp + 0x10]
mov ebx, edi
jmp 0x85b37e
mov eax, dword [esp + 4]
mov ebx, edi
cmp eax, ebx
je 0x85b37a
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.00854020
add esp, 0x20
mov esi, eax
test esi, esi
jne case.0x85dee9.6
add ebx, 0xfffffffe
cmp edi, ebx
mov edx, dword [esp + 0x10]
jne 0x85afcc
mov ebx, edi
jmp 0x85b385
mov eax, dword [esp + 4]
mov ebx, dword [esp + 8]
cmp eax, ebx
je 0x85b37a
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.00854020
add esp, 0x20
mov esi, eax
test esi, esi
jne case.0x85dee9.6
add ebx, 0xfffffffe
cmp dword [esp + 8], ebx
mov edx, dword [esp + 0x10]
jne 0x85b02c
jmp 0x85b179
cmp eax, 0x7a
jne 0x85b182
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.00854020
add esp, 0x20
mov esi, eax
test esi, esi
jne case.0x85dee9.6
movzx eax, word [edi]
cmp eax, 0x81
je 0x85f2b9
movzx eax, ax
cmp eax, 0x88
jae 0x85f337
mov edx, edi
mov ebx, dword [esp + 4]
jmp 0x85b385
mov ebx, dword [esp + 8]
cmp dword [esp + 4], ebx
je 0x85b37a
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.00854020
add esp, 0x20
mov esi, eax
test esi, esi
jne case.0x85dee9.6
add ebx, 0xfffffffe
cmp dword [esp + 8], ebx
mov edx, dword [esp + 0x10]
jne 0x85b0e8
jmp 0x85b179
mov ebx, dword [esp + 8]
cmp dword [esp + 4], ebx
je 0x85b37a
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.00854020
add esp, 0x20
mov esi, eax
test esi, esi
jne case.0x85dee9.6
add ebx, 0xfffffffe
cmp dword [esp + 8], ebx
mov edx, dword [esp + 0x10]
jne 0x85b142
mov ebx, dword [esp + 8]
jmp 0x85b385
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.00854020
mov edx, esi
add esp, 0x20
mov esi, eax
test esi, esi
je 0x85b1c8
cmp esi, 0xfffffc1b
jne case.0x85dee9.6
cmp dword [ebp + 0xb8], edi
jne 0x85f5c4
movzx eax, word [edi]
add edx, 4
cmp eax, 0x81
je 0x85f2da
mov ebx, dword [esp + 4]
jmp 0x85b385
mov ebx, dword [esp + 4]
cmp ebx, dword [esp + 8]
jbe 0x85b37a
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.00854020
add esp, 0x20
mov esi, eax
test esi, esi
jne case.0x85dee9.6
lea ebx, [edi - 2]
cmp dword [esp + 0x30], 0
movzx ecx, word [edi - 2]
je 0x85b27b
and ecx, 0xfc00
cmp ecx, 0xdc00
jne 0x85b24e
add edi, 0xfffffffc
mov ebx, edi
movzx ecx, word [ebx]
mov edx, ecx
and edx, 0xfc00
cmp edx, 0xd800
jne 0x85b27b
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 0x85b37a
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 + 0x894a84]
shl edx, 7
sub ecx, esi
add ecx, edx
movzx ecx, word [ecx + ecx + 0x896c84]
movzx ecx, byte [ecx*8 + 0x893406]
lea eax, [ebx - 2]
cmp dword [esp + 0x30], 0
movzx edx, word [ebx - 2]
je 0x85b306
and edx, 0xfc00
cmp edx, 0xdc00
jne 0x85b2d9
lea eax, [ebx - 4]
movzx edx, word [eax]
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x85b306
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 + 0x894a84]
shl esi, 7
sub edx, edi
add edx, esi
movzx edx, word [edx + edx + 0x896c84]
movzx edx, byte [edx*8 + 0x893406]
mov esi, dword [edx*4 + 0x892990]
bt esi, ecx
jae 0x85b358
cmp eax, dword [esp + 8]
mov ecx, edx
mov ebx, eax
ja 0x85b2ba
jmp 0x85b481
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 0x85b1ff
jmp 0x85b1d9
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 0x8540c7
jmp case.0x85dee9.6
mov edi, ecx
cmp eax, 0x7a
jne 0x85b4ed
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.00854020
add esp, 0x20
mov esi, eax
test esi, esi
mov edx, dword [esp + 8]
je 0x85b385
jmp case.0x85dee9.6
mov eax, dword [esp + 8]
cmp dword [esp + 4], eax
jbe 0x85ae3c
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.00854020
add esp, 0x20
mov esi, eax
test esi, esi
jne case.0x85dee9.6
movzx eax, word [ebx - 2]
and eax, 0xfc00
cmp eax, 0xdc00
je 0x85b44e
add ebx, 0xfffffffe
jmp 0x85b451
add ebx, 0xfffffffc
mov edx, dword [esp + 0x10]
cmp ebp, 0x11
jne 0x85b476
mov ecx, ebx
cmp ecx, dword [esp + 8]
jbe 0x85b476
movzx eax, word [ecx]
cmp eax, 0xa
jne 0x85b476
movzx eax, word [ecx - 2]
cmp eax, 0xd
jne 0x85b476
add ebx, 0xfffffffe
cmp ebx, dword [esp + 8]
ja 0x85b409
jmp 0x85b37e
mov edx, dword [esp + 0x10]
mov ebx, eax
jmp 0x85b37e
cmp esi, 1
jne case.0x85dee9.6
mov eax, dword [esp + 0x158]
mov eax, dword [eax + 0x90]
movzx ecx, word [ebp]
cmp ecx, 0x92
jne 0x85b4b1
add ebp, 2
movzx ecx, word [ebp + 2]
movzx edx, word [ebp + ecx*2]
lea ebp, [ebp + ecx*2]
cmp edx, 0x77
je 0x85b4b1
cmp eax, dword [esp + 0x28]
movzx ecx, word [esp + 0x10]
jge 0x85b4d2
mov eax, dword [esp + 0x28]
movzx ecx, byte [ecx + 0x892804]
mov edx, 2
sub edx, ecx
lea ebp, [ebp + edx*2]
mov dword [esp + 0x28], eax
jmp 0x85ae1f
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.00854020
add esp, 0x20
mov esi, eax
test esi, esi
jne case.0x85dee9.6
add edi, 4
mov edx, edi
jmp 0x85b37e
mov eax, dword [esp + 8]
cmp dword [esp + 4], eax
je 0x85b59d
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.00854020
add esp, 0x20
mov esi, eax
test esi, esi
jne case.0x85dee9.6
mov esi, ebx
lea ebx, [ebx - 2]
cmp ebp, 0x11
mov edx, dword [esp + 0x10]
jne 0x85b595
cmp ebx, dword [esp + 8]
jbe 0x85b595
movzx ecx, word [ebx]
cmp ecx, 0xa
jne 0x85b595
movzx ecx, word [esi - 4]
cmp ecx, 0xd
jne 0x85b595
add esi, 0xfffffffc
mov ebx, esi
cmp ebx, dword [esp + 8]
jne 0x85b53b
jmp 0x85b5a1
mov edx, dword [esp + 0x10]
mov ebp, dword [esp + 0x158]
mov ebx, dword [esp + 8]
jmp 0x85b385
mov eax, dword [esp + 0x160]
test eax, eax
je 0x85b5d4
lea esi, [esp + 0x160]
sub esi, ecx
test esi, esi
jle case.0x85dee9.6
neg esi
jmp case.0x85dee9.6
sub esp, 0xc
lea ecx, [esp + 0x16c]
xor edx, edx
push 1
push 0
push 0
push 0
push 0
call fcn.00854020
add esp, 0x20
mov esi, eax
jmp case.0x85dee9.6
cmp ebx, dword [esp + 0x10]
jb 0x85f5b5
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85f5b5
mov ecx, dword [esp + 0x20]
cmp ebx, dword [ecx]
jbe 0x85f5b5
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85f5b5
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85f5b5
mov ecx, dword [esp + 0x20]
cmp ebp, dword [ecx]
jbe 0x85f5b5
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85f5b5
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85f5b5
mov ecx, dword [esp + 0x20]
cmp ebp, dword [ecx]
jbe 0x85f5b5
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85f5b5
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85f5b5
mov ecx, dword [esp + 0x20]
cmp ebp, dword [ecx]
jbe 0x85f5b5
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85f5b5
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85f5b5
mov ecx, dword [esp + 0x20]
cmp edx, dword [ecx]
jbe 0x85f5b5
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85f5b5
mov esi, 0xffffffeb
jmp case.0x85dee9.6
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85f5b5
mov ecx, dword [esp + 0x20]
cmp ebp, dword [ecx]
jbe 0x85f5b5
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85f5b5
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85f5b5
mov ecx, dword [esp + 0x20]
cmp ebp, dword [ecx]
jbe 0x85f5b5
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85f5b5
mov edx, dword [esp + 4]
cmp edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x158]
jne 0x85b7b6
movzx eax, di
cmp eax, 0x9f
je 0x85b7b6
cmp dword [ecx + 0xa8], 0
je 0x85bf5d
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.0x85dee9.6
mov esi, 0xfffffc19
jmp case.0x85dee9.6
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85f5b5
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x85f5b5
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85f5b5
cmp esi, 0xfffffc1b
mov edx, edi
jne case.0x85dee9.6
movzx eax, word [edx]
cmp eax, 0x81
jne 0x85c580
mov edi, dword [esp + 0x158]
jmp 0x85c82a
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85f5b5
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x85f5b5
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85f5b5
cmp eax, 0xfffffffe
jne 0x85b891
mov eax, dword [esp + 0x14]
mov edi, dword [eax]
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85bd7e
mov ecx, dword [esp + 0x14]
cmp edi, dword [ecx]
jb 0x85bd7e
mov ecx, dword [esp + 0x20]
cmp edi, dword [ecx]
jbe 0x85bd7e
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85bd7e
mov edx, ecx
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85bd7e
mov ecx, dword [esp + 0x20]
cmp edx, dword [ecx]
jbe 0x85bd7e
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85bd7e
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.0x85dee9.6
mov esi, 0xfffffffb
jmp case.0x85dee9.6
lea ebp, [edx + 4]
mov ebx, dword [esp + 0x158]
mov dword [ebx + 0xb4], ebp
mov dword [ebx + 0xb0], 0
movzx eax, byte [edi + 0x892804]
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.00854020
add esp, 0x20
mov esi, eax
cmp esi, 1
je 0x85b9ad
cmp esi, 0xfffffc1f
je 0x85b9c6
cmp esi, 0xfffffc19
mov ebx, dword [esp + 0x158]
jne case.0x85dee9.6
cmp dword [ebx + 0xb0], 0
je 0x85c842
cmp esi, 0xfffffc1f
jne case.0x85dee9.6
sub esp, 8
mov eax, dword [esp + 0x160]
push dword [eax + 0x80]
push ebp
call fcn.00861090
add esp, 0x10
mov esi, 0xfffffc1f
test eax, eax
jne case.0x85dee9.6
jmp 0x85bb06
movzx eax, byte [edi + 0x892804]
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.00854020
add esp, 0x20
test eax, eax
mov esi, 0xfffffc1d
jne 0x85b5f2
jmp case.0x85dee9.6
lea ebp, [edx + 4]
mov ebx, dword [esp + 0x158]
mov dword [ebx + 0xb4], ebp
mov dword [ebx + 0xb0], 0
movzx eax, byte [edi + 0x892804]
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.00854020
add esp, 0x20
mov esi, eax
cmp esi, 1
je 0x85baa6
test esi, esi
je 0x85babd
cmp esi, 0xfffffc19
mov ebx, dword [esp + 0x158]
jne case.0x85dee9.6
cmp dword [ebx + 0xb0], 0
jne 0x85bab5
mov dword [ebx + 0xb0], ebp
test esi, esi
jne case.0x85dee9.6
mov esi, 0xfffffc1d
jmp case.0x85dee9.6
movzx eax, byte [edi + 0x892804]
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.00854020
add esp, 0x20
mov esi, eax
test esi, esi
jne case.0x85dee9.6
mov eax, dword [esp + 0x158]
mov ecx, dword [esp + 4]
mov dword [eax + 0x80], ecx
mov esi, 0xfffffc1e
jmp case.0x85dee9.6
movzx eax, byte [edi + 0x892804]
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.00854020
mov ecx, esi
add esp, 0x20
mov esi, eax
test esi, esi
jne case.0x85dee9.6
jmp 0x85bbf2
lea ebp, [edx + 4]
mov ebx, dword [esp + 0x158]
mov dword [ebx + 0xb4], ebp
mov dword [ebx + 0xb0], 0
movzx eax, byte [edi + 0x892804]
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.00854020
mov ecx, esi
add esp, 0x20
mov esi, eax
cmp esi, 1
je 0x85bbdb
test esi, esi
je 0x85bbf2
cmp esi, 0xfffffc19
mov ebx, dword [esp + 0x158]
jne case.0x85dee9.6
cmp dword [ebx + 0xb0], 0
jne 0x85bbea
mov dword [ebx + 0xb0], ebp
test esi, esi
jne case.0x85dee9.6
mov eax, dword [esp + 0x158]
mov dword [eax + 0x80], ecx
mov esi, 0xfffffc20
jmp case.0x85dee9.6
movzx eax, byte [edi + 0x892804]
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.00854020
add esp, 0x20
test eax, eax
mov esi, 0xfffffc1c
jne 0x85b5f2
jmp case.0x85dee9.6
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85bd7e
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 4]
cmp edx, dword [ecx]
jbe 0x85bd7e
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85bd7e
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85f5b5
mov ecx, dword [esp + 0x20]
cmp esi, dword [ecx]
jbe 0x85f5b5
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85f5b5
mov esi, 0xffffffe6
jmp case.0x85dee9.6
mov eax, dword [esp + 0x60]
lea ecx, [esp + 0xc4]
cmp eax, ecx
je 0x85bd7e
sub esp, 0xc
push eax
jmp 0x85bd2a
mov eax, dword [esp + 0x60]
lea ecx, [esp + 0xc4]
cmp eax, ecx
je case.0x85dee9.6
sub esp, 0xc
push eax
call dword [0x891044]
add esp, 0x10
jmp case.0x85dee9.6
mov ecx, dword [esp + 0x158]
mov dword [ecx + 0xa8], eax
mov eax, dword [esp + 0x60]
lea ecx, [esp + 0xc4]
cmp eax, ecx
je 0x85bd7e
sub esp, 0xc
push eax
call dword [0x891044]
add esp, 0x10
xor esi, esi
jmp case.0x85dee9.6
mov edx, ecx
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85bd7e
mov ecx, dword [esp + 0x20]
cmp edx, dword [ecx]
jbe 0x85bd7e
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85bd7e
cmp esi, 0xfffffc19
je 0x85bd7e
jmp case.0x85dee9.6
cmp esi, 1
jne case.0x85dee9.6
xor esi, esi
jmp case.0x85dee9.6
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85f5b5
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x85f5b5
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85f5b5
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85f5b5
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x85f5b5
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85f5b5
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85f5b5
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x85f5b5
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85f5b5
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85f5b5
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x85f5b5
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85f5b5
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85f5b5
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x85f5b5
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85f5b5
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85f5b5
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x85f5b5
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85f5b5
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85f5b5
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x85f5b5
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85f5b5
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85f5b5
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x85f5b5
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85f5b5
xor esi, esi
cmp dword [ecx + 0x60], 0
jne case.0x85dee9.6
mov ecx, dword [esp + 0x158]
cmp dword [ecx + 0x64], 0
mov edx, dword [esp + 4]
je 0x85b7b6
mov eax, dword [ecx + 0x98]
add eax, eax
add eax, dword [ecx + 0x78]
cmp dword [esp + 0x2c], eax
jne 0x85b7b6
jmp 0x85bd7e
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.00854020
mov ecx, dword [esp + 0x28]
add esp, 0x20
mov esi, eax
test esi, esi
jne case.0x85dee9.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 0x85eef9
mov eax, dword [esp + 0x14]
mov esi, dword [eax]
lea eax, [esi - 4]
cmp ebx, eax
mov edi, dword [esp + 0x158]
ja 0x85c013
mov eax, dword [ebx]
cmp eax, dword [ecx]
je 0x85c08a
cmp dword [esp + 0x24], 0
jle 0x85d4be
lea eax, [esi + ebp*2]
cmp ebx, eax
ja 0x85d4be
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 0x85d4be
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.00854020
add esp, 0x20
mov esi, eax
test esi, esi
mov ecx, dword [esp + 8]
je 0x85bfe6
jmp case.0x85dee9.6
mov eax, 2
jmp 0x85c04d
mov ecx, dword [esp + 0x38]
test ecx, ecx
mov esi, dword [esp + 0x158]
mov edi, dword [esp + 0x28]
mov eax, dword [esp + 0x44]
js 0x85c84d
cmp ecx, 0xa
mov edx, dword [esp + 0x10]
ja case.default.0x859036
jmp dword [ecx*4 + 0x85fb00]
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.00854020
add esp, 0x20
mov esi, eax
test esi, esi
mov eax, dword [esp + 0x24]
jne case.0x85dee9.6
dec dword [esp + 0xc]
mov ebp, 0x80001f
mov ecx, dword [esp + 0xc]
inc ecx
mov dword [esp + 0xc], ecx
cmp ecx, eax
jge 0x85eef9
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 8]
cmp ecx, dword [eax]
mov esi, dword [esp + 0x158]
jae 0x85f1ae
lea edi, [ecx + 2]
movzx eax, word [ecx]
cmp dword [esp + 0x30], 0
je 0x85c15c
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x85c15c
shl eax, 0xa
and eax, 0xffc00
movzx edx, word [ecx + 2]
add ecx, 4
and edx, 0x3ff
lea eax, [eax + edx + 0x10000]
jmp 0x85c15e
mov ecx, edi
mov edx, dword [esp + 0x10]
cmp eax, 0x180d
jle 0x85c17b
lea edi, [eax - 0x2000]
cmp edi, 0x5f
ja case.default.0x85c174
jmp dword [edi*4 + 0x85fb2c]
cmp eax, 0x84
jg 0x85c1d2
lea edi, [eax - 9]
cmp edi, 0x17
ja case.0x85c174.8203
bt ebp, edi
jae case.0x85c174.8203
cmp dword [esp + 0x40], 0
jne 0x85eef9
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.00854020
add esp, 0x20
mov esi, eax
test esi, esi
mov eax, dword [esp + 0x24]
je 0x85c0f9
jmp case.0x85dee9.6
cmp eax, 0x85
je case.0x85c174.8192
cmp eax, 0xa0
je case.0x85c174.8192
cmp eax, 0x1680
je case.0x85c174.8192
jmp case.0x85c174.8203
cmp eax, 0x3000
je case.0x85c174.8192
cmp eax, 0x180e
je case.0x85c174.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 + 0x894a84]
shl edi, 7
sub eax, edx
mov edx, dword [esp + 0x10]
add eax, edi
movzx eax, word [eax + eax + 0x896c84]
movzx eax, byte [eax*8 + 0x893405]
xor ebx, ebx
cmp dword [eax*4 + 0x892918], 6
sete bl
cmp dword [esp + 0x40], ebx
jne 0x85c19a
jmp 0x85eef9
mov esi, 0xfffffff2
jmp case.0x85dee9.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.00854020
add esp, 0x20
mov esi, eax
cmp dword [esp + 0x30], 0
je 0x85c366
test esi, esi
jne case.0x85dee9.6
dec edi
inc edi
cmp edi, dword [esp + 0x38]
jge 0x85eef9
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 8]
cmp edx, dword [eax]
mov esi, dword [esp + 0x158]
jae 0x85e377
movzx eax, word [edx]
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
mov ebx, dword [esp + 0xc]
jne 0x85c2f4
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 0x85c2fb
add edx, 2
mov dword [esp + 8], edx
mov edx, dword [esp + 0x10]
cmp ebx, eax
je 0x85eef9
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.00854020
add esp, 0x20
mov esi, eax
test esi, esi
je 0x85c299
jmp case.0x85dee9.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.00854020
add esp, 0x20
mov esi, eax
test esi, esi
jne case.0x85dee9.6
cmp edi, dword [esp + 0x38]
jge 0x85eef9
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 0x85efef
movzx eax, word [ecx]
cmp edx, eax
mov edx, dword [esp + 0x10]
jne 0x85c33b
jmp 0x85eef9
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.00854020
add esp, 0x20
mov esi, eax
cmp dword [esp + 0x30], 0
je 0x85c4ce
test esi, esi
jne case.0x85dee9.6
dec edi
inc edi
cmp edi, dword [esp + 0x38]
jge 0x85eef9
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 8]
cmp edx, dword [eax]
jae 0x85e3b2
movzx eax, word [edx]
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
mov ebx, dword [esp + 0xc]
jne 0x85c43c
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 0x85c443
add edx, 2
mov dword [esp + 8], edx
xor esi, esi
cmp ebx, eax
je case.0x85dee9.6
cmp dword [esp + 0x24], eax
je case.0x85dee9.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.00854020
add esp, 0x20
mov esi, eax
test esi, esi
je 0x85c3e8
jmp case.0x85dee9.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.00854020
add esp, 0x20
mov esi, eax
test esi, esi
jne case.0x85dee9.6
cmp edi, dword [esp + 0x38]
jge 0x85eef9
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 8]
cmp ecx, dword [eax]
mov edx, dword [esp + 0xc]
jae 0x85f02a
movzx eax, word [ecx]
xor esi, esi
cmp edx, eax
je case.0x85dee9.6
cmp dword [esp + 0x24], eax
jne 0x85c495
jmp case.0x85dee9.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.0x85dee9.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.00854020
add esp, 0x20
mov esi, eax
test esi, esi
jne case.0x85dee9.6
mov eax, dword [esp + 0x158]
mov ecx, dword [esp + 0xc]
mov dword [eax + 0xb8], ecx
mov esi, 0xfffffc1b
jmp case.0x85dee9.6
movzx eax, ax
cmp eax, 0x77
movzx eax, word [edx + 2]
mov edi, dword [esp + 0x158]
jne 0x85c822
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 0x85c597
jmp 0x85c824
mov esi, 1
jmp case.0x85dee9.6
mov esi, 0xfffffff2
jmp case.0x85dee9.6
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85bd7e
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 4]
cmp edx, dword [ecx]
jbe 0x85bd7e
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85bd7e
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85f5b5
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 4]
cmp edx, dword [ecx]
jbe 0x85f5b5
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85f5b5
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85bd7e
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 4]
cmp edx, dword [ecx]
jbe 0x85bd7e
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85bd7e
mov eax, dword [esp + 4]
mov dword [ebp + 0x84], eax
jmp 0x85b91d
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 0x85c6ce
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.00854020
add esp, 0x20
mov esi, eax
test esi, esi
jne case.0x85dee9.6
mov eax, dword [esp + 0xc]
cmp eax, dword [esp + 0x38]
jge 0x85eef9
mov eax, dword [esp + 0x14]
mov ecx, edi
cmp ecx, dword [eax]
mov esi, dword [esp + 0x158]
jae 0x85ef44
cmp bx, word [ecx]
mov edx, dword [esp + 0x10]
je 0x85c6ac
jmp 0x85eef9
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 0x85c762
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.00854020
add esp, 0x20
mov esi, eax
test esi, esi
jne case.0x85dee9.6
mov eax, dword [esp + 0xc]
cmp eax, dword [esp + 0x38]
jge 0x85eef9
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 8]
cmp ecx, dword [eax]
mov esi, dword [esp + 0x158]
jae 0x85ef7b
movzx eax, word [ecx]
cmp bx, ax
mov edx, dword [esp + 0x10]
je 0x85c73a
cmp edi, eax
je 0x85c73a
jmp 0x85eef9
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85bd7e
mov ecx, dword [esp + 4]
lea ecx, [ecx + 2]
mov edx, dword [esp + 0x14]
cmp ecx, dword [edx]
jb 0x85bd7e
mov ecx, dword [esp + 0x158]
cmp dword [ecx + 0x18], 0
jne 0x85bd7e
mov ecx, dword [esp + 0x4c]
cmp dword [ecx], 2
jne 0x85bd7e
mov ecx, dword [esp + 4]
movzx ecx, word [ecx]
mov edx, dword [esp + 0x158]
cmp cx, word [edx + 0x34]
jne 0x85bd7e
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85bd7e
mov ecx, edx
add eax, eax
sub ecx, eax
mov edx, ecx
xor esi, esi
cmp dword [edi + 0xb8], edx
je case.0x85dee9.6
mov esi, 0xfffffc1b
jmp case.0x85dee9.6
mov dword [ebx + 0xb0], ebp
jmp case.0x85dee9.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.00854020
add esp, 0x20
mov esi, eax
mov dword [esp + 4], ebx
cmp ebx, 0x16
jne 0x85cf7b
test esi, esi
mov eax, dword [esp + 0x24]
jne case.0x85dee9.6
cmp dword [esp + 0xc], eax
jge 0x85eef9
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 0x85f065
lea edx, [ecx + 2]
movzx ecx, word [ecx]
cmp dword [esp + 0x30], 0
je 0x85c8f8
mov esi, ecx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x85c8f8
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 0x85c8fa
mov esi, edx
mov dword [esp + 8], esi
cmp esi, eax
jae 0x85c9eb
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 + 0x894a84]
shl edx, 7
sub ecx, esi
add ecx, edx
movzx ecx, word [ecx + ecx + 0x896c84]
movzx edx, byte [ecx*8 + 0x893406]
mov ecx, dword [esp + 8]
movzx ecx, word [ecx]
cmp dword [esp + 0x30], 0
mov esi, 1
je 0x85c97f
mov edi, ecx
and edi, 0xfc00
cmp edi, 0xd800
jne 0x85c97f
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 + 0x894a84]
shl edi, 7
sub ecx, ebx
add ecx, edi
movzx ecx, word [ecx + ecx + 0x896c84]
movzx ecx, byte [ecx*8 + 0x893406]
mov ebx, 1
shl ebx, cl
and ebx, dword [edx*4 + 0x892990]
je 0x85c9cb
mov edx, dword [esp + 8]
lea edx, [edx + esi*2]
jmp 0x85c9cf
mov edx, dword [esp + 8]
mov dword [esp + 8], edx
cmp edx, eax
jae 0x85c9e7
test ebx, ebx
mov edx, ecx
mov edi, dword [esp + 0x28]
jne 0x85c939
jmp 0x85c9eb
mov edi, dword [esp + 0x28]
cmp dword [esp + 8], eax
jb 0x85ca1a
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85ca1a
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x85ca1a
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
cmp eax, 1
jg 0x85d3c8
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.00854020
add esp, 0x20
mov esi, eax
test esi, esi
mov eax, dword [esp + 0x24]
je 0x85c891
jmp case.0x85dee9.6
mov esi, 0xfffffff4
jmp case.0x85dee9.6
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85f5b5
mov ecx, dword [esp + 0x20]
cmp esi, dword [ecx]
jbe 0x85f5b5
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85f5b5
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85bd7e
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 4]
cmp edx, dword [ecx]
jbe 0x85bd7e
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85bd7e
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85bd7e
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 4]
cmp edx, dword [ecx]
jbe 0x85bd7e
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85bd7e
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85bd7e
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 4]
cmp edx, dword [ecx]
jbe 0x85bd7e
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85bd7e
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85bd7e
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 4]
cmp edx, dword [ecx]
jbe 0x85bd7e
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85bd7e
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85bd7e
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 4]
cmp edx, dword [ecx]
jbe 0x85bd7e
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85bd7e
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85bd7e
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 4]
cmp edx, dword [ecx]
jbe 0x85bd7e
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85bd7e
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85bd7e
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 4]
cmp edx, dword [ecx]
jbe 0x85bd7e
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85bd7e
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85bd7e
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 4]
cmp edx, dword [ecx]
jbe 0x85bd7e
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85bd7e
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85bd7e
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 4]
cmp edx, dword [ecx]
jbe 0x85bd7e
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85bd7e
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85bd7e
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 4]
cmp edx, dword [ecx]
jbe 0x85bd7e
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85bd7e
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85bd7e
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 4]
cmp edx, dword [ecx]
jbe 0x85bd7e
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85bd7e
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85bd7e
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 4]
cmp edx, dword [ecx]
jbe 0x85bd7e
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85bd7e
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85bd7e
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 4]
cmp edx, dword [ecx]
jbe 0x85bd7e
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85bd7e
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85bd7e
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 4]
cmp edx, dword [ecx]
jbe 0x85bd7e
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85bd7e
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.00854020
add esp, 0x20
mov esi, eax
test esi, esi
jne case.0x85dee9.6
add edi, 4
mov eax, dword [esp + 0x158]
mov dword [eax + 0x80], edi
mov esi, 0xfffffc1f
jmp case.0x85dee9.6
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85f5b5
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x85f5b5
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85f5b5
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85f5b5
mov ecx, dword [esp + 0x20]
cmp edi, dword [ecx]
jbe 0x85f5b5
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85f5b5
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85f5b5
mov ecx, dword [esp + 0x20]
cmp edi, dword [ecx]
jbe 0x85f5b5
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85f5b5
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85bd7e
mov ecx, dword [esp + 4]
lea ecx, [ecx + 2]
mov edx, dword [esp + 0x14]
cmp ecx, dword [edx]
jb 0x85bd7e
mov ecx, dword [esp + 0x158]
cmp dword [ecx + 0x18], 0
jne 0x85bd7e
mov ecx, dword [esp + 0x4c]
cmp dword [ecx], 2
jne 0x85bd7e
mov ecx, dword [esp + 4]
movzx ecx, word [ecx]
mov edx, dword [esp + 0x158]
cmp cx, word [edx + 0x34]
jne 0x85bd7e
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85bd7e
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85f5b5
mov ecx, dword [esp + 0x20]
cmp ebx, dword [ecx]
jbe 0x85f5b5
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85f5b5
cmp dword [esp + 0x30], 0
mov ecx, dword [esp + 0x24]
je 0x85de66
test esi, esi
jne case.0x85dee9.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 0x85eef9
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 0x85f27e
cmp dword [esp + 4], 0xc
jne 0x85d031
mov ecx, dword [esi + 0x18]
test ecx, ecx
je 0x85cff7
sub esp, 0xc
push dword [esp + 0x3c]
push dword [esp + 0x5c]
push eax
push ecx
push edi
call fcn.00860ec0
add esp, 0x20
test eax, eax
je 0x85d031
jmp 0x85eef9
mov ecx, dword [esp + 0x4c]
mov ecx, dword [ecx]
lea edx, [ecx + ecx]
sub eax, edx
cmp edi, eax
ja 0x85d031
movzx eax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x85d031
cmp ecx, 1
je 0x85eef9
mov edi, dword [esp + 8]
movzx eax, word [edi + 2]
mov ecx, dword [esp + 0x158]
cmp ax, word [ecx + 0x36]
je 0x85eef9
movzx eax, word [edi]
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x85d062
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [edi + 2]
add edi, 4
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x85d065
add edi, 2
mov dword [esp + 8], edi
mov esi, 0xfffffff2
cmp ebx, 0xf
ja case.0x85dee9.6
jmp dword [ebx*4 + 0x85fa80]
cmp eax, 0xff
ja case.0x85d077.7
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 4
je case.0x85d077.7
jmp 0x85eef9
cmp eax, 0xff
ja 0x85eef9
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 4
jne case.0x85d077.7
jmp 0x85eef9
cmp eax, 0xff
ja case.0x85d077.7
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 1
je case.0x85d077.7
jmp 0x85eef9
cmp eax, 0xff
ja 0x85eef9
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 1
jne case.0x85d077.7
jmp 0x85eef9
cmp eax, 0xff
ja case.0x85d077.7
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 0x10
je case.0x85d077.7
jmp 0x85f131
cmp eax, 0xff
ja 0x85f131
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 0x10
jne case.0x85d077.7
jmp 0x85f131
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx]
test ecx, ecx
je case.0x85d077.7
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 8]
cmp esi, dword [edx]
jb case.0x85d077.7
mov edx, dword [esp + 0x158]
cmp dword [edx + 0x18], 0
jne case.0x85d077.7
mov edx, dword [esp + 0x4c]
cmp dword [edx], 2
jne case.0x85d077.7
mov edx, dword [esp + 0x158]
movzx edx, word [edx + 0x34]
cmp eax, edx
jne case.0x85d077.7
mov eax, dword [esp + 0x1c]
mov dword [eax], 1
cmp ecx, 1
jle case.0x85d077.7
jmp 0x85d3c8
xor esi, esi
cmp eax, 0xc
jle 0x85d2dc
lea ecx, [eax - 0x2028]
cmp ecx, 2
jb 0x85d2e8
cmp eax, 0x85
je 0x85d2e8
cmp eax, 0xd
jne case.0x85dee9.6
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 8]
cmp ecx, dword [eax]
jae case.0x85d077.7
mov eax, dword [esp + 8]
movzx eax, word [eax]
cmp eax, 0xa
jne case.0x85d077.7
add dword [esp + 8], 2
jmp case.0x85d077.7
xor esi, esi
cmp eax, 0x1fff
jle 0x85d2ab
cmp eax, 0x202e
jg 0x85d31f
add eax, 0xffffe000
cmp eax, 0xb
jae case.0x85d077.7
jmp case.0x85dee9.6
xor esi, esi
cmp eax, 0x1fff
jle 0x85d2fe
cmp eax, 0x202e
jg 0x85d354
add eax, 0xffffe000
cmp eax, 0xb
jb case.0x85d077.7
jmp case.0x85dee9.6
xor esi, esi
lea ecx, [eax - 0xa]
cmp ecx, 4
jb case.0x85dee9.6
lea ecx, [eax - 0x2028]
cmp ecx, 2
jb case.0x85dee9.6
cmp eax, 0x85
jne case.0x85d077.7
jmp case.0x85dee9.6
lea ecx, [eax - 0xa]
cmp ecx, 4
jb case.0x85d077.7
lea ecx, [eax - 0x2028]
cmp ecx, 2
jb case.0x85d077.7
cmp eax, 0x85
je case.0x85d077.7
jmp 0x85eef9
cmp eax, 0x9f
jle 0x85d341
cmp eax, 0xa0
je case.0x85dee9.6
cmp eax, 0x1680
je case.0x85dee9.6
cmp eax, 0x180e
jne case.0x85d077.7
jmp case.0x85dee9.6
lea ecx, [eax - 0xb]
cmp ecx, 2
jae 0x85d36e
mov eax, dword [esp + 0x158]
cmp dword [eax + 0x6c], 0
je case.0x85d077.7
jmp 0x85eef9
cmp eax, 0x9f
jle 0x85d378
cmp eax, 0xa0
je case.0x85d077.7
cmp eax, 0x1680
je case.0x85d077.7
cmp eax, 0x180e
je case.0x85d077.7
jmp case.0x85dee9.6
cmp eax, 0x202f
je case.0x85dee9.6
cmp eax, 0x205f
je case.0x85dee9.6
cmp eax, 0x3000
jne case.0x85d077.7
jmp case.0x85dee9.6
cmp eax, 9
je case.0x85dee9.6
cmp eax, 0x20
jne case.0x85d077.7
jmp case.0x85dee9.6
cmp eax, 0x202f
je case.0x85d077.7
cmp eax, 0x205f
je case.0x85d077.7
cmp eax, 0x3000
je case.0x85d077.7
jmp case.0x85dee9.6
cmp eax, 0xa
je case.0x85d077.7
jmp case.0x85dee9.6
cmp eax, 9
je case.0x85d077.7
cmp eax, 0x20
jne case.0x85dee9.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.00854020
mov ecx, dword [esp + 0x44]
add esp, 0x20
mov esi, eax
test esi, esi
je 0x85cfa0
jmp case.0x85dee9.6
mov esi, 0xfffffff4
jmp case.0x85dee9.6
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85f5b5
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x85f5b5
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85f5b5
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85f5b5
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x85f5b5
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85f5b5
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85f5b5
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x85f5b5
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85f5b5
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85f5b5
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x85f5b5
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85f5b5
cmp ebx, esi
jb 0x85bd7e
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85bd7e
mov ecx, dword [esp + 0x20]
cmp ebx, dword [ecx]
jbe 0x85bd7e
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85bd7e
cmp edi, edx
jb 0x85bd7e
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85bd7e
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 4]
cmp edx, dword [ecx]
jbe 0x85bd7e
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85bd7e
cmp byte [esp + 0x44], 0
je 0x85dd1d
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.00854020
add esp, 0x20
mov esi, eax
test esi, esi
jne case.0x85dee9.6
dec dword [esp + 8]
mov eax, dword [esp + 8]
inc eax
mov dword [esp + 8], eax
cmp eax, dword [esp + 0x38]
jge 0x85eef9
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.008600d0
add esp, 0x10
test eax, eax
js 0x85f1e9
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.00854020
add esp, 0x20
mov esi, eax
test esi, esi
je 0x85d588
jmp case.0x85dee9.6
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85f5b5
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x85f5b5
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85f5b5
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.00854020
add esp, 0x20
mov esi, eax
cmp dword [esp + 0x30], 0
je 0x85e3ed
test esi, esi
jne case.0x85dee9.6
dec dword [esp + 0xc]
movzx ebx, di
mov edx, dword [esp + 0xc]
inc edx
cmp edx, dword [esp + 0x38]
jge 0x85eef9
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x50]
cmp ecx, dword [eax]
jae 0x85f243
movzx eax, word [ecx]
mov edi, ecx
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
mov dword [esp + 0xc], edx
jne 0x85d6c2
add edi, 4
jmp 0x85d6cc
add edi, 2
cmp eax, 0x100
jb 0x85d6de
mov esi, dword [esp + 0x28]
mov edx, dword [esp + 0x10]
cmp ebx, 0x6e
jne 0x85d702
jmp 0x85eef9
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 0x85eef9
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.00854020
add esp, 0x20
mov esi, eax
test esi, esi
je 0x85d685
jmp case.0x85dee9.6
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85f5b5
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x85f5b5
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85f5b5
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85f5b5
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x85f5b5
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85f5b5
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85f5b5
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x85f5b5
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85f5b5
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85f5b5
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x85f5b5
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85f5b5
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85f5b5
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x85f5b5
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85f5b5
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85f5b5
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x85f5b5
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85f5b5
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 0x85d924
mov eax, dword [esp + 0x158]
mov dword [eax + 0x9c], 2
movzx eax, byte [edx + 0x892804]
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.00854020
add esp, 0x20
mov esi, eax
cmp esi, 0xfffffc20
je 0x85d976
test esi, esi
jne 0x85ef00
mov ax, word [edi + 2]
mov ebp, dword [esp + 4]
jmp 0x85d9a1
movzx eax, word [edi + 2]
lea ecx, [edi + eax*2]
cmp dword [ebp + 0x80], ecx
jae 0x85d9dd
mov esi, edi
movzx edx, word [edi]
cmp edx, 0x77
mov ebp, dword [esp + 4]
jne 0x85d997
mov edi, esi
jmp 0x85d9a1
movzx ecx, word [ecx]
cmp ecx, 0x77
mov edi, esi
jne 0x85d9dd
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 0x85d909
xor eax, eax
jmp 0x85ef11
mov esi, 0xfffffc20
jmp case.0x85dee9.6
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85f5b5
mov ecx, dword [esp + 0x20]
cmp ebx, dword [ecx]
jbe 0x85f5b5
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85f5b5
cmp eax, 0xfffffffe
jne 0x85da2d
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 0x85bd7e
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 4]
cmp edx, dword [ecx]
jb 0x85bd7e
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 4]
cmp edx, dword [ecx]
jbe 0x85bd7e
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85bd7e
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85f5b5
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x85f5b5
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85f5b5
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85f5b5
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x85f5b5
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85f5b5
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85f5b5
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x85f5b5
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85f5b5
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85f5b5
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x85f5b5
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85f5b5
mov esi, 0xfffffffa
jmp case.0x85dee9.6
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85bd7e
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 4]
cmp edx, dword [ecx]
jbe 0x85bd7e
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85bd7e
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85f5b5
mov ecx, dword [esp + 0x20]
cmp ebp, dword [ecx]
jbe 0x85f5b5
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85f5b5
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 0x85dc27
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.00854020
add esp, 0x20
mov esi, eax
test esi, esi
jne case.0x85dee9.6
mov ecx, dword [esp + 4]
cmp ecx, dword [esp + 0x50]
jbe 0x85eef9
movzx eax, word [ecx - 2]
and eax, 0xfc00
cmp eax, 0xdc00
mov esi, dword [esp + 0x158]
mov ebx, dword [esp + 0x28]
je 0x85dc67
add ecx, 0xfffffffe
jmp 0x85dc09
add ecx, 0xfffffffc
jmp 0x85dc09
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85f5b5
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x85f5b5
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85f5b5
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85f5b5
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x85f5b5
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85f5b5
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85f5b5
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x85f5b5
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85f5b5
mov eax, dword [esp + 8]
cmp eax, dword [esp + 0x38]
mov ebp, dword [esp + 4]
jge 0x85f0e1
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.008600d0
add esp, 0x10
test eax, eax
js 0x85f0a0
lea ebp, [ebp + eax*2]
mov eax, dword [esp + 8]
inc eax
mov dword [esp + 8], eax
cmp eax, dword [esp + 0x38]
jl 0x85dd33
jmp 0x85f0d5
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.00854020
add esp, 0x20
mov esi, eax
test esi, esi
jne case.0x85dee9.6
dec ebx
inc ebx
cmp ebx, dword [esp + 0xc]
jge 0x85eef9
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x38]
cmp ecx, dword [eax]
mov eax, ecx
jae 0x85f2fc
lea ecx, [eax + 2]
movzx eax, word [eax]
cmp dword [esp + 0x30], 0
je 0x85de0b
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x85de0b
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 0x85de0f
mov dword [esp + 0x38], ecx
sub esp, 4
push dword [esp + 0x34]
push edi
push eax
call fcn.008612a0
add esp, 0x10
test eax, eax
je 0x85eef9
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.00854020
add esp, 0x20
mov esi, eax
test esi, esi
je 0x85ddab
jmp case.0x85dee9.6
test esi, esi
jne case.0x85dee9.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 0x85f131
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
mov edi, dword [esp + 8]
cmp edi, ecx
jae 0x85f35b
cmp dword [esp + 4], 0xc
jne 0x85ded5
mov eax, dword [esp + 0x158]
mov eax, dword [eax + 0x18]
test eax, eax
je 0x85df10
sub esp, 0xc
push 0
push dword [esp + 0x5c]
push ecx
push eax
push edi
call fcn.00860ec0
add esp, 0x20
test eax, eax
je 0x85df51
jmp 0x85f131
mov esi, 0xfffffff2
cmp ebx, 0xf
ja case.0x85dee9.6
lea ebp, [edi + 2]
movzx eax, word [edi]
jmp dword [ebx*4 + 0x85fac0]
cmp eax, 0xff
ja case.0x85dee9.7
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 4
je case.0x85dee9.7
jmp 0x85f131
mov eax, dword [esp + 0x4c]
mov eax, dword [eax]
lea edx, [eax + eax]
sub ecx, edx
cmp edi, ecx
ja 0x85df51
movzx ecx, word [edi]
mov edx, dword [esp + 0x158]
cmp cx, word [edx + 0x34]
jne 0x85df51
cmp eax, 1
je 0x85f131
mov edi, dword [esp + 8]
movzx eax, word [edi + 2]
mov ecx, dword [esp + 0x158]
cmp ax, word [ecx + 0x36]
je 0x85f131
lea ebp, [edi + 2]
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je case.0x85dee9.7
mov ecx, dword [esp + 0x14]
cmp ebp, dword [ecx]
jb case.0x85dee9.7
mov ecx, dword [esp + 0x158]
cmp dword [ecx + 0x18], 0
jne case.0x85dee9.7
mov ecx, dword [esp + 0x4c]
cmp dword [ecx], 2
jne case.0x85dee9.7
mov ecx, dword [esp + 8]
movzx ecx, word [ecx]
mov edx, dword [esp + 0x158]
cmp cx, word [edx + 0x34]
jne case.0x85dee9.7
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
cmp eax, 1
jle case.0x85dee9.7
jmp 0x85e2c3
cmp eax, 0xff
ja 0x85f131
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 4
jne case.0x85dee9.7
jmp 0x85f131
cmp eax, 0xff
ja case.0x85dee9.7
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 1
je case.0x85dee9.7
jmp 0x85f131
cmp eax, 0xff
ja 0x85f131
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 1
jne case.0x85dee9.7
jmp 0x85f131
cmp eax, 0xff
ja case.0x85dee9.7
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 0x10
je case.0x85dee9.7
jmp 0x85f131
cmp eax, 0xff
ja 0x85f131
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 0x10
jne case.0x85dee9.7
jmp 0x85f131
xor esi, esi
movsx edx, ax
cmp edx, 0xc
jle 0x85e1bd
lea edx, [eax - 0x2028]
movzx edx, dx
cmp edx, 2
jb 0x85e1cc
movzx eax, ax
cmp eax, 0x85
je 0x85e1cc
cmp eax, 0xd
jne case.0x85dee9.6
cmp ebp, ecx
jae case.0x85dee9.7
mov eax, dword [esp + 8]
movzx eax, word [eax + 2]
cmp eax, 0xa
jne case.0x85dee9.7
mov ebp, dword [esp + 8]
add ebp, 4
jmp case.0x85dee9.7
xor esi, esi
movsx ecx, ax
cmp ecx, 0x1fff
jle 0x85e188
cmp ecx, 0x202e
jg 0x85e20f
add eax, 0xffffe000
movzx eax, ax
cmp eax, 0xb
jae case.0x85dee9.7
jmp case.0x85dee9.6
xor esi, esi
movsx ecx, ax
cmp ecx, 0x1fff
jle 0x85e1e2
cmp ecx, 0x202e
jg 0x85e247
add eax, 0xffffe000
movzx eax, ax
cmp eax, 0xb
jb case.0x85dee9.7
jmp case.0x85dee9.6
xor esi, esi
lea ecx, [eax - 0xa]
movzx ecx, cx
cmp ecx, 4
jb case.0x85dee9.6
lea ecx, [eax - 0x2028]
movzx ecx, cx
cmp ecx, 2
jb case.0x85dee9.6
movzx eax, ax
cmp eax, 0x85
jne case.0x85dee9.7
jmp case.0x85dee9.6
lea ecx, [eax - 0xa]
movzx ecx, cx
cmp ecx, 4
jb case.0x85dee9.7
lea ecx, [eax - 0x2028]
movzx ecx, cx
cmp ecx, 2
jb case.0x85dee9.7
movzx eax, ax
cmp eax, 0x85
je case.0x85dee9.7
jmp 0x85f131
movzx eax, ax
cmp ecx, 0x9f
jle 0x85e234
cmp eax, 0xa0
je case.0x85dee9.6
cmp eax, 0x1680
je case.0x85dee9.6
cmp eax, 0x180e
jne case.0x85dee9.7
jmp case.0x85dee9.6
lea ecx, [eax - 0xb]
movzx ecx, cx
cmp ecx, 2
jae 0x85e264
mov eax, dword [esp + 0x158]
cmp dword [eax + 0x6c], 0
je case.0x85dee9.7
jmp 0x85f131
movzx eax, ax
cmp ecx, 0x9f
jle 0x85e271
cmp eax, 0xa0
je case.0x85dee9.7
cmp eax, 0x1680
je case.0x85dee9.7
cmp eax, 0x180e
je case.0x85dee9.7
jmp case.0x85dee9.6
movzx eax, ax
cmp eax, 0x202f
je case.0x85dee9.6
cmp eax, 0x205f
je case.0x85dee9.6
cmp eax, 0x3000
jne case.0x85dee9.7
jmp case.0x85dee9.6
cmp eax, 9
je case.0x85dee9.6
cmp eax, 0x20
jne case.0x85dee9.7
jmp case.0x85dee9.6
movzx eax, ax
cmp eax, 0x202f
je case.0x85dee9.7
cmp eax, 0x205f
je case.0x85dee9.7
cmp eax, 0x3000
je case.0x85dee9.7
jmp case.0x85dee9.6
movzx eax, ax
cmp eax, 0xa
je case.0x85dee9.7
jmp case.0x85dee9.6
cmp eax, 9
je case.0x85dee9.7
cmp eax, 0x20
jne case.0x85dee9.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.00854020
mov ecx, dword [esp + 0x44]
add esp, 0x20
mov esi, eax
test esi, esi
mov dword [esp + 8], ebp
je 0x85de7c
jmp case.0x85dee9.6
mov esi, 0xfffffff4
jmp case.0x85dee9.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.00854020
add esp, 0x20
mov esi, eax
test esi, esi
jne case.0x85dee9.6
mov ecx, dword [esp + 4]
cmp ecx, dword [esp + 0x38]
jbe 0x85eef9
lea edi, [ecx - 2]
cmp dword [esp + 0x30], 0
mov esi, dword [esp + 0x158]
mov ebx, dword [esp + 0x28]
je 0x85e344
movzx eax, word [ecx - 2]
and eax, 0xfc00
cmp eax, 0xdc00
mov edx, dword [esp + 0x10]
jne 0x85e348
add ecx, 0xfffffffc
mov edi, ecx
jmp 0x85e348
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.00854020
add esp, 0x20
mov esi, eax
test esi, esi
mov dword [esp + 4], edi
je 0x85e306
jmp case.0x85dee9.6
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85f5b5
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x85f5b5
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85f5b5
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85f5b5
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x85f5b5
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85f5b5
test esi, esi
jne case.0x85dee9.6
movzx edi, di
mov ebp, dword [esp + 0xc]
cmp ebp, dword [esp + 0x38]
jge 0x85eef9
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x50]
cmp ecx, dword [eax]
mov esi, dword [esp + 0x28]
jae 0x85f396
movzx eax, word [ecx]
cmp eax, 0x100
mov edx, dword [esp + 0x10]
jb 0x85e432
cmp edi, 0x6e
jne 0x85e458
jmp 0x85eef9
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 0x85eef9
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.00854020
add esp, 0x20
mov esi, eax
test esi, esi
je 0x85e3f8
jmp case.0x85dee9.6
xor esi, esi
mov eax, dword [esp + 0x50]
cmp dword [esp + 4], eax
jb case.0x85dee9.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.00854020
add esp, 0x20
mov esi, eax
test esi, esi
jne case.0x85dee9.6
add ebx, 0xfffffffe
xor esi, esi
mov dword [esp + 4], ebx
cmp ebx, dword [esp + 0x50]
jae 0x85e4a7
jmp case.0x85dee9.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.00854020
add esp, 0x20
mov esi, eax
test esi, esi
mov eax, dword [esp + 0x24]
jne case.0x85dee9.6
dec dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
inc ecx
cmp ecx, eax
jge 0x85eef9
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 8]
cmp edx, dword [eax]
jae 0x85f3d1
mov dword [esp + 0xc], ecx
lea eax, [edx + 2]
cmp dword [esp + 0x30], 0
je 0x85e566
movzx ecx, word [edx]
and ecx, 0xfc00
cmp ecx, 0xd800
je 0x85e56c
mov dword [esp + 8], eax
jmp 0x85e573
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 0x85eef9
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.00854020
add esp, 0x20
mov esi, eax
test esi, esi
mov eax, dword [esp + 0x24]
je 0x85e52a
jmp case.0x85dee9.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.00854020
add esp, 0x20
mov esi, eax
test esi, esi
mov eax, dword [esp + 0x24]
jne case.0x85dee9.6
dec dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
inc ecx
cmp ecx, eax
jge 0x85eef9
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 8]
cmp esi, dword [eax]
jae 0x85f40c
lea ecx, [esi + 2]
movzx eax, word [esi]
cmp dword [esp + 0x30], 0
je 0x85e656
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x85e656
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 0x85e65a
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 + 0x894a84]
shl ecx, 7
sub eax, edx
add eax, ecx
movzx eax, word [eax + eax + 0x896c84]
movzx eax, byte [eax*8 + 0x893405]
add al, 0xfb
xor ecx, ecx
cmp al, 4
ja 0x85e6aa
movsx eax, al
mov ecx, dword [eax*4 + 0x8927e0]
cmp dword [esp + 0x40], ecx
mov edx, dword [esp + 0x10]
je 0x85eef9
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.00854020
add esp, 0x20
mov esi, eax
test esi, esi
mov eax, dword [esp + 0x24]
je 0x85e5f6
jmp case.0x85dee9.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.00854020
add esp, 0x20
mov esi, eax
test esi, esi
mov eax, dword [esp + 0x24]
jne case.0x85dee9.6
dec dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
inc ecx
cmp ecx, eax
jge 0x85eef9
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 8]
cmp esi, dword [eax]
jae 0x85f447
lea ecx, [esi + 2]
movzx eax, word [esi]
cmp dword [esp + 0x30], 0
je 0x85e781
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x85e781
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 0x85e785
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 + 0x894a84]
shl ecx, 7
sub eax, edx
add eax, ecx
movzx eax, word [eax + eax + 0x896c84]
movzx eax, byte [eax*8 + 0x893405]
xor ecx, ecx
mov edx, dword [esp + 0x54]
cmp dword [eax*4 + 0x892918], edx
sete cl
cmp dword [esp + 0x40], ecx
je 0x85eef9
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.00854020
add esp, 0x20
mov esi, eax
test esi, esi
mov eax, dword [esp + 0x24]
je 0x85e721
jmp case.0x85dee9.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.00854020
add esp, 0x20
mov esi, eax
test esi, esi
mov eax, dword [esp + 0x24]
jne case.0x85dee9.6
dec dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
inc ecx
cmp ecx, eax
jge 0x85eef9
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 8]
cmp esi, dword [eax]
jae 0x85f482
lea ecx, [esi + 2]
movzx eax, word [esi]
cmp dword [esp + 0x30], 0
je 0x85e8aa
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x85e8aa
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 0x85e8ae
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 + 0x894a84]
shl ecx, 7
sub eax, edx
add eax, ecx
movzx eax, word [eax + eax + 0x896c84]
movzx eax, byte [eax*8 + 0x893405]
xor ecx, ecx
cmp dword [esp + 0x54], eax
sete cl
cmp dword [esp + 0x40], ecx
je 0x85eef9
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.00854020
add esp, 0x20
mov esi, eax
test esi, esi
mov eax, dword [esp + 0x24]
je 0x85e84a
jmp case.0x85dee9.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.00854020
add esp, 0x20
mov esi, eax
test esi, esi
mov eax, dword [esp + 0x24]
jne case.0x85dee9.6
dec dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
inc ecx
cmp ecx, eax
jge 0x85eef9
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 8]
cmp esi, dword [eax]
jae 0x85f4bd
lea ecx, [esi + 2]
movzx eax, word [esi]
cmp dword [esp + 0x30], 0
je 0x85e9cc
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x85e9cc
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 0x85e9d0
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 + 0x894a84]
shl ecx, 7
sub eax, edx
add eax, ecx
movzx eax, word [eax + eax + 0x896c84]
movzx eax, byte [eax*8 + 0x893404]
xor ecx, ecx
cmp dword [esp + 0x54], eax
sete cl
cmp dword [esp + 0x40], ecx
je 0x85eef9
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.00854020
add esp, 0x20
mov esi, eax
test esi, esi
mov eax, dword [esp + 0x24]
je 0x85e96c
jmp case.0x85dee9.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.00854020
add esp, 0x20
mov esi, eax
test esi, esi
mov eax, dword [esp + 0x24]
jne case.0x85dee9.6
dec dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
inc ecx
cmp ecx, eax
jge 0x85eef9
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 8]
cmp esi, dword [eax]
jae 0x85f4f8
lea ecx, [esi + 2]
movzx eax, word [esi]
cmp dword [esp + 0x30], 0
je 0x85eaee
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x85eaee
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 0x85eaf2
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 + 0x894a84]
shl ecx, 7
sub eax, edx
add eax, ecx
movzx eax, word [eax + eax + 0x896c84]
movzx eax, byte [eax*8 + 0x893405]
mov eax, dword [eax*4 + 0x892918]
or eax, 2
xor ecx, ecx
cmp eax, 3
sete cl
cmp dword [esp + 0x40], ecx
je 0x85eef9
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.00854020
add esp, 0x20
mov esi, eax
test esi, esi
mov eax, dword [esp + 0x24]
je 0x85ea8e
jmp case.0x85dee9.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.00854020
add esp, 0x20
mov esi, eax
test esi, esi
mov eax, dword [esp + 0x24]
jne case.0x85dee9.6
dec dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
inc ecx
cmp ecx, eax
jge 0x85eef9
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 8]
cmp esi, dword [eax]
jae 0x85f533
lea ecx, [esi + 2]
movzx eax, word [esi]
cmp dword [esp + 0x30], 0
je 0x85ec19
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x85ec19
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 0x85ec1d
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 + 0x894a84]
shl ecx, 7
mov esi, eax
sub esi, edx
add esi, ecx
movzx ecx, word [esi + esi + 0x896c84]
movzx ecx, byte [ecx*8 + 0x893405]
mov ecx, dword [ecx*4 + 0x892918]
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 0x85eef9
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.00854020
add esp, 0x20
mov esi, eax
test esi, esi
mov eax, dword [esp + 0x24]
je 0x85ebb9
jmp case.0x85dee9.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.00854020
add esp, 0x20
mov esi, eax
test esi, esi
mov ecx, dword [esp + 0x24]
jne case.0x85dee9.6
mov eax, dword [esp + 0x54]
lea ebx, [eax*4 + 0x8932cc]
cmp dword [esp + 0xc], ecx
jge 0x85eef9
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 8]
cmp edi, dword [eax]
jae 0x85f55f
lea ecx, [edi + 2]
movzx eax, word [edi]
cmp dword [esp + 0x30], 0
je 0x85ed4b
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x85ed4b
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [edi + 2]
add edi, 4
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x85ed4d
mov edi, ecx
mov ecx, dword [esp + 0x54]
mov ecx, dword [ecx*4 + 0x8932c8]
cmp eax, ecx
jb 0x85ed6b
mov edx, ebx
cmp eax, ecx
je 0x85ed86
mov ecx, dword [edx]
add edx, 4
cmp eax, ecx
jae 0x85ed5e
cmp dword [esp + 0x40], 0
mov esi, dword [esp + 0x158]
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
jne 0x85eda0
jmp 0x85eef9
cmp dword [esp + 0x40], 0
mov esi, dword [esp + 0x158]
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
jne 0x85eef9
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.00854020
add esp, 0x20
mov esi, eax
test esi, esi
mov ecx, dword [esp + 0x24]
je 0x85ecf6
jmp case.0x85dee9.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.00854020
add esp, 0x20
mov esi, eax
test esi, esi
mov eax, dword [esp + 0x24]
jne case.0x85dee9.6
dec dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
inc ecx
cmp ecx, eax
jge 0x85eef9
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 8]
cmp esi, dword [eax]
jae 0x85f58b
lea ecx, [esi + 2]
movzx eax, word [esi]
cmp dword [esp + 0x30], 0
je 0x85ee6f
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x85ee6f
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [esi + 2]
add esi, 4
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x85ee71
mov esi, ecx
mov dword [esp + 8], esi
mov cl, 1
cmp eax, 0x24
je 0x85eeac
cmp eax, 0x40
je 0x85eeac
cmp eax, 0x60
mov esi, dword [esp + 0x158]
mov edi, dword [esp + 0x28]
je 0x85eeb7
lea ecx, [eax - 0xa0]
cmp ecx, 0xd760
setb dl
cmp eax, 0xdfff
seta cl
or cl, dl
jmp 0x85eeb7
mov esi, dword [esp + 0x158]
mov edi, dword [esp + 0x28]
movzx eax, cl
cmp dword [esp + 0x40], eax
mov edx, dword [esp + 0x10]
je 0x85eef9
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.00854020
add esp, 0x20
mov esi, eax
test esi, esi
mov eax, dword [esp + 0x24]
je 0x85ee13
jmp case.0x85dee9.6
xor esi, esi
jmp case.0x85dee9.6
mov eax, 0xfffffc1b
cmp esi, 0xfffffc1b
jne case.0x85dee9.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.0x85dee9.6
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85f5b5
mov ecx, dword [esp + 0x20]
cmp edi, dword [ecx]
jbe 0x85f5b5
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85f5b5
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85f5b5
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x85f5b5
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85f5b5
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 0x85b5ea
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85f5b5
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x85f5b5
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85f5b5
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85f5b5
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x85f5b5
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85f5b5
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85f5b5
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x85f5b5
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85f5b5
cmp eax, 0xfffffffe
jne 0x85f0d5
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85f0d5
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx]
mov edx, dword [esp + 0x20]
cmp ecx, dword [edx]
jbe 0x85f0d5
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
xor esi, esi
cmp ebp, dword [esp + 4]
jb case.0x85dee9.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.00854020
add esp, 0x20
mov esi, eax
test esi, esi
jne case.0x85dee9.6
add ebp, edi
xor esi, esi
cmp ebp, dword [esp + 4]
jae 0x85f0eb
jmp case.0x85dee9.6
xor esi, esi
jmp case.0x85dee9.6
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85f5b5
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 4]
cmp edx, dword [ecx]
jbe 0x85f5b5
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85f5b5
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85f5b5
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 4]
cmp edx, dword [ecx]
jbe 0x85f5b5
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85f5b5
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85f5b5
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x85f5b5
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85f5b5
cmp eax, 0xfffffffe
jne 0x85f1f8
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 0x85bd7e
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 4]
cmp edx, dword [ecx]
jb 0x85bd7e
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 4]
cmp edx, dword [ecx]
jbe 0x85bd7e
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85bd7e
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85bd7e
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x50]
cmp edx, dword [ecx]
jbe 0x85bd7e
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85bd7e
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85f5b5
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x85f5b5
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85f5b5
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 0x85c553
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 0x85c553
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85bd7e
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x38]
cmp edx, dword [ecx]
jbe 0x85bd7e
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85bd7e
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 0x85b5ea
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85f5b5
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x85f5b5
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85f5b5
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85bd7e
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x50]
cmp edx, dword [ecx]
jbe 0x85bd7e
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85bd7e
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85f5b5
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x85f5b5
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85f5b5
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85f5b5
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x85f5b5
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85f5b5
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85f5b5
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x85f5b5
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85f5b5
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85f5b5
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x85f5b5
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85f5b5
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85f5b5
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x85f5b5
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85f5b5
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85f5b5
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x85f5b5
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85f5b5
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85f5b5
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x85f5b5
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85f5b5
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85f5b5
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x85f5b5
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
jmp 0x85f5b5
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x85f5b5
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x85f5b5
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
mov esi, 0xfffffff4
cmp eax, 1
jg case.0x85dee9.6
xor esi, esi
mov eax, esi
add esp, 0x13c
pop esi
pop edi
pop ebx
pop ebp
ret
mov esi, 0xfffffc1b
jmp case.0x85dee9.6