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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x150
push ebx
mov ebx, edx
mov dword [ebp - 8], ecx
mov dword [ebp - 0x30], ebx
push esi
push edi
test ebx, ebx
je 0x846545
mov esi, dword [ebp + 0x10]
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0
mov eax, dword [esi]
mov ecx, dword [esi + 0x50]
mov dword [ebp - 0x28], ecx
cmp eax, dword [esi + 4]
jae 0x84e68f
mov edx, dword [ebp - 8]
inc eax
mov dword [esi], eax
mov eax, dword [ebp + 0x18]
cmp eax, dword [esi + 8]
jae 0x84e685
cmp dword [esi + 0x9c], 2
je 0x846579
movzx ecx, word [ebx]
mov edi, ecx
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x38], edi
cmp edi, 0xa1
ja case.0x808896.98
movzx eax, byte [edi + 0x809110]
jmp dword [eax*4 + 0x808fc4]
movzx eax, word [ebx + 2]
mov edi, ebx
add eax, eax
sub edi, eax
mov eax, 0x88
mov dword [ebp - 0x20], edi
movzx ecx, word [edi]
cmp cx, ax
jae 0x8472d4
mov eax, 0x81
cmp cx, ax
je 0x8472d4
mov dword [ebp - 0x2c], 0
cmp ecx, 0x7d
jb 0x8088e3
mov eax, 0x80
cmp cx, ax
jbe 0x84ca6a
mov eax, 0x82
cmp cx, ax
je 0x84ca6a
mov eax, 0x85
cmp cx, ax
je 0x808ca6
mov eax, 0x8a
cmp cx, ax
je 0x808ca6
mov eax, 0x86
cmp cx, ax
je 0x808ca6
mov eax, 0x8b
cmp cx, ax
je 0x808ca6
mov ecx, dword [ebp + 0xc]
movzx eax, word [ebx]
cmp eax, 0x78
jne 0x84734c
mov eax, 0x81
cmp word [edi], ax
je 0x84ca15
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x80886d
cmp edi, 0x88
jae 0x84c893
cmp edi, 0x81
je 0x84c893
cmp dword [esi + 0x70], 0
jne 0x84c89d
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
je 0x84c89d
movzx eax, word [ebx]
movzx eax, byte [eax + 0x8c2140]
lea ebx, [ebx + eax*2]
mov dword [ebp - 0x30], ebx
mov edx, dword [ebp - 8]
mov eax, dword [esi + 0x50]
mov dword [ebp - 0x28], eax
mov eax, dword [esi]
cmp eax, dword [esi + 4]
jb 0x808851
jmp 0x84e68f
mov edx, dword [ebp - 8]
mov ebx, dword [ebp + 8]
cmp edx, ebx
je 0x84e62b
mov eax, dword [ebp + 0xc]
mov dword [esi + 0x84], edx
mov dword [esi + 0x90], eax
mov dword [esi + 0x80], ebx
test edi, edi
jne 0x84e671
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esi + 0x7c]
mov eax, dword [ebp - 8]
mov dword [ebp - 0x24], ecx
cmp eax, ecx
jae 0x84cdc7
movzx edx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
mov dword [ebp - 8], eax
mov edi, eax
je 0x808a18
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
je 0x84820e
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x8bff40]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x8b1c40]
movzx eax, byte [eax*8 + 0x8af3f2]
mov dword [ebp - 0x34], eax
mov eax, dword [esi + 0x7c]
cmp edi, eax
jae 0x808ab6
mov esi, dword [ebp - 8]
mov ebx, edi
jmp 0x808a50
cmp dword [ebp - 0x28], 0
mov edx, 1
movzx ecx, word [esi]
je 0x808a70
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
je 0x84823a
mov esi, dword [ebp - 0x34]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
mov edi, ebx
movzx eax, byte [eax + 0x8bff40]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x8b1c40]
movzx ecx, byte [eax*8 + 0x8af3f2]
mov eax, 1
shl eax, cl
test dword [esi*4 + 0x8c21f0], eax
mov eax, dword [ebp - 0x24]
jne 0x808b81
mov esi, dword [ebp + 0x10]
mov ebx, dword [ebp - 0x30]
cmp dword [esi + 0x8c], 0
jne 0x84825e
mov edx, dword [ebp - 8]
add ebx, 2
mov dword [ebp - 0x30], ebx
jmp 0x80886d
movzx edx, word [ebx + 0x22]
lea eax, [ebx + 2]
add ebx, 0x22
mov dword [ebp - 0xc], eax
mov ecx, edx
mov dword [ebp - 0x30], ebx
cmp ecx, 0x6d
jbe 0x8484d2
mov edx, 1
mov dword [ebp - 0x20], 1
mov dword [ebp - 0x18], edx
cmp dword [ebp - 0x28], 0
mov ecx, 1
mov dword [ebp - 0x24], ecx
je 0x8485a0
cmp edx, ecx
jl 0x808b6d
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x84cdc7
movzx edx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
je 0x84856d
cmp edx, 0xff
ja 0x848592
mov ecx, edx
mov eax, 1
and ecx, 7
shr edx, 3
shl eax, cl
mov ecx, dword [ebp - 0xc]
test byte [edx + ecx], al
je case.0x808896.157
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x18]
inc ecx
mov dword [ebp - 0x24], ecx
cmp ecx, edx
jle 0x808b11
mov eax, dword [ebp - 8]
cmp edx, dword [ebp - 0x20]
jne 0x848602
mov edx, dword [ebp - 8]
jmp 0x80886d
lea esi, [ebx + edx*2]
mov dword [ebp - 0x34], ecx
mov dword [ebp - 8], esi
mov ebx, esi
mov edi, esi
cmp esi, eax
jb 0x808a50
jmp 0x808ab0
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x84cdc7
cmp dword [ebp - 0x28], 0
je 0x848b6d
movzx ecx, word [ebx + 2]
add ebx, 2
mov eax, ecx
mov dword [ebp - 0x34], 1
and eax, 0xfc00
mov edx, ecx
mov dword [ebp - 0x24], edx
cmp eax, 0xd800
je 0x848abe
mov eax, dword [ebp - 8]
cmp edx, 0x80
jae 0x848ae9
movzx edx, word [eax]
mov eax, dword [esi + 0x3c]
cmp edx, 0xff
ja 0x808bf7
movzx edx, byte [eax + edx]
movzx eax, byte [eax + ecx]
cmp eax, edx
jne case.0x808896.157
add ebx, 2
add dword [ebp - 8], 2
mov dword [ebp - 0x30], ebx
mov edx, dword [ebp - 8]
jmp 0x80886d
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x84cdc7
movzx edx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
mov dword [ebp - 8], eax
mov dword [ebp - 0x20], ecx
je 0x808c4a
mov eax, edx
mov dword [ebp - 0x20], ecx
and eax, 0xfc00
cmp eax, 0xd800
je 0x847fd6
mov eax, ecx
shr eax, 7
movzx ecx, byte [eax + 0x8bff40]
mov eax, edx
shl ecx, 7
and eax, 0x7f
add ecx, eax
movzx eax, word [ebx + 2]
movzx ecx, word [ecx*2 + 0x8b1c40]
cmp eax, 9
jne 0x848000
movzx eax, word [ebx + 4]
mov ecx, dword [eax*4 + 0x8b0a70]
lea eax, [eax*4 + 0x8b0a70]
cmp dword [ebp - 0x20], ecx
jb 0x848200
lea eax, [eax + 4]
cmp edx, ecx
je 0x808d21
mov ecx, dword [eax]
cmp edx, ecx
jae 0x808c90
jmp 0x848200
movzx eax, word [edi + 4]
mov dword [ebp - 0x24], eax
lea edi, [eax + eax]
mov eax, dword [esi + 0xa8]
mov dword [ebp - 0x34], edi
mov ecx, edi
test eax, eax
jne 0x8472ec
mov eax, dword [esi + 0x94]
and eax, 0xffff0000
or eax, dword [ebp - 0x24]
mov dword [esi + 0x94], eax
cmp ecx, dword [esi + 0x14]
jge 0x847318
mov edx, dword [ebp + 0xc]
cmp ecx, edx
jg 0x84732b
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0xc]
sub eax, dword [ebp - 0x24]
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
mov ecx, dword [ebp + 0xc]
cmp ecx, edi
jg 0x808d19
lea ecx, [edi + 2]
mov dword [ebp + 0xc], ecx
mov edi, dword [ebp - 0x20]
jmp 0x80892c
cmp edi, 0x10
jne case.0x808896.157
add ebx, 6
mov dword [ebp - 0x30], ebx
mov edx, dword [ebp - 8]
jmp 0x80886d
cmp dword [ebp - 0x28], 0
je 0x848a8c
mov ax, word [ebx + 2]
add ebx, 2
mov ecx, 0xfc00
mov edi, 1
and ax, cx
mov dword [ebp - 0x34], edi
mov ecx, 0xd800
cmp ax, cx
je 0x848a7f
mov ecx, dword [esi + 0x7c]
mov eax, ecx
mov edx, dword [ebp - 8]
sub eax, edx
sar eax, 1
cmp dword [ebp - 0x34], eax
jg 0x84cd8f
lea esp, [esp]
movzx ecx, word [ebx]
dec edi
movzx eax, word [edx]
add ebx, 2
add edx, 2
mov dword [ebp - 0x30], ebx
mov dword [ebp - 8], edx
cmp cx, ax
jne case.0x808896.157
test edi, edi
jle 0x808b79
jmp 0x808d80
lea ecx, [edi - 0x55]
add ebx, 2
mov eax, ebx
test cl, 1
je 0x8498e4
mov edx, 1
movsx edi, byte [ecx + 0x8b1c2c]
mov dword [ebp - 0xc], edi
movsx edi, byte [ecx + 0x8b1c20]
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x14], edi
test edi, edi
jne 0x808de1
mov dword [ebp - 0x14], bind
movzx edi, word [ebx]
lea ebx, [eax + 2]
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x30], ebx
cmp edi, 0x10
je 0x8498eb
cmp edi, 0xf
je 0x8498eb
or eax, 0xffffffff
mov dword [ebp - 0x18], eax
test ecx, ecx
jg 0x849912
mov edi, dword [ebp - 8]
cmp ecx, dword [ebp - 0x14]
je 0x808b79
test edx, edx
je 0x84ae4f
test eax, eax
jns 0x84d1b2
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.00808810
add esp, 0x14
cmp dword [ebp - 0x20], 0x16
je 0x84da81
cmp dword [ebp - 0x28], 0
je 0x84df78
test eax, eax
jne 0x8089db
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc], eax
jge case.0x808896.157
mov ecx, dword [esi + 0x7c]
cmp edi, ecx
jae 0x84a9d7
cmp dword [ebp - 0x20], 0xc
jne 0x808ea2
mov edx, dword [esi + 0x18]
test edx, edx
je 0x84dc01
push dword [ebp - 0x28]
lea eax, [esi + 0x1c]
push eax
push ecx
mov ecx, edi
call fcn.00806cde
add esp, 0xc
test eax, eax
jne case.0x808896.157
movzx ecx, word [edi]
add edi, 2
mov eax, ecx
mov dword [ebp - 0x24], edi
and eax, 0xfc00
mov edx, ecx
cmp eax, 0xd800
je 0x84dc3a
cmp dword [ebp - 0x20], 0xc
jne 0x84dc62
mov esi, dword [ebp + 0x10]
mov eax, dword [ebp - 0x24]
cmp dword [esi + 0x8c], 0
jne 0x84df36
mov eax, dword [ebp + 0x18]
mov edx, ebx
mov esi, dword [ebp + 0x10]
inc eax
inc dword [ebp - 0xc]
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00808810
add esp, 0x14
test eax, eax
jne 0x8089db
jmp 0x808e60
movzx edx, word [ebx + 4]
mov dword [ebp - 0x30], edx
lea eax, [edx + edx]
mov dword [ebp - 0x20], eax
cmp eax, dword [esi + 0x14]
jge case.0x808896.129
mov ecx, dword [esi + 0xc]
lea edi, [edx + edx]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0x24], eax
mov eax, dword [ecx + edi*4 + 4]
mov edi, dword [ebp - 0x38]
mov dword [ebp - 0x40], eax
mov eax, dword [esi + 0x10]
sub eax, edx
lea ecx, [ecx + eax*4]
mov eax, dword [ecx]
mov dword [ebp - 0x3c], eax
mov eax, dword [esi + 0x94]
mov dword [ebp - 0x1c], eax
mov eax, dword [esi + 0xb0]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 8]
sub eax, dword [esi + 0x78]
sar eax, 1
mov dword [ecx], eax
nop
cmp edi, 0x88
jae 0x84e35b
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 + 0x8c2140]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
call fcn.00808810
add esp, 0x14
mov dword [ebp - 0x2c], eax
cmp eax, 0xfffffc1b
je 0x84e3af
cmp eax, 0xfffffc20
je 0x84e36a
test eax, eax
jne 0x8089db
jmp 0x84e38c
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [ebp + 0x18], 0
jne 0x846567
push 1
push 0
push 0
push 0
push 0
xor edx, edx
lea ecx, [ebp + 0x18]
call fcn.00808810
add esp, 0x14
jmp 0x8089db
lea eax, [ebp + 0x18]
sub eax, dword [ebp - 8]
cdq
xor eax, edx
sub eax, edx
neg eax
jmp 0x8089db
mov eax, dword [ebp - 8]
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x60], eax
lea eax, [ebp - 0x60]
mov dword [ebp + 0x14], eax
mov dword [esi + 0x9c], 0
jmp 0x808b79
inc dword [esi + 0x28]
mov eax, dword [esi + 0x28]
cmp eax, dword [esi + 0x2c]
ja 0x84c977
movzx eax, word [ebx]
movzx ecx, byte [eax + 0x8c2140]
movzx eax, word [ebx + 2]
add ecx, eax
lea ebx, [ebx + ecx*2]
mov dword [ebp - 0x30], ebx
jmp 0x80886d
mov eax, dword [ebp - 8]
mov edi, dword [esi + 0xb0]
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x1c], 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.00808810
add esp, 0x14
cmp eax, 1
je 0x846641
cmp eax, 0xfffffc20
jne 0x846621
movzx ecx, word [ebx + 2]
lea ecx, [ebx + ecx*2]
cmp dword [esi + 0x80], ecx
jae 0x8089db
cmp word [ebx], 0x77
je 0x846629
cmp word [ecx], 0x77
jne 0x8089db
jmp 0x846629
test eax, eax
jne 0x8089db
movzx eax, word [ebx + 2]
lea ebx, [ebx + eax*2]
mov dword [esi + 0xb0], edi
cmp word [ebx], 0x77
je 0x8465d3
mov ecx, dword [ebp + 8]
jmp 0x84664a
mov ecx, dword [esi + 0x80]
mov dword [ebp + 8], ecx
movzx eax, word [ebx]
mov edx, 0x82
cmp ax, dx
je 0x846660
cmp eax, 0x77
jne case.0x808896.157
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x846660
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 0x847204
cmp eax, dword [ebp - 0x1c]
je 0x847204
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 0x84c6ae
lea edx, [ebx + 4]
call fcn.00808810
add esp, 0x14
test eax, eax
jne 0x8089db
mov ecx, dword [ebp - 0x20]
mov ebx, ecx
jmp 0x80898f
mov dword [ebp - 0x24], 0
jmp 0x8470b8
mov dword [ebp - 0x24], 0
mov eax, ebx
mov dword [ebp - 0x34], 0
sub eax, dword [esi + 0x74]
sar eax, 1
mov dword [ebp - 0x1c], eax
mov eax, dword [esi + 0x94]
mov dword [ebp - 0x20], eax
cmp edi, 0x88
jb 0x846707
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 + 0x8c2140]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
call fcn.00808810
add esp, 0x14
mov dword [ebp - 0x2c], eax
cmp eax, 0xfffffc1a
jne 0x8471a7
mov eax, dword [esi + 0x90]
mov ecx, dword [ebp - 0x1c]
mov dword [ebp + 0xc], eax
mov eax, dword [esi + 0x74]
mov dword [ebp - 0x34], 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 0x8471f6
mov dword [ebp - 8], eax
jmp 0x8466f5
cmp word [ebx + 4], 0x76
lea ecx, [ebx + 4]
movzx eax, word [ebx + 2]
mov ebx, ecx
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x2c], ecx
jne 0x846863
cmp dword [0x8d2620], 0
je 0x846855
mov dword [ebp - 0xa0], 2
movzx eax, word [ecx + 2]
mov dword [ebp - 0x9c], eax
mov eax, dword [esi + 0xc]
mov dword [ebp - 0x98], eax
mov eax, dword [esi + 0x78]
mov dword [ebp - 0x94], eax
mov eax, dword [esi + 0x7c]
sub eax, dword [esi + 0x78]
sar eax, 1
mov dword [ebp - 0x90], eax
mov eax, dword [ebp + 8]
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
movzx eax, word [ecx + 4]
mov dword [ebp - 0x78], eax
movzx eax, word [ecx + 6]
mov dword [ebp - 0x74], eax
mov eax, dword [ebp + 0xc]
cdq
sub eax, edx
sar eax, 1
mov dword [ebp - 0x84], eax
mov eax, dword [esi + 0x94]
and eax, 0xffff
mov dword [ebp - 0x80], eax
jne 0x84681c
mov dword [ebp - 0x80], 0xffffffff
mov eax, dword [esi + 0xac]
mov dword [ebp - 0x7c], eax
mov eax, dword [esi + 0xb4]
mov dword [ebp - 0x70], eax
lea eax, [ebp - 0xa0]
push eax
call dword [0x8d2620]
add esp, 4
test eax, eax
jg case.0x808896.157
js 0x8089db
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x24]
lea ebx, [ecx + 8]
add eax, 0xfffffffc
mov ecx, ebx
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x2c], ecx
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
mov dword [ebp - 0x20], ecx
movzx eax, word [eax]
mov dword [ebp - 0x30], eax
add eax, 0xffffff73
cmp eax, 0x10
ja case.0x846886.146
movzx eax, byte [eax + 0x84e6b5]
jmp dword [eax*4 + 0x84e69d]
mov ecx, dword [esi + 0xa8]
mov ebx, dword [ebp - 0x2c]
test ecx, ecx
je 0x846a97
movzx eax, word [ebx + 2]
cmp eax, 0xffff
je 0x8468b2
cmp eax, dword [ecx + 4]
jne 0x846a97
mov ecx, 1
jmp 0x846a6e
cmp dword [esi + 0xa8], ecx
je case.0x846886.145
mov eax, dword [ebp - 0x2c]
movzx ecx, word [eax + 2]
imul ecx, dword [esi + 0x24]
movzx ebx, word [eax + 4]
mov eax, dword [esi + 0x30]
lea ecx, [eax + ecx*2]
test ebx, ebx
je 0x846a8f
mov eax, dword [esi + 0xa8]
mov dword [ebp - 0x34], ecx
mov eax, dword [eax + 4]
mov dword [ebp - 0x1c], eax
movzx eax, word [ecx]
dec ebx
cmp eax, dword [ebp - 0x1c]
je 0x84695f
mov ecx, dword [ebp - 0x34]
xor eax, eax
mov eax, dword [esi + 0x24]
lea ecx, [ecx + eax*2]
mov dword [ebp - 0x34], ecx
test ebx, ebx
jg 0x8468f0
xor ecx, ecx
mov ebx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x24]
lea ebx, [ebx + eax*2]
mov dword [ebp - 0x30], ebx
test ecx, ecx
jne 0x846928
cmp word [ebx - 4], 0x77
jne 0x80886d
cmp edi, 0x8c
jne 0x808995
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.00808810
add esp, 0x14
jmp 0x8089db
mov ebx, dword [ebp - 0x2c]
mov ecx, 1
jmp 0x846a6e
mov ebx, dword [ebp - 0x2c]
movzx eax, word [ebx + 2]
lea ecx, [eax + eax]
cmp ecx, dword [ebp + 0xc]
jge 0x84698b
mov eax, dword [esi + 0xc]
cmp dword [eax + ecx*4], 0
jl 0x84698b
mov ecx, 1
jmp 0x84698d
xor ecx, ecx
test ecx, ecx
jne 0x846a6e
jmp 0x846910
mov eax, dword [ebp - 0x2c]
movzx ecx, word [eax + 2]
imul ecx, dword [esi + 0x24]
movzx ebx, word [eax + 4]
mov eax, dword [esi + 0x30]
lea eax, [eax + ecx*2]
test ebx, ebx
je 0x846a8f
mov dword [ebp - 0x34], eax
movzx eax, word [eax]
dec ebx
lea ecx, [eax + eax]
cmp ecx, dword [ebp + 0xc]
jge 0x8469cf
mov eax, dword [esi + 0xc]
cmp dword [eax + ecx*4], 0
jge 0x84695f
mov ecx, dword [ebp - 0x34]
xor eax, eax
mov eax, dword [esi + 0x24]
lea eax, [ecx + eax*2]
mov dword [ebp - 0x34], eax
test ebx, ebx
jg 0x8469ba
jmp 0x84690b
mov edx, dword [ebp - 0x2c]
mov ecx, dword [ebp - 8]
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.00808810
add esp, 0x14
cmp eax, 1
jne 0x846a7d
mov eax, dword [esi + 0x90]
cmp eax, dword [ebp + 0xc]
jle 0x846a1f
mov dword [ebp + 0xc], eax
mov eax, dword [ebp - 0x2c]
mov ecx, 0x92
mov dword [ebp - 0x20], 1
cmp word [eax], cx
jne 0x846a38
lea eax, [ebx + 2]
mov ebx, eax
movzx eax, word [eax + 2]
cmp word [ebx + eax*2], 0x77
lea edx, [ebx + eax*2]
jne 0x846a54
movzx eax, word [edx + 2]
cmp word [edx + eax*2], 0x77
lea edx, [edx + eax*2]
je 0x846a46
mov eax, dword [ebp - 0x30]
mov ecx, 2
movzx eax, byte [eax + 0x8c2140]
sub ecx, eax
lea ebx, [edx + ecx*2]
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x30]
movzx eax, byte [eax + 0x8c2140]
jmp 0x846913
test eax, eax
je 0x846a8c
cmp eax, 0xfffffc20
jne 0x8089db
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0x20]
jmp case.0x846886.145
mov ecx, dword [ebp - 0x20]
jmp 0x846910
movzx ecx, word [ebx + 2]
mov eax, dword [esi + 0x94]
and eax, 0xffff0000
mov dword [ebp - 0x1c], ecx
or eax, ecx
lea edi, [ecx + ecx]
mov dword [esi + 0x94], eax
mov dword [ebp - 0x34], edi
cmp edi, dword [esi + 0x14]
jl 0x846ad4
or eax, 0x10000
mov dword [esi + 0x94], eax
jmp 0x808946
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0xc]
sub eax, dword [ebp - 0x1c]
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
mov ecx, dword [ebp + 0xc]
cmp edi, ecx
jl 0x849253
mov eax, dword [esi + 0xc]
lea edx, [eax + ecx*4]
lea ecx, [eax + edi*4]
cmp edx, ecx
jae 0x846b1b
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 - 0x34]
lea eax, [edi + 2]
mov dword [ebp + 0xc], eax
jmp 0x849253
cmp dword [esi + 0x9c], 1
mov eax, dword [esi + 0xb0]
mov dword [ebp - 0x1c], eax
jne 0x846b49
mov dword [esi + 0x9c], 0
mov edi, 1
jmp 0x846b4b
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.00808810
add esp, 0x14
mov dword [ebp - 0x2c], eax
cmp eax, 1
je 0x846bc2
cmp eax, 0xfffffc19
je 0x846bc2
mov ecx, dword [ebp - 0x1c]
mov dword [esi + 0xb0], ecx
cmp eax, 0xfffffc20
jne 0x846baa
movzx eax, word [ebx + 2]
lea eax, [ebx + eax*2]
cmp dword [esi + 0x80], eax
jae 0x84e3d4
cmp word [ebx], 0x77
je 0x846bb2
cmp word [eax], 0x77
je 0x846bb2
jmp 0x84e3d4
test eax, eax
jne 0x8089db
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x846b4b
jmp 0x846bcb
mov eax, dword [esi + 0x80]
mov dword [ebp + 8], eax
cmp word [ebx], 0x78
je case.0x808896.157
test edi, edi
jne 0x8089d6
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x846bdd
mov eax, dword [esi + 0x90]
add ebx, 4
mov dword [ebp - 0x30], ebx
mov dword [ebp + 0xc], eax
jmp 0x808b79
cmp dword [esi + 0x9c], 1
mov edi, dword [esi + 0xb0]
jne 0x846c21
mov dword [esi + 0x9c], 0
mov dword [ebp - 0x34], 1
jmp 0x846c28
mov dword [ebp - 0x34], 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.00808810
add esp, 0x14
mov dword [ebp - 0x2c], eax
mov dword [esi + 0xb0], edi
cmp eax, 0xfffffc20
jg 0x846c81
jne 0x846c96
movzx eax, word [ebx + 2]
lea eax, [ebx + eax*2]
cmp dword [esi + 0x80], eax
jae 0x846caf
cmp word [ebx], 0x77
je 0x846c71
cmp word [eax], 0x77
jne 0x846caf
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x846c28
jmp 0x846cbd
mov ecx, eax
sub ecx, 0
je 0x846c71
sub ecx, 1
je case.0x808896.157
jmp 0x8089db
cmp eax, 0xfffffc19
je case.0x808896.157
add eax, 0x3e4
cmp eax, 3
ja 0x84e3d4
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x846caf
cmp dword [ebp - 0x34], 0
jne 0x8089d6
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x808b79
cmp dword [ebp - 0x28], 0
je 0x846d17
movzx ecx, word [ebx + 2]
test ecx, ecx
je 0x846d31
mov eax, dword [ebp - 8]
dec ecx
add eax, 0xfffffffe
mov dword [ebp - 8], eax
cmp eax, dword [esi + 0x78]
jb case.0x808896.157
mov ax, word [eax]
mov edx, 0xfc00
and ax, dx
mov edx, 0xdc00
cmp ax, dx
mov eax, dword [ebp - 8]
jne 0x846d11
add eax, 0xfffffffe
mov dword [ebp - 8], eax
test ecx, ecx
jg 0x846ce0
jmp 0x846d34
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.0x808896.157
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 8]
cmp eax, dword [esi + 0x88]
jae 0x808946
mov dword [esi + 0x88], eax
jmp 0x808946
cmp dword [0x8d2620], 0
je 0x846e23
mov dword [ebp - 0xd4], 2
movzx eax, word [ebx + 2]
mov dword [ebp - 0xd0], eax
mov eax, dword [esi + 0xc]
mov dword [ebp - 0xcc], eax
mov eax, dword [esi + 0x78]
mov dword [ebp - 0xc8], eax
mov eax, dword [esi + 0x7c]
sub eax, dword [esi + 0x78]
sar eax, 1
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp + 8]
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
movzx eax, word [ebx + 4]
mov dword [ebp - 0xac], eax
movzx eax, word [ebx + 6]
mov dword [ebp - 0xa8], eax
mov eax, dword [ebp + 0xc]
cdq
sub eax, edx
sar eax, 1
mov dword [ebp - 0xb8], eax
mov eax, dword [esi + 0x94]
and eax, 0xffff
mov dword [ebp - 0xb4], eax
jne 0x846dea
mov dword [ebp - 0xb4], 0xffffffff
mov eax, dword [esi + 0xac]
mov dword [ebp - 0xb0], eax
mov eax, dword [esi + 0xb4]
mov dword [ebp - 0xa4], eax
lea eax, [ebp - 0xd4]
push eax
call dword [0x8d2620]
add esp, 4
test eax, eax
jg case.0x808896.157
js 0x8089db
mov edx, dword [ebp - 8]
add ebx, 8
mov dword [ebp - 0x30], ebx
jmp 0x80886d
mov ecx, dword [esi + 0x74]
movzx eax, word [ebx + 2]
lea eax, [ecx + eax*2]
mov dword [ebp - 0x24], eax
cmp eax, ecx
jne 0x846e43
xor edx, edx
jmp 0x846e47
movzx edx, word [eax + 4]
mov ecx, dword [esi + 0xa8]
test ecx, ecx
je 0x846e6e
mov eax, dword [ebp - 8]
cmp edx, dword [ecx + 4]
jne 0x846e68
cmp eax, dword [ecx + 0x14]
jne 0x846e68
mov eax, 0xffffffe6
jmp 0x8089db
mov ecx, dword [ecx]
test ecx, ecx
jne 0x846e54
mov dword [ebp - 0x54], edx
add ebx, 4
mov eax, dword [esi + 0x94]
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 8]
mov dword [ebp - 0x44], eax
mov eax, dword [esi + 0xa8]
mov dword [ebp - 0x58], eax
lea eax, [ebp - 0x58]
mov dword [esi + 0xa8], eax
mov ecx, dword [esi + 0x10]
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x4c], ecx
cmp ecx, 0x1e
jg 0x846eae
lea eax, [ebp - 0x14c]
mov dword [ebp - 0x50], eax
jmp 0x846ecc
lea eax, [ecx*4]
push eax
call fcn.008091b2
add esp, 4
mov dword [ebp - 0x50], eax
test eax, eax
je 0x84c9de
mov ecx, dword [ebp - 0x4c]
shl ecx, 2
push ecx
push dword [esi + 0xc]
push eax
call fcn.00820e20
mov ecx, dword [ebp - 0x24]
add esp, 0xc
mov eax, 0x88
cmp word [ecx], ax
sbb edi, edi
inc edi
test edi, edi
je 0x846ef8
mov dword [esi + 0x9c], 2
mov eax, dword [ebp + 0x18]
inc eax
push eax
movzx eax, word [ecx]
push dword [ebp + 0x14]
push esi
movzx eax, byte [eax + 0x8c2140]
push dword [ebp + 0xc]
push dword [ebp + 8]
lea edx, [ecx + eax*2]
mov ecx, dword [ebp - 8]
call fcn.00808810
add esp, 0x14
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x4c]
shl eax, 2
push eax
push dword [ebp - 0x50]
push dword [esi + 0xc]
call fcn.00820e20
mov eax, dword [ebp - 0x48]
add esp, 0xc
mov dword [esi + 0x94], eax
mov eax, dword [ebp - 0x58]
mov dword [esi + 0xa8], eax
mov eax, dword [ebp - 0x2c]
cmp eax, 1
je 0x846fb7
cmp eax, 0xfffffc19
je 0x846fb7
cmp eax, 0xfffffc1c
jl 0x846f66
cmp eax, 0xfffffc20
jle 0x846f98
test eax, eax
jne 0x84c9bf
mov ecx, dword [ebp - 0x24]
lea eax, [ebp - 0x58]
mov dword [esi + 0xa8], eax
movzx eax, word [ecx + 2]
cmp word [ecx + eax*2], 0x77
lea ecx, [ecx + eax*2]
mov dword [ebp - 0x24], ecx
je 0x846eea
mov eax, dword [ebp - 0x58]
mov dword [esi + 0xa8], eax
mov eax, dword [ebp - 0x50]
lea ecx, [ebp - 0x14c]
cmp eax, ecx
je case.0x808896.157
push eax
call fcn.008091bb
add esp, 4
jmp case.0x808896.157
mov eax, dword [ebp - 0x50]
lea ecx, [ebp - 0x14c]
cmp eax, ecx
je 0x846fcd
push eax
call fcn.008091bb
add esp, 4
mov eax, dword [esi + 0x84]
mov dword [ebp - 8], eax
mov eax, dword [esi + 0x80]
mov dword [ebp + 8], eax
jmp 0x808b79
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je case.0x808896.119
mov dword [ebp - 0x30], ebx
jmp 0x80886d
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.00808810
add esp, 0x14
test eax, eax
jne 0x8089db
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x847021
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x808b79
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 0x847042
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.00808810
add esp, 0x14
test eax, eax
jne 0x8089db
jmp 0x808b79
add ebx, 2
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x84707d
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x80886d
movzx edi, word [ebx + 2]
add ebx, 2
mov dword [ebp - 0x24], 1
cmp edi, 0x86
je 0x8470b8
cmp edi, 0x8b
jne 0x8466db
movzx edx, word [ebx + 4]
mov dword [ebp - 0x20], edx
lea eax, [edx + edx]
cmp eax, dword [esi + 0x14]
jge 0x8466db
mov ecx, ebx
shl eax, 2
sub ecx, dword [esi + 0x74]
sar ecx, 1
mov dword [ebp - 0x1c], ecx
mov ecx, dword [esi + 0xc]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x30], 0
mov edx, dword [eax + ecx]
mov eax, dword [eax + ecx + 4]
mov dword [ebp - 0x10], eax
mov eax, dword [esi + 0x10]
sub eax, dword [ebp - 0x20]
mov dword [ebp - 0x14], edx
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0xc], eax
mov eax, dword [esi + 0x94]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 8]
mov ecx, dword [esi + 0x10]
mov edx, eax
sub edx, dword [esi + 0x78]
sub ecx, dword [ebp - 0x20]
mov eax, dword [esi + 0xc]
sar edx, 1
mov dword [eax + ecx*4], edx
cmp edi, 0x88
jb 0x84712f
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 + 0x8c2140]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
call fcn.00808810
add esp, 0x14
mov dword [ebp - 0x2c], eax
cmp eax, 0xfffffc1a
jne 0x84722a
mov eax, dword [esi + 0x90]
mov ecx, dword [ebp - 0x1c]
mov dword [ebp + 0xc], eax
mov eax, dword [esi + 0x74]
lea ebx, [eax + ecx*2]
mov eax, dword [esi + 0x94]
mov dword [ebp - 0x34], eax
mov ecx, 1
mov eax, dword [esi + 0x80]
mov dword [ebp + 8], eax
mov eax, dword [esi + 0x84]
mov dword [ebp - 0x30], ecx
cmp dword [ebp - 8], eax
je 0x8472a9
mov dword [ebp - 8], eax
jmp 0x84710a
cmp eax, 0xfffffc20
jne 0x8471d2
movzx eax, word [ebx + 2]
lea eax, [ebx + eax*2]
cmp dword [esi + 0x80], eax
jae 0x84e3d4
cmp word [ebx], 0x77
je 0x8471da
cmp word [eax], 0x77
je 0x8471da
jmp 0x84e3d4
test eax, eax
jne 0x8089db
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
jne 0x84720f
mov eax, dword [ebp - 0x20]
mov dword [esi + 0x94], eax
jmp 0x8466f5
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x8471f6
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x808b79
cmp dword [ebp - 0x34], 0
jne 0x847204
cmp dword [ebp - 0x24], 0
je case.0x808896.157
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x808b79
cmp eax, 0xfffffc20
jne 0x847255
movzx eax, word [ebx + 2]
lea eax, [ebx + eax*2]
cmp dword [esi + 0x80], eax
jae 0x84e3d4
cmp word [ebx], 0x77
je 0x84725d
cmp word [eax], 0x77
je 0x84725d
jmp 0x84e3d4
test eax, eax
jne 0x8089db
mov eax, dword [ebp - 0x34]
mov dword [esi + 0x94], eax
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x847107
mov ecx, dword [ebp - 0x30]
test ecx, ecx
jne 0x8472b7
mov eax, dword [esi + 0xc]
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x14]
mov dword [ecx + eax], edx
mov eax, dword [esi + 0xc]
mov edx, dword [ebp - 0x10]
mov dword [ecx + eax + 4], edx
mov ecx, dword [esi + 0x10]
sub ecx, dword [ebp - 0x20]
mov eax, dword [esi + 0xc]
mov edx, dword [ebp - 0xc]
mov dword [eax + ecx*4], edx
mov ecx, dword [ebp - 0x30]
jmp 0x8472b7
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x8472a9
cmp dword [ebp - 0x24], 0
jne 0x847204
test ecx, ecx
je case.0x808896.157
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x808b79
mov eax, dword [ebp + 0x14]
mov esi, eax
mov esi, dword [esi]
mov eax, dword [eax + 4]
mov dword [ebp + 0x14], esi
mov esi, dword [ebp + 0x10]
mov dword [ebp - 0x2c], eax
jmp 0x8088d0
mov edx, dword [ebp - 0x24]
mov ecx, edi
cmp dword [eax + 4], edx
mov edx, dword [ebp - 8]
jne 0x808cc3
mov eax, edx
mov dword [esi + 0x84], eax
mov eax, dword [ebp + 8]
mov dword [esi + 0x80], eax
mov eax, 1
jmp 0x8089db
mov edi, dword [ebp - 0x20]
or eax, 0x10000
mov dword [esi + 0x94], eax
jmp 0x808929
mov eax, dword [esi + 0xc]
lea edi, [eax + edx*4]
lea ecx, [eax + ecx*4]
cmp edi, ecx
jae 0x847344
sub ecx, edi
dec ecx
shr ecx, 2
inc ecx
or eax, 0xffffffff
rep stosd dword es:[edi], eax
mov edi, dword [ebp - 0x34]
jmp 0x808ceb
cmp eax, 0x7b
je 0x84ca48
mov eax, dword [ebp - 0x2c]
cmp dword [ebp - 8], eax
jne 0x84c6c9
mov edx, dword [ebp - 8]
jmp 0x808938
cmp dword [esi + 0x48], 0
mov eax, dword [ebp - 8]
je 0x847380
cmp eax, dword [esi + 0x78]
je case.0x808896.157
jmp 0x847380
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x78]
jne case.0x808896.157
jmp 0x808ac3
cmp dword [esi + 0x48], 0
mov eax, dword [ebp - 8]
je 0x8473a0
cmp eax, dword [esi + 0x78]
je case.0x808896.157
mov ecx, dword [esi + 0x78]
cmp eax, ecx
je 0x808ac3
cmp eax, dword [esi + 0x7c]
je case.0x808896.157
mov edx, dword [esi + 0x18]
test edx, edx
je 0x8473e4
cmp eax, ecx
jbe case.0x808896.157
mov edi, dword [ebp - 0x28]
lea eax, [esi + 0x1c]
push edi
push eax
push ecx
mov ecx, dword [ebp - 8]
call fcn.0089ba5a
add esp, 0xc
test eax, eax
je case.0x808896.157
jmp 0x808ac3
mov edi, dword [esi + 0x1c]
lea edx, [edi + edi]
lea eax, [ecx + edx]
mov ecx, dword [ebp - 8]
cmp ecx, eax
jb case.0x808896.157
sub ecx, edx
mov ax, word [ecx]
cmp ax, word [esi + 0x34]
jne case.0x808896.157
cmp edi, 1
je 0x808ac3
mov ax, word [ecx + 2]
cmp ax, word [esi + 0x36]
jne case.0x808896.157
jmp 0x808ac3
mov ecx, dword [esi + 0x98]
mov eax, dword [esi + 0x78]
lea eax, [eax + ecx*2]
cmp edx, eax
jne case.0x808896.157
jmp 0x808ac6
mov eax, dword [ebp - 8]
add ebx, 2
mov dword [ebp + 8], eax
mov dword [ebp - 0x30], ebx
jmp 0x808b79
mov ecx, dword [esi + 0x7c]
mov eax, dword [ebp - 8]
cmp eax, ecx
jae 0x8474f5
mov edx, dword [esi + 0x18]
test edx, edx
je 0x8474c2
push dword [ebp - 0x28]
lea eax, [esi + 0x1c]
push eax
push ecx
mov ecx, dword [ebp - 8]
call fcn.00806cde
add esp, 0xc
test eax, eax
jne 0x808ac3
mov eax, dword [ebp - 8]
cmp dword [esi + 0x8c], 0
je case.0x808896.157
add eax, 2
cmp eax, dword [esi + 0x7c]
jb case.0x808896.157
cmp dword [esi + 0x18], 0
jne case.0x808896.157
cmp dword [esi + 0x1c], 2
jne case.0x808896.157
mov eax, dword [ebp - 8]
mov ax, word [eax]
cmp ax, word [esi + 0x34]
jne case.0x808896.157
jmp 0x84a9f0
mov edx, dword [esi + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
mov eax, dword [ebp - 8]
cmp eax, ecx
ja 0x847480
mov ax, word [eax]
cmp ax, word [esi + 0x34]
jne 0x84747d
cmp edx, 1
je 0x808ac3
mov eax, dword [ebp - 8]
mov ax, word [eax + 2]
cmp ax, word [esi + 0x36]
jne 0x84747d
jmp 0x808ac3
cmp dword [esi + 0x4c], 0
jne case.0x808896.157
cmp dword [esi + 0x8c], 0
je 0x808ac3
cmp eax, dword [esi + 0x88]
jmp 0x84751a
cmp edx, dword [esi + 0x88]
jbe 0x808ac3
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x84e351
jmp 0x808ac3
cmp dword [esi + 0x4c], 0
jne case.0x808896.157
cmp dword [esi + 0x5c], 0
je case.0x808896.23
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jb case.0x808896.157
jmp 0x8474ff
mov ecx, dword [esi + 0x7c]
mov eax, dword [ebp - 8]
cmp eax, ecx
jae 0x8474ff
mov edx, dword [esi + 0x18]
lea edi, [esi + 0x1c]
test edx, edx
je 0x847583
push dword [ebp - 0x28]
push edi
push ecx
mov ecx, eax
call fcn.00806cde
add esp, 0xc
test eax, eax
jne 0x8475b8
jmp 0x84747d
mov edx, dword [edi]
lea eax, [edx + edx]
sub ecx, eax
mov eax, dword [ebp - 8]
cmp eax, ecx
ja 0x847480
mov ax, word [eax]
cmp ax, word [esi + 0x34]
jne 0x84747d
cmp edx, 1
je 0x8475b8
mov eax, dword [ebp - 8]
mov ax, word [eax + 2]
cmp ax, word [esi + 0x36]
jne 0x84747d
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 0x847480
jmp 0x8474ff
cmp dword [ebp - 0x28], 0
mov eax, dword [ebp - 8]
je 0x847747
cmp eax, dword [esi + 0x78]
je 0x8476ac
lea edx, [eax - 2]
mov edi, 0xfc00
mov ax, word [edx]
mov ecx, edx
and ax, di
mov edi, 0xdc00
cmp ax, di
jne 0x847607
lea ecx, [edx - 2]
mov edx, ecx
cmp ecx, dword [esi + 0x88]
jae 0x847615
mov dword [esi + 0x88], edx
movzx ecx, word [edx]
mov eax, ecx
mov edi, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x847644
movzx eax, word [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
mov edi, ecx
cmp dword [esi + 0x58], 0
je 0x84768e
cmp edi, 0x5f
je 0x847684
mov eax, edi
and edi, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x8bff40]
shl eax, 7
add eax, edi
movzx eax, word [eax*2 + 0x8b1c40]
movzx eax, byte [eax*8 + 0x8af3f1]
mov eax, dword [eax*4 + 0x8c5350]
cmp eax, 1
je 0x847684
cmp eax, 3
jne 0x8476a9
mov eax, dword [ebp - 8]
mov edi, 1
jmp 0x8476ae
cmp edi, 0x100
jae 0x8476a9
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
mov eax, dword [ebp - 8]
je 0x8476ac
mov edi, 1
jmp 0x8476ae
mov eax, dword [ebp - 8]
xor edi, edi
cmp eax, dword [esi + 0x7c]
jae 0x847869
movzx ecx, word [eax]
mov eax, ecx
mov edx, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x8476e9
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
mov edx, ecx
cmp dword [esi + 0x58], 0
je 0x847711
cmp edx, 0x5f
je 0x8478bb
mov eax, edx
and edx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x8bff40]
shl eax, 7
add eax, edx
jmp 0x847806
cmp edx, 0x100
jae 0x847726
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
jne 0x8478bb
xor ecx, ecx
movzx eax, word [ebx]
add ebx, 2
mov dword [ebp - 0x30], ebx
cmp eax, 5
jne 0x8478c5
cmp ecx, edi
je case.0x808896.157
jmp 0x808b79
cmp eax, dword [esi + 0x78]
je 0x8477c0
cmp eax, dword [esi + 0x88]
ja 0x847760
add eax, 0xfffffffe
mov dword [esi + 0x88], eax
mov eax, dword [ebp - 8]
cmp dword [esi + 0x58], 0
movzx ecx, word [eax - 2]
je 0x847841
cmp ecx, 0x5f
je 0x84783a
mov eax, ecx
test eax, eax
jns 0x847780
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x8bff40]
shl eax, 7
and ecx, 0x8000007f
jns 0x84779a
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x8b1c40]
movzx eax, byte [eax*8 + 0x8af3f1]
mov eax, dword [eax*4 + 0x8c5350]
cmp eax, 1
je 0x847837
cmp eax, 3
mov eax, dword [ebp - 8]
je 0x84783a
xor edi, edi
cmp eax, dword [esi + 0x7c]
jae 0x847869
cmp dword [esi + 0x58], 0
je 0x84789b
movzx ecx, word [eax]
cmp ecx, 0x5f
je 0x8478bb
mov eax, ecx
test eax, eax
jns 0x8477ea
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x8bff40]
shl eax, 7
and ecx, 0x8000007f
jns 0x847804
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x8b1c40]
movzx eax, byte [eax*8 + 0x8af3f1]
mov eax, dword [eax*4 + 0x8c5350]
cmp eax, 1
je 0x8478bb
cmp eax, 3
jne 0x847726
lea ecx, [eax - 2]
jmp 0x847728
mov eax, dword [ebp - 8]
mov edi, 1
jmp 0x8477c2
mov edx, 0xff
cmp cx, dx
ja 0x8477c0
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
mov eax, dword [ebp - 8]
je 0x8477c0
mov edi, 1
jmp 0x8477c2
cmp dword [esi + 0x8c], 0
je 0x847726
cmp eax, dword [esi + 0x88]
jbe 0x847726
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle 0x847726
jmp 0x84e351
movzx eax, word [eax]
mov ecx, 0xff
cmp ax, cx
ja 0x847726
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je 0x847726
mov ecx, 1
jmp 0x847728
cmp ecx, edi
jne case.0x808896.157
jmp 0x808b79
mov edx, dword [esi + 0x18]
mov ecx, dword [esi + 0x7c]
test edx, edx
je 0x847901
mov eax, dword [ebp - 8]
mov edi, dword [ebp - 0x28]
cmp eax, ecx
jae 0x847939
push edi
lea eax, [esi + 0x1c]
push eax
push ecx
mov ecx, dword [ebp - 8]
call fcn.00806cde
add esp, 0xc
test eax, eax
jne case.0x808896.157
jmp 0x847936
mov edx, dword [esi + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
mov eax, dword [ebp - 8]
cmp eax, ecx
ja 0x847933
mov ax, word [eax]
cmp ax, word [esi + 0x34]
jne 0x847933
cmp edx, 1
je case.0x808896.157
mov eax, dword [ebp - 8]
mov ax, word [eax + 2]
cmp ax, word [esi + 0x36]
je case.0x808896.157
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp - 8]
cmp dword [esi + 0x8c], 0
je 0x84797f
mov eax, dword [esi + 0x7c]
mov ecx, dword [ebp - 8]
sub eax, 2
cmp ecx, eax
jne 0x84797c
cmp dword [esi + 0x18], 0
jne 0x84797c
cmp dword [esi + 0x1c], 2
jne 0x84797c
mov ax, word [ecx]
cmp ax, word [esi + 0x34]
jne 0x84797c
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle 0x84797c
jmp 0x84e351
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp - 8]
mov ecx, dword [esi + 0x7c]
cmp eax, ecx
jae 0x84cdc7
add eax, 2
mov dword [ebp - 8], eax
test edi, edi
je 0x808ac3
cmp eax, ecx
jae 0x808ac3
mov ax, word [eax]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x808ac3
add dword [ebp - 8], 2
jmp 0x808ac3
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x84cdc7
add eax, 2
add ebx, 2
mov dword [ebp - 8], eax
mov dword [ebp - 0x30], ebx
jmp 0x808b79
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x84cdc7
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov edx, ecx
mov dword [ebp - 8], eax
je 0x847a2c
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x847a2c
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 edx, ecx
cmp edx, 0x100
jae 0x808ac3
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
jne case.0x808896.157
jmp 0x808ac3
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x84cdc7
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov edx, ecx
mov dword [ebp - 8], eax
je 0x847a97
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x847a97
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 edx, ecx
cmp edx, 0xff
ja case.0x808896.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
je case.0x808896.157
jmp 0x808ac3
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x84cdc7
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov edx, ecx
mov dword [ebp - 8], eax
je 0x847b02
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x847b02
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 edx, ecx
cmp edx, 0x100
jae 0x808ac3
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
jne case.0x808896.157
jmp 0x808ac3
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x84cdc7
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov edx, ecx
mov dword [ebp - 8], eax
je 0x847b6d
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x847b6d
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 edx, ecx
cmp edx, 0xff
ja case.0x808896.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
je case.0x808896.157
jmp 0x808ac3
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x84cdc7
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov edx, ecx
mov dword [ebp - 8], eax
je 0x847bd8
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x847bd8
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 edx, ecx
cmp edx, 0x100
jae 0x808ac3
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
jne case.0x808896.157
jmp 0x808ac3
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x84cdc7
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov edx, ecx
mov dword [ebp - 8], eax
je 0x847c43
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x847c43
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 edx, ecx
cmp edx, 0xff
ja case.0x808896.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je case.0x808896.157
jmp 0x808ac3
mov edi, dword [esi + 0x7c]
mov eax, dword [ebp - 8]
cmp eax, edi
jae 0x84cdc7
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov edx, eax
mov dword [ebp - 8], eax
je 0x847cb3
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
mov eax, edx
jne 0x847cb3
movzx eax, word [eax]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, edx
add ecx, 0x10000
add eax, 2
mov dword [ebp - 8], eax
mov edx, eax
cmp ecx, 0xd
ja 0x847cff
je 0x847cd4
cmp ecx, 0xa
je 0x808ac3
jbe case.0x808896.157
cmp ecx, 0xc
ja case.0x808896.157
jmp 0x847d16
cmp edx, edi
jb 0x847cea
cmp dword [esi + 0x8c], 0
je 0x808ac3
jmp 0x847514
cmp word [eax], 0xa
jne 0x808ac3
lea eax, [edx + 2]
mov dword [ebp - 8], eax
jmp 0x808ac3
cmp ecx, 0x85
je 0x847d16
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x808896.157
cmp dword [esi + 0x6c], 0
jne case.0x808896.157
jmp 0x808ac3
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x84cdc7
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov dword [ebp - 8], eax
je 0x847d6e
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x847d6e
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 0x847db2
je case.0x808896.157
cmp ecx, 0xa0
ja 0x847da1
je case.0x808896.157
cmp ecx, 9
je case.0x808896.157
cmp ecx, 0x20
je case.0x808896.157
jmp 0x808ac3
cmp ecx, 0x1680
je case.0x808896.157
jmp 0x808ac3
cmp ecx, 0x205f
ja 0x847de9
je case.0x808896.157
cmp ecx, 0x2000
jb 0x808ac3
cmp ecx, 0x200a
jbe case.0x808896.157
cmp ecx, 0x202f
je case.0x808896.157
jmp 0x808ac3
cmp ecx, 0x3000
je case.0x808896.157
jmp 0x808ac3
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x84cdc7
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov dword [ebp - 8], eax
je 0x847e43
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x847e43
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 0x847e87
je 0x808ac3
cmp ecx, 0xa0
ja 0x847e76
je 0x808ac3
cmp ecx, 9
je 0x808ac3
cmp ecx, 0x20
jne case.0x808896.157
jmp 0x808ac3
cmp ecx, 0x1680
jne case.0x808896.157
jmp 0x808ac3
cmp ecx, 0x205f
ja 0x847ebe
je 0x808ac3
cmp ecx, 0x2000
jb case.0x808896.157
cmp ecx, 0x200a
jbe 0x808ac3
cmp ecx, 0x202f
jne case.0x808896.157
jmp 0x808ac3
cmp ecx, 0x3000
jne case.0x808896.157
jmp 0x808ac3
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x84cdc7
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov dword [ebp - 8], eax
je 0x847f18
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x847f18
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 0x847f3d
je case.0x808896.157
cmp ecx, 0xa
jb 0x808ac3
cmp ecx, 0xd
jbe case.0x808896.157
jmp 0x808ac3
cmp ecx, 0x2028
jb 0x808ac3
cmp ecx, 0x2029
jbe case.0x808896.157
jmp 0x808ac3
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x84cdc7
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x28], 0
mov dword [ebp - 8], eax
je 0x847fa3
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x847fa3
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 0x847fc2
je 0x808ac3
lea eax, [ecx - 0xa]
cmp eax, 3
ja case.0x808896.157
jmp 0x808ac3
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x808896.157
jmp 0x808ac3
mov eax, dword [ebp - 8]
and edx, 0x3ff
shl edx, 0xa
movzx eax, word [eax]
and eax, 0x3ff
or edx, eax
add edx, 0x10000
add dword [ebp - 8], 2
mov ecx, edx
mov dword [ebp - 0x20], ecx
jmp 0x808c4a
cmp eax, 0xa
ja case.default.0x848009
jmp dword [eax*4 + 0x84e6c9]
mov al, byte [ecx*8 + 0x8af3f1]
cmp al, 9
je 0x848035
cmp al, 5
je 0x848035
cmp al, 8
je 0x848035
xor ecx, ecx
jmp 0x848051
cmp edi, 0xf
je case.0x808896.157
jmp 0x808d2a
mov ecx, 1
jmp 0x848051
movzx eax, byte [ecx*8 + 0x8af3f1]
xor ecx, ecx
cmp dword [eax*4 + 0x8c5350], 6
sete cl
xor eax, eax
cmp edi, 0xf
sete al
cmp ecx, eax
je case.0x808896.157
jmp 0x808d2a
movzx ecx, byte [ecx*8 + 0x8af3f1]
xor edx, edx
movzx eax, word [ebx + 4]
cmp eax, dword [ecx*4 + 0x8c5350]
setne dl
xor eax, eax
cmp edi, 0x10
sete al
cmp edx, eax
je case.0x808896.157
jmp 0x808d2a
movzx eax, byte [ecx*8 + 0x8af3f1]
jmp 0x8480a5
movzx eax, byte [ecx*8 + 0x8af3f0]
xor ecx, ecx
cmp word [ebx + 4], ax
setne cl
xor eax, eax
cmp edi, 0x10
sete al
cmp ecx, eax
je case.0x808896.157
jmp 0x808d2a
movzx eax, byte [ecx*8 + 0x8af3f1]
mov eax, dword [eax*4 + 0x8c5350]
cmp eax, 1
je 0x848035
cmp eax, 3
je 0x848035
xor ecx, ecx
jmp 0x848051
cmp edx, 0x180e
ja 0x848144
je case.0x848009.0
cmp edx, 0x85
ja 0x848127
je case.0x848009.0
cmp edx, 9
jb case.0x848168.8203
cmp edx, 0xd
jbe case.0x848009.0
cmp edx, 0x20
je case.0x848009.0
jmp case.0x848168.8203
cmp edx, 0xa0
je case.0x848009.0
cmp edx, 0x1680
je case.0x848009.0
jmp case.0x848168.8203
cmp edx, 0x202f
ja 0x84816f
je case.0x848009.0
add edx, 0xffffe000
cmp edx, 0x29
ja case.0x848168.8203
movzx eax, byte [edx + 0x84e6fd]
jmp dword [eax*4 + 0x84e6f5]
cmp edx, 0x205f
je case.0x848009.0
cmp edx, 0x3000
je case.0x848009.0
jmp case.0x848168.8203
movzx eax, byte [ecx*8 + 0x8af3f1]
mov eax, dword [eax*4 + 0x8c5350]
cmp eax, 1
je 0x848035
cmp eax, 3
je 0x848035
cmp dword [ebp - 0x20], 0x5f
je 0x848035
xor ecx, ecx
jmp 0x848051
mov eax, dword [ebp - 0x20]
cmp eax, 0x24
je 0x848035
cmp eax, 0x40
je 0x848035
cmp eax, 0x60
je 0x848035
cmp eax, 0xa0
jb 0x8481ee
cmp eax, 0xd7ff
jbe 0x848035
cmp eax, 0xe000
jae 0x848035
xor ecx, ecx
jmp 0x848051
cmp edi, 0x10
je case.0x808896.157
jmp 0x808d2a
mov ecx, dword [ebp - 8]
movzx eax, word [ecx]
add ecx, 2
mov dword [ebp - 8], ecx
and eax, 0x3ff
mov edi, dword [ebp - 8]
mov ecx, edx
and ecx, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
jmp 0x808a18
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
jmp 0x808a70
cmp edi, eax
jb 0x808ac3
cmp edi, dword [esi + 0x88]
jbe 0x808ac3
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x84e351
jmp 0x808ac3
movzx ecx, word [ebx + 2]
xor eax, eax
cmp edi, 0x74
sete al
imul ecx, dword [esi + 0x24]
mov dword [ebp - 0x24], eax
movzx eax, word [ebx + 4]
add ebx, 6
mov dword [ebp - 0x2c], eax
mov eax, dword [esi + 0x30]
mov dword [ebp - 0x30], ebx
lea eax, [eax + ecx*2]
mov ecx, dword [esi + 0x54]
neg ecx
sbb ecx, ecx
xor edi, edi
neg ecx
mov dword [ebp - 0x18], edi
dec ecx
mov dword [ebp - 0x20], ecx
cmp dword [ebp - 0x2c], edi
jbe 0x848344
mov dword [ebp - 0x34], eax
movzx eax, word [eax]
dec dword [ebp - 0x2c]
lea edi, [eax + eax]
mov dword [ebp - 0x18], edi
cmp edi, dword [ebp + 0xc]
jge 0x8482ee
mov eax, dword [esi + 0xc]
cmp dword [eax + edi*4], 0
jl 0x8482ee
mov ecx, dword [eax + edi*4 + 4]
sub ecx, dword [eax + edi*4]
jmp 0x848341
cmp dword [ebp - 0x2c], 0
mov edx, dword [ebp - 0x34]
mov eax, dword [esi + 0x24]
lea eax, [edx + eax*2]
mov edx, dword [ebp - 8]
mov dword [ebp - 0x34], eax
jg 0x8482cb
jmp 0x848344
xor eax, eax
cmp edi, 0x72
sete al
mov dword [ebp - 0x24], eax
movzx eax, word [ebx + 2]
add ebx, 4
mov dword [ebp - 0x30], ebx
lea edi, [eax + eax]
mov dword [ebp - 0x18], edi
cmp edi, dword [ebp + 0xc]
jge 0x848337
mov eax, dword [esi + 0xc]
cmp dword [eax + edi*4], 0
jl 0x848337
mov ecx, dword [eax + edi*4 + 4]
sub ecx, dword [eax + edi*4]
jmp 0x848341
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 - 0x1c], eax
add eax, 0xffffff9e
cmp eax, 7
ja case.default.0x84835d
movzx eax, byte [eax + 0x84e731]
jmp dword [eax*4 + 0x84e729]
mov eax, dword [ebp - 0x1c]
add ebx, 2
mov dword [ebp - 0x30], ebx
lea edi, [eax - 0x62]
and edi, 1
mov dword [ebp - 0x1c], edi
movsx edi, byte [eax + 0x8b1bca]
movsx eax, byte [eax + 0x8b1bbe]
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x2c], eax
test eax, eax
jne 0x8483c5
mov dword [ebp - 0x2c], bind
jmp 0x8483c5
cmp word [ebx], 0x69
mov eax, 0
movzx edi, word [ebx + 2]
sete al
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x1c], eax
movzx eax, word [ebx + 4]
mov dword [ebp - 0x2c], eax
test eax, eax
jne 0x8483bf
mov dword [ebp - 0x2c], bind
add ebx, 6
mov dword [ebp - 0x30], ebx
mov eax, edi
test ecx, ecx
je 0x80886d
jns 0x8483d9
test edi, edi
je 0x80886d
cmp eax, 1
mov dword [ebp - 0x34], 1
mov eax, dword [ebp - 8]
jl 0x84841b
push dword [ebp - 0x24]
mov edx, eax
push esi
push ecx
mov ecx, dword [ebp - 0x18]
call fcn.0089b321
mov ecx, eax
add esp, 0xc
test ecx, ecx
js 0x84cb5b
mov eax, dword [ebp - 8]
lea eax, [eax + ecx*2]
mov ecx, dword [ebp - 0x34]
inc ecx
mov dword [ebp - 8], eax
mov dword [ebp - 0x34], ecx
cmp ecx, edi
mov ecx, dword [ebp - 0x20]
jle 0x8483e8
mov edx, dword [ebp - 0x2c]
cmp edi, edx
je 0x808b79
cmp dword [ebp - 0x1c], 0
je 0x84caad
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.00808810
add esp, 0x14
test eax, eax
jne 0x8089db
mov eax, dword [ebp - 0x2c]
cmp dword [ebp - 0x14], eax
jge case.0x808896.157
push dword [ebp - 0x24]
mov ecx, dword [ebp - 0x18]
mov edx, edi
push esi
push dword [ebp - 0x20]
call fcn.0089b321
add esp, 0xc
test eax, eax
js 0x84ca8a
inc dword [ebp - 0x14]
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.00808810
add esp, 0x14
test eax, eax
je 0x848456
jmp 0x8089db
push dword [ebp - 0x24]
mov edx, dword [ebp - 8]
push esi
push ecx
mov ecx, edi
call fcn.0089b321
mov ecx, eax
add esp, 0xc
test ecx, ecx
js 0x84cb5b
mov eax, dword [ebp - 8]
lea eax, [eax + ecx*2]
mov dword [ebp - 8], eax
jmp 0x808b79
lea eax, [ecx - 0x62]
cmp eax, 0xb
ja case.default.0x8484e5
movzx eax, byte [eax + 0x84e741]
jmp dword [eax*4 + 0x84e739]
lea eax, [ecx - 0x62]
add ebx, 2
mov dword [ebp - 0x30], ebx
cmp eax, 8
jae 0x848504
mov ecx, eax
and ecx, 1
mov dword [ebp - 0x10], ecx
jmp 0x84850b
mov dword [ebp - 0x2c], 1
movsx edx, byte [eax + 0x8b1c2c]
movsx eax, byte [eax + 0x8b1c20]
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x808afb
mov dword [ebp - 0x20], bind
jmp 0x808afb
xor eax, eax
cmp edx, 0x69
sete al
mov dword [ebp - 0x10], eax
xor eax, eax
cmp edx, 0x6d
movzx edx, word [ebx + 2]
mov dword [ebp - 0x18], edx
sete al
mov dword [ebp - 0x2c], eax
movzx eax, word [ebx + 4]
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x848562
mov dword [ebp - 0x20], bind
add ebx, 6
mov dword [ebp - 0x30], ebx
jmp 0x808afb
mov eax, dword [ebp - 8]
and edx, 0x3ff
shl edx, 0xa
movzx eax, word [eax]
and eax, 0x3ff
or edx, eax
add edx, 0x10000
add dword [ebp - 8], 2
jmp 0x808b38
cmp edi, 0x6e
je case.0x808896.157
jmp 0x808b62
cmp edx, 1
jl 0x808b6d
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x84cdc7
movzx edx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp edx, 0xff
jbe 0x8485d1
cmp edi, 0x6e
je case.0x808896.157
jmp 0x8485f2
mov ecx, edx
mov eax, 1
and ecx, 7
shr edx, 3
shl eax, cl
mov ecx, dword [ebp - 0xc]
test byte [edx + ecx], al
je case.0x808896.157
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x18]
inc ecx
mov dword [ebp - 0x24], ecx
cmp ecx, edx
jle 0x8485ac
jmp 0x808b70
cmp dword [ebp - 0x10], 0
jne 0x84cb89
cmp dword [ebp - 0x28], 0
mov ecx, eax
mov dword [ebp - 0x14], ecx
je 0x848752
cmp edx, dword [ebp - 0x20]
jl 0x848628
jmp 0x8486d8
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x8486b3
movzx edx, word [eax]
mov ecx, 1
mov eax, edx
mov dword [ebp - 0x34], ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x84866f
mov eax, dword [ebp - 8]
and edx, 0x3ff
shl edx, 0xa
mov ecx, 2
mov dword [ebp - 0x34], ecx
movzx eax, word [eax + 2]
and eax, 0x3ff
or edx, eax
add edx, 0x10000
cmp edx, 0xff
jbe 0x84867e
cmp edi, 0x6e
jne 0x848698
jmp 0x8486d8
mov ecx, edx
mov eax, 1
and ecx, 7
shr edx, 3
shl eax, cl
mov ecx, dword [ebp - 0xc]
test byte [edx + ecx], al
je 0x8486d8
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 8]
lea eax, [eax + ecx*2]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x18], eax
cmp eax, dword [ebp - 0x20]
jl 0x848625
jmp 0x8486d8
cmp dword [esi + 0x8c], 0
je 0x8486d8
cmp eax, dword [esi + 0x88]
jbe 0x8486d8
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x84e351
cmp dword [ebp - 0x2c], 0
jne 0x808b79
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.00808810
add esp, 0x14
test eax, eax
jne 0x8089db
mov eax, edi
add edi, 0xfffffffe
cmp eax, dword [ebp - 0x14]
jbe case.0x808896.157
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x84872e
add edi, 0xfffffffe
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.00808810
add esp, 0x14
test eax, eax
je 0x848708
jmp 0x8089db
cmp edx, dword [ebp - 0x20]
jge 0x8487c7
mov ecx, dword [ebp - 0x18]
cmp eax, dword [esi + 0x7c]
jae 0x84879f
movzx edx, word [eax]
cmp edx, 0xff
jbe 0x848771
cmp edi, 0x6e
jne 0x84878e
jmp 0x8487c4
mov ecx, edx
mov eax, 1
and ecx, 7
shr edx, 3
shl eax, cl
mov ecx, dword [ebp - 0xc]
test byte [edx + ecx], al
mov eax, dword [ebp - 8]
je 0x8487c4
mov ecx, dword [ebp - 0x18]
inc ecx
add eax, 2
mov dword [ebp - 8], eax
mov dword [ebp - 0x18], ecx
cmp ecx, dword [ebp - 0x20]
jl 0x84875a
jmp 0x8487c4
cmp dword [esi + 0x8c], 0
je 0x8487c4
cmp eax, dword [esi + 0x88]
jbe 0x8487c4
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x84e351
mov ecx, dword [ebp - 0x14]
cmp dword [ebp - 0x2c], 0
jne 0x808b79
cmp eax, ecx
jb case.0x808896.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.00808810
add esp, 0x14
test eax, eax
jne 0x8089db
sub edi, 2
cmp edi, dword [ebp - 0x14]
jae 0x8487dc
jmp case.0x808896.157
lea eax, [ebx + 4]
mov dword [ebp - 0x24], eax
movzx eax, word [ebx + 2]
movzx ecx, word [ebx + eax*2]
lea ebx, [ebx + eax*2]
mov edi, ecx
mov dword [ebp - 0x30], ebx
lea eax, [edi - 0x62]
cmp eax, 0xb
ja case.default.0x848835
movzx eax, byte [eax + 0x84e755]
jmp dword [eax*4 + 0x84e74d]
lea eax, [edi - 0x62]
add ebx, 2
mov dword [ebp - 0x30], ebx
cmp eax, 8
jae 0x848854
mov ecx, eax
and ecx, 1
mov dword [ebp - 0x10], ecx
jmp 0x84885b
mov dword [ebp - 0x2c], 1
movsx ecx, byte [eax + 0x8b1c20]
movsx edi, byte [eax + 0x8b1c2c]
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x20], ecx
test ecx, ecx
jne 0x8488c8
mov ecx, bind
jmp 0x8488c5
movzx edi, word [ebx + 2]
xor eax, eax
cmp ecx, 0x69
mov dword [ebp - 0x18], edi
sete al
cmp ecx, 0x6d
mov ecx, 0
mov dword [ebp - 0x10], eax
sete cl
mov dword [ebp - 0x2c], ecx
movzx ecx, word [ebx + 4]
mov dword [ebp - 0x20], ecx
test ecx, ecx
jne 0x8488b0
mov ecx, bind
mov dword [ebp - 0x20], ecx
add ebx, 6
mov dword [ebp - 0x30], ebx
jmp 0x8488c8
mov eax, dword [ebp - 0x10]
mov ecx, 1
mov edi, ecx
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x34], 1
cmp edi, 1
jl 0x848946
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x84cdc7
movzx ecx, word [eax]
add eax, 2
mov edx, dword [ebp - 0x28]
mov dword [ebp - 8], eax
test edx, edx
je 0x84891e
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x84891e
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 - 0x24]
call fcn.0089b51c
add esp, 4
test eax, eax
je case.0x808896.157
mov eax, dword [ebp - 0x34]
inc eax
mov dword [ebp - 0x34], eax
cmp eax, edi
jle 0x8488d4
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x10]
cmp edi, ecx
je 0x80886d
test eax, eax
jne 0x84ccde
mov eax, dword [ebp - 8]
mov dword [ebp - 0x38], eax
cmp edi, ecx
jl 0x848968
jmp 0x8489ff
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x8489da
mov edx, dword [ebp - 0x28]
movzx ecx, word [eax]
mov edi, dword [ebp - 8]
mov dword [ebp - 0x34], 1
test edx, edx
je 0x8489b0
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x8489b0
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov dword [ebp - 0x34], 2
add ecx, 0x10000
push edx
mov edx, dword [ebp - 0x24]
call fcn.0089b51c
add esp, 4
test eax, eax
je 0x848a02
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x34]
mov edi, dword [ebp - 0x18]
inc edi
mov dword [ebp - 0x18], edi
lea eax, [eax + ecx*2]
mov dword [ebp - 8], eax
cmp edi, dword [ebp - 0x20]
jl 0x848965
jmp 0x8489ff
cmp dword [esi + 0x8c], 0
je 0x8489ff
cmp eax, dword [esi + 0x88]
jbe 0x8489ff
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x84e351
mov edi, dword [ebp - 8]
cmp dword [ebp - 0x2c], 0
jne 0x808b79
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.00808810
add esp, 0x14
test eax, eax
jne 0x8089db
mov eax, edi
add edi, 0xfffffffe
cmp eax, dword [ebp - 0x38]
jbe case.0x808896.157
cmp dword [ebp - 0x28], 0
je 0x848a5b
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x848a5b
add edi, 0xfffffffe
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.00808810
add esp, 0x14
test eax, eax
je 0x848a2f
jmp 0x8089db
mov edi, 2
mov dword [ebp - 0x34], edi
jmp 0x808d67
mov eax, dword [esi + 0x7c]
mov ecx, dword [ebp - 8]
sub eax, ecx
and eax, 0xfffffffe
cmp eax, 2
jl 0x84cdaf
movzx eax, word [ecx]
add ecx, 2
mov dword [ebp - 8], ecx
cmp word [ebx + 2], ax
jne case.0x808896.157
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x808b79
movzx eax, word [ebx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov dword [ebp - 0x34], 2
add ecx, 0x10000
mov edx, ecx
mov dword [ebp - 0x24], edx
jmp 0x808bd6
movzx edi, word [eax]
add eax, 2
mov dword [ebp - 8], eax
mov eax, edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x848b22
mov ecx, dword [ebp - 8]
and edi, 0x3ff
shl edi, 0xa
movzx eax, word [ecx]
add ecx, 2
and eax, 0x3ff
mov dword [ebp - 8], ecx
or edi, eax
add edi, 0x10000
mov eax, dword [ebp - 0x34]
cmp edx, edi
mov edx, dword [ebp - 8]
lea ebx, [ebx + eax*2]
mov dword [ebp - 0x30], ebx
je 0x80886d
mov edx, dword [ebp - 0x24]
mov eax, edx
shr eax, 7
movzx ecx, byte [eax + 0x8bff40]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x8b1c40]
mov eax, dword [eax*8 + 0x8af3f4]
add eax, edx
cmp edi, eax
jne case.0x808896.157
jmp 0x808b79
movzx ecx, word [ebx + 2]
mov edx, 0xff
cmp cx, dx
ja 0x848b87
mov eax, dword [esi + 0x3c]
movzx edx, byte [eax + ecx]
mov eax, dword [ebp - 8]
jmp 0x848b89
mov edx, ecx
movzx ecx, word [eax]
mov edi, 0xff
cmp cx, di
ja 0x848ba0
mov eax, dword [esi + 0x3c]
movzx ecx, byte [eax + ecx]
mov eax, dword [ebp - 8]
cmp edx, ecx
jne case.0x808896.157
add eax, 2
add ebx, 4
mov dword [ebp - 8], eax
mov dword [ebp - 0x30], ebx
jmp 0x808b79
movzx eax, word [ebx + 2]
add ebx, 4
mov edx, eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], edx
mov ecx, ebx
jmp 0x848c7b
mov dword [ebp - 0x2c], 1
movzx eax, word [ebx + 2]
xor edx, edx
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x18], eax
cmp ecx, 0x28
je 0x848bef
mov dword [ebp - 0x10], edx
cmp ecx, 0x35
jne 0x848bf6
mov dword [ebp - 0x10], 1
add ebx, 4
mov ecx, ebx
jmp 0x848c7b
xor edx, edx
mov dword [ebp - 0x2c], 1
add ebx, 2
mov dword [ebp - 0x14], edx
mov ecx, ebx
jmp 0x848c74
mov edx, 1
mov dword [ebp - 0x2c], 1
add ebx, 2
mov dword [ebp - 0x14], edx
mov ecx, ebx
jmp 0x848c74
xor edx, edx
mov dword [ebp - 0x2c], 1
add ebx, 2
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x18], 1
mov ecx, ebx
jmp 0x848c7b
cmp edi, 0x2e
mov edx, edi
sbb eax, eax
add ebx, 2
and eax, 0xfffffff3
mov ecx, ebx
add eax, 0x2e
sub edx, eax
mov eax, edx
and edx, 1
mov dword [ebp - 0x10], edx
movsx edx, byte [eax + 0x8b1c2c]
movsx eax, byte [eax + 0x8b1c20]
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x18], eax
test eax, eax
jne 0x848c7b
mov dword [ebp - 0x18], bind
cmp dword [ebp - 0x28], 0
movzx eax, word [ebx]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x24], eax
je 0x848f07
and eax, 0xfc00
mov dword [ebp - 0xc], 1
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x30], 1
mov dword [ebp - 0x1c], 1
cmp eax, 0xd800
jne 0x848cee
movzx eax, word [ebx + 2]
mov ebx, dword [ebp - 0x20]
and eax, 0x3ff
and ebx, 0x3ff
mov dword [ebp - 0xc], 2
shl ebx, 0xa
or ebx, eax
mov dword [ebp - 0x30], 2
add ebx, 0x10000
mov dword [ebp - 0x1c], 2
mov eax, ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x24], eax
jmp 0x848cf1
mov eax, dword [ebp - 0x24]
cmp dword [ebp - 0x1c], 1
mov ebx, dword [ebp - 0x30]
lea ebx, [ecx + ebx*2]
mov dword [ebp - 0x30], ebx
jbe 0x848f0d
cmp edi, 0x2e
jb 0x848d44
mov edi, dword [ebp - 0x24]
shr eax, 7
movzx ecx, byte [eax + 0x8bff40]
mov eax, edi
shl ecx, 7
and eax, 0x7f
add ecx, eax
movzx eax, word [ecx*2 + 0x8b1c40]
mov ecx, dword [eax*8 + 0x8af3f4]
add ecx, edi
cmp ecx, edi
je 0x848d44
lea edx, [ebp - 0x6c]
call fcn.0089b9a7
mov edx, dword [ebp - 0x14]
mov edi, eax
jmp 0x848d46
xor edi, edi
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x24], 1
cmp edx, 1
jl 0x848ddd
mov eax, dword [ebp - 0xc]
lea ecx, [eax + eax]
mov dword [ebp - 0x1c], ecx
mov eax, dword [esi + 0x7c]
mov edi, dword [ebp - 8]
sub eax, ecx
cmp edi, eax
ja 0x848d8b
push ecx
push dword [ebp - 0x34]
push edi
call fcn.00821394
add esp, 0xc
test eax, eax
jne 0x848d8b
mov ecx, dword [ebp - 0x1c]
mov eax, edi
add eax, ecx
mov dword [ebp - 8], eax
jmp 0x848dca
mov eax, dword [ebp - 0x20]
test eax, eax
jle 0x84ca92
lea ecx, [eax + eax]
mov eax, dword [esi + 0x7c]
sub eax, ecx
cmp edi, eax
ja 0x84ca92
push ecx
lea eax, [ebp - 0x6c]
push eax
push edi
call fcn.00821394
add esp, 0xc
test eax, eax
jne 0x84ca92
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x1c]
lea edi, [edi + eax*2]
mov dword [ebp - 8], edi
mov eax, edi
mov edi, dword [ebp - 0x24]
mov edx, dword [ebp - 0x14]
inc edi
mov dword [ebp - 0x24], edi
cmp edi, edx
jle 0x848d62
mov edi, dword [ebp - 0x20]
jmp 0x848de0
mov eax, dword [ebp - 8]
cmp edx, dword [ebp - 0x18]
je 0x808b79
cmp dword [ebp - 0x10], 0
jne 0x84cddf
mov ecx, eax
mov dword [ebp - 0x10], ecx
cmp edx, dword [ebp - 0x18]
jge 0x848ea3
mov eax, dword [ebp - 0xc]
lea edx, [eax + eax]
mov dword [ebp - 0x1c], edx
mov eax, dword [esi + 0x7c]
mov ecx, dword [ebp - 8]
sub eax, edx
cmp ecx, eax
ja 0x848e38
push edx
push dword [ebp - 0x34]
push ecx
call fcn.00821394
add esp, 0xc
test eax, eax
jne 0x848e35
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
lea eax, [eax + ecx*2]
mov dword [ebp - 8], eax
jmp 0x848e5f
mov ecx, dword [ebp - 8]
test edi, edi
jle 0x848e70
mov eax, dword [esi + 0x7c]
add edi, edi
sub eax, edi
cmp ecx, eax
ja 0x848e70
push edi
lea eax, [ebp - 0x6c]
push eax
push ecx
call fcn.00821394
add esp, 0xc
test eax, eax
jne 0x848e70
add dword [ebp - 8], edi
mov edi, dword [ebp - 0x20]
mov edx, dword [ebp - 0x14]
inc edx
cmp edx, dword [ebp - 0x18]
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x1c]
jl 0x848e0a
jmp 0x848e9d
cmp dword [esi + 0x8c], 0
mov eax, dword [ebp - 8]
je 0x848ea0
cmp eax, dword [esi + 0x7c]
jb 0x848e9d
cmp eax, dword [esi + 0x88]
jbe 0x848e9d
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x84e351
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x10]
cmp dword [ebp - 0x2c], 0
jne 0x808b79
cmp eax, ecx
jbe 0x808992
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.00808810
add esp, 0x14
test eax, eax
jne 0x8089db
mov ax, word [edi - 2]
add edi, 0xfffffffe
mov ecx, 0xfc00
mov dword [ebp - 8], edi
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x848efd
add edi, 0xfffffffe
mov dword [ebp - 8], edi
cmp edi, dword [ebp - 0x10]
ja 0x848eb8
jmp 0x808992
lea ebx, [ecx + 2]
mov dword [ebp - 0x30], ebx
cmp edi, 0x2e
jb 0x84904b
cmp dword [ebp - 0x28], 0
je 0x848f4d
cmp eax, 0x7f
jbe 0x848f4d
shr eax, 7
movzx ecx, byte [eax + 0x8bff40]
mov eax, dword [ebp - 0x24]
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x8b1c40]
mov eax, dword [eax*8 + 0x8af3f4]
add dword [ebp - 0x24], eax
mov edi, dword [ebp - 0x24]
jmp 0x848f66
cmp eax, 0xff
ja 0x848f60
mov eax, dword [esi + 0x40]
mov ecx, dword [ebp - 0x20]
movzx edi, byte [eax + ecx]
jmp 0x848f63
mov edi, dword [ebp - 0x20]
mov dword [ebp - 0x24], edi
mov eax, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp edx, 1
jl 0x848f9f
cmp eax, dword [esi + 0x7c]
jae 0x84d08a
movzx ecx, word [eax]
cmp dword [ebp - 0x20], ecx
je 0x848f8e
cmp edi, ecx
jne case.0x808896.157
mov ecx, dword [ebp - 0x1c]
add eax, 2
inc ecx
mov dword [ebp - 8], eax
mov dword [ebp - 0x1c], ecx
cmp ecx, edx
jle 0x848f75
cmp edx, dword [ebp - 0x18]
je 0x808b79
cmp dword [ebp - 0x10], 0
jne 0x84ce98
mov ecx, eax
mov dword [ebp - 0x14], ecx
cmp edx, dword [ebp - 0x18]
jge 0x849003
cmp eax, dword [esi + 0x7c]
jae 0x848fdb
movzx ecx, word [eax]
cmp dword [ebp - 0x20], ecx
je 0x848fcd
cmp edi, ecx
jne 0x849000
add eax, 2
inc edx
mov dword [ebp - 8], eax
cmp edx, dword [ebp - 0x18]
jl 0x848fbc
jmp 0x849000
cmp dword [esi + 0x8c], 0
je 0x849000
cmp eax, dword [esi + 0x88]
jbe 0x849000
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x84e351
mov ecx, dword [ebp - 0x14]
cmp dword [ebp - 0x2c], 0
jne 0x808b79
cmp eax, ecx
je 0x808992
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.00808810
sub edi, 2
add esp, 0x14
mov dword [ebp - 8], edi
test eax, eax
jne 0x8089db
cmp edi, dword [ebp - 0x14]
jne 0x849018
jmp 0x808992
mov ecx, 1
cmp edx, ecx
jge 0x849059
mov edi, dword [ebp - 8]
jmp 0x84907f
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x84d08a
mov edi, dword [ebp - 8]
movzx eax, word [eax]
add edi, 2
mov dword [ebp - 8], edi
cmp dword [ebp - 0x20], eax
jne case.0x808896.157
inc ecx
cmp ecx, edx
jle 0x849059
cmp edx, dword [ebp - 0x18]
je 0x808b79
cmp dword [ebp - 0x10], 0
jne 0x84cf0f
mov eax, dword [ebp - 8]
mov ecx, eax
mov edi, dword [ebp - 0x18]
mov dword [ebp - 0x14], ecx
cmp edx, edi
jge 0x8490c2
mov ecx, dword [ebp - 0x20]
cmp eax, dword [esi + 0x7c]
jae 0x84910a
movzx eax, word [eax]
cmp ecx, eax
jne 0x8490bc
add dword [ebp - 8], 2
inc edx
mov eax, dword [ebp - 8]
cmp edx, edi
jl 0x8490a4
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x14]
cmp dword [ebp - 0x2c], 0
jne 0x808b79
cmp eax, ecx
je 0x808992
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.00808810
sub edi, 2
add esp, 0x14
mov dword [ebp - 8], edi
test eax, eax
jne 0x8089db
cmp edi, dword [ebp - 0x14]
jne 0x8490d7
jmp 0x808992
cmp dword [esi + 0x8c], 0
je 0x8490bf
cmp eax, dword [esi + 0x88]
jbe 0x8490bf
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x84e351
jmp 0x8490bf
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x84d08a
cmp dword [ebp - 0x28], 0
movzx ecx, word [ebx + 2]
je 0x849226
mov eax, ecx
mov dword [ebp - 0x1c], ecx
add ebx, 4
mov dword [ebp - 0x24], ecx
and eax, 0xfc00
mov dword [ebp - 0x30], ebx
cmp eax, 0xd800
jne 0x84918a
movzx eax, word [ebx]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add ebx, 2
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp - 8]
movzx edx, word [ecx]
add ecx, 2
mov eax, edx
mov dword [ebp - 8], ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x8491c3
movzx eax, word [ecx]
and edx, 0x3ff
shl edx, 0xa
and eax, 0x3ff
add ecx, 2
or edx, eax
mov dword [ebp - 8], ecx
add edx, 0x10000
cmp edi, 0x1f
jne 0x8491d6
cmp dword [ebp - 0x24], edx
je case.0x808896.157
jmp 0x808b79
mov edi, dword [ebp - 0x24]
cmp edi, 0x7f
jbe 0x849207
mov eax, edi
shr eax, 7
movzx ecx, byte [eax + 0x8bff40]
mov eax, edi
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x8b1c40]
mov eax, dword [eax*8 + 0x8af3f4]
add eax, edi
jmp 0x849211
mov eax, dword [esi + 0x40]
mov ecx, dword [ebp - 0x1c]
movzx eax, byte [eax + ecx]
cmp edi, edx
je case.0x808896.157
cmp eax, edx
je case.0x808896.157
jmp 0x808b79
movzx edx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp ecx, edx
je case.0x808896.157
cmp edi, 0x20
jne 0x849253
cmp ecx, 0xff
ja 0x84924b
mov eax, dword [esi + 0x40]
movzx ecx, byte [eax + ecx]
cmp ecx, edx
je case.0x808896.157
mov edx, dword [ebp - 8]
jmp 0x808946
movzx eax, word [ebx + 2]
add ebx, 4
mov edx, eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0xc], edx
mov ecx, ebx
jmp 0x849333
movzx eax, word [ebx + 2]
xor edx, edx
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x18], eax
cmp ecx, 0x42
je 0x84928a
mov dword [ebp - 0x10], edx
cmp ecx, 0x4f
jne 0x849291
mov dword [ebp - 0x10], 1
add ebx, 4
mov ecx, ebx
jmp 0x849333
xor edx, edx
mov dword [ebp - 0x2c], 1
add ebx, 2
mov dword [ebp - 0xc], edx
mov ecx, ebx
jmp 0x84932c
mov edx, 1
mov dword [ebp - 0x2c], 1
add ebx, 2
mov dword [ebp - 0xc], edx
mov ecx, ebx
jmp 0x84932c
xor edx, edx
mov dword [ebp - 0x2c], 1
add ebx, 2
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x18], 1
mov ecx, ebx
jmp 0x849333
movzx eax, word [ebx + 2]
xor edx, edx
add ebx, 4
mov dword [ebp - 0x2c], 1
mov dword [ebp - 0xc], edx
mov ecx, ebx
mov dword [ebp - 0x18], eax
jmp 0x849333
cmp edi, 0x48
mov edx, edi
sbb eax, eax
add ebx, 2
and eax, 0xfffffff3
mov ecx, ebx
add eax, 0x48
sub edx, eax
mov eax, edx
and edx, 1
mov dword [ebp - 0x10], edx
movsx edx, byte [eax + 0x8b1c2c]
movsx eax, byte [eax + 0x8b1c20]
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x18], eax
test eax, eax
jne 0x849333
mov dword [ebp - 0x18], bind
cmp dword [ebp - 0x28], 0
movzx eax, word [ebx]
lea ebx, [ecx + 2]
mov dword [ebp - 0x14], eax
mov ecx, eax
mov dword [ebp - 0x30], ebx
je 0x84937b
and eax, 0xfc00
cmp eax, 0xd800
jne 0x849378
movzx eax, word [ebx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or eax, ecx
add eax, 0x10000
add ebx, 2
mov dword [ebp - 0x14], eax
mov ecx, eax
mov dword [ebp - 0x30], ebx
jmp 0x84937b
mov eax, dword [ebp - 0x14]
cmp edi, 0x48
jb 0x849624
cmp dword [ebp - 0x28], 0
je 0x8493ba
cmp ecx, 0x7f
jbe 0x8493ba
mov eax, ecx
shr eax, 7
movzx ecx, byte [eax + 0x8bff40]
mov eax, dword [ebp - 0x14]
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x8b1c40]
mov eax, dword [eax*8 + 0x8af3f4]
add eax, dword [ebp - 0x14]
jmp 0x8493cc
cmp ecx, 0xff
ja 0x8493cc
mov eax, dword [esi + 0x40]
mov ecx, dword [ebp - 0x14]
movzx eax, byte [eax + ecx]
cmp dword [ebp - 0x28], 0
mov edi, 1
mov dword [ebp - 0x20], eax
je 0x849443
cmp edx, edi
jl 0x849474
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x84d08a
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
mov eax, dword [ebp - 8]
jne 0x84942a
movzx eax, word [eax]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, dword [ebp - 8]
add ecx, 0x10000
add eax, 2
mov dword [ebp - 8], eax
cmp dword [ebp - 0x14], ecx
je case.0x808896.157
cmp dword [ebp - 0x20], ecx
je case.0x808896.157
inc edi
cmp edi, edx
jle 0x8493e2
jmp 0x849477
mov eax, dword [ebp - 8]
cmp edx, 1
jl 0x849477
cmp eax, dword [esi + 0x7c]
jae 0x84d08a
movzx ecx, word [eax]
cmp dword [ebp - 0x14], ecx
je case.0x808896.157
cmp dword [ebp - 0x20], ecx
je case.0x808896.157
add eax, 2
inc edi
mov dword [ebp - 8], eax
cmp edi, edx
jle 0x84944b
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x18]
cmp edx, ecx
je 0x808b79
cmp dword [ebp - 0x10], 0
jne 0x84cf7e
cmp dword [ebp - 0x28], 0
mov edi, eax
mov dword [ebp - 0x10], edi
je 0x84958e
cmp edx, ecx
jge 0x849500
cmp eax, dword [esi + 0x7c]
jae 0x849564
movzx edi, word [eax]
mov ecx, dword [ebp - 8]
mov eax, edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x8494dd
movzx eax, word [ecx + 2]
and edi, 0x3ff
and eax, 0x3ff
shl edi, 0xa
or edi, eax
mov eax, 2
add edi, 0x10000
jmp 0x8494e2
mov eax, 1
cmp dword [ebp - 0x14], edi
je 0x8494fa
cmp dword [ebp - 0x20], edi
je 0x8494fa
lea ecx, [ecx + eax*2]
inc edx
mov eax, ecx
mov dword [ebp - 8], ecx
cmp edx, dword [ebp - 0x18]
jl 0x84949f
mov eax, dword [ebp - 8]
mov edi, dword [ebp - 0x10]
cmp dword [ebp - 0x2c], 0
jne 0x808b79
cmp eax, edi
jbe 0x808992
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.00808810
add esp, 0x14
test eax, eax
jne 0x8089db
mov ax, word [edi - 2]
add edi, 0xfffffffe
mov ecx, 0xfc00
mov dword [ebp - 8], edi
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x84955a
add edi, 0xfffffffe
mov dword [ebp - 8], edi
cmp edi, dword [ebp - 0x10]
ja 0x849515
jmp 0x808992
cmp dword [esi + 0x8c], 0
je 0x8494fd
cmp eax, dword [esi + 0x88]
jbe 0x8494fd
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x84e351
jmp 0x8494fd
cmp edx, ecx
jge 0x8495dc
mov edi, dword [ebp - 0x20]
cmp eax, dword [esi + 0x7c]
jae 0x8495b4
movzx ecx, word [eax]
cmp dword [ebp - 0x14], ecx
je 0x8495d9
cmp edi, ecx
je 0x8495d9
add eax, 2
inc edx
mov dword [ebp - 8], eax
cmp edx, dword [ebp - 0x18]
jl 0x849595
jmp 0x8495d9
cmp dword [esi + 0x8c], 0
je 0x8495d9
cmp eax, dword [esi + 0x88]
jbe 0x8495d9
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x84e351
mov edi, dword [ebp - 0x10]
cmp dword [ebp - 0x2c], 0
jne 0x808b79
cmp eax, edi
je 0x808992
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.00808810
add esp, 0x14
test eax, eax
jne 0x8089db
sub edi, 2
mov dword [ebp - 8], edi
cmp edi, dword [ebp - 0x10]
jne 0x8495f1
jmp 0x808992
cmp dword [ebp - 0x28], 0
mov edi, 1
je 0x849696
cmp edx, edi
jge 0x84963b
mov ecx, dword [ebp - 0x14]
jmp 0x8496be
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x84d08a
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
mov eax, dword [ebp - 8]
jne 0x849683
movzx eax, word [eax]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, dword [ebp - 8]
add ecx, 0x10000
add eax, 2
mov dword [ebp - 8], eax
cmp dword [ebp - 0x14], ecx
je case.0x808896.157
inc edi
cmp edi, edx
jle 0x84963b
mov ecx, dword [ebp - 0x14]
jmp 0x8496c1
mov ecx, dword [ebp - 0x14]
cmp edx, 1
jl 0x8496be
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x84d08a
movzx eax, word [eax]
add dword [ebp - 8], 2
cmp ecx, eax
je case.0x808896.157
inc edi
cmp edi, edx
jle 0x84969e
mov eax, dword [ebp - 8]
cmp edx, dword [ebp - 0x18]
je 0x808b79
cmp dword [ebp - 0x10], 0
jne 0x84d0bc
cmp dword [ebp - 0x28], 0
mov edi, eax
mov dword [ebp - 0x20], edi
je 0x8497d2
cmp edx, dword [ebp - 0x18]
jge 0x849744
cmp eax, dword [esi + 0x7c]
jae 0x8497a8
movzx edi, word [eax]
mov ecx, dword [ebp - 8]
mov eax, edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x849726
movzx eax, word [ecx + 2]
and edi, 0x3ff
and eax, 0x3ff
shl edi, 0xa
or edi, eax
mov eax, 2
add edi, 0x10000
jmp 0x84972b
mov eax, 1
cmp dword [ebp - 0x14], edi
je 0x84973e
lea ecx, [ecx + eax*2]
inc edx
mov eax, ecx
mov dword [ebp - 8], ecx
cmp edx, dword [ebp - 0x18]
jl 0x8496e8
mov eax, dword [ebp - 8]
mov edi, dword [ebp - 0x20]
cmp dword [ebp - 0x2c], 0
jne 0x808b79
cmp eax, edi
jbe 0x808992
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.00808810
add esp, 0x14
test eax, eax
jne 0x8089db
mov ax, word [edi - 2]
add edi, 0xfffffffe
mov ecx, 0xfc00
mov dword [ebp - 8], edi
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x84979e
add edi, 0xfffffffe
mov dword [ebp - 8], edi
cmp edi, dword [ebp - 0x20]
ja 0x849759
jmp 0x808992
cmp dword [esi + 0x8c], 0
je 0x849741
cmp eax, dword [esi + 0x88]
jbe 0x849741
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x84e351
jmp 0x849741
cmp edx, dword [ebp - 0x18]
jge 0x8497f3
cmp eax, dword [esi + 0x7c]
jae 0x84983b
movzx eax, word [eax]
cmp ecx, eax
je 0x8497f0
add dword [ebp - 8], 2
inc edx
mov eax, dword [ebp - 8]
cmp edx, dword [ebp - 0x18]
jl 0x8497d7
mov eax, dword [ebp - 8]
cmp dword [ebp - 0x2c], 0
jne 0x808b79
cmp eax, edi
je 0x808992
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.00808810
add esp, 0x14
test eax, eax
jne 0x8089db
sub edi, 2
mov dword [ebp - 8], edi
cmp edi, dword [ebp - 0x20]
jne 0x849808
jmp 0x808992
cmp dword [esi + 0x8c], 0
je 0x8497f3
cmp eax, dword [esi + 0x88]
jbe 0x8497f3
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle 0x8497f3
jmp 0x84e351
movzx edi, word [ebx + 2]
mov edx, 1
mov ecx, edi
mov dword [ebp - 0x14], edi
add ebx, 4
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x10], edx
mov eax, ebx
jmp 0x808de1
movzx edi, word [ebx + 2]
xor edx, edx
cmp ecx, 0x5c
mov dword [ebp - 0xc], 0
mov dword [ebp - 0x14], edi
sete dl
add ebx, 4
mov dword [ebp - 0x10], edx
mov eax, ebx
xor ecx, ecx
jmp 0x808de1
xor ecx, ecx
jmp 0x8498ad
mov ecx, 1
mov dword [ebp - 0x14], bind
jmp 0x8498bf
xor ecx, ecx
mov dword [ebp - 0x14], 1
add ebx, 2
jmp 0x8498d0
movzx edi, word [ebx + 2]
xor ecx, ecx
mov dword [ebp - 0x14], edi
add ebx, 4
mov edx, dword [ebp - 0x10]
mov eax, ebx
mov dword [ebp - 0x2c], 1
mov dword [ebp - 0xc], ecx
jmp 0x808de1
xor edx, edx
jmp 0x808dbc
movzx ecx, word [ebx]
xor eax, eax
cmp edi, 0xf
sete al
mov dword [ebp - 0x3c], eax
lea eax, [ebx + 2]
movzx ebx, word [eax]
mov dword [ebp - 0x40], ebx
lea ebx, [eax + 2]
mov eax, ecx
mov dword [ebp - 0x30], ebx
mov ecx, dword [ebp - 0xc]
jmp 0x808e02
test eax, eax
js 0x84a041
cmp eax, 0xa
ja case.default.0x848009
jmp dword [eax*4 + 0x84e761]
cmp dword [ebp - 0x3c], 0
jne case.0x808896.157
mov edi, dword [ebp - 8]
mov ecx, 1
cmp dword [ebp - 0xc], ecx
jge 0x849949
mov ecx, dword [ebp - 0xc]
jmp 0x808e10
cmp edi, dword [esi + 0x7c]
jae 0x84a9d7
movzx eax, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov dword [ebp - 8], edi
je 0x849973
and eax, 0xfc00
cmp eax, 0xd800
jne 0x849973
add edi, 2
mov dword [ebp - 8], edi
inc ecx
cmp ecx, dword [ebp - 0xc]
jle 0x849949
mov ecx, dword [ebp - 0xc]
jmp 0x84a1c9
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0x808e10
cmp edi, dword [esi + 0x7c]
jae 0x84a9d7
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
mov dword [ebp - 8], edi
je 0x8499dc
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x8499dc
movzx ecx, word [edi]
and edx, 0x3ff
and ecx, 0x3ff
shl edx, 0xa
add edi, 2
or ecx, edx
mov dword [ebp - 8], edi
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x8bff40]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x8b1c40]
movzx eax, byte [eax*8 + 0x8af3f1]
cmp eax, 9
je 0x849a13
cmp eax, 5
je 0x849a13
cmp eax, 8
je 0x849a13
xor eax, eax
jmp 0x849a18
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x808896.157
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, ecx
jle 0x849994
jmp 0x84a1c6
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0x808e10
cmp edi, dword [esi + 0x7c]
jae 0x84a9d7
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
mov dword [ebp - 8], edi
je 0x849a93
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x849a93
movzx ecx, word [edi]
and edx, 0x3ff
and ecx, 0x3ff
shl edx, 0xa
add edi, 2
or ecx, edx
mov dword [ebp - 8], edi
add ecx, 0x10000
mov edx, dword [ebp - 0x40]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, byte [eax + 0x8bff40]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x8b1c40]
movzx eax, byte [eax*8 + 0x8af3f1]
cmp dword [eax*4 + 0x8c5350], edx
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0x808896.157
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, ecx
jle 0x849a4b
jmp 0x84a1c6
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0x808e10
cmp edi, dword [esi + 0x7c]
jae 0x84a9d7
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
mov dword [ebp - 8], edi
je 0x849b41
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x849b41
movzx ecx, word [edi]
and edx, 0x3ff
and ecx, 0x3ff
shl edx, 0xa
add edi, 2
or ecx, edx
mov dword [ebp - 8], edi
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x8bff40]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x8b1c40]
movzx eax, byte [eax*8 + 0x8af3f1]
cmp eax, dword [ebp - 0x40]
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0x808896.157
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, ecx
jle 0x849af9
jmp 0x84a1c6
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0x808e10
cmp edi, dword [esi + 0x7c]
jae 0x84a9d7
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
mov dword [ebp - 8], edi
je 0x849be8
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x849be8
movzx ecx, word [edi]
and edx, 0x3ff
and ecx, 0x3ff
shl edx, 0xa
add edi, 2
or ecx, edx
mov dword [ebp - 8], edi
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x8bff40]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x8b1c40]
movzx eax, byte [eax*8 + 0x8af3f0]
cmp eax, dword [ebp - 0x40]
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0x808896.157
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, ecx
jle 0x849ba0
jmp 0x84a1c6
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0x808e10
cmp edi, dword [esi + 0x7c]
jae 0x84a9d7
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
mov dword [ebp - 8], edi
je 0x849c8f
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x849c8f
movzx ecx, word [edi]
and edx, 0x3ff
and ecx, 0x3ff
shl edx, 0xa
add edi, 2
or ecx, edx
mov dword [ebp - 8], edi
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x8bff40]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x8b1c40]
movzx eax, byte [eax*8 + 0x8af3f1]
mov eax, dword [eax*4 + 0x8c5350]
cmp eax, 1
je 0x849cc8
cmp eax, 3
je 0x849cc8
xor eax, eax
jmp 0x849ccd
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x808896.157
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, ecx
jle 0x849c47
jmp 0x84a1c6
mov edi, dword [ebp - 8]
mov eax, 1
mov dword [ebp - 0x24], eax
cmp ecx, eax
jl 0x84a1c9
cmp edi, dword [esi + 0x7c]
jae 0x84a9d7
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov edx, ecx
mov dword [ebp - 8], edi
je 0x849d4c
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x849d49
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 edx, ecx
mov eax, dword [ebp - 0x24]
cmp ecx, 0x180e
ja 0x849d92
je 0x849e07
cmp ecx, 0x85
ja 0x849d80
je 0x849e07
cmp ecx, 9
jb case.0x849dae.8203
cmp ecx, 0xd
jbe 0x849e07
cmp ecx, 0x20
jne case.0x849dae.8203
jmp 0x849e07
cmp ecx, 0xa0
je 0x849e07
cmp ecx, 0x1680
jne case.0x849dae.8203
jmp 0x849e07
cmp ecx, 0x202f
ja 0x849db5
je 0x849e07
add ecx, 0xffffe000
cmp ecx, 0x29
ja case.0x849dae.8203
movzx eax, byte [ecx + 0x84e795]
jmp dword [eax*4 + 0x84e78d]
cmp ecx, 0x205f
je 0x849e07
cmp ecx, 0x3000
je 0x849e07
mov eax, edx
xor ecx, ecx
shr eax, 7
and edx, 0x7f
movzx eax, byte [eax + 0x8bff40]
shl eax, 7
add eax, edx
movzx eax, word [eax*2 + 0x8b1c40]
movzx eax, byte [eax*8 + 0x8af3f1]
cmp dword [eax*4 + 0x8c5350], 6
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0x808896.157
mov eax, dword [ebp - 0x24]
jmp 0x849e11
mov eax, dword [ebp - 0x24]
cmp dword [ebp - 0x3c], 0
jne case.0x808896.157
mov ecx, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0x24], eax
cmp eax, ecx
jle 0x849d00
jmp 0x84a1c6
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0x808e10
cmp edi, dword [esi + 0x7c]
jae 0x84a9d7
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov edx, ecx
mov dword [ebp - 8], edi
je 0x849e80
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x849e80
movzx edx, word [edi]
and ecx, 0x3ff
and edx, 0x3ff
shl ecx, 0xa
add edi, 2
or edx, ecx
mov dword [ebp - 8], edi
add edx, 0x10000
mov eax, edx
shr eax, 7
movzx ecx, byte [eax + 0x8bff40]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x8b1c40]
movzx eax, byte [eax*8 + 0x8af3f1]
mov eax, dword [eax*4 + 0x8c5350]
cmp eax, 1
je 0x849ec0
cmp eax, 3
je 0x849ec0
cmp edx, 0x5f
je 0x849ec0
xor eax, eax
jmp 0x849ec5
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x808896.157
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, ecx
jle 0x849e38
jmp 0x84a1c6
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0x808e10
cmp edi, dword [esi + 0x7c]
jae 0x84a9d7
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov dword [ebp - 8], edi
mov dword [ebp - 0x24], ecx
je 0x849f46
mov eax, ecx
mov dword [ebp - 0x24], ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x849f46
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 dword [ebp - 0x24], ecx
mov eax, dword [ebp - 0x40]
mov edx, dword [eax*4 + 0x8b0a70]
lea eax, [eax*4 + 0x8b0a70]
cmp dword [ebp - 0x24], edx
jb 0x849f69
lea eax, [eax + 4]
cmp ecx, edx
je 0x849f8a
mov edx, dword [eax]
cmp ecx, edx
jae 0x849f5c
cmp dword [ebp - 0x3c], 0
je case.0x808896.157
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, ecx
jle 0x849ef8
jmp 0x84a1c6
cmp dword [ebp - 0x3c], 0
jne case.0x808896.157
jmp 0x849f73
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0x808e10
cmp edi, dword [esi + 0x7c]
jae 0x84a9d7
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
mov dword [ebp - 8], edi
je 0x849ff1
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x849ff1
movzx ecx, word [edi]
and edx, 0x3ff
and ecx, 0x3ff
shl edx, 0xa
or ecx, edx
add ecx, 0x10000
add edi, 2
mov dword [ebp - 8], edi
cmp ecx, 0x24
je 0x84a01c
cmp ecx, 0x40
je 0x84a01c
cmp ecx, 0x60
je 0x84a01c
cmp ecx, 0xa0
jb 0x84a010
cmp ecx, 0xd7ff
jbe 0x84a01c
cmp ecx, 0xe000
jae 0x84a01c
xor eax, eax
jmp 0x84a021
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x808896.157
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, ecx
jle 0x849fa9
jmp 0x84a1c6
cmp edi, 0x16
jne 0x84a1d1
mov edi, dword [ebp - 8]
mov dword [ebp - 0x34], 1
cmp ecx, 1
jl 0x808e10
mov eax, dword [esi + 0x7c]
mov dword [ebp - 0x1c], eax
cmp edi, eax
jae 0x84a9d7
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov eax, edi
mov dword [ebp - 8], edi
mov ecx, edx
mov dword [ebp - 0x24], eax
je 0x84a0b7
mov dword [ebp - 0x24], eax
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x84a0b7
movzx ecx, word [edi]
and edx, 0x3ff
add edi, 2
shl edx, 0xa
and ecx, 0x3ff
mov dword [ebp - 8], edi
mov eax, edi
or ecx, edx
mov dword [ebp - 0x24], eax
add ecx, 0x10000
mov edx, dword [ebp - 0x24]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, byte [eax + 0x8bff40]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x8b1c40]
movzx ecx, byte [eax*8 + 0x8af3f2]
mov eax, dword [esi + 0x7c]
mov dword [ebp - 0x38], ecx
cmp edx, eax
jae 0x84a18a
mov eax, edx
mov ebx, ecx
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x28], 0
mov esi, 1
movzx ecx, word [edi]
je 0x84a12e
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x84a12e
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov esi, 2
add ecx, 0x10000
mov edx, dword [ebp - 0x24]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, byte [eax + 0x8bff40]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x8b1c40]
movzx ecx, byte [eax*8 + 0x8af3f2]
mov eax, 1
shl eax, cl
test dword [ebx*4 + 0x8c21f0], eax
je 0x84a17e
mov eax, edx
mov ebx, ecx
lea edi, [eax + esi*2]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x24], edi
mov edx, edi
cmp edi, eax
jb 0x84a0f3
jmp 0x84a181
mov eax, dword [ebp - 0x1c]
mov esi, dword [ebp + 0x10]
mov ebx, dword [ebp - 0x30]
mov dword [ebp - 8], edi
cmp dword [esi + 0x8c], 0
je 0x84a1b3
cmp edx, eax
jb 0x84a1b3
cmp edx, dword [esi + 0x88]
jbe 0x84a1b3
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x84e351
mov ecx, dword [ebp - 0x34]
inc ecx
mov dword [ebp - 0x34], ecx
cmp ecx, dword [ebp - 0xc]
jle 0x84a05d
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x18]
jmp 0x808e10
cmp dword [ebp - 0x28], 0
lea eax, [edi - 6]
je 0x84a8f6
cmp eax, 0xf
ja case.default.0x848009
jmp dword [eax*4 + 0x84e7c1]
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0x84a1c9
mov ecx, dword [esi + 0x7c]
cmp edi, ecx
jae 0x84a9d7
mov edx, dword [esi + 0x18]
test edx, edx
je 0x84a22b
push dword [ebp - 0x28]
lea eax, [esi + 0x1c]
push eax
push ecx
mov ecx, edi
call fcn.00806cde
add esp, 0xc
test eax, eax
jne case.0x808896.157
jmp 0x84a257
mov edx, dword [esi + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
cmp edi, ecx
ja 0x84a257
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x84a257
cmp edx, 1
je case.0x808896.157
mov ax, word [edi + 2]
cmp ax, word [esi + 0x36]
je case.0x808896.157
cmp dword [esi + 0x8c], 0
je 0x84a291
lea eax, [edi + 2]
cmp eax, dword [esi + 0x7c]
jb 0x84a291
cmp dword [esi + 0x18], 0
jne 0x84a291
cmp dword [esi + 0x1c], 2
jne 0x84a291
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x84a291
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x84e351
mov ecx, dword [esi + 0x7c]
add edi, 2
mov dword [ebp - 8], edi
cmp edi, ecx
jae 0x84a2b9
mov ax, word [edi]
mov edx, 0xfc00
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x84a2b9
add edi, 2
mov dword [ebp - 8], edi
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, dword [ebp - 0xc]
jle 0x84a200
jmp 0x84a1c3
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x84a1c6
mov ecx, dword [esi + 0x7c]
mov eax, dword [ebp - 0xc]
cmp edi, ecx
jae 0x84a9d7
add edi, 2
mov dword [ebp - 8], edi
cmp edi, ecx
jae 0x84a31a
mov ax, word [edi]
mov dword [ebp - 0x38], 0xfc00
and ax, word [ebp - 0x38]
mov dword [ebp - 0x38], 0xdc00
cmp ax, word [ebp - 0x38]
mov eax, dword [ebp - 0xc]
jne 0x84a31a
add edi, 2
mov dword [ebp - 8], edi
inc edx
cmp edx, eax
jle 0x84a2e4
jmp 0x84a1c3
mov eax, dword [esi + 0x7c]
add ecx, ecx
mov edi, dword [ebp - 8]
sub eax, ecx
cmp edi, eax
ja case.0x808896.157
add edi, ecx
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 8], edi
jmp 0x84a1c9
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0x84a1c9
mov eax, dword [esi + 0x7c]
cmp edi, eax
jae 0x84a9d7
movzx ecx, word [edi]
add edi, 2
mov eax, ecx
mov dword [ebp - 8], edi
and eax, 0xfc00
mov edx, edi
cmp eax, 0xd800
jne 0x84a39b
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 edx, edi
cmp ecx, 0xd
ja 0x84a3ca
je 0x84a3b5
cmp ecx, 0xa
je 0x84a3eb
lea eax, [ecx - 0xb]
cmp eax, 1
ja case.0x808896.157
jmp 0x84a3e1
mov eax, dword [esi + 0x7c]
cmp edx, eax
jae 0x84a3ee
cmp word [edi], 0xa
jne 0x84a3ee
lea edi, [edx + 2]
mov dword [ebp - 8], edi
jmp 0x84a3ee
cmp ecx, 0x85
je 0x84a3e1
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x808896.157
cmp dword [esi + 0x6c], 0
jne case.0x808896.157
mov eax, dword [esi + 0x7c]
mov ecx, dword [ebp - 0x1c]
inc ecx
mov dword [ebp - 0x1c], ecx
cmp ecx, dword [ebp - 0xc]
jle 0x84a359
jmp 0x84a1c3
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x84a1c6
cmp edi, dword [esi + 0x7c]
jae 0x84a9d7
movzx ecx, word [edi]
add edi, 2
mov eax, ecx
mov dword [ebp - 8], edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x84a452
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 0x84a490
je case.0x808896.157
cmp ecx, 0xa0
ja 0x84a482
je case.0x808896.157
cmp ecx, 9
je case.0x808896.157
cmp ecx, 0x20
je case.0x808896.157
jmp 0x84a4cc
cmp ecx, 0x1680
je case.0x808896.157
jmp 0x84a4cc
cmp ecx, 0x205f
ja 0x84a4c0
je case.0x808896.157
cmp ecx, 0x2000
jb 0x84a4cc
cmp ecx, 0x200a
jbe case.0x808896.157
cmp ecx, 0x202f
je case.0x808896.157
jmp 0x84a4cc
cmp ecx, 0x3000
je case.0x808896.157
mov ecx, dword [ebp - 0xc]
inc edx
cmp edx, ecx
jle 0x84a413
jmp 0x84a1c6
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x84a1c6
cmp edi, dword [esi + 0x7c]
jae 0x84a9d7
movzx ecx, word [edi]
add edi, 2
mov eax, ecx
mov dword [ebp - 8], edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x84a52c
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 0x84a55e
je 0x84a596
cmp ecx, 0xa0
ja 0x84a550
je 0x84a596
cmp ecx, 9
je 0x84a596
cmp ecx, 0x20
jne case.0x808896.157
jmp 0x84a596
cmp ecx, 0x1680
jne case.0x808896.157
jmp 0x84a596
cmp ecx, 0x205f
ja 0x84a58a
je 0x84a596
cmp ecx, 0x2000
jb case.0x808896.157
cmp ecx, 0x200a
jbe 0x84a596
cmp ecx, 0x202f
jne case.0x808896.157
jmp 0x84a596
cmp ecx, 0x3000
jne case.0x808896.157
mov ecx, dword [ebp - 0xc]
inc edx
cmp edx, ecx
jle 0x84a4ed
jmp 0x84a1c6
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x84a1c6
cmp edi, dword [esi + 0x7c]
jae 0x84a9d7
movzx ecx, word [edi]
add edi, 2
mov eax, ecx
mov dword [ebp - 8], edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x84a5f6
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 0x84a614
je case.0x808896.157
cmp ecx, 0xa
jb 0x84a628
cmp ecx, 0xd
jbe case.0x808896.157
jmp 0x84a628
cmp ecx, 0x2028
jb 0x84a628
cmp ecx, 0x2029
jbe case.0x808896.157
mov ecx, dword [ebp - 0xc]
inc edx
cmp edx, ecx
jle 0x84a5b7
jmp 0x84a1c6
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x84a1c6
cmp edi, dword [esi + 0x7c]
jae 0x84a9d7
movzx ecx, word [edi]
add edi, 2
mov eax, ecx
mov dword [ebp - 8], edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x84a684
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 0x84a69c
je 0x84a6ab
lea eax, [ecx - 0xa]
cmp eax, 3
ja case.0x808896.157
jmp 0x84a6ab
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x808896.157
mov ecx, dword [ebp - 0xc]
inc edx
cmp edx, ecx
jle 0x84a645
jmp 0x84a1c6
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0x84a1c9
cmp edi, dword [esi + 0x7c]
jae 0x84a9d7
movzx ecx, word [edi]
add edi, 2
mov eax, ecx
mov dword [ebp - 8], edi
and eax, 0xfc00
mov edx, ecx
cmp eax, 0xd800
jne 0x84a70e
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 edx, ecx
cmp edx, 0x80
jae 0x84a723
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
jne case.0x808896.157
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, ecx
jle 0x84a6cb
jmp 0x84a1c6
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x84a1c6
cmp edi, dword [esi + 0x7c]
jae 0x84a9d7
movzx ecx, word [edi]
cmp ecx, 0x80
jae case.0x808896.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
je case.0x808896.157
mov ecx, dword [ebp - 0xc]
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, ecx
jle 0x84a746
jmp 0x84a1c6
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0x84a1c9
mov edx, dword [esi + 0x7c]
mov eax, dword [ebp - 0xc]
cmp edi, edx
jae 0x84a9d7
movzx ecx, word [edi]
cmp ecx, 0x80
jae 0x84a7ba
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
jne case.0x808896.157
mov eax, dword [ebp - 0xc]
add edi, 2
mov dword [ebp - 8], edi
cmp edi, edx
jae 0x84a7e2
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
mov eax, dword [ebp - 0xc]
jne 0x84a7e2
add edi, 2
mov dword [ebp - 8], edi
mov ecx, dword [ebp - 0x1c]
inc ecx
mov dword [ebp - 0x1c], ecx
cmp ecx, eax
jle 0x84a797
jmp 0x84a1c3
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x84a1c6
cmp edi, dword [esi + 0x7c]
jae 0x84a9d7
movzx ecx, word [edi]
cmp ecx, 0x80
jae case.0x808896.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
je case.0x808896.157
mov ecx, dword [ebp - 0xc]
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, ecx
jle 0x84a802
jmp 0x84a1c6
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0x84a1c9
mov edx, dword [esi + 0x7c]
mov eax, dword [ebp - 0xc]
cmp edi, edx
jae 0x84a9d7
movzx ecx, word [edi]
cmp ecx, 0x80
jae 0x84a876
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
jne case.0x808896.157
mov eax, dword [ebp - 0xc]
add edi, 2
mov dword [ebp - 8], edi
cmp edi, edx
jae 0x84a89e
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
mov eax, dword [ebp - 0xc]
jne 0x84a89e
add edi, 2
mov dword [ebp - 8], edi
mov ecx, dword [ebp - 0x1c]
inc ecx
mov dword [ebp - 0x1c], ecx
cmp ecx, eax
jle 0x84a853
jmp 0x84a1c3
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x84a1c6
cmp edi, dword [esi + 0x7c]
jae 0x84a9d7
movzx ecx, word [edi]
cmp ecx, 0x80
jae case.0x808896.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je case.0x808896.157
mov ecx, dword [ebp - 0xc]
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, ecx
jle 0x84a8be
jmp 0x84a1c6
cmp eax, 0xf
ja case.default.0x848009
jmp dword [eax*4 + 0x84e801]
mov edi, dword [ebp - 8]
mov dword [ebp - 0x1c], 1
cmp ecx, 1
jl 0x84a1c9
mov ecx, dword [esi + 0x7c]
cmp edi, ecx
jae 0x84a9d7
mov edx, dword [esi + 0x18]
test edx, edx
je 0x84a946
lea eax, [esi + 0x1c]
push 0
push eax
push ecx
mov ecx, edi
call fcn.00806cde
add esp, 0xc
test eax, eax
jne case.0x808896.157
jmp 0x84a972
mov edx, dword [esi + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
cmp edi, ecx
ja 0x84a972
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x84a972
cmp edx, 1
je case.0x808896.157
mov ax, word [edi + 2]
cmp ax, word [esi + 0x36]
je case.0x808896.157
cmp dword [esi + 0x8c], 0
je 0x84a9ac
lea eax, [edi + 2]
cmp eax, dword [esi + 0x7c]
jb 0x84a9ac
cmp dword [esi + 0x18], 0
jne 0x84a9ac
cmp dword [esi + 0x1c], 2
jne 0x84a9ac
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x84a9ac
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x84e351
mov eax, dword [ebp - 0x1c]
add edi, 2
mov ecx, dword [ebp - 0xc]
inc eax
mov dword [ebp - 8], edi
mov dword [ebp - 0x1c], eax
cmp eax, ecx
jle 0x84a919
jmp 0x84a1c6
mov eax, dword [esi + 0x7c]
add ecx, ecx
mov edi, dword [ebp - 8]
sub eax, ecx
cmp edi, eax
jbe 0x84aa17
cmp dword [esi + 0x8c], 0
je case.0x808896.157
cmp edi, dword [esi + 0x88]
jbe case.0x808896.157
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle case.0x808896.157
jmp 0x84e351
mov eax, dword [esi + 0x7c]
add ecx, ecx
mov edi, dword [ebp - 8]
sub eax, ecx
cmp edi, eax
ja 0x84a9d7
add edi, ecx
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 8], edi
jmp 0x84a1c9
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x84a1c6
mov ecx, dword [esi + 0x7c]
cmp edi, ecx
jae 0x84a9d7
movzx eax, word [edi]
add edi, 2
mov dword [ebp - 8], edi
cmp eax, 0xd
ja 0x84aa70
je 0x84aa5e
cmp eax, 0xa
je 0x84aa8f
add eax, 0xfffffff5
cmp eax, 1
ja case.0x808896.157
jmp 0x84aa85
cmp edi, ecx
jae 0x84aa8f
cmp word [edi], 0xa
jne 0x84aa8f
add edi, 2
mov dword [ebp - 8], edi
jmp 0x84aa8f
cmp eax, 0x85
je 0x84aa85
add eax, 0xffffdfd8
cmp eax, 1
ja case.0x808896.157
cmp dword [esi + 0x6c], 0
jne case.0x808896.157
inc edx
cmp edx, dword [ebp - 0xc]
jle 0x84aa37
jmp 0x84a1c3
mov edi, dword [ebp - 8]
mov ecx, 1
cmp dword [ebp - 0xc], ecx
jl 0x849979
cmp edi, dword [esi + 0x7c]
jae 0x84a9d7
movzx eax, word [edi]
add edi, 2
mov dword [ebp - 8], edi
cmp eax, 0x180e
ja 0x84aaf8
je case.0x808896.157
cmp eax, 0xa0
ja 0x84aaeb
je case.0x808896.157
cmp eax, 9
je case.0x808896.157
cmp eax, 0x20
je case.0x808896.157
jmp 0x84ab2f
cmp eax, 0x1680
je case.0x808896.157
jmp 0x84ab2f
cmp eax, 0x205f
ja 0x84ab24
je case.0x808896.157
cmp eax, 0x2000
jb 0x84ab2f
cmp eax, 0x200a
jbe case.0x808896.157
cmp eax, 0x202f
je case.0x808896.157
jmp 0x84ab2f
cmp eax, 0x3000
je case.0x808896.157
inc ecx
cmp ecx, dword [ebp - 0xc]
jle 0x84aaab
mov ecx, dword [ebp - 0xc]
jmp 0x84a1c9
mov edi, dword [ebp - 8]
mov ecx, 1
cmp dword [ebp - 0xc], ecx
jl 0x849979
cmp edi, dword [esi + 0x7c]
jae 0x84a9d7
movzx eax, word [edi]
add edi, 2
mov dword [ebp - 8], edi
cmp eax, 0x180e
ja 0x84ab93
je 0x84abc6
cmp eax, 0xa0
ja 0x84ab86
je 0x84abc6
cmp eax, 9
je 0x84abc6
cmp eax, 0x20
jne case.0x808896.157
jmp 0x84abc6
cmp eax, 0x1680
jne case.0x808896.157
jmp 0x84abc6
cmp eax, 0x205f
ja 0x84abbb
je 0x84abc6
cmp eax, 0x2000
jb case.0x808896.157
cmp eax, 0x200a
jbe 0x84abc6
cmp eax, 0x202f
jne case.0x808896.157
jmp 0x84abc6
cmp eax, 0x3000
jne case.0x808896.157
inc ecx
cmp ecx, dword [ebp - 0xc]
jle 0x84ab52
mov ecx, dword [ebp - 0xc]
jmp 0x84a1c9
mov edi, dword [ebp - 8]
mov ecx, 1
cmp dword [ebp - 0xc], ecx
jl 0x849979
cmp edi, dword [esi + 0x7c]
jae 0x84a9d7
movzx eax, word [edi]
add edi, 2
mov dword [ebp - 8], edi
cmp eax, 0x85
ja 0x84ac14
je case.0x808896.157
cmp eax, 0xa
jb 0x84ac26
cmp eax, 0xd
jbe case.0x808896.157
jmp 0x84ac26
cmp eax, 0x2028
jb 0x84ac26
cmp eax, 0x2029
jbe case.0x808896.157
inc ecx
cmp ecx, dword [ebp - 0xc]
jle 0x84abe5
mov ecx, dword [ebp - 0xc]
jmp 0x84a1c9
mov edi, dword [ebp - 8]
mov ecx, 1
cmp dword [ebp - 0xc], ecx
jl 0x849979
cmp edi, dword [esi + 0x7c]
jae 0x84a9d7
movzx eax, word [edi]
add edi, 2
mov dword [ebp - 8], edi
cmp eax, 0x85
ja 0x84ac6e
je 0x84ac7c
add eax, 0xfffffff6
cmp eax, 3
ja case.0x808896.157
jmp 0x84ac7c
add eax, 0xffffdfd8
cmp eax, 1
ja case.0x808896.157
inc ecx
cmp ecx, dword [ebp - 0xc]
jle 0x84ac45
mov ecx, dword [ebp - 0xc]
jmp 0x84a1c9
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x84a1c6
cmp edi, dword [esi + 0x7c]
jae 0x84a9d7
movzx eax, word [edi]
mov dword [ebp - 0x38], 0xff
cmp ax, word [ebp - 0x38]
ja 0x84acc5
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
jne case.0x808896.157
mov ecx, dword [ebp - 0xc]
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, ecx
jle 0x84ac9a
jmp 0x84a1c6
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x84a1c6
cmp edi, dword [esi + 0x7c]
jae 0x84a9d7
movzx eax, word [edi]
mov ecx, 0xff
cmp ax, cx
ja case.0x808896.157
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
je case.0x808896.157
mov ecx, dword [ebp - 0xc]
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, ecx
jle 0x84ace5
jmp 0x84a1c6
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x84a1c6
cmp edi, dword [esi + 0x7c]
jae 0x84a9d7
movzx eax, word [edi]
mov dword [ebp - 0x38], 0xff
cmp ax, word [ebp - 0x38]
ja 0x84ad5c
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
jne case.0x808896.157
mov ecx, dword [ebp - 0xc]
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, ecx
jle 0x84ad31
jmp 0x84a1c6
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x84a1c6
cmp edi, dword [esi + 0x7c]
jae 0x84a9d7
movzx eax, word [edi]
mov ecx, 0xff
cmp ax, cx
ja case.0x808896.157
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
je case.0x808896.157
mov ecx, dword [ebp - 0xc]
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, ecx
jle 0x84ad7c
jmp 0x84a1c6
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x84a1c6
cmp edi, dword [esi + 0x7c]
jae 0x84a9d7
movzx eax, word [edi]
mov dword [ebp - 0x38], 0xff
cmp ax, word [ebp - 0x38]
ja 0x84adf3
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
jne case.0x808896.157
mov ecx, dword [ebp - 0xc]
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, ecx
jle 0x84adc8
jmp 0x84a1c6
mov edi, dword [ebp - 8]
mov edx, 1
cmp ecx, edx
jl 0x84a1c6
cmp edi, dword [esi + 0x7c]
jae 0x84a9d7
movzx eax, word [edi]
mov ecx, 0xff
cmp ax, cx
ja case.0x808896.157
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je case.0x808896.157
mov ecx, dword [ebp - 0xc]
add edi, 2
inc edx
mov dword [ebp - 8], edi
cmp edx, ecx
jle 0x84ae13
jmp 0x84a1c6
mov edx, edi
mov dword [ebp - 0x10], edx
test eax, eax
js 0x84b6c6
cmp eax, 0xa
ja case.default.0x848009
jmp dword [eax*4 + 0x84e841]
mov eax, dword [ebp - 0x14]
cmp ecx, eax
jge 0x84b661
cmp edi, dword [esi + 0x7c]
jae 0x84aeca
cmp dword [ebp - 0x28], 0
mov ecx, 1
je 0x84aeaa
mov ax, word [edi]
mov dword [ebp - 0x38], 0xfc00
and ax, word [ebp - 0x38]
mov dword [ebp - 0x38], 0xd800
cmp ax, word [ebp - 0x38]
mov eax, dword [ebp - 0x14]
jne 0x84aeaa
mov ecx, 2
cmp dword [ebp - 0x3c], 0
jne 0x84b661
lea edi, [edi + ecx*2]
mov ecx, dword [ebp - 0xc]
inc ecx
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], ecx
cmp ecx, eax
jl 0x84ae77
jmp 0x84b661
cmp dword [esi + 0x8c], 0
je 0x84b661
cmp edi, dword [esi + 0x88]
jbe 0x84b661
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle 0x84b661
jmp 0x84e351
cmp ecx, dword [ebp - 0x14]
jge 0x84b661
cmp edi, dword [esi + 0x7c]
jae 0x84afba
cmp dword [ebp - 0x28], 0
movzx edx, word [edi]
mov ecx, edx
mov dword [ebp - 0x38], 1
je 0x84af55
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x84af50
movzx ecx, word [edi + 2]
and edx, 0x3ff
shl edx, 0xa
and ecx, 0x3ff
or ecx, edx
mov edx, 2
add ecx, 0x10000
jmp 0x84af5a
mov edx, dword [ebp - 0x38]
jmp 0x84af5a
mov edx, 1
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x8bff40]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x8b1c40]
movzx eax, byte [eax*8 + 0x8af3f1]
cmp eax, 9
je 0x84af91
cmp eax, 5
je 0x84af91
cmp eax, 8
je 0x84af91
xor eax, eax
jmp 0x84af96
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je 0x84b65e
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 - 0x14]
jl 0x84af05
jmp 0x84b65e
cmp dword [esi + 0x8c], 0
je 0x84b65e
cmp edi, dword [esi + 0x88]
jbe 0x84b65e
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle 0x84b65e
jmp 0x84e351
cmp ecx, dword [ebp - 0x14]
jge 0x84b661
cmp edi, dword [esi + 0x7c]
jae 0x84afba
cmp dword [ebp - 0x28], 0
movzx edx, word [edi]
mov ecx, edx
mov dword [ebp - 0x38], 1
je 0x84b041
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x84b03c
movzx ecx, word [edi + 2]
and edx, 0x3ff
shl edx, 0xa
and ecx, 0x3ff
or ecx, edx
mov edx, 2
add ecx, 0x10000
jmp 0x84b046
mov edx, dword [ebp - 0x38]
jmp 0x84b046
mov edx, 1
mov esi, dword [ebp - 0x40]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, byte [eax + 0x8bff40]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x8b1c40]
movzx eax, byte [eax*8 + 0x8af3f1]
cmp dword [eax*4 + 0x8c5350], esi
mov esi, dword [ebp + 0x10]
sete cl
cmp ecx, dword [ebp - 0x3c]
je 0x84b65e
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 - 0x14]
jl 0x84aff5
jmp 0x84b65e
cmp ecx, dword [ebp - 0x14]
jge 0x84b661
cmp edi, dword [esi + 0x7c]
jae 0x84afba
cmp dword [ebp - 0x28], 0
movzx edx, word [edi]
mov ecx, edx
mov dword [ebp - 0x38], 1
je 0x84b0f9
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x84b0f4
movzx ecx, word [edi + 2]
and edx, 0x3ff
shl edx, 0xa
and ecx, 0x3ff
or ecx, edx
mov edx, 2
add ecx, 0x10000
jmp 0x84b0fe
mov edx, dword [ebp - 0x38]
jmp 0x84b0fe
mov edx, 1
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x8bff40]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x8b1c40]
movzx eax, byte [eax*8 + 0x8af3f1]
cmp eax, dword [ebp - 0x40]
sete cl
cmp ecx, dword [ebp - 0x3c]
je 0x84b65e
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 - 0x14]
jl 0x84b0a9
jmp 0x84b65e
cmp ecx, dword [ebp - 0x14]
jge 0x84b661
cmp edi, dword [esi + 0x7c]
jae 0x84afba
cmp dword [ebp - 0x28], 0
movzx edx, word [edi]
mov ecx, edx
mov dword [ebp - 0x38], 1
je 0x84b1a7
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x84b1a2
movzx ecx, word [edi + 2]
and edx, 0x3ff
shl edx, 0xa
and ecx, 0x3ff
or ecx, edx
mov edx, 2
add ecx, 0x10000
jmp 0x84b1ac
mov edx, dword [ebp - 0x38]
jmp 0x84b1ac
mov edx, 1
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x8bff40]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x8b1c40]
movzx eax, byte [eax*8 + 0x8af3f0]
cmp eax, dword [ebp - 0x40]
sete cl
cmp ecx, dword [ebp - 0x3c]
je 0x84b65e
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 - 0x14]
jl 0x84b157
jmp 0x84b65e
cmp ecx, dword [ebp - 0x14]
jge 0x84b661
cmp edi, dword [esi + 0x7c]
jae 0x84afba
cmp dword [ebp - 0x28], 0
movzx edx, word [edi]
mov ecx, edx
mov dword [ebp - 0x38], 1
je 0x84b255
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x84b250
movzx ecx, word [edi + 2]
and edx, 0x3ff
shl edx, 0xa
and ecx, 0x3ff
or ecx, edx
mov edx, 2
add ecx, 0x10000
jmp 0x84b25a
mov edx, dword [ebp - 0x38]
jmp 0x84b25a
mov edx, 1
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x8bff40]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x8b1c40]
movzx eax, byte [eax*8 + 0x8af3f1]
mov eax, dword [eax*4 + 0x8c5350]
cmp eax, 1
je 0x84b293
cmp eax, 3
je 0x84b293
xor eax, eax
jmp 0x84b298
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je 0x84b65e
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 - 0x14]
jl 0x84b205
jmp 0x84b65e
cmp ecx, dword [ebp - 0x14]
jge 0x84b661
mov eax, 1
mov dword [ebp - 0x24], eax
cmp edi, dword [esi + 0x7c]
jae 0x84b3f8
cmp dword [ebp - 0x28], 0
movzx ecx, word [edi]
mov edx, ecx
je 0x84b318
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x84b315
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 - 0x24], eax
mov edx, ecx
jmp 0x84b318
mov eax, dword [ebp - 0x24]
cmp ecx, 0x180e
ja 0x84b35e
je 0x84b3d3
cmp ecx, 0x85
ja 0x84b34c
je 0x84b3d3
cmp ecx, 9
jb case.0x84b37a.8203
cmp ecx, 0xd
jbe 0x84b3d3
cmp ecx, 0x20
jne case.0x84b37a.8203
jmp 0x84b3d3
cmp ecx, 0xa0
je 0x84b3d3
cmp ecx, 0x1680
jne case.0x84b37a.8203
jmp 0x84b3d3
cmp ecx, 0x202f
ja 0x84b381
je 0x84b3d3
add ecx, 0xffffe000
cmp ecx, 0x29
ja case.0x84b37a.8203
movzx eax, byte [ecx + 0x84e875]
jmp dword [eax*4 + 0x84e86d]
cmp ecx, 0x205f
je 0x84b3d3
cmp ecx, 0x3000
je 0x84b3d3
mov eax, edx
xor ecx, ecx
shr eax, 7
and edx, 0x7f
movzx eax, byte [eax + 0x8bff40]
shl eax, 7
add eax, edx
movzx eax, word [eax*2 + 0x8b1c40]
movzx eax, byte [eax*8 + 0x8af3f1]
cmp dword [eax*4 + 0x8c5350], 6
sete cl
cmp ecx, dword [ebp - 0x3c]
je 0x84b65e
mov eax, dword [ebp - 0x24]
jmp 0x84b3dd
mov eax, dword [ebp - 0x24]
cmp dword [ebp - 0x3c], 0
jne 0x84b65e
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 - 0x14]
jl 0x84b2c5
jmp 0x84b65e
cmp dword [esi + 0x8c], 0
je 0x84b65e
cmp edi, dword [esi + 0x88]
jbe 0x84b65e
mov dword [esi + 0x68], eax
cmp dword [esi + 0x8c], eax
jle 0x84b65e
jmp 0x84e351
cmp ecx, dword [ebp - 0x14]
jge 0x84b661
cmp edi, dword [esi + 0x7c]
jae 0x84afba
cmp dword [ebp - 0x28], 0
movzx ecx, word [edi]
mov edx, ecx
mov dword [ebp - 0x1c], 1
je 0x84b479
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x84b479
movzx edx, word [edi + 2]
and ecx, 0x3ff
and edx, 0x3ff
shl ecx, 0xa
or edx, ecx
mov dword [ebp - 0x1c], 2
add edx, 0x10000
mov eax, edx
shr eax, 7
movzx ecx, byte [eax + 0x8bff40]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x8b1c40]
movzx eax, byte [eax*8 + 0x8af3f1]
mov eax, dword [eax*4 + 0x8c5350]
cmp eax, 1
je 0x84b4b9
cmp eax, 3
je 0x84b4b9
cmp edx, 0x5f
je 0x84b4b9
xor eax, eax
jmp 0x84b4be
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je 0x84b65e
mov eax, dword [ebp - 0x1c]
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 - 0x14]
jl 0x84b42e
jmp 0x84b65e
cmp ecx, dword [ebp - 0x14]
jge 0x84b661
mov dword [ebp - 0x1c], 1
cmp edi, dword [esi + 0x7c]
jae 0x84afba
cmp dword [ebp - 0x28], 0
movzx ecx, word [edi]
mov dword [ebp - 0x24], ecx
je 0x84b53f
mov eax, ecx
mov dword [ebp - 0x24], ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x84b53f
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov dword [ebp - 0x1c], 2
add ecx, 0x10000
mov dword [ebp - 0x24], ecx
mov eax, dword [ebp - 0x40]
mov edx, dword [eax*4 + 0x8b0a70]
lea eax, [eax*4 + 0x8b0a70]
cmp dword [ebp - 0x24], edx
jb 0x84b562
lea eax, [eax + 4]
cmp ecx, edx
je 0x84b58a
mov edx, dword [eax]
cmp ecx, edx
jae 0x84b555
cmp dword [ebp - 0x3c], 0
je 0x84b65e
mov eax, dword [ebp - 0x1c]
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 - 0x14]
jl 0x84b4ee
jmp 0x84b65e
cmp dword [ebp - 0x3c], 0
je 0x84b56c
jmp 0x84b65e
cmp ecx, dword [ebp - 0x14]
jge 0x84b661
mov dword [ebp - 0x1c], 1
cmp edi, dword [esi + 0x7c]
jae 0x84b639
cmp dword [ebp - 0x28], 0
movzx edx, word [edi]
mov ecx, edx
je 0x84b5e9
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x84b5e9
movzx ecx, word [edi + 2]
and edx, 0x3ff
and ecx, 0x3ff
shl edx, 0xa
or ecx, edx
mov dword [ebp - 0x1c], 2
add ecx, 0x10000
cmp ecx, 0x24
je 0x84b614
cmp ecx, 0x40
je 0x84b614
cmp ecx, 0x60
je 0x84b614
cmp ecx, 0xa0
jb 0x84b608
cmp ecx, 0xd7ff
jbe 0x84b614
cmp ecx, 0xe000
jae 0x84b614
xor eax, eax
jmp 0x84b619
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je 0x84b65e
mov eax, dword [ebp - 0x1c]
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 - 0x14]
jl 0x84b59e
jmp 0x84b65e
cmp dword [esi + 0x8c], 0
je 0x84b65e
cmp edi, dword [esi + 0x88]
jbe 0x84b65e
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x84e351
mov edx, dword [ebp - 0x10]
cmp dword [ebp - 0x2c], 0
jne 0x808b79
cmp edi, edx
jbe 0x808992
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.00808810
add esp, 0x14
test eax, eax
jne 0x8089db
add edi, 0xfffffffe
mov dword [ebp - 8], edi
cmp dword [ebp - 0x28], eax
je 0x84b6bc
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x84b6bc
add edi, 0xfffffffe
mov dword [ebp - 8], edi
cmp edi, dword [ebp - 0x10]
ja 0x84b673
jmp 0x808992
mov eax, dword [ebp - 0x20]
cmp eax, 0x16
jne 0x84b8b3
cmp ecx, dword [ebp - 0x14]
jge 0x84b867
mov eax, dword [esi + 0x7c]
mov dword [ebp - 0x1c], eax
cmp edi, eax
jae 0x84b83f
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
mov dword [ebp - 8], edi
mov dword [ebp - 0x24], edi
je 0x84b731
mov eax, edx
mov dword [ebp - 0x24], edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x84b731
movzx ecx, word [edi]
and edx, 0x3ff
and ecx, 0x3ff
shl edx, 0xa
add edi, 2
or ecx, edx
mov dword [ebp - 8], edi
add ecx, 0x10000
mov dword [ebp - 0x24], edi
mov edx, dword [ebp - 0x24]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, byte [eax + 0x8bff40]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x8b1c40]
movzx ecx, byte [eax*8 + 0x8af3f2]
mov eax, dword [esi + 0x7c]
mov dword [ebp - 0x38], ecx
cmp edx, eax
jae 0x84b804
mov eax, edx
mov ebx, ecx
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x28], 0
mov esi, 1
movzx ecx, word [edi]
je 0x84b7a8
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x84b7a8
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov esi, 2
add ecx, 0x10000
mov edx, dword [ebp - 0x24]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, byte [eax + 0x8bff40]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x8b1c40]
movzx ecx, byte [eax*8 + 0x8af3f2]
mov eax, 1
shl eax, cl
test dword [ebx*4 + 0x8c21f0], eax
je 0x84b7f8
mov eax, edx
mov ebx, ecx
lea edi, [eax + esi*2]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x24], edi
mov edx, edi
cmp edi, eax
jb 0x84b76d
jmp 0x84b7fb
mov eax, dword [ebp - 0x1c]
mov esi, dword [ebp + 0x10]
mov ebx, dword [ebp - 0x30]
mov dword [ebp - 8], edi
cmp dword [esi + 0x8c], 0
je 0x84b82d
cmp edx, eax
jb 0x84b82d
cmp edx, dword [esi + 0x88]
jbe 0x84b82d
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x84e351
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jl 0x84b6db
jmp 0x84b864
cmp dword [esi + 0x8c], 0
je 0x84b864
cmp edi, dword [esi + 0x88]
jbe 0x84b864
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x84e351
mov edx, dword [ebp - 0x10]
cmp dword [ebp - 0x2c], 0
jne 0x808b79
cmp edi, edx
jbe 0x808992
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.00808810
add esp, 0x14
test eax, eax
jne 0x8089db
add edi, 0xfffffffe
mov dword [ebp - 8], edi
cmp dword [ebp - 0x28], eax
jne 0x84c77e
movzx ecx, word [edi]
jmp 0x84c7c4
add eax, 0xfffffffa
cmp dword [ebp - 0x28], 0
je 0x84c0d7
cmp eax, 0xf
ja case.default.0x848009
jmp dword [eax*4 + 0x84e8a1]
cmp ecx, dword [ebp - 0x14]
jge 0x84b9da
mov eax, dword [esi + 0x7c]
mov dword [ebp - 0x24], eax
cmp edi, eax
jae 0x84b9b2
mov edx, dword [esi + 0x18]
test edx, edx
je 0x84b909
push dword [ebp - 0x28]
lea ecx, [esi + 0x1c]
push ecx
push eax
mov ecx, edi
call fcn.00806cde
add esp, 0xc
test eax, eax
je 0x84b938
jmp 0x84b9d7
mov ecx, dword [esi + 0x1c]
mov edx, dword [ebp - 0x24]
lea eax, [ecx + ecx]
sub edx, eax
cmp edi, edx
ja 0x84b938
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x84b938
cmp ecx, 1
je 0x84b9d7
mov ax, word [edi + 2]
cmp ax, word [esi + 0x36]
je 0x84b9d7
cmp dword [esi + 0x8c], 0
je 0x84b972
lea eax, [edi + 2]
cmp eax, dword [esi + 0x7c]
jb 0x84b972
cmp dword [esi + 0x18], 0
jne 0x84b972
cmp dword [esi + 0x1c], 2
jne 0x84b972
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x84b972
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x84e351
mov eax, dword [esi + 0x7c]
add edi, 2
mov dword [ebp - 8], edi
mov dword [ebp - 0x24], eax
cmp edi, eax
jae 0x84b9a0
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
mov eax, dword [ebp - 0x24]
jne 0x84b9a0
add edi, 2
mov dword [ebp - 8], edi
mov ecx, dword [ebp - 0xc]
inc ecx
mov dword [ebp - 0xc], ecx
cmp ecx, dword [ebp - 0x14]
jl 0x84b8df
jmp 0x84b9d7
cmp dword [esi + 0x8c], 0
je 0x84b9d7
cmp edi, dword [esi + 0x88]
jbe 0x84b9d7
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x84e351
mov edx, dword [ebp - 0x10]
cmp dword [ebp - 0x2c], 0
jne 0x808b79
cmp edi, edx
jbe 0x808992
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.00808810
add esp, 0x14
test eax, eax
jne 0x8089db
mov ax, word [edi - 2]
add edi, 0xfffffffe
mov edx, 0xfc00
mov dword [ebp - 8], edi
and ax, dx
mov ecx, edi
mov edx, 0xdc00
cmp ax, dx
jne 0x84ba35
add edi, 0xfffffffe
mov dword [ebp - 8], edi
mov ecx, edi
cmp dword [ebp - 0x20], 0x11
mov eax, dword [ebp - 0x10]
jne 0x84ba55
cmp ecx, eax
jbe 0x84ba55
cmp word [edi], 0xa
jne 0x84ba55
cmp word [edi - 2], 0xd
jne 0x84ba55
lea edi, [ecx - 2]
mov dword [ebp - 8], edi
cmp edi, eax
ja 0x84b9ec
jmp 0x808992
mov eax, dword [ebp - 0x14]
cmp eax, 0x7fffffff
jge 0x84bab6
cmp ecx, eax
jge 0x84b9da
mov ecx, dword [esi + 0x7c]
mov eax, dword [ebp - 0xc]
cmp edi, ecx
jae 0x84babc
add edi, 2
mov dword [ebp - 8], edi
cmp edi, ecx
jae 0x84baa8
mov ax, word [edi]
mov dword [ebp - 0x38], 0xfc00
and ax, word [ebp - 0x38]
mov dword [ebp - 0x38], 0xdc00
cmp ax, word [ebp - 0x38]
mov eax, dword [ebp - 0xc]
jne 0x84baa8
add edi, 2
mov dword [ebp - 8], edi
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jl 0x84ba76
jmp 0x84b9da
mov edi, dword [esi + 0x7c]
mov dword [ebp - 8], edi
cmp dword [esi + 0x8c], 0
je 0x84b9da
cmp edi, dword [esi + 0x88]
jbe 0x84b9da
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle 0x84b9da
jmp 0x84e351
sub dword [ebp - 0x14], ecx
mov ecx, dword [esi + 0x7c]
mov eax, ecx
sub eax, edi
sar eax, 1
cmp dword [ebp - 0x14], eax
jbe 0x84bb36
cmp dword [esi + 0x8c], 0
mov edi, ecx
mov dword [ebp - 8], edi
je 0x84b9da
cmp ecx, dword [esi + 0x88]
jbe 0x84b9da
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle 0x84b9da
jmp 0x84e351
mov eax, dword [ebp - 0x14]
lea edi, [edi + eax*2]
mov dword [ebp - 8], edi
jmp 0x84b9da
cmp ecx, dword [ebp - 0x14]
jge 0x84b9da
mov eax, dword [esi + 0x7c]
cmp edi, eax
jae 0x84b9b2
movzx ecx, word [edi]
mov edx, 1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x84bb8d
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 0x84bbae
mov eax, dword [esi + 0x7c]
add edi, 2
mov dword [ebp - 8], edi
cmp edi, eax
jae 0x84b9d7
cmp word [edi], 0xa
jne 0x84bbec
add edi, 2
jmp 0x84bbe9
cmp ecx, 0xa
je 0x84bbe3
cmp dword [esi + 0x6c], 0
jne 0x84b9d7
cmp ecx, 0xb
je 0x84bbe3
cmp ecx, 0xc
je 0x84bbe3
cmp ecx, 0x85
je 0x84bbe3
cmp ecx, 0x2028
je 0x84bbe3
cmp ecx, 0x2029
jne 0x84b9d7
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 - 0x14]
jl 0x84bb50
jmp 0x84b9d7
cmp ecx, dword [ebp - 0x14]
jge 0x84b9da
mov edx, 1
cmp edi, dword [esi + 0x7c]
jae 0x84bcd4
movzx ecx, word [edi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x84bc48
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 0x84bca4
je 0x84bc66
cmp ecx, 0xa0
ja 0x84bc9a
je 0x84bc66
cmp ecx, 9
je 0x84bc66
cmp ecx, 0x20
jne 0x84bcd0
mov ecx, 1
mov esi, dword [ebp + 0x10]
xor eax, eax
cmp dword [ebp - 0x20], 0x12
sete al
cmp ecx, eax
je 0x84b9d7
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 - 0x14]
jl 0x84bc0a
jmp 0x84b9d7
cmp ecx, 0x1680
jne 0x84bcd0
jmp 0x84bc66
cmp ecx, 0x205f
ja 0x84bcc8
je 0x84bc66
cmp ecx, 0x2000
jb 0x84bcd0
cmp ecx, 0x200a
jbe 0x84bc66
cmp ecx, 0x202f
jne 0x84bcd0
jmp 0x84bc66
cmp ecx, 0x3000
je 0x84bc66
xor ecx, ecx
jmp 0x84bc6b
cmp dword [esi + 0x8c], 0
je 0x84b9d7
cmp edi, dword [esi + 0x88]
jbe 0x84b9d7
mov dword [esi + 0x68], edx
cmp dword [esi + 0x8c], edx
jmp 0x84b9d1
cmp ecx, dword [ebp - 0x14]
jge 0x84b9da
mov edx, 1
cmp edi, dword [esi + 0x7c]
jae 0x84bcd4
movzx ecx, word [edi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x84bd3e
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 0x84bd7f
je 0x84bd8a
cmp ecx, 0xa
jb 0x84bd52
cmp ecx, 0xd
jbe 0x84bd8a
xor ecx, ecx
mov esi, dword [ebp + 0x10]
xor eax, eax
cmp dword [ebp - 0x20], 0x14
sete al
cmp ecx, eax
je 0x84b9d7
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 - 0x14]
jl 0x84bd04
jmp 0x84b9d7
lea eax, [ecx - 0x2028]
cmp eax, 1
ja 0x84bd52
mov ecx, 1
jmp 0x84bd54
cmp ecx, dword [ebp - 0x14]
jge 0x84b9da
cmp edi, dword [esi + 0x7c]
jae 0x84b9b2
movzx ecx, word [edi]
mov eax, ecx
mov dword [ebp - 0x1c], 1
and eax, 0xfc00
mov edx, ecx
cmp eax, 0xd800
jne 0x84bde3
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 - 0x1c], eax
mov edx, ecx
jmp 0x84bde8
mov eax, 1
cmp edx, 0x100
jae 0x84be00
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
jne 0x84b9d7
mov eax, dword [ebp - 0x1c]
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 - 0x14]
jl 0x84bd9a
jmp 0x84b9d7
cmp ecx, dword [ebp - 0x14]
jge 0x84b9da
cmp edi, dword [esi + 0x7c]
jae 0x84b9b2
movzx ecx, word [edi]
mov eax, ecx
mov dword [ebp - 0x1c], 1
and eax, 0xfc00
mov edx, ecx
cmp eax, 0xd800
jne 0x84be66
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov dword [ebp - 0x1c], 2
add ecx, 0x10000
mov edx, ecx
cmp edx, 0x100
jae 0x84b9d7
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
je 0x84b9d7
mov eax, dword [ebp - 0x1c]
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 - 0x14]
jl 0x84be20
jmp 0x84b9d7
cmp ecx, dword [ebp - 0x14]
jge 0x84b9da
cmp edi, dword [esi + 0x7c]
jae 0x84b9b2
movzx ecx, word [edi]
mov eax, ecx
mov dword [ebp - 0x1c], 1
and eax, 0xfc00
mov edx, ecx
cmp eax, 0xd800
jne 0x84beeb
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 - 0x1c], eax
mov edx, ecx
jmp 0x84bef0
mov eax, 1
cmp edx, 0x100
jae 0x84bf08
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
jne 0x84b9d7
mov eax, dword [ebp - 0x1c]
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 - 0x14]
jl 0x84bea2
jmp 0x84b9d7
cmp ecx, dword [ebp - 0x14]
jge 0x84b9da
cmp edi, dword [esi + 0x7c]
jae 0x84b9b2
movzx ecx, word [edi]
mov eax, ecx
mov dword [ebp - 0x1c], 1
and eax, 0xfc00
mov edx, ecx
cmp eax, 0xd800
jne 0x84bf6e
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov dword [ebp - 0x1c], 2
add ecx, 0x10000
mov edx, ecx
cmp edx, 0x100
jae 0x84b9d7
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
je 0x84b9d7
mov eax, dword [ebp - 0x1c]
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 - 0x14]
jl 0x84bf28
jmp 0x84b9d7
cmp ecx, dword [ebp - 0x14]
jge 0x84b9da
cmp edi, dword [esi + 0x7c]
jae 0x84b9b2
movzx ecx, word [edi]
mov eax, ecx
mov dword [ebp - 0x1c], 1
and eax, 0xfc00
mov edx, ecx
cmp eax, 0xd800
jne 0x84bff3
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 - 0x1c], eax
mov edx, ecx
jmp 0x84bff8
mov eax, 1
cmp edx, 0x100
jae 0x84c010
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
jne 0x84b9d7
mov eax, dword [ebp - 0x1c]
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 - 0x14]
jl 0x84bfaa
jmp 0x84b9d7
cmp ecx, dword [ebp - 0x14]
jge 0x84b9da
cmp edi, dword [esi + 0x7c]
jae 0x84c0a5
movzx ecx, word [edi]
mov eax, ecx
mov dword [ebp - 0x1c], 1
and eax, 0xfc00
mov edx, ecx
cmp eax, 0xd800
jne 0x84c072
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov dword [ebp - 0x1c], 2
add ecx, 0x10000
mov edx, ecx
cmp edx, 0x100
jae 0x84b9d7
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je 0x84b9d7
mov eax, dword [ebp - 0x1c]
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 - 0x14]
jl 0x84c030
jmp 0x84b9d7
cmp dword [esi + 0x8c], 0
je 0x84b9d7
cmp edi, dword [esi + 0x88]
jbe 0x84b9d7
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x84e351
jmp 0x84b9d7
cmp eax, 0xf
ja case.default.0x848009
jmp dword [eax*4 + 0x84e8e1]
cmp ecx, dword [ebp - 0x14]
jge 0x84c64a
mov ecx, dword [esi + 0x7c]
cmp edi, ecx
jae 0x84c196
mov edx, dword [esi + 0x18]
test edx, edx
je 0x84c11c
lea eax, [esi + 0x1c]
push 0
push eax
push ecx
mov ecx, edi
call fcn.00806cde
add esp, 0xc
test eax, eax
je 0x84c144
jmp 0x84c1bb
mov edx, dword [esi + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
cmp edi, ecx
ja 0x84c144
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x84c144
cmp edx, 1
je 0x84c1bb
mov ax, word [edi + 2]
cmp ax, word [esi + 0x36]
je 0x84c1bb
cmp dword [esi + 0x8c], 0
je 0x84c17e
lea eax, [edi + 2]
cmp eax, dword [esi + 0x7c]
jb 0x84c17e
cmp dword [esi + 0x18], 0
jne 0x84c17e
cmp dword [esi + 0x1c], 2
jne 0x84c17e
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x84c17e
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x84e351
mov eax, dword [ebp - 0xc]
add edi, 2
inc eax
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jl 0x84c0f0
jmp 0x84c1bb
cmp dword [esi + 0x8c], 0
je 0x84c1bb
cmp edi, dword [esi + 0x88]
jbe 0x84c1bb
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x84e351
mov edx, dword [ebp - 0x10]
jmp 0x84c64a
sub dword [ebp - 0x14], ecx
mov ecx, dword [esi + 0x7c]
mov eax, ecx
sub eax, edi
sar eax, 1
cmp dword [ebp - 0x14], eax
jbe 0x84c20b
cmp dword [esi + 0x8c], 0
mov edi, ecx
mov dword [ebp - 8], edi
je 0x84c64a
cmp ecx, dword [esi + 0x88]
jbe 0x84c64a
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle 0x84c64a
jmp 0x84e351
mov eax, dword [ebp - 0x14]
lea edi, [edi + eax*2]
mov dword [ebp - 8], edi
jmp 0x84c64a
cmp ecx, dword [ebp - 0x14]
jge 0x84c64a
mov ecx, dword [esi + 0x7c]
cmp edi, ecx
jae 0x84c2a2
movzx eax, word [edi]
cmp eax, 0xd
jne 0x84c247
add edi, 2
mov dword [ebp - 8], edi
cmp edi, ecx
jae 0x84c64a
cmp word [edi], 0xa
je 0x84c28b
jmp 0x84c291
cmp eax, 0xa
je 0x84c28b
cmp dword [esi + 0x6c], 0
jne 0x84c64a
cmp eax, 0xb
je 0x84c28b
cmp eax, 0xc
je 0x84c28b
mov dword [ebp - 0x38], 0x85
cmp ax, word [ebp - 0x38]
je 0x84c28b
mov dword [ebp - 0x38], 0x2028
cmp ax, word [ebp - 0x38]
je 0x84c28b
mov dword [ebp - 0x38], 0x2029
cmp ax, word [ebp - 0x38]
jne 0x84c64a
add edi, 2
mov dword [ebp - 8], edi
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jl 0x84c225
jmp 0x84c64a
cmp dword [esi + 0x8c], 0
je 0x84c64a
cmp edi, dword [esi + 0x88]
jbe 0x84c64a
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle 0x84c64a
jmp 0x84e351
cmp ecx, dword [ebp - 0x14]
jge 0x84c64a
cmp edi, dword [esi + 0x7c]
jae 0x84c2a2
movzx eax, word [edi]
cmp eax, 0x180e
ja 0x84c31e
je 0x84c64a
cmp eax, 0xa0
ja 0x84c312
je 0x84c64a
cmp eax, 9
je 0x84c64a
cmp eax, 0x20
jne 0x84c354
jmp 0x84c64a
cmp eax, 0x1680
jne 0x84c354
jmp 0x84c64a
cmp eax, 0x205f
ja 0x84c349
je 0x84c64a
cmp eax, 0x2000
jb 0x84c354
cmp eax, 0x200a
jbe 0x84c64a
cmp eax, 0x202f
jne 0x84c354
jmp 0x84c64a
cmp eax, 0x3000
je 0x84c64a
add edi, 2
inc ecx
mov dword [ebp - 8], edi
cmp ecx, dword [ebp - 0x14]
jl 0x84c2dd
jmp 0x84c64a
cmp ecx, dword [ebp - 0x14]
jge 0x84c64a
cmp edi, dword [esi + 0x7c]
jae 0x84c2a2
movzx eax, word [edi]
cmp eax, 0x180e
ja 0x84c3ab
je 0x84c3dd
cmp eax, 0xa0
ja 0x84c39f
je 0x84c3dd
cmp eax, 9
je 0x84c3dd
cmp eax, 0x20
je 0x84c3dd
jmp 0x84c64a
cmp eax, 0x1680
je 0x84c3dd
jmp 0x84c64a
cmp eax, 0x205f
ja 0x84c3d2
je 0x84c3dd
cmp eax, 0x2000
jb 0x84c64a
cmp eax, 0x200a
jbe 0x84c3dd
cmp eax, 0x202f
je 0x84c3dd
jmp 0x84c64a
cmp eax, 0x3000
jne 0x84c64a
add edi, 2
inc ecx
mov dword [ebp - 8], edi
cmp ecx, dword [ebp - 0x14]
jl 0x84c372
jmp 0x84c64a
cmp ecx, dword [ebp - 0x14]
jge 0x84c64a
cmp edi, dword [esi + 0x7c]
jae 0x84c2a2
movzx eax, word [edi]
cmp eax, 0x85
ja 0x84c41f
je 0x84c64a
cmp eax, 0xa
jb 0x84c431
cmp eax, 0xd
ja 0x84c431
jmp 0x84c64a
cmp eax, 0x2028
jb 0x84c431
cmp eax, 0x2029
jbe 0x84c64a
add edi, 2
inc ecx
mov dword [ebp - 8], edi
cmp ecx, dword [ebp - 0x14]
jl 0x84c3f7
jmp 0x84c64a
cmp ecx, dword [ebp - 0x14]
jge 0x84c64a
cmp edi, dword [esi + 0x7c]
jae 0x84c2a2
movzx eax, word [edi]
cmp eax, 0x85
ja 0x84c46d
je 0x84c47b
add eax, 0xfffffff6
cmp eax, 3
jbe 0x84c47b
jmp 0x84c64a
add eax, 0xffffdfd8
cmp eax, 1
ja 0x84c64a
add edi, 2
inc ecx
mov dword [ebp - 8], edi
cmp ecx, dword [ebp - 0x14]
jl 0x84c44b
jmp 0x84c64a
cmp ecx, dword [ebp - 0x14]
jge 0x84c64a
cmp edi, dword [esi + 0x7c]
jae 0x84c2a2
movzx eax, word [edi]
mov dword [ebp - 0x38], 0xff
cmp ax, word [ebp - 0x38]
ja 0x84c4c0
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
jne 0x84c64a
mov ecx, dword [ebp - 0xc]
inc ecx
add edi, 2
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], ecx
cmp ecx, dword [ebp - 0x14]
jl 0x84c495
jmp 0x84c64a
cmp ecx, dword [ebp - 0x14]
jge 0x84c64a
cmp edi, dword [esi + 0x7c]
jae 0x84c2a2
movzx eax, word [edi]
mov ecx, 0xff
cmp ax, cx
ja 0x84c64a
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
je 0x84c64a
mov eax, dword [ebp - 0xc]
add edi, 2
inc eax
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jl 0x84c4dd
jmp 0x84c64a
cmp ecx, dword [ebp - 0x14]
jge 0x84c64a
cmp edi, dword [esi + 0x7c]
jae 0x84c2a2
movzx eax, word [edi]
mov dword [ebp - 0x38], 0xff
cmp ax, word [ebp - 0x38]
ja 0x84c551
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
jne 0x84c64a
mov ecx, dword [ebp - 0xc]
inc ecx
add edi, 2
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], ecx
cmp ecx, dword [ebp - 0x14]
jl 0x84c526
jmp 0x84c64a
cmp ecx, dword [ebp - 0x14]
jge 0x84c64a
cmp edi, dword [esi + 0x7c]
jae 0x84c2a2
movzx eax, word [edi]
mov ecx, 0xff
cmp ax, cx
ja 0x84c64a
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
je 0x84c64a
mov eax, dword [ebp - 0xc]
add edi, 2
inc eax
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jl 0x84c56e
jmp 0x84c64a
cmp ecx, dword [ebp - 0x14]
jge 0x84c64a
cmp edi, dword [esi + 0x7c]
jae 0x84c2a2
movzx eax, word [edi]
mov dword [ebp - 0x38], 0xff
cmp ax, word [ebp - 0x38]
ja 0x84c5de
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
jne 0x84c64a
mov ecx, dword [ebp - 0xc]
inc ecx
add edi, 2
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], ecx
cmp ecx, dword [ebp - 0x14]
jl 0x84c5b7
jmp 0x84c64a
cmp ecx, dword [ebp - 0x14]
jge 0x84c64a
cmp edi, dword [esi + 0x7c]
jae 0x84c625
movzx eax, word [edi]
mov ecx, 0xff
cmp ax, cx
ja 0x84c64a
mov ecx, eax
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je 0x84c64a
mov eax, dword [ebp - 0xc]
add edi, 2
inc eax
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jl 0x84c5f4
jmp 0x84c64a
cmp dword [esi + 0x8c], 0
je 0x84c64a
cmp edi, dword [esi + 0x88]
jbe 0x84c64a
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x84e351
cmp dword [ebp - 0x2c], 0
jne 0x808b79
cmp edi, edx
je 0x808992
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.00808810
add esp, 0x14
test eax, eax
jne 0x8089db
mov eax, dword [ebp - 0x10]
add edi, 0xfffffffe
cmp dword [ebp - 0x20], 0x11
mov dword [ebp - 8], edi
jne 0x84c6a5
cmp edi, eax
jbe 0x84c6a7
cmp word [edi], 0xa
jne 0x84c6a5
cmp word [edi - 2], 0xd
jne 0x84c6a5
add edi, 0xfffffffe
mov dword [ebp - 8], edi
cmp edi, eax
jne 0x84c65c
jmp 0x808992
mov edx, dword [ebp - 0x20]
call fcn.00808810
add esp, 0x14
test eax, eax
jne 0x8089db
add ebx, 4
jmp 0x80898f
mov eax, dword [ebp + 0x18]
inc eax
cmp word [ebx], 0x7a
push eax
push dword [ebp + 0x14]
push esi
push ecx
push dword [ebp + 8]
jne 0x84c736
mov edi, dword [ebp - 8]
lea edx, [ebx + 4]
mov ecx, edi
call fcn.00808810
add esp, 0x14
test eax, eax
jne 0x8089db
mov ecx, dword [ebp - 0x20]
mov edx, 0x81
movzx eax, word [ecx]
cmp ax, dx
je 0x84c9e8
mov edx, 0x88
cmp ax, dx
jb 0x8466c1
mov eax, dword [ebp + 0x18]
mov edx, ecx
inc eax
mov ecx, edi
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00808810
add esp, 0x14
jmp 0x8089db
mov edx, edi
mov edi, dword [ebp - 8]
mov ecx, edi
call fcn.00808810
add esp, 0x14
cmp eax, 0xfffffc1b
jne 0x84c75d
mov ecx, dword [ebp - 0x20]
cmp dword [esi + 0xb8], ecx
jne 0x8089db
jmp 0x84c768
test eax, eax
jne 0x8089db
mov ecx, dword [ebp - 0x20]
mov eax, 0x81
cmp word [ecx], ax
je 0x84c9ec
add ebx, 4
jmp 0x80898f
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x84c799
add edi, 0xfffffffe
mov dword [ebp - 8], edi
movzx ecx, word [edi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x84c7c4
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x8bff40]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x8b1c40]
movzx eax, byte [eax*8 + 0x8af3f2]
mov dword [ebp - 0x1c], eax
cmp edi, dword [ebp - 0x10]
jbe 0x808992
cmp dword [ebp - 0x28], 0
lea edx, [edi - 2]
jne 0x84c802
movzx ecx, word [edx]
jmp 0x84c845
mov ax, word [edx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x84c81a
add edx, 0xfffffffe
movzx ecx, word [edx]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x84c845
movzx eax, word [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x8bff40]
shl eax, 7
add eax, ecx
mov ecx, dword [ebp - 0x1c]
movzx eax, word [eax*2 + 0x8b1c40]
movzx eax, byte [eax*8 + 0x8af3f2]
mov dword [ebp - 0x38], eax
mov eax, 1
shl eax, cl
mov ecx, dword [ebp - 0x38]
test dword [ecx*4 + 0x8c21f0], eax
je 0x84b879
mov edi, edx
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 8], edi
jmp 0x84c7eb
mov dword [esi + 0x9c], 2
mov eax, dword [esi + 0xb0]
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x38], eax
mov eax, dword [esi + 0x94]
mov dword [ebp - 0x1c], 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 + 0x8c2140]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
call fcn.00808810
add esp, 0x14
mov dword [ebp - 0x2c], eax
cmp eax, 0xfffffc20
jne 0x84c92b
movzx eax, word [ebx + 2]
lea eax, [ebx + eax*2]
cmp dword [esi + 0x80], eax
jae 0x84e3d4
cmp word [ebx], 0x77
je 0x84c903
cmp word [eax], 0x77
jne 0x84e3d4
movzx eax, word [ebx + 2]
lea ebx, [ebx + eax*2]
mov eax, dword [ebp - 0x38]
mov dword [esi + 0xb0], eax
cmp word [ebx], 0x77
jne case.0x808896.157
mov eax, dword [ebp - 0x1c]
mov dword [esi + 0x94], eax
jmp case.0x808896.129
test eax, eax
je 0x84c903
cmp eax, 0xfffffc1b
jne 0x8089db
movzx ecx, word [ebx]
mov edx, 0x81
cmp cx, dx
je 0x84c966
cmp ecx, 0x77
jne 0x84c95a
movzx eax, word [ebx + 2]
cmp word [ebx + eax*2], 0x77
lea ebx, [ebx + eax*2]
je 0x84c94c
movzx eax, word [ebx + 2]
neg eax
lea ebx, [ebx + eax*2]
mov eax, dword [ebp - 0x2c]
cmp dword [esi + 0xb8], ebx
jne 0x8089db
jmp case.0x808896.157
mov eax, dword [ebp + 0x18]
inc eax
push eax
movzx eax, word [ebx]
push dword [ebp + 0x14]
push esi
movzx ecx, byte [eax + 0x8c2140]
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.00808810
add esp, 0x14
test eax, eax
jne 0x8089db
lea eax, [ebx + 4]
mov dword [esi + 0x80], eax
mov eax, 0xfffffc1f
jmp 0x8089db
mov ecx, dword [ebp - 0x50]
lea edx, [ebp - 0x14c]
cmp ecx, edx
je 0x8089db
push ecx
call fcn.008091bb
add esp, 4
jmp 0x84e3d4
mov eax, 0xfffffffa
jmp 0x8089db
mov edx, ecx
jmp 0x84c9ef
lea edx, [ebx + 4]
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.00808810
add esp, 0x14
test eax, eax
jne 0x8089db
mov edi, dword [ebp - 0x20]
jmp 0x84ca38
mov eax, dword [ebp + 0x18]
lea edx, [ebx + 4]
inc eax
push eax
push dword [ebp + 0x14]
push esi
push ecx
push dword [ebp + 8]
mov ecx, dword [ebp - 8]
call fcn.00808810
add esp, 0x14
test eax, eax
jne 0x8089db
mov dword [esi + 0xb8], edi
mov eax, 0xfffffc1b
jmp 0x8089db
mov eax, dword [ebp + 8]
mov dword [esi + 0x80], eax
mov eax, dword [ebp - 8]
mov dword [esi + 0x84], eax
mov eax, 0xfffffc1a
mov dword [esi + 0x90], ecx
jmp 0x8089db
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 0x8089d6
cmp eax, 0xfffffffe
jne 0x84ca92
mov edi, dword [esi + 0x7c]
cmp dword [esi + 0x8c], 0
je case.0x808896.157
cmp edi, dword [esi + 0x7c]
jb case.0x808896.157
jmp 0x84a9e4
mov dword [ebp - 0x1c], eax
cmp edi, edx
jl 0x84cabb
mov edi, eax
jmp 0x84cb20
mov eax, dword [ebp - 8]
push dword [ebp - 0x24]
mov edx, eax
push esi
push ecx
mov ecx, dword [ebp - 0x18]
call fcn.0089b321
add esp, 0xc
test eax, eax
js 0x84cae5
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 - 0x2c]
jl 0x84cab8
jmp 0x84cb15
cmp eax, 0xfffffffe
jne 0x84cb12
cmp dword [esi + 0x8c], 0
je 0x84cb12
mov eax, dword [esi + 0x7c]
cmp eax, dword [esi + 0x88]
jbe 0x84cb12
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x84e351
mov edx, dword [ebp - 8]
mov edi, dword [ebp - 0x1c]
cmp edx, edi
jb case.0x808896.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.00808810
add esp, 0x14
test eax, eax
jne 0x8089db
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 0x84cb20
jmp case.0x808896.157
cmp ecx, 0xfffffffe
jne 0x84cb65
mov eax, dword [esi + 0x7c]
jmp 0x84cb68
mov eax, dword [ebp - 8]
cmp dword [esi + 0x8c], 0
je case.0x808896.157
cmp eax, dword [esi + 0x7c]
jb case.0x808896.157
cmp eax, dword [esi + 0x88]
jmp 0x84a9ea
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.00808810
add esp, 0x14
cmp dword [ebp - 0x28], 0
je 0x84cc5f
test eax, eax
jne 0x8089db
mov eax, dword [ebp - 0x20]
cmp dword [ebp - 0x18], eax
jge case.0x808896.157
mov ecx, dword [ebp - 8]
cmp ecx, dword [esi + 0x7c]
jae 0x84cdaf
movzx edx, word [ecx]
add ecx, 2
mov eax, edx
mov dword [ebp - 8], ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x84cc05
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 0x84cc18
cmp edi, 0x6e
je case.0x808896.157
jmp 0x84cc36
mov ecx, edx
mov eax, 1
and ecx, 7
shr edx, 3
shl eax, cl
mov ecx, dword [ebp - 0xc]
test byte [edx + ecx], al
je case.0x808896.157
mov ecx, dword [ebp - 8]
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc dword [ebp - 0x18]
inc eax
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00808810
add esp, 0x14
test eax, eax
je 0x84cbb7
jmp 0x8089db
test eax, eax
jne 0x8089db
mov eax, dword [ebp - 0x20]
cmp dword [ebp - 0x18], eax
jge case.0x808896.157
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x7c]
jae 0x84cdc7
movzx edx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp edx, 0xff
jbe 0x84cc9b
cmp edi, 0x6e
je case.0x808896.157
jmp 0x84ccb6
mov ecx, edx
mov eax, 1
and ecx, 7
shr edx, 3
shl eax, cl
mov ecx, dword [ebp - 0xc]
test byte [edx + ecx], al
je case.0x808896.157
mov eax, dword [ebp + 0x18]
mov edx, ebx
mov ecx, dword [ebp - 8]
inc eax
inc dword [ebp - 0x18]
push eax
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00808810
add esp, 0x14
test eax, eax
je 0x84cc67
jmp 0x8089db
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.00808810
add esp, 0x14
test eax, eax
jne 0x8089db
mov eax, dword [ebp - 0x20]
cmp dword [ebp - 0x18], eax
jge case.0x808896.157
cmp edi, dword [esi + 0x7c]
jae 0x84a9d7
movzx ecx, word [edi]
add edi, 2
mov edx, dword [ebp - 0x28]
test edx, edx
je 0x84cd50
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x84cd50
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 - 0x24]
call fcn.0089b51c
add esp, 4
test eax, eax
je case.0x808896.157
mov eax, dword [ebp + 0x18]
mov edx, ebx
inc dword [ebp - 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov ecx, edi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00808810
add esp, 0x14
test eax, eax
je 0x84cd04
jmp 0x8089db
cmp dword [esi + 0x8c], 0
je case.0x808896.157
cmp edx, ecx
jb case.0x808896.157
cmp edx, dword [esi + 0x88]
jmp 0x84a9ea
cmp dword [esi + 0x8c], 0
je case.0x808896.157
cmp ecx, dword [esi + 0x88]
jmp 0x84a9ea
cmp dword [esi + 0x8c], 0
je case.0x808896.157
cmp eax, dword [esi + 0x88]
jmp 0x84a9ea
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.00808810
add esp, 0x14
test eax, eax
jne 0x8089db
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x14], eax
jge case.0x808896.157
mov eax, dword [ebp - 0xc]
lea ecx, [eax + eax]
mov eax, dword [esi + 0x7c]
sub eax, ecx
cmp edi, eax
ja 0x84ce36
push ecx
push dword [ebp - 0x34]
push edi
call fcn.00821394
add esp, 0xc
test eax, eax
jne 0x84ce36
mov eax, dword [ebp - 0xc]
jmp 0x84ce6a
mov eax, dword [ebp - 0x20]
test eax, eax
jle 0x84ca92
lea ecx, [eax + eax]
mov eax, dword [esi + 0x7c]
sub eax, ecx
cmp edi, eax
ja 0x84ca92
push ecx
lea eax, [ebp - 0x6c]
push eax
push edi
call fcn.00821394
add esp, 0xc
test eax, eax
jne 0x84ca92
mov eax, dword [ebp - 0x20]
inc dword [ebp - 0x14]
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.00808810
add esp, 0x14
test eax, eax
je 0x84ce05
jmp 0x8089db
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.00808810
add esp, 0x14
test eax, eax
jne 0x8089db
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x18]
jge case.0x808896.157
cmp edi, dword [esi + 0x7c]
jae 0x84a9d7
movzx ecx, word [edi]
cmp dword [ebp - 0x20], ecx
je 0x84cee4
cmp dword [ebp - 0x24], ecx
jne case.0x808896.157
inc eax
add edi, 2
mov dword [ebp - 0x14], 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.00808810
add esp, 0x14
test eax, eax
je 0x84cebe
jmp 0x8089db
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.00808810
add esp, 0x14
test eax, eax
jne 0x8089db
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x18]
jge case.0x808896.157
cmp edi, dword [esi + 0x7c]
jae 0x84a9d7
movzx eax, word [edi]
add edi, 2
cmp dword [ebp - 0x20], eax
jne case.0x808896.157
mov eax, dword [ebp + 0x18]
inc ecx
inc eax
mov dword [ebp - 0x14], 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.00808810
add esp, 0x14
test eax, eax
je 0x84cf32
jmp 0x8089db
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.00808810
add esp, 0x14
cmp dword [ebp - 0x28], 0
je 0x84d02d
test eax, eax
jne 0x8089db
mov edx, dword [ebp - 0xc]
cmp edx, dword [ebp - 0x18]
jge case.0x808896.157
cmp edi, dword [esi + 0x7c]
jae 0x84a9d7
movzx ecx, word [edi]
add edi, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x84cff3
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 - 0x14], ecx
je case.0x808896.157
cmp dword [ebp - 0x20], ecx
je case.0x808896.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.00808810
add esp, 0x14
test eax, eax
je 0x84cfae
jmp 0x8089db
test eax, eax
jne 0x8089db
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 0x18]
jge case.0x808896.157
cmp edi, dword [esi + 0x7c]
jae 0x84a9d7
movzx ecx, word [edi]
cmp dword [ebp - 0x14], ecx
je case.0x808896.157
cmp dword [ebp - 0x20], ecx
je case.0x808896.157
inc eax
add edi, 2
mov dword [ebp - 0xc], 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.00808810
add esp, 0x14
test eax, eax
je 0x84d035
jmp 0x8089db
cmp dword [esi + 0x8c], 0
je case.0x808896.157
cmp eax, dword [esi + 0x88]
jbe case.0x808896.157
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle case.0x808896.157
jmp 0x84e351
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.00808810
add esp, 0x14
cmp dword [ebp - 0x28], 0
je 0x84d15e
test eax, eax
jne 0x8089db
mov edx, dword [ebp - 0xc]
cmp edx, dword [ebp - 0x18]
jge case.0x808896.157
cmp edi, dword [esi + 0x7c]
jae 0x84a9d7
movzx ecx, word [edi]
add edi, 2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x84d12d
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 - 0x14], ecx
je case.0x808896.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.00808810
add esp, 0x14
test eax, eax
je 0x84d0e8
jmp 0x8089db
test eax, eax
jne 0x8089db
mov ecx, dword [ebp - 0xc]
cmp ecx, dword [ebp - 0x18]
jge case.0x808896.157
cmp edi, dword [esi + 0x7c]
jae 0x84a9d7
movzx eax, word [edi]
add edi, 2
cmp dword [ebp - 0x14], eax
je case.0x808896.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.00808810
add esp, 0x14
test eax, eax
je 0x84d166
jmp 0x8089db
cmp eax, 0xa
ja case.default.0x848009
jmp dword [eax*4 + 0x84e921]
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.00808810
add esp, 0x14
test eax, eax
jne 0x8089db
mov ecx, dword [ebp - 0xc]
cmp ecx, dword [ebp - 0x14]
jge case.0x808896.157
cmp edi, dword [esi + 0x7c]
jae 0x84a9d7
movzx eax, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
je 0x84d215
and eax, 0xfc00
cmp eax, 0xd800
jne 0x84d215
add edi, 2
cmp dword [ebp - 0x3c], 0
jne case.0x808896.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.00808810
add esp, 0x14
test eax, eax
je 0x84d1e5
jmp 0x8089db
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.00808810
add esp, 0x14
test eax, eax
jne 0x8089db
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc], eax
jge case.0x808896.157
cmp edi, dword [esi + 0x7c]
jae 0x84a9d7
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
je 0x84d2b7
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x84d2b7
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add edi, 2
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x8bff40]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x8b1c40]
movzx eax, byte [eax*8 + 0x8af3f1]
cmp eax, 9
je 0x84d2ee
cmp eax, 5
je 0x84d2ee
cmp eax, 8
je 0x84d2ee
xor eax, eax
jmp 0x84d2f3
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x808896.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.00808810
add esp, 0x14
test eax, eax
je 0x84d26a
jmp 0x8089db
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.00808810
add esp, 0x14
test eax, eax
jne 0x8089db
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc], eax
jge case.0x808896.157
cmp edi, dword [esi + 0x7c]
jae 0x84a9d7
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
je 0x84d398
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x84d398
movzx ecx, word [edi]
and edx, 0x3ff
and ecx, 0x3ff
shl edx, 0xa
or ecx, edx
add edi, 2
add ecx, 0x10000
mov edx, dword [ebp - 0x40]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, byte [eax + 0x8bff40]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x8b1c40]
movzx eax, byte [eax*8 + 0x8af3f1]
cmp dword [eax*4 + 0x8c5350], edx
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0x808896.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.00808810
add esp, 0x14
test eax, eax
je 0x84d34a
jmp 0x8089db
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.00808810
add esp, 0x14
test eax, eax
jne 0x8089db
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc], eax
jge case.0x808896.157
cmp edi, dword [esi + 0x7c]
jae 0x84a9d7
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
je 0x84d46f
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x84d46f
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add edi, 2
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x8bff40]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x8b1c40]
movzx eax, byte [eax*8 + 0x8af3f1]
cmp eax, dword [ebp - 0x40]
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0x808896.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.00808810
add esp, 0x14
test eax, eax
je 0x84d422
jmp 0x8089db
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.00808810
add esp, 0x14
test eax, eax
jne 0x8089db
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc], eax
jge case.0x808896.157
cmp edi, dword [esi + 0x7c]
jae 0x84a9d7
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
je 0x84d53f
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x84d53f
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add edi, 2
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x8bff40]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x8b1c40]
movzx eax, byte [eax*8 + 0x8af3f0]
cmp eax, dword [ebp - 0x40]
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0x808896.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.00808810
add esp, 0x14
test eax, eax
je 0x84d4f2
jmp 0x8089db
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.00808810
add esp, 0x14
test eax, eax
jne 0x8089db
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc], eax
jge case.0x808896.157
cmp edi, dword [esi + 0x7c]
jae 0x84a9d7
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
je 0x84d610
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x84d610
movzx ecx, word [edi]
and edx, 0x3ff
and ecx, 0x3ff
shl edx, 0xa
or ecx, edx
add edi, 2
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x8bff40]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x8b1c40]
movzx eax, byte [eax*8 + 0x8af3f1]
mov eax, dword [eax*4 + 0x8c5350]
cmp eax, 1
je 0x84d649
cmp eax, 3
je 0x84d649
xor eax, eax
jmp 0x84d64e
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x808896.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.00808810
add esp, 0x14
test eax, eax
je 0x84d5c2
jmp 0x8089db
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.00808810
add esp, 0x14
test eax, eax
jne 0x8089db
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 0x14]
jge case.0x808896.157
cmp edi, dword [esi + 0x7c]
jae 0x84a9d7
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov edx, ecx
je 0x84d6f7
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x84d6f4
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edi, 2
mov edx, ecx
mov eax, dword [ebp - 0xc]
cmp ecx, 0x180e
ja 0x84d73d
je 0x84d7b2
cmp ecx, 0x85
ja 0x84d72b
je 0x84d7b2
cmp ecx, 9
jb case.0x84d759.8203
cmp ecx, 0xd
jbe 0x84d7b2
cmp ecx, 0x20
jne case.0x84d759.8203
jmp 0x84d7b2
cmp ecx, 0xa0
je 0x84d7b2
cmp ecx, 0x1680
jne case.0x84d759.8203
jmp 0x84d7b2
cmp ecx, 0x202f
ja 0x84d760
je 0x84d7b2
add ecx, 0xffffe000
cmp ecx, 0x29
ja case.0x84d759.8203
movzx eax, byte [ecx + 0x84e955]
jmp dword [eax*4 + 0x84e94d]
cmp ecx, 0x205f
je 0x84d7b2
cmp ecx, 0x3000
je 0x84d7b2
mov eax, edx
xor ecx, ecx
shr eax, 7
and edx, 0x7f
movzx eax, byte [eax + 0x8bff40]
shl eax, 7
add eax, edx
movzx eax, word [eax*2 + 0x8b1c40]
movzx eax, byte [eax*8 + 0x8af3f1]
cmp dword [eax*4 + 0x8c5350], 6
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0x808896.157
mov eax, dword [ebp - 0xc]
jmp 0x84d7bc
mov eax, dword [ebp - 0xc]
cmp dword [ebp - 0x3c], 0
jne case.0x808896.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.00808810
add esp, 0x14
test eax, eax
je 0x84d6a5
jmp 0x8089db
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.00808810
add esp, 0x14
test eax, eax
jne 0x8089db
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc], eax
jge case.0x808896.157
cmp edi, dword [esi + 0x7c]
jae 0x84a9d7
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov edx, ecx
je 0x84d858
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x84d858
movzx eax, word [edi]
and edx, 0x3ff
shl edx, 0xa
and eax, 0x3ff
or edx, eax
add edi, 2
add edx, 0x10000
mov eax, edx
shr eax, 7
movzx ecx, byte [eax + 0x8bff40]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x8b1c40]
movzx eax, byte [eax*8 + 0x8af3f1]
mov eax, dword [eax*4 + 0x8c5350]
cmp eax, 1
je 0x84d898
cmp eax, 3
je 0x84d898
cmp edx, 0x5f
je 0x84d898
xor eax, eax
jmp 0x84d89d
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x808896.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.00808810
add esp, 0x14
test eax, eax
je 0x84d80b
jmp 0x8089db
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.00808810
add esp, 0x14
test eax, eax
jne 0x8089db
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc], eax
jge case.0x808896.157
cmp edi, dword [esi + 0x7c]
jae 0x84a9d7
movzx ecx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov dword [ebp - 0x34], ecx
je 0x84d948
mov eax, ecx
mov dword [ebp - 0x34], ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x84d948
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 - 0x34], ecx
mov eax, dword [ebp - 0x40]
mov edx, dword [eax*4 + 0x8b0a70]
lea eax, [eax*4 + 0x8b0a70]
cmp dword [ebp - 0x34], edx
jb 0x84d96b
lea eax, [eax + 4]
cmp ecx, edx
je 0x84d9a0
mov edx, dword [eax]
cmp ecx, edx
jae 0x84d95e
cmp dword [ebp - 0x3c], 0
je case.0x808896.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.00808810
add esp, 0x14
test eax, eax
je 0x84d8f4
jmp 0x8089db
cmp dword [ebp - 0x3c], 0
jne case.0x808896.157
jmp 0x84d975
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.00808810
add esp, 0x14
test eax, eax
jne 0x8089db
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc], eax
jge case.0x808896.157
cmp edi, dword [esi + 0x7c]
jae 0x84a9d7
movzx edx, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, edx
je 0x84da1d
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x84da1d
movzx ecx, word [edi]
and edx, 0x3ff
and ecx, 0x3ff
shl edx, 0xa
or ecx, edx
add ecx, 0x10000
add edi, 2
cmp ecx, 0x24
je 0x84da48
cmp ecx, 0x40
je 0x84da48
cmp ecx, 0x60
je 0x84da48
cmp ecx, 0xa0
jb 0x84da3c
cmp ecx, 0xd7ff
jbe 0x84da48
cmp ecx, 0xe000
jae 0x84da48
xor eax, eax
jmp 0x84da4d
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x808896.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.00808810
add esp, 0x14
test eax, eax
je 0x84d9cf
jmp 0x8089db
test eax, eax
jne 0x8089db
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc], eax
jge case.0x808896.157
cmp edi, dword [esi + 0x7c]
jae 0x84a9d7
movzx eax, word [edi]
add edi, 2
cmp dword [ebp - 0x28], 0
mov ecx, eax
mov dword [ebp - 0x38], eax
mov edx, edi
je 0x84dadb
and eax, 0xfc00
cmp eax, 0xd800
jne 0x84dadb
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
add edi, 2
or ecx, eax
add ecx, 0x10000
mov edx, edi
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, byte [eax + 0x8bff40]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x8b1c40]
movzx ecx, byte [eax*8 + 0x8af3f2]
mov eax, dword [esi + 0x7c]
mov dword [ebp - 0x1c], ecx
cmp edx, eax
jae 0x84dbad
mov dword [ebp - 0x38], edx
mov ebx, edx
cmp dword [ebp - 0x28], 0
movzx ecx, word [edi]
mov dword [ebp - 0x34], 1
je 0x84db51
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x84db51
movzx eax, word [edi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov dword [ebp - 0x34], 2
add ecx, 0x10000
mov esi, dword [ebp - 0x1c]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
mov edx, ebx
movzx eax, byte [eax + 0x8bff40]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x8b1c40]
movzx ecx, byte [eax*8 + 0x8af3f2]
mov eax, 1
shl eax, cl
test dword [esi*4 + 0x8c21f0], eax
mov esi, dword [ebp + 0x10]
je 0x84dba7
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x1c], ecx
lea edi, [ebx + eax*2]
mov eax, dword [esi + 0x7c]
mov ebx, edi
mov edx, edi
cmp edi, eax
jb 0x84db12
jmp 0x84dbaa
mov eax, dword [esi + 0x7c]
mov ebx, dword [ebp - 0x30]
cmp dword [esi + 0x8c], 0
je 0x84dbd6
cmp edx, eax
jb 0x84dbd6
cmp edx, dword [esi + 0x88]
jbe 0x84dbd6
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x84e351
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.00808810
add esp, 0x14
test eax, eax
je 0x84da89
jmp 0x8089db
mov edx, dword [esi + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
cmp edi, ecx
ja 0x808ea2
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x808ea2
cmp edx, 1
je case.0x808896.157
mov ax, word [edi + 2]
cmp ax, word [esi + 0x36]
je case.0x808896.157
jmp 0x808ea2
movzx eax, word [edi]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
add edi, 2
mov eax, edi
mov edx, ecx
mov dword [ebp - 0x24], eax
jmp 0x808ebf
mov esi, dword [ebp - 0x20]
add esi, 0xfffffffa
cmp esi, 0xf
ja case.default.0x848009
mov esi, dword [ebp - 0x20]
add esi, 0xfffffffa
jmp dword [esi*4 + 0x84e981]
mov esi, dword [ebp + 0x10]
mov eax, dword [ebp - 0x24]
cmp ecx, 0xd
ja 0x84dcbd
je 0x84dca2
cmp ecx, 0xa
je case.0x84dc77.13
lea eax, [ecx - 0xb]
cmp eax, 1
ja case.0x808896.157
jmp 0x84dcd4
cmp edi, dword [esi + 0x7c]
jae case.0x84dc77.13
cmp word [edi], 0xa
jne case.0x84dc77.13
lea edi, [eax + 2]
jmp case.0x84dc77.13
cmp ecx, 0x85
je 0x84dcd4
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x808896.157
cmp dword [esi + 0x6c], 0
jne case.0x808896.157
jmp case.0x84dc77.13
cmp ecx, 0x180e
ja 0x84dd27
je case.0x808896.157
cmp ecx, 0xa0
ja 0x84dd16
je case.0x808896.157
cmp ecx, 9
je case.0x808896.157
cmp ecx, 0x20
je case.0x808896.157
jmp case.0x84dc77.13
cmp ecx, 0x1680
je case.0x808896.157
jmp case.0x84dc77.13
cmp ecx, 0x205f
ja 0x84dd5e
je case.0x808896.157
cmp ecx, 0x2000
jb case.0x84dc77.13
cmp ecx, 0x200a
jbe case.0x808896.157
cmp ecx, 0x202f
je case.0x808896.157
jmp case.0x84dc77.13
cmp ecx, 0x3000
je case.0x808896.157
jmp case.0x84dc77.13
cmp ecx, 0x180e
ja 0x84ddb3
je case.0x84dc77.13
cmp ecx, 0xa0
ja 0x84dda2
je case.0x84dc77.13
cmp ecx, 9
je case.0x84dc77.13
cmp ecx, 0x20
jne case.0x808896.157
jmp case.0x84dc77.13
cmp ecx, 0x1680
jne case.0x808896.157
jmp case.0x84dc77.13
cmp ecx, 0x205f
ja 0x84ddea
je case.0x84dc77.13
cmp ecx, 0x2000
jb case.0x808896.157
cmp ecx, 0x200a
jbe case.0x84dc77.13
cmp ecx, 0x202f
jne case.0x808896.157
jmp case.0x84dc77.13
cmp ecx, 0x3000
jne case.0x808896.157
jmp case.0x84dc77.13
cmp ecx, 0x85
ja 0x84de20
je case.0x808896.157
cmp ecx, 0xa
jb case.0x84dc77.13
cmp ecx, 0xd
jbe case.0x808896.157
jmp case.0x84dc77.13
cmp ecx, 0x2028
jb case.0x84dc77.13
cmp ecx, 0x2029
jbe case.0x808896.157
jmp case.0x84dc77.13
cmp ecx, 0x85
ja 0x84de5c
je case.0x84dc77.13
lea eax, [ecx - 0xa]
cmp eax, 3
ja case.0x808896.157
jmp case.0x84dc77.13
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x808896.157
jmp case.0x84dc77.13
mov esi, dword [ebp + 0x10]
cmp edx, 0x100
jae case.0x84dc77.13
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
jne case.0x808896.157
jmp case.0x84dc77.13
mov esi, dword [ebp + 0x10]
cmp edx, 0x100
jae case.0x808896.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
je case.0x808896.157
jmp case.0x84dc77.13
mov esi, dword [ebp + 0x10]
cmp edx, 0x100
jae case.0x84dc77.13
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
jne case.0x808896.157
jmp case.0x84dc77.13
mov esi, dword [ebp + 0x10]
cmp edx, 0x100
jae case.0x808896.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
je case.0x808896.157
jmp case.0x84dc77.13
mov esi, dword [ebp + 0x10]
cmp edx, 0x100
jae case.0x84dc77.13
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
jne case.0x808896.157
jmp case.0x84dc77.13
mov esi, dword [ebp + 0x10]
cmp edx, 0x100
jae case.0x808896.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je case.0x808896.157
jmp case.0x84dc77.13
cmp eax, dword [esi + 0x7c]
jb case.0x84dc77.13
cmp dword [esi + 0x18], 0
jne case.0x84dc77.13
cmp dword [esi + 0x1c], 2
jne case.0x84dc77.13
movzx eax, word [esi + 0x34]
cmp edx, eax
jne case.0x84dc77.13
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jg 0x84e351
jmp case.0x84dc77.13
test eax, eax
jne 0x8089db
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc], eax
jge case.0x808896.157
mov ecx, dword [esi + 0x7c]
cmp edi, ecx
jae 0x84e324
cmp dword [ebp - 0x20], 0xc
jne 0x84dfeb
mov edx, dword [esi + 0x18]
test edx, edx
je 0x84dfbf
push 0
lea eax, [esi + 0x1c]
push eax
push ecx
mov ecx, edi
call fcn.00806cde
add esp, 0xc
test eax, eax
jne case.0x808896.157
jmp 0x84dfeb
mov edx, dword [esi + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
cmp edi, ecx
ja 0x84dfeb
mov ax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x84dfeb
cmp edx, 1
je case.0x808896.157
mov ax, word [edi + 2]
cmp ax, word [esi + 0x36]
je case.0x808896.157
movzx eax, word [edi]
add edi, 2
mov ecx, eax
mov edx, eax
mov eax, dword [ebp - 0x20]
add eax, 0xfffffffa
mov dword [ebp - 0x38], ecx
cmp eax, 0xf
ja case.default.0x848009
jmp dword [eax*4 + 0x84e9c1]
cmp dword [esi + 0x8c], 0
je case.0x84e007.13
cmp edi, dword [esi + 0x7c]
jb case.0x84e007.13
cmp dword [esi + 0x18], 0
jne case.0x84e007.13
cmp dword [esi + 0x1c], 2
jne case.0x84e007.13
movzx eax, word [esi + 0x34]
cmp ecx, eax
jne case.0x84e007.13
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle case.0x84e007.13
jmp 0x84e351
cmp ecx, 0xd
ja 0x84e096
je 0x84e07b
cmp ecx, 0xa
je case.0x84e007.13
lea eax, [ecx - 0xb]
cmp eax, 1
ja case.0x808896.157
jmp 0x84e0ad
cmp edi, dword [esi + 0x7c]
jae case.0x84e007.13
cmp word [edi], 0xa
jne case.0x84e007.13
add edi, 2
jmp case.0x84e007.13
cmp ecx, 0x85
je 0x84e0ad
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x808896.157
cmp dword [esi + 0x6c], 0
jne case.0x808896.157
jmp case.0x84e007.13
cmp ecx, 0x180e
ja 0x84e100
je case.0x808896.157
cmp ecx, 0xa0
ja 0x84e0ef
je case.0x808896.157
cmp ecx, 9
je case.0x808896.157
cmp ecx, 0x20
je case.0x808896.157
jmp case.0x84e007.13
cmp ecx, 0x1680
je case.0x808896.157
jmp case.0x84e007.13
cmp ecx, 0x205f
ja 0x84e137
je case.0x808896.157
cmp ecx, 0x2000
jb case.0x84e007.13
cmp ecx, 0x200a
jbe case.0x808896.157
cmp ecx, 0x202f
je case.0x808896.157
jmp case.0x84e007.13
cmp ecx, 0x3000
je case.0x808896.157
jmp case.0x84e007.13
cmp ecx, 0x180e
ja 0x84e18c
je case.0x84e007.13
cmp ecx, 0xa0
ja 0x84e17b
je case.0x84e007.13
cmp ecx, 9
je case.0x84e007.13
cmp ecx, 0x20
jne case.0x808896.157
jmp case.0x84e007.13
cmp ecx, 0x1680
jne case.0x808896.157
jmp case.0x84e007.13
cmp ecx, 0x205f
ja 0x84e1c3
je case.0x84e007.13
cmp ecx, 0x2000
jb case.0x808896.157
cmp ecx, 0x200a
jbe case.0x84e007.13
cmp ecx, 0x202f
jne case.0x808896.157
jmp case.0x84e007.13
cmp ecx, 0x3000
jne case.0x808896.157
jmp case.0x84e007.13
cmp ecx, 0x85
ja 0x84e1f9
je case.0x808896.157
cmp ecx, 0xa
jb case.0x84e007.13
cmp ecx, 0xd
jbe case.0x808896.157
jmp case.0x84e007.13
cmp ecx, 0x2028
jb case.0x84e007.13
cmp ecx, 0x2029
jbe case.0x808896.157
jmp case.0x84e007.13
cmp ecx, 0x85
ja 0x84e235
je case.0x84e007.13
lea eax, [ecx - 0xa]
cmp eax, 3
ja case.0x808896.157
jmp case.0x84e007.13
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x808896.157
jmp case.0x84e007.13
cmp ecx, 0xff
ja case.0x84e007.13
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
jne case.0x808896.157
jmp case.0x84e007.13
mov eax, 0xff
cmp word [ebp - 0x38], ax
ja case.0x808896.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 4
je case.0x808896.157
jmp case.0x84e007.13
mov eax, 0xff
cmp dx, ax
ja case.0x84e007.13
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
jne case.0x808896.157
jmp case.0x84e007.13
mov eax, 0xff
cmp dx, ax
ja case.0x808896.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 1
je case.0x808896.157
jmp case.0x84e007.13
mov eax, 0xff
cmp dx, ax
ja case.0x84e007.13
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
jne case.0x808896.157
jmp case.0x84e007.13
mov eax, 0xff
cmp dx, ax
ja case.0x808896.157
mov eax, dword [esi + 0x44]
test byte [ecx + eax], 0x10
je case.0x808896.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.00808810
add esp, 0x14
test eax, eax
je 0x84df80
jmp 0x8089db
mov eax, 0xfffffff2
jmp 0x8089db
cmp dword [esi + 0x8c], 0
je case.0x808896.157
cmp edi, dword [esi + 0x88]
jbe case.0x808896.157
mov dword [esi + 0x68], 1
cmp dword [esi + 0x8c], 1
jle case.0x808896.157
mov eax, 0xfffffff4
jmp 0x8089db
mov dword [esi + 0x9c], 2
jmp 0x808f6c
movzx eax, word [ebx + 2]
lea eax, [ebx + eax*2]
cmp dword [esi + 0x80], eax
jae 0x84e3d4
cmp word [ebx], 0x77
je 0x84e385
cmp word [eax], 0x77
jne 0x84e3d4
mov dword [ebp - 0x2c], 0
mov eax, dword [ebp - 0x1c]
mov dword [esi + 0x94], eax
movzx eax, word [ebx + 2]
lea ebx, [ebx + eax*2]
mov eax, dword [ebp - 0x34]
mov dword [esi + 0xb0], eax
cmp word [ebx], 0x77
je 0x808f60
mov eax, dword [esi + 0xc]
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x24]
mov dword [eax + edx*4], ecx
mov eax, dword [esi + 0xc]
mov ecx, dword [ebp - 0x40]
mov dword [eax + edx*4 + 4], ecx
mov ecx, dword [esi + 0x10]
sub ecx, dword [ebp - 0x30]
mov eax, dword [esi + 0xc]
mov edx, dword [ebp - 0x3c]
mov dword [eax + ecx*4], edx
mov eax, dword [ebp - 0x2c]
jmp 0x8089db
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 + 0x8c2140]
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.00808810
add esp, 0x14
mov dword [ebp - 0x2c], eax
cmp eax, 1
je 0x84e42d
cmp eax, 0xfffffc19
jne 0x84e441
cmp dword [esi + 0xb0], 0
jne 0x84e441
mov dword [esi + 0xb0], edi
jmp 0x8089db
cmp eax, 0xfffffc1f
jne 0x8089db
mov edx, dword [esi + 0x80]
mov ecx, edi
call fcn.0089b94c
test eax, eax
jne 0x84e3d4
mov dword [esi + 0x80], ebx
mov eax, 0xfffffc1e
jmp 0x8089db
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 + 0x8c2140]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
call fcn.00808810
add esp, 0x14
test eax, eax
jne 0x8089db
mov eax, 0xfffffc1c
jmp 0x8089db
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 + 0x8c2140]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
call fcn.00808810
add esp, 0x14
test eax, eax
je 0x84e53d
jmp 0x8089db
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 + 0x8c2140]
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.00808810
add esp, 0x14
cmp eax, 1
je 0x84e526
cmp eax, 0xfffffc19
jne 0x84e535
cmp dword [esi + 0xb0], 0
jne 0x84e535
mov dword [esi + 0xb0], edi
test eax, eax
jne 0x8089db
mov eax, 0xfffffc1d
jmp 0x8089db
mov eax, dword [ebp + 0x18]
inc eax
push eax
movzx eax, word [ebx]
push dword [ebp + 0x14]
push esi
movzx eax, byte [eax + 0x8c2140]
push dword [ebp + 0xc]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
mov ebx, dword [ebp - 8]
mov ecx, ebx
call fcn.00808810
add esp, 0x14
test eax, eax
jne 0x8089db
mov dword [esi + 0x80], ebx
mov eax, 0xfffffc1e
jmp 0x8089db
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 + 0x8c2140]
push dword [ebp + 8]
lea edx, [ebx + eax*2]
call fcn.00808810
add esp, 0x14
test eax, eax
je 0x84e61b
jmp 0x8089db
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 + 0x8c2140]
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.00808810
add esp, 0x14
cmp eax, 1
je 0x84e604
cmp eax, 0xfffffc19
jne 0x84e613
cmp dword [esi + 0xb0], 0
jne 0x84e613
mov dword [esi + 0xb0], edi
test eax, eax
jne 0x8089db
mov dword [esi + 0x80], ebx
mov eax, 0xfffffc20
jmp 0x8089db
cmp edi, 0x9f
je 0x8089b9
cmp dword [esi + 0xa8], 0
jne 0x8089b9
cmp dword [esi + 0x60], 0
jne case.0x808896.157
cmp dword [esi + 0x64], 0
je 0x8089b9
mov ecx, dword [esi + 0x98]
mov eax, dword [esi + 0x78]
lea eax, [eax + ecx*2]
cmp ebx, eax
je case.0x808896.157
jmp 0x8089b9
mov eax, 0xfffffc19
jmp 0x8089db
mov eax, 0xfffffffb
jmp 0x8089db
mov eax, 0xffffffeb
jmp 0x8089db
inc eax
mov dword [esi], eax
mov eax, 0xfffffff8
jmp 0x8089db