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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x158
push ebx
push esi
push edi
mov edi, edx
mov eax, ecx
mov dword [ebp - 0x34], edi
mov dword [ebp - 8], eax
test edi, edi
je 0x486160
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 0x44], 0
mov eax, dword [ebx]
mov ecx, dword [ebx + 0x50]
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x1c], ecx
cmp eax, dword [ebx + 4]
jae 0x48e726
inc eax
mov dword [ebx], eax
mov eax, dword [ebp + 0x18]
cmp eax, dword [ebx + 8]
jae 0x48e71c
cmp dword [ebx + 0x9c], 2
je 0x486191
lea esp, [esp]
movzx ecx, word [edi]
xor edx, edx
mov esi, ecx
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x38], edx
cmp esi, 0xa1
ja case.0x4087c4.98
movzx eax, byte [esi + 0x40932c]
jmp dword [eax*4 + 0x4091e0]
cmp esi, 0x88
jae 0x48c7e5
cmp esi, 0x81
je 0x48c7e5
cmp dword [ebx + 0x70], 0
jne 0x409106
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x77
je 0x409106
movzx eax, word [edi]
movzx eax, byte [eax + 0x4a16e0]
lea edi, [edi + eax*2]
mov dword [ebp - 0x34], edi
mov eax, dword [ebx + 0x50]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebx]
cmp eax, dword [ebx + 4]
jb 0x408780
jmp 0x48e726
movzx eax, word [edi + 2]
add eax, eax
mov esi, edi
sub esi, eax
mov ecx, 0x88
movzx eax, word [esi]
mov dword [ebp - 0x20], esi
cmp ax, cx
jae 0x486db8
mov ecx, 0x81
cmp ax, cx
je 0x486db8
xor ecx, ecx
mov dword [ebp - 0x14], ecx
cmp eax, 0x7d
jb 0x40886b
mov edx, 0x80
cmp ax, dx
jbe 0x48c97a
mov edx, 0x82
cmp ax, dx
je 0x48c97a
mov edx, 0x85
cmp ax, dx
je 0x408c8a
mov edx, 0x8a
cmp ax, dx
je 0x408c8a
mov edx, 0x86
cmp ax, dx
je 0x408c8a
mov edx, 0x8b
cmp ax, dx
je 0x408c8a
mov edx, dword [ebp + 0xc]
cmp word [edi], 0x78
jne 0x486e2e
mov eax, 0x81
cmp word [esi], ax
je 0x48c947
add edi, 4
mov dword [ebp - 0x34], edi
jmp 0x4087a0
mov edx, dword [ebp - 8]
mov edi, dword [ebp + 8]
cmp edx, edi
je 0x48e6c2
mov eax, dword [ebp + 0xc]
mov dword [ebx + 0x84], edx
mov dword [ebx + 0x90], eax
mov dword [ebx + 0x80], edi
test esi, esi
jne 0x48e708
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movzx ecx, word [edi + 0x22]
lea eax, [edi + 2]
add edi, 0x22
mov dword [ebp - 0x38], eax
mov eax, ecx
mov dword [ebp - 0x34], edi
mov dword [ebp - 0xc], eax
cmp eax, 0x6d
jle 0x40905e
mov eax, 1
mov dword [ebp - 0x18], 1
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x14], 1
test ecx, ecx
je 0x488011
cmp eax, 1
jl 0x4090bc
mov ecx, dword [ebx + 0x7c]
lea esp, [esp]
mov eax, dword [ebp - 8]
cmp eax, ecx
jae 0x409044
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
mov eax, ecx
and eax, 0xfc00
mov dword [ebp - 0x2c], ecx
cmp eax, 0xd800
je 0x487fdb
cmp ecx, 0xff
ja 0x488003
mov ebx, dword [ebp - 0x38]
and ecx, 7
mov eax, 1
shl eax, cl
mov ecx, dword [ebp - 0x2c]
shr ecx, 3
test byte [ecx + ebx], al
mov ebx, dword [ebp + 0x10]
jne 0x408ac1
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [ebx + 0x7c]
mov eax, dword [ebp - 8]
mov dword [ebp - 0x14], esi
cmp eax, esi
jae 0x409056
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp dword [ebp - 0x1c], edx
je 0x4089ee
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
je 0x487d15
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4af620]
shl eax, 7
and ecx, 0x8000007f
jns 0x408a10
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x4a1788]
movzx eax, byte [eax*8 + 0x4ae28a]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 8]
cmp eax, esi
jae 0x408aa9
mov edi, dword [ebp - 0x1c]
mov ebx, eax
movzx ecx, word [ebx]
mov esi, 1
test edi, edi
je 0x408a4f
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
je 0x487d3a
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4af620]
shl eax, 7
and ecx, 0x8000007f
jns 0x408a71
dec ecx
or ecx, 0xffffff80
inc ecx
mov edx, dword [ebp - 0x2c]
add eax, ecx
movzx eax, word [eax*2 + 0x4a1788]
movzx ecx, byte [eax*8 + 0x4ae28a]
mov eax, 1
shl eax, cl
test dword [edx*4 + 0x4a16ac], eax
jne 0x408b8d
mov esi, dword [ebp - 0x14]
mov edi, dword [ebp - 0x34]
mov dword [ebp - 8], ebx
mov ebx, dword [ebp + 0x10]
mov eax, dword [ebp - 8]
cmp dword [ebx + 0x8c], 0
jne 0x487d5e
add edi, 2
mov dword [ebp - 0x34], edi
jmp 0x4087a0
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebx + 0x7c]
inc eax
mov dword [ebp - 0x14], eax
cmp eax, dword [ebp - 0x28]
jle 0x408960
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x18]
cmp dword [ebp - 0x28], ebx
mov ebx, dword [ebp + 0x10]
je 0x4087a0
test edx, edx
jne 0x48cb1b
mov edx, dword [ebp - 0x28]
mov dword [ebp - 0x24], eax
test ecx, ecx
je 0x4880ed
cmp edx, dword [ebp - 0x18]
jge 0x408b58
mov dword [ebp - 0x2c], 1
cmp eax, dword [ebx + 0x7c]
jae 0x4880bb
movzx ecx, word [eax]
mov eax, ecx
and eax, 0xfc00
mov dword [ebp - 0x20], ecx
cmp eax, 0xd800
je 0x488081
cmp ecx, 0xff
ja 0x4880ad
shr dword [ebp - 0x20], 3
mov ebx, dword [ebp - 0x20]
and ecx, 7
mov eax, 1
shl eax, cl
mov ecx, dword [ebp - 0x38]
test byte [ebx + ecx], al
mov ebx, dword [ebp + 0x10]
jne 0x409189
cmp dword [ebp - 0x30], 0
jne 0x4087a0
mov eax, dword [ebp + 0x18]
mov esi, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.00408740
add esp, 0x14
test eax, eax
jne 0x408907
jmp 0x48cad1
lea ebx, [ebx + esi*2]
mov esi, dword [ebp - 0x14]
mov dword [ebp - 0x2c], ecx
cmp ebx, esi
jb 0x408a31
jmp 0x408a9d
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x409056
cmp dword [ebp - 0x1c], edx
je 0x488507
movzx esi, word [edi + 2]
add edi, 2
mov eax, esi
and eax, 0xfc00
mov edx, 1
cmp eax, 0xd800
je 0x488457
mov eax, dword [ebp - 8]
movzx ecx, word [eax]
cmp esi, 0x80
jae 0x48847b
cmp ecx, 0xff
ja 0x408bf7
mov eax, dword [ebx + 0x3c]
movzx ecx, byte [eax + ecx]
mov eax, dword [ebx + 0x3c]
movzx eax, byte [eax + esi]
cmp eax, ecx
jne case.0x4087c4.157
add edi, 2
add dword [ebp - 8], 2
mov dword [ebp - 0x34], edi
jmp 0x4087a0
mov edx, dword [ebx + 0x7c]
mov eax, dword [ebp - 8]
cmp eax, edx
jae 0x409044
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x1c], 0
mov dword [ebp - 8], eax
je 0x408c47
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
mov eax, dword [ebp - 8]
je 0x48779c
cmp ecx, 0xe
jb 0x408c58
cmp ecx, 0x85
jb case.0x4087c4.157
cmp ecx, 0xd
ja 0x48780d
jne 0x4877c1
cmp eax, edx
jae 0x4877db
cmp word [eax], 0xa
jne 0x408ab6
add eax, 2
add edi, 2
mov dword [ebp - 8], eax
mov dword [ebp - 0x34], edi
jmp 0x4087a0
movzx edx, word [esi + 4]
lea eax, [edx + edx]
mov dword [ebp - 0x40], eax
mov eax, dword [ebx + 0xa8]
test eax, eax
jne 0x486dc8
mov eax, dword [ebx + 0x94]
mov esi, dword [ebp - 0x40]
and eax, 0xffff0000
or eax, edx
mov dword [ebx + 0x94], eax
cmp esi, dword [ebx + 0x14]
mov esi, dword [ebp - 0x20]
jge 0x486ded
mov ecx, dword [ebp + 0xc]
cmp dword [ebp - 0x40], ecx
jg 0x486dfd
mov eax, dword [ebx + 0x10]
mov ecx, dword [ebx + 0xc]
sub eax, edx
mov edx, dword [ebp - 0x40]
mov eax, dword [ecx + eax*4]
mov dword [ecx + edx*4], eax
mov ecx, dword [ebp - 8]
sub ecx, dword [ebx + 0x78]
mov eax, dword [ebx + 0xc]
sar ecx, 1
mov dword [eax + edx*4 + 4], ecx
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x14]
cmp edx, eax
jg 0x4088b4
lea edx, [eax + 2]
mov dword [ebp + 0xc], edx
jmp 0x4088b4
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x409056
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 8], eax
cmp dword [ebp - 0x1c], edx
je 0x408d3b
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
je 0x487ae0
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0x2c]
sar eax, 7
movzx ecx, byte [eax + 0x4af620]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x408d61
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [edi + 2]
movzx ecx, word [ecx*2 + 0x4a1788]
cmp eax, 9
jne 0x487b08
movzx eax, word [edi + 4]
mov ecx, dword [eax*4 + 0x4b1820]
lea eax, [eax*4 + 0x4b1820]
cmp edx, ecx
jb 0x487d07
lea eax, [eax + 4]
cmp edx, ecx
je 0x408da4
mov ecx, dword [eax]
cmp edx, ecx
jae 0x408d92
jmp 0x487d07
cmp esi, 0x10
jne case.0x4087c4.157
add edi, 6
mov dword [ebp - 0x34], edi
jmp 0x4087a0
cmp dword [ebp - 0x1c], edx
je 0x488428
mov ax, word [edi + 2]
add edi, 2
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xd800
mov esi, 1
mov dword [ebp - 0x34], edi
cmp ax, cx
je 0x4091ce
mov eax, dword [ebx + 0x7c]
mov edx, dword [ebp - 8]
sub eax, edx
sar eax, 1
cmp esi, eax
jg 0x48cd77
test esi, esi
jle 0x4087a0
mov cx, word [edi]
mov ax, word [edx]
add edx, 2
add edi, 2
dec esi
mov dword [ebp - 8], edx
mov dword [ebp - 0x34], edi
cmp cx, ax
jne case.0x4087c4.157
test esi, esi
jle 0x4087a0
jmp 0x408e00
movzx edx, word [edi + 4]
mov dword [ebp - 0xc], edx
lea eax, [edx + edx]
mov dword [ebp - 0x40], eax
cmp eax, dword [ebx + 0x14]
jge case.0x4087c4.129
mov ecx, dword [ebx + 0xc]
mov edx, dword [ebp - 0x40]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0x20], eax
mov eax, dword [ecx + edx*4 + 4]
mov dword [ebp - 0x44], eax
mov eax, dword [ebx + 0x10]
sub eax, dword [ebp - 0xc]
lea ecx, [ecx + eax*4]
mov eax, dword [ecx]
mov dword [ebp - 0x28], eax
mov eax, dword [ebx + 0x94]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebx + 0xb0]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 8]
sub eax, dword [ebx + 0x78]
sar eax, 1
mov dword [ecx], eax
lea esp, [esp]
cmp esi, 0x88
jae 0x48e3b7
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
movzx eax, word [edi]
push ebx
movzx eax, byte [eax + 0x4a16e0]
push dword [ebp + 0xc]
lea edx, [edi + eax*2]
push dword [ebp + 8]
call fcn.00408740
mov edx, eax
add esp, 0x14
cmp edx, 0xfffffc1b
je 0x48e40e
cmp edx, 0xfffffc20
je 0x48e3c6
test edx, edx
je 0x48e3eb
pop edi
pop esi
mov eax, edx
pop ebx
mov esp, ebp
pop ebp
ret
lea eax, [esi - 0x55]
add edi, 2
test al, 1
je 0x4091d8
mov edx, 1
movsx ecx, byte [eax + 0x4a15fc]
movsx eax, byte [eax + 0x4a16a0]
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x408f13
mov dword [ebp - 0x24], 0x7fffffff
movzx eax, word [edi]
add edi, 2
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x34], edi
cmp eax, 0x10
je 0x4893bb
cmp eax, 0xf
je 0x4893b2
or eax, 0xffffffff
mov dword [ebp - 0x2c], eax
test ecx, ecx
jg 0x4893d7
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x24]
cmp dword [ebp - 0x10], esi
mov esi, dword [ebp - 0x30]
je 0x4087a0
test edx, edx
mov edx, dword [ebp - 0x2c]
je 0x48ac13
test edx, edx
jns 0x48d18d
cmp dword [ebp - 0x28], 0x16
mov edx, edi
je 0x48db03
test eax, eax
mov eax, dword [ebp + 0x18]
je 0x48e00b
inc eax
push eax
push dword [ebp + 0x14]
push ebx
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00408740
add esp, 0x14
test eax, eax
jne 0x408907
mov esi, dword [ebp - 8]
lea ecx, [ecx]
mov ecx, dword [ebp - 0x10]
cmp ecx, dword [ebp - 0x24]
jge case.0x4087c4.157
mov edx, dword [ebx + 0x7c]
cmp esi, edx
jae 0x48cd5f
cmp dword [ebp - 0x28], 0xc
jne 0x408fe7
cmp dword [ebx + 0x18], 0
je 0x48dcbc
push dword [ebp - 0x1c]
lea eax, [ebx + 0x1c]
push eax
push edx
mov edx, dword [ebx + 0x18]
mov ecx, esi
call fcn.00406a87
add esp, 0xc
test eax, eax
jne case.0x4087c4.157
mov ecx, dword [ebp - 0x10]
movzx edx, word [esi]
mov eax, edx
and eax, 0xfc00
add esi, 2
cmp eax, 0xd800
je 0x48dcf5
mov eax, dword [ebp - 0x28]
cmp eax, 0xc
jne 0x48dd16
cmp dword [ebx + 0x8c], 0
jne 0x48dfc9
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
inc ecx
push ebx
push dword [ebp + 0xc]
mov dword [ebp - 0x10], ecx
push dword [ebp + 8]
mov edx, edi
mov ecx, esi
call fcn.00408740
add esp, 0x14
test eax, eax
jne 0x408907
jmp 0x408fa0
cmp dword [ebx + 0x8c], 0
je case.0x4087c4.157
jmp 0x48cac6
cmp dword [ebx + 0x8c], edx
jmp 0x40904b
sub eax, 0x62
cmp eax, 0xb
ja case.default.0x409071
movzx eax, byte [eax + 0x4093d8]
jmp dword [eax*4 + 0x4093d0]
mov ecx, dword [ebp - 0xc]
add ecx, 0xffffff9e
add edi, 2
mov dword [ebp - 0x34], edi
cmp ecx, 8
jb 0x40917d
mov dword [ebp - 0x30], 1
movsx eax, byte [ecx + 0x4a15fc]
movsx ecx, byte [ecx + 0x4a16a0]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x18], ecx
test ecx, ecx
jne 0x40893b
mov dword [ebp - 0x18], 0x7fffffff
jmp 0x40893b
mov eax, dword [ebp - 8]
jmp 0x408ada
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x77
lea edi, [edi + eax*2]
je case.0x4087c4.119
mov dword [ebp - 0x34], edi
jmp 0x4087a0
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
add edi, 2
push ebx
push dword [ebp + 0xc]
mov edx, edi
push dword [ebp + 8]
call fcn.00408740
add esp, 0x14
test eax, eax
jne 0x408907
jmp 0x486aa6
mov eax, dword [ebx + 0xb0]
mov ecx, dword [ebp - 8]
mov dword [ebp - 0xc], eax
mov eax, dword [ebx + 0x94]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
movzx eax, word [edi]
push ebx
movzx eax, byte [eax + 0x4a16e0]
push dword [ebp + 0xc]
lea edx, [edi + eax*2]
push dword [ebp + 8]
call fcn.00408740
mov edx, eax
add esp, 0x14
cmp edx, 0xfffffc20
je 0x48c7f4
test edx, edx
jne 0x48e438
movzx eax, word [edi + 2]
lea edi, [edi + eax*2]
mov eax, dword [ebp - 0xc]
mov dword [ebx + 0xb0], eax
cmp word [edi], 0x77
jne case.0x4087c4.157
mov eax, dword [ebp - 0x2c]
mov dword [ebx + 0x94], eax
jmp case.0x4087c4.129
test cl, 1
jne 0x4091c4
xor edx, edx
jmp 0x409094
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x2c]
inc edx
lea eax, [eax + ecx*2]
mov dword [ebp - 8], eax
cmp edx, dword [ebp - 0x18]
jge 0x408b58
jmp 0x408b04
mov dword [ebp - 0x20], edx
jmp 0x486b3a
add edi, 2
jmp 0x486aff
mov eax, dword [ebp - 8]
jmp 0x486ec6
mov esi, dword [ebp - 0x1c]
jmp 0x4874db
mov edx, 1
jmp 0x409094
mov esi, 2
jmp 0x408de6
xor edx, edx
jmp 0x408ef1
cmp dword [ebp + 0x18], 0
lea ecx, [ebp + 0x18]
jne 0x486182
push 1
push 0
push 0
push 0
push 0
xor edx, edx
call fcn.00408740
add esp, 0x14
jmp 0x408907
sub ecx, eax
test ecx, ecx
jle 0x48618a
neg ecx
mov eax, ecx
jmp 0x408907
mov eax, dword [ebp - 8]
mov dword [ebp - 0x60], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x64], eax
lea eax, [ebp - 0x64]
mov dword [ebp + 0x14], eax
mov dword [ebx + 0x9c], 0
jmp 0x4087a0
inc dword [ebx + 0x28]
mov eax, dword [ebx + 0x28]
cmp eax, dword [ebx + 0x2c]
ja 0x48c820
movzx eax, word [edi]
movzx ecx, byte [eax + 0x4a16e0]
movzx eax, word [edi + 2]
add ecx, eax
lea edi, [edi + ecx*2]
mov dword [ebp - 0x34], edi
jmp 0x4087a0
mov eax, dword [ebp - 8]
mov esi, dword [ebp + 8]
mov dword [ebp - 0x14], eax
mov eax, dword [ebx + 0xb0]
mov dword [ebp - 0xc], edi
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
lea edx, [edi + 4]
push ebx
push dword [ebp + 0xc]
push esi
call fcn.00408740
add esp, 0x14
cmp eax, 1
je 0x486260
cmp eax, 0xfffffc20
jne 0x48623d
movzx ecx, word [edi + 2]
lea ecx, [edi + ecx*2]
cmp dword [ebx + 0x80], ecx
jae 0x408907
cmp word [edi], 0x77
je 0x486245
cmp word [ecx], 0x77
jne 0x408907
jmp 0x486245
test eax, eax
jne 0x408907
movzx eax, word [edi + 2]
lea edi, [edi + eax*2]
mov eax, dword [ebp - 0x2c]
mov dword [ebx + 0xb0], eax
cmp word [edi], 0x77
je 0x4861f1
mov ecx, dword [ebp + 8]
jmp 0x486269
mov ecx, dword [ebx + 0x80]
mov dword [ebp + 8], ecx
movzx eax, word [edi]
mov edx, 0x82
cmp ax, dx
je 0x48627f
cmp eax, 0x77
jne case.0x4087c4.157
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x77
lea edi, [edi + eax*2]
je 0x48627f
cmp word [edi], 0x78
mov edx, dword [ebx + 0x90]
mov eax, dword [ebx + 0x84]
mov dword [ebp + 0xc], edx
mov dword [ebp - 8], eax
je 0x488c47
cmp eax, dword [ebp - 0x14]
jne 0x48c612
add edi, 4
mov dword [ebp - 0x34], edi
jmp 0x4087a0
movzx ecx, word [edi + 2]
add edi, 4
mov dword [ebp - 0x28], ecx
cmp word [edi], 0x76
jne 0x4863a0
cmp dword [0x4c630c], edx
je 0x486397
mov dword [ebp - 0xa4], 2
movzx eax, word [edi + 2]
mov dword [ebp - 0xa0], eax
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x9c], eax
mov eax, dword [ebx + 0x78]
mov dword [ebp - 0x98], eax
mov eax, dword [ebx + 0x7c]
sub eax, dword [ebx + 0x78]
sar eax, 1
mov dword [ebp - 0x94], eax
mov eax, dword [ebp + 8]
sub eax, dword [ebx + 0x78]
sar eax, 1
mov dword [ebp - 0x90], eax
mov eax, dword [ebp - 8]
sub eax, dword [ebx + 0x78]
sar eax, 1
mov dword [ebp - 0x8c], eax
movzx eax, word [edi + 4]
mov dword [ebp - 0x7c], eax
movzx eax, word [edi + 6]
mov dword [ebp - 0x78], eax
mov eax, dword [ebp + 0xc]
cdq
sub eax, edx
sar eax, 1
mov dword [ebp - 0x88], eax
movzx eax, word [ebx + 0x94]
mov dword [ebp - 0x84], eax
test eax, eax
jne 0x486364
mov dword [ebp - 0x84], 0xffffffff
mov eax, dword [ebx + 0xac]
mov dword [ebp - 0x80], eax
mov eax, dword [ebx + 0xb4]
mov dword [ebp - 0x74], eax
lea eax, [ebp - 0xa4]
push eax
call dword [0x4c630c]
add esp, 4
test eax, eax
jg case.0x4087c4.157
js 0x408907
mov ecx, dword [ebp - 0x28]
add edi, 8
sub ecx, 4
mov dword [ebp - 0x28], ecx
movzx eax, word [edi]
mov dword [ebp - 0x14], eax
xor edx, edx
add eax, 0xffffff73
mov dword [ebp - 0x2c], edx
cmp eax, 4
ja case.default.0x4863b9
jmp dword [eax*4 + 0x48e734]
mov ecx, dword [ebx + 0xa8]
test ecx, ecx
je 0x486560
movzx eax, word [edi + 2]
cmp eax, 0xffff
je 0x48645f
cmp eax, dword [ecx + 4]
je 0x48645f
xor edx, edx
jmp 0x486560
mov eax, dword [ebx + 0xa8]
test eax, eax
je case.0x4863b9.145
mov eax, dword [ebx + 0x24]
movzx ecx, word [edi + 2]
imul ecx, eax
mov dword [ebp - 0x20], eax
mov eax, dword [ebx + 0x30]
lea eax, [eax + ecx*2]
movzx ecx, word [edi + 4]
mov dword [ebp - 0x2c], eax
test ecx, ecx
jle 0x486560
mov edx, dword [ebx + 0xa8]
mov edx, dword [edx + 4]
mov dword [ebp - 0xc], edx
xor edx, edx
movzx eax, word [eax]
dec ecx
cmp eax, dword [ebp - 0xc]
je 0x48645f
mov eax, dword [ebp - 0x2c]
mov ebx, dword [ebp - 0x20]
lea eax, [eax + ebx*2]
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 0x2c], eax
test ecx, ecx
jg 0x486427
jmp 0x486560
movzx edx, word [edi + 2]
add edx, edx
mov dword [ebp - 0x40], edx
cmp edx, dword [ebp + 0xc]
jge 0x486473
mov eax, dword [ebx + 0xc]
cmp dword [eax + edx*4], 0
jl 0x486473
mov eax, dword [ebp - 0x14]
mov edx, 1
movzx ecx, byte [eax + 0x4a16e0]
jmp case.0x4863b9.145
xor edx, edx
jmp case.0x4863b9.145
mov eax, dword [ebx + 0x24]
movzx ecx, word [edi + 2]
imul ecx, eax
mov dword [ebp - 0xc], eax
mov eax, dword [ebx + 0x30]
lea eax, [eax + ecx*2]
movzx ecx, word [edi + 4]
mov dword [ebp - 0x2c], eax
test ecx, ecx
jle 0x486560
xor edx, edx
movzx ebx, word [eax]
add ebx, ebx
dec ecx
cmp ebx, dword [ebp + 0xc]
mov dword [ebp - 0x40], ebx
mov ebx, dword [ebp + 0x10]
jge 0x4864c0
mov eax, dword [ebx + 0xc]
mov ebx, dword [ebp - 0x40]
cmp dword [eax + ebx*4], edx
mov ebx, dword [ebp + 0x10]
jge 0x48645f
mov eax, dword [ebp - 0x2c]
mov ebx, dword [ebp - 0xc]
lea eax, [eax + ebx*2]
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 0x2c], eax
test ecx, ecx
jg 0x48649e
jmp 0x486560
mov ecx, dword [ebp - 8]
mov dword [ebx + 0x9c], 1
mov eax, dword [ebp + 0x18]
inc eax
push eax
push 0
push ebx
push dword [ebp + 0xc]
mov edx, edi
push dword [ebp + 8]
call fcn.00408740
add esp, 0x14
cmp eax, 1
jne 0x48654e
mov eax, dword [ebx + 0x90]
cmp eax, dword [ebp + 0xc]
jle 0x48650d
mov dword [ebp + 0xc], eax
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x77
lea edi, [edi + eax*2]
mov edx, 1
jne 0x48652e
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x77
lea edi, [edi + eax*2]
je 0x486520
mov eax, dword [ebp - 0x14]
mov ecx, 2
movzx eax, byte [eax + 0x4a16e0]
sub ecx, eax
mov eax, dword [ebp - 0x14]
lea edi, [edi + ecx*2]
movzx ecx, byte [eax + 0x4a16e0]
jmp case.0x4863b9.145
test eax, eax
je 0x48655d
cmp eax, 0xfffffc20
jne 0x408907
mov edx, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x28]
lea edi, [edi + ecx*2]
mov dword [ebp - 0x34], edi
test edx, edx
jne 0x486578
cmp word [edi - 4], 0x77
jne 0x4087a0
cmp esi, 0x8c
jne 0x408811
mov ecx, dword [ebp - 8]
mov dword [ebx + 0x9c], 2
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00408740
add esp, 0x14
jmp 0x408907
movzx edx, word [edi + 2]
mov eax, dword [ebx + 0x94]
and eax, 0xffff0000
or eax, edx
lea esi, [edx + edx]
mov dword [ebx + 0x94], eax
mov dword [ebp - 0x40], esi
cmp esi, dword [ebx + 0x14]
jl 0x4865e7
or eax, 0x10000
add edi, 4
mov dword [ebx + 0x94], eax
mov dword [ebp - 0x34], edi
jmp 0x4087a0
mov eax, dword [ebx + 0x10]
mov ecx, dword [ebx + 0xc]
sub eax, edx
mov eax, dword [ecx + eax*4]
mov dword [ecx + esi*4], eax
mov ecx, dword [ebp - 8]
sub ecx, dword [ebx + 0x78]
mov eax, dword [ebx + 0xc]
sar ecx, 1
mov dword [eax + esi*4 + 4], ecx
cmp dword [ebp + 0xc], esi
jg 0x48660f
lea eax, [esi + 2]
mov dword [ebp + 0xc], eax
add edi, 4
mov dword [ebp - 0x34], edi
jmp 0x4087a0
cmp dword [ebx + 0x9c], 1
mov eax, dword [ebx + 0xb0]
mov dword [ebp - 0xc], eax
jne 0x486639
mov esi, 1
mov dword [ebx + 0x9c], edx
jmp 0x48663b
xor esi, esi
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 8]
inc eax
push eax
push 0
push ebx
push dword [ebp + 0xc]
lea edx, [edi + 4]
push dword [ebp + 8]
call fcn.00408740
mov ecx, eax
add esp, 0x14
cmp ecx, 1
je 0x4866b4
cmp ecx, 0xfffffc19
je 0x4866b4
mov eax, dword [ebp - 0xc]
mov dword [ebx + 0xb0], eax
cmp ecx, 0xfffffc20
jne 0x48669c
movzx eax, word [edi + 2]
lea eax, [edi + eax*2]
cmp dword [ebx + 0x80], eax
jae 0x48618a
cmp word [edi], 0x77
je 0x4866a4
cmp word [eax], 0x77
jne 0x48618a
jmp 0x4866a4
test ecx, ecx
jne 0x48618a
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x77
lea edi, [edi + eax*2]
je 0x48663b
jmp 0x4866bd
mov eax, dword [ebx + 0x80]
mov dword [ebp + 8], eax
cmp word [edi], 0x78
je case.0x4087c4.157
test esi, esi
jne 0x408902
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x77
lea edi, [edi + eax*2]
je 0x4866cf
mov eax, dword [ebx + 0x90]
add edi, 4
mov dword [ebp - 0x34], edi
mov dword [ebp + 0xc], eax
jmp 0x4087a0
cmp dword [ebx + 0x9c], 1
mov eax, dword [ebx + 0xb0]
mov dword [ebp - 0xc], eax
jne 0x486710
mov esi, 1
mov dword [ebx + 0x9c], edx
jmp 0x486712
xor esi, esi
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 8]
inc eax
push eax
push 0
push ebx
push dword [ebp + 0xc]
lea edx, [edi + 4]
push dword [ebp + 8]
call fcn.00408740
mov ecx, eax
mov eax, dword [ebp - 0xc]
add esp, 0x14
mov dword [ebx + 0xb0], eax
cmp ecx, 0xfffffc20
jg 0x48676e
jne 0x486783
movzx eax, word [edi + 2]
lea eax, [edi + eax*2]
cmp dword [ebx + 0x80], eax
jae 0x48679e
cmp word [edi], 0x77
je 0x48675e
cmp word [eax], 0x77
jne 0x48679e
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x77
lea edi, [edi + eax*2]
je 0x486712
jmp 0x4867ac
mov eax, ecx
sub eax, 0
je 0x48675e
dec eax
je case.0x4087c4.157
mov eax, ecx
jmp 0x408907
cmp ecx, 0xfffffc19
je case.0x4087c4.157
lea eax, [ecx + 0x3e4]
cmp eax, 3
ja 0x48618a
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x77
lea edi, [edi + eax*2]
je 0x48679e
test esi, esi
jne 0x408902
add edi, 4
mov dword [ebp - 0x34], edi
jmp 0x4087a0
cmp dword [ebp - 0x1c], edx
je 0x486803
movzx ecx, word [edi + 2]
test ecx, ecx
jle 0x48681d
mov eax, dword [ebp - 8]
sub eax, 2
dec ecx
mov dword [ebp - 8], eax
cmp eax, dword [ebx + 0x78]
jb case.0x4087c4.157
mov ax, word [eax]
mov edx, 0xfc00
and ax, dx
mov edx, 0xdc00
cmp ax, dx
mov eax, dword [ebp - 8]
jne 0x4867fd
sub eax, 2
mov dword [ebp - 8], eax
test ecx, ecx
jg 0x4867cc
jmp 0x486820
movzx eax, word [edi + 2]
mov ecx, dword [ebp - 8]
neg eax
lea ecx, [ecx + eax*2]
mov eax, ecx
mov dword [ebp - 8], ecx
cmp eax, dword [ebx + 0x78]
jb case.0x4087c4.157
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x88]
jae 0x48682e
mov dword [ebx + 0x88], eax
add edi, 4
mov dword [ebp - 0x34], edi
jmp 0x4087a0
cmp dword [0x4c630c], edx
je 0x486908
mov dword [ebp - 0xd8], 2
movzx eax, word [edi + 2]
mov dword [ebp - 0xd4], eax
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0xd0], eax
mov eax, dword [ebx + 0x78]
mov dword [ebp - 0xcc], eax
mov eax, dword [ebx + 0x7c]
sub eax, dword [ebx + 0x78]
sar eax, 1
mov dword [ebp - 0xc8], eax
mov eax, dword [ebp + 8]
sub eax, dword [ebx + 0x78]
sar eax, 1
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 8]
sub eax, dword [ebx + 0x78]
sar eax, 1
mov dword [ebp - 0xc0], eax
movzx eax, word [edi + 4]
mov dword [ebp - 0xb0], eax
movzx eax, word [edi + 6]
mov dword [ebp - 0xac], eax
mov eax, dword [ebp + 0xc]
cdq
sub eax, edx
sar eax, 1
mov dword [ebp - 0xbc], eax
movzx eax, word [ebx + 0x94]
mov dword [ebp - 0xb8], eax
test eax, eax
jne 0x4868d2
mov dword [ebp - 0xb8], 0xffffffff
mov eax, dword [ebx + 0xac]
mov dword [ebp - 0xb4], eax
mov eax, dword [ebx + 0xb4]
mov dword [ebp - 0xa8], eax
lea eax, [ebp - 0xd8]
push eax
call dword [0x4c630c]
add esp, 4
test eax, eax
jg case.0x4087c4.157
js 0x408907
add edi, 8
mov dword [ebp - 0x34], edi
jmp 0x4087a0
movzx eax, word [edi + 2]
mov ecx, dword [ebx + 0x74]
lea esi, [ecx + eax*2]
cmp esi, ecx
jne 0x486925
xor edx, edx
jmp 0x486929
movzx edx, word [esi + 4]
mov ecx, dword [ebx + 0xa8]
test ecx, ecx
je 0x486950
mov eax, dword [ebp - 8]
cmp edx, dword [ecx + 4]
jne 0x48694a
cmp eax, dword [ecx + 0x14]
jne 0x48694a
mov eax, 0xffffffe6
jmp 0x408907
mov ecx, dword [ecx]
test ecx, ecx
jne 0x486936
mov dword [ebp - 0x58], edx
mov eax, dword [ebx + 0x94]
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 8]
mov dword [ebp - 0x48], eax
mov eax, dword [ebx + 0xa8]
mov dword [ebp - 0x5c], eax
lea eax, [ebp - 0x5c]
mov dword [ebx + 0xa8], eax
mov ecx, dword [ebx + 0x10]
add edi, 4
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x50], ecx
cmp ecx, 0x1e
jg 0x486990
lea eax, [ebp - 0x154]
mov dword [ebp - 0x54], eax
jmp 0x4869af
lea eax, [ecx*4]
push eax
call dword [0x4bf15c]
add esp, 4
mov dword [ebp - 0x54], eax
test eax, eax
je 0x48c8b4
mov ecx, dword [ebp - 0x50]
shl ecx, 2
push ecx
push dword [ebx + 0xc]
push eax
call fcn.00422d90
mov eax, 0x88
add esp, 0xc
cmp word [esi], ax
sbb eax, eax
inc eax
mov dword [ebp - 0x2c], eax
test eax, eax
je 0x4869db
mov dword [ebx + 0x9c], 2
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
movzx eax, word [esi]
push ebx
movzx eax, byte [eax + 0x4a16e0]
push dword [ebp + 0xc]
lea edx, [esi + eax*2]
push dword [ebp + 8]
call fcn.00408740
mov ecx, dword [ebp - 0x50]
add esp, 0x14
shl ecx, 2
push ecx
push dword [ebp - 0x54]
mov dword [ebp - 0xc], eax
push dword [ebx + 0xc]
call fcn.00422d90
mov eax, dword [ebp - 0x4c]
mov dword [ebx + 0x94], eax
mov eax, dword [ebp - 0x5c]
mov dword [ebx + 0xa8], eax
mov eax, dword [ebp - 0xc]
add esp, 0xc
cmp eax, 1
je 0x486a78
cmp eax, 0xfffffc19
je 0x486a78
cmp eax, 0xfffffc1c
jl 0x486a4d
cmp eax, 0xfffffc20
jle case.0x4087c4.157
test eax, eax
jne 0x48c891
lea eax, [ebp - 0x5c]
mov dword [ebx + 0xa8], eax
movzx eax, word [esi + 2]
cmp word [esi + eax*2], 0x77
lea esi, [esi + eax*2]
jne 0x48c868
mov eax, dword [ebp - 0x2c]
jmp 0x4869cd
mov eax, dword [ebp - 0x54]
lea ecx, [ebp - 0x154]
cmp eax, ecx
je 0x486a8f
push eax
call dword [0x4beb8c]
add esp, 4
mov eax, dword [ebx + 0x84]
mov dword [ebp - 8], eax
mov eax, dword [ebx + 0x80]
mov dword [ebp + 8], eax
jmp 0x4087a0
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x77
lea edi, [edi + eax*2]
je 0x486aa6
add edi, 4
mov dword [ebp - 0x34], edi
jmp 0x4087a0
add edi, 2
mov dword [ebp - 0x34], edi
mov edx, edi
movzx eax, word [edx + 2]
cmp word [edx + eax*2], 0x77
lea edx, [edx + eax*2]
je 0x486ac7
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
add edx, 4
push ebx
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00408740
add esp, 0x14
test eax, eax
je 0x4087a0
jmp 0x408907
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x77
lea edi, [edi + eax*2]
je 0x486aff
add edi, 4
mov dword [ebp - 0x34], edi
jmp 0x4087a0
movzx esi, word [edi + 2]
add edi, 2
mov dword [ebp - 0x20], 1
cmp esi, 0x86
je 0x486b3a
cmp esi, 0x8b
jne 0x486cbe
movzx edx, word [edi + 4]
mov dword [ebp - 0x14], edx
lea eax, [edx + edx]
mov dword [ebp - 0x40], eax
cmp eax, dword [ebx + 0x14]
jge case.0x4087c4.132
mov ecx, dword [ebx + 0xc]
mov edx, dword [ebp - 0x40]
xor eax, eax
mov dword [ebp - 0x28], eax
mov eax, edi
sub eax, dword [ebx + 0x74]
sar eax, 1
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x40]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0x18], eax
mov eax, dword [ecx + edx*4 + 4]
mov dword [ebp - 0x38], eax
mov eax, dword [ebx + 0x10]
sub eax, dword [ebp - 0x14]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0x34], eax
mov eax, dword [ebx + 0x94]
mov dword [ebp - 0x2c], eax
mov edx, dword [ebp - 8]
sub edx, dword [ebx + 0x78]
mov ecx, dword [ebx + 0x10]
sub ecx, dword [ebp - 0x14]
mov eax, dword [ebx + 0xc]
sar edx, 1
mov dword [eax + ecx*4], edx
cmp esi, 0x88
jb 0x486bb0
mov dword [ebx + 0x9c], 2
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
movzx eax, word [edi]
push ebx
movzx eax, byte [eax + 0x4a16e0]
push dword [ebp + 0xc]
lea edx, [edi + eax*2]
push dword [ebp + 8]
call fcn.00408740
mov ecx, eax
add esp, 0x14
cmp ecx, 0xfffffc1a
jne 0x486c1b
mov eax, dword [ebx + 0x90]
mov ecx, dword [ebp - 0xc]
mov dword [ebp + 0xc], eax
mov eax, dword [ebx + 0x84]
mov dword [ebp - 8], eax
mov eax, dword [ebx + 0x74]
lea edi, [eax + ecx*2]
mov eax, dword [ebx + 0x94]
mov dword [ebp - 0x2c], eax
mov eax, 1
mov dword [ebp - 0x28], eax
mov eax, dword [ebx + 0x80]
mov dword [ebp + 8], eax
jmp 0x486b8a
cmp ecx, 0xfffffc20
jne 0x486c48
movzx eax, word [edi + 2]
lea eax, [edi + eax*2]
cmp dword [ebx + 0x80], eax
jae 0x48618a
cmp word [edi], 0x77
je 0x486c50
cmp word [eax], 0x77
jne 0x48618a
jmp 0x486c50
test ecx, ecx
jne 0x48618a
mov eax, dword [ebp - 0x2c]
mov dword [ebx + 0x94], eax
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x77
lea edi, [edi + eax*2]
je 0x486b8a
mov eax, dword [ebp - 0x28]
test eax, eax
jne 0x486c9a
mov eax, dword [ebx + 0xc]
mov edx, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x18]
mov dword [eax + edx*4], ecx
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebp - 0x38]
mov dword [eax + edx*4 + 4], ecx
mov ecx, dword [ebx + 0x10]
sub ecx, dword [ebp - 0x14]
mov eax, dword [ebx + 0xc]
mov edx, dword [ebp - 0x34]
mov dword [eax + ecx*4], edx
mov eax, dword [ebp - 0x28]
cmp dword [ebp - 0x20], 0
jne 0x488c47
test eax, eax
je case.0x4087c4.157
add edi, 4
mov dword [ebp - 0x34], edi
jmp 0x4087a0
mov dword [ebp - 0x20], 0
mov eax, edi
sub eax, dword [ebx + 0x74]
mov dword [ebp - 0x2c], 0
sar eax, 1
mov dword [ebp - 0xc], eax
mov eax, dword [ebx + 0x94]
mov dword [ebp - 0x14], eax
cmp esi, 0x88
jb 0x486cea
mov dword [ebx + 0x9c], 2
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
movzx eax, word [edi]
push ebx
movzx eax, byte [eax + 0x4a16e0]
push dword [ebp + 0xc]
lea edx, [edi + eax*2]
push dword [ebp + 8]
call fcn.00408740
mov ecx, eax
add esp, 0x14
cmp ecx, 0xfffffc1a
jne 0x486d48
mov eax, dword [ebx + 0x90]
mov ecx, dword [ebp - 0xc]
mov dword [ebp + 0xc], eax
mov eax, dword [ebx + 0x84]
mov dword [ebp - 8], eax
mov eax, dword [ebx + 0x74]
mov dword [ebp - 0x2c], 1
lea edi, [eax + ecx*2]
mov eax, dword [ebx + 0x80]
mov dword [ebp + 8], eax
jmp 0x486cd8
cmp ecx, 0xfffffc20
jne 0x486d75
movzx eax, word [edi + 2]
lea eax, [edi + eax*2]
cmp dword [ebx + 0x80], eax
jae 0x48618a
cmp word [edi], 0x77
je 0x486d7d
cmp word [eax], 0x77
jne 0x48618a
jmp 0x486d7d
test ecx, ecx
jne 0x48618a
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x77
lea edi, [edi + eax*2]
jne 0x486d99
mov eax, dword [ebp - 0x14]
mov dword [ebx + 0x94], eax
jmp 0x486cd8
cmp dword [ebp - 0x2c], 0
jne 0x488c47
cmp dword [ebp - 0x20], 0
je case.0x4087c4.157
add edi, 4
mov dword [ebp - 0x34], edi
jmp 0x4087a0
mov edx, dword [ebp + 0x14]
mov ecx, dword [edx + 4]
mov edx, dword [edx]
mov dword [ebp + 0x14], edx
jmp 0x408855
cmp dword [eax + 4], edx
jne 0x408ca2
mov eax, dword [ebp - 8]
mov dword [ebx + 0x84], eax
mov eax, dword [ebp + 8]
mov dword [ebx + 0x80], eax
mov eax, 1
jmp 0x408907
or eax, 0x10000
mov dword [ebx + 0x94], eax
jmp 0x4088b1
mov eax, dword [ebx + 0xc]
lea ecx, [eax + ecx*4]
mov dword [ebp - 0x2c], ecx
mov ecx, dword [ebp - 0x40]
lea ecx, [eax + ecx*4]
mov eax, dword [ebp - 0x2c]
cmp eax, ecx
jae 0x408cd0
mov edi, dword [ebp - 0x2c]
sub ecx, eax
dec ecx
shr ecx, 2
inc ecx
or eax, 0xffffffff
rep stosd dword es:[edi], eax
mov edi, dword [ebp - 0x34]
jmp 0x408cd0
mov eax, dword [ebp - 8]
cmp eax, ecx
je 0x4088be
movzx ecx, word [edi]
cmp ecx, 0x7b
je 0x48c928
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
push ebx
push edx
push dword [ebp + 8]
cmp ecx, 0x7a
jne 0x48c65c
mov esi, dword [ebp - 8]
lea edx, [edi + 4]
mov ecx, esi
call fcn.00408740
add esp, 0x14
test eax, eax
jne 0x408907
mov edi, dword [ebp - 0x20]
mov ecx, 0x81
movzx eax, word [edi]
cmp ax, cx
je 0x48c8be
mov ecx, 0x88
cmp ax, cx
jb 0x40880e
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.00408740
add esp, 0x14
jmp 0x408907
mov eax, dword [ebp - 8]
cmp dword [ebx + 0x48], edx
je 0x486ec6
cmp eax, dword [ebx + 0x78]
je case.0x4087c4.157
cmp eax, dword [ebx + 0x78]
jne case.0x4087c4.157
add edi, 2
mov dword [ebp - 0x34], edi
jmp 0x4087a0
mov eax, dword [ebp - 8]
cmp dword [ebx + 0x48], edx
je 0x486eeb
cmp eax, dword [ebx + 0x78]
je case.0x4087c4.157
mov ecx, dword [ebx + 0x78]
cmp eax, ecx
je 0x408ab6
cmp eax, dword [ebx + 0x7c]
je case.0x4087c4.157
mov edx, dword [ebx + 0x18]
test edx, edx
je 0x486f2e
cmp eax, ecx
jbe case.0x4087c4.157
push dword [ebp - 0x1c]
lea eax, [ebx + 0x1c]
push eax
push ecx
mov ecx, dword [ebp - 8]
call fcn.004725a3
add esp, 0xc
test eax, eax
je case.0x4087c4.157
jmp 0x408ab6
mov esi, dword [ebx + 0x1c]
lea edx, [esi + esi]
lea eax, [edx + ecx]
cmp dword [ebp - 8], eax
jb case.0x4087c4.157
mov ecx, dword [ebp - 8]
sub ecx, edx
mov ax, word [ecx]
cmp ax, word [ebx + 0x34]
jne case.0x4087c4.157
cmp esi, 1
je 0x408ab6
mov ax, word [ecx + 2]
cmp ax, word [ebx + 0x36]
jne case.0x4087c4.157
jmp 0x408ab6
mov ecx, dword [ebx + 0x98]
mov eax, dword [ebx + 0x78]
lea eax, [eax + ecx*2]
cmp dword [ebp - 8], eax
jne case.0x4087c4.157
add edi, 2
mov dword [ebp - 0x34], edi
jmp 0x4087a0
mov eax, dword [ebp - 8]
add edi, 2
mov dword [ebp + 8], eax
mov dword [ebp - 0x34], edi
jmp 0x4087a0
mov ecx, dword [ebx + 0x7c]
mov eax, dword [ebp - 8]
cmp eax, ecx
jae 0x487064
mov edx, dword [ebx + 0x18]
test edx, edx
je 0x48702d
push dword [ebp - 0x1c]
lea eax, [ebx + 0x1c]
push eax
push ecx
mov ecx, dword [ebp - 8]
call fcn.00406a87
add esp, 0xc
test eax, eax
jne 0x408ab6
mov eax, dword [ebp - 8]
cmp dword [ebx + 0x8c], 0
je case.0x4087c4.157
add eax, 2
cmp eax, dword [ebx + 0x7c]
jb case.0x4087c4.157
cmp dword [ebx + 0x18], 0
jne case.0x4087c4.157
cmp dword [ebx + 0x1c], 2
jne case.0x4087c4.157
mov eax, dword [ebp - 8]
mov ax, word [eax]
cmp ax, word [ebx + 0x34]
jne case.0x4087c4.157
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jle case.0x4087c4.157
mov eax, 0xfffffff4
jmp 0x408907
mov edx, dword [ebx + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
mov eax, dword [ebp - 8]
cmp eax, ecx
ja 0x486fd2
mov ax, word [eax]
cmp ax, word [ebx + 0x34]
jne 0x486fcf
cmp edx, 1
je 0x408ab6
mov eax, dword [ebp - 8]
mov ax, word [eax + 2]
cmp ax, word [ebx + 0x36]
jne 0x486fcf
jmp 0x408ab6
cmp dword [ebx + 0x4c], edx
jne case.0x4087c4.157
cmp dword [ebx + 0x8c], edx
jmp 0x48707c
cmp dword [ebx + 0x8c], 0
je 0x408ab6
cmp eax, dword [ebx + 0x88]
jbe 0x408ab6
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x487023
add edi, 2
mov dword [ebp - 0x34], edi
jmp 0x4087a0
cmp dword [ebx + 0x4c], edx
jne case.0x4087c4.157
cmp dword [ebx + 0x5c], edx
je case.0x4087c4.23
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jb case.0x4087c4.157
cmp dword [ebx + 0x8c], edx
jmp 0x48707c
mov ecx, dword [ebx + 0x7c]
mov eax, dword [ebp - 8]
cmp eax, ecx
jae 0x487075
mov edx, dword [ebx + 0x18]
lea esi, [ebx + 0x1c]
test edx, edx
je 0x4870f7
push dword [ebp - 0x1c]
push esi
push ecx
mov ecx, eax
call fcn.00406a87
add esp, 0xc
test eax, eax
jne 0x48712c
jmp 0x486fcf
mov edx, dword [esi]
lea eax, [edx + edx]
sub ecx, eax
mov eax, dword [ebp - 8]
cmp eax, ecx
ja 0x486fd2
mov ax, word [eax]
cmp ax, word [ebx + 0x34]
jne 0x486fcf
cmp edx, 1
je 0x48712c
mov eax, dword [ebp - 8]
mov ax, word [eax + 2]
cmp ax, word [ebx + 0x36]
jne 0x486fcf
mov ecx, dword [esi]
mov eax, dword [ebx + 0x7c]
add ecx, ecx
sub eax, ecx
cmp dword [ebp - 8], eax
mov eax, dword [ebp - 8]
jne 0x486fd2
jmp 0x487075
mov eax, dword [ebp - 8]
cmp dword [ebp - 0x1c], edx
je 0x4872f7
cmp eax, dword [ebx + 0x78]
je 0x48722f
lea edx, [eax - 2]
mov ecx, 0xfc00
mov ax, word [edx]
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x487176
sub edx, 2
cmp edx, dword [ebx + 0x88]
jae 0x487184
mov dword [ebx + 0x88], edx
movzx ecx, word [edx]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4871af
movzx eax, word [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
cmp dword [ebx + 0x58], 0
je 0x487211
cmp ecx, 0x5f
jne 0x4871c2
mov eax, dword [ebp - 8]
lea esi, [ecx - 0x5e]
jmp 0x487231
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4af620]
shl eax, 7
and ecx, 0x8000007f
jns 0x4871e4
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x4a1788]
movzx eax, byte [eax*8 + 0x4ae289]
mov eax, dword [eax*4 + 0x4b9190]
cmp eax, 1
je 0x487207
cmp eax, 3
jne 0x48722c
mov eax, dword [ebp - 8]
mov esi, 1
jmp 0x487231
cmp ecx, 0x100
jae 0x48722c
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 0x10
je 0x48722c
mov eax, dword [ebp - 8]
mov esi, 1
jmp 0x487231
mov eax, dword [ebp - 8]
xor esi, esi
cmp eax, dword [ebx + 0x7c]
jae 0x487299
movzx ecx, word [eax]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x487264
mov eax, dword [ebp - 8]
and ecx, 0x3ff
movzx eax, word [eax + 2]
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
cmp dword [ebx + 0x58], 0
je 0x4872e0
cmp ecx, 0x5f
je 0x487420
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4af620]
shl eax, 7
and ecx, 0x8000007f
js 0x4873cc
jmp 0x4873d1
cmp dword [ebx + 0x8c], 0
je 0x4872be
cmp eax, dword [ebx + 0x88]
jbe 0x4872be
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x487023
xor ecx, ecx
mov ax, word [edi]
add edi, 2
mov dword [ebp - 0x34], edi
cmp ax, 5
jne 0x48742a
cmp ecx, esi
jne 0x4087a0
jmp case.0x4087c4.157
cmp ecx, 0x100
jae 0x4872be
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 0x10
jne 0x487420
jmp 0x4872be
cmp eax, dword [ebx + 0x78]
je 0x487396
cmp eax, dword [ebx + 0x88]
ja 0x487314
add eax, 0xfffffffe
mov dword [ebx + 0x88], eax
mov eax, dword [ebp - 8]
movzx ecx, word [eax - 2]
cmp dword [ebx + 0x58], edx
je 0x487376
cmp ecx, 0x5f
jne 0x487327
lea esi, [ecx - 0x5e]
jmp 0x487398
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4af620]
shl eax, 7
and ecx, 0x8000007f
jns 0x487349
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x4a1788]
movzx eax, byte [eax*8 + 0x4ae289]
mov eax, dword [eax*4 + 0x4b9190]
cmp eax, 1
je 0x48736c
cmp eax, 3
jne 0x487393
mov eax, dword [ebp - 8]
mov esi, 1
jmp 0x487398
mov edx, 0xff
cmp cx, dx
ja 0x487396
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 0x10
je 0x487393
mov eax, dword [ebp - 8]
mov esi, 1
jmp 0x487398
mov eax, dword [ebp - 8]
xor esi, esi
cmp eax, dword [ebx + 0x7c]
jae 0x487299
cmp dword [ebx + 0x58], 0
je 0x487400
movzx ecx, word [eax]
cmp ecx, 0x5f
je 0x487420
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4af620]
shl eax, 7
and ecx, 0x8000007f
jns 0x4873d1
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x4a1788]
movzx eax, byte [eax*8 + 0x4ae289]
mov eax, dword [eax*4 + 0x4b9190]
cmp eax, 1
je 0x487420
cmp eax, 3
jne 0x4872be
lea ecx, [eax - 2]
jmp 0x4872c0
movzx eax, word [eax]
mov ecx, 0xff
cmp ax, cx
ja 0x4872be
mov ecx, eax
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 0x10
je 0x4872be
mov ecx, 1
jmp 0x4872c0
cmp ecx, esi
je 0x4087a0
jmp case.0x4087c4.157
mov edx, dword [ebx + 0x18]
mov ecx, dword [ebx + 0x7c]
test edx, edx
je 0x487466
mov eax, dword [ebp - 8]
mov esi, dword [ebp - 0x1c]
cmp eax, ecx
jae 0x48749e
push esi
lea eax, [ebx + 0x1c]
push eax
push ecx
mov ecx, dword [ebp - 8]
call fcn.00406a87
add esp, 0xc
test eax, eax
jne case.0x4087c4.157
jmp 0x48749b
mov edx, dword [ebx + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
mov eax, dword [ebp - 8]
cmp eax, ecx
ja 0x487498
mov ax, word [eax]
cmp ax, word [ebx + 0x34]
jne 0x487498
cmp edx, 1
je case.0x4087c4.157
mov eax, dword [ebp - 8]
mov ax, word [eax + 2]
cmp ax, word [ebx + 0x36]
je case.0x4087c4.157
mov esi, dword [ebp - 0x1c]
mov eax, dword [ebp - 8]
cmp dword [ebx + 0x8c], 0
je 0x4874de
add eax, 2
cmp eax, dword [ebx + 0x7c]
mov eax, dword [ebp - 8]
jb 0x4874de
cmp dword [ebx + 0x18], 0
jne 0x4874de
cmp dword [ebx + 0x1c], 2
jne 0x4874de
mov ax, word [eax]
cmp ax, word [ebx + 0x34]
jne 0x4874db
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x487023
mov eax, dword [ebp - 8]
mov ecx, dword [ebx + 0x7c]
cmp eax, ecx
jae 0x409044
add eax, 2
mov dword [ebp - 8], eax
test esi, esi
je 0x408ab6
cmp eax, ecx
jae 0x408ab6
mov ax, word [eax]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x408ab6
add dword [ebp - 8], 2
jmp 0x408ab6
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x409056
add eax, 2
mov dword [ebp - 8], eax
jmp 0x408ab6
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x409056
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp dword [ebp - 0x1c], edx
je 0x487580
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x487580
mov eax, dword [ebp - 8]
and ecx, 0x3ff
movzx eax, word [eax]
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
cmp ecx, 0x100
jae 0x408ab6
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 4
jne case.0x4087c4.157
jmp 0x408ab6
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x409056
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp dword [ebp - 0x1c], edx
je 0x4875e6
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4875e6
mov eax, dword [ebp - 8]
and ecx, 0x3ff
movzx eax, word [eax]
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
cmp ecx, 0xff
ja case.0x4087c4.157
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 4
je case.0x4087c4.157
jmp 0x408ab6
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x409056
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp dword [ebp - 0x1c], edx
je 0x48764c
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48764c
mov eax, dword [ebp - 8]
and ecx, 0x3ff
movzx eax, word [eax]
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
cmp ecx, 0x100
jae 0x408ab6
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 1
jne case.0x4087c4.157
jmp 0x408ab6
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x409056
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp dword [ebp - 0x1c], edx
je 0x4876b2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4876b2
mov eax, dword [ebp - 8]
and ecx, 0x3ff
movzx eax, word [eax]
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
cmp ecx, 0xff
ja case.0x4087c4.157
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 1
je case.0x4087c4.157
jmp 0x408ab6
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x409056
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp dword [ebp - 0x1c], edx
je 0x487718
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x487718
mov eax, dword [ebp - 8]
and ecx, 0x3ff
movzx eax, word [eax]
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
cmp ecx, 0x100
jae 0x408ab6
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 0x10
jne case.0x4087c4.157
jmp 0x408ab6
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x409056
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp dword [ebp - 0x1c], edx
je 0x48777e
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48777e
mov eax, dword [ebp - 8]
and ecx, 0x3ff
movzx eax, word [eax]
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
cmp ecx, 0xff
ja case.0x4087c4.157
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 0x10
je case.0x4087c4.157
jmp 0x408ab6
movzx eax, word [eax]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
mov eax, dword [ebp - 8]
jmp 0x408c47
cmp ecx, 0xa
je 0x408ab6
jbe case.0x4087c4.157
cmp ecx, 0xc
ja case.0x4087c4.157
jmp 0x487824
cmp dword [ebx + 0x8c], 0
je 0x408ab6
cmp eax, dword [ebx + 0x88]
jbe 0x408ab6
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x487023
jmp 0x408ab6
cmp ecx, 0x85
je 0x487824
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x4087c4.157
cmp dword [ebx + 0x6c], 0
jne case.0x4087c4.157
jmp 0x408ab6
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x409056
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp dword [ebp - 0x1c], edx
je 0x48787b
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48787b
mov eax, dword [ebp - 8]
and ecx, 0x3ff
movzx eax, word [eax]
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
cmp ecx, 0x180e
ja 0x4878bf
je case.0x4087c4.157
cmp ecx, 0xa0
ja 0x4878ae
je case.0x4087c4.157
cmp ecx, 9
je case.0x4087c4.157
cmp ecx, 0x20
je case.0x4087c4.157
jmp 0x408ab6
cmp ecx, 0x1680
je case.0x4087c4.157
jmp 0x408ab6
cmp ecx, 0x205f
ja 0x4878f6
je case.0x4087c4.157
cmp ecx, 0x2000
jb 0x408ab6
cmp ecx, 0x200a
jbe case.0x4087c4.157
cmp ecx, 0x202f
je case.0x4087c4.157
jmp 0x408ab6
cmp ecx, 0x3000
je case.0x4087c4.157
jmp 0x408ab6
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x409056
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp dword [ebp - 0x1c], edx
je 0x48794f
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48794f
mov eax, dword [ebp - 8]
and ecx, 0x3ff
movzx eax, word [eax]
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
cmp ecx, 0x180e
ja 0x487993
je 0x408ab6
cmp ecx, 0xa0
ja 0x487982
je 0x408ab6
cmp ecx, 9
je 0x408ab6
cmp ecx, 0x20
jne case.0x4087c4.157
jmp 0x408ab6
cmp ecx, 0x1680
jne case.0x4087c4.157
jmp 0x408ab6
cmp ecx, 0x205f
ja 0x4879ca
je 0x408ab6
cmp ecx, 0x2000
jb case.0x4087c4.157
cmp ecx, 0x200a
jbe 0x408ab6
cmp ecx, 0x202f
jne case.0x4087c4.157
jmp 0x408ab6
cmp ecx, 0x3000
jne case.0x4087c4.157
jmp 0x408ab6
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x409056
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp dword [ebp - 0x1c], edx
je 0x487a23
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x487a23
mov eax, dword [ebp - 8]
and ecx, 0x3ff
movzx eax, word [eax]
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
cmp ecx, 0x85
ja 0x487a48
je case.0x4087c4.157
cmp ecx, 0xa
jb 0x408ab6
cmp ecx, 0xd
jbe case.0x4087c4.157
jmp 0x408ab6
cmp ecx, 0x2028
jb 0x408ab6
cmp ecx, 0x2029
jbe case.0x4087c4.157
jmp 0x408ab6
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x409056
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp dword [ebp - 0x1c], edx
je 0x487aad
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x487aad
mov eax, dword [ebp - 8]
and ecx, 0x3ff
movzx eax, word [eax]
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
cmp ecx, 0x85
ja 0x487acc
je 0x408ab6
lea eax, [ecx - 0xa]
cmp eax, 3
ja case.0x4087c4.157
jmp 0x408ab6
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x4087c4.157
jmp 0x408ab6
mov eax, dword [ebp - 8]
and ecx, 0x3ff
movzx eax, word [eax]
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
mov dword [ebp - 0x2c], ecx
jmp 0x408d3b
cmp eax, 0xa
ja case.default.0x487b11
jmp dword [eax*4 + 0x48e748]
mov al, byte [ecx*8 + 0x4ae289]
cmp al, 9
je 0x487b3d
cmp al, 5
je 0x487b3d
cmp al, 8
je 0x487b3d
xor ecx, ecx
jmp 0x487b59
cmp esi, 0xf
je case.0x4087c4.157
jmp 0x408dad
mov ecx, 1
jmp 0x487b59
movzx eax, byte [ecx*8 + 0x4ae289]
xor ecx, ecx
cmp dword [eax*4 + 0x4b9190], 6
sete cl
xor eax, eax
cmp esi, 0xf
sete al
cmp ecx, eax
je case.0x4087c4.157
jmp 0x408dad
movzx ecx, byte [ecx*8 + 0x4ae289]
movzx eax, word [edi + 4]
xor edx, edx
cmp eax, dword [ecx*4 + 0x4b9190]
setne dl
xor eax, eax
cmp esi, 0x10
sete al
cmp edx, eax
je case.0x4087c4.157
jmp 0x408dad
movzx eax, byte [ecx*8 + 0x4ae289]
jmp 0x487bad
movzx eax, byte [ecx*8 + 0x4ae288]
xor ecx, ecx
cmp word [edi + 4], ax
setne cl
xor eax, eax
cmp esi, 0x10
sete al
cmp ecx, eax
je case.0x4087c4.157
jmp 0x408dad
movzx eax, byte [ecx*8 + 0x4ae289]
mov eax, dword [eax*4 + 0x4b9190]
cmp eax, 1
je 0x487b3d
cmp eax, 3
je 0x487b3d
xor ecx, ecx
jmp 0x487b59
cmp edx, 0x180e
ja 0x487c4c
je case.0x487b11.0
cmp edx, 0x85
ja 0x487c2f
je case.0x487b11.0
cmp edx, 9
jb case.0x487c70.8203
cmp edx, 0xd
jbe case.0x487b11.0
cmp edx, 0x20
je case.0x487b11.0
jmp case.0x487c70.8203
cmp edx, 0xa0
je case.0x487b11.0
cmp edx, 0x1680
je case.0x487b11.0
jmp case.0x487c70.8203
cmp edx, 0x202f
ja 0x487c77
je case.0x487b11.0
add edx, 0xffffe000
cmp edx, 0x29
ja case.0x487c70.8203
movzx eax, byte [edx + 0x48e77c]
jmp dword [eax*4 + 0x48e774]
cmp edx, 0x205f
je case.0x487b11.0
cmp edx, 0x3000
je case.0x487b11.0
jmp case.0x487c70.8203
movzx eax, byte [ecx*8 + 0x4ae289]
mov eax, dword [eax*4 + 0x4b9190]
cmp eax, 1
je 0x487b3d
cmp eax, 3
je 0x487b3d
cmp edx, 0x5f
je 0x487b3d
xor ecx, ecx
jmp 0x487b59
cmp edx, 0x24
je 0x487b3d
cmp edx, 0x40
je 0x487b3d
cmp edx, 0x60
je 0x487b3d
cmp edx, 0xa0
jb 0x487cf4
cmp edx, 0xd7ff
jbe 0x487b3d
cmp edx, 0xe000
jae 0x487b3d
xor ecx, ecx
jmp 0x487b59
cmp esi, 0x10
je case.0x4087c4.157
jmp 0x408dad
mov eax, dword [ebp - 8]
and ecx, 0x3ff
movzx eax, word [eax]
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
jmp 0x4089ee
movzx eax, word [ebx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
mov esi, 2
jmp 0x408a4f
cmp eax, esi
jb 0x408ab6
jmp 0x487082
movzx ecx, word [edi + 2]
movzx edx, word [edi + 4]
xor eax, eax
cmp esi, 0x74
sete al
imul ecx, dword [ebx + 0x24]
mov dword [ebp - 0x28], eax
mov eax, dword [ebx + 0x30]
add edi, 6
lea ecx, [eax + ecx*2]
mov dword [ebp - 0x34], edi
test edx, edx
jle 0x487dbe
mov eax, dword [ebp + 0xc]
movzx esi, word [ecx]
add esi, esi
dec edx
mov dword [ebp - 0x40], esi
cmp esi, eax
mov esi, dword [ebx + 0x24]
jge 0x487db7
mov eax, dword [ebx + 0xc]
mov ebx, dword [ebp - 0x40]
cmp dword [eax + ebx*4], 0
mov ebx, dword [ebp + 0x10]
jge 0x487dbf
mov eax, dword [ebp + 0xc]
lea ecx, [ecx + esi*2]
test edx, edx
jg 0x487d95
dec edx
test edx, edx
jns 0x487df5
mov ecx, dword [ebp - 0x28]
mov esi, dword [ebx + 0x54]
neg esi
sbb esi, esi
neg esi
dec esi
movzx edx, word [edi]
mov eax, edx
mov dword [ebp - 0xc], eax
add eax, 0xffffff9e
mov dword [ebp - 0x14], esi
cmp eax, 7
ja case.default.0x487dee
movzx eax, byte [eax + 0x48e7b0]
jmp dword [eax*4 + 0x48e7a8]
mov ecx, dword [ebp - 0x40]
mov eax, dword [ebx + 0xc]
mov esi, dword [eax + ecx*4 + 4]
sub esi, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x28]
jmp 0x487dd0
xor ecx, ecx
cmp esi, 0x72
movzx esi, word [edi + 2]
sete cl
add esi, esi
add edi, 4
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x28], ecx
cmp esi, dword [ebp + 0xc]
jge 0x487dc6
mov eax, dword [ebx + 0xc]
mov edx, dword [eax + esi*4]
test edx, edx
js 0x487dc6
mov esi, dword [eax + esi*4 + 4]
sub esi, edx
jmp 0x487dd0
mov eax, dword [ebp - 0xc]
add eax, 0xffffff9e
movzx ecx, al
movsx edx, byte [eax + 0x4a16a0]
and ecx, 1
mov dword [ebp - 0xc], ecx
movsx ecx, byte [eax + 0x4a15fc]
add edi, 2
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x18], edx
test edx, edx
jne 0x487e9a
mov edx, 0x7fffffff
mov dword [ebp - 0x18], edx
jmp 0x487e9a
movzx ecx, word [edi + 2]
xor eax, eax
cmp edx, 0x69
movzx edx, word [edi + 4]
sete al
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x18], edx
mov dword [ebp - 0xc], eax
test edx, edx
jne 0x487e94
mov edx, 0x7fffffff
mov dword [ebp - 0x18], edx
add edi, 6
mov dword [ebp - 0x34], edi
test esi, esi
je 0x4087a0
jns 0x487eac
test ecx, ecx
je 0x4087a0
mov eax, dword [ebp - 8]
mov dword [ebp - 0x2c], 1
cmp ecx, 1
jl 0x487ef1
push dword [ebp - 0x28]
mov ecx, dword [ebp - 0x40]
push ebx
push esi
mov edx, eax
call fcn.00472308
mov ecx, eax
add esp, 0xc
test ecx, ecx
js 0x48caa3
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x2c]
lea eax, [eax + ecx*2]
mov ecx, dword [ebp - 0x20]
inc edx
mov dword [ebp - 8], eax
mov dword [ebp - 0x2c], edx
cmp edx, ecx
jle 0x487ebb
mov edx, dword [ebp - 0x18]
cmp ecx, edx
je 0x4087a0
cmp dword [ebp - 0xc], 0
je 0x48c9f4
mov eax, dword [ebp + 0x18]
mov esi, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.00408740
add esp, 0x14
test eax, eax
jne 0x408907
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x20], eax
jge case.0x4087c4.157
push dword [ebp - 0x28]
mov ecx, dword [ebp - 0x40]
push ebx
push dword [ebp - 0x14]
mov edx, esi
call fcn.00472308
add esp, 0xc
test eax, eax
js 0x48c9ce
inc dword [ebp - 0x20]
lea esi, [esi + eax*2]
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.00408740
add esp, 0x14
test eax, eax
je 0x487f29
jmp 0x408907
mov edx, dword [ebp - 8]
push ecx
mov ecx, dword [ebp - 0x40]
push ebx
push esi
call fcn.00472308
mov ecx, eax
add esp, 0xc
test ecx, ecx
js 0x48caa3
mov eax, dword [ebp - 8]
lea eax, [eax + ecx*2]
mov dword [ebp - 8], eax
jmp 0x4087a0
xor edx, edx
cmp ecx, 0x69
sete dl
xor eax, eax
cmp ecx, 0x6d
movzx ecx, word [edi + 4]
sete al
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x30], eax
movzx eax, word [edi + 2]
mov dword [ebp - 0x28], eax
test ecx, ecx
jne 0x487fd0
mov dword [ebp - 0x18], 0x7fffffff
add edi, 6
mov dword [ebp - 0x34], edi
jmp 0x40893b
mov eax, dword [ebp - 8]
and ecx, 0x3ff
movzx eax, word [eax]
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
mov dword [ebp - 0x2c], ecx
jmp 0x408989
cmp esi, 0x6e
je case.0x4087c4.157
jmp 0x408ac1
cmp eax, 1
mov eax, dword [ebp - 8]
jl 0x408ada
mov ecx, dword [ebp - 0x28]
cmp eax, dword [ebx + 0x7c]
jae 0x409044
movzx ebx, word [eax]
add eax, 2
mov dword [ebp - 0x20], ebx
cmp ebx, 0xff
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 8], eax
jbe 0x48804b
cmp esi, 0x6e
je case.0x4087c4.157
jmp 0x488074
mov ecx, dword [ebp - 0x20]
shr dword [ebp - 0x20], 3
mov ebx, dword [ebp - 0x20]
and ecx, 7
mov eax, 1
shl eax, cl
mov ecx, dword [ebp - 0x38]
test byte [ebx + ecx], al
mov ebx, dword [ebp + 0x10]
je case.0x4087c4.157
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x28]
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ecx
jle 0x488020
jmp 0x408ad7
mov eax, dword [ebp - 8]
and ecx, 0x3ff
movzx eax, word [eax + 2]
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x2c], 2
jmp 0x408b2c
cmp esi, 0x6e
je 0x408b58
jmp 0x409189
cmp dword [ebx + 0x8c], 0
je 0x408b58
cmp eax, dword [ebx + 0x88]
jbe 0x408b58
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x487023
jmp 0x408b58
cmp edx, dword [ebp - 0x18]
jge 0x48815e
cmp eax, dword [ebx + 0x7c]
jae 0x488139
movzx ecx, word [eax]
mov dword [ebp - 0x14], ecx
cmp ecx, 0xff
jbe 0x48810c
cmp esi, 0x6e
jne 0x48812b
jmp 0x48815e
shr dword [ebp - 0x14], 3
mov ebx, dword [ebp - 0x14]
and ecx, 7
mov eax, 1
shl eax, cl
mov ecx, dword [ebp - 0x38]
test byte [ebx + ecx], al
mov ebx, dword [ebp + 0x10]
mov eax, dword [ebp - 8]
je 0x48815e
add eax, 2
inc edx
mov dword [ebp - 8], eax
cmp edx, dword [ebp - 0x18]
jl 0x4880f2
jmp 0x48815e
cmp dword [ebx + 0x8c], 0
je 0x48815e
cmp eax, dword [ebx + 0x88]
jbe 0x48815e
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x487023
cmp dword [ebp - 0x30], 0
jne 0x4087a0
cmp eax, dword [ebp - 0x24]
jb case.0x4087c4.157
mov esi, dword [ebp - 8]
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.00408740
add esp, 0x14
test eax, eax
jne 0x408907
sub esi, 2
cmp esi, dword [ebp - 0x24]
jae 0x488174
jmp 0x408907
lea eax, [edi + 4]
mov dword [ebp - 0x14], eax
movzx eax, word [edi + 2]
movzx ecx, word [edi + eax*2]
lea edi, [edi + eax*2]
mov esi, ecx
mov dword [ebp - 0x34], edi
lea eax, [esi - 0x62]
cmp eax, 0xb
ja case.default.0x4881cd
movzx eax, byte [eax + 0x48e7c0]
jmp dword [eax*4 + 0x48e7b8]
lea ecx, [esi - 0x62]
add edi, 2
mov dword [ebp - 0x34], edi
cmp ecx, 8
jae 0x4881f0
mov eax, dword [ebp - 0x30]
movzx edx, cl
and edx, 1
mov dword [ebp - 0x38], edx
jmp 0x4881f8
mov eax, 1
mov dword [ebp - 0x30], eax
movsx esi, byte [esi + 0x4a163e]
movsx ecx, byte [ecx + 0x4a15fc]
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x20], esi
test esi, esi
jne 0x48825f
mov esi, 0x7fffffff
jmp 0x48825c
movzx esi, word [edi + 4]
xor edx, edx
cmp ecx, 0x69
sete dl
xor eax, eax
cmp ecx, 0x6d
movzx ecx, word [edi + 2]
sete al
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x30], eax
test esi, esi
jne 0x488247
mov esi, 0x7fffffff
mov dword [ebp - 0x20], esi
add edi, 6
mov dword [ebp - 0x34], edi
jmp 0x48825f
mov eax, dword [ebp - 0x30]
mov esi, 1
mov ecx, esi
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x18], 1
cmp ecx, 1
jl 0x4882e6
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x409044
movzx edx, word [eax]
mov ecx, dword [ebp - 0x1c]
add eax, 2
mov dword [ebp - 0x2c], edx
mov dword [ebp - 8], eax
test ecx, ecx
je 0x4882b9
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4882b9
mov eax, dword [ebp - 8]
and edx, 0x3ff
movzx eax, word [eax]
and eax, 0x3ff
shl edx, 0xa
or eax, edx
add eax, 0x10000
add dword [ebp - 8], 2
jmp 0x4882bc
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x14]
push ecx
mov ecx, eax
call fcn.0047265c
add esp, 4
test eax, eax
je case.0x4087c4.157
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x28]
inc eax
mov dword [ebp - 0x18], eax
cmp eax, ecx
jle 0x48826b
mov edx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x30]
cmp ecx, esi
je 0x4087a0
mov esi, dword [ebp - 8]
test edx, edx
jne 0x48ccac
mov dword [ebp - 0xc], esi
cmp ecx, dword [ebp - 0x20]
jge 0x4883ad
mov eax, dword [ebp - 8]
mov dword [ebp - 0x18], 1
cmp eax, dword [ebx + 0x7c]
jae 0x488382
movzx edx, word [eax]
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x2c], edx
mov esi, eax
test ecx, ecx
je 0x488353
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x488353
movzx eax, word [esi + 2]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or eax, edx
add eax, 0x10000
mov dword [ebp - 0x18], 2
jmp 0x488356
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x14]
push ecx
mov ecx, eax
call fcn.0047265c
add esp, 4
test eax, eax
je 0x4883aa
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x18]
lea eax, [eax + ecx*2]
mov ecx, dword [ebp - 0x28]
inc ecx
mov dword [ebp - 8], eax
mov dword [ebp - 0x28], ecx
cmp ecx, dword [ebp - 0x20]
jl 0x488305
jmp 0x4883a7
cmp dword [ebx + 0x8c], 0
je 0x4883a7
cmp eax, dword [ebx + 0x88]
jbe 0x4883a7
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x487023
mov esi, dword [ebp - 8]
mov eax, dword [ebp - 0x30]
test eax, eax
jne 0x4087a0
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.00408740
add esp, 0x14
test eax, eax
jne 0x408907
mov eax, esi
sub esi, 2
cmp eax, dword [ebp - 0xc]
je case.0x4087c4.157
cmp dword [ebp - 0x1c], 0
je 0x488404
mov ax, word [esi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x488404
sub esi, 2
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.00408740
add esp, 0x14
test eax, eax
je 0x4883d8
jmp 0x408907
mov eax, dword [ebx + 0x7c]
mov ecx, dword [ebp - 8]
sub eax, ecx
and eax, 0xfffffffe
cmp eax, 2
jl 0x48cd98
mov ax, word [ecx]
add ecx, 2
mov dword [ebp - 8], ecx
cmp word [edi + 2], ax
jne case.0x4087c4.157
add edi, 4
jmp 0x408ab9
movzx eax, word [edi + 2]
and esi, 0x3ff
and eax, 0x3ff
shl esi, 0xa
or esi, eax
add esi, 0x10000
mov edx, 2
jmp 0x408bd6
add eax, 2
mov dword [ebp - 8], eax
mov eax, ecx
and eax, 0xfc00
mov dword [ebp - 0x2c], ecx
cmp eax, 0xd800
jne 0x4884b5
mov eax, dword [ebp - 8]
and ecx, 0x3ff
movzx eax, word [eax]
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
mov dword [ebp - 0x2c], ecx
lea edi, [edi + edx*2]
mov dword [ebp - 0x34], edi
cmp esi, ecx
je 0x4087a0
mov eax, esi
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx ecx, byte [eax + 0x4af620]
mov eax, esi
shl ecx, 7
and eax, 0x8000007f
jns 0x4884e6
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x4a1788]
mov eax, dword [eax*8 + 0x4ae28c]
add eax, esi
cmp dword [ebp - 0x2c], eax
je 0x4087a0
jmp case.0x4087c4.157
movzx ecx, word [edi + 2]
mov edx, 0xff
cmp cx, dx
ja 0x488521
mov eax, dword [ebx + 0x3c]
movzx edx, byte [eax + ecx]
mov eax, dword [ebp - 8]
jmp 0x488523
mov edx, ecx
movzx ecx, word [eax]
mov esi, 0xff
cmp cx, si
ja 0x48853a
mov eax, dword [ebx + 0x3c]
movzx ecx, byte [eax + ecx]
mov eax, dword [ebp - 8]
cmp edx, ecx
jne case.0x4087c4.157
add eax, 2
mov dword [ebp - 8], eax
add edi, 4
jmp 0x408ab9
movzx eax, word [edi + 2]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x28], eax
add edi, 4
jmp 0x488612
mov dword [ebp - 0x30], 1
movzx eax, word [edi + 2]
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x18], eax
cmp ecx, 0x28
je 0x48858a
cmp ecx, 0x35
je 0x48858a
xor edx, edx
mov dword [ebp - 0x38], edx
add edi, 4
jmp 0x488612
mov edx, 1
mov dword [ebp - 0x38], edx
add edi, 4
jmp 0x488612
mov ecx, 1
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x18], 0x7fffffff
add edi, 2
jmp 0x488615
mov ecx, 1
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x18], 0x7fffffff
add edi, 2
jmp 0x488615
mov ecx, 1
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x18], ecx
add edi, 2
jmp 0x488615
cmp esi, 0x2e
sbb eax, eax
and eax, 0xfffffff3
add eax, 0x2e
mov ecx, esi
sub ecx, eax
movzx edx, cl
movsx eax, byte [ecx + 0x4a15fc]
mov dword [ebp - 0x28], eax
movsx eax, byte [ecx + 0x4a16a0]
and edx, 1
add edi, 2
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x18], eax
test eax, eax
jne 0x488612
mov dword [ebp - 0x18], 0x7fffffff
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x48889b
movzx eax, word [edi]
mov dword [ebp - 0x24], eax
and eax, 0xfc00
mov dword [ebp - 0x10], 1
mov dword [ebp - 0x2c], edi
cmp eax, 0xd800
jne 0x488665
mov ebx, dword [ebp - 0x24]
movzx eax, word [edi + 2]
and ebx, 0x3ff
and eax, 0x3ff
shl ebx, 0xa
or eax, ebx
add eax, 0x10000
mov dword [ebp - 0x24], eax
mov eax, 2
mov dword [ebp - 0x10], eax
jmp 0x48866a
mov eax, 1
lea ebx, [eax + eax]
add edi, ebx
mov dword [ebp - 0x14], ebx
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 0x34], edi
cmp eax, 1
jle 0x4888ac
cmp esi, 0x2e
jb 0x4886dc
mov esi, dword [ebp - 0x24]
mov eax, esi
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx ecx, byte [eax + 0x4af620]
mov eax, esi
shl ecx, 7
and eax, 0x8000007f
jns 0x4886ac
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x4a1788]
mov ecx, dword [eax*8 + 0x4ae28c]
add ecx, esi
cmp ecx, esi
je 0x4886d6
lea edx, [ebp - 0x70]
call fcn.00472a60
mov edx, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x24], eax
jmp 0x4886e3
mov edx, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x24], 0
mov esi, dword [ebp - 0x28]
mov dword [ebp - 0xc], 1
cmp esi, 1
jge 0x4886fa
mov eax, dword [ebp - 8]
jmp 0x48877d
mov eax, dword [ebx + 0x7c]
sub eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 8]
cmp ecx, eax
ja 0x48872b
mov eax, dword [ebp - 0x10]
add eax, eax
push eax
push dword [ebp - 0x2c]
push ecx
call fcn.00423473
add esp, 0xc
test eax, eax
jne 0x488728
mov eax, dword [ebp - 8]
add eax, dword [ebp - 0x14]
mov dword [ebp - 8], eax
jmp 0x48876c
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x24]
test edx, edx
jle 0x48cdb2
lea eax, [edx + edx]
mov dword [ebp - 0x20], eax
mov eax, dword [ebx + 0x7c]
sub eax, dword [ebp - 0x20]
cmp ecx, eax
ja 0x48cdb2
lea eax, [edx + edx]
push eax
lea eax, [ebp - 0x70]
push eax
push ecx
call fcn.00423473
add esp, 0xc
test eax, eax
jne 0x48cdaf
mov eax, dword [ebp - 0x20]
add dword [ebp - 8], eax
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
inc ecx
mov dword [ebp - 0xc], ecx
cmp ecx, esi
jle 0x4886fa
mov edx, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x30]
cmp esi, dword [ebp - 0x18]
je 0x4087a0
test edx, edx
jne 0x48cdcd
mov edx, eax
mov dword [ebp - 0x20], edx
cmp esi, dword [ebp - 0x18]
jge 0x488837
mov eax, dword [ebx + 0x7c]
sub eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 8]
cmp ecx, eax
ja 0x4887c7
mov eax, dword [ebp - 0x10]
add eax, eax
push eax
push dword [ebp - 0x2c]
push ecx
call fcn.00423473
add esp, 0xc
test eax, eax
jne 0x4887c4
mov eax, dword [ebp - 0x14]
jmp 0x4887f6
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x24]
test edx, edx
jle 0x488801
lea eax, [edx + edx]
mov dword [ebp - 0xc], eax
mov eax, dword [ebx + 0x7c]
sub eax, dword [ebp - 0xc]
cmp ecx, eax
ja 0x488801
lea eax, [edx + edx]
push eax
lea eax, [ebp - 0x70]
push eax
push ecx
call fcn.00423473
add esp, 0xc
test eax, eax
jne 0x488801
mov eax, dword [ebp - 0xc]
add dword [ebp - 8], eax
inc esi
cmp esi, dword [ebp - 0x18]
jl 0x48879c
jmp 0x48882e
cmp dword [ebx + 0x8c], 0
mov eax, dword [ebp - 8]
je 0x488831
cmp eax, dword [ebx + 0x7c]
jb 0x48882e
cmp eax, dword [ebx + 0x88]
jbe 0x48882e
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x487023
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x20]
test ecx, ecx
jne 0x4087a0
cmp eax, edx
je 0x408811
mov ecx, dword [ebp - 8]
mov esi, dword [ebp - 0x20]
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00408740
add esp, 0x14
test eax, eax
jne 0x408907
mov ecx, dword [ebp - 8]
sub ecx, 2
mov edx, 0xfc00
mov ax, word [ecx]
and ax, dx
mov edx, 0xdc00
mov dword [ebp - 8], ecx
cmp ax, dx
jne 0x488892
sub ecx, 2
mov dword [ebp - 8], ecx
cmp ecx, esi
jne 0x48884d
jmp 0x408811
movzx ebx, word [edi]
add edi, 2
mov dword [ebp - 0x24], ebx
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 0x34], edi
jmp 0x4888af
mov eax, dword [ebp - 0x1c]
cmp esi, 0x2e
jb 0x488a16
mov esi, dword [ebp - 0x24]
test eax, eax
je 0x488905
cmp esi, 0x7f
jbe 0x488905
mov eax, esi
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx ecx, byte [eax + 0x4af620]
mov eax, esi
shl ecx, 7
and eax, 0x8000007f
jns 0x4888e7
dec eax
or eax, 0xffffff80
inc eax
mov edx, dword [ebp - 0x38]
add ecx, eax
movzx eax, word [ecx*2 + 0x4a1788]
mov ecx, dword [ebp - 0x30]
mov eax, dword [eax*8 + 0x4ae28c]
add eax, esi
mov dword [ebp - 0x10], eax
jmp 0x48891c
cmp esi, 0xff
ja 0x488919
mov eax, dword [ebx + 0x40]
movzx eax, byte [eax + esi]
mov dword [ebp - 0x10], eax
jmp 0x48891c
mov dword [ebp - 0x10], esi
mov esi, dword [ebp - 0x28]
mov eax, dword [ebp - 8]
mov dword [ebp - 0x14], 1
cmp esi, 1
jl 0x48895f
cmp eax, dword [ebx + 0x7c]
jae 0x409044
movzx ebx, word [eax]
cmp dword [ebp - 0x24], ebx
mov ebx, dword [ebp + 0x10]
je 0x488951
movzx ebx, word [eax]
cmp dword [ebp - 0x10], ebx
mov ebx, dword [ebp + 0x10]
jne case.0x4087c4.157
inc dword [ebp - 0x14]
add eax, 2
mov dword [ebp - 8], eax
cmp dword [ebp - 0x14], esi
jle 0x48892e
cmp esi, dword [ebp - 0x18]
je 0x4087a0
test edx, edx
jne 0x48ce95
mov edx, eax
mov dword [ebp - 0x20], edx
cmp esi, dword [ebp - 0x18]
jge 0x4889cd
mov edx, dword [ebp - 0x24]
cmp eax, dword [ebx + 0x7c]
jae 0x4889a5
movzx ebx, word [eax]
cmp edx, ebx
mov ebx, dword [ebp + 0x10]
je 0x488997
movzx ebx, word [eax]
cmp dword [ebp - 0x10], ebx
mov ebx, dword [ebp + 0x10]
jne 0x4889ca
add eax, 2
inc esi
mov dword [ebp - 8], eax
cmp esi, dword [ebp - 0x18]
jl 0x48897d
jmp 0x4889ca
cmp dword [ebx + 0x8c], 0
je 0x4889ca
cmp eax, dword [ebx + 0x88]
jbe 0x4889ca
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x487023
mov edx, dword [ebp - 0x20]
test ecx, ecx
jne 0x4087a0
cmp eax, edx
je 0x408811
mov ecx, dword [ebp - 8]
mov esi, dword [ebp - 0x20]
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00408740
mov ecx, dword [ebp - 8]
sub ecx, 2
add esp, 0x14
mov dword [ebp - 8], ecx
test eax, eax
jne 0x408907
cmp ecx, esi
jne 0x4889e3
jmp 0x408811
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x14], 1
cmp eax, 1
jge 0x488a2a
mov esi, dword [ebp - 8]
jmp 0x488a56
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x409044
movzx eax, word [eax]
mov esi, dword [ebp - 8]
add esi, 2
mov dword [ebp - 8], esi
cmp dword [ebp - 0x24], eax
jne case.0x4087c4.157
inc dword [ebp - 0x14]
mov eax, dword [ebp - 0x28]
cmp dword [ebp - 0x14], eax
jle 0x488a2a
cmp eax, dword [ebp - 0x18]
je 0x4087a0
test edx, edx
jne 0x48cf0c
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x28]
mov esi, eax
mov dword [ebp - 0x20], esi
cmp edx, dword [ebp - 0x18]
jge 0x488a99
mov esi, dword [ebp - 0x24]
cmp eax, dword [ebx + 0x7c]
jae 0x488adf
movzx eax, word [eax]
cmp esi, eax
jne 0x488a93
add dword [ebp - 8], 2
mov eax, dword [ebp - 8]
inc edx
cmp edx, dword [ebp - 0x18]
jl 0x488a7a
mov eax, dword [ebp - 8]
mov esi, dword [ebp - 0x20]
test ecx, ecx
jne 0x4087a0
cmp eax, esi
je 0x408811
mov ecx, dword [ebp - 8]
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00408740
mov ecx, dword [ebp - 8]
sub ecx, 2
add esp, 0x14
mov dword [ebp - 8], ecx
test eax, eax
jne 0x408907
cmp ecx, esi
jne 0x488aac
jmp 0x408811
cmp dword [ebx + 0x8c], 0
je 0x488a96
cmp eax, dword [ebx + 0x88]
jbe 0x488a96
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x487023
jmp 0x488a96
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x409056
cmp dword [ebp - 0x1c], edx
je 0x488c16
movzx edx, word [edi + 2]
mov eax, edx
add edi, 4
and eax, 0xfc00
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x34], edi
cmp eax, 0xd800
jne 0x488b58
movzx eax, word [edi]
and edx, 0x3ff
shl edx, 0xa
and eax, 0x3ff
or edx, eax
add edx, 0x10000
add edi, 2
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x34], edi
mov eax, dword [ebp - 8]
add eax, 2
movzx ecx, word [eax - 2]
mov dword [ebp - 8], eax
mov eax, ecx
and eax, 0xfc00
mov dword [ebp - 0x2c], ecx
cmp eax, 0xd800
jne 0x488b99
mov eax, dword [ebp - 8]
and ecx, 0x3ff
movzx eax, word [eax]
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
mov dword [ebp - 0x2c], ecx
cmp esi, 0x1f
jne 0x488bab
cmp edx, ecx
jne 0x4087a0
jmp case.0x4087c4.157
cmp edx, 0x7f
jbe 0x488bee
mov eax, edx
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0xc]
sar eax, 7
movzx ecx, byte [eax + 0x4af620]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x488bd6
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x4a1788]
mov ecx, dword [ebp - 0x2c]
mov eax, dword [eax*8 + 0x4ae28c]
add eax, edx
jmp 0x488c01
cmp edx, 0xff
ja 0x488bff
mov eax, dword [ebx + 0x40]
movzx eax, byte [eax + edx]
jmp 0x488c01
mov eax, edx
cmp edx, ecx
je case.0x4087c4.157
cmp eax, ecx
jne 0x4087a0
jmp case.0x4087c4.157
movzx edx, word [eax]
movzx ecx, word [edi + 2]
add eax, 2
mov dword [ebp - 8], eax
cmp ecx, edx
je case.0x4087c4.157
cmp esi, 0x20
jne 0x488c47
cmp ecx, 0xff
ja 0x488c3f
mov eax, dword [ebx + 0x40]
movzx ecx, byte [eax + ecx]
cmp ecx, edx
je case.0x4087c4.157
add edi, 4
mov dword [ebp - 0x34], edi
jmp 0x4087a0
movzx eax, word [edi + 2]
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x24], eax
add edi, 4
jmp 0x488d34
movzx edx, word [edi + 2]
xor eax, eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x10], edx
cmp ecx, 0x42
je 0x488c87
cmp ecx, 0x4f
je 0x488c87
xor edx, edx
mov dword [ebp - 0x38], edx
add edi, 4
jmp 0x488d34
mov edx, 1
mov dword [ebp - 0x38], edx
add edi, 4
jmp 0x488d34
xor eax, eax
mov ecx, 1
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x10], 0x7fffffff
add edi, 2
jmp 0x488d37
mov ecx, 1
mov eax, ecx
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x10], 0x7fffffff
add edi, 2
jmp 0x488d37
mov ecx, 1
xor eax, eax
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x10], ecx
add edi, 2
jmp 0x488d37
movzx ebx, word [edi + 2]
xor eax, eax
mov ecx, 1
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x10], ebx
add edi, 4
jmp 0x488d37
cmp esi, 0x48
sbb eax, eax
and eax, 0xfffffff3
add eax, 0x48
mov ecx, esi
sub ecx, eax
movzx edx, cl
movsx eax, byte [ecx + 0x4a15fc]
movsx ecx, byte [ecx + 0x4a16a0]
and edx, 1
add edi, 2
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x10], ecx
test ecx, ecx
jne 0x488d34
mov dword [ebp - 0x10], 0x7fffffff
mov ecx, dword [ebp - 0x30]
movzx ebx, word [edi]
add edi, 2
cmp dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], ebx
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 0x34], edi
je 0x488d85
mov eax, dword [ebp - 0x18]
and eax, 0xfc00
cmp eax, 0xd800
jne 0x488d82
movzx eax, word [edi]
mov ebx, dword [ebp - 0x18]
and ebx, 0x3ff
and eax, 0x3ff
shl ebx, 0xa
or eax, ebx
mov ebx, dword [ebp + 0x10]
add eax, 0x10000
add edi, 2
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x34], edi
mov eax, dword [ebp - 0x24]
cmp esi, 0x48
mov esi, dword [ebp - 0x1c]
jb 0x4890a0
test esi, esi
je 0x488de3
cmp dword [ebp - 0x18], 0x7f
jbe 0x488de3
mov eax, dword [ebp - 0x18]
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0x18]
sar eax, 7
movzx ecx, byte [eax + 0x4af620]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x488dc2
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x4a1788]
mov ecx, dword [ebp - 0x30]
mov eax, dword [eax*8 + 0x4ae28c]
add eax, edx
mov edx, dword [ebp - 0x38]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x24]
jmp 0x488e0d
cmp dword [ebp - 0x18], 0xff
mov ebx, dword [ebp + 0x10]
ja 0x488e04
mov esi, dword [ebp - 0x18]
mov eax, dword [ebx + 0x40]
movzx eax, byte [eax + esi]
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x24]
jmp 0x488e0d
mov ebx, dword [ebp - 0x18]
mov dword [ebp - 0x20], ebx
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 0xc], 1
test esi, esi
je 0x488e96
cmp eax, 1
jl 0x488ed4
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x409044
movzx esi, word [eax]
add eax, 2
mov dword [ebp - 8], eax
mov eax, esi
and eax, 0xfc00
cmp eax, 0xd800
mov eax, dword [ebp - 8]
mov dword [ebp - 0x28], esi
jne 0x488e6e
movzx eax, word [eax]
and eax, 0x3ff
and esi, 0x3ff
shl esi, 0xa
or eax, esi
add eax, 0x10000
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 8]
add eax, 2
mov dword [ebp - 8], eax
mov ebx, dword [ebp - 0x28]
cmp dword [ebp - 0x18], ebx
je case.0x4087c4.157
mov esi, dword [ebp - 0x20]
cmp esi, ebx
je case.0x4087c4.157
mov ebx, dword [ebp - 0xc]
inc ebx
cmp ebx, dword [ebp - 0x24]
mov dword [ebp - 0xc], ebx
mov ebx, dword [ebp + 0x10]
jle 0x488e21
jmp 0x488ed7
cmp eax, 1
mov eax, dword [ebp - 8]
jl 0x488ed7
cmp eax, dword [ebx + 0x7c]
jae 0x409044
movzx esi, word [eax]
cmp dword [ebp - 0x18], esi
je case.0x4087c4.157
movzx ebx, word [eax]
cmp dword [ebp - 0x20], ebx
je case.0x4087c4.157
mov ebx, dword [ebp - 0xc]
inc ebx
add eax, 2
cmp ebx, dword [ebp - 0x24]
mov dword [ebp - 0xc], ebx
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 8], eax
jle 0x488e9e
mov eax, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
cmp dword [ebp - 0x24], esi
mov esi, dword [ebp - 0x1c]
je 0x4087a0
test edx, edx
jne 0x48cf7b
mov edx, eax
mov dword [ebp - 0x28], edx
test esi, esi
je 0x488fff
mov esi, dword [ebp - 0x24]
cmp esi, dword [ebp - 0x10]
jge 0x488f71
mov dword [ebp - 0xc], 1
cmp eax, dword [ebx + 0x7c]
jae 0x488fd5
movzx eax, word [eax]
mov edx, dword [ebp - 8]
mov dword [ebp - 0x38], eax
and eax, 0xfc00
cmp eax, 0xd800
jne 0x488f4d
movzx eax, word [edx + 2]
and dword [ebp - 0x38], 0x3ff
shl dword [ebp - 0x38], 0xa
and eax, 0x3ff
or eax, dword [ebp - 0x38]
mov dword [ebp - 0xc], 2
add eax, 0x10000
jmp 0x488f50
mov eax, dword [ebp - 0x38]
cmp dword [ebp - 0x18], eax
je 0x488f6b
cmp dword [ebp - 0x20], eax
je 0x488f6b
mov eax, dword [ebp - 0xc]
inc esi
lea edx, [edx + eax*2]
mov dword [ebp - 8], edx
mov eax, edx
cmp esi, dword [ebp - 0x10]
jl 0x488f03
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x28]
test ecx, ecx
jne 0x4087a0
cmp eax, edx
je 0x408811
mov ecx, dword [ebp - 8]
mov esi, dword [ebp - 0x28]
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00408740
add esp, 0x14
test eax, eax
jne 0x408907
mov ecx, dword [ebp - 8]
sub ecx, 2
mov edx, 0xfc00
mov ax, word [ecx]
and ax, dx
mov edx, 0xdc00
mov dword [ebp - 8], ecx
cmp ax, dx
jne 0x488fcc
sub ecx, 2
mov dword [ebp - 8], ecx
cmp ecx, esi
jne 0x488f87
jmp 0x408811
cmp dword [ebx + 0x8c], 0
je 0x488f6e
cmp eax, dword [ebx + 0x88]
jbe 0x488f6e
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x487023
jmp 0x488f6e
mov edx, dword [ebp - 0x24]
cmp edx, dword [ebp - 0x10]
jge 0x489057
mov esi, dword [ebp - 0x18]
cmp eax, dword [ebx + 0x7c]
jae 0x489032
movzx ebx, word [eax]
cmp esi, ebx
mov ebx, dword [ebp + 0x10]
je 0x489057
movzx esi, word [eax]
cmp dword [ebp - 0x20], esi
mov esi, dword [ebp - 0x18]
je 0x489057
add eax, 2
inc edx
mov dword [ebp - 8], eax
cmp edx, dword [ebp - 0x10]
jl 0x48900a
jmp 0x489057
cmp dword [ebx + 0x8c], 0
je 0x489057
cmp eax, dword [ebx + 0x88]
jbe 0x489057
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x487023
test ecx, ecx
jne 0x4087a0
mov esi, dword [ebp - 0x28]
cmp eax, esi
je 0x408811
mov ecx, dword [ebp - 8]
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00408740
add esp, 0x14
test eax, eax
jne 0x408907
mov ecx, dword [ebp - 8]
sub ecx, 2
mov dword [ebp - 8], ecx
cmp ecx, esi
jne 0x48906d
jmp 0x408811
mov dword [ebp - 0xc], 1
test esi, esi
je 0x489126
mov ebx, dword [ebp + 0x10]
cmp eax, 1
jl 0x489158
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x409044
movzx esi, word [eax]
add eax, 2
mov dword [ebp - 8], eax
mov eax, esi
and eax, 0xfc00
cmp eax, 0xd800
mov eax, dword [ebp - 8]
mov dword [ebp - 0x14], esi
jne 0x489106
movzx eax, word [eax]
mov ebx, esi
and eax, 0x3ff
and ebx, 0x3ff
shl ebx, 0xa
or eax, ebx
add eax, 0x10000
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 8]
add eax, 2
mov dword [ebp - 8], eax
mov esi, dword [ebp - 0x14]
cmp dword [ebp - 0x18], esi
mov esi, dword [ebp - 0x1c]
je case.0x4087c4.157
mov ebx, dword [ebp - 0xc]
inc ebx
cmp ebx, dword [ebp - 0x24]
mov dword [ebp - 0xc], ebx
mov ebx, dword [ebp + 0x10]
jle 0x4890b7
jmp 0x48915b
cmp eax, 1
jl 0x489158
mov esi, dword [ebp - 8]
cmp esi, dword [ebx + 0x7c]
jae 0x48cd5f
movzx eax, word [esi]
add esi, 2
mov dword [ebp - 8], esi
cmp dword [ebp - 0x18], eax
je case.0x4087c4.157
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x24]
jle 0x48912e
mov esi, dword [ebp - 0x1c]
mov eax, dword [ebp - 8]
mov ebx, dword [ebp - 0x10]
cmp dword [ebp - 0x24], ebx
mov ebx, dword [ebp + 0x10]
je 0x4087a0
test edx, edx
jne 0x48d08d
mov edx, eax
mov dword [ebp - 0x20], edx
test esi, esi
je 0x48927e
mov esi, dword [ebp - 0x24]
cmp esi, dword [ebp - 0x10]
jge 0x4891f0
mov dword [ebp - 0xc], 1
cmp eax, dword [ebx + 0x7c]
jae 0x489254
movzx eax, word [eax]
mov edx, dword [ebp - 8]
mov dword [ebp - 0x28], eax
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4891d1
movzx eax, word [edx + 2]
and dword [ebp - 0x28], 0x3ff
shl dword [ebp - 0x28], 0xa
and eax, 0x3ff
or eax, dword [ebp - 0x28]
mov dword [ebp - 0xc], 2
add eax, 0x10000
jmp 0x4891d4
mov eax, dword [ebp - 0x28]
cmp dword [ebp - 0x18], eax
je 0x4891ea
mov eax, dword [ebp - 0xc]
inc esi
lea edx, [edx + eax*2]
mov dword [ebp - 8], edx
mov eax, edx
cmp esi, dword [ebp - 0x10]
jl 0x489187
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x20]
test ecx, ecx
jne 0x4087a0
cmp eax, edx
je 0x408811
mov ecx, dword [ebp - 8]
mov esi, dword [ebp - 0x20]
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00408740
add esp, 0x14
test eax, eax
jne 0x408907
mov ecx, dword [ebp - 8]
sub ecx, 2
mov edx, 0xfc00
mov ax, word [ecx]
and ax, dx
mov edx, 0xdc00
mov dword [ebp - 8], ecx
cmp ax, dx
jne 0x48924b
sub ecx, 2
mov dword [ebp - 8], ecx
cmp ecx, esi
jne 0x489206
jmp 0x408811
cmp dword [ebx + 0x8c], 0
je 0x4891ed
cmp eax, dword [ebx + 0x88]
jbe 0x4891ed
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x487023
jmp 0x4891ed
mov edx, dword [ebp - 0x24]
cmp edx, dword [ebp - 0x10]
jge 0x4892a5
mov esi, dword [ebp - 0x18]
cmp eax, dword [ebx + 0x7c]
jae 0x4892ee
movzx eax, word [eax]
cmp esi, eax
je 0x4892a2
add dword [ebp - 8], 2
mov eax, dword [ebp - 8]
inc edx
cmp edx, dword [ebp - 0x10]
jl 0x489289
mov eax, dword [ebp - 8]
test ecx, ecx
jne 0x4087a0
mov esi, dword [ebp - 0x20]
cmp eax, esi
je 0x408811
mov ecx, dword [ebp - 8]
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00408740
add esp, 0x14
test eax, eax
jne 0x408907
mov ecx, dword [ebp - 8]
sub ecx, 2
mov dword [ebp - 8], ecx
cmp ecx, esi
jne 0x4892bb
jmp 0x408811
cmp dword [ebx + 0x8c], 0
je 0x4892a5
cmp eax, dword [ebx + 0x88]
jbe 0x4892a5
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jle 0x4892a5
mov eax, 0xfffffff4
jmp 0x408907
movzx eax, word [edi + 2]
mov ecx, eax
mov edx, 1
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x38], edx
add edi, 4
jmp 0x408f13
movzx eax, word [edi + 2]
mov dword [ebp - 0x10], edx
xor edx, edx
cmp ecx, 0x5c
sete dl
add edi, 4
mov dword [ebp - 0x24], eax
xor ecx, ecx
mov dword [ebp - 0x38], edx
jmp 0x408f13
xor ecx, ecx
mov esi, 1
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x10], ecx
add edi, 2
jmp 0x408f0c
mov esi, 1
mov ecx, esi
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x10], ecx
add edi, 2
jmp 0x408f0c
mov esi, 1
xor ecx, ecx
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x24], esi
add edi, 2
jmp 0x408f13
movzx eax, word [edi + 2]
xor ecx, ecx
mov esi, 1
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x24], eax
add edi, 4
jmp 0x408f13
mov dword [ebp - 0x3c], 1
jmp 0x4893c2
mov dword [ebp - 0x3c], 0
movzx esi, word [edi + 2]
movzx eax, word [edi]
add edi, 4
mov dword [ebp - 0x44], esi
mov dword [ebp - 0x34], edi
jmp 0x408f34
test eax, eax
js 0x489c06
cmp eax, 0xa
ja case.default.0x487b11
jmp dword [eax*4 + 0x48e7cc]
cmp dword [ebp - 0x3c], 0
jne case.0x4087c4.157
mov eax, dword [ebp - 0x1c]
cmp ecx, 1
mov ecx, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x408f45
cmp ecx, dword [ebx + 0x7c]
jae 0x48cc04
movzx ebx, word [ecx]
add ecx, 2
mov dword [ebp - 0x14], ebx
mov dword [ebp - 8], ecx
test eax, eax
je 0x48943e
and dword [ebp - 0x14], 0xfc00
cmp dword [ebp - 0x14], 0xd800
jne 0x48943e
add ecx, 2
mov dword [ebp - 8], ecx
mov ebx, dword [ebp - 0xc]
inc ebx
cmp ebx, dword [ebp - 0x10]
mov dword [ebp - 0xc], ebx
mov ebx, dword [ebp + 0x10]
jle 0x48940f
jmp 0x408f45
cmp ecx, 1
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x14], 1
jl 0x408f42
cmp ecx, dword [ebx + 0x7c]
jae 0x48cc04
movzx edx, word [ecx]
add ecx, 2
cmp dword [ebp - 0x1c], 0
mov dword [ebp - 0xc], edx
mov dword [ebp - 8], ecx
je 0x4894b0
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4894b0
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 - 0xc], edx
mov dword [ebp - 8], ecx
mov eax, edx
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0xc]
sar eax, 7
movzx eax, byte [eax + 0x4af620]
shl eax, 7
and edx, 0x8000007f
jns 0x4894d5
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x4a1788]
movzx eax, byte [eax*8 + 0x4ae289]
cmp eax, 9
je 0x4894fa
cmp eax, 5
je 0x4894fa
cmp eax, 8
je 0x4894fa
xor eax, eax
jmp 0x4894ff
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x4087c4.157
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
cmp eax, dword [ebp - 0x10]
jle 0x489465
mov edx, dword [ebp - 0x38]
jmp 0x408f42
mov dword [ebp - 0x14], 1
cmp ecx, 1
jl 0x408f3f
mov ecx, dword [ebp - 8]
cmp ecx, dword [ebx + 0x7c]
jae 0x48cc04
movzx edx, word [ecx]
add ecx, 2
cmp dword [ebp - 0x1c], 0
mov dword [ebp - 0xc], edx
mov dword [ebp - 8], ecx
je 0x48957e
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48957e
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 - 0xc], edx
mov dword [ebp - 8], ecx
mov ecx, dword [ebp - 0xc]
mov eax, edx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4af620]
shl eax, 7
and ecx, 0x8000007f
jns 0x4895a3
dec ecx
or ecx, 0xffffff80
inc ecx
mov edx, dword [ebp - 0x44]
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4a1788]
movzx eax, byte [eax*8 + 0x4ae289]
cmp dword [eax*4 + 0x4b9190], edx
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0x4087c4.157
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
cmp eax, dword [ebp - 0x10]
jle 0x489530
mov edx, dword [ebp - 0x38]
jmp 0x408f3f
mov dword [ebp - 0x14], 1
cmp ecx, 1
jl 0x408f3f
mov ecx, dword [ebp - 8]
cmp ecx, dword [ebx + 0x7c]
jae 0x48cc04
movzx edx, word [ecx]
add ecx, 2
cmp dword [ebp - 0x1c], 0
mov dword [ebp - 0xc], edx
mov dword [ebp - 8], ecx
je 0x489643
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x489643
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 - 0xc], edx
mov dword [ebp - 8], ecx
mov ecx, dword [ebp - 0xc]
mov eax, edx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4af620]
shl eax, 7
and ecx, 0x8000007f
jns 0x489668
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4a1788]
movzx eax, byte [eax*8 + 0x4ae289]
cmp eax, dword [ebp - 0x44]
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0x4087c4.157
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
cmp eax, dword [ebp - 0x10]
jle 0x4895f5
mov edx, dword [ebp - 0x38]
jmp 0x408f3f
mov dword [ebp - 0x14], 1
cmp ecx, 1
jl 0x408f3f
mov ecx, dword [ebp - 8]
cmp ecx, dword [ebx + 0x7c]
jae 0x48cc04
movzx edx, word [ecx]
add ecx, 2
cmp dword [ebp - 0x1c], 0
mov dword [ebp - 0xc], edx
mov dword [ebp - 8], ecx
je 0x489701
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x489701
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 - 0xc], edx
mov dword [ebp - 8], ecx
mov ecx, dword [ebp - 0xc]
mov eax, edx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4af620]
shl eax, 7
and ecx, 0x8000007f
jns 0x489726
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4a1788]
movzx eax, byte [eax*8 + 0x4ae288]
cmp eax, dword [ebp - 0x44]
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0x4087c4.157
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
cmp eax, dword [ebp - 0x10]
jle 0x4896b3
mov edx, dword [ebp - 0x38]
jmp 0x408f3f
cmp ecx, 1
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x14], 1
jl 0x408f42
cmp ecx, dword [ebx + 0x7c]
jae 0x48cc04
movzx edx, word [ecx]
add ecx, 2
cmp dword [ebp - 0x1c], 0
mov dword [ebp - 0xc], edx
mov dword [ebp - 8], ecx
je 0x4897bf
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4897bf
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 - 0xc], edx
mov dword [ebp - 8], ecx
mov eax, edx
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0xc]
sar eax, 7
movzx eax, byte [eax + 0x4af620]
shl eax, 7
and edx, 0x8000007f
jns 0x4897e4
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x4a1788]
movzx eax, byte [eax*8 + 0x4ae289]
mov eax, dword [eax*4 + 0x4b9190]
cmp eax, 1
je 0x48980b
cmp eax, 3
je 0x48980b
xor eax, eax
jmp 0x489810
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x4087c4.157
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
cmp eax, dword [ebp - 0x10]
jle 0x489774
mov edx, dword [ebp - 0x38]
jmp 0x408f42
mov eax, dword [ebp - 0x1c]
cmp ecx, 1
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x14], 1
jl 0x408f45
mov edx, dword [ebp - 0x10]
cmp ecx, dword [ebx + 0x7c]
jae 0x48cc04
movzx ebx, word [ecx]
add ecx, 2
mov dword [ebp - 0x18], ebx
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 8], ecx
test eax, eax
je 0x48989c
mov eax, dword [ebp - 0x18]
and eax, 0xfc00
cmp eax, 0xd800
jne 0x489899
movzx eax, word [ecx]
and dword [ebp - 0x18], 0x3ff
shl dword [ebp - 0x18], 0xa
and eax, 0x3ff
or eax, dword [ebp - 0x18]
add eax, 0x10000
add ecx, 2
mov dword [ebp - 0x18], eax
mov dword [ebp - 8], ecx
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x18], 0x180e
ja 0x4898f0
je 0x489987
cmp dword [ebp - 0x18], 0x85
ja 0x4898d5
je 0x489987
cmp dword [ebp - 0x18], 9
jb case.0x489913.8203
cmp dword [ebp - 0x18], 0xd
jbe 0x489987
cmp dword [ebp - 0x18], 0x20
jne case.0x489913.8203
jmp 0x489987
cmp dword [ebp - 0x18], 0xa0
je 0x489987
cmp dword [ebp - 0x18], 0x1680
jne case.0x489913.8203
jmp 0x489987
cmp dword [ebp - 0x18], 0x202f
ja 0x48991a
je 0x489987
mov eax, dword [ebp - 0x18]
add eax, 0xffffe000
cmp eax, 0x29
ja case.0x489913.8203
movzx eax, byte [eax + 0x48e800]
jmp dword [eax*4 + 0x48e7f8]
cmp dword [ebp - 0x18], 0x205f
je 0x489987
cmp dword [ebp - 0x18], 0x3000
je 0x489987
mov ecx, dword [ebp - 0x18]
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4af620]
shl eax, 7
and ecx, 0x8000007f
jns 0x489951
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4a1788]
movzx eax, byte [eax*8 + 0x4ae289]
cmp dword [eax*4 + 0x4b9190], 6
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0x4087c4.157
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x10]
jmp 0x489991
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x3c], 0
jne case.0x4087c4.157
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edx
jle 0x48984a
mov edx, dword [ebp - 0x38]
jmp 0x408f45
mov dword [ebp - 0x14], 1
cmp ecx, 1
jl 0x408f3f
mov ecx, dword [ebp - 8]
cmp ecx, dword [ebx + 0x7c]
jae 0x48cc04
movzx edx, word [ecx]
add ecx, 2
cmp dword [ebp - 0x1c], 0
mov dword [ebp - 0xc], edx
mov dword [ebp - 8], ecx
je 0x489a03
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x489a03
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 - 0xc], edx
mov dword [ebp - 8], ecx
mov eax, edx
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0xc]
sar eax, 7
movzx ecx, byte [eax + 0x4af620]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x489a29
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x4a1788]
movzx eax, byte [eax*8 + 0x4ae289]
mov eax, dword [eax*4 + 0x4b9190]
cmp eax, 1
je 0x489a55
cmp eax, 3
je 0x489a55
cmp edx, 0x5f
je 0x489a55
xor eax, eax
jmp 0x489a5a
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x4087c4.157
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
cmp eax, dword [ebp - 0x10]
jle 0x4899b5
mov edx, dword [ebp - 0x38]
jmp 0x408f3f
mov eax, dword [ebp - 0x1c]
cmp ecx, 1
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x20], 1
jl 0x408f45
cmp ecx, dword [ebx + 0x7c]
jae 0x48cc04
movzx ebx, word [ecx]
add ecx, 2
mov dword [ebp - 0x18], ebx
mov dword [ebp - 8], ecx
test eax, eax
je 0x489adc
mov eax, ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x489adc
movzx eax, word [ecx]
and dword [ebp - 0x18], 0x3ff
shl dword [ebp - 0x18], 0xa
and eax, 0x3ff
or eax, dword [ebp - 0x18]
add eax, 0x10000
add ecx, 2
mov dword [ebp - 0x18], eax
mov dword [ebp - 8], ecx
mov ebx, dword [ebp - 0x44]
lea ebx, [ebx*4 + 0x4b1820]
mov dword [ebp - 0x14], ebx
mov ebx, dword [ebx]
cmp dword [ebp - 0x18], ebx
mov dword [ebp - 0xc], ebx
mov ebx, dword [ebp + 0x10]
jb 0x489b15
mov ecx, dword [ebp - 0xc]
add dword [ebp - 0x14], 4
cmp dword [ebp - 0x18], ecx
mov ecx, dword [ebp - 8]
je 0x489b37
mov ebx, dword [ebp - 0x14]
mov ebx, dword [ebx]
cmp dword [ebp - 0x18], ebx
mov dword [ebp - 0xc], ebx
mov ebx, dword [ebp + 0x10]
jae 0x489af6
cmp dword [ebp - 0x3c], 0
je case.0x4087c4.157
mov eax, dword [ebp - 0x20]
inc eax
cmp eax, dword [ebp - 0x10]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x1c]
jle 0x489a91
jmp 0x408f45
cmp dword [ebp - 0x3c], 0
jne case.0x4087c4.157
jmp 0x489b1f
mov eax, dword [ebp - 0x1c]
cmp ecx, 1
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x14], 1
jl 0x408f45
cmp ecx, dword [ebx + 0x7c]
jae 0x48cc04
movzx ebx, word [ecx]
add ecx, 2
mov dword [ebp - 0x18], ebx
mov dword [ebp - 8], ecx
test eax, eax
je 0x489ba7
mov eax, ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x489ba4
movzx eax, word [ecx]
and dword [ebp - 0x18], 0x3ff
shl dword [ebp - 0x18], 0xa
and eax, 0x3ff
or eax, dword [ebp - 0x18]
add eax, 0x10000
add ecx, 2
mov dword [ebp - 0x18], eax
mov dword [ebp - 8], ecx
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x18], 0x24
je 0x489bdb
cmp dword [ebp - 0x18], 0x40
je 0x489bdb
cmp dword [ebp - 0x18], 0x60
je 0x489bdb
cmp dword [ebp - 0x18], 0xa0
jb 0x489bcb
cmp dword [ebp - 0x18], 0xd7ff
jbe 0x489bdb
cmp dword [ebp - 0x18], 0xe000
mov dword [ebp - 0xc], 0
jb 0x489be2
mov dword [ebp - 0xc], 1
mov esi, dword [ebp - 0x3c]
cmp dword [ebp - 0xc], esi
je case.0x4087c4.157
mov ebx, dword [ebp - 0x14]
inc ebx
cmp ebx, dword [ebp - 0x10]
mov dword [ebp - 0x14], ebx
mov ebx, dword [ebp + 0x10]
jle 0x489b59
jmp 0x408f45
cmp dword [ebp - 0x28], 0x16
jne 0x489dac
cmp ecx, 1
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x18], 1
jl 0x408f42
mov eax, dword [ebx + 0x7c]
mov dword [ebp - 0x20], eax
cmp ecx, eax
jae 0x48cc04
movzx edx, word [ecx]
add ecx, 2
cmp dword [ebp - 0x1c], 0
mov dword [ebp - 0xc], edx
mov dword [ebp - 8], ecx
je 0x489c73
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x489c73
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 - 0xc], edx
mov dword [ebp - 8], ecx
mov eax, edx
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0xc]
sar eax, 7
movzx eax, byte [eax + 0x4af620]
shl eax, 7
and edx, 0x8000007f
jns 0x489c98
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x4a1788]
movzx edx, byte [eax*8 + 0x4ae28a]
mov eax, dword [ebx + 0x7c]
mov dword [ebp - 0xc], edx
cmp ecx, eax
jae 0x489d6b
mov ebx, dword [ebp - 0x1c]
mov esi, edx
movzx edx, word [ecx]
mov dword [ebp - 0xc], 1
mov dword [ebp - 0x14], edx
test ebx, ebx
je 0x489d00
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x489d00
movzx eax, word [ecx + 2]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
add edx, 0x10000
mov dword [ebp - 0x14], edx
mov dword [ebp - 0xc], 2
mov ecx, dword [ebp - 0x14]
mov eax, edx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4af620]
shl eax, 7
and ecx, 0x8000007f
jns 0x489d25
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x4a1788]
movzx ecx, byte [eax*8 + 0x4ae28a]
mov eax, 1
shl eax, cl
test dword [esi*4 + 0x4a16ac], eax
je 0x489d62
mov eax, dword [ebp - 0xc]
mov esi, ecx
mov ecx, dword [ebp - 8]
lea ecx, [ecx + eax*2]
mov eax, dword [ebp - 0x20]
mov dword [ebp - 8], ecx
cmp ecx, eax
jb 0x489cbd
jmp 0x489d68
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x20]
mov ebx, dword [ebp + 0x10]
cmp dword [ebx + 0x8c], 0
je 0x489d94
cmp ecx, eax
jb 0x489d94
cmp ecx, dword [ebx + 0x88]
jbe 0x489d94
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x487023
mov eax, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x18], eax
cmp eax, dword [ebp - 0x10]
jle 0x489c23
mov edx, dword [ebp - 0x38]
jmp 0x408f42
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x48a596
mov eax, dword [ebp - 0x28]
add eax, 0xfffffffa
cmp eax, 0xf
ja case.default.0x487b11
mov eax, dword [ebp - 0x28]
add eax, 0xfffffffa
jmp dword [eax*4 + 0x48e82c]
mov eax, dword [ebp - 0x1c]
cmp ecx, 1
mov ecx, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x408f45
lea edx, [ecx + 2]
mov dword [ebp - 0x20], edx
mov edx, dword [ebx + 0x7c]
cmp ecx, edx
jae 0x48cc04
cmp dword [ebx + 0x18], 0
je 0x489ead
mov eax, dword [ebp - 0x1c]
push eax
lea eax, [ebx + 0x1c]
push eax
push edx
mov edx, dword [ebx + 0x18]
call fcn.00406a87
add esp, 0xc
test eax, eax
jne case.0x4087c4.157
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x20]
cmp dword [ebx + 0x8c], 0
je 0x489e5d
cmp edx, dword [ebx + 0x7c]
jb 0x489e5d
cmp dword [ebx + 0x18], 0
jne 0x489e5d
cmp dword [ebx + 0x1c], 2
jne 0x489e5d
mov ax, word [ecx]
cmp ax, word [ebx + 0x34]
jne 0x489e5d
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x487023
add ecx, 2
add edx, 2
mov dword [ebp - 8], ecx
mov dword [ebp - 0x20], edx
cmp ecx, dword [ebx + 0x7c]
jae 0x489e95
mov ax, word [ecx]
mov dword [ebp - 0x14], 0xfc00
and ax, word [ebp - 0x14]
mov dword [ebp - 0x14], 0xdc00
cmp ax, word [ebp - 0x14]
jne 0x489e95
add ecx, 2
add edx, 2
mov dword [ebp - 8], ecx
mov dword [ebp - 0x20], edx
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x10]
jle 0x489def
mov edx, dword [ebp - 0x38]
jmp 0x408f42
mov eax, dword [ebx + 0x1c]
add eax, eax
sub edx, eax
cmp ecx, edx
ja 0x489e23
mov ax, word [ecx]
cmp ax, word [ebx + 0x34]
jne 0x489e23
cmp dword [ebx + 0x1c], 1
je case.0x4087c4.157
mov edx, dword [ebp - 0x20]
mov ax, word [edx]
cmp ax, word [ebx + 0x36]
je case.0x4087c4.157
jmp 0x489e26
mov eax, dword [ebp - 0x1c]
cmp ecx, 1
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x14], 1
jl 0x408f45
mov eax, dword [ebp - 0x10]
cmp ecx, dword [ebx + 0x7c]
jae 0x48cc04
add ecx, 2
mov dword [ebp - 8], ecx
cmp ecx, dword [ebx + 0x7c]
jae 0x489f39
mov ax, word [ecx]
mov dword [ebp - 0xc], 0xfc00
and ax, word [ebp - 0xc]
mov dword [ebp - 0xc], 0xdc00
cmp ax, word [ebp - 0xc]
mov eax, dword [ebp - 0x10]
jne 0x489f39
add ecx, 2
mov dword [ebp - 8], ecx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], eax
jle 0x489f01
jmp 0x408f42
mov eax, dword [ebx + 0x7c]
add ecx, ecx
sub eax, ecx
mov dword [ebp - 0xc], ecx
mov ecx, dword [ebp - 8]
cmp ecx, eax
ja case.0x4087c4.157
add ecx, dword [ebp - 0xc]
mov dword [ebp - 8], ecx
jmp 0x408f42
mov eax, dword [ebp - 0x1c]
cmp ecx, 1
mov ecx, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x408f45
cmp ecx, dword [ebx + 0x7c]
jae 0x48cc04
movzx eax, word [ecx]
mov dword [ebp - 0x20], eax
add ecx, 2
and eax, 0xfc00
mov dword [ebp - 8], ecx
cmp eax, 0xd800
jne 0x489fc0
movzx eax, word [ecx]
and dword [ebp - 0x20], 0x3ff
shl dword [ebp - 0x20], 0xa
and eax, 0x3ff
or eax, dword [ebp - 0x20]
add eax, 0x10000
add ecx, 2
mov dword [ebp - 8], ecx
jmp 0x489fc3
mov eax, dword [ebp - 0x20]
cmp eax, 0xd
ja 0x489ff0
je 0x489fdd
cmp eax, 0xa
je 0x48a00f
add eax, 0xfffffff5
cmp eax, 1
ja case.0x4087c4.157
jmp 0x48a005
cmp ecx, dword [ebx + 0x7c]
jae 0x48a00f
cmp word [ecx], 0xa
jne 0x48a00f
add ecx, 2
mov dword [ebp - 8], ecx
jmp 0x48a00f
cmp eax, 0x85
je 0x48a005
add eax, 0xffffdfd8
cmp eax, 1
ja case.0x4087c4.157
cmp dword [ebx + 0x6c], 0
jne case.0x4087c4.157
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x10]
jle 0x489f7c
jmp 0x408f42
mov eax, dword [ebp - 0x1c]
cmp ecx, 1
mov ecx, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x408f45
cmp ecx, dword [ebx + 0x7c]
jae 0x48cc04
movzx eax, word [ecx]
mov dword [ebp - 0x20], eax
add ecx, 2
and eax, 0xfc00
mov dword [ebp - 8], ecx
cmp eax, 0xd800
jne 0x48a07e
movzx eax, word [ecx]
and dword [ebp - 0x20], 0x3ff
shl dword [ebp - 0x20], 0xa
and eax, 0x3ff
or eax, dword [ebp - 0x20]
add eax, 0x10000
add ecx, 2
mov dword [ebp - 8], ecx
jmp 0x48a081
mov eax, dword [ebp - 0x20]
cmp eax, 0x180e
ja 0x48a0bc
je case.0x4087c4.157
cmp eax, 0xa0
ja 0x48a0af
je case.0x4087c4.157
cmp eax, 9
je case.0x4087c4.157
cmp eax, 0x20
je case.0x4087c4.157
jmp 0x48a0f3
cmp eax, 0x1680
je case.0x4087c4.157
jmp 0x48a0f3
cmp eax, 0x205f
ja 0x48a0e8
je case.0x4087c4.157
cmp eax, 0x2000
jb 0x48a0f3
cmp eax, 0x200a
jbe case.0x4087c4.157
cmp eax, 0x202f
je case.0x4087c4.157
jmp 0x48a0f3
cmp eax, 0x3000
je case.0x4087c4.157
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x10]
jle 0x48a03a
jmp 0x408f42
mov eax, dword [ebp - 0x1c]
cmp ecx, 1
mov ecx, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x408f45
cmp ecx, dword [ebx + 0x7c]
jae 0x48cc04
movzx eax, word [ecx]
mov dword [ebp - 0x20], eax
add ecx, 2
and eax, 0xfc00
mov dword [ebp - 8], ecx
cmp eax, 0xd800
jne 0x48a162
movzx eax, word [ecx]
and dword [ebp - 0x20], 0x3ff
shl dword [ebp - 0x20], 0xa
and eax, 0x3ff
or eax, dword [ebp - 0x20]
add eax, 0x10000
add ecx, 2
mov dword [ebp - 8], ecx
jmp 0x48a165
mov eax, dword [ebp - 0x20]
cmp eax, 0x180e
ja 0x48a194
je 0x48a1c7
cmp eax, 0xa0
ja 0x48a187
je 0x48a1c7
cmp eax, 9
je 0x48a1c7
cmp eax, 0x20
jne case.0x4087c4.157
jmp 0x48a1c7
cmp eax, 0x1680
jne case.0x4087c4.157
jmp 0x48a1c7
cmp eax, 0x205f
ja 0x48a1bc
je 0x48a1c7
cmp eax, 0x2000
jb case.0x4087c4.157
cmp eax, 0x200a
jbe 0x48a1c7
cmp eax, 0x202f
jne case.0x4087c4.157
jmp 0x48a1c7
cmp eax, 0x3000
jne case.0x4087c4.157
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x10]
jle 0x48a11e
jmp 0x408f42
mov eax, dword [ebp - 0x1c]
cmp ecx, 1
mov ecx, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x408f45
cmp ecx, dword [ebx + 0x7c]
jae 0x48cc04
movzx eax, word [ecx]
mov dword [ebp - 0x20], eax
add ecx, 2
and eax, 0xfc00
mov dword [ebp - 8], ecx
cmp eax, 0xd800
jne 0x48a236
movzx eax, word [ecx]
and dword [ebp - 0x20], 0x3ff
shl dword [ebp - 0x20], 0xa
and eax, 0x3ff
or eax, dword [ebp - 0x20]
add eax, 0x10000
add ecx, 2
mov dword [ebp - 8], ecx
jmp 0x48a239
mov eax, dword [ebp - 0x20]
cmp eax, 0x85
ja 0x48a256
je case.0x4087c4.157
cmp eax, 0xa
jb 0x48a268
cmp eax, 0xd
jbe case.0x4087c4.157
jmp 0x48a268
cmp eax, 0x2028
jb 0x48a268
cmp eax, 0x2029
jbe case.0x4087c4.157
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x10]
jle 0x48a1f2
jmp 0x408f42
mov eax, dword [ebp - 0x1c]
cmp ecx, 1
mov ecx, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x408f45
cmp ecx, dword [ebx + 0x7c]
jae 0x48cc04
movzx eax, word [ecx]
mov dword [ebp - 0x20], eax
add ecx, 2
and eax, 0xfc00
mov dword [ebp - 8], ecx
cmp eax, 0xd800
jne 0x48a2d7
movzx eax, word [ecx]
and dword [ebp - 0x20], 0x3ff
shl dword [ebp - 0x20], 0xa
and eax, 0x3ff
or eax, dword [ebp - 0x20]
add eax, 0x10000
add ecx, 2
mov dword [ebp - 8], ecx
jmp 0x48a2da
mov eax, dword [ebp - 0x20]
cmp eax, 0x85
ja 0x48a2f1
je 0x48a2ff
add eax, 0xfffffff6
cmp eax, 3
ja case.0x4087c4.157
jmp 0x48a2ff
add eax, 0xffffdfd8
cmp eax, 1
ja case.0x4087c4.157
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x10]
jle 0x48a293
jmp 0x408f42
mov eax, dword [ebp - 0x1c]
cmp ecx, 1
mov ecx, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x408f45
cmp ecx, dword [ebx + 0x7c]
jae 0x48cc04
movzx eax, word [ecx]
mov dword [ebp - 0x14], eax
add ecx, 2
and eax, 0xfc00
mov dword [ebp - 8], ecx
cmp eax, 0xd800
jne 0x48a370
movzx eax, word [ecx]
mov ebx, dword [ebp - 0x14]
and ebx, 0x3ff
and eax, 0x3ff
shl ebx, 0xa
or eax, ebx
mov ebx, dword [ebp + 0x10]
add eax, 0x10000
add ecx, 2
mov dword [ebp - 0x14], eax
mov dword [ebp - 8], ecx
jmp 0x48a373
mov eax, dword [ebp - 0x14]
cmp eax, 0x80
jae 0x48a38d
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 4
mov ecx, dword [ebp - 8]
jne case.0x4087c4.157
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x10]
jle 0x48a326
jmp 0x408f42
mov eax, dword [ebp - 0x1c]
cmp ecx, 1
mov ecx, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x408f45
cmp ecx, dword [ebx + 0x7c]
jae 0x48cc04
cmp word [ecx], 0x80
jae case.0x4087c4.157
mov eax, dword [ebx + 0x44]
movzx ebx, word [ecx]
test byte [ebx + eax], 4
mov ebx, dword [ebp + 0x10]
je case.0x4087c4.157
mov eax, dword [ebp - 0xc]
inc eax
add ecx, 2
mov dword [ebp - 8], ecx
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x10]
jle 0x48a3b4
jmp 0x408f42
mov eax, dword [ebp - 0x1c]
cmp ecx, 1
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x14], 1
jl 0x408f45
mov eax, dword [ebp - 0x10]
cmp ecx, dword [ebx + 0x7c]
jae 0x48cc04
cmp word [ecx], 0x80
mov ebx, dword [ebp + 0x10]
jae 0x48a434
mov eax, dword [ebx + 0x44]
movzx ebx, word [ecx]
test byte [ebx + eax], 1
mov ebx, dword [ebp + 0x10]
jne case.0x4087c4.157
mov eax, dword [ebp - 0x10]
add ecx, 2
mov dword [ebp - 8], ecx
cmp ecx, dword [ebx + 0x7c]
jae 0x48a463
mov ax, word [ecx]
mov dword [ebp - 0xc], 0xfc00
and ax, word [ebp - 0xc]
mov dword [ebp - 0xc], 0xdc00
cmp ax, word [ebp - 0xc]
mov eax, dword [ebp - 0x10]
jne 0x48a463
add ecx, 2
mov dword [ebp - 8], ecx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], eax
jle 0x48a40b
jmp 0x408f42
mov eax, dword [ebp - 0x1c]
cmp ecx, 1
mov ecx, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x408f45
cmp ecx, dword [ebx + 0x7c]
jae 0x48cc04
cmp word [ecx], 0x80
jae case.0x4087c4.157
mov eax, dword [ebx + 0x44]
movzx ebx, word [ecx]
test byte [ebx + eax], 1
mov ebx, dword [ebp + 0x10]
je case.0x4087c4.157
mov eax, dword [ebp - 0xc]
inc eax
add ecx, 2
mov dword [ebp - 8], ecx
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x10]
jle 0x48a486
jmp 0x408f42
mov eax, dword [ebp - 0x1c]
cmp ecx, 1
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x14], 1
jl 0x408f45
mov eax, dword [ebp - 0x10]
cmp ecx, dword [ebx + 0x7c]
jae 0x48cc04
cmp word [ecx], 0x80
mov ebx, dword [ebp + 0x10]
jae 0x48a506
mov eax, dword [ebx + 0x44]
movzx ebx, word [ecx]
test byte [ebx + eax], 0x10
mov ebx, dword [ebp + 0x10]
jne case.0x4087c4.157
mov eax, dword [ebp - 0x10]
add ecx, 2
mov dword [ebp - 8], ecx
cmp ecx, dword [ebx + 0x7c]
jae 0x48a535
mov ax, word [ecx]
mov dword [ebp - 0xc], 0xfc00
and ax, word [ebp - 0xc]
mov dword [ebp - 0xc], 0xdc00
cmp ax, word [ebp - 0xc]
mov eax, dword [ebp - 0x10]
jne 0x48a535
add ecx, 2
mov dword [ebp - 8], ecx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], eax
jle 0x48a4dd
jmp 0x408f42
mov eax, dword [ebp - 0x1c]
cmp ecx, 1
mov ecx, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x408f45
cmp ecx, dword [ebx + 0x7c]
jae 0x48cc04
cmp word [ecx], 0x80
jae case.0x4087c4.157
mov eax, dword [ebx + 0x44]
movzx ebx, word [ecx]
test byte [ebx + eax], 0x10
mov ebx, dword [ebp + 0x10]
je case.0x4087c4.157
mov eax, dword [ebp - 0xc]
inc eax
add ecx, 2
mov dword [ebp - 8], ecx
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x10]
jle 0x48a558
jmp 0x408f42
mov ebx, dword [ebp - 0x28]
add ebx, 0xfffffffa
cmp ebx, 0xf
ja case.default.0x487b11
mov ebx, dword [ebp - 0x28]
add ebx, 0xfffffffa
jmp dword [ebx*4 + 0x48e86c]
mov ebx, dword [ebp + 0x10]
cmp ecx, 1
mov ecx, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x408f45
mov edx, dword [ebx + 0x7c]
cmp ecx, edx
jae 0x48cc04
cmp dword [ebx + 0x18], 0
je 0x48a5f8
lea eax, [ebx + 0x1c]
push 0
push eax
push edx
mov edx, dword [ebx + 0x18]
call fcn.00406a87
add esp, 0xc
test eax, eax
jne case.0x4087c4.157
mov ecx, dword [ebp - 8]
jmp 0x48a624
mov eax, dword [ebx + 0x1c]
add eax, eax
sub edx, eax
cmp ecx, edx
ja 0x48a624
mov ax, word [ecx]
cmp ax, word [ebx + 0x34]
jne 0x48a624
cmp dword [ebx + 0x1c], 1
je case.0x4087c4.157
mov ax, word [ecx + 2]
cmp ax, word [ebx + 0x36]
je case.0x4087c4.157
cmp dword [ebx + 0x8c], 0
je 0x48a65e
lea eax, [ecx + 2]
cmp eax, dword [ebx + 0x7c]
jb 0x48a65e
cmp dword [ebx + 0x18], 0
jne 0x48a65e
cmp dword [ebx + 0x1c], 2
jne 0x48a65e
mov ax, word [ecx]
cmp ax, word [ebx + 0x34]
jne 0x48a65e
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x487023
mov eax, dword [ebp - 0xc]
inc eax
add ecx, 2
mov dword [ebp - 8], ecx
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x10]
jle 0x48a5c8
mov edx, dword [ebp - 0x38]
jmp 0x408f42
mov ebx, dword [ebp + 0x10]
add ecx, ecx
mov eax, dword [ebx + 0x7c]
sub eax, ecx
mov dword [ebp - 0xc], ecx
mov ecx, dword [ebp - 8]
cmp ecx, eax
ja 0x48cc04
add ecx, dword [ebp - 0xc]
mov dword [ebp - 8], ecx
jmp 0x408f42
mov ebx, dword [ebp + 0x10]
add ecx, ecx
mov eax, dword [ebx + 0x7c]
sub eax, ecx
mov dword [ebp - 0xc], ecx
mov ecx, dword [ebp - 8]
cmp ecx, eax
ja 0x48cc04
add ecx, dword [ebp - 0xc]
mov dword [ebp - 8], ecx
jmp 0x408f42
mov ebx, dword [ebp + 0x10]
cmp ecx, 1
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x14], 1
jl 0x408f45
mov eax, dword [ebp - 0x10]
cmp ecx, dword [ebx + 0x7c]
jae 0x48cc04
movzx ebx, word [ecx]
add ecx, 2
mov dword [ebp - 0x20], ebx
cmp ebx, 0xd
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 8], ecx
jg 0x48a728
cmp dword [ebp - 0x20], 0xd
je 0x48a715
cmp dword [ebp - 0x20], 0xa
je 0x48a74f
mov eax, dword [ebp - 0x20]
add eax, 0xfffffff5
cmp eax, 1
ja case.0x4087c4.157
jmp 0x48a742
cmp ecx, dword [ebx + 0x7c]
jae 0x48a74f
cmp word [ecx], 0xa
jne 0x48a74f
add ecx, 2
mov dword [ebp - 8], ecx
jmp 0x48a74f
cmp dword [ebp - 0x20], 0x85
je 0x48a745
mov eax, dword [ebp - 0x20]
add eax, 0xffffdfd8
cmp eax, 1
ja case.0x4087c4.157
mov eax, dword [ebp - 0x10]
cmp dword [ebx + 0x6c], 0
jne case.0x4087c4.157
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], eax
jle 0x48a6db
jmp 0x408f42
mov ebx, dword [ebp + 0x10]
mov eax, dword [ebp - 0x1c]
cmp ecx, 1
mov ecx, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x408f45
cmp ecx, dword [ebx + 0x7c]
jae 0x48cc04
movzx eax, word [ecx]
add ecx, 2
mov dword [ebp - 0x18], eax
mov dword [ebp - 8], ecx
cmp eax, 0x180e
jg 0x48a7cc
cmp eax, 0x180e
je case.0x4087c4.157
cmp eax, 0xa0
jg 0x48a7bd
je case.0x4087c4.157
cmp eax, 9
je case.0x4087c4.157
cmp eax, 0x20
je case.0x4087c4.157
jmp 0x48a80d
cmp dword [ebp - 0x18], 0x1680
je case.0x4087c4.157
jmp 0x48a80d
cmp dword [ebp - 0x18], 0x205f
jg 0x48a800
je case.0x4087c4.157
cmp dword [ebp - 0x18], 0x2000
jl 0x48a80d
cmp dword [ebp - 0x18], 0x200a
jle case.0x4087c4.157
cmp dword [ebp - 0x18], 0x202f
je case.0x4087c4.157
jmp 0x48a80d
cmp dword [ebp - 0x18], 0x3000
je case.0x4087c4.157
mov eax, dword [ebp - 0xc]
inc eax
cmp eax, dword [ebp - 0x10]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x1c]
jle 0x48a775
jmp 0x408f45
mov ebx, dword [ebp + 0x10]
mov eax, dword [ebp - 0x1c]
cmp ecx, 1
mov ecx, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x408f45
cmp ecx, dword [ebx + 0x7c]
jae 0x48cc04
movzx eax, word [ecx]
add ecx, 2
mov dword [ebp - 0x18], eax
cmp eax, 0x180e
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 8], ecx
jg 0x48a892
cmp dword [ebp - 0x18], 0x180e
je 0x48a8cf
cmp dword [ebp - 0x18], 0xa0
jg 0x48a883
je 0x48a8cf
cmp dword [ebp - 0x18], 9
je 0x48a8cf
cmp dword [ebp - 0x18], 0x20
jne case.0x4087c4.157
jmp 0x48a8cf
cmp dword [ebp - 0x18], 0x1680
jne case.0x4087c4.157
jmp 0x48a8cf
cmp dword [ebp - 0x18], 0x205f
jg 0x48a8c2
je 0x48a8cf
cmp dword [ebp - 0x18], 0x2000
jl case.0x4087c4.157
cmp dword [ebp - 0x18], 0x200a
jle 0x48a8cf
cmp dword [ebp - 0x18], 0x202f
jne case.0x4087c4.157
jmp 0x48a8cf
cmp dword [ebp - 0x18], 0x3000
jne case.0x4087c4.157
mov ebx, dword [ebp - 0xc]
inc ebx
cmp ebx, dword [ebp - 0x10]
mov dword [ebp - 0xc], ebx
mov ebx, dword [ebp + 0x10]
jle 0x48a83e
jmp 0x408f45
mov ebx, dword [ebp + 0x10]
mov eax, dword [ebp - 0x1c]
cmp ecx, 1
mov ecx, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x408f45
cmp ecx, dword [ebx + 0x7c]
jae 0x48cc04
movzx eax, word [ecx]
add ecx, 2
mov dword [ebp - 0x20], eax
cmp eax, 0x85
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 8], ecx
jg 0x48a93e
cmp dword [ebp - 0x20], 0x85
je case.0x4087c4.157
cmp dword [ebp - 0x20], 0xa
jl 0x48a954
cmp dword [ebp - 0x20], 0xd
jle case.0x4087c4.157
jmp 0x48a954
cmp dword [ebp - 0x20], 0x2028
jl 0x48a954
cmp dword [ebp - 0x20], 0x2029
jle case.0x4087c4.157
mov ebx, dword [ebp - 0xc]
inc ebx
cmp ebx, dword [ebp - 0x10]
mov dword [ebp - 0xc], ebx
mov ebx, dword [ebp + 0x10]
jle 0x48a900
jmp 0x408f45
mov ebx, dword [ebp + 0x10]
cmp ecx, 1
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x20], 1
jl 0x408f45
mov eax, dword [ebp - 0x10]
cmp ecx, dword [ebx + 0x7c]
jae 0x48cc04
movzx ebx, word [ecx]
add ecx, 2
mov dword [ebp - 0x14], ebx
cmp ebx, 0x85
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 8], ecx
jg 0x48a9bb
cmp dword [ebp - 0x14], 0x85
je 0x48a9cf
mov eax, dword [ebp - 0x14]
add eax, 0xfffffff6
cmp eax, 3
ja case.0x4087c4.157
jmp 0x48a9cc
mov eax, dword [ebp - 0x14]
add eax, 0xffffdfd8
cmp eax, 1
ja case.0x4087c4.157
mov eax, dword [ebp - 0x10]
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], eax
jle 0x48a981
jmp 0x408f42
mov ebx, dword [ebp + 0x10]
cmp ecx, 1
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x14], 1
jl 0x408f45
mov eax, dword [ebp - 0x10]
cmp ecx, dword [ebx + 0x7c]
jae 0x48cc04
movzx ebx, word [ecx]
mov dword [ebp - 0xc], 0xff
cmp bx, word [ebp - 0xc]
mov dword [ebp - 0x20], ebx
mov ebx, dword [ebp + 0x10]
ja 0x48aa2d
mov eax, dword [ebp - 0x20]
movzx ecx, ax
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 4
jne case.0x4087c4.157
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x10]
inc dword [ebp - 0x14]
add ecx, 2
mov dword [ebp - 8], ecx
cmp dword [ebp - 0x14], eax
jle 0x48a9f5
jmp 0x408f42
mov ebx, dword [ebp + 0x10]
cmp ecx, 1
mov ecx, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x408f45
cmp ecx, dword [ebx + 0x7c]
jae 0x48cc04
movzx eax, word [ecx]
mov ecx, 0xff
cmp ax, cx
ja case.0x4087c4.157
mov ecx, eax
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 4
je case.0x4087c4.157
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 8]
inc eax
add ecx, 2
mov dword [ebp - 8], ecx
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x10]
jle 0x48aa56
jmp 0x408f42
mov ebx, dword [ebp + 0x10]
cmp ecx, 1
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x14], 1
jl 0x408f45
mov eax, dword [ebp - 0x10]
cmp ecx, dword [ebx + 0x7c]
jae 0x48cc04
movzx ebx, word [ecx]
mov dword [ebp - 0xc], 0xff
cmp bx, word [ebp - 0xc]
mov dword [ebp - 0x20], ebx
mov ebx, dword [ebp + 0x10]
ja 0x48aaea
mov eax, dword [ebp - 0x20]
movzx ecx, ax
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 1
jne case.0x4087c4.157
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x10]
inc dword [ebp - 0x14]
add ecx, 2
mov dword [ebp - 8], ecx
cmp dword [ebp - 0x14], eax
jle 0x48aab2
jmp 0x408f42
mov ebx, dword [ebp + 0x10]
cmp ecx, 1
mov ecx, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x408f45
cmp ecx, dword [ebx + 0x7c]
jae 0x48cc04
movzx eax, word [ecx]
mov ecx, 0xff
cmp ax, cx
ja case.0x4087c4.157
mov ecx, eax
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 1
je case.0x4087c4.157
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 8]
inc eax
add ecx, 2
mov dword [ebp - 8], ecx
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x10]
jle 0x48ab13
jmp 0x408f42
mov ebx, dword [ebp + 0x10]
cmp ecx, 1
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x14], 1
jl 0x408f45
mov eax, dword [ebp - 0x10]
cmp ecx, dword [ebx + 0x7c]
jae 0x48cc04
movzx ebx, word [ecx]
mov dword [ebp - 0xc], 0xff
cmp bx, word [ebp - 0xc]
mov dword [ebp - 0x20], ebx
mov ebx, dword [ebp + 0x10]
ja 0x48aba7
mov eax, dword [ebp - 0x20]
movzx ecx, ax
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 0x10
jne case.0x4087c4.157
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x10]
inc dword [ebp - 0x14]
add ecx, 2
mov dword [ebp - 8], ecx
cmp dword [ebp - 0x14], eax
jle 0x48ab6f
jmp 0x408f42
mov ebx, dword [ebp + 0x10]
cmp ecx, 1
mov ecx, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x408f45
cmp ecx, dword [ebx + 0x7c]
jae 0x48cc04
movzx eax, word [ecx]
mov ecx, 0xff
cmp ax, cx
ja case.0x4087c4.157
mov ecx, eax
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 0x10
je case.0x4087c4.157
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 8]
inc eax
add ecx, 2
mov dword [ebp - 8], ecx
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x10]
jle 0x48abd0
jmp 0x408f42
mov dword [ebp - 0x38], ecx
test edx, edx
js 0x48b538
cmp edx, 0xa
ja case.default.0x487b11
jmp dword [edx*4 + 0x48e8ac]
mov edx, dword [ebp - 0x10]
cmp edx, dword [ebp - 0x24]
jge 0x48b4d2
mov eax, dword [ebx + 0x7c]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x1c]
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 0xc], 1
cmp ecx, dword [ebp - 0x2c]
jae 0x48ac9f
test eax, eax
je 0x48ac7b
mov ax, word [ecx]
mov dword [ebp - 0x14], 0xfc00
and ax, word [ebp - 0x14]
mov dword [ebp - 0x14], 0xd800
cmp ax, word [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
jne 0x48ac7b
mov dword [ebp - 0xc], 2
cmp dword [ebp - 0x3c], 0
mov esi, dword [ebp - 0x30]
jne 0x48b4d2
mov ebx, dword [ebp - 0xc]
inc edx
lea ecx, [ecx + ebx*2]
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 8], ecx
cmp edx, dword [ebp - 0x24]
jl 0x48ac43
jmp 0x48b4d2
cmp dword [ebx + 0x8c], 0
je 0x48b4d2
cmp ecx, dword [ebx + 0x88]
jbe 0x48b4d2
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jle 0x48b4d2
mov eax, 0xfffffff4
jmp 0x408907
mov edx, dword [ebp - 0x24]
cmp dword [ebp - 0x10], edx
jge 0x48b4d2
mov dword [ebp - 0x2c], 1
cmp ecx, dword [ebx + 0x7c]
jae 0x48ac9f
movzx edx, word [ecx]
mov dword [ebp - 0xc], edx
test eax, eax
je 0x48ad2a
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48ad2a
movzx eax, word [ecx + 2]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
add edx, 0x10000
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x2c], 2
mov eax, edx
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0xc]
sar eax, 7
movzx eax, byte [eax + 0x4af620]
shl eax, 7
and edx, 0x8000007f
jns 0x48ad4f
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x4a1788]
movzx eax, byte [eax*8 + 0x4ae289]
cmp eax, 9
je 0x48ad74
cmp eax, 5
je 0x48ad74
cmp eax, 8
je 0x48ad74
xor eax, eax
jmp 0x48ad79
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je 0x48b4d2
mov eax, dword [ebp - 0x2c]
lea ecx, [ecx + eax*2]
mov eax, dword [ebp - 0x10]
inc eax
cmp eax, dword [ebp - 0x24]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 8], ecx
jl 0x48ace2
jmp 0x48b4d2
mov edx, dword [ebp - 0x24]
cmp dword [ebp - 0x10], edx
jge 0x48b4d2
mov dword [ebp - 0x2c], 1
cmp ecx, dword [ebx + 0x7c]
jae 0x48ac9f
movzx edx, word [ecx]
mov dword [ebp - 0xc], edx
test eax, eax
je 0x48adfb
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48adfb
movzx eax, word [ecx + 2]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
add edx, 0x10000
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x2c], 2
mov ecx, dword [ebp - 0xc]
mov eax, edx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4af620]
shl eax, 7
and ecx, 0x8000007f
jns 0x48ae20
dec ecx
or ecx, 0xffffff80
inc ecx
mov edx, dword [ebp - 0x44]
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4a1788]
movzx eax, byte [eax*8 + 0x4ae289]
cmp dword [eax*4 + 0x4b9190], edx
sete cl
cmp ecx, dword [ebp - 0x3c]
mov ecx, dword [ebp - 8]
je 0x48b4d2
mov eax, dword [ebp - 0x2c]
lea ecx, [ecx + eax*2]
mov eax, dword [ebp - 0x10]
inc eax
cmp eax, dword [ebp - 0x24]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 8], ecx
jl 0x48adaf
jmp 0x48b4d2
mov edx, dword [ebp - 0x24]
cmp dword [ebp - 0x10], edx
jge 0x48b4d2
mov dword [ebp - 0x2c], 1
cmp ecx, dword [ebx + 0x7c]
jae 0x48ac9f
movzx edx, word [ecx]
mov dword [ebp - 0xc], edx
test eax, eax
je 0x48aec6
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48aec6
movzx eax, word [ecx + 2]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
add edx, 0x10000
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x2c], 2
mov ecx, dword [ebp - 0xc]
mov eax, edx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4af620]
shl eax, 7
and ecx, 0x8000007f
jns 0x48aeeb
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4a1788]
movzx eax, byte [eax*8 + 0x4ae289]
cmp eax, dword [ebp - 0x44]
sete cl
cmp ecx, dword [ebp - 0x3c]
mov ecx, dword [ebp - 8]
je 0x48b4d2
mov eax, dword [ebp - 0x2c]
lea ecx, [ecx + eax*2]
mov eax, dword [ebp - 0x10]
inc eax
cmp eax, dword [ebp - 0x24]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 8], ecx
jl 0x48ae7a
jmp 0x48b4d2
mov edx, dword [ebp - 0x24]
cmp dword [ebp - 0x10], edx
jge 0x48b4d2
mov dword [ebp - 0x2c], 1
cmp ecx, dword [ebx + 0x7c]
jae 0x48ac9f
movzx edx, word [ecx]
mov dword [ebp - 0xc], edx
test eax, eax
je 0x48af8a
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48af8a
movzx eax, word [ecx + 2]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
add edx, 0x10000
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x2c], 2
mov ecx, dword [ebp - 0xc]
mov eax, edx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4af620]
shl eax, 7
and ecx, 0x8000007f
jns 0x48afaf
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4a1788]
movzx eax, byte [eax*8 + 0x4ae288]
cmp eax, dword [ebp - 0x44]
sete cl
cmp ecx, dword [ebp - 0x3c]
mov ecx, dword [ebp - 8]
je 0x48b4d2
mov eax, dword [ebp - 0x2c]
lea ecx, [ecx + eax*2]
mov eax, dword [ebp - 0x10]
inc eax
cmp eax, dword [ebp - 0x24]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 8], ecx
jl 0x48af3e
jmp 0x48b4d2
mov edx, dword [ebp - 0x24]
cmp dword [ebp - 0x10], edx
jge 0x48b4d2
mov dword [ebp - 0x2c], 1
cmp ecx, dword [ebx + 0x7c]
jae 0x48ac9f
movzx edx, word [ecx]
mov dword [ebp - 0xc], edx
test eax, eax
je 0x48b04e
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48b04e
movzx eax, word [ecx + 2]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
add edx, 0x10000
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x2c], 2
mov eax, edx
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0xc]
sar eax, 7
movzx eax, byte [eax + 0x4af620]
shl eax, 7
and edx, 0x8000007f
jns 0x48b073
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x4a1788]
movzx eax, byte [eax*8 + 0x4ae289]
mov eax, dword [eax*4 + 0x4b9190]
cmp eax, 1
je 0x48b09a
cmp eax, 3
je 0x48b09a
xor eax, eax
jmp 0x48b09f
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je 0x48b4d2
mov eax, dword [ebp - 0x2c]
lea ecx, [ecx + eax*2]
mov eax, dword [ebp - 0x10]
inc eax
cmp eax, dword [ebp - 0x24]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 8], ecx
jl 0x48b002
jmp 0x48b4d2
mov edx, dword [ebp - 0x10]
cmp edx, dword [ebp - 0x24]
jge 0x48b4d2
mov esi, dword [ebp - 0x30]
mov dword [ebp - 0xc], 1
cmp ecx, dword [ebx + 0x7c]
jae 0x48ac9f
movzx ebx, word [ecx]
mov dword [ebp - 0x18], ebx
mov ebx, dword [ebp + 0x10]
test eax, eax
je 0x48b12d
mov eax, dword [ebp - 0x18]
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48b12a
movzx eax, word [ecx + 2]
and dword [ebp - 0x18], 0x3ff
shl dword [ebp - 0x18], 0xa
and eax, 0x3ff
or eax, dword [ebp - 0x18]
mov dword [ebp - 0xc], 2
add eax, 0x10000
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x18], 0x180e
ja 0x48b181
je 0x48b218
cmp dword [ebp - 0x18], 0x85
ja 0x48b166
je 0x48b218
cmp dword [ebp - 0x18], 9
jb case.0x48b1a4.8203
cmp dword [ebp - 0x18], 0xd
jbe 0x48b218
cmp dword [ebp - 0x18], 0x20
jne case.0x48b1a4.8203
jmp 0x48b218
cmp dword [ebp - 0x18], 0xa0
je 0x48b218
cmp dword [ebp - 0x18], 0x1680
jne case.0x48b1a4.8203
jmp 0x48b218
cmp dword [ebp - 0x18], 0x202f
ja 0x48b1ab
je 0x48b218
mov eax, dword [ebp - 0x18]
add eax, 0xffffe000
cmp eax, 0x29
ja case.0x48b1a4.8203
movzx eax, byte [eax + 0x48e8e0]
jmp dword [eax*4 + 0x48e8d8]
cmp dword [ebp - 0x18], 0x205f
je 0x48b218
cmp dword [ebp - 0x18], 0x3000
je 0x48b218
mov ecx, dword [ebp - 0x18]
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4af620]
shl eax, 7
and ecx, 0x8000007f
jns 0x48b1e2
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4a1788]
movzx eax, byte [eax*8 + 0x4ae289]
cmp dword [eax*4 + 0x4b9190], 6
sete cl
cmp ecx, dword [ebp - 0x3c]
mov ecx, dword [ebp - 8]
je 0x48b4d2
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x10]
jmp 0x48b222
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x3c], 0
jne 0x48b4d2
mov esi, dword [ebp - 0xc]
inc edx
lea ecx, [ecx + esi*2]
mov esi, dword [ebp - 0x30]
mov dword [ebp - 8], ecx
mov dword [ebp - 0x10], edx
cmp edx, dword [ebp - 0x24]
jl 0x48b0d5
jmp 0x48b4d2
mov edx, dword [ebp - 0x24]
cmp dword [ebp - 0x10], edx
jge 0x48b4d2
mov dword [ebp - 0x2c], 1
cmp ecx, dword [ebx + 0x7c]
jae 0x48ac9f
movzx edx, word [ecx]
mov dword [ebp - 0xc], edx
test eax, eax
je 0x48b298
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48b298
movzx eax, word [ecx + 2]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
add edx, 0x10000
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x2c], 2
mov eax, edx
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0xc]
sar eax, 7
movzx ecx, byte [eax + 0x4af620]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x48b2be
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x4a1788]
movzx eax, byte [eax*8 + 0x4ae289]
mov eax, dword [eax*4 + 0x4b9190]
cmp eax, 1
je 0x48b2ea
cmp eax, 3
je 0x48b2ea
cmp edx, 0x5f
je 0x48b2ea
xor eax, eax
jmp 0x48b2ef
mov eax, 1
mov ecx, dword [ebp - 8]
cmp eax, dword [ebp - 0x3c]
je 0x48b4d2
mov eax, dword [ebp - 0x2c]
lea ecx, [ecx + eax*2]
mov eax, dword [ebp - 0x10]
inc eax
cmp eax, dword [ebp - 0x24]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 8], ecx
jl 0x48b24c
jmp 0x48b4d2
mov edx, dword [ebp - 0x10]
cmp edx, dword [ebp - 0x24]
jge 0x48b4d2
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x2c], 1
cmp ecx, dword [ebx + 0x7c]
jae 0x48ac9f
movzx ebx, word [ecx]
mov dword [ebp - 0x28], ebx
test eax, eax
je 0x48b37c
mov eax, ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48b379
movzx eax, word [ecx + 2]
and dword [ebp - 0x28], 0x3ff
shl dword [ebp - 0x28], 0xa
and eax, 0x3ff
or eax, dword [ebp - 0x28]
mov dword [ebp - 0x2c], 2
add eax, 0x10000
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x44]
lea ebx, [ebx*4 + 0x4b1820]
mov dword [ebp - 0x14], ebx
mov ebx, dword [ebx]
cmp dword [ebp - 0x28], ebx
mov dword [ebp - 0xc], ebx
mov ebx, dword [ebp + 0x10]
jb 0x48b3b5
mov ecx, dword [ebp - 0xc]
add dword [ebp - 0x14], 4
cmp dword [ebp - 0x28], ecx
mov ecx, dword [ebp - 8]
je 0x48b3dd
mov eax, dword [ebp - 0x14]
mov eax, dword [eax]
cmp dword [ebp - 0x28], eax
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x1c]
jae 0x48b396
cmp dword [ebp - 0x3c], 0
mov esi, dword [ebp - 0x30]
je 0x48b4d2
mov ebx, dword [ebp - 0x2c]
inc edx
lea ecx, [ecx + ebx*2]
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 8], ecx
cmp edx, dword [ebp - 0x24]
jl 0x48b328
jmp 0x48b4d2
cmp dword [ebp - 0x3c], 0
mov esi, dword [ebp - 0x30]
je 0x48b3c2
jmp 0x48b4d2
mov edx, dword [ebp - 0x10]
cmp edx, dword [ebp - 0x24]
jge 0x48b4d2
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x2c], 1
cmp ecx, dword [ebx + 0x7c]
jae 0x48b4ad
movzx ebx, word [ecx]
mov dword [ebp - 0x28], ebx
mov ebx, dword [ebp + 0x10]
test eax, eax
je 0x48b44f
mov eax, dword [ebp - 0x28]
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48b44c
movzx eax, word [ecx + 2]
and dword [ebp - 0x28], 0x3ff
shl dword [ebp - 0x28], 0xa
and eax, 0x3ff
or eax, dword [ebp - 0x28]
mov dword [ebp - 0x2c], 2
add eax, 0x10000
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x28], 0x24
je 0x48b483
cmp dword [ebp - 0x28], 0x40
je 0x48b483
cmp dword [ebp - 0x28], 0x60
je 0x48b483
cmp dword [ebp - 0x28], 0xa0
jb 0x48b473
cmp dword [ebp - 0x28], 0xd7ff
jbe 0x48b483
cmp dword [ebp - 0x28], 0xe000
mov dword [ebp - 0xc], 0
jb 0x48b48a
mov dword [ebp - 0xc], 1
mov esi, dword [ebp - 0x3c]
cmp dword [ebp - 0xc], esi
mov esi, dword [ebp - 0x30]
je 0x48b4d2
mov ebx, dword [ebp - 0x2c]
inc edx
lea ecx, [ecx + ebx*2]
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 8], ecx
cmp edx, dword [ebp - 0x24]
jl 0x48b3f7
jmp 0x48b4d2
cmp dword [ebx + 0x8c], 0
je 0x48b4d2
cmp ecx, dword [ebx + 0x88]
jbe 0x48b4d2
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x487023
test esi, esi
jne 0x4087a0
mov esi, dword [ebp - 0x38]
cmp ecx, esi
je 0x408811
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00408740
add esp, 0x14
test eax, eax
jne 0x408907
mov ecx, dword [ebp - 8]
sub ecx, 2
mov dword [ebp - 8], ecx
cmp dword [ebp - 0x1c], eax
je 0x48b52f
mov ax, word [ecx]
mov edx, 0xfc00
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x48b52f
sub ecx, 2
mov dword [ebp - 8], ecx
cmp ecx, esi
jne 0x48b4e5
jmp 0x408811
mov edx, dword [ebp - 0x28]
cmp edx, 0x16
jne 0x48b74b
mov edx, dword [ebp - 0x24]
cmp dword [ebp - 0x10], edx
jl 0x48b554
jmp 0x48b6fd
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebx + 0x7c]
mov dword [ebp - 0x2c], edx
cmp ecx, edx
jae 0x48b6d8
movzx edx, word [ecx]
add ecx, 2
mov dword [ebp - 0xc], edx
mov dword [ebp - 8], ecx
test eax, eax
je 0x48b5a2
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48b5a2
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 - 0xc], edx
mov dword [ebp - 8], ecx
mov eax, edx
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0xc]
sar eax, 7
movzx eax, byte [eax + 0x4af620]
shl eax, 7
and edx, 0x8000007f
jns 0x48b5c7
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x4a1788]
movzx edx, byte [eax*8 + 0x4ae28a]
mov eax, dword [ebx + 0x7c]
mov dword [ebp - 0xc], edx
cmp ecx, eax
jae 0x48b69d
mov ebx, dword [ebp - 0x1c]
mov esi, edx
movzx edx, word [ecx]
mov dword [ebp - 0xc], 1
mov dword [ebp - 0x14], edx
test ebx, ebx
je 0x48b62f
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48b62f
movzx eax, word [ecx + 2]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
add edx, 0x10000
mov dword [ebp - 0x14], edx
mov dword [ebp - 0xc], 2
mov ecx, dword [ebp - 0x14]
mov eax, edx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4af620]
shl eax, 7
and ecx, 0x8000007f
jns 0x48b654
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x4a1788]
movzx ecx, byte [eax*8 + 0x4ae28a]
mov eax, 1
shl eax, cl
test dword [esi*4 + 0x4a16ac], eax
je 0x48b691
mov eax, dword [ebp - 0xc]
mov esi, ecx
mov ecx, dword [ebp - 8]
lea ecx, [ecx + eax*2]
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 8], ecx
cmp ecx, eax
jb 0x48b5ec
jmp 0x48b697
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x2c]
mov ebx, dword [ebp + 0x10]
mov esi, dword [ebp - 0x30]
cmp dword [ebx + 0x8c], 0
je 0x48b6c6
cmp ecx, eax
jb 0x48b6c6
cmp ecx, dword [ebx + 0x88]
jbe 0x48b6c6
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x487023
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x10], eax
cmp eax, dword [ebp - 0x24]
jl 0x48b551
jmp 0x48b6fd
cmp dword [ebx + 0x8c], 0
je 0x48b6fd
cmp ecx, dword [ebx + 0x88]
jbe 0x48b6fd
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x487023
test esi, esi
jne 0x4087a0
cmp ecx, dword [ebp - 0x38]
je 0x408811
mov esi, dword [ebp - 0x1c]
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00408740
add esp, 0x14
test eax, eax
jne 0x408907
mov ecx, dword [ebp - 8]
sub ecx, 2
mov dword [ebp - 8], ecx
test esi, esi
jne 0x48c6a4
movzx edx, word [ecx]
jmp 0x48c6ed
test eax, eax
je 0x48c05a
add edx, 0xfffffffa
cmp edx, 0xf
ja case.default.0x487b11
jmp dword [edx*4 + 0x48e90c]
cmp dword [ebp - 0x24], 0x7fffffff
mov edx, dword [ebp - 0x10]
jge 0x48b877
cmp edx, dword [ebp - 0x24]
jge 0x48bfdc
lea eax, [ecx + 2]
mov dword [ebp - 0x18], eax
mov eax, dword [ebx + 0x7c]
mov dword [ebp - 0x14], eax
cmp ecx, eax
mov eax, dword [ebp - 0x1c]
jae 0x48b9d7
cmp dword [ebx + 0x18], 0
je 0x48b7bf
push eax
lea edx, [ebx + 0x1c]
push edx
push dword [ebp - 0x14]
mov edx, dword [ebx + 0x18]
call fcn.00406a87
mov ecx, dword [ebp - 8]
add esp, 0xc
test eax, eax
jne 0x48bfdc
mov edx, dword [ebp - 0x10]
jmp 0x48b7ef
mov eax, dword [ebx + 0x1c]
add eax, eax
sub dword [ebp - 0x14], eax
cmp ecx, dword [ebp - 0x14]
ja 0x48b7ef
mov ax, word [ecx]
cmp ax, word [ebx + 0x34]
jne 0x48b7ef
cmp dword [ebx + 0x1c], 1
je 0x48bfdc
mov eax, dword [ebp - 0x18]
mov ax, word [eax]
cmp ax, word [ebx + 0x36]
je 0x48bfdc
cmp dword [ebx + 0x8c], 0
mov eax, dword [ebp - 0x18]
je 0x48b82f
cmp eax, dword [ebx + 0x7c]
jb 0x48b82f
cmp dword [ebx + 0x18], 0
jne 0x48b82f
cmp dword [ebx + 0x1c], 2
mov ecx, dword [ebp - 8]
jne 0x48b82f
mov ax, word [ecx]
cmp ax, word [ebx + 0x34]
jne 0x48b82c
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x487023
mov eax, dword [ebp - 0x18]
add ecx, 2
add eax, 2
mov dword [ebp - 8], ecx
mov dword [ebp - 0x18], eax
cmp ecx, dword [ebx + 0x7c]
jae 0x48b865
mov ax, word [ecx]
mov dword [ebp - 0xc], 0xfc00
and ax, word [ebp - 0xc]
mov dword [ebp - 0xc], 0xdc00
cmp ax, word [ebp - 0xc]
jne 0x48b865
add ecx, 2
add dword [ebp - 0x18], 2
mov dword [ebp - 8], ecx
inc edx
mov dword [ebp - 0x10], edx
cmp edx, dword [ebp - 0x24]
jl 0x48b785
jmp 0x48bfdc
cmp edx, dword [ebp - 0x24]
jge 0x48bfdc
lea eax, [ecx + 2]
mov dword [ebp - 0x18], eax
mov eax, dword [ebx + 0x7c]
mov dword [ebp - 0x14], eax
cmp ecx, eax
mov eax, dword [ebp - 0x1c]
jae 0x48b9d7
cmp dword [ebx + 0x18], 0
je 0x48b8c0
push eax
lea edx, [ebx + 0x1c]
push edx
push dword [ebp - 0x14]
mov edx, dword [ebx + 0x18]
call fcn.00406a87
mov ecx, dword [ebp - 8]
add esp, 0xc
test eax, eax
jne 0x48bfdc
mov edx, dword [ebp - 0x10]
jmp 0x48b8f0
mov eax, dword [ebx + 0x1c]
add eax, eax
sub dword [ebp - 0x14], eax
cmp ecx, dword [ebp - 0x14]
ja 0x48b8f0
mov ax, word [ecx]
cmp ax, word [ebx + 0x34]
jne 0x48b8f0
cmp dword [ebx + 0x1c], 1
je 0x48bfdc
mov eax, dword [ebp - 0x18]
mov ax, word [eax]
cmp ax, word [ebx + 0x36]
je 0x48bfdc
cmp dword [ebx + 0x8c], 0
mov eax, dword [ebp - 0x18]
je 0x48b930
cmp eax, dword [ebx + 0x7c]
jb 0x48b930
cmp dword [ebx + 0x18], 0
jne 0x48b930
cmp dword [ebx + 0x1c], 2
mov ecx, dword [ebp - 8]
jne 0x48b930
mov ax, word [ecx]
cmp ax, word [ebx + 0x34]
jne 0x48b92d
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x487023
mov eax, dword [ebp - 0x18]
add ecx, 2
add eax, 2
mov dword [ebp - 8], ecx
mov dword [ebp - 0x18], eax
cmp ecx, dword [ebx + 0x7c]
jae 0x48b966
mov ax, word [ecx]
mov dword [ebp - 0xc], 0xfc00
and ax, word [ebp - 0xc]
mov dword [ebp - 0xc], 0xdc00
cmp ax, word [ebp - 0xc]
jne 0x48b966
add ecx, 2
add dword [ebp - 0x18], 2
mov dword [ebp - 8], ecx
inc edx
mov dword [ebp - 0x10], edx
cmp edx, dword [ebp - 0x24]
jl 0x48b886
jmp 0x48bfdc
mov eax, dword [ebp - 0x24]
cmp eax, 0x7fffffff
jge 0x48b9cd
mov edx, dword [ebp - 0x10]
cmp edx, eax
jge 0x48bfdc
mov eax, dword [ebx + 0x7c]
cmp ecx, eax
jae 0x48b9d7
add ecx, 2
mov dword [ebp - 8], ecx
cmp ecx, eax
jae 0x48b9c2
mov ax, word [ecx]
mov dword [ebp - 0xc], 0xfc00
and ax, word [ebp - 0xc]
mov dword [ebp - 0xc], 0xdc00
cmp ax, word [ebp - 0xc]
mov eax, dword [ebx + 0x7c]
jne 0x48b9c2
add ecx, 2
mov dword [ebp - 8], ecx
inc edx
cmp edx, dword [ebp - 0x24]
jl 0x48b990
jmp 0x48bfdc
mov ecx, dword [ebx + 0x7c]
jmp 0x48b9d4
mov ecx, edx
mov dword [ebp - 8], ecx
cmp dword [ebx + 0x8c], 0
je 0x48bfdc
cmp ecx, dword [ebx + 0x88]
jbe 0x48bfdc
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jle 0x48bfdc
mov eax, 0xfffffff4
jmp 0x408907
mov eax, dword [ebp - 0x24]
sub eax, dword [ebp - 0x10]
mov edx, dword [ebx + 0x7c]
mov dword [ebp - 0x24], eax
mov eax, edx
sub eax, ecx
sar eax, 1
cmp dword [ebp - 0x24], eax
ja 0x48b9d2
mov eax, dword [ebp - 0x24]
lea ecx, [ecx + eax*2]
mov dword [ebp - 8], ecx
jmp 0x48bfdc
mov edx, dword [ebp - 0x10]
cmp edx, dword [ebp - 0x24]
jge 0x48bfdc
mov eax, dword [ebx + 0x7c]
mov dword [ebp - 0xc], 1
cmp ecx, eax
jae 0x48b9d7
movzx eax, word [ecx]
mov dword [ebp - 0x20], eax
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48ba84
movzx eax, word [ecx + 2]
and dword [ebp - 0x20], 0x3ff
shl dword [ebp - 0x20], 0xa
and eax, 0x3ff
or eax, dword [ebp - 0x20]
mov dword [ebp - 0xc], 2
add eax, 0x10000
jmp 0x48ba87
mov eax, dword [ebp - 0x20]
cmp eax, 0xd
jne 0x48baa8
mov eax, dword [ebx + 0x7c]
add ecx, 2
mov dword [ebp - 8], ecx
cmp ecx, eax
jae 0x48bfdc
cmp word [ecx], 0xa
jne 0x48bae6
add ecx, 2
jmp 0x48bae3
cmp eax, 0xa
je 0x48bada
cmp dword [ebx + 0x6c], 0
jne 0x48bfdc
cmp eax, 0xb
je 0x48bada
cmp eax, 0xc
je 0x48bada
cmp eax, 0x85
je 0x48bada
cmp eax, 0x2028
je 0x48bada
cmp eax, 0x2029
jne 0x48bfdc
mov eax, dword [ebp - 0xc]
lea ecx, [ecx + eax*2]
mov eax, dword [ebx + 0x7c]
mov dword [ebp - 8], ecx
inc edx
cmp edx, dword [ebp - 0x24]
jl 0x48ba42
jmp 0x48bfdc
mov edx, dword [ebp - 0x10]
cmp edx, dword [ebp - 0x24]
jge 0x48bfdc
mov dword [ebp - 0x2c], 1
cmp ecx, dword [ebx + 0x7c]
jae 0x48b9d7
movzx eax, word [ecx]
mov dword [ebp - 0x20], eax
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48bb48
movzx eax, word [ecx + 2]
and dword [ebp - 0x20], 0x3ff
shl dword [ebp - 0x20], 0xa
and eax, 0x3ff
or eax, dword [ebp - 0x20]
mov dword [ebp - 0x2c], 2
add eax, 0x10000
jmp 0x48bb4b
mov eax, dword [ebp - 0x20]
cmp eax, 0x180e
ja 0x48bba1
je 0x48bb67
cmp eax, 0xa0
ja 0x48bb98
je 0x48bb67
cmp eax, 9
je 0x48bb67
cmp eax, 0x20
jne 0x48bbc8
mov dword [ebp - 0xc], 1
xor eax, eax
cmp dword [ebp - 0x28], 0x12
sete al
cmp dword [ebp - 0xc], eax
je 0x48bfdc
mov eax, dword [ebp - 0x2c]
inc edx
lea ecx, [ecx + eax*2]
mov dword [ebp - 8], ecx
cmp edx, dword [ebp - 0x24]
jl 0x48bb01
jmp 0x48bfdc
cmp eax, 0x1680
jne 0x48bbc8
jmp 0x48bb67
cmp eax, 0x205f
ja 0x48bbc1
je 0x48bb67
cmp eax, 0x2000
jb 0x48bbc8
cmp eax, 0x200a
jbe 0x48bb67
cmp eax, 0x202f
jne 0x48bbc8
jmp 0x48bb67
cmp eax, 0x3000
je 0x48bb67
mov dword [ebp - 0xc], 0
jmp 0x48bb6e
mov edx, dword [ebp - 0x10]
cmp edx, dword [ebp - 0x24]
jge 0x48bfdc
mov dword [ebp - 0x2c], 1
cmp ecx, dword [ebx + 0x7c]
jae 0x48b9d7
movzx eax, word [ecx]
mov dword [ebp - 0x20], eax
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48bc24
movzx eax, word [ecx + 2]
and dword [ebp - 0x20], 0x3ff
shl dword [ebp - 0x20], 0xa
and eax, 0x3ff
or eax, dword [ebp - 0x20]
mov dword [ebp - 0x2c], 2
add eax, 0x10000
jmp 0x48bc27
mov eax, dword [ebp - 0x20]
cmp eax, 0x85
ja 0x48bc6b
je 0x48bc75
cmp eax, 0xa
jb 0x48bc3a
cmp eax, 0xd
jbe 0x48bc75
mov dword [ebp - 0xc], 0
xor eax, eax
cmp dword [ebp - 0x28], 0x14
sete al
cmp dword [ebp - 0xc], eax
je 0x48bfdc
mov eax, dword [ebp - 0x2c]
inc edx
lea ecx, [ecx + eax*2]
mov dword [ebp - 8], ecx
cmp edx, dword [ebp - 0x24]
jl 0x48bbdd
jmp 0x48bfdc
add eax, 0xffffdfd8
cmp eax, 1
ja 0x48bc3a
mov dword [ebp - 0xc], 1
jmp 0x48bc41
mov edx, dword [ebp - 0x10]
cmp edx, dword [ebp - 0x24]
jge 0x48bfdc
mov dword [ebp - 0xc], 1
cmp ecx, dword [ebx + 0x7c]
jae 0x48b9d7
movzx eax, word [ecx]
mov dword [ebp - 0x14], eax
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48bcd7
mov ebx, dword [ebp - 0x14]
movzx eax, word [ecx + 2]
and ebx, 0x3ff
shl ebx, 0xa
and eax, 0x3ff
or eax, ebx
mov ebx, dword [ebp + 0x10]
add eax, 0x10000
mov dword [ebp - 0x14], eax
mov dword [ebp - 0xc], 2
jmp 0x48bcda
movzx eax, word [ecx]
cmp eax, 0x100
jae 0x48bcf4
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 4
mov ecx, dword [ebp - 8]
jne 0x48bfdc
mov eax, dword [ebp - 0xc]
inc edx
lea ecx, [ecx + eax*2]
mov dword [ebp - 8], ecx
cmp edx, dword [ebp - 0x24]
jl 0x48bc8a
jmp 0x48bfdc
mov edx, dword [ebp - 0x10]
cmp edx, dword [ebp - 0x24]
jge 0x48bfdc
mov dword [ebp - 0xc], 1
cmp ecx, dword [ebx + 0x7c]
jae 0x48b9d7
movzx eax, word [ecx]
mov dword [ebp - 0x14], eax
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48bd61
mov ebx, dword [ebp - 0x14]
movzx eax, word [ecx + 2]
and ebx, 0x3ff
shl ebx, 0xa
and eax, 0x3ff
or eax, ebx
mov ebx, dword [ebp + 0x10]
add eax, 0x10000
mov dword [ebp - 0x14], eax
mov dword [ebp - 0xc], 2
jmp 0x48bd64
movzx eax, word [ecx]
cmp eax, 0x100
jae 0x48bfdc
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 4
mov ecx, dword [ebp - 8]
je 0x48bfdc
mov eax, dword [ebp - 0xc]
inc edx
lea ecx, [ecx + eax*2]
mov dword [ebp - 8], ecx
cmp edx, dword [ebp - 0x24]
jl 0x48bd14
jmp 0x48bfdc
mov edx, dword [ebp - 0x10]
cmp edx, dword [ebp - 0x24]
jge 0x48bfdc
mov dword [ebp - 0xc], 1
cmp ecx, dword [ebx + 0x7c]
jae 0x48b9d7
movzx eax, word [ecx]
mov dword [ebp - 0x14], eax
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48bdef
mov ebx, dword [ebp - 0x14]
movzx eax, word [ecx + 2]
and ebx, 0x3ff
shl ebx, 0xa
and eax, 0x3ff
or eax, ebx
mov ebx, dword [ebp + 0x10]
add eax, 0x10000
mov dword [ebp - 0x14], eax
mov dword [ebp - 0xc], 2
jmp 0x48bdf2
movzx eax, word [ecx]
cmp eax, 0x100
jae 0x48be0c
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 1
mov ecx, dword [ebp - 8]
jne 0x48bfdc
mov eax, dword [ebp - 0xc]
inc edx
lea ecx, [ecx + eax*2]
mov dword [ebp - 8], ecx
cmp edx, dword [ebp - 0x24]
jl 0x48bda2
jmp 0x48bfdc
mov edx, dword [ebp - 0x10]
cmp edx, dword [ebp - 0x24]
jge 0x48bfdc
mov dword [ebp - 0xc], 1
cmp ecx, dword [ebx + 0x7c]
jae 0x48b9d7
movzx eax, word [ecx]
mov dword [ebp - 0x14], eax
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48be79
mov ebx, dword [ebp - 0x14]
movzx eax, word [ecx + 2]
and ebx, 0x3ff
shl ebx, 0xa
and eax, 0x3ff
or eax, ebx
mov ebx, dword [ebp + 0x10]
add eax, 0x10000
mov dword [ebp - 0x14], eax
mov dword [ebp - 0xc], 2
jmp 0x48be7c
movzx eax, word [ecx]
cmp eax, 0x100
jae 0x48bfdc
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 1
mov ecx, dword [ebp - 8]
je 0x48bfdc
mov eax, dword [ebp - 0xc]
inc edx
lea ecx, [ecx + eax*2]
mov dword [ebp - 8], ecx
cmp edx, dword [ebp - 0x24]
jl 0x48be2c
jmp 0x48bfdc
mov edx, dword [ebp - 0x10]
cmp edx, dword [ebp - 0x24]
jge 0x48bfdc
mov dword [ebp - 0xc], 1
cmp ecx, dword [ebx + 0x7c]
jae 0x48b9d7
movzx eax, word [ecx]
mov dword [ebp - 0x14], eax
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48bf07
mov ebx, dword [ebp - 0x14]
movzx eax, word [ecx + 2]
and ebx, 0x3ff
shl ebx, 0xa
and eax, 0x3ff
or eax, ebx
mov ebx, dword [ebp + 0x10]
add eax, 0x10000
mov dword [ebp - 0x14], eax
mov dword [ebp - 0xc], 2
jmp 0x48bf0a
movzx eax, word [ecx]
cmp eax, 0x100
jae 0x48bf24
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 0x10
mov ecx, dword [ebp - 8]
jne 0x48bfdc
mov eax, dword [ebp - 0xc]
inc edx
lea ecx, [ecx + eax*2]
mov dword [ebp - 8], ecx
cmp edx, dword [ebp - 0x24]
jl 0x48beba
jmp 0x48bfdc
mov edx, dword [ebp - 0x10]
cmp edx, dword [ebp - 0x24]
jge 0x48bfdc
mov dword [ebp - 0xc], 1
cmp ecx, dword [ebx + 0x7c]
jae 0x48bfb7
movzx eax, word [ecx]
mov dword [ebp - 0x14], eax
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48bf8d
mov ebx, dword [ebp - 0x14]
movzx eax, word [ecx + 2]
and ebx, 0x3ff
shl ebx, 0xa
and eax, 0x3ff
or eax, ebx
mov ebx, dword [ebp + 0x10]
add eax, 0x10000
mov dword [ebp - 0x14], eax
mov dword [ebp - 0xc], 2
jmp 0x48bf90
movzx eax, word [ecx]
cmp eax, 0x100
jae 0x48bfdc
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 0x10
mov ecx, dword [ebp - 8]
je 0x48bfdc
mov eax, dword [ebp - 0xc]
inc edx
lea ecx, [ecx + eax*2]
mov dword [ebp - 8], ecx
cmp edx, dword [ebp - 0x24]
jl 0x48bf44
jmp 0x48bfdc
cmp dword [ebx + 0x8c], 0
je 0x48bfdc
cmp ecx, dword [ebx + 0x88]
jbe 0x48bfdc
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x487023
test esi, esi
jne 0x4087a0
mov esi, dword [ebp - 0x38]
cmp ecx, esi
je 0x408811
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00408740
add esp, 0x14
test eax, eax
jne 0x408907
mov ecx, dword [ebp - 8]
sub ecx, 2
mov edx, 0xfc00
mov ax, word [ecx]
and ax, dx
mov edx, 0xdc00
mov dword [ebp - 8], ecx
cmp ax, dx
jne 0x48c034
sub ecx, 2
mov dword [ebp - 8], ecx
cmp dword [ebp - 0x28], 0x11
jne 0x48c051
cmp ecx, esi
jbe 0x48c053
cmp word [ecx], 0xa
jne 0x48c051
cmp word [ecx - 2], 0xd
jne 0x48c051
add ecx, 0xfffffffe
mov dword [ebp - 8], ecx
cmp ecx, esi
jne 0x48bfef
jmp 0x408811
lea eax, [edx - 6]
cmp eax, 0xf
ja case.default.0x487b11
jmp dword [eax*4 + 0x48e94c]
mov edx, dword [ebp - 0x10]
cmp edx, dword [ebp - 0x24]
jge 0x48c5af
mov eax, dword [ebx + 0x7c]
mov dword [ebp - 0x14], eax
cmp ecx, eax
jae 0x48c14b
cmp dword [ebx + 0x18], 0
je 0x48c0af
lea edx, [ebx + 0x1c]
push 0
push edx
mov edx, dword [ebx + 0x18]
push eax
call fcn.00406a87
mov ecx, dword [ebp - 8]
add esp, 0xc
test eax, eax
jne 0x48c5af
mov edx, dword [ebp - 0x10]
jmp 0x48c0dd
mov eax, dword [ebx + 0x1c]
add eax, eax
sub dword [ebp - 0x14], eax
cmp ecx, dword [ebp - 0x14]
ja 0x48c0dd
mov ax, word [ecx]
cmp ax, word [ebx + 0x34]
jne 0x48c0dd
cmp dword [ebx + 0x1c], 1
je 0x48c5af
mov ax, word [ecx + 2]
cmp ax, word [ebx + 0x36]
je 0x48c5af
cmp dword [ebx + 0x8c], 0
je 0x48c117
lea eax, [ecx + 2]
cmp eax, dword [ebx + 0x7c]
jb 0x48c117
cmp dword [ebx + 0x18], 0
jne 0x48c117
cmp dword [ebx + 0x1c], 2
jne 0x48c117
mov ax, word [ecx]
cmp ax, word [ebx + 0x34]
jne 0x48c117
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x487023
inc edx
add ecx, 2
mov dword [ebp - 8], ecx
mov dword [ebp - 0x10], edx
cmp edx, dword [ebp - 0x24]
jl 0x48c079
jmp 0x48c5af
mov eax, dword [ebp - 0x24]
sub eax, dword [ebp - 0x10]
mov edx, dword [ebx + 0x7c]
mov dword [ebp - 0x24], eax
mov eax, edx
sub eax, ecx
sar eax, 1
cmp dword [ebp - 0x24], eax
jbe 0x48c182
mov ecx, edx
mov dword [ebp - 8], ecx
cmp dword [ebx + 0x8c], 0
je 0x48c5af
cmp ecx, dword [ebx + 0x88]
jbe 0x48c5af
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jle 0x48c5af
mov eax, 0xfffffff4
jmp 0x408907
mov eax, dword [ebp - 0x24]
lea ecx, [ecx + eax*2]
mov dword [ebp - 8], ecx
jmp 0x48c5af
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0x24]
jge 0x48c5af
mov edx, dword [ebx + 0x7c]
cmp ecx, edx
jae 0x48c14b
movzx edx, word [ecx]
cmp edx, 0xd
jne 0x48c1c4
mov edx, dword [ebx + 0x7c]
add ecx, 2
mov dword [ebp - 8], ecx
cmp ecx, edx
jae 0x48c5af
cmp word [ecx], 0xa
je 0x48c1fc
jmp 0x48c202
cmp edx, 0xa
je 0x48c1f9
cmp dword [ebx + 0x6c], 0
jne 0x48c5af
cmp edx, 0xb
je 0x48c1f9
cmp edx, 0xc
je 0x48c1f9
cmp edx, 0x85
je 0x48c1f9
cmp edx, 0x2028
je 0x48c1f9
cmp edx, 0x2029
jne 0x48c5af
mov edx, dword [ebx + 0x7c]
add ecx, 2
mov dword [ebp - 8], ecx
inc eax
cmp eax, dword [ebp - 0x24]
jl 0x48c19f
jmp 0x48c5af
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0x24]
jge 0x48c5af
cmp ecx, dword [ebx + 0x7c]
jae 0x48c14b
movzx edx, word [ecx]
cmp edx, 0x180e
jg 0x48c261
je 0x48c5af
cmp edx, 0xa0
jg 0x48c254
je 0x48c5af
cmp edx, 9
je 0x48c5af
cmp edx, 0x20
jne 0x48c29c
jmp 0x48c5af
cmp edx, 0x1680
jne 0x48c29c
jmp 0x48c5af
cmp edx, 0x205f
jg 0x48c290
je 0x48c5af
cmp edx, 0x2000
jl 0x48c29c
cmp edx, 0x200a
jle 0x48c5af
cmp edx, 0x202f
jne 0x48c29c
jmp 0x48c5af
cmp edx, 0x3000
je 0x48c5af
add ecx, 2
inc eax
mov dword [ebp - 8], ecx
cmp eax, dword [ebp - 0x24]
jl 0x48c219
jmp 0x48c5af
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0x24]
jge 0x48c5af
cmp ecx, dword [ebx + 0x7c]
jae 0x48c14b
movzx edx, word [ecx]
cmp edx, 0x180e
jg 0x48c2f9
je 0x48c330
cmp edx, 0xa0
jg 0x48c2ec
je 0x48c330
cmp edx, 9
je 0x48c330
cmp edx, 0x20
je 0x48c330
jmp 0x48c5af
cmp edx, 0x1680
je 0x48c330
jmp 0x48c5af
cmp edx, 0x205f
jg 0x48c324
je 0x48c330
cmp edx, 0x2000
jl 0x48c5af
cmp edx, 0x200a
jle 0x48c330
cmp edx, 0x202f
je 0x48c330
jmp 0x48c5af
cmp edx, 0x3000
jne 0x48c5af
add ecx, 2
inc eax
mov dword [ebp - 8], ecx
cmp eax, dword [ebp - 0x24]
jl 0x48c2bd
jmp 0x48c5af
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0x24]
jge 0x48c5af
cmp ecx, dword [ebx + 0x7c]
jae 0x48c14b
movzx edx, word [ecx]
cmp edx, 0x85
jg 0x48c376
je 0x48c5af
cmp edx, 0xa
jl 0x48c38a
cmp edx, 0xd
jg 0x48c38a
jmp 0x48c5af
cmp edx, 0x2028
jl 0x48c38a
cmp edx, 0x2029
jle 0x48c5af
add ecx, 2
inc eax
mov dword [ebp - 8], ecx
cmp eax, dword [ebp - 0x24]
jl 0x48c34d
jmp 0x48c5af
mov edx, dword [ebp - 0x10]
cmp edx, dword [ebp - 0x24]
jge 0x48c5af
cmp ecx, dword [ebx + 0x7c]
jae 0x48c14b
movzx eax, word [ecx]
cmp eax, 0x85
jg 0x48c3c9
je 0x48c3d7
add eax, 0xfffffff6
cmp eax, 3
jbe 0x48c3d7
jmp 0x48c5af
add eax, 0xffffdfd8
cmp eax, 1
ja 0x48c5af
add ecx, 2
inc edx
mov dword [ebp - 8], ecx
cmp edx, dword [ebp - 0x24]
jl 0x48c3a7
jmp 0x48c5af
mov edx, dword [ebp - 0x10]
cmp edx, dword [ebp - 0x24]
jge 0x48c5af
cmp ecx, dword [ebx + 0x7c]
jae 0x48c14b
movzx eax, word [ecx]
mov dword [ebp - 0xc], 0xff
cmp ax, word [ebp - 0xc]
ja 0x48c41f
mov ecx, eax
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 4
mov ecx, dword [ebp - 8]
jne 0x48c5af
add ecx, 2
inc edx
mov dword [ebp - 8], ecx
cmp edx, dword [ebp - 0x24]
jl 0x48c3f4
jmp 0x48c5af
mov edx, dword [ebp - 0x10]
cmp edx, dword [ebp - 0x24]
jge 0x48c5af
cmp ecx, dword [ebx + 0x7c]
jae 0x48c14b
movzx eax, word [ecx]
mov dword [ebp - 0xc], 0xff
cmp ax, word [ebp - 0xc]
ja 0x48c5af
mov ecx, eax
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 4
mov ecx, dword [ebp - 8]
je 0x48c5af
add ecx, 2
inc edx
mov dword [ebp - 8], ecx
cmp edx, dword [ebp - 0x24]
jl 0x48c43c
jmp 0x48c5af
mov edx, dword [ebp - 0x10]
cmp edx, dword [ebp - 0x24]
jge 0x48c5af
cmp ecx, dword [ebx + 0x7c]
jae 0x48c14b
movzx eax, word [ecx]
mov dword [ebp - 0xc], 0xff
cmp ax, word [ebp - 0xc]
ja 0x48c4b3
mov ecx, eax
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 1
mov ecx, dword [ebp - 8]
jne 0x48c5af
add ecx, 2
inc edx
mov dword [ebp - 8], ecx
cmp edx, dword [ebp - 0x24]
jl 0x48c488
jmp 0x48c5af
mov edx, dword [ebp - 0x10]
cmp edx, dword [ebp - 0x24]
jge 0x48c5af
cmp ecx, dword [ebx + 0x7c]
jae 0x48c14b
movzx eax, word [ecx]
mov dword [ebp - 0xc], 0xff
cmp ax, word [ebp - 0xc]
ja 0x48c5af
mov ecx, eax
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 1
mov ecx, dword [ebp - 8]
je 0x48c5af
add ecx, 2
inc edx
mov dword [ebp - 8], ecx
cmp edx, dword [ebp - 0x24]
jl 0x48c4d0
jmp 0x48c5af
mov edx, dword [ebp - 0x10]
cmp edx, dword [ebp - 0x24]
jge 0x48c5af
cmp ecx, dword [ebx + 0x7c]
jae 0x48c14b
movzx eax, word [ecx]
mov dword [ebp - 0xc], 0xff
cmp ax, word [ebp - 0xc]
ja 0x48c543
mov ecx, eax
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 0x10
mov ecx, dword [ebp - 8]
jne 0x48c5af
add ecx, 2
inc edx
mov dword [ebp - 8], ecx
cmp edx, dword [ebp - 0x24]
jl 0x48c51c
jmp 0x48c5af
mov edx, dword [ebp - 0x10]
cmp edx, dword [ebp - 0x24]
jge 0x48c5af
cmp ecx, dword [ebx + 0x7c]
jae 0x48c58a
movzx eax, word [ecx]
mov dword [ebp - 0xc], 0xff
cmp ax, word [ebp - 0xc]
ja 0x48c5af
mov ecx, eax
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 0x10
mov ecx, dword [ebp - 8]
je 0x48c5af
add ecx, 2
inc edx
mov dword [ebp - 8], ecx
cmp edx, dword [ebp - 0x24]
jl 0x48c559
jmp 0x48c5af
cmp dword [ebx + 0x8c], 0
je 0x48c5af
cmp ecx, dword [ebx + 0x88]
jbe 0x48c5af
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x487023
test esi, esi
jne 0x4087a0
mov esi, dword [ebp - 0x38]
cmp ecx, esi
je 0x408811
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00408740
add esp, 0x14
test eax, eax
jne 0x408907
mov ecx, dword [ebp - 8]
sub ecx, 2
cmp dword [ebp - 0x28], 0x11
mov dword [ebp - 8], ecx
jne 0x48c609
cmp ecx, esi
jbe 0x48c60b
cmp word [ecx], 0xa
jne 0x48c609
cmp word [ecx - 2], 0xd
jne 0x48c609
add ecx, 0xfffffffe
mov dword [ebp - 8], ecx
cmp ecx, esi
jne 0x48c5c2
jmp 0x408811
mov eax, dword [ebp + 0x18]
inc eax
cmp word [edi], 0x7a
push eax
push dword [ebp + 0x14]
push ebx
push edx
push ecx
mov ecx, dword [ebp - 8]
jne 0x48c641
lea edx, [edi + 4]
call fcn.00408740
add esp, 0x14
test eax, eax
jne 0x408907
mov edi, dword [ebp - 0xc]
jmp 0x40880e
mov edx, dword [ebp - 0xc]
call fcn.00408740
add esp, 0x14
test eax, eax
jne 0x408907
add edi, 4
jmp 0x40880e
mov edx, esi
mov esi, dword [ebp - 8]
mov ecx, esi
call fcn.00408740
add esp, 0x14
cmp eax, 0xfffffc1b
jne 0x48c683
mov ecx, dword [ebp - 0x20]
cmp dword [ebx + 0xb8], ecx
jne 0x408907
jmp 0x48c68e
test eax, eax
jne 0x408907
mov ecx, dword [ebp - 0x20]
mov eax, 0x81
cmp word [ecx], ax
je 0x48c8f1
add edi, 4
jmp 0x40880e
mov ax, word [ecx]
mov edx, 0xfc00
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x48c6bf
sub ecx, 2
mov dword [ebp - 8], ecx
movzx edx, word [ecx]
mov eax, edx
and eax, 0xfc00
mov dword [ebp - 0x14], edx
cmp eax, 0xd800
jne 0x48c6f0
movzx eax, word [ecx + 2]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
add edx, 0x10000
mov dword [ebp - 0x14], edx
mov eax, edx
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0x14]
sar eax, 7
movzx eax, byte [eax + 0x4af620]
shl eax, 7
and edx, 0x8000007f
jns 0x48c715
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x4a1788]
movzx eax, byte [eax*8 + 0x4ae28a]
mov dword [ebp - 0x2c], eax
cmp ecx, dword [ebp - 0x38]
je 0x408811
lea edx, [ecx - 2]
mov dword [ebp - 0xc], edx
test esi, esi
jne 0x48c742
movzx ecx, word [edx]
jmp 0x48c788
mov ax, word [edx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x48c75d
sub edx, 2
mov dword [ebp - 0xc], edx
movzx ecx, word [edx]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48c788
movzx eax, word [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4af620]
shl eax, 7
and ecx, 0x8000007f
jns 0x48c7aa
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
mov ecx, dword [ebp - 0x2c]
movzx eax, word [eax*2 + 0x4a1788]
movzx edx, byte [eax*8 + 0x4ae28a]
mov eax, 1
shl eax, cl
test dword [edx*4 + 0x4a16ac], eax
je 0x48c7dd
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 8], ecx
mov dword [ebp - 0x2c], edx
jmp 0x48c72a
mov ecx, dword [ebp - 8]
jmp 0x48b711
mov dword [ebx + 0x9c], 2
jmp 0x409106
movzx ecx, word [edi + 2]
lea eax, [edi + ecx*2]
cmp dword [ebx + 0x80], eax
jae 0x48e477
cmp word [edi], 0x77
je 0x409155
cmp word [eax], 0x77
jne 0x48e477
jmp 0x409155
mov eax, dword [ebp + 0x18]
inc eax
push eax
movzx eax, word [edi]
push dword [ebp + 0x14]
movzx ecx, byte [eax + 0x4a16e0]
movzx eax, word [edi + 2]
push ebx
push dword [ebp + 0xc]
add ecx, eax
push dword [ebp + 8]
lea edx, [edi + ecx*2]
mov ecx, dword [ebp - 8]
call fcn.00408740
add esp, 0x14
test eax, eax
jne 0x408907
lea eax, [edi + 4]
mov dword [ebx + 0x80], eax
mov eax, 0xfffffc1f
jmp 0x408907
mov eax, dword [ebp - 0x5c]
mov dword [ebx + 0xa8], eax
mov eax, dword [ebp - 0x54]
lea ecx, [ebp - 0x154]
cmp eax, ecx
je case.0x4087c4.157
push eax
call dword [0x4beb8c]
add esp, 4
jmp case.0x4087c4.157
mov ecx, dword [ebp - 0x54]
lea edx, [ebp - 0x154]
cmp ecx, edx
je 0x408907
push ecx
call dword [0x4beb8c]
mov eax, dword [ebp - 0xc]
add esp, 4
jmp 0x408907
mov eax, 0xfffffffa
jmp 0x408907
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.00408740
add esp, 0x14
test eax, eax
jne 0x408907
mov dword [ebx + 0xb8], edi
mov eax, 0xfffffc1b
jmp 0x408907
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
lea edx, [edi + 4]
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.00408740
add esp, 0x14
test eax, eax
jne 0x408907
mov eax, dword [ebp - 0x20]
mov dword [ebx + 0xb8], eax
mov eax, 0xfffffc1b
jmp 0x408907
mov esi, dword [ebp + 8]
mov dword [ebx + 0x80], esi
mov dword [ebx + 0x84], eax
mov dword [ebx + 0x90], edx
mov eax, 0xfffffc1a
jmp 0x408907
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
push ebx
push edx
push dword [ebp + 8]
lea edx, [edi + 4]
call fcn.00408740
add esp, 0x14
test eax, eax
jne 0x408907
mov dword [ebx + 0xb8], esi
mov eax, 0xfffffc1b
jmp 0x408907
mov eax, dword [ebp - 8]
mov dword [ebx + 0x84], eax
mov eax, dword [ebp + 0xc]
mov dword [ebx + 0x90], eax
mov eax, dword [ebp + 8]
mov dword [ebx + 0x80], eax
jmp 0x408902
cmp ecx, dword [ebx + 0x88]
jbe case.0x4087c4.157
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jle case.0x4087c4.157
mov eax, 0xfffffff4
jmp 0x408907
mov eax, 0xfffffff2
jmp 0x408907
cmp eax, 0xfffffffe
jne 0x48c9d6
mov esi, dword [ebx + 0x7c]
cmp dword [ebx + 0x8c], 0
je case.0x4087c4.157
cmp esi, dword [ebx + 0x7c]
jb case.0x4087c4.157
cmp esi, dword [ebx + 0x88]
jmp 0x48c9a0
mov dword [ebp - 0xc], eax
cmp ecx, edx
jl 0x48ca00
jmp 0x48ca66
mov eax, dword [ebp - 8]
push dword [ebp - 0x28]
mov ecx, dword [ebp - 0x40]
push ebx
push esi
mov edx, eax
call fcn.00472308
add esp, 0xc
test eax, eax
js 0x48ca2d
mov ecx, dword [ebp - 8]
lea ecx, [ecx + eax*2]
mov eax, dword [ebp - 0x20]
inc eax
mov dword [ebp - 8], ecx
mov dword [ebp - 0x20], eax
cmp eax, dword [ebp - 0x18]
jl 0x48c9fd
jmp 0x48ca5d
cmp eax, 0xfffffffe
jne 0x48ca5a
cmp dword [ebx + 0x8c], 0
je 0x48ca5a
mov eax, dword [ebx + 0x7c]
cmp eax, dword [ebx + 0x88]
jbe 0x48ca5a
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x487023
mov ecx, dword [ebp - 8]
cmp ecx, dword [ebp - 0xc]
jb case.0x4087c4.157
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00408740
add esp, 0x14
test eax, eax
jne 0x408907
mov edx, dword [ebp - 8]
mov eax, esi
neg eax
lea edx, [edx + eax*2]
mov dword [ebp - 8], edx
cmp edx, dword [ebp - 0xc]
jae 0x48ca66
xor eax, eax
jmp 0x408907
cmp ecx, 0xfffffffe
jne 0x48caad
mov eax, dword [ebx + 0x7c]
jmp 0x48cab0
mov eax, dword [ebp - 8]
cmp dword [ebx + 0x8c], 0
je case.0x4087c4.157
cmp eax, dword [ebx + 0x7c]
jb case.0x4087c4.157
cmp eax, dword [ebx + 0x88]
jmp 0x48c9a0
mov eax, esi
sub esi, 2
cmp eax, dword [ebp - 0x24]
je case.0x4087c4.157
mov ax, word [esi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x48caf7
sub esi, 2
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.00408740
add esp, 0x14
test eax, eax
je 0x48cad1
jmp 0x408907
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
test ecx, ecx
mov ecx, dword [ebp - 8]
push ebx
push dword [ebp + 0xc]
mov edx, edi
push dword [ebp + 8]
je 0x48cc1c
call fcn.00408740
add esp, 0x14
test eax, eax
jne 0x408907
mov edx, dword [ebp - 0x28]
cmp edx, dword [ebp - 0x18]
jge case.0x4087c4.157
mov ecx, dword [ebp - 8]
cmp ecx, dword [ebx + 0x7c]
jae 0x48cc04
movzx eax, word [ecx]
mov dword [ebp - 0x20], eax
add ecx, 2
and eax, 0xfc00
mov dword [ebp - 8], ecx
cmp eax, 0xd800
jne 0x48cba0
movzx eax, word [ecx]
mov ebx, dword [ebp - 0x20]
and ebx, 0x3ff
and eax, 0x3ff
shl ebx, 0xa
or eax, ebx
mov ebx, dword [ebp + 0x10]
add eax, 0x10000
add ecx, 2
mov dword [ebp - 0x20], eax
mov dword [ebp - 8], ecx
jmp 0x48cba3
mov eax, dword [ebp - 0x20]
cmp eax, 0xff
jbe 0x48cbb5
cmp esi, 0x6e
je case.0x4087c4.157
jmp 0x48cbda
shr dword [ebp - 0x20], 3
mov ebx, dword [ebp - 0x20]
mov ecx, eax
and ecx, 7
mov eax, 1
shl eax, cl
mov ecx, dword [ebp - 0x38]
test byte [ebx + ecx], al
mov ebx, dword [ebp + 0x10]
je case.0x4087c4.157
mov ecx, dword [ebp - 8]
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
inc edx
push ebx
push dword [ebp + 0xc]
mov dword [ebp - 0x28], edx
push dword [ebp + 8]
mov edx, edi
call fcn.00408740
add esp, 0x14
test eax, eax
je 0x48cb47
jmp 0x408907
cmp dword [ebx + 0x8c], 0
je case.0x4087c4.157
cmp ecx, dword [ebx + 0x88]
jmp 0x48c9a0
call fcn.00408740
add esp, 0x14
test eax, eax
jne 0x408907
mov edx, dword [ebp - 0x28]
cmp edx, dword [ebp - 0x18]
jge case.0x4087c4.157
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x409044
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 0x14], ecx
mov dword [ebp - 8], eax
cmp ecx, 0xff
jbe 0x48cc63
cmp esi, 0x6e
je case.0x4087c4.157
jmp 0x48cc83
shr dword [ebp - 0x14], 3
mov ebx, dword [ebp - 0x14]
and ecx, 7
mov eax, 1
shl eax, cl
mov ecx, dword [ebp - 0x38]
test byte [ebx + ecx], al
mov ebx, dword [ebp + 0x10]
je case.0x4087c4.157
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
inc edx
push ebx
push dword [ebp + 0xc]
mov dword [ebp - 0x28], edx
push dword [ebp + 8]
mov edx, edi
call fcn.00408740
add esp, 0x14
test eax, eax
je 0x48cc2c
jmp 0x408907
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.00408740
add esp, 0x14
test eax, eax
jne 0x408907
mov eax, dword [ebp - 0x20]
cmp dword [ebp - 0x28], eax
jge case.0x4087c4.157
cmp esi, dword [ebx + 0x7c]
jae 0x48cd5f
movzx edx, word [esi]
mov ecx, dword [ebp - 0x1c]
add esi, 2
mov dword [ebp - 0xc], edx
test ecx, ecx
je 0x48cd1b
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48cd1b
movzx eax, word [esi]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or eax, edx
add eax, 0x10000
add esi, 2
jmp 0x48cd1e
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x14]
push ecx
mov ecx, eax
call fcn.0047265c
add esp, 4
test eax, eax
je case.0x4087c4.157
mov eax, dword [ebp + 0x18]
inc dword [ebp - 0x28]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.00408740
add esp, 0x14
test eax, eax
je 0x48cccf
jmp 0x408907
cmp dword [ebx + 0x8c], 0
je case.0x4087c4.157
cmp esi, dword [ebx + 0x88]
jmp 0x48c9a0
cmp dword [ebx + 0x8c], 0
je case.0x4087c4.157
cmp edx, dword [ebx + 0x7c]
jb case.0x4087c4.157
cmp edx, dword [ebx + 0x88]
jmp 0x48c9a0
cmp dword [ebx + 0x8c], edx
je case.0x4087c4.157
cmp ecx, dword [ebx + 0x88]
jmp 0x48c9a0
mov ecx, dword [ebp - 8]
cmp dword [ebx + 0x8c], 0
je case.0x4087c4.157
cmp ecx, dword [ebx + 0x7c]
jb case.0x4087c4.157
jmp 0x48c99a
mov eax, dword [ebp + 0x18]
mov esi, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.00408740
add esp, 0x14
test eax, eax
jne 0x408907
mov edx, dword [ebp - 0x10]
lea ecx, [edx + edx]
mov dword [ebp - 0xc], ecx
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x28], eax
jge case.0x4087c4.157
mov eax, dword [ebx + 0x7c]
sub eax, ecx
cmp esi, eax
ja 0x48ce2a
lea eax, [edx + edx]
push eax
push dword [ebp - 0x2c]
push esi
call fcn.00423473
add esp, 0xc
test eax, eax
jne 0x48ce2a
add esi, dword [ebp - 0xc]
jmp 0x48ce64
mov ecx, dword [ebp - 0x24]
test ecx, ecx
jle 0x48c9d6
mov eax, dword [ebx + 0x7c]
lea edx, [ecx + ecx]
sub eax, edx
mov dword [ebp - 0x14], edx
cmp esi, eax
ja 0x48c9d6
lea eax, [ecx + ecx]
push eax
lea eax, [ebp - 0x70]
push eax
push esi
call fcn.00423473
add esp, 0xc
test eax, eax
jne 0x48c9d6
add esi, dword [ebp - 0x14]
mov eax, dword [ebp + 0x18]
inc dword [ebp - 0x28]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.00408740
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0x10]
add esp, 0x14
test eax, eax
je 0x48cdfc
jmp 0x408907
mov eax, dword [ebp + 0x18]
mov esi, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.00408740
add esp, 0x14
test eax, eax
jne 0x408907
mov eax, dword [ebp - 0x28]
cmp eax, dword [ebp - 0x18]
jge case.0x4087c4.157
cmp esi, dword [ebx + 0x7c]
jae 0x48cd5f
movzx ecx, word [esi]
cmp dword [ebp - 0x24], ecx
je 0x48cee1
cmp dword [ebp - 0x10], ecx
jne case.0x4087c4.157
inc eax
mov dword [ebp - 0x28], eax
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
add esi, 2
push ebx
push dword [ebp + 0xc]
mov edx, edi
push dword [ebp + 8]
mov ecx, esi
call fcn.00408740
add esp, 0x14
test eax, eax
je 0x48cebb
jmp 0x408907
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.00408740
add esp, 0x14
test eax, eax
jne 0x408907
mov ecx, dword [ebp - 0x28]
cmp ecx, dword [ebp - 0x18]
jge case.0x4087c4.157
cmp esi, dword [ebx + 0x7c]
jae 0x48cd5f
movzx eax, word [esi]
add esi, 2
cmp dword [ebp - 0x24], eax
jne case.0x4087c4.157
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
inc ecx
push ebx
push dword [ebp + 0xc]
mov dword [ebp - 0x28], ecx
push dword [ebp + 8]
mov edx, edi
mov ecx, esi
call fcn.00408740
add esp, 0x14
test eax, eax
je 0x48cf2f
jmp 0x408907
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
test esi, esi
mov esi, dword [ebp - 8]
push ebx
push dword [ebp + 0xc]
mov edx, edi
push dword [ebp + 8]
mov ecx, esi
je 0x48d028
call fcn.00408740
add esp, 0x14
test eax, eax
jne 0x408907
mov ecx, dword [ebp - 0x24]
cmp ecx, dword [ebp - 0x10]
jge case.0x4087c4.157
cmp esi, dword [ebx + 0x7c]
jae 0x48cd5f
movzx edx, word [esi]
mov eax, edx
and eax, 0xfc00
add esi, 2
cmp eax, 0xd800
jne 0x48cfee
movzx eax, word [esi]
and edx, 0x3ff
shl edx, 0xa
and eax, 0x3ff
or edx, eax
add edx, 0x10000
add esi, 2
cmp dword [ebp - 0x18], edx
je case.0x4087c4.157
cmp dword [ebp - 0x20], edx
je case.0x4087c4.157
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
inc ecx
push ebx
push dword [ebp + 0xc]
mov dword [ebp - 0x24], ecx
push dword [ebp + 8]
mov edx, edi
mov ecx, esi
call fcn.00408740
add esp, 0x14
test eax, eax
je 0x48cfa9
jmp 0x408907
call fcn.00408740
add esp, 0x14
test eax, eax
jne 0x408907
mov eax, dword [ebp - 0x24]
cmp eax, dword [ebp - 0x10]
jge case.0x4087c4.157
cmp esi, dword [ebx + 0x7c]
jae 0x48cd5f
movzx ecx, word [esi]
cmp dword [ebp - 0x18], ecx
je case.0x4087c4.157
cmp dword [ebp - 0x20], ecx
je case.0x4087c4.157
inc eax
mov dword [ebp - 0x24], eax
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
add esi, 2
push ebx
push dword [ebp + 0xc]
mov edx, edi
push dword [ebp + 8]
mov ecx, esi
call fcn.00408740
add esp, 0x14
test eax, eax
je 0x48d038
jmp 0x408907
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
test esi, esi
mov esi, dword [ebp - 8]
push ebx
push dword [ebp + 0xc]
mov edx, edi
push dword [ebp + 8]
mov ecx, esi
je 0x48d131
call fcn.00408740
add esp, 0x14
test eax, eax
jne 0x408907
mov ecx, dword [ebp - 0x24]
cmp ecx, dword [ebp - 0x10]
jge case.0x4087c4.157
cmp esi, dword [ebx + 0x7c]
jae 0x48cd5f
movzx edx, word [esi]
mov eax, edx
and eax, 0xfc00
add esi, 2
cmp eax, 0xd800
jne 0x48d100
movzx eax, word [esi]
and edx, 0x3ff
shl edx, 0xa
and eax, 0x3ff
or edx, eax
add edx, 0x10000
add esi, 2
cmp dword [ebp - 0x18], edx
je case.0x4087c4.157
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
inc ecx
push ebx
push dword [ebp + 0xc]
mov dword [ebp - 0x24], ecx
push dword [ebp + 8]
mov edx, edi
mov ecx, esi
call fcn.00408740
add esp, 0x14
test eax, eax
je 0x48d0bb
jmp 0x408907
call fcn.00408740
add esp, 0x14
test eax, eax
jne 0x408907
mov ecx, dword [ebp - 0x24]
cmp ecx, dword [ebp - 0x10]
jge case.0x4087c4.157
cmp esi, dword [ebx + 0x7c]
jae 0x48cd5f
movzx eax, word [esi]
add esi, 2
cmp dword [ebp - 0x18], eax
je case.0x4087c4.157
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
inc ecx
push ebx
push dword [ebp + 0xc]
mov dword [ebp - 0x24], ecx
push dword [ebp + 8]
mov edx, edi
mov ecx, esi
call fcn.00408740
add esp, 0x14
test eax, eax
je 0x48d141
jmp 0x408907
cmp edx, 0xa
ja case.default.0x487b11
jmp dword [edx*4 + 0x48e98c]
mov eax, dword [ebp + 0x18]
mov esi, dword [ebp + 8]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
push esi
call fcn.00408740
add esp, 0x14
test eax, eax
jne 0x408907
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0x24]
jge case.0x4087c4.157
mov ecx, dword [ebp - 8]
cmp ecx, dword [ebx + 0x7c]
jae 0x48cc04
movzx edx, word [ecx]
add ecx, 2
cmp dword [ebp - 0x1c], 0
mov dword [ebp - 8], ecx
je 0x48d1fa
and edx, 0xfc00
cmp edx, 0xd800
jne 0x48d1fa
add ecx, 2
mov dword [ebp - 8], ecx
cmp dword [ebp - 0x3c], 0
jne case.0x4087c4.157
inc eax
mov dword [ebp - 0x10], eax
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
push esi
call fcn.00408740
add esp, 0x14
test eax, eax
je 0x48d1bf
jmp 0x408907
mov eax, dword [ebp + 0x18]
mov esi, dword [ebp + 8]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
push esi
call fcn.00408740
add esp, 0x14
test eax, eax
jne 0x408907
mov eax, dword [ebp - 0x24]
cmp dword [ebp - 0x10], eax
jge case.0x4087c4.157
mov ecx, dword [ebp - 8]
cmp ecx, dword [ebx + 0x7c]
jae 0x48cc04
movzx edx, word [ecx]
add ecx, 2
cmp dword [ebp - 0x1c], 0
mov dword [ebp - 0xc], edx
mov dword [ebp - 8], ecx
je 0x48d2a4
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48d2a4
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 - 0xc], edx
mov dword [ebp - 8], ecx
mov eax, edx
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0xc]
sar eax, 7
movzx eax, byte [eax + 0x4af620]
shl eax, 7
and edx, 0x8000007f
jns 0x48d2c9
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x4a1788]
movzx eax, byte [eax*8 + 0x4ae289]
cmp eax, 9
je 0x48d2ee
cmp eax, 5
je 0x48d2ee
cmp eax, 8
je 0x48d2ee
xor eax, eax
jmp 0x48d2f3
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x4087c4.157
mov eax, dword [ebp + 0x18]
inc dword [ebp - 0x10]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
push esi
call fcn.00408740
add esp, 0x14
test eax, eax
je 0x48d24a
jmp 0x408907
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00408740
add esp, 0x14
test eax, eax
jne 0x408907
mov esi, dword [ebp - 8]
mov eax, dword [ebp - 0x24]
cmp dword [ebp - 0x10], eax
jge case.0x4087c4.157
cmp esi, dword [ebx + 0x7c]
jae 0x48cd5f
movzx ecx, word [esi]
add esi, 2
cmp dword [ebp - 0x1c], 0
je 0x48d392
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48d392
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4af620]
shl eax, 7
and ecx, 0x8000007f
jns 0x48d3b4
dec ecx
or ecx, 0xffffff80
inc ecx
mov edx, dword [ebp - 0x44]
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4a1788]
movzx eax, byte [eax*8 + 0x4ae289]
cmp dword [eax*4 + 0x4b9190], edx
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0x4087c4.157
mov eax, dword [ebp + 0x18]
inc dword [ebp - 0x10]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.00408740
add esp, 0x14
test eax, eax
je 0x48d347
jmp 0x408907
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00408740
add esp, 0x14
test eax, eax
jne 0x408907
mov esi, dword [ebp - 8]
mov eax, dword [ebp - 0x24]
cmp dword [ebp - 0x10], eax
jge case.0x4087c4.157
cmp esi, dword [ebx + 0x7c]
jae 0x48cd5f
movzx ecx, word [esi]
add esi, 2
cmp dword [ebp - 0x1c], 0
je 0x48d478
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48d478
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4af620]
shl eax, 7
and ecx, 0x8000007f
jns 0x48d49a
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4a1788]
movzx eax, byte [eax*8 + 0x4ae289]
cmp eax, dword [ebp - 0x44]
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0x4087c4.157
mov eax, dword [ebp + 0x18]
inc dword [ebp - 0x10]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.00408740
add esp, 0x14
test eax, eax
je 0x48d42d
jmp 0x408907
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00408740
add esp, 0x14
test eax, eax
jne 0x408907
mov esi, dword [ebp - 8]
mov eax, dword [ebp - 0x24]
cmp dword [ebp - 0x10], eax
jge case.0x4087c4.157
cmp esi, dword [ebx + 0x7c]
jae 0x48cd5f
movzx ecx, word [esi]
add esi, 2
cmp dword [ebp - 0x1c], 0
je 0x48d557
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48d557
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4af620]
shl eax, 7
and ecx, 0x8000007f
jns 0x48d579
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4a1788]
movzx eax, byte [eax*8 + 0x4ae288]
cmp eax, dword [ebp - 0x44]
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0x4087c4.157
mov eax, dword [ebp + 0x18]
inc dword [ebp - 0x10]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.00408740
add esp, 0x14
test eax, eax
je 0x48d50c
jmp 0x408907
mov eax, dword [ebp + 0x18]
mov esi, dword [ebp + 8]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
push esi
call fcn.00408740
add esp, 0x14
test eax, eax
jne 0x408907
mov eax, dword [ebp - 0x24]
cmp dword [ebp - 0x10], eax
jge case.0x4087c4.157
mov ecx, dword [ebp - 8]
cmp ecx, dword [ebx + 0x7c]
jae 0x48cc04
movzx edx, word [ecx]
add ecx, 2
cmp dword [ebp - 0x1c], 0
mov dword [ebp - 0xc], edx
mov dword [ebp - 8], ecx
je 0x48d643
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48d643
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 - 0xc], edx
mov dword [ebp - 8], ecx
mov eax, edx
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0xc]
sar eax, 7
movzx eax, byte [eax + 0x4af620]
shl eax, 7
and edx, 0x8000007f
jns 0x48d668
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x4a1788]
movzx eax, byte [eax*8 + 0x4ae289]
mov eax, dword [eax*4 + 0x4b9190]
cmp eax, 1
je 0x48d68f
cmp eax, 3
je 0x48d68f
xor eax, eax
jmp 0x48d694
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x4087c4.157
mov eax, dword [ebp + 0x18]
inc dword [ebp - 0x10]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
push esi
call fcn.00408740
add esp, 0x14
test eax, eax
je 0x48d5e9
jmp 0x408907
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00408740
add esp, 0x14
test eax, eax
jne 0x408907
mov esi, dword [ebp - 8]
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0x24]
jge case.0x4087c4.157
cmp esi, dword [ebx + 0x7c]
jae 0x48cd5f
movzx ecx, word [esi]
add esi, 2
cmp dword [ebp - 0x1c], 0
je 0x48d736
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48d733
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
mov eax, dword [ebp - 0x10]
cmp ecx, 0x180e
ja 0x48d783
je 0x48d808
cmp ecx, 0x85
ja 0x48d76a
je 0x48d808
cmp ecx, 9
jb case.0x48d79f.8203
cmp ecx, 0xd
jbe 0x48d808
cmp ecx, 0x20
jne case.0x48d79f.8203
jmp 0x48d808
cmp ecx, 0xa0
je 0x48d808
cmp ecx, 0x1680
jne case.0x48d79f.8203
jmp 0x48d808
cmp ecx, 0x202f
ja 0x48d7a6
je 0x48d808
lea eax, [ecx - 0x2000]
cmp eax, 0x29
ja case.0x48d79f.8203
movzx eax, byte [eax + 0x48e9c0]
jmp dword [eax*4 + 0x48e9b8]
cmp ecx, 0x205f
je 0x48d808
cmp ecx, 0x3000
je 0x48d808
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4af620]
shl eax, 7
and ecx, 0x8000007f
jns 0x48d7d8
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x4a1788]
movzx eax, byte [eax*8 + 0x4ae289]
cmp dword [eax*4 + 0x4b9190], 6
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0x4087c4.157
mov eax, dword [ebp - 0x10]
jmp 0x48d812
mov eax, dword [ebp - 0x10]
cmp dword [ebp - 0x3c], 0
jne case.0x4087c4.157
inc eax
mov dword [ebp - 0x10], eax
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.00408740
add esp, 0x14
test eax, eax
je 0x48d6e8
jmp 0x408907
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00408740
add esp, 0x14
test eax, eax
jne 0x408907
mov esi, dword [ebp - 8]
mov eax, dword [ebp - 0x24]
cmp dword [ebp - 0x10], eax
jge case.0x4087c4.157
cmp esi, dword [ebx + 0x7c]
jae 0x48cd5f
movzx ecx, word [esi]
add esi, 2
cmp dword [ebp - 0x1c], 0
mov dword [ebp - 0xc], ecx
je 0x48d8b3
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48d8b3
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
mov dword [ebp - 0xc], ecx
add esi, 2
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0xc]
sar eax, 7
movzx ecx, byte [eax + 0x4af620]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x48d8d9
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x4a1788]
movzx eax, byte [eax*8 + 0x4ae289]
mov eax, dword [eax*4 + 0x4b9190]
cmp eax, 1
je 0x48d905
cmp eax, 3
je 0x48d905
cmp edx, 0x5f
je 0x48d905
xor eax, eax
jmp 0x48d90a
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x4087c4.157
mov eax, dword [ebp + 0x18]
inc dword [ebp - 0x10]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.00408740
add esp, 0x14
test eax, eax
je 0x48d862
jmp 0x408907
mov eax, dword [ebp + 0x18]
mov esi, dword [ebp + 8]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
push esi
call fcn.00408740
add esp, 0x14
test eax, eax
jne 0x408907
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0x24]
jge case.0x4087c4.157
mov ecx, dword [ebp - 8]
cmp ecx, dword [ebx + 0x7c]
jae 0x48cc04
movzx edx, word [ecx]
add ecx, 2
cmp dword [ebp - 0x1c], 0
mov dword [ebp - 8], ecx
je 0x48d9b7
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48d9b4
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
mov eax, dword [ebp - 0x10]
mov esi, dword [ebp - 0x44]
lea esi, [esi*4 + 0x4b1820]
mov dword [ebp - 0x2c], esi
mov esi, dword [esi]
mov dword [ebp - 0xc], esi
cmp edx, esi
mov esi, dword [ebp + 8]
jb 0x48d9eb
add dword [ebp - 0x2c], 4
mov ebx, dword [ebp + 0x10]
cmp edx, dword [ebp - 0xc]
je 0x48da1d
mov ecx, dword [ebp - 0x2c]
mov ecx, dword [ecx]
mov dword [ebp - 0xc], ecx
cmp edx, ecx
mov ecx, dword [ebp - 8]
jae 0x48d9d0
cmp dword [ebp - 0x3c], 0
je case.0x4087c4.157
inc eax
mov dword [ebp - 0x10], eax
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
push esi
call fcn.00408740
add esp, 0x14
test eax, eax
je 0x48d960
jmp 0x408907
cmp dword [ebp - 0x3c], 0
jne case.0x4087c4.157
jmp 0x48d9f5
mov eax, dword [ebp + 0x18]
mov esi, dword [ebp + 8]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
push esi
call fcn.00408740
add esp, 0x14
test eax, eax
jne 0x408907
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0x24]
jge case.0x4087c4.157
mov ecx, dword [ebp - 8]
cmp ecx, dword [ebx + 0x7c]
jae 0x48cc04
movzx edx, word [ecx]
add ecx, 2
cmp dword [ebp - 0x1c], 0
mov dword [ebp - 8], ecx
je 0x48daa2
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48da9f
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
mov eax, dword [ebp - 0x10]
cmp edx, 0x24
je 0x48dacd
cmp edx, 0x40
je 0x48dacd
cmp edx, 0x60
je 0x48dacd
cmp edx, 0xa0
jb 0x48dac1
cmp edx, 0xd7ff
jbe 0x48dacd
cmp edx, 0xe000
jae 0x48dacd
xor edx, edx
jmp 0x48dad2
mov edx, 1
cmp edx, dword [ebp - 0x3c]
je case.0x4087c4.157
inc eax
mov dword [ebp - 0x10], eax
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
push esi
call fcn.00408740
add esp, 0x14
test eax, eax
je 0x48da4b
jmp 0x408907
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
push ebx
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00408740
add esp, 0x14
test eax, eax
jne 0x408907
mov esi, dword [ebp - 8]
mov ecx, dword [ebp - 0x10]
cmp ecx, dword [ebp - 0x24]
jge case.0x4087c4.157
mov eax, dword [ebx + 0x7c]
mov dword [ebp - 0x2c], eax
cmp esi, eax
jae 0x48cd5f
movzx edx, word [esi]
add esi, 2
cmp dword [ebp - 0x1c], 0
mov dword [ebp - 0xc], edx
je 0x48db7b
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48db7b
movzx eax, word [esi]
and edx, 0x3ff
shl edx, 0xa
and eax, 0x3ff
or edx, eax
add edx, 0x10000
mov dword [ebp - 0xc], edx
add esi, 2
mov eax, edx
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0xc]
sar eax, 7
movzx eax, byte [eax + 0x4af620]
shl eax, 7
and edx, 0x8000007f
jns 0x48dba0
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x4a1788]
movzx edx, byte [eax*8 + 0x4ae28a]
mov eax, dword [ebx + 0x7c]
mov dword [ebp - 0xc], edx
cmp esi, eax
jae 0x48dc67
mov ebx, dword [ebp - 0x1c]
mov edi, edx
movzx ecx, word [esi]
mov dword [ebp - 0xc], 1
test ebx, ebx
je 0x48dc02
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48dc02
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
mov dword [ebp - 0xc], 2
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4af620]
shl eax, 7
and ecx, 0x8000007f
jns 0x48dc24
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x4a1788]
movzx ecx, byte [eax*8 + 0x4ae28a]
mov eax, 1
shl eax, cl
test dword [edi*4 + 0x4a16ac], eax
je 0x48dc5b
mov eax, dword [ebp - 0xc]
mov edi, ecx
lea esi, [esi + eax*2]
mov eax, dword [ebp - 0x2c]
cmp esi, eax
jb 0x48dbc5
jmp 0x48dc5e
mov eax, dword [ebp - 0x2c]
mov ebx, dword [ebp + 0x10]
mov edi, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x10]
cmp dword [ebx + 0x8c], 0
je 0x48dc90
cmp esi, eax
jb 0x48dc90
cmp esi, dword [ebx + 0x88]
jbe 0x48dc90
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x487023
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
inc ecx
push ebx
push dword [ebp + 0xc]
mov dword [ebp - 0x10], ecx
push dword [ebp + 8]
mov edx, edi
mov ecx, esi
call fcn.00408740
add esp, 0x14
test eax, eax
je 0x48db25
jmp 0x408907
mov eax, dword [ebx + 0x1c]
add eax, eax
sub edx, eax
cmp esi, edx
ja 0x408fe7
mov ax, word [esi]
cmp ax, word [ebx + 0x34]
jne 0x408fe7
cmp dword [ebx + 0x1c], 1
je case.0x4087c4.157
mov ax, word [esi + 2]
cmp ax, word [ebx + 0x36]
je case.0x4087c4.157
jmp 0x408fe7
movzx eax, word [esi]
and edx, 0x3ff
shl edx, 0xa
and eax, 0x3ff
or edx, eax
add edx, 0x10000
add esi, 2
jmp 0x408fff
add eax, 0xfffffffa
cmp eax, 0xf
ja case.default.0x487b11
jmp dword [eax*4 + 0x48e9ec]
cmp edx, 0xd
ja 0x48dd62
je 0x48dd47
cmp edx, 0xa
je case.0x48dd22.13
lea eax, [edx - 0xb]
cmp eax, 1
ja case.0x4087c4.157
jmp 0x48dd79
cmp esi, dword [ebx + 0x7c]
jae case.0x48dd22.13
cmp word [esi], 0xa
jne case.0x48dd22.13
add esi, 2
jmp case.0x48dd22.13
cmp edx, 0x85
je 0x48dd79
lea eax, [edx - 0x2028]
cmp eax, 1
ja case.0x4087c4.157
cmp dword [ebx + 0x6c], 0
jne case.0x4087c4.157
jmp case.0x48dd22.13
cmp edx, 0x180e
ja 0x48ddcc
je case.0x4087c4.157
cmp edx, 0xa0
ja 0x48ddbb
je case.0x4087c4.157
cmp edx, 9
je case.0x4087c4.157
cmp edx, 0x20
je case.0x4087c4.157
jmp case.0x48dd22.13
cmp edx, 0x1680
je case.0x4087c4.157
jmp case.0x48dd22.13
cmp edx, 0x205f
ja 0x48de03
je case.0x4087c4.157
cmp edx, 0x2000
jb case.0x48dd22.13
cmp edx, 0x200a
jbe case.0x4087c4.157
cmp edx, 0x202f
je case.0x4087c4.157
jmp case.0x48dd22.13
cmp edx, 0x3000
je case.0x4087c4.157
jmp case.0x48dd22.13
cmp edx, 0x180e
ja 0x48de58
je case.0x48dd22.13
cmp edx, 0xa0
ja 0x48de47
je case.0x48dd22.13
cmp edx, 9
je case.0x48dd22.13
cmp edx, 0x20
jne case.0x4087c4.157
jmp case.0x48dd22.13
cmp edx, 0x1680
jne case.0x4087c4.157
jmp case.0x48dd22.13
cmp edx, 0x205f
ja 0x48de8f
je case.0x48dd22.13
cmp edx, 0x2000
jb case.0x4087c4.157
cmp edx, 0x200a
jbe case.0x48dd22.13
cmp edx, 0x202f
jne case.0x4087c4.157
jmp case.0x48dd22.13
cmp edx, 0x3000
jne case.0x4087c4.157
jmp case.0x48dd22.13
cmp edx, 0x85
ja 0x48dec5
je case.0x4087c4.157
cmp edx, 0xa
jb case.0x48dd22.13
cmp edx, 0xd
jbe case.0x4087c4.157
jmp case.0x48dd22.13
cmp edx, 0x2028
jb case.0x48dd22.13
cmp edx, 0x2029
jbe case.0x4087c4.157
jmp case.0x48dd22.13
cmp edx, 0x85
ja 0x48df01
je case.0x48dd22.13
lea eax, [edx - 0xa]
cmp eax, 3
ja case.0x4087c4.157
jmp case.0x48dd22.13
lea eax, [edx - 0x2028]
cmp eax, 1
ja case.0x4087c4.157
jmp case.0x48dd22.13
cmp edx, 0x100
jae case.0x48dd22.13
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 4
jne case.0x4087c4.157
jmp case.0x48dd22.13
cmp edx, 0x100
jae case.0x4087c4.157
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 4
je case.0x4087c4.157
jmp case.0x48dd22.13
cmp edx, 0x100
jae case.0x48dd22.13
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 1
jne case.0x4087c4.157
jmp case.0x48dd22.13
cmp edx, 0x100
jae case.0x4087c4.157
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 1
je case.0x4087c4.157
jmp case.0x48dd22.13
cmp edx, 0x100
jae case.0x48dd22.13
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 0x10
jne case.0x4087c4.157
jmp case.0x48dd22.13
cmp edx, 0x100
jae case.0x4087c4.157
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 0x10
je case.0x4087c4.157
jmp case.0x48dd22.13
cmp esi, dword [ebx + 0x7c]
jb case.0x48dd22.13
cmp dword [ebx + 0x18], 0
jne case.0x48dd22.13
cmp dword [ebx + 0x1c], 2
jne case.0x48dd22.13
movzx eax, word [ebx + 0x34]
cmp edx, eax
jne case.0x48dd22.13
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x487023
jmp case.0x48dd22.13
inc eax
push eax
push dword [ebp + 0x14]
push ebx
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00408740
add esp, 0x14
test eax, eax
jne 0x408907
mov esi, dword [ebp - 8]
mov ecx, dword [ebp - 0x10]
cmp ecx, dword [ebp - 0x24]
jge case.0x4087c4.157
mov edx, dword [ebx + 0x7c]
cmp esi, edx
jae 0x48cd5f
mov eax, dword [ebp - 0x28]
cmp eax, 0xc
jne 0x48e09f
cmp dword [ebx + 0x18], 0
je 0x48e070
push 0
lea eax, [ebx + 0x1c]
push eax
push edx
mov edx, dword [ebx + 0x18]
mov ecx, esi
call fcn.00406a87
add esp, 0xc
test eax, eax
jne case.0x4087c4.157
mov ecx, dword [ebp - 0x10]
jmp 0x48e09c
mov eax, dword [ebx + 0x1c]
add eax, eax
sub edx, eax
cmp esi, edx
ja 0x48e09c
mov ax, word [esi]
cmp ax, word [ebx + 0x34]
jne 0x48e09c
cmp dword [ebx + 0x1c], 1
je case.0x4087c4.157
mov ax, word [esi + 2]
cmp ax, word [ebx + 0x36]
je case.0x4087c4.157
mov eax, dword [ebp - 0x28]
movzx edx, word [esi]
add eax, 0xfffffffa
add esi, 2
cmp eax, 0xf
ja case.default.0x487b11
jmp dword [eax*4 + 0x48ea2c]
cmp dword [ebx + 0x8c], 0
je case.0x48e0b1.13
cmp esi, dword [ebx + 0x7c]
jb case.0x48e0b1.13
cmp dword [ebx + 0x18], 0
jne case.0x48e0b1.13
cmp dword [ebx + 0x1c], 2
jne case.0x48e0b1.13
movzx eax, word [ebx + 0x34]
cmp edx, eax
jne case.0x48e0b1.13
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x487023
jmp case.0x48e0b1.13
cmp edx, 0xd
ja 0x48e140
je 0x48e125
cmp edx, 0xa
je case.0x48e0b1.13
lea eax, [edx - 0xb]
cmp eax, 1
ja case.0x4087c4.157
jmp 0x48e157
cmp esi, dword [ebx + 0x7c]
jae case.0x48e0b1.13
cmp word [esi], 0xa
jne case.0x48e0b1.13
add esi, 2
jmp case.0x48e0b1.13
cmp edx, 0x85
je 0x48e157
lea eax, [edx - 0x2028]
cmp eax, 1
ja case.0x4087c4.157
cmp dword [ebx + 0x6c], 0
jne case.0x4087c4.157
jmp case.0x48e0b1.13
cmp edx, 0x180e
ja 0x48e1aa
je case.0x4087c4.157
cmp edx, 0xa0
ja 0x48e199
je case.0x4087c4.157
cmp edx, 9
je case.0x4087c4.157
cmp edx, 0x20
je case.0x4087c4.157
jmp case.0x48e0b1.13
cmp edx, 0x1680
je case.0x4087c4.157
jmp case.0x48e0b1.13
cmp edx, 0x205f
ja 0x48e1e1
je case.0x4087c4.157
cmp edx, 0x2000
jb case.0x48e0b1.13
cmp edx, 0x200a
jbe case.0x4087c4.157
cmp edx, 0x202f
je case.0x4087c4.157
jmp case.0x48e0b1.13
cmp edx, 0x3000
je case.0x4087c4.157
jmp case.0x48e0b1.13
cmp edx, 0x180e
ja 0x48e236
je case.0x48e0b1.13
cmp edx, 0xa0
ja 0x48e225
je case.0x48e0b1.13
cmp edx, 9
je case.0x48e0b1.13
cmp edx, 0x20
jne case.0x4087c4.157
jmp case.0x48e0b1.13
cmp edx, 0x1680
jne case.0x4087c4.157
jmp case.0x48e0b1.13
cmp edx, 0x205f
ja 0x48e26d
je case.0x48e0b1.13
cmp edx, 0x2000
jb case.0x4087c4.157
cmp edx, 0x200a
jbe case.0x48e0b1.13
cmp edx, 0x202f
jne case.0x4087c4.157
jmp case.0x48e0b1.13
cmp edx, 0x3000
jne case.0x4087c4.157
jmp case.0x48e0b1.13
cmp edx, 0x85
ja 0x48e2a3
je case.0x4087c4.157
cmp edx, 0xa
jb case.0x48e0b1.13
cmp edx, 0xd
jbe case.0x4087c4.157
jmp case.0x48e0b1.13
cmp edx, 0x2028
jb case.0x48e0b1.13
cmp edx, 0x2029
jbe case.0x4087c4.157
jmp case.0x48e0b1.13
cmp edx, 0x85
ja 0x48e2df
je case.0x48e0b1.13
lea eax, [edx - 0xa]
cmp eax, 3
ja case.0x4087c4.157
jmp case.0x48e0b1.13
lea eax, [edx - 0x2028]
cmp eax, 1
ja case.0x4087c4.157
jmp case.0x48e0b1.13
cmp edx, 0xff
ja case.0x48e0b1.13
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 4
jne case.0x4087c4.157
jmp case.0x48e0b1.13
cmp edx, 0xff
ja case.0x4087c4.157
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 4
je case.0x4087c4.157
jmp case.0x48e0b1.13
cmp edx, 0xff
ja case.0x48e0b1.13
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 1
jne case.0x4087c4.157
jmp case.0x48e0b1.13
cmp edx, 0xff
ja case.0x4087c4.157
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 1
je case.0x4087c4.157
jmp case.0x48e0b1.13
cmp edx, 0xff
ja case.0x48e0b1.13
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 0x10
jne case.0x4087c4.157
jmp case.0x48e0b1.13
cmp edx, 0xff
ja case.0x4087c4.157
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 0x10
je case.0x4087c4.157
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
inc ecx
push ebx
push dword [ebp + 0xc]
mov dword [ebp - 0x10], ecx
push dword [ebp + 8]
mov edx, edi
mov ecx, esi
call fcn.00408740
add esp, 0x14
test eax, eax
je 0x48e02a
jmp 0x408907
mov dword [ebx + 0x9c], 2
jmp 0x408e8c
movzx ecx, word [edi + 2]
lea eax, [edi + ecx*2]
cmp dword [ebx + 0x80], eax
jae 0x408ed5
cmp word [edi], 0x77
je 0x48e3e9
cmp word [eax], 0x77
jne 0x408ed5
xor edx, edx
mov eax, dword [ebp - 0x2c]
mov dword [ebx + 0x94], eax
movzx eax, word [edi + 2]
lea edi, [edi + eax*2]
mov eax, dword [ebp - 0x14]
mov dword [ebx + 0xb0], eax
cmp word [edi], 0x77
je 0x408e80
mov eax, dword [ebx + 0xc]
mov esi, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x20]
mov dword [eax + esi*4], ecx
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebp - 0x44]
mov dword [eax + esi*4 + 4], ecx
mov ecx, dword [ebx + 0x10]
sub ecx, dword [ebp - 0xc]
mov eax, dword [ebx + 0xc]
mov esi, dword [ebp - 0x28]
mov dword [eax + ecx*4], esi
jmp 0x408ed5
cmp edx, 0xfffffc1b
jne 0x48e477
movzx eax, word [edi]
mov ecx, 0x81
cmp ax, cx
je 0x48e469
cmp eax, 0x77
jne 0x48e460
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x77
lea edi, [edi + eax*2]
je 0x48e452
movzx eax, word [edi + 2]
neg eax
lea edi, [edi + eax*2]
mov eax, dword [ebx + 0xb8]
sub eax, edi
neg eax
sbb eax, eax
and edx, eax
mov eax, edx
jmp 0x408907
mov esi, dword [ebp - 8]
lea eax, [edi + 4]
mov dword [ebx + 0xb4], eax
mov dword [ebx + 0xb0], edx
mov dword [ebp - 0xc], eax
mov eax, dword [ebp + 0x18]
inc eax
push eax
movzx eax, word [edi]
push dword [ebp + 0x14]
movzx ecx, byte [eax + 0x4a16e0]
movzx eax, word [edi + 2]
push ebx
push dword [ebp + 0xc]
add ecx, eax
push dword [ebp + 8]
lea edx, [edi + ecx*2]
mov ecx, esi
call fcn.00408740
mov edi, eax
add esp, 0x14
cmp edi, 1
je 0x48e4ce
cmp edi, 0xfffffc19
jne 0x48e4e7
cmp dword [ebx + 0xb0], 0
jne 0x48e4e7
mov ecx, dword [ebp - 0xc]
mov dword [ebx + 0xb0], ecx
mov eax, edi
jmp 0x408907
cmp edi, 0xfffffc1f
jne 0x48e505
mov edx, dword [ebx + 0x80]
mov ecx, dword [ebp - 0xc]
call fcn.0047253e
test eax, eax
je 0x48e618
mov eax, edi
jmp 0x408907
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
movzx eax, word [edi]
push ebx
movzx eax, byte [eax + 0x4a16e0]
push dword [ebp + 0xc]
lea edx, [edi + eax*2]
push dword [ebp + 8]
call fcn.00408740
add esp, 0x14
test eax, eax
jne 0x408907
mov eax, 0xfffffc1c
jmp 0x408907
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
movzx eax, word [edi]
push ebx
movzx eax, byte [eax + 0x4a16e0]
push dword [ebp + 0xc]
lea edx, [edi + eax*2]
push dword [ebp + 8]
call fcn.00408740
add esp, 0x14
test eax, eax
jne 0x408907
mov eax, 0xfffffc1d
jmp 0x408907
lea esi, [edi + 4]
mov dword [ebx + 0xb4], esi
mov dword [ebx + 0xb0], edx
mov eax, dword [ebp + 0x18]
inc eax
push eax
movzx eax, word [edi]
push dword [ebp + 0x14]
movzx ecx, byte [eax + 0x4a16e0]
movzx eax, word [edi + 2]
push ebx
push dword [ebp + 0xc]
add ecx, eax
push dword [ebp + 8]
lea edx, [edi + ecx*2]
mov ecx, dword [ebp - 8]
call fcn.00408740
add esp, 0x14
cmp eax, 1
je 0x48e5c6
cmp eax, 0xfffffc19
jne 0x48e5d5
cmp dword [ebx + 0xb0], 0
jne 0x48e5d5
mov dword [ebx + 0xb0], esi
test eax, eax
jne 0x408907
mov eax, 0xfffffc1d
jmp 0x408907
mov eax, dword [ebp + 0x18]
mov esi, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
movzx eax, word [edi]
push ebx
movzx eax, byte [eax + 0x4a16e0]
push dword [ebp + 0xc]
lea edx, [edi + eax*2]
push dword [ebp + 8]
mov ecx, esi
call fcn.00408740
add esp, 0x14
test eax, eax
jne 0x408907
mov dword [ebx + 0x80], esi
mov eax, 0xfffffc1e
jmp 0x408907
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
movzx eax, word [edi]
push ebx
movzx eax, byte [eax + 0x4a16e0]
push dword [ebp + 0xc]
lea edx, [edi + eax*2]
push dword [ebp + 8]
call fcn.00408740
add esp, 0x14
jmp 0x48e657
mov dword [ebx + 0xb0], esi
test eax, eax
jne 0x408907
mov dword [ebx + 0x80], edi
mov eax, 0xfffffc20
jmp 0x408907
lea esi, [edi + 4]
mov dword [ebx + 0xb4], esi
mov dword [ebx + 0xb0], edx
mov eax, dword [ebp + 0x18]
inc eax
push eax
movzx eax, word [edi]
push dword [ebp + 0x14]
movzx ecx, byte [eax + 0x4a16e0]
movzx eax, word [edi + 2]
push ebx
push dword [ebp + 0xc]
add ecx, eax
push dword [ebp + 8]
lea edx, [edi + ecx*2]
mov ecx, dword [ebp - 8]
call fcn.00408740
add esp, 0x14
cmp eax, 1
je 0x48e6b7
cmp eax, 0xfffffc19
jne 0x48e657
cmp dword [ebx + 0xb0], 0
jne 0x48e657
jmp 0x48e651
cmp esi, 0x9f
je 0x4088e5
cmp dword [ebx + 0xa8], 0
jne 0x4088e5
cmp dword [ebx + 0x60], 0
jne case.0x4087c4.157
cmp dword [ebx + 0x64], 0
je 0x4088e5
mov ecx, dword [ebx + 0x98]
mov eax, dword [ebx + 0x78]
lea eax, [eax + ecx*2]
cmp edi, eax
je case.0x4087c4.157
jmp 0x4088e5
mov eax, 0xfffffc19
jmp 0x408907
mov eax, 0xfffffffb
jmp 0x408907
mov eax, 0xffffffeb
jmp 0x408907
inc dword [ebx]
mov eax, 0xfffffff8
jmp 0x408907