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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x150
push ebx
mov ebx, edx
mov eax, ecx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 8], eax
push esi
push edi
test ebx, ebx
je 0x8681ff
mov esi, dword [ebp + 0x10]
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x38], 0
mov eax, dword [esi]
mov ecx, dword [esi + 0x50]
mov dword [ebp - 0x24], ecx
cmp eax, dword [esi + 4]
jae 0x870158
mov edx, dword [ebp - 8]
inc eax
mov dword [esi], eax
mov eax, dword [ebp + 0x18]
cmp eax, dword [esi + 8]
jae 0x8353f3
cmp dword [esi + 0x9c], 2
je 0x868230
movzx ecx, word [ebx]
mov edi, ecx
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x2c], 0
cmp edi, 0xa1
ja case.0x834a45.98
movzx eax, byte [edi + 0x83554c]
jmp dword [eax*4 + 0x835400]
movzx eax, word [ebx + 2]
mov edi, ebx
add eax, eax
mov ecx, 0x88
sub edi, eax
mov dword [ebp - 0x20], edi
movzx eax, word [edi]
cmp ax, cx
jae 0x868ec4
mov ecx, 0x81
cmp ax, cx
je 0x868ec4
xor ecx, ecx
mov dword [ebp - 0x1c], ecx
cmp eax, 0x7d
jb 0x834a93
mov dword [ebp - 0x14], 0x80
cmp ax, word [ebp - 0x14]
jbe 0x86e49f
mov dword [ebp - 0x14], 0x82
cmp ax, word [ebp - 0x14]
je 0x86e49f
mov dword [ebp - 0x14], 0x85
cmp ax, word [ebp - 0x14]
je 0x834e10
mov dword [ebp - 0x14], 0x8a
cmp ax, word [ebp - 0x14]
je 0x834e10
mov dword [ebp - 0x14], 0x86
cmp ax, word [ebp - 0x14]
je 0x834e10
mov dword [ebp - 0x14], 0x8b
cmp ax, word [ebp - 0x14]
je 0x834e10
movzx eax, word [ebx]
cmp eax, 0x78
jne 0x868f36
mov eax, 0x81
cmp word [edi], ax
je 0x86e445
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x834a1f
mov edx, dword [ebp - 8]
mov ebx, dword [ebp + 8]
cmp edx, ebx
je 0x870112
mov eax, dword [ebp + 0xc]
mov dword [esi + 0x84], edx
mov dword [esi + 0x90], eax
mov dword [esi + 0x80], ebx
test edi, edi
jne 0x8353df
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp edi, 0x88
jae 0x86e2fc
cmp edi, 0x81
je 0x86e2fc
cmp dword [esi + 0x70], 0
jne 0x835302
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
je 0x835302
movzx eax, word [ebx]
movzx eax, byte [eax + 0x8c5750]
lea ebx, [ebx + eax*2]
mov dword [ebp - 0x30], ebx
mov edx, dword [ebp - 8]
mov eax, dword [esi + 0x50]
mov dword [ebp - 0x24], eax
mov eax, dword [esi]
cmp eax, dword [esi + 4]
jb 0x834a03
jmp 0x870158
mov edi, dword [esi + 0x7c]
mov eax, dword [ebp - 8]
mov dword [ebp - 0x28], edi
cmp eax, edi
jae 0x86e4bf
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 8], eax
je 0x834bd0
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
je 0x869dff
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x8d3b40]
shl eax, 7
and ecx, 0x8000007f
jns 0x834bf2
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x8c5840]
movzx eax, byte [eax*8 + 0x8c2f52]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 8]
cmp eax, edi
jae 0x834c8d
mov ebx, dword [ebp - 0x28]
mov esi, eax
cmp dword [ebp - 0x24], 0
mov edi, 1
movzx ecx, word [esi]
je 0x834c33
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
je 0x869e24
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x8d3b40]
shl eax, 7
and ecx, 0x8000007f
jns 0x834c55
dec ecx
or ecx, 0xffffff80
inc ecx
mov edx, dword [ebp - 0x14]
add eax, ecx
movzx eax, word [eax*2 + 0x8c5840]
movzx ecx, byte [eax*8 + 0x8c2f52]
mov eax, 1
shl eax, cl
test dword [edx*4 + 0x8c5800], eax
jne 0x834d87
mov ebx, dword [ebp - 0x30]
mov edi, dword [ebp - 0x28]
mov dword [ebp - 8], esi
mov esi, dword [ebp + 0x10]
mov eax, dword [ebp - 8]
cmp dword [esi + 0x8c], 0
jne 0x869e48
add ebx, 2
mov dword [ebp - 0x30], ebx
mov edx, dword [ebp - 8]
jmp 0x834a1f
movzx ecx, word [ebx + 0x22]
lea eax, [ebx + 2]
add ebx, 0x22
mov dword [ebp - 0x20], eax
mov edx, ecx
mov dword [ebp - 0x30], ebx
mov eax, edx
cmp eax, 0x6d
jle 0x8351c2
mov edx, dword [ebp - 0x2c]
mov ecx, 1
mov eax, ecx
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x1c], ecx
cmp dword [ebp - 0x24], 0
je 0x86a10d
mov dword [ebp - 0x28], 1
cmp eax, 1
jl 0x835221
nop
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x86e4bf
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
mov eax, ecx
and eax, 0xfc00
mov dword [ebp - 0x14], ecx
cmp eax, 0xd800
je 0x86a0d7
cmp ecx, 0xff
ja 0x86a0ff
mov esi, dword [ebp - 0x20]
and ecx, 7
mov eax, 1
shl eax, cl
mov ecx, dword [ebp - 0x14]
shr ecx, 3
test byte [ecx + esi], al
mov esi, dword [ebp + 0x10]
je case.0x834a45.157
mov ecx, dword [ebp - 0x28]
inc ecx
mov dword [ebp - 0x28], ecx
cmp ecx, dword [ebp - 0x10]
jle 0x834cf0
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x1c]
cmp dword [ebp - 0x10], ecx
je 0x834ca0
test edx, edx
jne 0x86e650
mov ecx, eax
mov dword [ebp - 0x2c], ecx
cmp dword [ebp - 0x24], edx
je 0x86a1e0
mov ecx, dword [ebp - 0x1c]
cmp dword [ebp - 0x10], ecx
jge 0x835280
jmp 0x835233
lea esi, [esi + edi*2]
mov dword [ebp - 0x14], ecx
cmp esi, ebx
jb 0x834c13
jmp 0x834c7e
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x86e4bf
cmp dword [ebp - 0x24], 0
je 0x86a611
movzx edi, word [ebx + 2]
add ebx, 2
mov eax, edi
mov edx, 1
and eax, 0xfc00
cmp eax, 0xd800
je 0x86a55e
mov eax, dword [ebp - 8]
movzx ecx, word [eax]
cmp edi, 0x80
jae 0x86a582
cmp ecx, 0xff
ja 0x834def
mov eax, dword [esi + 0x3c]
movzx ecx, byte [eax + ecx]
mov eax, dword [esi + 0x3c]
movzx eax, byte [eax + edi]
cmp eax, ecx
jne case.0x834a45.157
add ebx, 2
add dword [ebp - 8], 2
mov edx, dword [ebp - 8]
mov dword [ebp - 0x30], ebx
jmp 0x834a1f
movzx ecx, word [edi + 4]
mov eax, dword [esi + 0xa8]
mov dword [ebp - 0x28], ecx
lea edi, [ecx + ecx]
mov dword [ebp - 0x14], edi
test eax, eax
jne 0x868eda
mov eax, dword [esi + 0x94]
and eax, 0xffff0000
or eax, ecx
mov dword [esi + 0x94], eax
cmp edi, dword [esi + 0x14]
jge 0x868eff
mov ecx, dword [ebp + 0xc]
cmp edi, ecx
jg 0x868f0f
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0xc]
sub eax, dword [ebp - 0x28]
mov edx, dword [ebp - 8]
mov eax, dword [ecx + eax*4]
mov dword [ecx + edi*4], eax
mov ecx, dword [ebp - 8]
sub ecx, dword [esi + 0x78]
mov eax, dword [esi + 0xc]
sar ecx, 1
mov dword [eax + edi*4 + 4], ecx
cmp dword [ebp + 0xc], edi
jg 0x834e7e
lea eax, [edi + 2]
mov dword [ebp + 0xc], eax
mov edi, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x1c]
jmp 0x834ae8
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x86e4bf
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 0x14], ecx
mov dword [ebp - 8], eax
je 0x834eb9
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
je 0x869bc7
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0x14]
sar eax, 7
movzx ecx, byte [eax + 0x8d3b40]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x834edf
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ebx + 2]
movzx ecx, word [ecx*2 + 0x8c5840]
mov dword [ebp - 0x14], ecx
cmp eax, 9
jne 0x869bef
movzx eax, word [ebx + 4]
mov ecx, dword [eax*4 + 0x8c45d0]
lea eax, [eax*4 + 0x8c45d0]
cmp edx, ecx
jb 0x869df1
lea eax, [eax + 4]
cmp edx, ecx
je 0x834f25
mov ecx, dword [eax]
cmp edx, ecx
jae 0x834f13
jmp 0x869df1
cmp edi, 0x10
jne case.0x834a45.157
mov edx, dword [ebp - 8]
add ebx, 6
mov dword [ebp - 0x30], ebx
jmp 0x834a1f
cmp dword [ebp - 0x24], 0
je 0x86a52f
mov ax, word [ebx + 2]
add ebx, 2
mov ecx, 0xfc00
mov dword [ebp - 0x30], ebx
and ax, cx
mov edi, 1
mov ecx, 0xd800
cmp ax, cx
je 0x8353c7
mov eax, dword [esi + 0x7c]
mov edx, dword [ebp - 8]
sub eax, edx
sar eax, 1
cmp edi, eax
jg 0x86e87e
test edi, edi
jle 0x834ca0
mov cx, word [ebx]
dec edi
mov ax, word [edx]
add ebx, 2
add edx, 2
mov dword [ebp - 0x30], ebx
mov dword [ebp - 8], edx
cmp cx, ax
jne case.0x834a45.157
test edi, edi
jle 0x834ca0
jmp 0x834f85
movzx edx, word [ebx + 4]
mov dword [ebp - 0x28], edx
lea eax, [edx + edx]
mov dword [ebp - 0x14], eax
cmp eax, dword [esi + 0x14]
jge case.0x834a45.129
mov ecx, dword [esi + 0xc]
mov edx, dword [ebp - 0x14]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0x3c], eax
mov eax, dword [ecx + edx*4 + 4]
mov dword [ebp - 0x38], eax
mov eax, dword [esi + 0x10]
sub eax, dword [ebp - 0x28]
lea ecx, [ecx + eax*4]
mov eax, dword [ecx]
mov dword [ebp - 0x34], eax
mov eax, dword [esi + 0x94]
mov dword [ebp - 0x20], eax
mov eax, dword [esi + 0xb0]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 8]
sub eax, dword [esi + 0x78]
sar eax, 1
mov dword [ecx], eax
mov edi, edi
cmp edi, 0x88
jae 0x86fe05
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
movzx eax, word [ebx]
push esi
push dword [ebp + 0xc]
movzx eax, byte [eax + 0x8c5750]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
call fcn.008349c0
mov edx, eax
add esp, 0x14
cmp edx, 0xfffffc1b
je 0x86fe5c
cmp edx, 0xfffffc20
je 0x86fe14
test edx, edx
je 0x86fe39
mov eax, edx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
lea ecx, [edi - 0x55]
add ebx, 2
test cl, 1
je 0x8353d8
mov eax, 1
movsx edi, byte [ecx + 0x8c573c]
movsx edx, byte [ecx + 0x8c5730]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x18], edi
test edi, edi
jne 0x83509d
mov dword [ebp - 0x18], 0x7fffffff
movzx edi, word [ebx]
add ebx, 2
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x30], ebx
cmp edi, 0x10
je 0x86b3f4
cmp edi, 0xf
je 0x86b3eb
or ecx, 0xffffffff
mov dword [ebp - 0x10], ecx
test edx, edx
jg 0x86b413
mov edi, dword [ebp - 8]
cmp edx, dword [ebp - 0x18]
je 0x834ca0
test eax, eax
je 0x86c995
test ecx, ecx
jns 0x86ec6a
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.008349c0
add esp, 0x14
cmp dword [ebp - 0x1c], 0x16
je 0x86f59a
cmp dword [ebp - 0x24], 0
je 0x86fa72
test eax, eax
jne 0x834b3d
lea esp, [esp]
mov edx, dword [ebp - 0xc]
cmp edx, dword [ebp - 0x18]
jge case.0x834a45.157
mov ecx, dword [esi + 0x7c]
cmp edi, ecx
jae 0x86e866
cmp dword [ebp - 0x1c], 0xc
jne 0x835165
mov edx, dword [esi + 0x18]
test edx, edx
je 0x86f723
push dword [ebp - 0x24]
lea eax, [esi + 0x1c]
push eax
push ecx
mov ecx, edi
call fcn.00835e9f
add esp, 0xc
test eax, eax
jne case.0x834a45.157
mov edx, dword [ebp - 0xc]
movzx ecx, word [edi]
add edi, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
je 0x86f75c
mov eax, dword [ebp - 0x1c]
cmp eax, 0xc
jne 0x86f77d
cmp dword [esi + 0x8c], 0
jne 0x86fa30
mov eax, dword [ebp + 0x18]
inc edx
inc eax
mov dword [ebp - 0xc], edx
push eax
push dword [ebp + 0x14]
mov edx, ebx
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.008349c0
add esp, 0x14
test eax, eax
jne 0x834b3d
jmp 0x835120
sub eax, 0x62
cmp eax, 0xb
ja case.default.0x8351d5
movzx eax, byte [eax + 0x8355f8]
jmp dword [eax*4 + 0x8355f0]
lea eax, [edx - 0x62]
add ebx, 2
mov dword [ebp - 0x30], ebx
cmp eax, 8
jb 0x835379
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x34], 1
movsx ecx, byte [eax + 0x8c5730]
mov dword [ebp - 0x10], ecx
movsx ecx, byte [eax + 0x8c573c]
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x1c], ecx
test ecx, ecx
jne 0x834cd5
mov ecx, 0x7fffffff
jmp 0x834cd2
mov eax, dword [ebp - 8]
jmp 0x834d57
mov eax, dword [ebp - 8]
mov ecx, 1
mov dword [ebp - 0x14], ecx
cmp eax, dword [esi + 0x7c]
jae 0x86a1b3
movzx edx, word [eax]
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
je 0x86a17b
cmp edx, 0xff
ja 0x86a1a5
mov ecx, edx
mov eax, 1
and ecx, 7
shr edx, 3
shl eax, cl
mov ecx, dword [ebp - 0x20]
test byte [edx + ecx], al
jne 0x835384
cmp dword [ebp - 0x34], 0
jne 0x834ca0
mov eax, dword [ebp + 0x18]
mov edx, ebx
mov edi, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.008349c0
add esp, 0x14
test eax, eax
jne 0x834b3d
jmp 0x86e606
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je case.0x834a45.119
mov dword [ebp - 0x30], ebx
jmp 0x834a1f
mov eax, dword [ebp + 0x18]
add ebx, 2
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, ebx
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.008349c0
add esp, 0x14
test eax, eax
jne 0x834b3d
jmp 0x868c12
mov eax, dword [esi + 0xb0]
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x14], eax
mov eax, dword [esi + 0x94]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
movzx eax, word [ebx]
push esi
push dword [ebp + 0xc]
movzx eax, byte [eax + 0x8c5750]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
call fcn.008349c0
mov edx, eax
add esp, 0x14
cmp edx, 0xfffffc20
je 0x86e30b
test edx, edx
jne 0x86fe86
movzx eax, word [ebx + 2]
lea ebx, [ebx + eax*2]
mov eax, dword [ebp - 0x14]
mov dword [esi + 0xb0], eax
cmp word [ebx], 0x77
jne case.0x834a45.157
mov eax, dword [ebp - 0x28]
mov dword [esi + 0x94], eax
jmp case.0x834a45.129
test al, 1
jne 0x8353bd
xor edx, edx
jmp 0x8351f8
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 8]
lea eax, [eax + ecx*2]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x10], eax
cmp eax, dword [ebp - 0x1c]
jl 0x835230
jmp 0x835280
add ebx, 2
jmp 0x868c6b
mov eax, dword [ebp - 8]
jmp 0x868f62
mov edi, dword [ebp - 0x24]
jmp 0x86956f
mov edx, 1
jmp 0x8351f8
mov edi, 2
jmp 0x834f6b
xor ecx, ecx
jmp 0x86a6a4
xor eax, eax
jmp 0x83507b
mov eax, 0xfffffc19
jmp 0x834b3d
mov eax, 0xfffffffb
jmp 0x834b3d
mov eax, 0xffffffeb
jmp 0x834b3d
cmp dword [ebp + 0x18], 0
lea ecx, [ebp + 0x18]
jne 0x868221
push 1
push 0
push 0
push 0
push 0
xor edx, edx
call fcn.008349c0
add esp, 0x14
jmp 0x834b3d
sub ecx, eax
test ecx, ecx
jle 0x868229
neg ecx
mov eax, ecx
jmp 0x834b3d
mov eax, dword [ebp - 8]
mov dword [ebp - 0x58], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x5c], eax
lea eax, [ebp - 0x5c]
mov dword [ebp + 0x14], eax
mov dword [esi + 0x9c], 0
jmp 0x834ca0
inc dword [esi + 0x28]
mov eax, dword [esi + 0x28]
cmp eax, dword [esi + 0x2c]
ja 0x86e337
movzx eax, word [ebx]
movzx ecx, byte [eax + 0x8c5750]
movzx eax, word [ebx + 2]
add ecx, eax
lea ebx, [ebx + ecx*2]
mov dword [ebp - 0x30], ebx
jmp 0x834a1f
mov eax, dword [ebp - 8]
mov edi, dword [esi + 0xb0]
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x28], eax
mov eax, dword [ebp + 0x18]
lea edx, [ebx + 4]
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.008349c0
add esp, 0x14
cmp eax, 1
je 0x8682f8
cmp eax, 0xfffffc20
jne 0x8682d8
movzx ecx, word [ebx + 2]
lea ecx, [ebx + ecx*2]
cmp dword [esi + 0x80], ecx
jae 0x834b3d
cmp word [ebx], 0x77
je 0x8682e0
cmp word [ecx], 0x77
jne 0x834b3d
jmp 0x8682e0
test eax, eax
jne 0x834b3d
movzx eax, word [ebx + 2]
lea ebx, [ebx + eax*2]
mov dword [esi + 0xb0], edi
cmp word [ebx], 0x77
je 0x86828a
mov ecx, dword [ebp + 8]
jmp 0x868301
mov ecx, dword [esi + 0x80]
mov dword [ebp + 8], ecx
movzx eax, word [ebx]
mov edx, 0x82
cmp ax, dx
je 0x868317
cmp eax, 0x77
jne case.0x834a45.157
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x868317
cmp word [ebx], 0x78
mov edx, dword [esi + 0x90]
mov eax, dword [esi + 0x84]
mov dword [ebp + 0xc], edx
mov dword [ebp - 8], eax
je 0x86898e
cmp eax, dword [ebp - 0x28]
jne 0x86e0c5
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x834ca0
mov dword [ebp - 0x20], 0
jmp 0x868ca6
mov dword [ebp - 0x20], 0
mov eax, ebx
mov dword [ebp - 0x14], 0
sub eax, dword [esi + 0x74]
sar eax, 1
mov dword [ebp - 0x28], eax
mov eax, dword [esi + 0x94]
mov dword [ebp - 0x1c], eax
cmp edi, 0x88
jb 0x868394
mov dword [esi + 0x9c], 2
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
movzx eax, word [ebx]
push esi
push dword [ebp + 0xc]
movzx eax, byte [eax + 0x8c5750]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
call fcn.008349c0
mov ecx, eax
add esp, 0x14
cmp ecx, 0xfffffc1a
jne 0x868d95
mov eax, dword [esi + 0x90]
mov ecx, dword [ebp - 0x28]
mov dword [ebp + 0xc], eax
mov eax, dword [esi + 0x74]
mov dword [ebp - 0x14], 1
lea ebx, [eax + ecx*2]
mov eax, dword [esi + 0x80]
mov dword [ebp + 8], eax
mov eax, dword [esi + 0x84]
cmp dword [ebp - 8], eax
je 0x868de6
mov dword [ebp - 8], eax
jmp 0x868382
movzx eax, word [ebx + 2]
add ebx, 4
mov dword [ebp - 0x20], eax
cmp word [ebx], 0x76
jne 0x8684dd
cmp dword [0x8e7524], 0
je 0x8684d4
mov dword [ebp - 0x9c], 2
movzx eax, word [ebx + 2]
mov dword [ebp - 0x98], eax
mov eax, dword [esi + 0xc]
mov dword [ebp - 0x94], eax
mov eax, dword [esi + 0x78]
mov dword [ebp - 0x90], eax
mov eax, dword [esi + 0x7c]
sub eax, dword [esi + 0x78]
sar eax, 1
mov dword [ebp - 0x8c], eax
mov eax, dword [ebp + 8]
sub eax, dword [esi + 0x78]
sar eax, 1
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 8]
sub eax, dword [esi + 0x78]
sar eax, 1
mov dword [ebp - 0x84], eax
movzx eax, word [ebx + 4]
mov dword [ebp - 0x74], eax
movzx eax, word [ebx + 6]
mov dword [ebp - 0x70], eax
mov eax, dword [ebp + 0xc]
cdq
sub eax, edx
sar eax, 1
mov dword [ebp - 0x80], eax
movzx eax, word [esi + 0x94]
mov dword [ebp - 0x7c], eax
test eax, eax
jne 0x86849e
mov dword [ebp - 0x7c], 0xffffffff
mov eax, dword [esi + 0xac]
mov dword [ebp - 0x78], eax
mov eax, dword [esi + 0xb4]
mov dword [ebp - 0x6c], eax
lea eax, [ebp - 0x9c]
push eax
call dword [0x8e7524]
add esp, 4
test eax, eax
jg case.0x834a45.157
js 0x834b3d
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0x20]
add ebx, 8
sub eax, 4
mov dword [ebp - 0x20], eax
movzx eax, word [ebx]
xor ecx, ecx
mov dword [ebp - 0x34], eax
add eax, 0xffffff73
mov dword [ebp - 0x1c], ecx
cmp eax, 0x10
ja case.0x8684fd.146
movzx eax, byte [eax + 0x87017f]
jmp dword [eax*4 + 0x870167]
mov ecx, dword [esi + 0xa8]
test ecx, ecx
je 0x86869e
movzx eax, word [ebx + 2]
cmp eax, 0xffff
je 0x8685a1
cmp eax, dword [ecx + 4]
je 0x8685a1
xor ecx, ecx
jmp case.0x8684fd.145
cmp dword [esi + 0xa8], ecx
je case.0x8684fd.145
movzx ecx, word [ebx + 2]
imul ecx, dword [esi + 0x24]
mov eax, dword [esi + 0x30]
lea eax, [eax + ecx*2]
movzx ecx, word [ebx + 4]
mov dword [ebp - 0x28], eax
test ecx, ecx
jle 0x86869e
mov eax, dword [esi + 0xa8]
mov dword [ebp - 0x1c], 0
mov eax, dword [eax + 4]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x28]
dec ecx
movzx eax, word [eax]
cmp eax, dword [ebp - 0x14]
je 0x8685a1
mov edx, dword [ebp - 0x28]
mov eax, dword [esi + 0x24]
lea edx, [edx + eax*2]
mov dword [ebp - 0x28], edx
mov edx, dword [ebp - 8]
test ecx, ecx
jg 0x868569
jmp 0x86869e
movzx ecx, word [ebx + 2]
add ecx, ecx
cmp ecx, dword [ebp + 0xc]
jge 0x868526
mov eax, dword [esi + 0xc]
cmp dword [eax + ecx*4], 0
jl 0x868526
mov ecx, 1
jmp 0x868680
movzx ecx, word [ebx + 2]
imul ecx, dword [esi + 0x24]
mov eax, dword [esi + 0x30]
lea ecx, [eax + ecx*2]
movzx eax, word [ebx + 4]
mov dword [ebp - 0x14], ecx
test eax, eax
jle 0x86869e
mov dword [ebp - 0x1c], 0
movzx ecx, word [ecx]
dec eax
add ecx, ecx
mov dword [ebp - 0x28], eax
cmp ecx, dword [ebp + 0xc]
jge 0x8685e6
mov eax, dword [esi + 0xc]
cmp dword [eax + ecx*4], 0
jge 0x8685a1
mov eax, dword [esi + 0x24]
mov ecx, dword [ebp - 0x14]
lea ecx, [ecx + eax*2]
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x14], ecx
test eax, eax
jg 0x8685cf
jmp 0x86869e
mov ecx, dword [ebp - 8]
mov edx, ebx
mov dword [esi + 0x9c], 1
mov eax, dword [ebp + 0x18]
inc eax
push eax
push 0
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.008349c0
add esp, 0x14
cmp eax, 1
jne 0x86868c
mov eax, dword [esi + 0x90]
cmp eax, dword [ebp + 0xc]
jle 0x868636
mov dword [ebp + 0xc], eax
mov eax, 0x92
mov dword [ebp - 0x1c], 1
cmp word [ebx], ax
jne 0x86864a
add ebx, 2
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea edx, [ebx + eax*2]
jne 0x868666
movzx eax, word [edx + 2]
cmp word [edx + eax*2], 0x77
lea edx, [edx + eax*2]
je 0x868658
mov eax, dword [ebp - 0x34]
mov ecx, 2
movzx eax, byte [eax + 0x8c5750]
sub ecx, eax
lea ebx, [edx + ecx*2]
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x34]
movzx eax, byte [eax + 0x8c5750]
jmp 0x8686a4
test eax, eax
je 0x86869b
cmp eax, 0xfffffc20
jne 0x834b3d
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
lea ebx, [ebx + eax*2]
mov dword [ebp - 0x30], ebx
test ecx, ecx
jne 0x8686b9
cmp word [ebx - 4], 0x77
jne 0x834a1f
cmp edi, 0x8c
jne 0x834b88
mov ecx, dword [ebp - 8]
mov edx, ebx
mov dword [esi + 0x9c], 2
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.008349c0
add esp, 0x14
jmp 0x834b3d
movzx edi, word [ebx + 2]
mov eax, dword [esi + 0x94]
and eax, 0xffff0000
or eax, edi
lea ecx, [edi + edi]
mov dword [esi + 0x94], eax
cmp ecx, dword [esi + 0x14]
jl 0x86871c
or eax, 0x10000
mov dword [esi + 0x94], eax
jmp 0x868765
mov eax, dword [esi + 0x10]
lea edx, [edi + edi]
mov ecx, dword [esi + 0xc]
sub eax, edi
mov eax, dword [ecx + eax*4]
mov dword [ecx + edx*4], eax
mov ecx, dword [ebp - 8]
sub ecx, dword [esi + 0x78]
mov eax, dword [esi + 0xc]
sar ecx, 1
mov dword [eax + edx*4 + 4], ecx
mov ecx, dword [ebp + 0xc]
cmp edx, ecx
jl 0x868762
mov eax, dword [esi + 0xc]
lea edi, [eax + ecx*4]
lea ecx, [eax + edx*4]
cmp edi, ecx
jae 0x86875c
sub ecx, edi
dec ecx
shr ecx, 2
inc ecx
or eax, 0xffffffff
rep stosd dword es:[edi], eax
lea eax, [edx + 2]
mov dword [ebp + 0xc], eax
mov edx, dword [ebp - 8]
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x834a1f
cmp dword [esi + 0x9c], 1
mov eax, dword [esi + 0xb0]
mov dword [ebp - 0x14], eax
jne 0x868793
mov edi, 1
mov dword [esi + 0x9c], 0
jmp 0x868795
xor edi, edi
mov eax, dword [ebp + 0x18]
lea edx, [ebx + 4]
mov ecx, dword [ebp - 8]
inc eax
push eax
push 0
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.008349c0
mov ecx, eax
add esp, 0x14
cmp ecx, 1
je 0x86880e
cmp ecx, 0xfffffc19
je 0x86880e
mov eax, dword [ebp - 0x14]
mov dword [esi + 0xb0], eax
cmp ecx, 0xfffffc20
jne 0x8687f6
movzx eax, word [ebx + 2]
lea eax, [ebx + eax*2]
cmp dword [esi + 0x80], eax
jae 0x868229
cmp word [ebx], 0x77
je 0x8687fe
cmp word [eax], 0x77
jne 0x868229
jmp 0x8687fe
test ecx, ecx
jne 0x868229
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x868795
jmp 0x868817
mov eax, dword [esi + 0x80]
mov dword [ebp + 8], eax
cmp word [ebx], 0x78
je case.0x834a45.157
test edi, edi
jne 0x834b38
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x868829
mov eax, dword [esi + 0x90]
add ebx, 4
mov dword [ebp - 0x30], ebx
mov dword [ebp + 0xc], eax
jmp 0x834ca0
cmp dword [esi + 0x9c], 1
mov edi, dword [esi + 0xb0]
jne 0x86886d
mov dword [ebp - 0x14], 1
mov dword [esi + 0x9c], 0
jmp 0x868874
mov dword [ebp - 0x14], 0
mov eax, dword [ebp + 0x18]
lea edx, [ebx + 4]
mov ecx, dword [ebp - 8]
inc eax
push eax
push 0
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.008349c0
mov ecx, eax
mov dword [esi + 0xb0], edi
add esp, 0x14
cmp ecx, 0xfffffc20
jg 0x8688cd
jne 0x8688e0
movzx eax, word [ebx + 2]
lea eax, [ebx + eax*2]
cmp dword [esi + 0x80], eax
jae 0x8688fb
cmp word [ebx], 0x77
je 0x8688bd
cmp word [eax], 0x77
jne 0x8688fb
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x868874
jmp 0x868909
mov eax, ecx
sub eax, 0
je 0x8688bd
dec eax
je case.0x834a45.157
jmp 0x868229
cmp ecx, 0xfffffc19
je case.0x834a45.157
lea eax, [ecx + 0x3e4]
cmp eax, 3
ja 0x868229
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x8688fb
cmp dword [ebp - 0x14], 0
jne 0x834b38
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x834ca0
cmp dword [ebp - 0x24], 0
je 0x868963
movzx ecx, word [ebx + 2]
test ecx, ecx
jle 0x86897d
mov eax, dword [ebp - 8]
dec ecx
sub eax, 2
mov dword [ebp - 8], eax
cmp eax, dword [esi + 0x78]
jb case.0x834a45.157
mov ax, word [eax]
mov edx, 0xfc00
and ax, dx
mov edx, 0xdc00
cmp ax, dx
mov eax, dword [ebp - 8]
jne 0x86895d
sub eax, 2
mov dword [ebp - 8], eax
test ecx, ecx
jg 0x86892c
jmp 0x868980
movzx eax, word [ebx + 2]
mov ecx, dword [ebp - 8]
neg eax
lea ecx, [ecx + eax*2]
mov eax, ecx
mov dword [ebp - 8], ecx
cmp eax, dword [esi + 0x78]
jb case.0x834a45.157
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x88]
jae 0x86898e
mov dword [esi + 0x88], eax
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x834ca0
cmp dword [0x8e7524], 0
je 0x868a6c
mov dword [ebp - 0xd0], 2
movzx eax, word [ebx + 2]
mov dword [ebp - 0xcc], eax
mov eax, dword [esi + 0xc]
mov dword [ebp - 0xc8], eax
mov eax, dword [esi + 0x78]
mov dword [ebp - 0xc4], eax
mov eax, dword [esi + 0x7c]
sub eax, dword [esi + 0x78]
sar eax, 1
mov dword [ebp - 0xc0], eax
mov eax, dword [ebp + 8]
sub eax, dword [esi + 0x78]
sar eax, 1
mov dword [ebp - 0xbc], eax
mov eax, dword [ebp - 8]
sub eax, dword [esi + 0x78]
sar eax, 1
mov dword [ebp - 0xb8], eax
movzx eax, word [ebx + 4]
mov dword [ebp - 0xa8], eax
movzx eax, word [ebx + 6]
mov dword [ebp - 0xa4], eax
mov eax, dword [ebp + 0xc]
cdq
sub eax, edx
sar eax, 1
mov dword [ebp - 0xb4], eax
movzx eax, word [esi + 0x94]
mov dword [ebp - 0xb0], eax
test eax, eax
jne 0x868a33
mov dword [ebp - 0xb0], 0xffffffff
mov eax, dword [esi + 0xac]
mov dword [ebp - 0xac], eax
mov eax, dword [esi + 0xb4]
mov dword [ebp - 0xa0], eax
lea eax, [ebp - 0xd0]
push eax
call dword [0x8e7524]
add esp, 4
test eax, eax
jg case.0x834a45.157
js 0x834b3d
mov edx, dword [ebp - 8]
add ebx, 8
mov dword [ebp - 0x30], ebx
jmp 0x834a1f
mov ecx, dword [esi + 0x74]
movzx eax, word [ebx + 2]
lea edi, [ecx + eax*2]
mov dword [ebp - 0x14], edi
cmp edi, ecx
jne 0x868a8c
xor edx, edx
jmp 0x868a90
movzx edx, word [edi + 4]
mov ecx, dword [esi + 0xa8]
test ecx, ecx
je 0x868ab7
mov eax, dword [ebp - 8]
cmp edx, dword [ecx + 4]
jne 0x868ab1
cmp eax, dword [ecx + 0x14]
jne 0x868ab1
mov eax, 0xffffffe6
jmp 0x834b3d
mov ecx, dword [ecx]
test ecx, ecx
jne 0x868a9d
mov dword [ebp - 0x50], edx
add ebx, 4
mov eax, dword [esi + 0x94]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 8]
mov dword [ebp - 0x40], eax
mov eax, dword [esi + 0xa8]
mov dword [ebp - 0x54], eax
lea eax, [ebp - 0x54]
mov dword [esi + 0xa8], eax
mov ecx, dword [esi + 0x10]
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x48], ecx
cmp ecx, 0x1e
jg 0x868af7
lea eax, [ebp - 0x14c]
mov dword [ebp - 0x4c], eax
jmp 0x868b16
lea eax, [ecx*4]
push eax
call dword [0x8c574c]
add esp, 4
mov dword [ebp - 0x4c], eax
test eax, eax
je 0x86e3d1
mov ecx, dword [ebp - 0x48]
shl ecx, 2
push ecx
push dword [esi + 0xc]
push eax
call fcn.00841080
mov eax, 0x88
add esp, 0xc
cmp word [edi], ax
sbb eax, eax
inc eax
mov dword [ebp - 0x28], eax
test eax, eax
je 0x868b42
mov dword [esi + 0x9c], 2
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
movzx eax, word [edi]
push esi
push dword [ebp + 0xc]
movzx eax, byte [eax + 0x8c5750]
push dword [ebp + 8]
lea edx, [edi + eax*2]
call fcn.008349c0
mov ecx, dword [ebp - 0x48]
add esp, 0x14
shl ecx, 2
mov edi, eax
push ecx
push dword [ebp - 0x4c]
push dword [esi + 0xc]
call fcn.00841080
mov eax, dword [ebp - 0x44]
add esp, 0xc
mov dword [esi + 0x94], eax
mov eax, dword [ebp - 0x54]
mov dword [esi + 0xa8], eax
cmp edi, 1
je 0x868be4
cmp edi, 0xfffffc19
je 0x868be4
cmp edi, 0xfffffc1c
jl 0x868bb3
cmp edi, 0xfffffc20
jle 0x86e388
test edi, edi
jne 0x86e3a8
mov edi, dword [ebp - 0x14]
lea eax, [ebp - 0x54]
mov dword [esi + 0xa8], eax
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x77
lea edi, [edi + eax*2]
mov dword [ebp - 0x14], edi
jne 0x86e37f
mov eax, dword [ebp - 0x28]
jmp 0x868b34
mov eax, dword [ebp - 0x4c]
lea ecx, [ebp - 0x14c]
cmp eax, ecx
je 0x868bfb
push eax
call dword [0x8c5748]
add esp, 4
mov eax, dword [esi + 0x84]
mov dword [ebp - 8], eax
mov eax, dword [esi + 0x80]
mov dword [ebp + 8], eax
jmp 0x834ca0
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x868c12
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x834ca0
add ebx, 2
mov dword [ebp - 0x30], ebx
mov edx, ebx
movzx eax, word [edx + 2]
cmp word [edx + eax*2], 0x77
lea edx, [edx + eax*2]
je 0x868c33
mov eax, dword [ebp + 0x18]
add edx, 4
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.008349c0
add esp, 0x14
test eax, eax
jne 0x834b3d
jmp 0x834ca0
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x868c6b
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x834a1f
movzx edi, word [ebx + 2]
add ebx, 2
mov dword [ebp - 0x20], 1
cmp edi, 0x86
je 0x868ca6
cmp edi, 0x8b
jne 0x868368
movzx edx, word [ebx + 4]
mov dword [ebp - 0x28], edx
lea eax, [edx + edx]
cmp eax, dword [esi + 0x14]
jge 0x868368
mov ecx, ebx
shl eax, 2
sub ecx, dword [esi + 0x74]
sar ecx, 1
mov dword [ebp - 0x34], ecx
mov ecx, dword [esi + 0xc]
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x1c], 0
mov edx, dword [eax + ecx]
mov eax, dword [eax + ecx + 4]
mov dword [ebp - 0x30], eax
mov eax, dword [esi + 0x10]
sub eax, dword [ebp - 0x28]
mov dword [ebp - 0x2c], edx
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0x18], eax
mov eax, dword [esi + 0x94]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 8]
mov ecx, dword [esi + 0x10]
mov edx, eax
sub edx, dword [esi + 0x78]
sub ecx, dword [ebp - 0x28]
mov eax, dword [esi + 0xc]
sar edx, 1
mov dword [eax + ecx*4], edx
cmp edi, 0x88
jb 0x868d1d
mov dword [esi + 0x9c], 2
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
movzx eax, word [ebx]
push esi
push dword [ebp + 0xc]
movzx eax, byte [eax + 0x8c5750]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
call fcn.008349c0
mov ecx, eax
add esp, 0x14
cmp ecx, 0xfffffc1a
jne 0x868e18
mov eax, dword [esi + 0x90]
mov ecx, dword [ebp - 0x34]
mov dword [ebp + 0xc], eax
mov eax, dword [esi + 0x74]
lea ebx, [eax + ecx*2]
mov eax, dword [esi + 0x94]
mov dword [ebp - 0x14], eax
mov ecx, 1
mov eax, dword [esi + 0x80]
mov dword [ebp + 8], eax
mov eax, dword [esi + 0x84]
mov dword [ebp - 0x1c], ecx
cmp dword [ebp - 8], eax
je 0x868e99
mov dword [ebp - 8], eax
jmp 0x868cf8
cmp ecx, 0xfffffc20
jne 0x868dc2
movzx eax, word [ebx + 2]
lea eax, [ebx + eax*2]
cmp dword [esi + 0x80], eax
jae 0x868229
cmp word [ebx], 0x77
je 0x868dca
cmp word [eax], 0x77
jne 0x868229
jmp 0x868dca
test ecx, ecx
jne 0x868229
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
jne 0x868df9
mov eax, dword [ebp - 0x1c]
mov dword [esi + 0x94], eax
jmp 0x868382
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x868de6
jmp 0x86898e
cmp dword [ebp - 0x14], 0
jne 0x86898e
cmp dword [ebp - 0x20], 0
je case.0x834a45.157
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x834ca0
cmp ecx, 0xfffffc20
jne 0x868e45
movzx eax, word [ebx + 2]
lea eax, [ebx + eax*2]
cmp dword [esi + 0x80], eax
jae 0x868229
cmp word [ebx], 0x77
je 0x868e4d
cmp word [eax], 0x77
jne 0x868229
jmp 0x868e4d
test ecx, ecx
jne 0x868229
mov eax, dword [ebp - 0x14]
mov dword [esi + 0x94], eax
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x868cf5
mov ecx, dword [ebp - 0x1c]
test ecx, ecx
jne 0x868ea7
mov eax, dword [esi + 0xc]
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x2c]
mov dword [ecx + eax], edx
mov eax, dword [esi + 0xc]
mov edx, dword [ebp - 0x30]
mov dword [ecx + eax + 4], edx
mov ecx, dword [esi + 0x10]
sub ecx, dword [ebp - 0x28]
mov eax, dword [esi + 0xc]
mov edx, dword [ebp - 0x18]
mov dword [eax + ecx*4], edx
mov ecx, dword [ebp - 0x1c]
jmp 0x868ea7
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x868e99
cmp dword [ebp - 0x20], 0
jne 0x86898e
test ecx, ecx
je case.0x834a45.157
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x834ca0
mov edx, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x14]
mov edx, dword [edx]
mov ecx, dword [ecx + 4]
mov dword [ebp + 0x14], edx
mov edx, dword [ebp - 8]
jmp 0x834a7a
cmp dword [eax + 4], ecx
jne 0x834e2b
mov eax, dword [ebp - 8]
mov dword [esi + 0x84], eax
mov eax, dword [ebp + 8]
mov dword [esi + 0x80], eax
mov eax, 1
jmp 0x834b3d
or eax, 0x10000
mov dword [esi + 0x94], eax
jmp 0x834e7e
mov eax, dword [esi + 0xc]
lea edx, [eax + ecx*4]
lea ecx, [eax + edi*4]
cmp edx, ecx
jae 0x834e52
sub ecx, edx
mov edi, edx
dec ecx
shr ecx, 2
inc ecx
or eax, 0xffffffff
rep stosd dword es:[edi], eax
mov edi, dword [ebp - 0x14]
jmp 0x834e52
cmp eax, 0x7b
je 0x86e47a
cmp dword [ebp - 8], ecx
jne 0x86e10f
mov edx, dword [ebp - 8]
jmp 0x834af4
cmp dword [esi + 0x48], 0
mov eax, dword [ebp - 8]
je 0x868f62
cmp eax, dword [esi + 0x78]
je case.0x834a45.157
cmp eax, dword [esi + 0x78]
jne case.0x834a45.157
add ebx, 2
mov dword [ebp - 0x30], ebx
jmp 0x834ca0
cmp dword [esi + 0x48], 0
mov eax, dword [ebp - 8]
je 0x868f88
cmp eax, dword [esi + 0x78]
je case.0x834a45.157
mov ecx, dword [esi + 0x78]
cmp eax, ecx
je 0x834c9a
cmp eax, dword [esi + 0x7c]
je case.0x834a45.157
mov edx, dword [esi + 0x18]
test edx, edx
je 0x868fcb
cmp eax, ecx
jbe case.0x834a45.157
push dword [ebp - 0x24]
lea eax, [esi + 0x1c]
push eax
push ecx
mov ecx, dword [ebp - 8]
call fcn.008aea2d
add esp, 0xc
test eax, eax
je case.0x834a45.157
jmp 0x834c9a
mov eax, dword [esi + 0x1c]
lea edi, [eax + eax]
lea eax, [edi + ecx]
cmp dword [ebp - 8], eax
jb case.0x834a45.157
mov ecx, dword [ebp - 8]
sub ecx, edi
mov ax, word [ecx]
cmp ax, word [esi + 0x34]
jne case.0x834a45.157
cmp dword [esi + 0x1c], 1
je 0x834c9a
mov ax, word [ecx + 2]
cmp ax, word [esi + 0x36]
jne case.0x834a45.157
jmp 0x834c9a
mov ecx, dword [esi + 0x98]
mov eax, dword [esi + 0x78]
lea eax, [eax + ecx*2]
cmp edx, eax
jne case.0x834a45.157
add ebx, 2
mov dword [ebp - 0x30], ebx
jmp 0x834a1f
mov eax, dword [ebp - 8]
add ebx, 2
mov dword [ebp + 8], eax
mov dword [ebp - 0x30], ebx
jmp 0x834ca0
mov ecx, dword [esi + 0x7c]
mov eax, dword [ebp - 8]
cmp eax, ecx
jae 0x869101
mov edx, dword [esi + 0x18]
test edx, edx
je 0x8690ca
push dword [ebp - 0x24]
lea eax, [esi + 0x1c]
push eax
push ecx
mov ecx, dword [ebp - 8]
call fcn.00835e9f
add esp, 0xc
test eax, eax
jne 0x834c9a
mov eax, dword [ebp - 8]
cmp dword [esi + 0x8c], 0
je case.0x834a45.157
add eax, 2
cmp eax, dword [esi + 0x7c]
jb case.0x834a45.157
cmp dword [esi + 0x18], 0
jne case.0x834a45.157
cmp dword [esi + 0x1c], 2
jne case.0x834a45.157
mov eax, dword [ebp - 8]
mov ax, word [eax]
cmp ax, word [esi + 0x34]
jne case.0x834a45.157
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle case.0x834a45.157
mov eax, 0xfffffff4
jmp 0x834b3d
mov edx, dword [esi + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
mov eax, dword [ebp - 8]
cmp eax, ecx
ja 0x86906f
mov ax, word [eax]
cmp ax, word [esi + 0x34]
jne 0x86906c
cmp edx, 1
je 0x834c9a
mov eax, dword [ebp - 8]
mov ax, word [eax + 2]
cmp ax, word [esi + 0x36]
jne 0x86906c
jmp 0x834c9a
cmp dword [esi + 0x4c], 0
jne case.0x834a45.157
cmp dword [esi + 0x8c], 0
je 0x834c9a
cmp eax, dword [esi + 0x88]
jbe 0x834c9a
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x8690c0
add ebx, 2
mov dword [ebp - 0x30], ebx
jmp 0x834ca0
cmp dword [esi + 0x4c], 0
jne case.0x834a45.157
cmp dword [esi + 0x5c], 0
je case.0x834a45.23
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jb case.0x834a45.157
jmp 0x86910b
mov ecx, dword [esi + 0x7c]
mov eax, dword [ebp - 8]
cmp eax, ecx
jae 0x86910b
mov edx, dword [esi + 0x18]
lea edi, [esi + 0x1c]
test edx, edx
je 0x869189
push dword [ebp - 0x24]
push edi
push ecx
mov ecx, eax
call fcn.00835e9f
add esp, 0xc
test eax, eax
jne 0x8691be
jmp 0x86906c
mov edx, dword [edi]
lea eax, [edx + edx]
sub ecx, eax
mov eax, dword [ebp - 8]
cmp eax, ecx
ja 0x86906f
mov ax, word [eax]
cmp ax, word [esi + 0x34]
jne 0x86906c
cmp edx, 1
je 0x8691be
mov eax, dword [ebp - 8]
mov ax, word [eax + 2]
cmp ax, word [esi + 0x36]
jne 0x86906c
mov ecx, dword [edi]
mov eax, dword [esi + 0x7c]
add ecx, ecx
sub eax, ecx
cmp dword [ebp - 8], eax
mov eax, dword [ebp - 8]
jne 0x86906f
jmp 0x86910b
cmp dword [ebp - 0x24], 0
mov eax, dword [ebp - 8]
je 0x86938a
cmp eax, dword [esi + 0x78]
je 0x8692c2
lea edx, [eax - 2]
mov ecx, 0xfc00
mov ax, word [edx]
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x869209
sub edx, 2
cmp edx, dword [esi + 0x88]
jae 0x869217
mov dword [esi + 0x88], edx
movzx ecx, word [edx]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x869242
movzx eax, word [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
cmp dword [esi + 0x58], 0
je 0x8692a4
cmp ecx, 0x5f
jne 0x869255
mov eax, dword [ebp - 8]
lea edi, [ecx - 0x5e]
jmp 0x8692c4
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x8d3b40]
shl eax, 7
and ecx, 0x8000007f
jns 0x869277
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x8c5840]
movzx eax, byte [eax*8 + 0x8c2f51]
mov eax, dword [eax*4 + 0x8d89a0]
cmp eax, 1
je 0x86929a
cmp eax, 3
jne 0x8692bf
mov eax, dword [ebp - 8]
mov edi, 1
jmp 0x8692c4
cmp ecx, 0x100
jae 0x8692bf
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je 0x8692bf
mov eax, dword [ebp - 8]
mov edi, 1
jmp 0x8692c4
mov eax, dword [ebp - 8]
xor edi, edi
cmp eax, dword [esi + 0x7c]
jae 0x86932c
movzx ecx, word [eax]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x8692f7
mov eax, dword [ebp - 8]
and ecx, 0x3ff
shl ecx, 0xa
movzx eax, word [eax + 2]
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
cmp dword [esi + 0x58], 0
je 0x869373
cmp ecx, 0x5f
je 0x8694b4
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x8d3b40]
shl eax, 7
and ecx, 0x8000007f
js 0x869460
jmp 0x869465
cmp dword [esi + 0x8c], 0
je 0x869351
cmp eax, dword [esi + 0x88]
jbe 0x869351
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x8690c0
xor ecx, ecx
mov ax, word [ebx]
add ebx, 2
mov dword [ebp - 0x30], ebx
cmp ax, 5
jne 0x8694be
cmp ecx, edi
je case.0x834a45.157
jmp 0x834ca0
cmp ecx, 0x100
jae 0x869351
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
jne 0x8694b4
jmp 0x869351
cmp eax, dword [esi + 0x78]
je 0x86942a
cmp eax, dword [esi + 0x88]
ja 0x8693a7
add eax, 0xfffffffe
mov dword [esi + 0x88], eax
mov eax, dword [ebp - 8]
cmp dword [esi + 0x58], 0
movzx ecx, word [eax - 2]
je 0x86940a
cmp ecx, 0x5f
jne 0x8693bb
lea edi, [ecx - 0x5e]
jmp 0x86942c
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x8d3b40]
shl eax, 7
and ecx, 0x8000007f
jns 0x8693dd
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x8c5840]
movzx eax, byte [eax*8 + 0x8c2f51]
mov eax, dword [eax*4 + 0x8d89a0]
cmp eax, 1
je 0x869400
cmp eax, 3
jne 0x869427
mov eax, dword [ebp - 8]
mov edi, 1
jmp 0x86942c
mov edx, 0xff
cmp cx, dx
ja 0x86942a
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je 0x869427
mov eax, dword [ebp - 8]
mov edi, 1
jmp 0x86942c
mov eax, dword [ebp - 8]
xor edi, edi
cmp eax, dword [esi + 0x7c]
jae 0x86932c
cmp dword [esi + 0x58], 0
je 0x869494
movzx ecx, word [eax]
cmp ecx, 0x5f
je 0x8694b4
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x8d3b40]
shl eax, 7
and ecx, 0x8000007f
jns 0x869465
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x8c5840]
movzx eax, byte [eax*8 + 0x8c2f51]
mov eax, dword [eax*4 + 0x8d89a0]
cmp eax, 1
je 0x8694b4
cmp eax, 3
jne 0x869351
lea ecx, [eax - 2]
jmp 0x869353
movzx eax, word [eax]
mov ecx, 0xff
cmp ax, cx
ja 0x869351
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je 0x869351
mov ecx, 1
jmp 0x869353
cmp ecx, edi
jne case.0x834a45.157
jmp 0x834ca0
mov edx, dword [esi + 0x18]
mov ecx, dword [esi + 0x7c]
test edx, edx
je 0x8694fa
mov eax, dword [ebp - 8]
mov edi, dword [ebp - 0x24]
cmp eax, ecx
jae 0x869532
push edi
lea eax, [esi + 0x1c]
push eax
push ecx
mov ecx, dword [ebp - 8]
call fcn.00835e9f
add esp, 0xc
test eax, eax
jne case.0x834a45.157
jmp 0x86952f
mov edx, dword [esi + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
mov eax, dword [ebp - 8]
cmp eax, ecx
ja 0x86952c
mov ax, word [eax]
cmp ax, word [esi + 0x34]
jne 0x86952c
cmp edx, 1
je case.0x834a45.157
mov eax, dword [ebp - 8]
mov ax, word [eax + 2]
cmp ax, word [esi + 0x36]
je case.0x834a45.157
mov edi, dword [ebp - 0x24]
mov eax, dword [ebp - 8]
cmp dword [esi + 0x8c], 0
je 0x869572
add eax, 2
cmp eax, dword [esi + 0x7c]
mov eax, dword [ebp - 8]
jb 0x869572
cmp dword [esi + 0x18], 0
jne 0x869572
cmp dword [esi + 0x1c], 2
jne 0x869572
mov ax, word [eax]
cmp ax, word [esi + 0x34]
jne 0x86956f
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x8690c0
mov eax, dword [ebp - 8]
mov ecx, dword [esi + 0x7c]
cmp eax, ecx
jae 0x86e4bf
add eax, 2
mov dword [ebp - 8], eax
test edi, edi
je 0x834c9a
cmp eax, ecx
jae 0x834c9a
mov ax, word [eax]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x834c9a
add dword [ebp - 8], 2
jmp 0x834c9a
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x86e4bf
add eax, 2
mov dword [ebp - 8], eax
jmp 0x834c9a
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x86e4bf
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 8], eax
je 0x869615
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x869615
mov eax, dword [ebp - 8]
and ecx, 0x3ff
shl ecx, 0xa
movzx eax, word [eax]
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
cmp ecx, 0x100
jae 0x834c9a
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
jne case.0x834a45.157
jmp 0x834c9a
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x86e4bf
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 8], eax
je 0x86967c
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x86967c
mov eax, dword [ebp - 8]
and ecx, 0x3ff
shl ecx, 0xa
movzx eax, word [eax]
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
cmp ecx, 0xff
ja case.0x834a45.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
je case.0x834a45.157
jmp 0x834c9a
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x86e4bf
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 8], eax
je 0x8696e3
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x8696e3
mov eax, dword [ebp - 8]
and ecx, 0x3ff
shl ecx, 0xa
movzx eax, word [eax]
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
cmp ecx, 0x100
jae 0x834c9a
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
jne case.0x834a45.157
jmp 0x834c9a
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x86e4bf
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 8], eax
je 0x86974a
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x86974a
mov eax, dword [ebp - 8]
and ecx, 0x3ff
shl ecx, 0xa
movzx eax, word [eax]
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
cmp ecx, 0xff
ja case.0x834a45.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
je case.0x834a45.157
jmp 0x834c9a
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x86e4bf
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 8], eax
je 0x8697b1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x8697b1
mov eax, dword [ebp - 8]
and ecx, 0x3ff
shl ecx, 0xa
movzx eax, word [eax]
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
cmp ecx, 0x100
jae 0x834c9a
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
jne case.0x834a45.157
jmp 0x834c9a
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x86e4bf
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 8], eax
je 0x869818
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x869818
mov eax, dword [ebp - 8]
and ecx, 0x3ff
shl ecx, 0xa
movzx eax, word [eax]
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
cmp ecx, 0xff
ja case.0x834a45.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je case.0x834a45.157
jmp 0x834c9a
mov edx, dword [esi + 0x7c]
mov eax, dword [ebp - 8]
cmp eax, edx
jae 0x86e4bf
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 8], eax
je 0x869884
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
mov eax, dword [ebp - 8]
jne 0x869884
movzx eax, word [eax]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
mov eax, dword [ebp - 8]
cmp ecx, 0xd
ja 0x8698f0
je 0x8698a5
cmp ecx, 0xa
je 0x834c9a
jbe case.0x834a45.157
cmp ecx, 0xc
ja case.0x834a45.157
jmp 0x869907
cmp eax, edx
jb 0x8698db
cmp dword [esi + 0x8c], 0
je 0x834c9a
cmp eax, dword [esi + 0x88]
jbe 0x834c9a
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x8690c0
jmp 0x834c9a
cmp word [eax], 0xa
jne 0x834c9a
add eax, 2
mov dword [ebp - 8], eax
jmp 0x834c9a
cmp ecx, 0x85
je 0x869907
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x834a45.157
cmp dword [esi + 0x6c], 0
jne case.0x834a45.157
jmp 0x834c9a
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x86e4bf
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 8], eax
je 0x86995f
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x86995f
mov eax, dword [ebp - 8]
and ecx, 0x3ff
shl ecx, 0xa
movzx eax, word [eax]
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
cmp ecx, 0x180e
ja 0x8699a3
je case.0x834a45.157
cmp ecx, 0xa0
ja 0x869992
je case.0x834a45.157
cmp ecx, 9
je case.0x834a45.157
cmp ecx, 0x20
je case.0x834a45.157
jmp 0x834c9a
cmp ecx, 0x1680
je case.0x834a45.157
jmp 0x834c9a
cmp ecx, 0x205f
ja 0x8699da
je case.0x834a45.157
cmp ecx, 0x2000
jb 0x834c9a
cmp ecx, 0x200a
jbe case.0x834a45.157
cmp ecx, 0x202f
je case.0x834a45.157
jmp 0x834c9a
cmp ecx, 0x3000
je case.0x834a45.157
jmp 0x834c9a
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x86e4bf
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 8], eax
je 0x869a34
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x869a34
mov eax, dword [ebp - 8]
and ecx, 0x3ff
shl ecx, 0xa
movzx eax, word [eax]
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
cmp ecx, 0x180e
ja 0x869a78
je 0x834c9a
cmp ecx, 0xa0
ja 0x869a67
je 0x834c9a
cmp ecx, 9
je 0x834c9a
cmp ecx, 0x20
jne case.0x834a45.157
jmp 0x834c9a
cmp ecx, 0x1680
jne case.0x834a45.157
jmp 0x834c9a
cmp ecx, 0x205f
ja 0x869aaf
je 0x834c9a
cmp ecx, 0x2000
jb case.0x834a45.157
cmp ecx, 0x200a
jbe 0x834c9a
cmp ecx, 0x202f
jne case.0x834a45.157
jmp 0x834c9a
cmp ecx, 0x3000
jne case.0x834a45.157
jmp 0x834c9a
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x86e4bf
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 8], eax
je 0x869b09
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x869b09
mov eax, dword [ebp - 8]
and ecx, 0x3ff
shl ecx, 0xa
movzx eax, word [eax]
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
cmp ecx, 0x85
ja 0x869b2e
je case.0x834a45.157
cmp ecx, 0xa
jb 0x834c9a
cmp ecx, 0xd
jbe case.0x834a45.157
jmp 0x834c9a
cmp ecx, 0x2028
jb 0x834c9a
cmp ecx, 0x2029
jbe case.0x834a45.157
jmp 0x834c9a
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x86e4bf
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 8], eax
je 0x869b94
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x869b94
mov eax, dword [ebp - 8]
and ecx, 0x3ff
shl ecx, 0xa
movzx eax, word [eax]
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
cmp ecx, 0x85
ja 0x869bb3
je 0x834c9a
lea eax, [ecx - 0xa]
cmp eax, 3
ja case.0x834a45.157
jmp 0x834c9a
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x834a45.157
jmp 0x834c9a
mov eax, dword [ebp - 8]
and ecx, 0x3ff
shl ecx, 0xa
movzx eax, word [eax]
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
mov dword [ebp - 0x14], ecx
jmp 0x834eb9
cmp eax, 0xa
ja case.default.0x869bf8
jmp dword [eax*4 + 0x870193]
mov al, byte [ecx*8 + 0x8c2f51]
cmp al, 9
je 0x869c24
cmp al, 5
je 0x869c24
cmp al, 8
je 0x869c24
xor ecx, ecx
jmp 0x869c40
cmp edi, 0xf
je case.0x834a45.157
jmp 0x834f2e
mov ecx, 1
jmp 0x869c40
movzx eax, byte [ecx*8 + 0x8c2f51]
xor ecx, ecx
cmp dword [eax*4 + 0x8d89a0], 6
sete cl
xor eax, eax
cmp edi, 0xf
sete al
cmp ecx, eax
je case.0x834a45.157
jmp 0x834f2e
mov eax, dword [ebp - 0x14]
xor edx, edx
movzx ecx, word [ebx + 4]
movzx eax, byte [eax*8 + 0x8c2f51]
cmp ecx, dword [eax*4 + 0x8d89a0]
setne dl
xor eax, eax
cmp edi, 0x10
sete al
cmp edx, eax
je case.0x834a45.157
jmp 0x834f2e
movzx eax, byte [ecx*8 + 0x8c2f51]
jmp 0x869c97
movzx eax, byte [ecx*8 + 0x8c2f50]
xor ecx, ecx
cmp word [ebx + 4], ax
setne cl
xor eax, eax
cmp edi, 0x10
sete al
cmp ecx, eax
je case.0x834a45.157
jmp 0x834f2e
movzx eax, byte [ecx*8 + 0x8c2f51]
mov eax, dword [eax*4 + 0x8d89a0]
cmp eax, 1
je 0x869c24
cmp eax, 3
je 0x869c24
xor ecx, ecx
jmp 0x869c40
cmp edx, 0x180e
ja 0x869d36
je case.0x869bf8.0
cmp edx, 0x85
ja 0x869d19
je case.0x869bf8.0
cmp edx, 9
jb case.0x869d5a.8203
cmp edx, 0xd
jbe case.0x869bf8.0
cmp edx, 0x20
je case.0x869bf8.0
jmp case.0x869d5a.8203
cmp edx, 0xa0
je case.0x869bf8.0
cmp edx, 0x1680
je case.0x869bf8.0
jmp case.0x869d5a.8203
cmp edx, 0x202f
ja 0x869d61
je case.0x869bf8.0
add edx, 0xffffe000
cmp edx, 0x29
ja case.0x869d5a.8203
movzx eax, byte [edx + 0x8701c7]
jmp dword [eax*4 + 0x8701bf]
cmp edx, 0x205f
je case.0x869bf8.0
cmp edx, 0x3000
je case.0x869bf8.0
jmp case.0x869d5a.8203
movzx eax, byte [ecx*8 + 0x8c2f51]
mov eax, dword [eax*4 + 0x8d89a0]
cmp eax, 1
je 0x869c24
cmp eax, 3
je 0x869c24
cmp edx, 0x5f
je 0x869c24
xor ecx, ecx
jmp 0x869c40
cmp edx, 0x24
je 0x869c24
cmp edx, 0x40
je 0x869c24
cmp edx, 0x60
je 0x869c24
cmp edx, 0xa0
jb 0x869dde
cmp edx, 0xd7ff
jbe 0x869c24
cmp edx, 0xe000
jae 0x869c24
xor ecx, ecx
jmp 0x869c40
cmp edi, 0x10
je case.0x834a45.157
jmp 0x834f2e
mov eax, dword [ebp - 8]
and ecx, 0x3ff
shl ecx, 0xa
movzx eax, word [eax]
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
jmp 0x834bd0
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edi, 2
add ecx, 0x10000
jmp 0x834c33
cmp eax, edi
jb 0x834c9a
jmp 0x869118
movzx ecx, word [ebx + 2]
xor eax, eax
cmp edi, 0x74
sete al
imul ecx, dword [esi + 0x24]
mov dword [ebp - 0x34], eax
movzx eax, word [ebx + 4]
add ebx, 6
mov dword [ebp - 0x1c], eax
mov eax, dword [esi + 0x30]
mov dword [ebp - 0x30], ebx
lea eax, [eax + ecx*2]
mov ecx, dword [esi + 0x54]
neg ecx
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x1c]
sbb ecx, ecx
xor edi, edi
neg ecx
mov dword [ebp - 0x10], edi
dec ecx
mov dword [ebp - 0x20], ecx
test eax, eax
jle 0x869f13
dec eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x28]
movzx edi, word [eax]
add edi, edi
mov dword [ebp - 0x10], edi
cmp edi, dword [ebp + 0xc]
jge 0x869ebd
mov eax, dword [esi + 0xc]
cmp dword [eax + edi*4], 0
jl 0x869ebd
mov ecx, dword [eax + edi*4 + 4]
sub ecx, dword [eax + edi*4]
jmp 0x869f10
mov eax, dword [esi + 0x24]
mov edx, dword [ebp - 0x28]
lea edx, [edx + eax*2]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x28], edx
mov edx, dword [ebp - 8]
test eax, eax
jg 0x869e97
jmp 0x869f13
xor eax, eax
cmp edi, 0x72
movzx edi, word [ebx + 2]
sete al
add edi, edi
add ebx, 4
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x10], edi
mov dword [ebp - 0x30], ebx
cmp edi, dword [ebp + 0xc]
jge 0x869f06
mov eax, dword [esi + 0xc]
cmp dword [eax + edi*4], 0
jl 0x869f06
mov ecx, dword [eax + edi*4 + 4]
sub ecx, dword [eax + edi*4]
jmp 0x869f10
mov ecx, dword [esi + 0x54]
neg ecx
sbb ecx, ecx
neg ecx
dec ecx
mov dword [ebp - 0x20], ecx
movzx eax, word [ebx]
mov dword [ebp - 0x14], eax
add eax, 0xffffff9e
cmp eax, 7
ja case.default.0x869f2c
movzx eax, byte [eax + 0x8701fb]
jmp dword [eax*4 + 0x8701f3]
mov eax, dword [ebp - 0x14]
add ebx, 2
add eax, 0xffffff9e
mov dword [ebp - 0x30], ebx
movzx edi, al
and edi, 1
mov dword [ebp - 0x2c], edi
movsx edi, byte [eax + 0x8c5730]
movsx eax, byte [eax + 0x8c573c]
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x1c], eax
test eax, eax
jne 0x869f94
mov dword [ebp - 0x1c], 0x7fffffff
jmp 0x869f94
movzx edi, word [ebx + 2]
xor eax, eax
cmp word [ebx], 0x69
mov dword [ebp - 0x28], edi
sete al
mov dword [ebp - 0x2c], eax
movzx eax, word [ebx + 4]
mov dword [ebp - 0x1c], eax
test eax, eax
jne 0x869f8e
mov dword [ebp - 0x1c], 0x7fffffff
add ebx, 6
mov dword [ebp - 0x30], ebx
test ecx, ecx
je 0x834a1f
jns 0x869fa6
test edi, edi
je 0x834a1f
mov eax, dword [ebp - 8]
mov dword [ebp - 0x14], 1
cmp edi, 1
jl 0x869fe8
push dword [ebp - 0x34]
mov edx, eax
push esi
push ecx
mov ecx, dword [ebp - 0x10]
call fcn.008ae7bd
mov ecx, eax
add esp, 0xc
test ecx, ecx
js 0x86e5de
mov eax, dword [ebp - 8]
lea eax, [eax + ecx*2]
mov ecx, dword [ebp - 0x14]
inc ecx
mov dword [ebp - 8], eax
mov dword [ebp - 0x14], ecx
cmp ecx, edi
mov ecx, dword [ebp - 0x20]
jle 0x869fb5
mov edx, dword [ebp - 0x1c]
cmp edi, edx
je 0x834ca0
cmp dword [ebp - 0x2c], 0
je 0x86e52e
mov eax, dword [ebp + 0x18]
mov edx, ebx
mov edi, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.008349c0
add esp, 0x14
test eax, eax
jne 0x834b3d
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x28], eax
jge case.0x834a45.157
push dword [ebp - 0x34]
mov ecx, dword [ebp - 0x10]
mov edx, edi
push esi
push dword [ebp - 0x20]
call fcn.008ae7bd
add esp, 0xc
test eax, eax
js 0x86e508
inc dword [ebp - 0x28]
lea edi, [edi + eax*2]
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.008349c0
add esp, 0x14
test eax, eax
je 0x86a023
jmp 0x834b3d
push dword [ebp - 0x34]
mov edx, dword [ebp - 8]
push esi
push ecx
mov ecx, edi
call fcn.008ae7bd
mov ecx, eax
add esp, 0xc
test ecx, ecx
js 0x86e5de
mov eax, dword [ebp - 8]
lea eax, [eax + ecx*2]
mov dword [ebp - 8], eax
jmp 0x834ca0
xor edx, edx
cmp ecx, 0x69
sete dl
xor eax, eax
cmp ecx, 0x6d
movzx ecx, word [ebx + 4]
mov dword [ebp - 0x1c], ecx
sete al
mov dword [ebp - 0x34], eax
movzx eax, word [ebx + 2]
mov dword [ebp - 0x10], eax
test ecx, ecx
jne 0x86a0cc
mov ecx, 0x7fffffff
mov dword [ebp - 0x1c], ecx
add ebx, 6
mov dword [ebp - 0x30], ebx
jmp 0x834cd5
mov eax, dword [ebp - 8]
and ecx, 0x3ff
shl ecx, 0xa
movzx eax, word [eax]
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
mov dword [ebp - 0x14], ecx
jmp 0x834d1a
cmp edi, 0x6e
je case.0x834a45.157
jmp 0x834d45
cmp eax, 1
mov dword [ebp - 0x14], 1
mov eax, dword [ebp - 8]
jl 0x834d57
cmp eax, dword [esi + 0x7c]
jae 0x86e4bf
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 0x28], ecx
mov dword [ebp - 8], eax
cmp ecx, 0xff
jbe 0x86a148
cmp edi, 0x6e
je case.0x834a45.157
jmp 0x86a16a
mov esi, dword [ebp - 0x20]
and ecx, 7
mov eax, 1
shl eax, cl
mov ecx, dword [ebp - 0x28]
shr ecx, 3
test byte [ecx + esi], al
mov esi, dword [ebp + 0x10]
je case.0x834a45.157
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x14]
inc ecx
mov dword [ebp - 0x14], ecx
cmp ecx, dword [ebp - 0x10]
jle 0x86a120
jmp 0x834d54
mov eax, dword [ebp - 8]
and edx, 0x3ff
shl edx, 0xa
mov ecx, 2
mov dword [ebp - 0x14], ecx
movzx eax, word [eax + 2]
and eax, 0x3ff
or edx, eax
add edx, 0x10000
jmp 0x835259
cmp edi, 0x6e
je 0x835280
jmp 0x835387
cmp dword [esi + 0x8c], 0
je 0x835280
cmp eax, dword [esi + 0x88]
jbe 0x835280
mov dword [esi + 0x68], ecx
cmp dword [esi + 0x8c], ecx
jg 0x8690c0
jmp 0x835280
mov edx, dword [ebp - 0x1c]
cmp dword [ebp - 0x10], edx
jge 0x86a258
mov ecx, dword [ebp - 0x10]
cmp eax, dword [esi + 0x7c]
jae 0x86a230
movzx edx, word [eax]
cmp edx, 0xff
jbe 0x86a202
cmp edi, 0x6e
jne 0x86a21f
jmp 0x86a255
mov ecx, edx
mov eax, 1
and ecx, 7
shr edx, 3
shl eax, cl
mov ecx, dword [ebp - 0x20]
test byte [edx + ecx], al
mov eax, dword [ebp - 8]
je 0x86a255
mov ecx, dword [ebp - 0x10]
inc ecx
add eax, 2
mov dword [ebp - 8], eax
mov dword [ebp - 0x10], ecx
cmp ecx, dword [ebp - 0x1c]
jl 0x86a1eb
jmp 0x86a255
cmp dword [esi + 0x8c], 0
je 0x86a255
cmp eax, dword [esi + 0x88]
jbe 0x86a255
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x8690c0
mov ecx, dword [ebp - 0x2c]
cmp dword [ebp - 0x34], 0
jne 0x834ca0
cmp eax, ecx
jb case.0x834a45.157
mov edi, dword [ebp - 8]
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.008349c0
add esp, 0x14
test eax, eax
jne 0x834b3d
sub edi, 2
cmp edi, dword [ebp - 0x2c]
jae 0x86a26d
jmp 0x834b3d
lea eax, [ebx + 4]
mov dword [ebp - 0x28], eax
movzx eax, word [ebx + 2]
movzx edi, word [ebx + eax*2]
lea ebx, [ebx + eax*2]
mov ecx, edi
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x14], ecx
lea eax, [ecx - 0x62]
cmp eax, 0xb
ja case.default.0x86a2c9
movzx eax, byte [eax + 0x87020b]
jmp dword [eax*4 + 0x870203]
lea eax, [ecx - 0x62]
add ebx, 2
mov dword [ebp - 0x30], ebx
cmp eax, 8
jae 0x86a2ec
mov ecx, dword [ebp - 0x34]
movzx eax, al
and eax, 1
mov dword [ebp - 0x2c], eax
jmp 0x86a2f7
mov eax, dword [ebp - 0x2c]
mov ecx, 1
mov dword [ebp - 0x34], ecx
mov esi, dword [ebp - 0x14]
mov edi, dword [ebp - 0x14]
movsx esi, byte [esi + 0x8c56da]
movsx edi, byte [edi + 0x8c56ce]
test esi, esi
mov dword [ebp - 0x1c], esi
mov esi, dword [ebp + 0x10]
mov dword [ebp - 0x20], edi
jne 0x86a373
mov edx, dword [ebp - 8]
mov dword [ebp - 0x1c], 0x7fffffff
jmp 0x86a373
movzx esi, word [ebx + 4]
xor eax, eax
cmp edi, 0x69
mov dword [ebp - 0x1c], esi
sete al
xor ecx, ecx
cmp edi, 0x6d
mov dword [ebp - 0x2c], eax
movzx edi, word [ebx + 2]
sete cl
mov dword [ebp - 0x20], edi
test esi, esi
mov dword [ebp - 0x34], ecx
mov esi, dword [ebp + 0x10]
jne 0x86a356
mov dword [ebp - 0x1c], 0x7fffffff
add ebx, 6
mov dword [ebp - 0x30], ebx
jmp 0x86a373
mov eax, dword [ebp - 0x2c]
mov edi, 1
mov ecx, dword [ebp - 0x34]
mov dword [ebp - 0x1c], 1
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x14], 1
cmp edi, 1
jl 0x86a3f1
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x86e4bf
movzx ecx, word [eax]
add eax, 2
mov edx, dword [ebp - 0x24]
mov dword [ebp - 8], eax
test edx, edx
je 0x86a3c9
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x86a3c9
mov eax, dword [ebp - 8]
and ecx, 0x3ff
shl ecx, 0xa
movzx eax, word [eax]
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
push edx
mov edx, dword [ebp - 0x28]
call fcn.008aeae6
add esp, 4
test eax, eax
je case.0x834a45.157
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
cmp eax, edi
jle 0x86a37f
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x34]
cmp edi, dword [ebp - 0x1c]
je 0x834a1f
test eax, eax
jne 0x86e7bd
mov eax, dword [ebp - 8]
mov dword [ebp - 0x10], eax
cmp edi, dword [ebp - 0x1c]
jl 0x86a417
mov edi, eax
jmp 0x86a4b4
mov eax, dword [ebp - 8]
mov dword [ebp - 0x14], 1
cmp eax, dword [esi + 0x7c]
jae 0x86a489
mov edx, dword [ebp - 0x24]
movzx ecx, word [eax]
mov edi, dword [ebp - 8]
test edx, edx
je 0x86a45f
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x86a45f
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov dword [ebp - 0x14], 2
add ecx, 0x10000
push edx
mov edx, dword [ebp - 0x28]
call fcn.008aeae6
add esp, 4
test eax, eax
je 0x86a4b1
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x20]
inc edi
mov dword [ebp - 0x20], edi
lea eax, [eax + ecx*2]
mov dword [ebp - 8], eax
cmp edi, dword [ebp - 0x1c]
jl 0x86a414
jmp 0x86a4ae
cmp dword [esi + 0x8c], 0
je 0x86a4ae
cmp eax, dword [esi + 0x88]
jbe 0x86a4ae
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x8690c0
mov edi, dword [ebp - 8]
mov ecx, dword [ebp - 0x34]
test ecx, ecx
jne 0x834ca0
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.008349c0
add esp, 0x14
test eax, eax
jne 0x834b3d
mov eax, edi
sub edi, 2
cmp eax, dword [ebp - 0x10]
je case.0x834a45.157
cmp dword [ebp - 0x24], 0
je 0x86a50b
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x86a50b
sub edi, 2
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.008349c0
add esp, 0x14
test eax, eax
je 0x86a4df
jmp 0x834b3d
mov eax, dword [esi + 0x7c]
mov ecx, dword [ebp - 8]
sub eax, ecx
and eax, 0xfffffffe
cmp eax, 2
jl 0x86e726
mov ax, word [ecx]
add ecx, 2
mov dword [ebp - 8], ecx
cmp word [ebx + 2], ax
jne case.0x834a45.157
add ebx, 4
jmp 0x834c9d
movzx eax, word [ebx + 2]
and edi, 0x3ff
and eax, 0x3ff
shl edi, 0xa
or edi, eax
mov edx, 2
add edi, 0x10000
jmp 0x834dce
add eax, 2
mov dword [ebp - 0x14], ecx
mov dword [ebp - 8], eax
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x86a5bc
mov eax, dword [ebp - 8]
and ecx, 0x3ff
shl ecx, 0xa
movzx eax, word [eax]
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
mov dword [ebp - 0x14], ecx
lea ebx, [ebx + edx*2]
mov edx, dword [ebp - 8]
mov dword [ebp - 0x30], ebx
cmp edi, ecx
je 0x834a1f
mov eax, edi
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx ecx, byte [eax + 0x8d3b40]
mov eax, edi
shl ecx, 7
and eax, 0x8000007f
jns 0x86a5f0
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x8c5840]
mov eax, dword [eax*8 + 0x8c2f54]
add eax, edi
cmp dword [ebp - 0x14], eax
jne case.0x834a45.157
jmp 0x834ca0
movzx ecx, word [ebx + 2]
mov edx, 0xff
cmp cx, dx
ja 0x86a62b
mov eax, dword [esi + 0x3c]
movzx edx, byte [eax + ecx]
mov eax, dword [ebp - 8]
jmp 0x86a62d
mov edx, ecx
movzx ecx, word [eax]
mov edi, 0xff
cmp cx, di
ja 0x86a644
mov eax, dword [esi + 0x3c]
movzx ecx, byte [eax + ecx]
mov eax, dword [ebp - 8]
cmp edx, ecx
jne case.0x834a45.157
add eax, 2
add ebx, 4
mov dword [ebp - 8], eax
jmp 0x834c9d
movzx eax, word [ebx + 2]
add ebx, 4
mov edx, dword [ebp - 0x2c]
mov ecx, eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x10], ecx
jmp 0x86a705
mov dword [ebp - 0x34], 1
xor eax, eax
mov dword [ebp - 0x10], eax
movzx eax, word [ebx + 2]
mov dword [ebp - 0x18], eax
cmp ecx, 0x28
je 0x86a692
cmp ecx, 0x35
je 0x86a692
xor edx, edx
jmp 0x86a697
mov edx, 1
mov dword [ebp - 0x2c], edx
add ebx, 4
jmp 0x86a702
mov ecx, 1
mov dword [ebp - 0x18], 0x7fffffff
jmp 0x86a6b6
xor ecx, ecx
mov dword [ebp - 0x18], 1
mov edx, dword [ebp - 0x2c]
add ebx, 2
mov dword [ebp - 0x34], 1
mov dword [ebp - 0x10], ecx
jmp 0x86a705
cmp edi, 0x2e
mov ecx, edi
sbb eax, eax
add ebx, 2
and eax, 0xfffffff3
add eax, 0x2e
sub ecx, eax
movzx edx, cl
and edx, 1
mov dword [ebp - 0x2c], edx
movsx eax, byte [ecx + 0x8c5730]
mov dword [ebp - 0x10], eax
movsx eax, byte [ecx + 0x8c573c]
mov dword [ebp - 0x18], eax
test eax, eax
jne 0x86a702
mov dword [ebp - 0x18], 0x7fffffff
mov ecx, dword [ebp - 0x10]
cmp dword [ebp - 0x24], 0
movzx eax, word [ebx]
mov dword [ebp - 0xc], eax
je 0x86a972
and eax, 0xfc00
mov dword [ebp - 0x1c], 1
mov dword [ebp - 0x14], ebx
cmp eax, 0xd800
jne 0x86a751
and dword [ebp - 0xc], 0x3ff
movzx eax, word [ebx + 2]
shl dword [ebp - 0xc], 0xa
and eax, 0x3ff
or eax, dword [ebp - 0xc]
add eax, 0x10000
mov dword [ebp - 0x1c], 2
mov dword [ebp - 0xc], eax
mov esi, dword [ebp - 0x1c]
lea eax, [esi + esi]
add ebx, eax
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0xc]
cmp esi, 1
mov esi, dword [ebp + 0x10]
mov dword [ebp - 0x30], ebx
jle 0x86a978
cmp edi, 0x2e
jb 0x86a7c6
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0xc]
sar eax, 7
movzx ecx, byte [eax + 0x8d3b40]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x86a797
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x8c5840]
mov ecx, dword [eax*8 + 0x8c2f54]
add ecx, edx
cmp ecx, edx
je 0x86a7c0
lea edx, [ebp - 0x68]
call fcn.008aef2a
mov edx, dword [ebp - 0x2c]
mov edi, eax
mov ecx, dword [ebp - 0x10]
jmp 0x86a7c8
mov edx, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x10]
xor edi, edi
mov dword [ebp - 0x20], edi
mov dword [ebp - 0xc], 1
cmp ecx, 1
jge 0x86a7dc
mov eax, dword [ebp - 8]
jmp 0x86a858
mov eax, dword [esi + 0x7c]
sub eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 8]
cmp ecx, eax
ja 0x86a80d
mov eax, dword [ebp - 0x1c]
add eax, eax
push eax
push dword [ebp - 0x14]
push ecx
call fcn.008416c4
add esp, 0xc
test eax, eax
jne 0x86a80a
mov eax, dword [ebp - 8]
add eax, dword [ebp - 0x28]
mov dword [ebp - 8], eax
jmp 0x86a847
mov ecx, dword [ebp - 8]
test edi, edi
jle 0x86e8a2
mov eax, dword [esi + 0x7c]
lea edx, [edi + edi]
sub eax, edx
cmp ecx, eax
ja 0x86e8a2
lea eax, [edi + edi]
push eax
lea eax, [ebp - 0x68]
push eax
push ecx
call fcn.008416c4
add esp, 0xc
test eax, eax
jne 0x86e89f
lea eax, [edi + edi]
add dword [ebp - 8], eax
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x10]
inc edx
mov dword [ebp - 0xc], edx
cmp edx, ecx
jle 0x86a7dc
mov edx, dword [ebp - 0x2c]
cmp ecx, dword [ebp - 0x18]
je 0x834ca0
test edx, edx
jne 0x86e8bd
mov edx, eax
mov dword [ebp - 0x20], edx
cmp ecx, dword [ebp - 0x18]
jge 0x86a90e
mov eax, dword [esi + 0x7c]
sub eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 8]
cmp ecx, eax
ja 0x86a8a2
mov eax, dword [ebp - 0x1c]
add eax, eax
push eax
push dword [ebp - 0x14]
push ecx
call fcn.008416c4
add esp, 0xc
test eax, eax
jne 0x86a89f
mov eax, dword [ebp - 0x28]
jmp 0x86a8ca
mov ecx, dword [ebp - 8]
test edi, edi
jle 0x86a8db
mov eax, dword [esi + 0x7c]
lea edx, [edi + edi]
sub eax, edx
cmp ecx, eax
ja 0x86a8db
lea eax, [edi + edi]
push eax
lea eax, [ebp - 0x68]
push eax
push ecx
call fcn.008416c4
add esp, 0xc
test eax, eax
jne 0x86a8db
lea eax, [edi + edi]
add dword [ebp - 8], eax
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x10], eax
cmp eax, dword [ebp - 0x18]
jl 0x86a877
jmp 0x86a908
cmp dword [esi + 0x8c], 0
mov eax, dword [ebp - 8]
je 0x86a90b
cmp eax, dword [esi + 0x7c]
jb 0x86a908
cmp eax, dword [esi + 0x88]
jbe 0x86a908
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x8690c0
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x20]
cmp dword [ebp - 0x34], 0
jne 0x834ca0
cmp eax, edx
jbe 0x834b85
mov edi, dword [ebp - 8]
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.008349c0
add esp, 0x14
test eax, eax
jne 0x834b3d
mov ax, word [edi - 2]
sub edi, 2
mov ecx, 0xfc00
mov dword [ebp - 8], edi
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x86a968
sub edi, 2
mov dword [ebp - 8], edi
cmp edi, dword [ebp - 0x20]
ja 0x86a923
jmp 0x834b85
add ebx, 2
mov dword [ebp - 0x30], ebx
cmp edi, 0x2e
jb 0x86aacb
cmp dword [ebp - 0x24], 0
je 0x86a9cb
cmp eax, 0x7f
jbe 0x86a9cb
mov edi, dword [ebp - 0xc]
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx ecx, byte [eax + 0x8d3b40]
mov eax, edi
shl ecx, 7
and eax, 0x8000007f
jns 0x86a9b0
dec eax
or eax, 0xffffff80
inc eax
mov edx, dword [ebp - 0x2c]
add ecx, eax
movzx eax, word [ecx*2 + 0x8c5840]
mov ecx, dword [ebp - 0x10]
mov eax, dword [eax*8 + 0x8c2f54]
add eax, edi
jmp 0x86a9dc
mov edi, dword [ebp - 0xc]
cmp eax, 0xff
ja 0x86a9dc
mov eax, dword [esi + 0x40]
movzx eax, byte [eax + edi]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 8]
mov dword [ebp - 0x28], 1
cmp ecx, 1
jl 0x86aa21
cmp eax, dword [esi + 0x7c]
jae 0x86e4bf
movzx esi, word [eax]
mov dword [ebp - 0x14], esi
cmp edi, esi
mov esi, dword [ebp + 0x10]
je 0x86aa13
mov edi, dword [ebp - 0x1c]
cmp edi, dword [ebp - 0x14]
mov edi, dword [ebp - 0xc]
jne case.0x834a45.157
inc dword [ebp - 0x28]
add eax, 2
mov dword [ebp - 8], eax
cmp dword [ebp - 0x28], ecx
jle 0x86a9ee
cmp ecx, dword [ebp - 0x18]
je 0x834ca0
test edx, edx
jne 0x86e985
mov edx, eax
mov dword [ebp - 0x20], edx
cmp ecx, dword [ebp - 0x18]
jge 0x86aa83
cmp eax, dword [esi + 0x7c]
jae 0x86aa5b
movzx edx, word [eax]
cmp edi, edx
je 0x86aa4d
cmp dword [ebp - 0x1c], edx
jne 0x86aa80
add eax, 2
inc ecx
mov dword [ebp - 8], eax
cmp ecx, dword [ebp - 0x18]
jl 0x86aa3c
jmp 0x86aa80
cmp dword [esi + 0x8c], 0
je 0x86aa80
cmp eax, dword [esi + 0x88]
jbe 0x86aa80
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x8690c0
mov edx, dword [ebp - 0x20]
cmp dword [ebp - 0x34], 0
jne 0x834ca0
cmp eax, edx
je 0x834b85
mov edi, dword [ebp - 8]
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.008349c0
sub edi, 2
add esp, 0x14
mov dword [ebp - 8], edi
test eax, eax
jne 0x834b3d
cmp edi, dword [ebp - 0x20]
jne 0x86aa98
jmp 0x834b85
mov dword [ebp - 0x14], 1
cmp ecx, 1
jge 0x86aadc
mov edi, dword [ebp - 8]
jmp 0x86ab08
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x86e4bf
mov edi, dword [ebp - 8]
movzx eax, word [eax]
add edi, 2
mov dword [ebp - 8], edi
cmp dword [ebp - 0xc], eax
jne case.0x834a45.157
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
cmp eax, ecx
jle 0x86aadc
cmp ecx, dword [ebp - 0x18]
je 0x834ca0
test edx, edx
jne 0x86e9fc
mov eax, dword [ebp - 8]
mov edx, eax
mov edi, dword [ebp - 0x18]
mov dword [ebp - 0x20], edx
cmp ecx, edi
jge 0x86ab49
mov edx, dword [ebp - 0xc]
cmp eax, dword [esi + 0x7c]
jae 0x86ab91
movzx eax, word [eax]
cmp edx, eax
jne 0x86ab43
add dword [ebp - 8], 2
inc ecx
mov eax, dword [ebp - 8]
cmp ecx, edi
jl 0x86ab2b
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x20]
cmp dword [ebp - 0x34], 0
jne 0x834ca0
cmp eax, edx
je 0x834b85
mov edi, dword [ebp - 8]
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.008349c0
sub edi, 2
add esp, 0x14
mov dword [ebp - 8], edi
test eax, eax
jne 0x834b3d
cmp edi, dword [ebp - 0x20]
jne 0x86ab5e
jmp 0x834b85
cmp dword [esi + 0x8c], 0
je 0x86ab46
cmp eax, dword [esi + 0x88]
jbe 0x86ab46
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x8690c0
jmp 0x86ab46
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x86e4bf
cmp dword [ebp - 0x24], 0
je 0x86acc8
movzx edx, word [ebx + 2]
add ebx, 4
mov eax, edx
mov dword [ebp - 0x14], edx
and eax, 0xfc00
mov dword [ebp - 0x30], ebx
cmp eax, 0xd800
jne 0x86ac0b
movzx eax, word [ebx]
and edx, 0x3ff
shl edx, 0xa
and eax, 0x3ff
or edx, eax
add edx, 0x10000
add ebx, 2
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x30], ebx
mov eax, dword [ebp - 8]
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
mov eax, ecx
and eax, 0xfc00
mov dword [ebp - 0x28], ecx
cmp eax, 0xd800
jne 0x86ac4b
mov eax, dword [ebp - 8]
and ecx, 0x3ff
shl ecx, 0xa
movzx eax, word [eax]
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
mov dword [ebp - 0x28], ecx
cmp edi, 0x1f
jne 0x86ac5d
cmp edx, ecx
je case.0x834a45.157
jmp 0x834ca0
cmp edx, 0x7f
jbe 0x86aca0
mov eax, edx
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0x14]
sar eax, 7
movzx ecx, byte [eax + 0x8d3b40]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x86ac88
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x8c5840]
mov ecx, dword [ebp - 0x28]
mov eax, dword [eax*8 + 0x8c2f54]
add eax, edx
jmp 0x86acb3
cmp edx, 0xff
ja 0x86acb1
mov eax, dword [esi + 0x40]
movzx eax, byte [eax + edx]
jmp 0x86acb3
mov eax, edx
cmp edx, ecx
je case.0x834a45.157
cmp eax, ecx
je case.0x834a45.157
jmp 0x834ca0
movzx edx, word [eax]
add eax, 2
movzx ecx, word [ebx + 2]
mov dword [ebp - 8], eax
cmp ecx, edx
je case.0x834a45.157
cmp edi, 0x20
jne 0x86898e
cmp ecx, 0xff
ja 0x86acf5
mov eax, dword [esi + 0x40]
movzx ecx, byte [eax + ecx]
cmp ecx, edx
je case.0x834a45.157
add ebx, 4
jmp 0x834c9d
movzx eax, word [ebx + 2]
add ebx, 4
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x10], eax
jmp 0x86adbf
movzx edx, word [ebx + 2]
xor eax, eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x18], edx
cmp ecx, 0x42
je 0x86ad34
cmp ecx, 0x4f
je 0x86ad34
xor edx, edx
jmp 0x86ad39
mov edx, 1
mov dword [ebp - 0x2c], edx
add ebx, 4
jmp 0x86adbf
mov ecx, 1
xor eax, eax
jmp 0x86ad51
mov ecx, 1
mov eax, ecx
mov dword [ebp - 0x18], 0x7fffffff
jmp 0x86ad64
mov ecx, 1
xor eax, eax
mov dword [ebp - 0x18], ecx
add ebx, 2
jmp 0x86ad7a
movzx edx, word [ebx + 2]
xor eax, eax
mov ecx, 1
mov dword [ebp - 0x18], edx
add ebx, 4
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x10], eax
jmp 0x86adc2
cmp edi, 0x48
mov ecx, edi
sbb eax, eax
add ebx, 2
and eax, 0xfffffff3
add eax, 0x48
sub ecx, eax
movzx edx, cl
and edx, 1
mov dword [ebp - 0x2c], edx
movsx eax, byte [ecx + 0x8c5730]
movsx ecx, byte [ecx + 0x8c573c]
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x18], ecx
test ecx, ecx
jne 0x86adbf
mov dword [ebp - 0x18], 0x7fffffff
mov ecx, dword [ebp - 0x34]
movzx esi, word [ebx]
add ebx, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 0xc], esi
mov esi, dword [ebp + 0x10]
mov dword [ebp - 0x30], ebx
je 0x86ae10
mov eax, dword [ebp - 0xc]
and eax, 0xfc00
cmp eax, 0xd800
jne 0x86ae0d
mov esi, dword [ebp - 0xc]
movzx eax, word [ebx]
and esi, 0x3ff
and eax, 0x3ff
shl esi, 0xa
or eax, esi
mov esi, dword [ebp + 0x10]
add eax, 0x10000
add ebx, 2
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x30], ebx
mov eax, dword [ebp - 0x10]
cmp edi, 0x48
jb 0x86b105
cmp dword [ebp - 0x24], 0
mov edi, dword [ebp - 0xc]
je 0x86ae6b
cmp edi, 0x7f
jbe 0x86ae6b
mov eax, edi
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx ecx, byte [eax + 0x8d3b40]
mov eax, edi
shl ecx, 7
and eax, 0x8000007f
jns 0x86ae4a
dec eax
or eax, 0xffffff80
inc eax
mov edx, dword [ebp - 0x2c]
add ecx, eax
movzx eax, word [ecx*2 + 0x8c5840]
mov ecx, dword [ebp - 0x34]
mov eax, dword [eax*8 + 0x8c2f54]
add eax, edi
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x10]
jmp 0x86ae80
cmp edi, 0xff
ja 0x86ae7d
mov eax, dword [esi + 0x40]
movzx edi, byte [eax + edi]
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x20], edi
cmp dword [ebp - 0x24], 0
mov edi, dword [ebp - 0x10]
mov dword [ebp - 0x28], 1
je 0x86af15
cmp eax, 1
jl 0x86af55
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x86e4bf
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
mov eax, ecx
and eax, 0xfc00
mov dword [ebp - 0x1c], ecx
cmp eax, 0xd800
mov eax, dword [ebp - 8]
jne 0x86aeed
movzx eax, word [eax]
and dword [ebp - 0x1c], 0x3ff
and eax, 0x3ff
shl dword [ebp - 0x1c], 0xa
or eax, dword [ebp - 0x1c]
add eax, 0x10000
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 8]
add eax, 2
mov dword [ebp - 8], eax
mov esi, dword [ebp - 0xc]
cmp esi, dword [ebp - 0x1c]
mov esi, dword [ebp + 0x10]
je case.0x834a45.157
mov ecx, dword [ebp - 0x20]
cmp ecx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x34]
je case.0x834a45.157
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], edi
jle 0x86ae9d
jmp 0x86af58
cmp eax, 1
mov eax, dword [ebp - 8]
jl 0x86af58
cmp eax, dword [esi + 0x7c]
jae 0x86e4bf
movzx ecx, word [eax]
cmp dword [ebp - 0xc], ecx
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 0x34]
je case.0x834a45.157
mov esi, dword [ebp - 0x20]
cmp esi, dword [ebp - 0x14]
mov esi, dword [ebp + 0x10]
je case.0x834a45.157
inc dword [ebp - 0x28]
add eax, 2
mov dword [ebp - 8], eax
cmp dword [ebp - 0x28], edi
jle 0x86af1d
mov eax, dword [ebp - 8]
cmp edi, dword [ebp - 0x18]
je 0x834ca0
test edx, edx
jne 0x86ea6b
cmp dword [ebp - 0x24], 0
mov edx, eax
mov dword [ebp - 0x10], edx
je 0x86b072
cmp edi, dword [ebp - 0x18]
jge 0x86afe6
mov dword [ebp - 0x14], 1
cmp eax, dword [esi + 0x7c]
jae 0x86b048
movzx edx, word [eax]
mov ecx, dword [ebp - 8]
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x86afc2
movzx eax, word [ecx + 2]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
mov eax, 2
add edx, 0x10000
jmp 0x86afc5
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc], edx
je 0x86afdd
cmp dword [ebp - 0x20], edx
je 0x86afdd
lea ecx, [ecx + eax*2]
inc edi
mov eax, ecx
mov dword [ebp - 8], ecx
cmp edi, dword [ebp - 0x18]
jl 0x86af7d
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x34]
test ecx, ecx
jne 0x834ca0
cmp eax, edx
jbe 0x834b85
mov edi, dword [ebp - 8]
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.008349c0
add esp, 0x14
test eax, eax
jne 0x834b3d
mov ax, word [edi - 2]
sub edi, 2
mov ecx, 0xfc00
mov dword [ebp - 8], edi
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x86b03e
sub edi, 2
mov dword [ebp - 8], edi
cmp edi, dword [ebp - 0x10]
ja 0x86aff9
jmp 0x834b85
cmp dword [esi + 0x8c], 0
je 0x86afe0
cmp eax, dword [esi + 0x88]
jbe 0x86afe0
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x8690c0
jmp 0x86afe0
cmp edi, dword [ebp - 0x18]
jge 0x86b0bf
cmp eax, dword [esi + 0x7c]
jae 0x86b097
movzx edx, word [eax]
cmp dword [ebp - 0xc], edx
je 0x86b0bc
cmp dword [ebp - 0x20], edx
je 0x86b0bc
add eax, 2
inc edi
mov dword [ebp - 8], eax
cmp edi, dword [ebp - 0x18]
jl 0x86b077
jmp 0x86b0bc
cmp dword [esi + 0x8c], 0
je 0x86b0bc
cmp eax, dword [esi + 0x88]
jbe 0x86b0bc
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x8690c0
mov edx, dword [ebp - 0x10]
test ecx, ecx
jne 0x834ca0
cmp eax, edx
je 0x834b85
mov edi, dword [ebp - 8]
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.008349c0
add esp, 0x14
test eax, eax
jne 0x834b3d
sub edi, 2
mov dword [ebp - 8], edi
cmp edi, dword [ebp - 0x10]
jne 0x86b0d2
jmp 0x834b85
cmp dword [ebp - 0x24], 0
mov edi, dword [ebp - 8]
mov dword [ebp - 0x28], 1
je 0x86b17b
cmp eax, 1
jl 0x86b1a6
cmp edi, dword [esi + 0x7c]
jae 0x86e866
movzx eax, word [edi]
add edi, 2
mov dword [ebp - 0x20], eax
and eax, 0xfc00
mov dword [ebp - 8], edi
cmp eax, 0xd800
jne 0x86b162
movzx eax, word [edi]
and dword [ebp - 0x20], 0x3ff
and eax, 0x3ff
shl dword [ebp - 0x20], 0xa
or eax, dword [ebp - 0x20]
add eax, 0x10000
add edi, 2
mov dword [ebp - 8], edi
jmp 0x86b165
mov eax, dword [ebp - 0x20]
cmp dword [ebp - 0xc], eax
je case.0x834a45.157
inc dword [ebp - 0x28]
mov eax, dword [ebp - 0x10]
cmp dword [ebp - 0x28], eax
jle 0x86b11e
jmp 0x86b1a6
cmp eax, 1
jl 0x86b1a6
cmp edi, dword [esi + 0x7c]
jae 0x86e866
movzx eax, word [edi]
add edi, 2
mov dword [ebp - 8], edi
cmp dword [ebp - 0xc], eax
je case.0x834a45.157
inc dword [ebp - 0x28]
mov eax, dword [ebp - 0x10]
cmp dword [ebp - 0x28], eax
jle 0x86b180
cmp eax, dword [ebp - 0x18]
je 0x834ca0
test edx, edx
jne 0x86eb77
cmp dword [ebp - 0x24], 0
mov edx, edi
mov dword [ebp - 0x1c], edx
je 0x86b2b0
cmp eax, dword [ebp - 0x18]
jge 0x86b251
mov dword [ebp - 0x14], 1
cmp edi, dword [esi + 0x7c]
jae 0x86b229
movzx edx, word [edi]
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x86b20d
movzx eax, word [edi + 2]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
mov eax, 2
add edx, 0x10000
jmp 0x86b210
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc], edx
je 0x86b24e
lea edi, [edi + eax*2]
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 8], edi
mov dword [ebp - 0x10], eax
cmp eax, dword [ebp - 0x18]
jl 0x86b1cf
jmp 0x86b24e
cmp dword [esi + 0x8c], 0
je 0x86b24e
cmp edi, dword [esi + 0x88]
jbe 0x86b24e
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x8690c0
mov edx, dword [ebp - 0x1c]
test ecx, ecx
jne 0x834ca0
cmp edi, edx
jbe 0x834b85
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.008349c0
add esp, 0x14
test eax, eax
jne 0x834b3d
mov ax, word [edi - 2]
sub edi, 2
mov ecx, 0xfc00
mov dword [ebp - 8], edi
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x86b2a6
sub edi, 2
mov dword [ebp - 8], edi
cmp edi, dword [ebp - 0x1c]
ja 0x86b261
jmp 0x834b85
cmp eax, dword [ebp - 0x18]
jge 0x86b300
mov edx, dword [ebp - 0xc]
cmp edi, dword [esi + 0x7c]
jae 0x86b2d8
movzx eax, word [edi]
cmp edx, eax
je 0x86b2fd
mov eax, dword [ebp - 0x10]
add edi, 2
inc eax
mov dword [ebp - 8], edi
mov dword [ebp - 0x10], eax
cmp eax, dword [ebp - 0x18]
jl 0x86b2b8
jmp 0x86b2fd
cmp dword [esi + 0x8c], 0
je 0x86b2fd
cmp edi, dword [esi + 0x88]
jbe 0x86b2fd
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x8690c0
mov edx, dword [ebp - 0x1c]
test ecx, ecx
jne 0x834ca0
cmp edi, edx
je 0x834b85
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.008349c0
add esp, 0x14
test eax, eax
jne 0x834b3d
sub edi, 2
mov dword [ebp - 8], edi
cmp edi, dword [ebp - 0x1c]
jne 0x86b310
jmp 0x834b85
movzx edi, word [ebx + 2]
mov eax, 1
mov edx, edi
mov dword [ebp - 0x18], edi
mov dword [ebp - 0xc], edx
add ebx, 4
mov dword [ebp - 0x2c], eax
jmp 0x83509d
movzx edi, word [ebx + 2]
xor eax, eax
xor edx, edx
mov dword [ebp - 0x18], edi
cmp ecx, 0x5c
mov dword [ebp - 0xc], edx
sete al
add ebx, 4
mov dword [ebp - 0x2c], eax
jmp 0x83509d
mov eax, dword [ebp - 0x2c]
xor edx, edx
mov dword [ebp - 0x34], 1
add ebx, 2
mov dword [ebp - 0xc], edx
jmp 0x835096
mov eax, dword [ebp - 0x2c]
mov edx, 1
mov dword [ebp - 0x34], 1
add ebx, 2
mov dword [ebp - 0xc], edx
jmp 0x835096
mov eax, dword [ebp - 0x2c]
xor edx, edx
mov dword [ebp - 0x34], 1
add ebx, 2
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x18], 1
jmp 0x83509d
movzx ecx, word [ebx + 2]
xor edx, edx
mov eax, dword [ebp - 0x2c]
add ebx, 4
mov dword [ebp - 0x34], 1
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x18], ecx
jmp 0x83509d
mov dword [ebp - 0x38], 1
jmp 0x86b3fb
mov dword [ebp - 0x38], 0
movzx esi, word [ebx + 2]
movzx ecx, word [ebx]
add ebx, 4
mov dword [ebp - 0x3c], esi
mov esi, dword [ebp + 0x10]
mov dword [ebp - 0x30], ebx
jmp 0x8350be
test ecx, ecx
js 0x86bbb0
cmp ecx, 0xa
ja case.default.0x869bf8
jmp dword [ecx*4 + 0x870217]
cmp dword [ebp - 0x38], 0
jne case.0x834a45.157
mov edi, dword [ebp - 8]
mov edx, 1
cmp dword [ebp - 0xc], edx
jl 0x86c98d
cmp edi, dword [esi + 0x7c]
jae 0x86e866
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 8], edi
je 0x86b472
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x86b472
add edi, 2
mov dword [ebp - 8], edi
inc edx
cmp edx, dword [ebp - 0xc]
jle 0x86b446
jmp 0x86bba5
mov edi, dword [ebp - 8]
mov dword [ebp - 0x14], 1
cmp edx, 1
jl 0x8350cc
cmp edi, dword [esi + 0x7c]
jae 0x86e866
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 8], edi
je 0x86b4d5
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x86b4d5
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edi, 2
mov dword [ebp - 8], edi
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x8d3b40]
shl eax, 7
and ecx, 0x8000007f
jns 0x86b4f7
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x8c5840]
movzx eax, byte [eax*8 + 0x8c2f51]
cmp eax, 9
je 0x86b51c
cmp eax, 5
je 0x86b51c
cmp eax, 8
je 0x86b51c
xor eax, eax
jmp 0x86b521
mov eax, 1
cmp eax, dword [ebp - 0x38]
je case.0x834a45.157
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0xc]
inc ecx
mov dword [ebp - 0x14], ecx
cmp ecx, edx
jle 0x86b490
mov eax, dword [ebp - 0x2c]
jmp 0x86bba8
mov edi, dword [ebp - 8]
mov dword [ebp - 0x14], 1
cmp edx, 1
jl 0x8350cc
cmp edi, dword [esi + 0x7c]
jae 0x86e866
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 8], edi
je 0x86b59c
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x86b59c
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edi, 2
mov dword [ebp - 8], edi
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x8d3b40]
shl eax, 7
and ecx, 0x8000007f
jns 0x86b5be
dec ecx
or ecx, 0xffffff80
inc ecx
mov edx, dword [ebp - 0x3c]
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x8c5840]
movzx eax, byte [eax*8 + 0x8c2f51]
cmp dword [eax*4 + 0x8d89a0], edx
sete cl
cmp ecx, dword [ebp - 0x38]
je case.0x834a45.157
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0xc]
inc ecx
mov dword [ebp - 0x14], ecx
cmp ecx, edx
jle 0x86b557
mov eax, dword [ebp - 0x2c]
jmp 0x86bba8
mov edi, dword [ebp - 8]
mov dword [ebp - 0x14], 1
cmp edx, 1
jl 0x8350cc
cmp edi, dword [esi + 0x7c]
jae 0x86e866
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 8], edi
je 0x86b65a
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x86b65a
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edi, 2
mov dword [ebp - 8], edi
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x8d3b40]
shl eax, 7
and ecx, 0x8000007f
jns 0x86b67c
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x8c5840]
movzx eax, byte [eax*8 + 0x8c2f51]
cmp eax, dword [ebp - 0x3c]
sete cl
cmp ecx, dword [ebp - 0x38]
je case.0x834a45.157
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0xc]
inc ecx
mov dword [ebp - 0x14], ecx
cmp ecx, edx
jle 0x86b615
mov eax, dword [ebp - 0x2c]
jmp 0x86bba8
mov edi, dword [ebp - 8]
mov dword [ebp - 0x14], 1
cmp edx, 1
jl 0x8350cc
cmp edi, dword [esi + 0x7c]
jae 0x86e866
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 8], edi
je 0x86b711
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x86b711
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edi, 2
mov dword [ebp - 8], edi
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x8d3b40]
shl eax, 7
and ecx, 0x8000007f
jns 0x86b733
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x8c5840]
movzx eax, byte [eax*8 + 0x8c2f50]
cmp eax, dword [ebp - 0x3c]
sete cl
cmp ecx, dword [ebp - 0x38]
je case.0x834a45.157
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0xc]
inc ecx
mov dword [ebp - 0x14], ecx
cmp ecx, edx
jle 0x86b6cc
mov eax, dword [ebp - 0x2c]
jmp 0x86bba8
mov edi, dword [ebp - 8]
mov dword [ebp - 0x14], 1
cmp edx, 1
jl 0x8350cc
cmp edi, dword [esi + 0x7c]
jae 0x86e866
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 8], edi
je 0x86b7c8
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x86b7c8
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edi, 2
mov dword [ebp - 8], edi
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x8d3b40]
shl eax, 7
and ecx, 0x8000007f
jns 0x86b7ea
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x8c5840]
movzx eax, byte [eax*8 + 0x8c2f51]
mov eax, dword [eax*4 + 0x8d89a0]
cmp eax, 1
je 0x86b811
cmp eax, 3
je 0x86b811
xor eax, eax
jmp 0x86b816
mov eax, 1
cmp eax, dword [ebp - 0x38]
je case.0x834a45.157
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0xc]
inc ecx
mov dword [ebp - 0x14], ecx
cmp ecx, edx
jle 0x86b783
mov eax, dword [ebp - 0x2c]
jmp 0x86bba8
mov edi, dword [ebp - 8]
mov dword [ebp - 0x14], 1
cmp edx, 1
jl 0x8350cc
mov eax, dword [ebp - 0x24]
cmp edi, dword [esi + 0x7c]
jae 0x86e866
movzx ecx, word [edi]
add edi, 2
mov dword [ebp - 8], edi
test eax, eax
je 0x86b895
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x86b892
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edi, 2
mov dword [ebp - 8], edi
mov eax, dword [ebp - 0x24]
cmp ecx, 0x180e
ja 0x86b8e2
je 0x86b96a
cmp ecx, 0x85
ja 0x86b8c9
je 0x86b96a
cmp ecx, 9
jb case.0x86b8fe.8203
cmp ecx, 0xd
jbe 0x86b96a
cmp ecx, 0x20
jne case.0x86b8fe.8203
jmp 0x86b96a
cmp ecx, 0xa0
je 0x86b96a
cmp ecx, 0x1680
jne case.0x86b8fe.8203
jmp 0x86b96a
cmp ecx, 0x202f
ja 0x86b905
je 0x86b96a
lea eax, [ecx - 0x2000]
cmp eax, 0x29
ja case.0x86b8fe.8203
movzx eax, byte [eax + 0x87024b]
jmp dword [eax*4 + 0x870243]
cmp ecx, 0x205f
je 0x86b96a
cmp ecx, 0x3000
je 0x86b96a
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x8d3b40]
shl eax, 7
and ecx, 0x8000007f
jns 0x86b937
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x8c5840]
movzx eax, byte [eax*8 + 0x8c2f51]
cmp dword [eax*4 + 0x8d89a0], 6
sete cl
cmp ecx, dword [ebp - 0x38]
je case.0x834a45.157
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x24]
jmp 0x86b974
mov eax, dword [ebp - 0x24]
cmp dword [ebp - 0x38], 0
jne case.0x834a45.157
mov ecx, dword [ebp - 0x14]
inc ecx
mov dword [ebp - 0x14], ecx
cmp ecx, edx
jle 0x86b84f
mov eax, dword [ebp - 0x2c]
jmp 0x86bba8
mov edi, dword [ebp - 8]
mov dword [ebp - 0x28], 1
cmp edx, 1
jl 0x8350cc
cmp edi, dword [esi + 0x7c]
jae 0x86e866
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 0x14], ecx
mov dword [ebp - 8], edi
je 0x86b9e9
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x86b9e9
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edi, 2
mov dword [ebp - 0x14], ecx
mov dword [ebp - 8], edi
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0x14]
sar eax, 7
movzx ecx, byte [eax + 0x8d3b40]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x86ba0f
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x8c5840]
movzx eax, byte [eax*8 + 0x8c2f51]
mov eax, dword [eax*4 + 0x8d89a0]
cmp eax, 1
je 0x86ba3b
cmp eax, 3
je 0x86ba3b
cmp edx, 0x5f
je 0x86ba3b
xor eax, eax
jmp 0x86ba40
mov eax, 1
cmp eax, dword [ebp - 0x38]
je case.0x834a45.157
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0xc]
inc ecx
mov dword [ebp - 0x28], ecx
cmp ecx, edx
jle 0x86b99e
mov eax, dword [ebp - 0x2c]
jmp 0x86bba8
mov edi, dword [ebp - 8]
mov dword [ebp - 0x14], 1
cmp edx, 1
jl 0x8350cc
cmp edi, dword [esi + 0x7c]
jae 0x86e866
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 8], edi
je 0x86babb
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x86babb
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edi, 2
mov dword [ebp - 8], edi
mov eax, dword [ebp - 0x3c]
mov edx, dword [eax*4 + 0x8c45d0]
lea eax, [eax*4 + 0x8c45d0]
cmp ecx, edx
jb 0x86badd
lea eax, [eax + 4]
cmp ecx, edx
je 0x86bafd
mov edx, dword [eax]
cmp ecx, edx
jae 0x86bad0
cmp dword [ebp - 0x38], 0
je case.0x834a45.157
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0xc]
inc ecx
mov dword [ebp - 0x14], ecx
cmp ecx, edx
jle 0x86ba76
mov eax, dword [ebp - 0x2c]
jmp 0x86bba8
cmp dword [ebp - 0x38], 0
jne case.0x834a45.157
jmp 0x86bae7
mov edi, dword [ebp - 8]
mov edx, 1
cmp dword [ebp - 0xc], edx
jl 0x86c98d
cmp edi, dword [esi + 0x7c]
jae 0x86e866
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 8], edi
je 0x86bb5f
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x86bb5f
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edi, 2
mov dword [ebp - 8], edi
cmp ecx, 0x24
je 0x86bb8a
cmp ecx, 0x40
je 0x86bb8a
cmp ecx, 0x60
je 0x86bb8a
cmp ecx, 0xa0
jb 0x86bb7e
cmp ecx, 0xd7ff
jbe 0x86bb8a
cmp ecx, 0xe000
jae 0x86bb8a
xor eax, eax
jmp 0x86bb8f
mov eax, 1
cmp eax, dword [ebp - 0x38]
je case.0x834a45.157
inc edx
cmp edx, dword [ebp - 0xc]
jle 0x86bb1a
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x10]
jmp 0x8350cc
cmp edi, 0x16
jne 0x86bd42
mov edi, dword [ebp - 8]
mov dword [ebp - 0x20], 1
cmp edx, 1
jl 0x8350cc
mov eax, dword [esi + 0x7c]
mov dword [ebp - 0x28], eax
cmp edi, eax
jae 0x86e866
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 8], edi
je 0x86bc16
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x86bc16
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edi, 2
mov dword [ebp - 8], edi
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x8d3b40]
shl eax, 7
and ecx, 0x8000007f
jns 0x86bc38
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x8c5840]
movzx ecx, byte [eax*8 + 0x8c2f52]
mov eax, dword [esi + 0x7c]
mov dword [ebp - 0x14], ecx
cmp edi, eax
jae 0x86bcff
mov ebx, dword [ebp - 0x24]
mov esi, ecx
movzx ecx, word [edi]
mov dword [ebp - 0x14], 1
test ebx, ebx
je 0x86bc9a
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x86bc9a
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov dword [ebp - 0x14], 2
add ecx, 0x10000
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x8d3b40]
shl eax, 7
and ecx, 0x8000007f
jns 0x86bcbc
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x8c5840]
movzx ecx, byte [eax*8 + 0x8c2f52]
mov eax, 1
shl eax, cl
test dword [esi*4 + 0x8c5800], eax
je 0x86bcf3
mov eax, dword [ebp - 0x14]
mov esi, ecx
lea edi, [edi + eax*2]
mov eax, dword [ebp - 0x28]
cmp edi, eax
jb 0x86bc5d
jmp 0x86bcf6
mov eax, dword [ebp - 0x28]
mov esi, dword [ebp + 0x10]
mov ebx, dword [ebp - 0x30]
mov dword [ebp - 8], edi
cmp dword [esi + 0x8c], 0
je 0x86bd28
cmp edi, eax
jb 0x86bd28
cmp edi, dword [esi + 0x88]
jbe 0x86bd28
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x8690c0
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0xc]
inc ecx
mov dword [ebp - 0x20], ecx
cmp ecx, edx
jle 0x86bbcc
mov eax, dword [ebp - 0x2c]
jmp 0x86bba8
cmp dword [ebp - 0x24], 0
lea ecx, [edi - 6]
je 0x86c46f
cmp ecx, 0xf
ja case.default.0x869bf8
jmp dword [ecx*4 + 0x870277]
mov edi, dword [ebp - 8]
mov dword [ebp - 0x14], 1
cmp edx, 1
jl 0x86bba8
lea eax, [edi + 2]
mov dword [ebp - 0x20], eax
mov ecx, dword [esi + 0x7c]
cmp edi, ecx
jae 0x86e866
mov edx, dword [esi + 0x18]
test edx, edx
je 0x86be29
push dword [ebp - 0x24]
lea eax, [esi + 0x1c]
push eax
push ecx
mov ecx, edi
call fcn.00835e9f
add esp, 0xc
test eax, eax
jne case.0x834a45.157
mov edx, dword [ebp - 0x20]
cmp dword [esi + 0x8c], 0
je 0x86bde2
cmp edx, dword [esi + 0x7c]
jb 0x86bde2
cmp dword [esi + 0x18], 0
jne 0x86bde2
cmp dword [esi + 0x1c], 2
jne 0x86bde2
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x86bde2
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x8690c0
add edi, 2
add edx, 2
mov dword [ebp - 8], edi
mov dword [ebp - 0x20], edx
cmp edi, dword [esi + 0x7c]
jae 0x86be14
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x86be14
add edi, 2
add edx, 2
mov dword [ebp - 8], edi
mov dword [ebp - 0x20], edx
mov edx, dword [ebp - 0x14]
inc edx
mov dword [ebp - 0x14], edx
cmp edx, dword [ebp - 0xc]
jle 0x86bd78
jmp 0x86bba2
mov edx, dword [esi + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
cmp edi, ecx
ja 0x86bda8
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x86bda8
cmp edx, 1
je case.0x834a45.157
mov edx, dword [ebp - 0x20]
mov ax, word [edx]
cmp ax, word [esi + 0x36]
je case.0x834a45.157
jmp 0x86bdab
mov edi, dword [ebp - 8]
mov edx, 1
cmp dword [ebp - 0xc], edx
jl 0x86bba5
mov ecx, dword [esi + 0x7c]
mov eax, dword [ebp - 0xc]
cmp edi, ecx
jae 0x86e866
add edi, 2
mov dword [ebp - 8], edi
cmp edi, ecx
jae 0x86beb1
mov ax, word [edi]
mov dword [ebp - 0x14], 0xfc00
and ax, word [ebp - 0x14]
mov dword [ebp - 0x14], 0xdc00
cmp ax, word [ebp - 0x14]
mov eax, dword [ebp - 0xc]
jne 0x86beb1
add edi, 2
mov dword [ebp - 8], edi
inc edx
cmp edx, eax
jle 0x86be7b
jmp 0x86bba2
mov eax, dword [esi + 0x7c]
lea ecx, [edx + edx]
mov edi, dword [ebp - 8]
sub eax, ecx
cmp edi, eax
ja case.0x834a45.157
mov eax, dword [ebp - 0x2c]
add edi, ecx
mov dword [ebp - 8], edi
jmp 0x86bba8
mov edi, dword [ebp - 8]
mov dword [ebp - 0x14], 1
cmp edx, 1
jl 0x86bba8
mov edx, dword [esi + 0x7c]
cmp edi, edx
jae 0x86e866
movzx ecx, word [edi]
add edi, 2
mov eax, ecx
mov dword [ebp - 8], edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x86bf2f
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edi, 2
mov dword [ebp - 8], edi
cmp ecx, 0xd
ja 0x86bf5b
je 0x86bf49
cmp ecx, 0xa
je 0x86bf7c
lea eax, [ecx - 0xb]
cmp eax, 1
ja case.0x834a45.157
jmp 0x86bf72
cmp edi, edx
jae 0x86bf7c
cmp word [edi], 0xa
jne 0x86bf7c
add edi, 2
mov dword [ebp - 8], edi
jmp 0x86bf7c
cmp ecx, 0x85
je 0x86bf72
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x834a45.157
cmp dword [esi + 0x6c], 0
jne case.0x834a45.157
mov ecx, dword [ebp - 0x14]
inc ecx
mov dword [ebp - 0x14], ecx
cmp ecx, dword [ebp - 0xc]
jle 0x86bef1
jmp 0x86bba2
mov edi, dword [ebp - 8]
mov edx, 1
cmp dword [ebp - 0xc], edx
jl 0x86bba5
cmp edi, dword [esi + 0x7c]
jae 0x86e866
movzx ecx, word [edi]
add edi, 2
mov eax, ecx
mov dword [ebp - 8], edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x86bfe1
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edi, 2
mov dword [ebp - 8], edi
cmp ecx, 0x180e
ja 0x86c01f
je case.0x834a45.157
cmp ecx, 0xa0
ja 0x86c011
je case.0x834a45.157
cmp ecx, 9
je case.0x834a45.157
cmp ecx, 0x20
je case.0x834a45.157
jmp 0x86c05b
cmp ecx, 0x1680
je case.0x834a45.157
jmp 0x86c05b
cmp ecx, 0x205f
ja 0x86c04f
je case.0x834a45.157
cmp ecx, 0x2000
jb 0x86c05b
cmp ecx, 0x200a
jbe case.0x834a45.157
cmp ecx, 0x202f
je case.0x834a45.157
jmp 0x86c05b
cmp ecx, 0x3000
je case.0x834a45.157
inc edx
cmp edx, dword [ebp - 0xc]
jle 0x86bfa2
jmp 0x86bba2
mov edi, dword [ebp - 8]
mov edx, 1
cmp dword [ebp - 0xc], edx
jl 0x86bba5
cmp edi, dword [esi + 0x7c]
jae 0x86e866
movzx ecx, word [edi]
add edi, 2
mov eax, ecx
mov dword [ebp - 8], edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x86c0ba
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edi, 2
mov dword [ebp - 8], edi
cmp ecx, 0x180e
ja 0x86c0ec
je 0x86c124
cmp ecx, 0xa0
ja 0x86c0de
je 0x86c124
cmp ecx, 9
je 0x86c124
cmp ecx, 0x20
jne case.0x834a45.157
jmp 0x86c124
cmp ecx, 0x1680
jne case.0x834a45.157
jmp 0x86c124
cmp ecx, 0x205f
ja 0x86c118
je 0x86c124
cmp ecx, 0x2000
jb case.0x834a45.157
cmp ecx, 0x200a
jbe 0x86c124
cmp ecx, 0x202f
jne case.0x834a45.157
jmp 0x86c124
cmp ecx, 0x3000
jne case.0x834a45.157
inc edx
cmp edx, dword [ebp - 0xc]
jle 0x86c07b
jmp 0x86bba2
mov edi, dword [ebp - 8]
mov edx, 1
cmp dword [ebp - 0xc], edx
jl 0x86bba5
cmp edi, dword [esi + 0x7c]
jae 0x86e866
movzx ecx, word [edi]
add edi, 2
mov eax, ecx
mov dword [ebp - 8], edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x86c183
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edi, 2
mov dword [ebp - 8], edi
cmp ecx, 0x85
ja 0x86c1a1
je case.0x834a45.157
cmp ecx, 0xa
jb 0x86c1b5
cmp ecx, 0xd
jbe case.0x834a45.157
jmp 0x86c1b5
cmp ecx, 0x2028
jb 0x86c1b5
cmp ecx, 0x2029
jbe case.0x834a45.157
inc edx
cmp edx, dword [ebp - 0xc]
jle 0x86c144
jmp 0x86bba2
mov edi, dword [ebp - 8]
mov edx, 1
cmp dword [ebp - 0xc], edx
jl 0x86bba5
cmp edi, dword [esi + 0x7c]
jae 0x86e866
movzx ecx, word [edi]
add edi, 2
mov eax, ecx
mov dword [ebp - 8], edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x86c210
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edi, 2
mov dword [ebp - 8], edi
cmp ecx, 0x85
ja 0x86c228
je 0x86c237
lea eax, [ecx - 0xa]
cmp eax, 3
ja case.0x834a45.157
jmp 0x86c237
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x834a45.157
inc edx
cmp edx, dword [ebp - 0xc]
jle 0x86c1d1
jmp 0x86bba2
mov edi, dword [ebp - 8]
mov edx, 1
cmp dword [ebp - 0xc], edx
jl 0x86bba5
cmp edi, dword [esi + 0x7c]
jae 0x86e866
movzx ecx, word [edi]
add edi, 2
mov eax, ecx
mov dword [ebp - 8], edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x86c292
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edi, 2
mov dword [ebp - 8], edi
cmp ecx, 0x80
jae 0x86c2a7
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
jne case.0x834a45.157
inc edx
cmp edx, dword [ebp - 0xc]
jle 0x86c253
jmp 0x86bba2
mov edi, dword [ebp - 8]
mov edx, 1
cmp dword [ebp - 0xc], edx
jl 0x86bba5
cmp edi, dword [esi + 0x7c]
jae 0x86e866
movzx ecx, word [edi]
cmp ecx, 0x80
jae case.0x834a45.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
je case.0x834a45.157
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, dword [ebp - 0xc]
jle 0x86c2c3
jmp 0x86bba2
mov edi, dword [ebp - 8]
mov dword [ebp - 0x14], 1
cmp edx, 1
jl 0x86bba8
mov edx, dword [esi + 0x7c]
mov eax, dword [ebp - 0xc]
cmp edi, edx
jae 0x86e866
movzx ecx, word [edi]
cmp ecx, 0x80
jae 0x86c335
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
jne case.0x834a45.157
mov eax, dword [ebp - 0xc]
add edi, 2
mov dword [ebp - 8], edi
cmp edi, edx
jae 0x86c35d
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
mov eax, dword [ebp - 0xc]
jne 0x86c35d
add edi, 2
mov dword [ebp - 8], edi
mov ecx, dword [ebp - 0x14]
inc ecx
mov dword [ebp - 0x14], ecx
cmp ecx, eax
jle 0x86c312
jmp 0x86bba2
mov edi, dword [ebp - 8]
mov edx, 1
cmp dword [ebp - 0xc], edx
jl 0x86bba5
cmp edi, dword [esi + 0x7c]
jae 0x86e866
movzx ecx, word [edi]
cmp ecx, 0x80
jae case.0x834a45.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
je case.0x834a45.157
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, dword [ebp - 0xc]
jle 0x86c37e
jmp 0x86bba2
mov edi, dword [ebp - 8]
mov dword [ebp - 0x14], 1
cmp edx, 1
jl 0x86bba8
mov edx, dword [esi + 0x7c]
mov eax, dword [ebp - 0xc]
cmp edi, edx
jae 0x86e866
movzx ecx, word [edi]
cmp ecx, 0x80
jae 0x86c3f0
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
jne case.0x834a45.157
mov eax, dword [ebp - 0xc]
add edi, 2
mov dword [ebp - 8], edi
cmp edi, edx
jae 0x86c418
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
mov eax, dword [ebp - 0xc]
jne 0x86c418
add edi, 2
mov dword [ebp - 8], edi
mov ecx, dword [ebp - 0x14]
inc ecx
mov dword [ebp - 0x14], ecx
cmp ecx, eax
jle 0x86c3cd
jmp 0x86bba2
mov edi, dword [ebp - 8]
mov edx, 1
cmp dword [ebp - 0xc], edx
jl 0x86bba5
cmp edi, dword [esi + 0x7c]
jae 0x86e866
movzx ecx, word [edi]
cmp ecx, 0x80
jae case.0x834a45.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je case.0x834a45.157
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, dword [ebp - 0xc]
jle 0x86c439
jmp 0x86bba2
cmp ecx, 0xf
ja case.default.0x869bf8
jmp dword [ecx*4 + 0x8702b7]
mov edi, dword [ebp - 8]
mov dword [ebp - 0x14], 1
cmp edx, 1
jl 0x86bba8
mov ecx, dword [esi + 0x7c]
cmp edi, ecx
jae 0x86e866
mov edx, dword [esi + 0x18]
test edx, edx
je 0x86c4bf
lea eax, [esi + 0x1c]
push 0
push eax
push ecx
mov ecx, edi
call fcn.00835e9f
add esp, 0xc
test eax, eax
jne case.0x834a45.157
jmp 0x86c4eb
mov edx, dword [esi + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
cmp edi, ecx
ja 0x86c4eb
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x86c4eb
cmp edx, 1
je case.0x834a45.157
mov ax, word [edi + 2]
cmp ax, word [esi + 0x36]
je case.0x834a45.157
cmp dword [esi + 0x8c], 0
je 0x86c525
lea eax, [edi + 2]
cmp eax, dword [esi + 0x7c]
jb 0x86c525
cmp dword [esi + 0x18], 0
jne 0x86c525
cmp dword [esi + 0x1c], 2
jne 0x86c525
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x86c525
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x8690c0
mov edx, dword [ebp - 0x14]
add edi, 2
inc edx
mov dword [ebp - 8], edi
mov dword [ebp - 0x14], edx
cmp edx, dword [ebp - 0xc]
jle 0x86c492
jmp 0x86bba2
mov eax, dword [esi + 0x7c]
lea ecx, [edx + edx]
mov edi, dword [ebp - 8]
sub eax, ecx
cmp edi, eax
ja 0x86e866
mov eax, dword [ebp - 0x2c]
add edi, ecx
mov dword [ebp - 8], edi
jmp 0x86bba8
mov edi, dword [ebp - 8]
mov edx, 1
cmp dword [ebp - 0xc], edx
jl 0x86bba5
mov ecx, dword [esi + 0x7c]
cmp edi, ecx
jae 0x86e866
movzx eax, word [edi]
add edi, 2
mov dword [ebp - 8], edi
cmp eax, 0xd
jg 0x86c5b1
je 0x86c59f
cmp eax, 0xa
je 0x86c5d0
add eax, 0xfffffff5
cmp eax, 1
ja case.0x834a45.157
jmp 0x86c5c6
cmp edi, ecx
jae 0x86c5d0
cmp word [edi], 0xa
jne 0x86c5d0
add edi, 2
mov dword [ebp - 8], edi
jmp 0x86c5d0
cmp eax, 0x85
je 0x86c5c6
add eax, 0xffffdfd8
cmp eax, 1
ja case.0x834a45.157
cmp dword [esi + 0x6c], 0
jne case.0x834a45.157
inc edx
cmp edx, dword [ebp - 0xc]
jle 0x86c574
jmp 0x86bba2
mov edi, dword [ebp - 8]
mov edx, 1
cmp dword [ebp - 0xc], edx
jl 0x86bba5
cmp edi, dword [esi + 0x7c]
jae 0x86e866
movzx ecx, word [edi]
add edi, 2
mov dword [ebp - 8], edi
cmp ecx, 0x180e
jg 0x86c63c
je case.0x834a45.157
cmp ecx, 0xa0
jg 0x86c62e
je case.0x834a45.157
cmp ecx, 9
je case.0x834a45.157
cmp ecx, 0x20
je case.0x834a45.157
jmp 0x86c678
cmp ecx, 0x1680
je case.0x834a45.157
jmp 0x86c678
cmp ecx, 0x205f
jg 0x86c66c
je case.0x834a45.157
cmp ecx, 0x2000
jl 0x86c678
cmp ecx, 0x200a
jle case.0x834a45.157
cmp ecx, 0x202f
je case.0x834a45.157
jmp 0x86c678
cmp ecx, 0x3000
je case.0x834a45.157
inc edx
cmp edx, dword [ebp - 0xc]
jle 0x86c5ec
jmp 0x86bba5
mov edi, dword [ebp - 8]
mov edx, 1
cmp dword [ebp - 0xc], edx
jl 0x86bba5
cmp edi, dword [esi + 0x7c]
jae 0x86e866
movzx ecx, word [edi]
add edi, 2
mov dword [ebp - 8], edi
cmp ecx, 0x180e
jg 0x86c6dc
je 0x86c714
cmp ecx, 0xa0
jg 0x86c6ce
je 0x86c714
cmp ecx, 9
je 0x86c714
cmp ecx, 0x20
jne case.0x834a45.157
jmp 0x86c714
cmp ecx, 0x1680
jne case.0x834a45.157
jmp 0x86c714
cmp ecx, 0x205f
jg 0x86c708
je 0x86c714
cmp ecx, 0x2000
jl case.0x834a45.157
cmp ecx, 0x200a
jle 0x86c714
cmp ecx, 0x202f
jne case.0x834a45.157
jmp 0x86c714
cmp ecx, 0x3000
jne case.0x834a45.157
inc edx
cmp edx, dword [ebp - 0xc]
jle 0x86c698
jmp 0x86bba5
mov edi, dword [ebp - 8]
mov edx, 1
cmp dword [ebp - 0xc], edx
jl 0x86bba5
cmp edi, dword [esi + 0x7c]
jae 0x86e866
movzx ecx, word [edi]
add edi, 2
mov dword [ebp - 8], edi
cmp ecx, 0x85
jg 0x86c764
je case.0x834a45.157
cmp ecx, 0xa
jl 0x86c778
cmp ecx, 0xd
jle case.0x834a45.157
jmp 0x86c778
cmp ecx, 0x2028
jl 0x86c778
cmp ecx, 0x2029
jle case.0x834a45.157
inc edx
cmp edx, dword [ebp - 0xc]
jle 0x86c734
jmp 0x86bba5
mov edi, dword [ebp - 8]
mov ecx, 1
cmp edx, ecx
jl 0x86bba8
cmp edi, dword [esi + 0x7c]
jae 0x86e866
movzx eax, word [edi]
add edi, 2
mov dword [ebp - 8], edi
cmp eax, 0x85
jg 0x86c7bc
je 0x86c7ca
add eax, 0xfffffff6
cmp eax, 3
ja case.0x834a45.157
jmp 0x86c7ca
add eax, 0xffffdfd8
cmp eax, 1
ja case.0x834a45.157
inc ecx
cmp ecx, edx
jle 0x86c793
mov eax, dword [ebp - 0x2c]
jmp 0x86bba8
mov edi, dword [ebp - 8]
mov edx, 1
cmp dword [ebp - 0xc], edx
jl 0x86bba5
cmp edi, dword [esi + 0x7c]
jae 0x86e866
movzx eax, word [edi]
mov ecx, 0xff
cmp ax, cx
ja 0x86c80d
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
jne case.0x834a45.157
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, dword [ebp - 0xc]
jle 0x86c7e8
jmp 0x86bba2
mov edi, dword [ebp - 8]
mov edx, 1
cmp dword [ebp - 0xc], edx
jl 0x86bba5
cmp edi, dword [esi + 0x7c]
jae 0x86e866
movzx eax, word [edi]
mov ecx, 0xff
cmp ax, cx
ja case.0x834a45.157
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
je case.0x834a45.157
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, dword [ebp - 0xc]
jle 0x86c82f
jmp 0x86bba2
mov edi, dword [ebp - 8]
mov edx, 1
cmp dword [ebp - 0xc], edx
jl 0x86bba5
cmp edi, dword [esi + 0x7c]
jae 0x86e866
movzx eax, word [edi]
mov ecx, 0xff
cmp ax, cx
ja 0x86c89f
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
jne case.0x834a45.157
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, dword [ebp - 0xc]
jle 0x86c87a
jmp 0x86bba2
mov edi, dword [ebp - 8]
mov edx, 1
cmp dword [ebp - 0xc], edx
jl 0x86bba5
cmp edi, dword [esi + 0x7c]
jae 0x86e866
movzx eax, word [edi]
mov ecx, 0xff
cmp ax, cx
ja case.0x834a45.157
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
je case.0x834a45.157
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, dword [ebp - 0xc]
jle 0x86c8c1
jmp 0x86bba2
mov edi, dword [ebp - 8]
mov edx, 1
cmp dword [ebp - 0xc], edx
jl 0x86bba5
cmp edi, dword [esi + 0x7c]
jae 0x86e866
movzx eax, word [edi]
mov ecx, 0xff
cmp ax, cx
ja 0x86c931
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
jne case.0x834a45.157
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, dword [ebp - 0xc]
jle 0x86c90c
jmp 0x86bba2
mov edi, dword [ebp - 8]
mov edx, 1
cmp dword [ebp - 0xc], edx
jl 0x86bba5
cmp edi, dword [esi + 0x7c]
jae 0x86e866
movzx eax, word [edi]
mov ecx, 0xff
cmp ax, cx
ja case.0x834a45.157
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je case.0x834a45.157
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, dword [ebp - 0xc]
jle 0x86c953
jmp 0x86bba2
mov edx, dword [ebp - 0xc]
jmp 0x8350cc
mov eax, edi
mov dword [ebp - 0x10], eax
test ecx, ecx
js 0x86d22c
cmp ecx, 0xa
ja case.default.0x869bf8
jmp dword [ecx*4 + 0x8702f7]
cmp edx, dword [ebp - 0x18]
jge 0x86d1c7
mov eax, dword [ebp - 0x18]
mov ecx, 1
cmp edi, dword [esi + 0x7c]
jae 0x86ca0b
cmp dword [ebp - 0x24], 0
je 0x86c9f1
mov ax, word [edi]
mov dword [ebp - 0x14], 0xfc00
and ax, word [ebp - 0x14]
mov dword [ebp - 0x14], 0xd800
cmp ax, word [ebp - 0x14]
mov eax, dword [ebp - 0x18]
jne 0x86c9f1
mov ecx, 2
cmp dword [ebp - 0x38], 0
jne 0x86d1c4
inc edx
lea edi, [edi + ecx*2]
mov dword [ebp - 8], edi
cmp edx, eax
jl 0x86c9be
jmp 0x86d1c4
cmp dword [esi + 0x8c], 0
je 0x86d1c4
cmp edi, dword [esi + 0x88]
jbe 0x86d1c4
mov dword [esi + 0x68], ecx
cmp dword [esi + 0x8c], ecx
jle 0x86d1c4
jmp 0x8690c0
cmp edx, dword [ebp - 0x18]
jge 0x86d1c7
mov dword [ebp - 0x14], 1
cmp edi, dword [esi + 0x7c]
jae 0x86cafc
cmp dword [ebp - 0x24], 0
movzx ecx, word [edi]
je 0x86ca89
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x86ca89
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov dword [ebp - 0x14], 2
add ecx, 0x10000
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x8d3b40]
shl eax, 7
and ecx, 0x8000007f
jns 0x86caab
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x8c5840]
movzx eax, byte [eax*8 + 0x8c2f51]
cmp eax, 9
je 0x86cad0
cmp eax, 5
je 0x86cad0
cmp eax, 8
je 0x86cad0
xor eax, eax
jmp 0x86cad5
mov eax, 1
cmp eax, dword [ebp - 0x38]
je 0x86d1c4
mov eax, dword [ebp - 0x14]
lea edi, [edi + eax*2]
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x18]
jl 0x86ca41
jmp 0x86d1c4
cmp dword [esi + 0x8c], 0
je 0x86d1c4
cmp edi, dword [esi + 0x88]
jbe 0x86d1c4
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle 0x86d1c4
jmp 0x8690c0
cmp edx, dword [ebp - 0x18]
jge 0x86d1c7
mov dword [ebp - 0x14], 1
cmp edi, dword [esi + 0x7c]
jae 0x86cafc
cmp dword [ebp - 0x24], 0
movzx ecx, word [edi]
je 0x86cb7b
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x86cb7b
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov dword [ebp - 0x14], 2
add ecx, 0x10000
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x8d3b40]
shl eax, 7
and ecx, 0x8000007f
jns 0x86cb9d
dec ecx
or ecx, 0xffffff80
inc ecx
mov edx, dword [ebp - 0x3c]
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x8c5840]
movzx eax, byte [eax*8 + 0x8c2f51]
cmp dword [eax*4 + 0x8d89a0], edx
sete cl
cmp ecx, dword [ebp - 0x38]
je 0x86d1c4
mov eax, dword [ebp - 0x14]
lea edi, [edi + eax*2]
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x18]
jl 0x86cb37
jmp 0x86d1c4
cmp edx, dword [ebp - 0x18]
jge 0x86d1c7
mov dword [ebp - 0x14], 1
cmp edi, dword [esi + 0x7c]
jae 0x86cafc
cmp dword [ebp - 0x24], 0
movzx ecx, word [edi]
je 0x86cc36
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x86cc36
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov dword [ebp - 0x14], 2
add ecx, 0x10000
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x8d3b40]
shl eax, 7
and ecx, 0x8000007f
jns 0x86cc58
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x8c5840]
movzx eax, byte [eax*8 + 0x8c2f51]
cmp eax, dword [ebp - 0x3c]
sete cl
cmp ecx, dword [ebp - 0x38]
je 0x86d1c4
mov eax, dword [ebp - 0x14]
lea edi, [edi + eax*2]
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x18]
jl 0x86cbee
jmp 0x86d1c4
cmp edx, dword [ebp - 0x18]
jge 0x86d1c7
mov dword [ebp - 0x14], 1
cmp edi, dword [esi + 0x7c]
jae 0x86cafc
cmp dword [ebp - 0x24], 0
movzx ecx, word [edi]
je 0x86ccea
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x86ccea
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov dword [ebp - 0x14], 2
add ecx, 0x10000
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x8d3b40]
shl eax, 7
and ecx, 0x8000007f
jns 0x86cd0c
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x8c5840]
movzx eax, byte [eax*8 + 0x8c2f50]
cmp eax, dword [ebp - 0x3c]
sete cl
cmp ecx, dword [ebp - 0x38]
je 0x86d1c4
mov eax, dword [ebp - 0x14]
lea edi, [edi + eax*2]
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x18]
jl 0x86cca2
jmp 0x86d1c4
cmp edx, dword [ebp - 0x18]
jge 0x86d1c7
mov dword [ebp - 0x14], 1
cmp edi, dword [esi + 0x7c]
jae 0x86cafc
cmp dword [ebp - 0x24], 0
movzx ecx, word [edi]
je 0x86cd9e
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x86cd9e
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov dword [ebp - 0x14], 2
add ecx, 0x10000
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x8d3b40]
shl eax, 7
and ecx, 0x8000007f
jns 0x86cdc0
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x8c5840]
movzx eax, byte [eax*8 + 0x8c2f51]
mov eax, dword [eax*4 + 0x8d89a0]
cmp eax, 1
je 0x86cde7
cmp eax, 3
je 0x86cde7
xor eax, eax
jmp 0x86cdec
mov eax, 1
cmp eax, dword [ebp - 0x38]
je 0x86d1c4
mov eax, dword [ebp - 0x14]
lea edi, [edi + eax*2]
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x18]
jl 0x86cd56
jmp 0x86d1c4
cmp edx, dword [ebp - 0x18]
jge 0x86d1c7
mov eax, 1
mov dword [ebp - 0x28], eax
cmp edi, dword [esi + 0x7c]
jae 0x86cf62
cmp dword [ebp - 0x24], 0
movzx ecx, word [edi]
je 0x86ce6b
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x86ce68
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, 2
add ecx, 0x10000
mov dword [ebp - 0x28], eax
jmp 0x86ce6b
mov eax, dword [ebp - 0x28]
cmp ecx, 0x180e
ja 0x86ceb8
je 0x86cf40
cmp ecx, 0x85
ja 0x86ce9f
je 0x86cf40
cmp ecx, 9
jb case.0x86ced4.8203
cmp ecx, 0xd
jbe 0x86cf40
cmp ecx, 0x20
jne case.0x86ced4.8203
jmp 0x86cf40
cmp ecx, 0xa0
je 0x86cf40
cmp ecx, 0x1680
jne case.0x86ced4.8203
jmp 0x86cf40
cmp ecx, 0x202f
ja 0x86cedb
je 0x86cf40
lea eax, [ecx - 0x2000]
cmp eax, 0x29
ja case.0x86ced4.8203
movzx eax, byte [eax + 0x87032b]
jmp dword [eax*4 + 0x870323]
cmp ecx, 0x205f
je 0x86cf40
cmp ecx, 0x3000
je 0x86cf40
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x8d3b40]
shl eax, 7
and ecx, 0x8000007f
jns 0x86cf0d
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x8c5840]
movzx eax, byte [eax*8 + 0x8c2f51]
cmp dword [eax*4 + 0x8d89a0], 6
sete cl
cmp ecx, dword [ebp - 0x38]
je 0x86d1c4
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0xc]
jmp 0x86cf4a
mov eax, dword [ebp - 0x28]
cmp dword [ebp - 0x38], 0
jne 0x86d1c4
inc edx
lea edi, [edi + eax*2]
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], edx
cmp edx, dword [ebp - 0x18]
jl 0x86ce1c
jmp 0x86d1c4
cmp dword [esi + 0x8c], 0
je 0x86d1c4
cmp edi, dword [esi + 0x88]
jbe 0x86d1c4
mov dword [esi + 0x68], eax
cmp dword [esi + 0x8c], eax
jle 0x86d1c4
jmp 0x8690c0
cmp edx, dword [ebp - 0x18]
jge 0x86d1c7
mov dword [ebp - 0x28], 1
cmp edi, dword [esi + 0x7c]
jae 0x86cafc
cmp dword [ebp - 0x24], 0
movzx ecx, word [edi]
mov dword [ebp - 0x14], ecx
je 0x86cfe6
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x86cfe6
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov dword [ebp - 0x28], 2
add ecx, 0x10000
mov dword [ebp - 0x14], ecx
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0x14]
sar eax, 7
movzx ecx, byte [eax + 0x8d3b40]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x86d00c
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x8c5840]
movzx eax, byte [eax*8 + 0x8c2f51]
mov eax, dword [eax*4 + 0x8d89a0]
cmp eax, 1
je 0x86d038
cmp eax, 3
je 0x86d038
cmp edx, 0x5f
je 0x86d038
xor eax, eax
jmp 0x86d03d
mov eax, 1
cmp eax, dword [ebp - 0x38]
je 0x86d1c4
mov eax, dword [ebp - 0x28]
lea edi, [edi + eax*2]
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x18]
jl 0x86cf98
jmp 0x86d1c4
cmp edx, dword [ebp - 0x18]
jge 0x86d1c7
mov dword [ebp - 0x14], 1
cmp edi, dword [esi + 0x7c]
jae 0x86cafc
cmp dword [ebp - 0x24], 0
movzx ecx, word [edi]
je 0x86d0b5
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x86d0b5
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov dword [ebp - 0x14], 2
add ecx, 0x10000
mov eax, dword [ebp - 0x3c]
mov edx, dword [eax*4 + 0x8c45d0]
lea eax, [eax*4 + 0x8c45d0]
cmp ecx, edx
jb 0x86d0d7
lea eax, [eax + 4]
cmp ecx, edx
je 0x86d0ff
mov edx, dword [eax]
cmp ecx, edx
jae 0x86d0ca
cmp dword [ebp - 0x38], 0
je 0x86d1c4
mov eax, dword [ebp - 0x14]
lea edi, [edi + eax*2]
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x18]
jl 0x86d06d
jmp 0x86d1c4
cmp dword [ebp - 0x38], 0
je 0x86d0e1
jmp 0x86d1c4
cmp edx, dword [ebp - 0x18]
jge 0x86d1c7
mov edx, 1
cmp edi, dword [esi + 0x7c]
jae 0x86d1a4
cmp dword [ebp - 0x24], 0
movzx ecx, word [edi]
je 0x86d157
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x86d157
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
cmp ecx, 0x24
je 0x86d182
cmp ecx, 0x40
je 0x86d182
cmp ecx, 0x60
je 0x86d182
cmp ecx, 0xa0
jb 0x86d176
cmp ecx, 0xd7ff
jbe 0x86d182
cmp ecx, 0xe000
jae 0x86d182
xor eax, eax
jmp 0x86d187
mov eax, 1
cmp eax, dword [ebp - 0x38]
je 0x86d1c4
mov eax, dword [ebp - 0xc]
lea edi, [edi + edx*2]
inc eax
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x18]
jl 0x86d113
jmp 0x86d1c4
cmp dword [esi + 0x8c], 0
je 0x86d1c4
cmp edi, dword [esi + 0x88]
jbe 0x86d1c4
mov dword [esi + 0x68], edx
cmp dword [esi + 0x8c], edx
jg 0x8690c0
mov eax, dword [ebp - 0x10]
cmp dword [ebp - 0x34], 0
jne 0x834ca0
cmp edi, eax
jbe 0x834b85
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.008349c0
add esp, 0x14
test eax, eax
jne 0x834b3d
sub edi, 2
mov dword [ebp - 8], edi
cmp dword [ebp - 0x24], eax
je 0x86d222
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x86d222
sub edi, 2
mov dword [ebp - 8], edi
cmp edi, dword [ebp - 0x10]
ja 0x86d1d9
jmp 0x834b85
mov ecx, dword [ebp - 0x1c]
cmp ecx, 0x16
jne 0x86d423
cmp edx, dword [ebp - 0x18]
jge 0x86d3d7
mov eax, dword [esi + 0x7c]
mov dword [ebp - 0x28], eax
cmp edi, eax
jae 0x86d3af
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 8], edi
je 0x86d28b
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x86d28b
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edi, 2
mov dword [ebp - 8], edi
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x8d3b40]
shl eax, 7
and ecx, 0x8000007f
jns 0x86d2ad
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x8c5840]
movzx ecx, byte [eax*8 + 0x8c2f52]
mov eax, dword [esi + 0x7c]
mov dword [ebp - 0x14], ecx
cmp edi, eax
jae 0x86d374
mov ebx, dword [ebp - 0x24]
mov esi, ecx
movzx ecx, word [edi]
mov dword [ebp - 0x14], 1
test ebx, ebx
je 0x86d30f
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x86d30f
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov dword [ebp - 0x14], 2
add ecx, 0x10000
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x8d3b40]
shl eax, 7
and ecx, 0x8000007f
jns 0x86d331
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x8c5840]
movzx ecx, byte [eax*8 + 0x8c2f52]
mov eax, 1
shl eax, cl
test dword [esi*4 + 0x8c5800], eax
je 0x86d368
mov eax, dword [ebp - 0x14]
mov esi, ecx
lea edi, [edi + eax*2]
mov eax, dword [ebp - 0x28]
cmp edi, eax
jb 0x86d2d2
jmp 0x86d36b
mov eax, dword [ebp - 0x28]
mov esi, dword [ebp + 0x10]
mov ebx, dword [ebp - 0x30]
mov dword [ebp - 8], edi
cmp dword [esi + 0x8c], 0
je 0x86d39d
cmp edi, eax
jb 0x86d39d
cmp edi, dword [esi + 0x88]
jbe 0x86d39d
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x8690c0
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x18]
jl 0x86d241
jmp 0x86d3d4
cmp dword [esi + 0x8c], 0
je 0x86d3d4
cmp edi, dword [esi + 0x88]
jbe 0x86d3d4
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x8690c0
mov eax, dword [ebp - 0x10]
cmp dword [ebp - 0x34], 0
jne 0x834ca0
cmp edi, eax
jbe 0x834b85
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.008349c0
add esp, 0x14
test eax, eax
jne 0x834b3d
sub edi, 2
mov dword [ebp - 8], edi
cmp dword [ebp - 0x24], eax
jne 0x86e1c6
movzx ecx, word [edi]
jmp 0x86e20c
cmp dword [ebp - 0x24], 0
lea eax, [ecx - 6]
je 0x86db83
cmp eax, 0xf
ja case.default.0x869bf8
jmp dword [eax*4 + 0x870357]
cmp edx, dword [ebp - 0x18]
jge 0x86dafe
lea eax, [edi + 2]
mov dword [ebp - 0x20], eax
mov ecx, dword [esi + 0x7c]
cmp edi, ecx
jae 0x86d59a
mov edx, dword [esi + 0x18]
test edx, edx
je 0x86d500
push dword [ebp - 0x24]
lea eax, [esi + 0x1c]
push eax
push ecx
mov ecx, edi
call fcn.00835e9f
add esp, 0xc
test eax, eax
jne 0x86dafe
mov edx, dword [ebp - 0x20]
cmp dword [esi + 0x8c], 0
je 0x86d4b9
cmp edx, dword [esi + 0x7c]
jb 0x86d4b9
cmp dword [esi + 0x18], 0
jne 0x86d4b9
cmp dword [esi + 0x1c], 2
jne 0x86d4b9
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x86d4b9
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x8690c0
add edi, 2
add edx, 2
mov dword [ebp - 8], edi
mov dword [ebp - 0x20], edx
cmp edi, dword [esi + 0x7c]
jae 0x86d4eb
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x86d4eb
add edi, 2
add edx, 2
mov dword [ebp - 8], edi
mov dword [ebp - 0x20], edx
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x18]
jl 0x86d44f
jmp 0x86dafe
mov edx, dword [esi + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
cmp edi, ecx
ja 0x86d47f
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x86d47f
cmp edx, 1
je 0x86dafe
mov edx, dword [ebp - 0x20]
mov ax, word [edx]
cmp ax, word [esi + 0x36]
jne 0x86d482
jmp 0x86dafe
mov ecx, dword [ebp - 0x18]
cmp ecx, 0x7fffffff
jge 0x86d590
cmp edx, ecx
jge 0x86dafe
mov ecx, dword [esi + 0x7c]
mov eax, dword [ebp - 0x18]
cmp edi, ecx
jae 0x86d59a
add edi, 2
mov dword [ebp - 8], edi
cmp edi, ecx
jae 0x86d586
mov ax, word [edi]
mov dword [ebp - 0x14], 0xfc00
and ax, word [ebp - 0x14]
mov dword [ebp - 0x14], 0xdc00
cmp ax, word [ebp - 0x14]
mov eax, dword [ebp - 0x18]
jne 0x86d586
add edi, 2
mov dword [ebp - 8], edi
inc edx
cmp edx, eax
jl 0x86d554
jmp 0x86dafe
mov edi, dword [esi + 0x7c]
jmp 0x86d597
mov edi, ecx
mov dword [ebp - 8], edi
cmp dword [esi + 0x8c], 0
je 0x86dafe
cmp edi, dword [esi + 0x88]
jbe 0x86dafe
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle 0x86dafe
jmp 0x8690c0
mov ecx, dword [esi + 0x7c]
mov eax, ecx
sub dword [ebp - 0x18], edx
sub eax, edi
mov edx, dword [ebp - 0x18]
sar eax, 1
cmp edx, eax
ja 0x86d595
lea edi, [edi + edx*2]
mov dword [ebp - 8], edi
jmp 0x86dafe
cmp edx, dword [ebp - 0x18]
jge 0x86dafe
mov eax, dword [esi + 0x7c]
mov edx, 1
cmp edi, eax
jae 0x86d6a7
movzx ecx, word [edi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x86d633
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
cmp ecx, 0xd
jne 0x86d654
mov eax, dword [esi + 0x7c]
add edi, 2
mov dword [ebp - 8], edi
cmp edi, eax
jae 0x86dafe
cmp word [edi], 0xa
jne 0x86d692
add edi, 2
jmp 0x86d68f
cmp ecx, 0xa
je 0x86d689
cmp dword [esi + 0x6c], 0
jne 0x86dafe
cmp ecx, 0xb
je 0x86d689
cmp ecx, 0xc
je 0x86d689
cmp ecx, 0x85
je 0x86d689
cmp ecx, 0x2028
je 0x86d689
cmp ecx, 0x2029
jne 0x86dafe
mov eax, dword [esi + 0x7c]
lea edi, [edi + edx*2]
mov dword [ebp - 8], edi
mov ecx, dword [ebp - 0xc]
inc ecx
mov dword [ebp - 0xc], ecx
cmp ecx, dword [ebp - 0x18]
jl 0x86d5f6
jmp 0x86dafe
cmp dword [esi + 0x8c], 0
je 0x86dafe
cmp edi, dword [esi + 0x88]
jbe 0x86dafe
mov dword [esi + 0x68], edx
cmp dword [esi + 0x8c], edx
jle 0x86dafe
jmp 0x8690c0
cmp edx, dword [ebp - 0x18]
jge 0x86dafe
mov edx, 1
cmp edi, dword [esi + 0x7c]
jae 0x86d6a7
movzx ecx, word [edi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x86d717
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
cmp ecx, 0x180e
ja 0x86d76c
je 0x86d735
cmp ecx, 0xa0
ja 0x86d762
je 0x86d735
cmp ecx, 9
je 0x86d735
cmp ecx, 0x20
jne 0x86d798
mov ecx, 1
xor eax, eax
cmp dword [ebp - 0x1c], 0x12
sete al
cmp ecx, eax
je 0x86dafe
mov eax, dword [ebp - 0xc]
lea edi, [edi + edx*2]
inc eax
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x18]
jl 0x86d6dd
jmp 0x86dafe
cmp ecx, 0x1680
jne 0x86d798
jmp 0x86d735
cmp ecx, 0x205f
ja 0x86d790
je 0x86d735
cmp ecx, 0x2000
jb 0x86d798
cmp ecx, 0x200a
jbe 0x86d735
cmp ecx, 0x202f
jne 0x86d798
jmp 0x86d735
cmp ecx, 0x3000
je 0x86d735
xor ecx, ecx
jmp 0x86d73a
cmp edx, dword [ebp - 0x18]
jge 0x86dafe
mov edx, 1
cmp edi, dword [esi + 0x7c]
jae 0x86d6a7
movzx ecx, word [edi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x86d7e3
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
cmp ecx, 0x85
ja 0x86d821
je 0x86d82c
cmp ecx, 0xa
jb 0x86d7f7
cmp ecx, 0xd
jbe 0x86d82c
xor ecx, ecx
xor eax, eax
cmp dword [ebp - 0x1c], 0x14
sete al
cmp ecx, eax
je 0x86dafe
mov eax, dword [ebp - 0xc]
lea edi, [edi + edx*2]
inc eax
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x18]
jl 0x86d7a5
jmp 0x86dafe
lea eax, [ecx - 0x2028]
cmp eax, 1
ja 0x86d7f7
mov ecx, 1
jmp 0x86d7f9
cmp edx, dword [ebp - 0x18]
jge 0x86dafe
mov edx, 1
cmp edi, dword [esi + 0x7c]
jae 0x86d6a7
movzx ecx, word [edi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x86d87a
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
cmp ecx, 0x100
jae 0x86d88f
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
jne 0x86dafe
mov eax, dword [ebp - 0xc]
lea edi, [edi + edx*2]
inc eax
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x18]
jl 0x86d83c
jmp 0x86dafe
cmp edx, dword [ebp - 0x18]
jge 0x86dafe
mov edx, 1
cmp edi, dword [esi + 0x7c]
jae 0x86d6a7
movzx ecx, word [edi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x86d8ed
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
cmp ecx, 0x100
jae 0x86dafe
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
je 0x86dafe
mov eax, dword [ebp - 0xc]
lea edi, [edi + edx*2]
inc eax
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x18]
jl 0x86d8af
jmp 0x86dafe
cmp edx, dword [ebp - 0x18]
jge 0x86dafe
mov edx, 1
cmp edi, dword [esi + 0x7c]
jae 0x86d6a7
movzx ecx, word [edi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x86d964
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
cmp ecx, 0x100
jae 0x86d979
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
jne 0x86dafe
mov eax, dword [ebp - 0xc]
lea edi, [edi + edx*2]
inc eax
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x18]
jl 0x86d926
jmp 0x86dafe
cmp edx, dword [ebp - 0x18]
jge 0x86dafe
mov edx, 1
cmp edi, dword [esi + 0x7c]
jae 0x86d6a7
movzx ecx, word [edi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x86d9d7
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
cmp ecx, 0x100
jae 0x86dafe
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
je 0x86dafe
mov eax, dword [ebp - 0xc]
lea edi, [edi + edx*2]
inc eax
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x18]
jl 0x86d999
jmp 0x86dafe
cmp edx, dword [ebp - 0x18]
jge 0x86dafe
mov edx, 1
cmp edi, dword [esi + 0x7c]
jae 0x86d6a7
movzx ecx, word [edi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x86da4e
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
cmp ecx, 0x100
jae 0x86da63
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
jne 0x86dafe
mov eax, dword [ebp - 0xc]
lea edi, [edi + edx*2]
inc eax
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x18]
jl 0x86da10
jmp 0x86dafe
cmp edx, dword [ebp - 0x18]
jge 0x86dafe
mov edx, 1
cmp edi, dword [esi + 0x7c]
jae 0x86dade
movzx ecx, word [edi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x86dab9
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
cmp ecx, 0x100
jae 0x86dafe
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je 0x86dafe
mov eax, dword [ebp - 0xc]
lea edi, [edi + edx*2]
inc eax
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x18]
jl 0x86da7f
jmp 0x86dafe
cmp dword [esi + 0x8c], 0
je 0x86dafe
cmp edi, dword [esi + 0x88]
jbe 0x86dafe
mov dword [esi + 0x68], edx
cmp dword [esi + 0x8c], edx
jg 0x8690c0
cmp dword [ebp - 0x34], 0
jne 0x834ca0
cmp edi, dword [ebp - 0x10]
jbe 0x834b85
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.008349c0
add esp, 0x14
test eax, eax
jne 0x834b3d
mov ax, word [edi - 2]
sub edi, 2
mov ecx, 0xfc00
mov dword [ebp - 8], edi
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x86db56
sub edi, 2
mov dword [ebp - 8], edi
cmp dword [ebp - 0x1c], 0x11
mov ecx, dword [ebp - 0x10]
jne 0x86db7a
cmp edi, ecx
jbe 0x834b85
cmp word [edi], 0xa
jne 0x86db7a
cmp word [edi - 2], 0xd
jne 0x86db7a
add edi, 0xfffffffe
mov dword [ebp - 8], edi
cmp edi, ecx
ja 0x86db11
jmp 0x834b85
cmp eax, 0xf
ja case.default.0x869bf8
jmp dword [eax*4 + 0x870397]
cmp edx, dword [ebp - 0x18]
jge 0x86e060
mov ecx, dword [esi + 0x7c]
cmp edi, ecx
jae 0x86dc61
mov edx, dword [esi + 0x18]
test edx, edx
je 0x86dbc8
lea eax, [esi + 0x1c]
push 0
push eax
push ecx
mov ecx, edi
call fcn.00835e9f
add esp, 0xc
test eax, eax
je 0x86dbf4
jmp 0x86e060
mov edx, dword [esi + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
cmp edi, ecx
ja 0x86dbf4
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x86dbf4
cmp edx, 1
je 0x86e060
mov ax, word [edi + 2]
cmp ax, word [esi + 0x36]
je 0x86e060
cmp dword [esi + 0x8c], 0
je 0x86dc2e
lea eax, [edi + 2]
cmp eax, dword [esi + 0x7c]
jb 0x86dc2e
cmp dword [esi + 0x18], 0
jne 0x86dc2e
cmp dword [esi + 0x1c], 2
jne 0x86dc2e
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x86dc2e
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x8690c0
mov eax, dword [ebp - 0xc]
add edi, 2
inc eax
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x18]
jl 0x86db9c
jmp 0x86e060
mov ecx, dword [esi + 0x7c]
mov eax, ecx
sub dword [ebp - 0x18], edx
sub eax, edi
mov edx, dword [ebp - 0x18]
sar eax, 1
cmp edx, eax
jbe 0x86dc93
mov edi, ecx
mov dword [ebp - 8], edi
cmp dword [esi + 0x8c], 0
je 0x86e060
cmp edi, dword [esi + 0x88]
jbe 0x86e060
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle 0x86e060
jmp 0x8690c0
lea edi, [edi + edx*2]
mov dword [ebp - 8], edi
jmp 0x86e060
cmp edx, dword [ebp - 0x18]
jge 0x86e060
mov ecx, dword [esi + 0x7c]
cmp edi, ecx
jae 0x86dc61
movzx eax, word [edi]
cmp eax, 0xd
jne 0x86dccc
add edi, 2
mov dword [ebp - 8], edi
cmp edi, ecx
jae 0x86e060
cmp word [edi], 0xa
je 0x86dcfe
jmp 0x86dd04
cmp eax, 0xa
je 0x86dcfe
cmp dword [esi + 0x6c], 0
jne 0x86e060
cmp eax, 0xb
je 0x86dcfe
cmp eax, 0xc
je 0x86dcfe
cmp eax, 0x85
je 0x86dcfe
cmp eax, 0x2028
je 0x86dcfe
cmp eax, 0x2029
jne 0x86e060
add edi, 2
mov dword [ebp - 8], edi
inc edx
cmp edx, dword [ebp - 0x18]
jl 0x86dcaa
jmp 0x86e060
mov ecx, dword [ebp - 0x18]
cmp edx, ecx
jge 0x86e060
cmp edi, dword [esi + 0x7c]
jae 0x86dc61
movzx eax, word [edi]
cmp eax, 0x180e
jg 0x86dd5f
je 0x86e060
cmp eax, 0xa0
jg 0x86dd53
je 0x86e060
cmp eax, 9
je 0x86e060
cmp eax, 0x20
jne 0x86dd95
jmp 0x86e060
cmp eax, 0x1680
jne 0x86dd95
jmp 0x86e060
cmp eax, 0x205f
jg 0x86dd8a
je 0x86e060
cmp eax, 0x2000
jl 0x86dd95
cmp eax, 0x200a
jle 0x86e060
cmp eax, 0x202f
jne 0x86dd95
jmp 0x86e060
cmp eax, 0x3000
je 0x86e060
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, ecx
jl 0x86dd1a
jmp 0x86e060
mov ecx, dword [ebp - 0x18]
cmp edx, ecx
jge 0x86e060
cmp edi, dword [esi + 0x7c]
jae 0x86dc61
movzx eax, word [edi]
cmp eax, 0x180e
jg 0x86dded
je 0x86de1f
cmp eax, 0xa0
jg 0x86dde1
je 0x86de1f
cmp eax, 9
je 0x86de1f
cmp eax, 0x20
je 0x86de1f
jmp 0x86e060
cmp eax, 0x1680
je 0x86de1f
jmp 0x86e060
cmp eax, 0x205f
jg 0x86de14
je 0x86de1f
cmp eax, 0x2000
jl 0x86e060
cmp eax, 0x200a
jle 0x86de1f
cmp eax, 0x202f
je 0x86de1f
jmp 0x86e060
cmp eax, 0x3000
jne 0x86e060
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, ecx
jl 0x86ddb4
jmp 0x86e060
mov ecx, dword [ebp - 0x18]
cmp edx, ecx
jge 0x86e060
cmp edi, dword [esi + 0x7c]
jae 0x86dc61
movzx eax, word [edi]
cmp eax, 0x85
jg 0x86de62
je 0x86e060
cmp eax, 0xa
jl 0x86de74
cmp eax, 0xd
jg 0x86de74
jmp 0x86e060
cmp eax, 0x2028
jl 0x86de74
cmp eax, 0x2029
jle 0x86e060
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, ecx
jl 0x86de3a
jmp 0x86e060
mov ecx, dword [ebp - 0x18]
cmp edx, ecx
jge 0x86e060
cmp edi, dword [esi + 0x7c]
jae 0x86dc61
movzx eax, word [edi]
cmp eax, 0x85
jg 0x86deb1
je 0x86debf
add eax, 0xfffffff6
cmp eax, 3
jbe 0x86debf
jmp 0x86e060
add eax, 0xffffdfd8
cmp eax, 1
ja 0x86e060
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, ecx
jl 0x86de8f
jmp 0x86e060
cmp edx, dword [ebp - 0x18]
jge 0x86e060
cmp edi, dword [esi + 0x7c]
jae 0x86dc61
movzx eax, word [edi]
mov ecx, 0xff
cmp ax, cx
ja 0x86defd
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
jne 0x86e060
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, dword [ebp - 0x18]
jl 0x86ded8
jmp 0x86e060
cmp edx, dword [ebp - 0x18]
jge 0x86e060
cmp edi, dword [esi + 0x7c]
jae 0x86dc61
movzx eax, word [edi]
mov ecx, 0xff
cmp ax, cx
ja 0x86e060
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
je 0x86e060
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, dword [ebp - 0x18]
jl 0x86df17
jmp 0x86e060
cmp edx, dword [ebp - 0x18]
jge 0x86e060
cmp edi, dword [esi + 0x7c]
jae 0x86dc61
movzx eax, word [edi]
mov ecx, 0xff
cmp ax, cx
ja 0x86df7f
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
jne 0x86e060
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, dword [ebp - 0x18]
jl 0x86df5a
jmp 0x86e060
cmp edx, dword [ebp - 0x18]
jge 0x86e060
cmp edi, dword [esi + 0x7c]
jae 0x86dc61
movzx eax, word [edi]
mov ecx, 0xff
cmp ax, cx
ja 0x86e060
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
je 0x86e060
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, dword [ebp - 0x18]
jl 0x86df99
jmp 0x86e060
cmp edx, dword [ebp - 0x18]
jge 0x86e060
cmp edi, dword [esi + 0x7c]
jae 0x86dc61
movzx eax, word [edi]
mov ecx, 0xff
cmp ax, cx
ja 0x86dffd
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
jne 0x86e060
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, dword [ebp - 0x18]
jl 0x86dfdc
jmp 0x86e060
cmp edx, dword [ebp - 0x18]
jge 0x86e060
cmp edi, dword [esi + 0x7c]
jae 0x86e03b
movzx eax, word [edi]
mov ecx, 0xff
cmp ax, cx
ja 0x86e060
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je 0x86e060
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, dword [ebp - 0x18]
jl 0x86e010
jmp 0x86e060
cmp dword [esi + 0x8c], 0
je 0x86e060
cmp edi, dword [esi + 0x88]
jbe 0x86e060
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x8690c0
cmp dword [ebp - 0x34], 0
jne 0x834ca0
cmp edi, dword [ebp - 0x10]
je 0x834b85
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.008349c0
add esp, 0x14
test eax, eax
jne 0x834b3d
mov ecx, dword [ebp - 0x10]
sub edi, 2
cmp dword [ebp - 0x1c], 0x11
mov dword [ebp - 8], edi
jne 0x86e0bc
cmp edi, ecx
jbe 0x86e0be
cmp word [edi], 0xa
jne 0x86e0bc
cmp word [edi - 2], 0xd
jne 0x86e0bc
add edi, 0xfffffffe
mov dword [ebp - 8], edi
cmp edi, ecx
jne 0x86e073
jmp 0x834b85
mov eax, dword [ebp + 0x18]
inc eax
cmp word [ebx], 0x7a
push eax
push dword [ebp + 0x14]
push esi
push edx
push ecx
mov ecx, dword [ebp - 8]
jne 0x86e0f4
lea edx, [ebx + 4]
call fcn.008349c0
add esp, 0x14
test eax, eax
jne 0x834b3d
mov ebx, dword [ebp - 0x14]
jmp 0x834b82
mov edx, dword [ebp - 0x14]
call fcn.008349c0
add esp, 0x14
test eax, eax
jne 0x834b3d
add ebx, 4
jmp 0x834b82
mov eax, dword [ebp + 0x18]
inc eax
cmp word [ebx], 0x7a
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
jne 0x86e17e
mov edi, dword [ebp - 8]
lea edx, [ebx + 4]
mov ecx, edi
call fcn.008349c0
add esp, 0x14
test eax, eax
jne 0x834b3d
mov ebx, dword [ebp - 0x20]
mov ecx, 0x81
movzx eax, word [ebx]
cmp ax, cx
je 0x86e3db
mov ecx, 0x88
cmp ax, cx
jb 0x834b82
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.008349c0
add esp, 0x14
jmp 0x834b3d
mov edx, edi
mov edi, dword [ebp - 8]
mov ecx, edi
call fcn.008349c0
add esp, 0x14
cmp eax, 0xfffffc1b
jne 0x86e1a5
mov ecx, dword [ebp - 0x20]
cmp dword [esi + 0xb8], ecx
jne 0x834b3d
jmp 0x86e1b0
test eax, eax
jne 0x834b3d
mov ecx, dword [ebp - 0x20]
mov eax, 0x81
cmp word [ecx], ax
je 0x86e40e
add ebx, 4
jmp 0x834b82
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x86e1e1
sub edi, 2
mov dword [ebp - 8], edi
movzx ecx, word [edi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x86e20c
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x8d3b40]
shl eax, 7
and ecx, 0x8000007f
jns 0x86e22e
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x8c5840]
movzx eax, byte [eax*8 + 0x8c2f52]
mov dword [ebp - 0x28], eax
cmp edi, dword [ebp - 0x10]
jbe 0x834b85
cmp dword [ebp - 0x24], 0
lea edx, [edi - 2]
mov dword [ebp - 0x14], edx
jne 0x86e25d
movzx ecx, word [edx]
jmp 0x86e2a3
mov ax, word [edx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x86e278
sub edx, 2
mov dword [ebp - 0x14], edx
movzx ecx, word [edx]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x86e2a3
movzx eax, word [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x8d3b40]
shl eax, 7
and ecx, 0x8000007f
jns 0x86e2c5
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
mov ecx, dword [ebp - 0x28]
movzx eax, word [eax*2 + 0x8c5840]
movzx edx, byte [eax*8 + 0x8c2f52]
mov eax, 1
shl eax, cl
test dword [edx*4 + 0x8c5800], eax
je 0x86d3e9
mov edi, dword [ebp - 0x14]
mov dword [ebp - 8], edi
mov dword [ebp - 0x28], edx
jmp 0x86e243
mov dword [esi + 0x9c], 2
jmp 0x835302
movzx ecx, word [ebx + 2]
lea eax, [ebx + ecx*2]
cmp dword [esi + 0x80], eax
jae 0x86fec5
cmp word [ebx], 0x77
je 0x835351
cmp word [eax], 0x77
jne 0x86fec5
jmp 0x835351
mov eax, dword [ebp + 0x18]
inc eax
push eax
movzx eax, word [ebx]
push dword [ebp + 0x14]
push esi
movzx ecx, byte [eax + 0x8c5750]
movzx eax, word [ebx + 2]
push dword [ebp + 0xc]
add ecx, eax
push dword [ebp + 8]
lea edx, [ebx + ecx*2]
mov ecx, dword [ebp - 8]
call fcn.008349c0
add esp, 0x14
test eax, eax
jne 0x834b3d
lea eax, [ebx + 4]
mov dword [esi + 0x80], eax
mov eax, 0xfffffc1f
jmp 0x834b3d
mov eax, dword [ebp - 0x54]
mov dword [esi + 0xa8], eax
mov eax, dword [ebp - 0x4c]
lea ecx, [ebp - 0x14c]
cmp eax, ecx
je case.0x834a45.157
push eax
call dword [0x8c5748]
add esp, 4
jmp case.0x834a45.157
mov eax, dword [ebp - 0x4c]
lea ecx, [ebp - 0x14c]
cmp eax, ecx
je 0x86e3ca
push eax
call dword [0x8c5748]
add esp, 4
jmp 0x86e3ca
mov ecx, dword [ebp - 0x14]
mov dword [esi + 0xb0], ecx
mov eax, edi
jmp 0x834b3d
mov eax, 0xfffffffa
jmp 0x834b3d
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.008349c0
add esp, 0x14
test eax, eax
jne 0x834b3d
mov dword [esi + 0xb8], ebx
mov eax, 0xfffffc1b
jmp 0x834b3d
mov eax, dword [ebp + 0x18]
lea edx, [ebx + 4]
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.008349c0
add esp, 0x14
test eax, eax
jne 0x834b3d
mov eax, dword [ebp - 0x20]
mov dword [esi + 0xb8], eax
mov eax, 0xfffffc1b
jmp 0x834b3d
mov eax, dword [ebp + 0x18]
lea edx, [ebx + 4]
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.008349c0
add esp, 0x14
test eax, eax
jne 0x834b3d
mov dword [esi + 0xb8], edi
mov eax, 0xfffffc1b
jmp 0x834b3d
mov eax, dword [ebp + 8]
mov dword [esi + 0x80], eax
mov eax, dword [ebp - 8]
mov dword [esi + 0x84], eax
mov eax, dword [ebp + 0xc]
mov dword [esi + 0x90], eax
mov eax, 0xfffffc1a
jmp 0x834b3d
mov eax, dword [ebp - 8]
mov dword [esi + 0x84], eax
mov eax, dword [ebp + 0xc]
mov dword [esi + 0x90], eax
mov eax, dword [ebp + 8]
mov dword [esi + 0x80], eax
jmp 0x834b38
cmp dword [esi + 0x8c], 0
je case.0x834a45.157
cmp eax, dword [esi + 0x88]
jmp 0x86e4da
cmp ecx, dword [esi + 0x88]
jbe case.0x834a45.157
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle case.0x834a45.157
mov eax, 0xfffffff4
jmp 0x834b3d
mov eax, 0xfffffff2
jmp 0x834b3d
cmp eax, 0xfffffffe
jne 0x86e510
mov edi, dword [esi + 0x7c]
cmp dword [esi + 0x8c], 0
je case.0x834a45.157
cmp edi, dword [esi + 0x7c]
jb case.0x834a45.157
cmp edi, dword [esi + 0x88]
jmp 0x86e4da
mov dword [ebp - 0x14], eax
cmp edi, edx
jl 0x86e53c
mov edi, eax
jmp 0x86e5a1
mov eax, dword [ebp - 8]
push dword [ebp - 0x34]
mov edx, eax
push esi
push ecx
mov ecx, dword [ebp - 0x10]
call fcn.008ae7bd
add esp, 0xc
test eax, eax
js 0x86e566
mov edx, dword [ebp - 8]
inc edi
mov ecx, dword [ebp - 0x20]
lea edx, [edx + eax*2]
mov dword [ebp - 8], edx
cmp edi, dword [ebp - 0x1c]
jl 0x86e539
jmp 0x86e596
cmp eax, 0xfffffffe
jne 0x86e593
cmp dword [esi + 0x8c], 0
je 0x86e593
mov eax, dword [esi + 0x7c]
cmp eax, dword [esi + 0x88]
jbe 0x86e593
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x8690c0
mov edx, dword [ebp - 8]
mov edi, dword [ebp - 0x14]
cmp edx, edi
jb case.0x834a45.157
mov eax, dword [ebp + 0x18]
mov edx, ebx
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.008349c0
add esp, 0x14
test eax, eax
jne 0x834b3d
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 8]
neg eax
lea edx, [edx + eax*2]
mov dword [ebp - 8], edx
cmp edx, edi
jae 0x86e5a1
xor eax, eax
jmp 0x834b3d
cmp ecx, 0xfffffffe
jne 0x86e5e8
mov eax, dword [esi + 0x7c]
jmp 0x86e5eb
mov eax, dword [ebp - 8]
cmp dword [esi + 0x8c], 0
je case.0x834a45.157
cmp eax, dword [esi + 0x7c]
jb case.0x834a45.157
jmp 0x86e4cc
mov eax, edi
sub edi, 2
cmp eax, dword [ebp - 0x2c]
je case.0x834a45.157
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x86e62c
sub edi, 2
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.008349c0
add esp, 0x14
test eax, eax
je 0x86e606
jmp 0x834b3d
mov eax, dword [ebp + 0x18]
mov edx, ebx
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.008349c0
add esp, 0x14
cmp dword [ebp - 0x24], 0
je 0x86e73e
test eax, eax
jne 0x834b3d
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x10], eax
jge case.0x834a45.157
mov ecx, dword [ebp - 8]
cmp ecx, dword [esi + 0x7c]
jae 0x86e726
movzx edx, word [ecx]
add ecx, 2
mov eax, edx
mov dword [ebp - 8], ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x86e6cc
movzx eax, word [ecx]
and edx, 0x3ff
shl edx, 0xa
and eax, 0x3ff
or edx, eax
add edx, 0x10000
add ecx, 2
mov dword [ebp - 8], ecx
cmp edx, 0xff
jbe 0x86e6df
cmp edi, 0x6e
je case.0x834a45.157
jmp 0x86e6fd
mov ecx, edx
mov eax, 1
and ecx, 7
shr edx, 3
shl eax, cl
mov ecx, dword [ebp - 0x20]
test byte [edx + ecx], al
je case.0x834a45.157
mov ecx, dword [ebp - 8]
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc dword [ebp - 0x10]
inc eax
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.008349c0
add esp, 0x14
test eax, eax
je 0x86e67e
jmp 0x834b3d
cmp dword [esi + 0x8c], 0
je case.0x834a45.157
cmp ecx, dword [esi + 0x88]
jmp 0x86e4da
test eax, eax
jne 0x834b3d
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x10], eax
jge case.0x834a45.157
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x86e4bf
movzx edx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp edx, 0xff
jbe 0x86e77a
cmp edi, 0x6e
je case.0x834a45.157
jmp 0x86e795
mov ecx, edx
mov eax, 1
and ecx, 7
shr edx, 3
shl eax, cl
mov ecx, dword [ebp - 0x20]
test byte [edx + ecx], al
je case.0x834a45.157
mov eax, dword [ebp + 0x18]
mov edx, ebx
mov ecx, dword [ebp - 8]
inc eax
inc dword [ebp - 0x10]
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.008349c0
add esp, 0x14
test eax, eax
je 0x86e746
jmp 0x834b3d
mov eax, dword [ebp + 0x18]
mov edx, ebx
mov edi, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.008349c0
add esp, 0x14
test eax, eax
jne 0x834b3d
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x20], eax
jge case.0x834a45.157
cmp edi, dword [esi + 0x7c]
jae 0x86e866
movzx ecx, word [edi]
add edi, 2
mov edx, dword [ebp - 0x24]
test edx, edx
je 0x86e82b
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x86e82b
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edi, 2
push edx
mov edx, dword [ebp - 0x28]
call fcn.008aeae6
add esp, 4
test eax, eax
je case.0x834a45.157
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc dword [ebp - 0x20]
inc eax
push eax
push dword [ebp + 0x14]
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.008349c0
add esp, 0x14
test eax, eax
je 0x86e7e3
jmp 0x834b3d
cmp dword [esi + 0x8c], 0
je case.0x834a45.157
cmp edi, dword [esi + 0x88]
jmp 0x86e4da
cmp dword [esi + 0x8c], 0
je case.0x834a45.157
cmp edx, dword [esi + 0x7c]
jb case.0x834a45.157
cmp edx, dword [esi + 0x88]
jmp 0x86e4da
mov ecx, dword [ebp - 8]
cmp dword [esi + 0x8c], 0
je case.0x834a45.157
cmp ecx, dword [esi + 0x7c]
jb case.0x834a45.157
jmp 0x86e4d4
mov eax, dword [ebp + 0x18]
mov edx, ebx
mov edi, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.008349c0
add esp, 0x14
test eax, eax
jne 0x834b3d
mov edx, dword [ebp - 0x1c]
lea ecx, [edx + edx]
mov dword [ebp - 0x28], ecx
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0x18]
jge case.0x834a45.157
mov eax, dword [esi + 0x7c]
sub eax, ecx
cmp edi, eax
ja 0x86e91a
lea eax, [edx + edx]
push eax
push dword [ebp - 0x14]
push edi
call fcn.008416c4
add esp, 0xc
test eax, eax
jne 0x86e91a
add edi, dword [ebp - 0x28]
jmp 0x86e954
mov edx, dword [ebp - 0x20]
test edx, edx
jle 0x86e510
mov eax, dword [esi + 0x7c]
lea ecx, [edx + edx]
sub eax, ecx
cmp edi, eax
ja 0x86e510
lea eax, [edx + edx]
push eax
lea eax, [ebp - 0x68]
push eax
push edi
call fcn.008416c4
add esp, 0xc
test eax, eax
jne 0x86e510
mov ecx, dword [ebp - 0x20]
lea edi, [edi + ecx*2]
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc dword [ebp - 0x10]
inc eax
push eax
push dword [ebp + 0x14]
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.008349c0
mov ecx, dword [ebp - 0x28]
add esp, 0x14
mov edx, dword [ebp - 0x1c]
test eax, eax
je 0x86e8ec
jmp 0x834b3d
mov eax, dword [ebp + 0x18]
mov edx, ebx
mov edi, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.008349c0
add esp, 0x14
test eax, eax
jne 0x834b3d
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0x18]
jge case.0x834a45.157
cmp edi, dword [esi + 0x7c]
jae 0x86e866
movzx ecx, word [edi]
cmp dword [ebp - 0xc], ecx
je 0x86e9d1
cmp dword [ebp - 0x1c], ecx
jne case.0x834a45.157
inc eax
add edi, 2
mov dword [ebp - 0x10], eax
mov edx, ebx
mov eax, dword [ebp + 0x18]
mov ecx, edi
inc eax
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.008349c0
add esp, 0x14
test eax, eax
je 0x86e9ab
jmp 0x834b3d
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.008349c0
add esp, 0x14
test eax, eax
jne 0x834b3d
mov ecx, dword [ebp - 0x10]
cmp ecx, dword [ebp - 0x18]
jge case.0x834a45.157
cmp edi, dword [esi + 0x7c]
jae 0x86e866
movzx eax, word [edi]
add edi, 2
cmp dword [ebp - 0xc], eax
jne case.0x834a45.157
mov eax, dword [ebp + 0x18]
inc ecx
inc eax
mov dword [ebp - 0x10], ecx
push eax
push dword [ebp + 0x14]
mov edx, ebx
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.008349c0
add esp, 0x14
test eax, eax
je 0x86ea1f
jmp 0x834b3d
mov eax, dword [ebp + 0x18]
mov edx, ebx
mov edi, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.008349c0
add esp, 0x14
cmp dword [ebp - 0x24], 0
je 0x86eb1a
test eax, eax
jne 0x834b3d
mov edx, dword [ebp - 0x10]
cmp edx, dword [ebp - 0x18]
jge case.0x834a45.157
cmp edi, dword [esi + 0x7c]
jae 0x86e866
movzx ecx, word [edi]
add edi, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x86eae0
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edi, 2
cmp dword [ebp - 0xc], ecx
je case.0x834a45.157
cmp dword [ebp - 0x20], ecx
je case.0x834a45.157
mov eax, dword [ebp + 0x18]
inc edx
inc eax
mov dword [ebp - 0x10], edx
push eax
push dword [ebp + 0x14]
mov edx, ebx
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.008349c0
add esp, 0x14
test eax, eax
je 0x86ea9b
jmp 0x834b3d
test eax, eax
jne 0x834b3d
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0x18]
jge case.0x834a45.157
cmp edi, dword [esi + 0x7c]
jae 0x86e866
movzx ecx, word [edi]
cmp dword [ebp - 0xc], ecx
je case.0x834a45.157
cmp dword [ebp - 0x20], ecx
je case.0x834a45.157
inc eax
add edi, 2
mov dword [ebp - 0x10], eax
mov edx, ebx
mov eax, dword [ebp + 0x18]
mov ecx, edi
inc eax
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.008349c0
add esp, 0x14
test eax, eax
je 0x86eb22
jmp 0x834b3d
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.008349c0
add esp, 0x14
cmp dword [ebp - 0x24], 0
je 0x86ec16
test eax, eax
jne 0x834b3d
mov edx, dword [ebp - 0x10]
cmp edx, dword [ebp - 0x18]
jge case.0x834a45.157
cmp edi, dword [esi + 0x7c]
jae 0x86e866
movzx ecx, word [edi]
add edi, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x86ebe5
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edi, 2
cmp dword [ebp - 0xc], ecx
je case.0x834a45.157
mov eax, dword [ebp + 0x18]
inc edx
inc eax
mov dword [ebp - 0x10], edx
push eax
push dword [ebp + 0x14]
mov edx, ebx
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.008349c0
add esp, 0x14
test eax, eax
je 0x86eba0
jmp 0x834b3d
test eax, eax
jne 0x834b3d
mov ecx, dword [ebp - 0x10]
cmp ecx, dword [ebp - 0x18]
jge case.0x834a45.157
cmp edi, dword [esi + 0x7c]
jae 0x86e866
movzx eax, word [edi]
add edi, 2
cmp dword [ebp - 0xc], eax
je case.0x834a45.157
mov eax, dword [ebp + 0x18]
inc ecx
inc eax
mov dword [ebp - 0x10], ecx
push eax
push dword [ebp + 0x14]
mov edx, ebx
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.008349c0
add esp, 0x14
test eax, eax
je 0x86ec1e
jmp 0x834b3d
cmp ecx, 0xa
ja case.default.0x869bf8
jmp dword [ecx*4 + 0x8703d7]
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.008349c0
add esp, 0x14
test eax, eax
jne 0x834b3d
mov ecx, dword [ebp - 0xc]
cmp ecx, dword [ebp - 0x18]
jge case.0x834a45.157
cmp edi, dword [esi + 0x7c]
jae 0x86e866
movzx eax, word [edi]
add edi, 2
cmp dword [ebp - 0x24], 0
je 0x86eccd
and eax, 0xfc00
cmp eax, 0xd800
jne 0x86eccd
add edi, 2
cmp dword [ebp - 0x38], 0
jne case.0x834a45.157
mov eax, dword [ebp + 0x18]
inc ecx
inc eax
mov dword [ebp - 0xc], ecx
push eax
push dword [ebp + 0x14]
mov edx, ebx
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.008349c0
add esp, 0x14
test eax, eax
je 0x86ec9d
jmp 0x834b3d
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.008349c0
add esp, 0x14
test eax, eax
jne 0x834b3d
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0xc], eax
jge case.0x834a45.157
cmp edi, dword [esi + 0x7c]
jae 0x86e866
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x24], 0
je 0x86ed6d
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x86ed6d
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edi, 2
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x8d3b40]
shl eax, 7
and ecx, 0x8000007f
jns 0x86ed8f
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x8c5840]
movzx eax, byte [eax*8 + 0x8c2f51]
cmp eax, 9
je 0x86edb4
cmp eax, 5
je 0x86edb4
cmp eax, 8
je 0x86edb4
xor eax, eax
jmp 0x86edb9
mov eax, 1
cmp eax, dword [ebp - 0x38]
je case.0x834a45.157
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc dword [ebp - 0xc]
inc eax
push eax
push dword [ebp + 0x14]
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.008349c0
add esp, 0x14
test eax, eax
je 0x86ed22
jmp 0x834b3d
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.008349c0
add esp, 0x14
test eax, eax
jne 0x834b3d
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0xc], eax
jge case.0x834a45.157
cmp edi, dword [esi + 0x7c]
jae 0x86e866
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x24], 0
je 0x86ee5b
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x86ee5b
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edi, 2
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x8d3b40]
shl eax, 7
and ecx, 0x8000007f
jns 0x86ee7d
dec ecx
or ecx, 0xffffff80
inc ecx
mov edx, dword [ebp - 0x3c]
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x8c5840]
movzx eax, byte [eax*8 + 0x8c2f51]
cmp dword [eax*4 + 0x8d89a0], edx
sete cl
cmp ecx, dword [ebp - 0x38]
je case.0x834a45.157
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc dword [ebp - 0xc]
inc eax
push eax
push dword [ebp + 0x14]
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.008349c0
add esp, 0x14
test eax, eax
je 0x86ee10
jmp 0x834b3d
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.008349c0
add esp, 0x14
test eax, eax
jne 0x834b3d
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0xc], eax
jge case.0x834a45.157
cmp edi, dword [esi + 0x7c]
jae 0x86e866
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x24], 0
je 0x86ef40
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x86ef40
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edi, 2
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x8d3b40]
shl eax, 7
and ecx, 0x8000007f
jns 0x86ef62
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x8c5840]
movzx eax, byte [eax*8 + 0x8c2f51]
cmp eax, dword [ebp - 0x3c]
sete cl
cmp ecx, dword [ebp - 0x38]
je case.0x834a45.157
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc dword [ebp - 0xc]
inc eax
push eax
push dword [ebp + 0x14]
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.008349c0
add esp, 0x14
test eax, eax
je 0x86eef5
jmp 0x834b3d
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.008349c0
add esp, 0x14
test eax, eax
jne 0x834b3d
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0xc], eax
jge case.0x834a45.157
cmp edi, dword [esi + 0x7c]
jae 0x86e866
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x24], 0
je 0x86f01e
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x86f01e
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edi, 2
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x8d3b40]
shl eax, 7
and ecx, 0x8000007f
jns 0x86f040
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x8c5840]
movzx eax, byte [eax*8 + 0x8c2f50]
cmp eax, dword [ebp - 0x3c]
sete cl
cmp ecx, dword [ebp - 0x38]
je case.0x834a45.157
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc dword [ebp - 0xc]
inc eax
push eax
push dword [ebp + 0x14]
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.008349c0
add esp, 0x14
test eax, eax
je 0x86efd3
jmp 0x834b3d
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.008349c0
add esp, 0x14
test eax, eax
jne 0x834b3d
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0xc], eax
jge case.0x834a45.157
cmp edi, dword [esi + 0x7c]
jae 0x86e866
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x24], 0
je 0x86f0fc
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x86f0fc
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edi, 2
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x8d3b40]
shl eax, 7
and ecx, 0x8000007f
jns 0x86f11e
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x8c5840]
movzx eax, byte [eax*8 + 0x8c2f51]
mov eax, dword [eax*4 + 0x8d89a0]
cmp eax, 1
je 0x86f145
cmp eax, 3
je 0x86f145
xor eax, eax
jmp 0x86f14a
mov eax, 1
cmp eax, dword [ebp - 0x38]
je case.0x834a45.157
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc dword [ebp - 0xc]
inc eax
push eax
push dword [ebp + 0x14]
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.008349c0
add esp, 0x14
test eax, eax
je 0x86f0b1
jmp 0x834b3d
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.008349c0
add esp, 0x14
test eax, eax
jne 0x834b3d
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 0x18]
jge case.0x834a45.157
cmp edi, dword [esi + 0x7c]
jae 0x86e866
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x24], 0
je 0x86f1ef
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x86f1ec
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edi, 2
mov eax, dword [ebp - 0xc]
cmp ecx, 0x180e
ja 0x86f23c
je 0x86f2c1
cmp ecx, 0x85
ja 0x86f223
je 0x86f2c1
cmp ecx, 9
jb case.0x86f258.8203
cmp ecx, 0xd
jbe 0x86f2c1
cmp ecx, 0x20
jne case.0x86f258.8203
jmp 0x86f2c1
cmp ecx, 0xa0
je 0x86f2c1
cmp ecx, 0x1680
jne case.0x86f258.8203
jmp 0x86f2c1
cmp ecx, 0x202f
ja 0x86f25f
je 0x86f2c1
lea eax, [ecx - 0x2000]
cmp eax, 0x29
ja case.0x86f258.8203
movzx eax, byte [eax + 0x87040b]
jmp dword [eax*4 + 0x870403]
cmp ecx, 0x205f
je 0x86f2c1
cmp ecx, 0x3000
je 0x86f2c1
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x8d3b40]
shl eax, 7
and ecx, 0x8000007f
jns 0x86f291
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x8c5840]
movzx eax, byte [eax*8 + 0x8c2f51]
cmp dword [eax*4 + 0x8d89a0], 6
sete cl
cmp ecx, dword [ebp - 0x38]
je case.0x834a45.157
mov eax, dword [ebp - 0xc]
jmp 0x86f2cb
mov eax, dword [ebp - 0xc]
cmp dword [ebp - 0x38], 0
jne case.0x834a45.157
inc eax
mov edx, ebx
mov dword [ebp - 0xc], eax
mov ecx, edi
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.008349c0
add esp, 0x14
test eax, eax
je 0x86f1a1
jmp 0x834b3d
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.008349c0
add esp, 0x14
test eax, eax
jne 0x834b3d
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0xc], eax
jge case.0x834a45.157
cmp edi, dword [esi + 0x7c]
jae 0x86e866
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x24], 0
mov dword [ebp - 0x14], ecx
je 0x86f36b
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x86f36b
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edi, 2
mov dword [ebp - 0x14], ecx
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0x14]
sar eax, 7
movzx ecx, byte [eax + 0x8d3b40]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x86f391
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x8c5840]
movzx eax, byte [eax*8 + 0x8c2f51]
mov eax, dword [eax*4 + 0x8d89a0]
cmp eax, 1
je 0x86f3bd
cmp eax, 3
je 0x86f3bd
cmp edx, 0x5f
je 0x86f3bd
xor eax, eax
jmp 0x86f3c2
mov eax, 1
cmp eax, dword [ebp - 0x38]
je case.0x834a45.157
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc dword [ebp - 0xc]
inc eax
push eax
push dword [ebp + 0x14]
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.008349c0
add esp, 0x14
test eax, eax
je 0x86f31a
jmp 0x834b3d
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.008349c0
add esp, 0x14
test eax, eax
jne 0x834b3d
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0xc], eax
jge case.0x834a45.157
cmp edi, dword [esi + 0x7c]
jae 0x86e866
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x24], 0
je 0x86f464
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x86f464
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edi, 2
mov eax, dword [ebp - 0x3c]
mov edx, dword [eax*4 + 0x8c45d0]
lea eax, [eax*4 + 0x8c45d0]
cmp ecx, edx
jb 0x86f486
lea eax, [eax + 4]
cmp ecx, edx
je 0x86f4bb
mov edx, dword [eax]
cmp ecx, edx
jae 0x86f479
cmp dword [ebp - 0x38], 0
je case.0x834a45.157
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc dword [ebp - 0xc]
inc eax
push eax
push dword [ebp + 0x14]
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.008349c0
add esp, 0x14
test eax, eax
je 0x86f419
jmp 0x834b3d
cmp dword [ebp - 0x38], 0
jne case.0x834a45.157
jmp 0x86f490
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.008349c0
add esp, 0x14
test eax, eax
jne 0x834b3d
mov edx, dword [ebp - 0xc]
cmp edx, dword [ebp - 0x18]
jge case.0x834a45.157
cmp edi, dword [esi + 0x7c]
jae 0x86e866
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x24], 0
je 0x86f535
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x86f535
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edi, 2
cmp ecx, 0x24
je 0x86f560
cmp ecx, 0x40
je 0x86f560
cmp ecx, 0x60
je 0x86f560
cmp ecx, 0xa0
jb 0x86f554
cmp ecx, 0xd7ff
jbe 0x86f560
cmp ecx, 0xe000
jae 0x86f560
xor eax, eax
jmp 0x86f565
mov eax, 1
cmp eax, dword [ebp - 0x38]
je case.0x834a45.157
mov eax, dword [ebp + 0x18]
inc edx
inc eax
mov dword [ebp - 0xc], edx
push eax
push dword [ebp + 0x14]
mov edx, ebx
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.008349c0
add esp, 0x14
test eax, eax
je 0x86f4ea
jmp 0x834b3d
test eax, eax
jne 0x834b3d
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0xc], eax
jge case.0x834a45.157
cmp edi, dword [esi + 0x7c]
jae 0x86e866
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x24], 0
je 0x86f5ed
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x86f5ed
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edi, 2
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x8d3b40]
shl eax, 7
and ecx, 0x8000007f
jns 0x86f60f
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x8c5840]
movzx ecx, byte [eax*8 + 0x8c2f52]
mov eax, dword [esi + 0x7c]
mov dword [ebp - 0x14], ecx
cmp edi, eax
jae 0x86f6cf
mov ebx, ecx
cmp dword [ebp - 0x24], 0
movzx ecx, word [edi]
mov dword [ebp - 0x14], 1
je 0x86f670
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x86f670
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov dword [ebp - 0x14], 2
add ecx, 0x10000
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x8d3b40]
shl eax, 7
and ecx, 0x8000007f
jns 0x86f692
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x8c5840]
movzx ecx, byte [eax*8 + 0x8c2f52]
mov eax, 1
shl eax, cl
test dword [ebx*4 + 0x8c5800], eax
je 0x86f6c9
mov eax, dword [ebp - 0x14]
mov ebx, ecx
lea edi, [edi + eax*2]
mov eax, dword [esi + 0x7c]
cmp edi, eax
jb 0x86f631
jmp 0x86f6cc
mov eax, dword [esi + 0x7c]
mov ebx, dword [ebp - 0x30]
cmp dword [esi + 0x8c], 0
je 0x86f6f8
cmp edi, eax
jb 0x86f6f8
cmp edi, dword [esi + 0x88]
jbe 0x86f6f8
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x8690c0
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc dword [ebp - 0xc]
inc eax
push eax
push dword [ebp + 0x14]
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.008349c0
add esp, 0x14
test eax, eax
je 0x86f5a2
jmp 0x834b3d
mov edx, dword [esi + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
cmp edi, ecx
ja 0x835162
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x835162
cmp edx, 1
je case.0x834a45.157
mov ax, word [edi + 2]
cmp ax, word [esi + 0x36]
je case.0x834a45.157
jmp 0x835162
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edi, 2
jmp 0x83517d
add eax, 0xfffffffa
cmp eax, 0xf
ja case.default.0x869bf8
jmp dword [eax*4 + 0x870437]
cmp ecx, 0xd
ja 0x86f7c9
je 0x86f7ae
cmp ecx, 0xa
je case.0x86f789.13
lea eax, [ecx - 0xb]
cmp eax, 1
ja case.0x834a45.157
jmp 0x86f7e0
cmp edi, dword [esi + 0x7c]
jae case.0x86f789.13
cmp word [edi], 0xa
jne case.0x86f789.13
add edi, 2
jmp case.0x86f789.13
cmp ecx, 0x85
je 0x86f7e0
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x834a45.157
cmp dword [esi + 0x6c], 0
jne case.0x834a45.157
jmp case.0x86f789.13
cmp ecx, 0x180e
ja 0x86f833
je case.0x834a45.157
cmp ecx, 0xa0
ja 0x86f822
je case.0x834a45.157
cmp ecx, 9
je case.0x834a45.157
cmp ecx, 0x20
je case.0x834a45.157
jmp case.0x86f789.13
cmp ecx, 0x1680
je case.0x834a45.157
jmp case.0x86f789.13
cmp ecx, 0x205f
ja 0x86f86a
je case.0x834a45.157
cmp ecx, 0x2000
jb case.0x86f789.13
cmp ecx, 0x200a
jbe case.0x834a45.157
cmp ecx, 0x202f
je case.0x834a45.157
jmp case.0x86f789.13
cmp ecx, 0x3000
je case.0x834a45.157
jmp case.0x86f789.13
cmp ecx, 0x180e
ja 0x86f8bf
je case.0x86f789.13
cmp ecx, 0xa0
ja 0x86f8ae
je case.0x86f789.13
cmp ecx, 9
je case.0x86f789.13
cmp ecx, 0x20
jne case.0x834a45.157
jmp case.0x86f789.13
cmp ecx, 0x1680
jne case.0x834a45.157
jmp case.0x86f789.13
cmp ecx, 0x205f
ja 0x86f8f6
je case.0x86f789.13
cmp ecx, 0x2000
jb case.0x834a45.157
cmp ecx, 0x200a
jbe case.0x86f789.13
cmp ecx, 0x202f
jne case.0x834a45.157
jmp case.0x86f789.13
cmp ecx, 0x3000
jne case.0x834a45.157
jmp case.0x86f789.13
cmp ecx, 0x85
ja 0x86f92c
je case.0x834a45.157
cmp ecx, 0xa
jb case.0x86f789.13
cmp ecx, 0xd
jbe case.0x834a45.157
jmp case.0x86f789.13
cmp ecx, 0x2028
jb case.0x86f789.13
cmp ecx, 0x2029
jbe case.0x834a45.157
jmp case.0x86f789.13
cmp ecx, 0x85
ja 0x86f968
je case.0x86f789.13
lea eax, [ecx - 0xa]
cmp eax, 3
ja case.0x834a45.157
jmp case.0x86f789.13
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x834a45.157
jmp case.0x86f789.13
cmp ecx, 0x100
jae case.0x86f789.13
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
jne case.0x834a45.157
jmp case.0x86f789.13
cmp ecx, 0x100
jae case.0x834a45.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
je case.0x834a45.157
jmp case.0x86f789.13
cmp ecx, 0x100
jae case.0x86f789.13
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
jne case.0x834a45.157
jmp case.0x86f789.13
cmp ecx, 0x100
jae case.0x834a45.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
je case.0x834a45.157
jmp case.0x86f789.13
cmp ecx, 0x100
jae case.0x86f789.13
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
jne case.0x834a45.157
jmp case.0x86f789.13
cmp ecx, 0x100
jae case.0x834a45.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je case.0x834a45.157
jmp case.0x86f789.13
cmp edi, dword [esi + 0x7c]
jb case.0x86f789.13
cmp dword [esi + 0x18], 0
jne case.0x86f789.13
cmp dword [esi + 0x1c], 2
jne case.0x86f789.13
movzx eax, word [esi + 0x34]
cmp ecx, eax
jne case.0x86f789.13
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x8690c0
jmp case.0x86f789.13
test eax, eax
jne 0x834b3d
mov edx, dword [ebp - 0xc]
cmp edx, dword [ebp - 0x18]
jge case.0x834a45.157
mov ecx, dword [esi + 0x7c]
cmp edi, ecx
jae 0x86e866
mov eax, dword [ebp - 0x1c]
cmp eax, 0xc
jne 0x86faed
mov edx, dword [esi + 0x18]
test edx, edx
je 0x86fabb
push 0
lea eax, [esi + 0x1c]
push eax
push ecx
mov ecx, edi
call fcn.00835e9f
add esp, 0xc
test eax, eax
jne case.0x834a45.157
jmp 0x86fae7
mov edx, dword [esi + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
cmp edi, ecx
ja 0x86fae7
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x86fae7
cmp edx, 1
je case.0x834a45.157
mov ax, word [edi + 2]
cmp ax, word [esi + 0x36]
je case.0x834a45.157
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0xc]
movzx ecx, word [edi]
add eax, 0xfffffffa
add edi, 2
cmp eax, 0xf
ja case.default.0x869bf8
jmp dword [eax*4 + 0x870477]
cmp dword [esi + 0x8c], 0
je case.0x86faff.13
cmp edi, dword [esi + 0x7c]
jb case.0x86faff.13
cmp dword [esi + 0x18], 0
jne case.0x86faff.13
cmp dword [esi + 0x1c], 2
jne case.0x86faff.13
movzx eax, word [esi + 0x34]
cmp ecx, eax
jne case.0x86faff.13
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x8690c0
jmp case.0x86faff.13
cmp ecx, 0xd
ja 0x86fb8e
je 0x86fb73
cmp ecx, 0xa
je case.0x86faff.13
lea eax, [ecx - 0xb]
cmp eax, 1
ja case.0x834a45.157
jmp 0x86fba5
cmp edi, dword [esi + 0x7c]
jae case.0x86faff.13
cmp word [edi], 0xa
jne case.0x86faff.13
add edi, 2
jmp case.0x86faff.13
cmp ecx, 0x85
je 0x86fba5
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x834a45.157
cmp dword [esi + 0x6c], 0
jne case.0x834a45.157
jmp case.0x86faff.13
cmp ecx, 0x180e
ja 0x86fbf8
je case.0x834a45.157
cmp ecx, 0xa0
ja 0x86fbe7
je case.0x834a45.157
cmp ecx, 9
je case.0x834a45.157
cmp ecx, 0x20
je case.0x834a45.157
jmp case.0x86faff.13
cmp ecx, 0x1680
je case.0x834a45.157
jmp case.0x86faff.13
cmp ecx, 0x205f
ja 0x86fc2f
je case.0x834a45.157
cmp ecx, 0x2000
jb case.0x86faff.13
cmp ecx, 0x200a
jbe case.0x834a45.157
cmp ecx, 0x202f
je case.0x834a45.157
jmp case.0x86faff.13
cmp ecx, 0x3000
je case.0x834a45.157
jmp case.0x86faff.13
cmp ecx, 0x180e
ja 0x86fc84
je case.0x86faff.13
cmp ecx, 0xa0
ja 0x86fc73
je case.0x86faff.13
cmp ecx, 9
je case.0x86faff.13
cmp ecx, 0x20
jne case.0x834a45.157
jmp case.0x86faff.13
cmp ecx, 0x1680
jne case.0x834a45.157
jmp case.0x86faff.13
cmp ecx, 0x205f
ja 0x86fcbb
je case.0x86faff.13
cmp ecx, 0x2000
jb case.0x834a45.157
cmp ecx, 0x200a
jbe case.0x86faff.13
cmp ecx, 0x202f
jne case.0x834a45.157
jmp case.0x86faff.13
cmp ecx, 0x3000
jne case.0x834a45.157
jmp case.0x86faff.13
cmp ecx, 0x85
ja 0x86fcf1
je case.0x834a45.157
cmp ecx, 0xa
jb case.0x86faff.13
cmp ecx, 0xd
jbe case.0x834a45.157
jmp case.0x86faff.13
cmp ecx, 0x2028
jb case.0x86faff.13
cmp ecx, 0x2029
jbe case.0x834a45.157
jmp case.0x86faff.13
cmp ecx, 0x85
ja 0x86fd2d
je case.0x86faff.13
lea eax, [ecx - 0xa]
cmp eax, 3
ja case.0x834a45.157
jmp case.0x86faff.13
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x834a45.157
jmp case.0x86faff.13
cmp ecx, 0xff
ja case.0x86faff.13
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
jne case.0x834a45.157
jmp case.0x86faff.13
cmp ecx, 0xff
ja case.0x834a45.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
je case.0x834a45.157
jmp case.0x86faff.13
cmp ecx, 0xff
ja case.0x86faff.13
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
jne case.0x834a45.157
jmp case.0x86faff.13
cmp ecx, 0xff
ja case.0x834a45.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
je case.0x834a45.157
jmp case.0x86faff.13
cmp ecx, 0xff
ja case.0x86faff.13
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
jne case.0x834a45.157
jmp case.0x86faff.13
cmp ecx, 0xff
ja case.0x834a45.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je case.0x834a45.157
mov eax, dword [ebp + 0x18]
inc edx
inc eax
mov dword [ebp - 0xc], edx
push eax
push dword [ebp + 0x14]
mov edx, ebx
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.008349c0
add esp, 0x14
test eax, eax
je 0x86fa7a
jmp 0x834b3d
mov dword [esi + 0x9c], 2
jmp 0x83500c
movzx ecx, word [ebx + 2]
lea eax, [ebx + ecx*2]
cmp dword [esi + 0x80], eax
jae 0x835055
cmp word [ebx], 0x77
je 0x86fe37
cmp word [eax], 0x77
jne 0x835055
xor edx, edx
mov eax, dword [ebp - 0x20]
mov dword [esi + 0x94], eax
movzx eax, word [ebx + 2]
lea ebx, [ebx + eax*2]
mov eax, dword [ebp - 0x1c]
mov dword [esi + 0xb0], eax
cmp word [ebx], 0x77
je 0x835000
mov eax, dword [esi + 0xc]
mov ebx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x3c]
mov dword [eax + ebx*4], ecx
mov eax, dword [esi + 0xc]
mov ecx, dword [ebp - 0x38]
mov dword [eax + ebx*4 + 4], ecx
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 0xc]
sub ecx, dword [ebp - 0x28]
mov esi, dword [ebp - 0x34]
mov dword [eax + ecx*4], esi
jmp 0x835055
cmp edx, 0xfffffc1b
jne 0x86fec5
movzx eax, word [ebx]
mov ecx, 0x81
cmp ax, cx
je 0x86feb7
cmp eax, 0x77
jne 0x86feae
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x86fea0
movzx eax, word [ebx + 2]
neg eax
lea ebx, [ebx + eax*2]
mov eax, dword [esi + 0xb8]
sub eax, ebx
neg eax
sbb eax, eax
and edx, eax
mov eax, edx
jmp 0x834b3d
lea eax, [ebx + 4]
mov dword [esi + 0xb4], eax
mov dword [ebp - 0x14], eax
mov dword [esi + 0xb0], 0
mov eax, dword [ebp + 0x18]
inc eax
push eax
movzx eax, word [ebx]
push dword [ebp + 0x14]
push esi
movzx ecx, byte [eax + 0x8c5750]
movzx eax, word [ebx + 2]
push dword [ebp + 0xc]
add ecx, eax
push dword [ebp + 8]
lea edx, [ebx + ecx*2]
mov ebx, dword [ebp - 8]
mov ecx, ebx
call fcn.008349c0
mov edi, eax
add esp, 0x14
cmp edi, 1
je 0x86ff20
cmp edi, 0xfffffc19
jne 0x86ff2d
cmp dword [esi + 0xb0], 0
je 0x86e3c1
cmp edi, 0xfffffc1f
jne 0x86e3ca
mov edx, dword [esi + 0x80]
mov ecx, dword [ebp - 0x14]
call fcn.008ae9c8
test eax, eax
jne 0x86e3ca
jmp 0x870064
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
movzx eax, word [ebx]
push esi
push dword [ebp + 0xc]
movzx eax, byte [eax + 0x8c5750]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
call fcn.008349c0
add esp, 0x14
test eax, eax
jne 0x834b3d
mov eax, 0xfffffc1c
jmp 0x834b3d
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
movzx eax, word [ebx]
push esi
push dword [ebp + 0xc]
movzx eax, byte [eax + 0x8c5750]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
call fcn.008349c0
add esp, 0x14
test eax, eax
jne 0x834b3d
mov eax, 0xfffffc1d
jmp 0x834b3d
lea edi, [ebx + 4]
mov dword [esi + 0xb4], edi
mov dword [esi + 0xb0], 0
mov eax, dword [ebp + 0x18]
inc eax
push eax
movzx eax, word [ebx]
push dword [ebp + 0x14]
push esi
movzx ecx, byte [eax + 0x8c5750]
movzx eax, word [ebx + 2]
push dword [ebp + 0xc]
add ecx, eax
push dword [ebp + 8]
lea edx, [ebx + ecx*2]
mov ecx, dword [ebp - 8]
call fcn.008349c0
add esp, 0x14
cmp eax, 1
je 0x870012
cmp eax, 0xfffffc19
jne 0x870021
cmp dword [esi + 0xb0], 0
jne 0x870021
mov dword [esi + 0xb0], edi
test eax, eax
jne 0x834b3d
mov eax, 0xfffffc1d
jmp 0x834b3d
mov eax, dword [ebp + 0x18]
inc eax
push eax
movzx eax, word [ebx]
push dword [ebp + 0x14]
push esi
movzx eax, byte [eax + 0x8c5750]
push dword [ebp + 0xc]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
mov ebx, dword [ebp - 8]
mov ecx, ebx
call fcn.008349c0
add esp, 0x14
test eax, eax
jne 0x834b3d
mov dword [esi + 0x80], ebx
mov eax, 0xfffffc1e
jmp 0x834b3d
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
movzx eax, word [ebx]
push esi
push dword [ebp + 0xc]
movzx eax, byte [eax + 0x8c5750]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
call fcn.008349c0
add esp, 0x14
jmp 0x8700a3
mov dword [esi + 0xb0], edi
test eax, eax
jne 0x834b3d
mov dword [esi + 0x80], ebx
mov eax, 0xfffffc20
jmp 0x834b3d
lea edi, [ebx + 4]
mov dword [esi + 0xb4], edi
mov dword [esi + 0xb0], 0
mov eax, dword [ebp + 0x18]
inc eax
push eax
movzx eax, word [ebx]
push dword [ebp + 0x14]
push esi
movzx ecx, byte [eax + 0x8c5750]
movzx eax, word [ebx + 2]
push dword [ebp + 0xc]
add ecx, eax
push dword [ebp + 8]
lea edx, [ebx + ecx*2]
mov ecx, dword [ebp - 8]
call fcn.008349c0
add esp, 0x14
cmp eax, 1
je 0x870107
cmp eax, 0xfffffc19
jne 0x8700a3
cmp dword [esi + 0xb0], 0
jne 0x8700a3
jmp 0x87009d
cmp edi, 0x9f
je 0x834b1b
cmp dword [esi + 0xa8], 0
jne 0x834b1b
cmp dword [esi + 0x60], 0
jne case.0x834a45.157
cmp dword [esi + 0x64], 0
je 0x834b1b
mov ecx, dword [esi + 0x98]
mov eax, dword [esi + 0x78]
lea eax, [eax + ecx*2]
cmp ebx, eax
je case.0x834a45.157
jmp 0x834b1b
inc dword [esi]
mov eax, 0xfffffff8
jmp 0x834b3d