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

Disassembly:
sub esp, 0x44
mov eax, dword [esp + 0x5c]
xor ecx, ecx
mov dword [esp + 0x14], ecx
xor edx, edx
mov dword [esp + 8], ecx
push ebx
mov ecx, dword [eax + 0x7c]
mov eax, ecx
shr eax, 0x13
and eax, 1
shr ecx, 0x11
push ebp
mov ebp, dword [esp + 0x5c]
and ecx, 1
mov dword [esp + 0xc], eax
push esi
push edi
mov edi, dword [esp + 0x68]
lea eax, [ebp - 0x38]
mov dword [esp + 0x48], eax
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x1c], edx
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x1c]
mov dword [esp + 0x10], eax
mov eax, ecx
div ebp
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x5c]
sub ecx, edx
mov dword [esp + 0x38], ecx
add ecx, eax
mov dword [esp + 0x3c], ecx
xor ebx, ebx
mov ecx, dword [esp + 0x10]
mov dword [eax + 0x18], 0
mov dword [eax + 0x48], 0
mov dword [eax + 0x44], 0xffffffff
mov eax, dword [esp + 0x58]
mov dword [ecx + 0x38], eax
mov dword [ecx + 0x3c], eax
mov eax, ecx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x34], 0xfc00
mov dword [esp + 0x30], 0xdc00
mov dword [eax + 0x40], 0
mov dword [eax + 0x50], 0
mov dword [eax + 0x4c], 0xffffffff
mov dword [eax + 0x1c], ebx
mov dword [eax], esi
mov dword [eax + 0x10], ebp
test ebx, ebx
je 0x51fd75
sub eax, dword [edi + 0x18]
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x4c], eax
mov eax, ebx
and eax, 0xffff0000
cmp eax, 0x40000
jne 0x51fd6f
movzx eax, bx
mov dword [ecx + 0x44], eax
xor eax, eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x6c]
mov ebp, dword [esp + 0x6c]
mov edx, dword [eax + 0x18]
mov ecx, dword [eax + 0x10]
lea eax, [edx + 1]
mov dword [ebp + 0x18], eax
cmp edx, ecx
jae 0x529ba2
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x18]
cmp eax, dword [ebp + 0x14]
jb 0x51fdc8
pop edi
pop esi
pop ebp
mov eax, 0xffffffcb
pop ebx
add esp, 0x44
ret
mov edi, dword [esp + 0x68]
mov ebp, eax
jmp 0x51fdd0
mov ebp, dword [esp + 0x6c]
jmp 0x51fdc8
mov ecx, dword [esp + 0x10]
mov dword [ecx], eax
mov edi, dword [esp + 0x68]
mov edx, dword [esp + 0x14]
nop dword [eax]
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
mov bl, byte [esi]
mov byte [eax + 0x31], bl
movzx eax, bl
mov byte [esp + 0x58], bl
cmp eax, 0xa6
ja case.0x52791c.15
movzx eax, byte [eax + 0x529d0c]
jmp dword [eax*4 + 0x529bb0]
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x44], 0xffffffff
jne 0x51fe72
movzx edi, word [esi + 2]
mov eax, dword [eax + 0x4c]
mov esi, dword [esp + 0x68]
cmp eax, 0xffffffff
je case.0x52791c.15
mov ecx, dword [esi + 0x18]
add ecx, eax
mov eax, edi
mov edx, ecx
mov dword [esp + 0x1c], ecx
sub edx, dword [esp + 0x64]
or eax, 0x10000
cmp dword [ecx + 0x1c], eax
je 0x51fe39
mov eax, dword [edx + 0x4c]
jmp 0x51fe10
mov eax, dword [esp + 0x10]
lea esi, [edi + edi]
lea ecx, [esi - 2]
mov dword [eax + 0x48], edi
mov eax, dword [edx + 0x38]
sub eax, dword [ebp + 0x4c]
mov edi, dword [esp + 0x10]
sar eax, 1
mov dword [edi + ecx*4 + 0x54], eax
mov eax, edi
mov eax, dword [eax + 0x38]
sub eax, dword [ebp + 0x4c]
sar eax, 1
mov dword [edi + ecx*4 + 0x58], eax
mov eax, edi
cmp ecx, dword [eax + 0x50]
jb 0x51fe6e
mov dword [eax + 0x50], esi
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x5a4b10]
lea eax, [ecx + eax*2]
jmp 0x51fdbe
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x38]
cmp eax, dword [ebp + 0x60]
jbe 0x51fe95
mov dword [ebp + 0x60], eax
mov eax, dword [esp + 0x10]
mov esi, 0xfffffc19
mov dword [esp + 0x24], eax
jmp 0x52011b
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x44], 0xffffffff
je 0x51ff0e
mov eax, dword [eax + 0x4c]
cmp eax, 0xffffffff
je case.0x52791c.15
mov edi, dword [edi + 0x18]
add edi, eax
mov ecx, edi
mov dword [esp + 0x1c], edi
sub ecx, dword [esp + 0x64]
mov eax, dword [edi + 0x1c]
mov edi, dword [esp + 0x68]
and eax, 0xffff0000
cmp eax, 0x40000
je 0x51fee4
mov eax, dword [ecx + 0x4c]
jmp 0x51feb4
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x38]
mov dword [ecx + 0x38], eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x40]
mov dword [ecx + 0x40], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x10], ecx
mov eax, dword [eax + 0x3c]
mov dword [ecx + 0x3c], eax
add dword [ecx], 4
jmp 0x51fdd0
mov edx, dword [eax + 0x38]
mov esi, dword [eax + 0x3c]
cmp edx, esi
jne 0x51ff40
mov eax, dword [esp + 0x6c]
mov eax, dword [eax + 0x78]
test al, 4
jne 0x52010d
test al, 8
je 0x51ff40
mov eax, dword [esp + 0x6c]
mov ecx, dword [eax + 0x34]
mov eax, dword [eax + 0x4c]
lea eax, [eax + ecx*2]
cmp esi, eax
je 0x52010d
mov eax, dword [esp + 0x6c]
cmp edx, dword [eax + 0x54]
jae 0x529ad1
mov ebp, dword [esp + 0x6c]
mov eax, dword [eax + 0x7c]
or eax, dword [ebp + 0x78]
test eax, 0x20000000
je 0x529acf
test bl, bl
je case.default.0x527939
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x44
ret
mov eax, dword [esp + 0x6c]
mov esi, dword [eax + 0x88]
test esi, esi
je 0x51ffb7
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x38]
mov eax, dword [esp + 0x6c]
mov edx, dword [eax + 0x54]
cmp ecx, edx
jae 0x51fffc
push dword [esp + 0x14]
add eax, 0x8c
push eax
push edx
push esi
push ecx
call fcn.005370b0
add esp, 0x14
test eax, eax
jne 0x52010d
mov eax, dword [esp + 0x6c]
jmp 0x51fffc
mov esi, dword [eax + 0x8c]
mov eax, dword [esp + 0x10]
mov ebp, dword [esp + 0x6c]
mov edx, dword [eax + 0x38]
lea eax, [esi + esi]
mov ecx, dword [ebp + 0x54]
sub ecx, eax
cmp edx, ecx
ja 0x51fffa
mov ax, word [edx]
cmp ax, word [ebp + 0x90]
jne 0x51fffa
cmp esi, 1
je case.default.0x527939
mov ax, word [edx + 2]
cmp ax, word [ebp + 0x92]
je case.default.0x527939
mov eax, ebp
movzx eax, word [eax + 0x3c]
mov ebp, dword [esp + 0x6c]
mov edx, eax
test ax, ax
je case.0x51fdf4.13
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x38]
mov eax, dword [ebp + 0x54]
sub eax, 2
cmp ecx, eax
jne case.0x51fdf4.13
mov eax, ebp
cmp dword [eax + 0x88], 0
jne 0x52004e
cmp dword [eax + 0x8c], 2
jne 0x52004e
mov ax, word [ecx]
cmp ax, word [ebp + 0x90]
jne case.0x51fdf4.13
mov eax, ebp
mov dword [eax + 0x1c], 1
cmp edx, 1
ja 0x5211f2
mov ebp, eax
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x38]
cmp ecx, dword [ebp + 0x54]
jb 0x520091
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x527939
mov eax, dword [esp + 0x6c]
cmp ecx, dword [eax + 0x5c]
ja 0x52007a
cmp dword [eax + 0x24], 0
je 0x52008a
mov dword [eax + 0x1c], 1
cmp edx, 1
ja 0x5211f2
mov ebp, eax
jmp case.default.0x527939
mov edx, dword [esp + 0x14]
add ecx, 2
mov dword [eax + 0x38], ecx
test edx, edx
je 0x5200c7
cmp ecx, dword [ebp + 0x54]
jae 0x5200c7
mov ax, word [ecx]
mov ebx, 0xfc00
and ax, bx
mov ebx, 0xdc00
cmp ax, bx
jne 0x5200c3
lea eax, [ecx + 2]
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x38], eax
mov eax, dword [esp + 0x10]
add dword [eax], 2
jmp 0x51fdd0
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x38]
mov eax, dword [esp + 0x6c]
cmp ecx, dword [eax + 0x54]
jb 0x520165
movzx eax, word [eax + 0x3c]
mov edx, eax
test ax, ax
je 0x52010d
mov eax, dword [esp + 0x6c]
cmp ecx, dword [eax + 0x5c]
ja 0x5200fd
cmp dword [eax + 0x24], 0
je 0x52010d
cmp edx, 1
mov dword [eax + 0x1c], 1
ja 0x5211f2
mov ebp, dword [esp + 0x6c]
xor esi, esi
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov eax, dword [eax + 0x38]
cmp eax, dword [ebp + 0x60]
jbe 0x520126
mov dword [ebp + 0x60], eax
mov ebx, dword [esp + 0x10]
cmp dword [ebx + 0x18], 0
je 0x529b64
sub ebx, dword [ebx + 0x10]
mov eax, dword [ebp + 0x98]
mov edi, ebx
mov dword [esp + 0x10], ebx
or dword [eax + 0x3c], 2
movzx eax, byte [ebx + 0x30]
dec eax
cmp eax, 0xe0
ja case.0x52791c.15
movzx eax, byte [eax + 0x529eac]
jmp dword [eax*4 + 0x529db4]
mov ebp, dword [esp + 0x6c]
lea eax, [ecx + 2]
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x38], eax
lea eax, [esi + 2]
mov dword [ecx], eax
jmp 0x51fdd0
mov eax, dword [esp + 0x10]
test edx, edx
je 0x520253
mov ecx, dword [esp + 0x10]
mov dword [eax + 0xc], 1
lea eax, [esi + 2]
mov dword [ecx], eax
mov ecx, 0xfc00
mov ax, word [eax]
and ax, cx
mov ecx, 0xd800
cmp ax, cx
mov eax, dword [esp + 0x10]
jne 0x5201c0
mov dword [eax + 0xc], 2
mov edx, 2
jmp 0x5201c5
mov edx, 1
mov ecx, dword [eax + 0x38]
mov esi, dword [ebp + 0x54]
mov eax, esi
sub eax, ecx
sar eax, 1
cmp edx, eax
jbe 0x520216
cmp ecx, esi
jb case.default.0x527939
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x527939
mov eax, dword [esp + 0x6c]
cmp ecx, dword [eax + 0x5c]
ja 0x5201ff
cmp dword [eax + 0x24], 0
je 0x52008a
mov dword [eax + 0x1c], 1
cmp edx, 1
ja 0x5211f2
mov ebp, eax
jmp case.default.0x527939
mov eax, dword [esp + 0x10]
nop word [eax + eax]
mov ebx, dword [esp + 0x10]
mov eax, dword [eax + 0x38]
mov ecx, dword [ebx]
movzx edx, word [eax]
add eax, 2
movzx esi, word [ecx]
mov dword [ebx + 0x38], eax
lea eax, [ecx + 2]
mov dword [ebx], eax
mov eax, ebx
cmp si, dx
jne 0x52024c
add dword [eax + 0xc], 0xffffffff
jne 0x520220
jmp 0x51fdc8
xor esi, esi
jmp 0x520117
mov edi, dword [eax + 0x38]
mov eax, dword [ebp + 0x54]
sub eax, edi
and eax, 0xfffffffe
cmp eax, 2
jge 0x52029a
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x52028f
mov eax, dword [esp + 0x6c]
cmp edi, dword [eax + 0x5c]
ja 0x52027d
cmp dword [eax + 0x24], 0
je 0x52028d
mov dword [eax + 0x1c], 1
cmp ecx, 1
ja 0x5211f2
mov ebp, eax
mov eax, dword [esp + 0x10]
xor esi, esi
jmp 0x52011b
movzx edx, word [esi + 2]
lea eax, [edi + 2]
mov ebx, dword [esp + 0x10]
movzx ecx, word [edi]
cmp dx, cx
mov edx, dword [esp + 0x14]
mov dword [ebx + 0x38], eax
je 0x529232
xor esi, esi
mov eax, ebx
jmp 0x52011b
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x6c]
mov ebp, dword [eax + 0x38]
cmp ebp, dword [ecx + 0x54]
jb 0x52030a
movzx eax, word [ecx + 0x3c]
mov ecx, eax
test ax, ax
je 0x5202fb
mov eax, dword [esp + 0x6c]
cmp ebp, dword [eax + 0x5c]
ja 0x5202eb
cmp dword [eax + 0x24], 0
je 0x5202fb
mov dword [eax + 0x1c], 1
cmp ecx, 1
ja 0x5211f2
mov eax, dword [esp + 0x10]
xor esi, esi
mov ebp, dword [esp + 0x6c]
jmp 0x52011b
test edx, edx
je 0x520448
mov dword [eax + 0xc], 1
lea edi, [esi + 2]
mov dword [eax], edi
mov ebx, 1
movzx esi, word [edi]
mov eax, esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x520360
movzx eax, word [edi + 2]
and esi, 0x3ff
and eax, 0x3ff
shl esi, 0xa
or esi, eax
mov ebx, 2
mov eax, dword [esp + 0x10]
add esi, 0x10000
mov dword [eax + 0xc], 2
jmp 0x520364
mov eax, dword [esp + 0x10]
movzx edx, word [ebp]
cmp esi, 0x80
jae 0x5203b4
mov eax, dword [ecx + 0x28]
cmp edx, 0xff
ja 0x52037f
movzx edx, byte [eax + edx]
movzx eax, byte [eax + esi]
cmp eax, edx
mov edx, dword [esp + 0x14]
je 0x520398
mov eax, dword [esp + 0x10]
xor esi, esi
mov ebp, ecx
jmp 0x52011b
mov ecx, dword [esp + 0x10]
lea eax, [edi + 2]
mov dword [ecx], eax
lea eax, [ebp + 2]
mov dword [ecx + 0x38], eax
mov ebp, dword [esp + 0x6c]
mov edi, dword [esp + 0x68]
jmp 0x51fdd0
lea ecx, [ebp + 2]
mov dword [eax + 0x38], ecx
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5203ed
movzx eax, word [ecx]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
lea eax, [ecx + 2]
mov ecx, dword [esp + 0x10]
add edx, 0x10000
mov dword [ecx + 0x38], eax
jmp 0x5203f1
mov ecx, dword [esp + 0x10]
mov ebp, dword [esp + 0x6c]
lea eax, [edi + ebx*2]
mov edi, dword [esp + 0x68]
mov dword [ecx], eax
cmp edx, esi
je 0x51fdc8
mov eax, esi
shr eax, 7
movzx ecx, word [eax*2 + 0x5ab420]
mov eax, esi
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5af820]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x5a7214]
add eax, esi
cmp edx, eax
mov edx, dword [esp + 0x14]
je 0x51fdd0
mov eax, dword [esp + 0x10]
xor esi, esi
jmp 0x52011b
cmp dword [esp + 0x2c], 0
je 0x5204c9
movzx edi, word [esi + 2]
movzx edx, word [ebp]
cmp edi, 0x80
jae 0x520481
mov eax, dword [ecx + 0x28]
cmp edx, 0xff
ja 0x52046e
movzx edx, byte [eax + edx]
movzx eax, byte [eax + edi]
cmp eax, edx
je 0x5204fe
mov ebp, ecx
jmp case.default.0x527939
cmp edx, edi
je 0x5204fe
mov eax, edi
test eax, eax
jns 0x52048e
add eax, 0x7f
sar eax, 7
movzx ecx, word [eax*2 + 0x5ab420]
mov eax, edi
shl ecx, 7
and eax, 0x8000007f
jns 0x5204aa
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x5af820]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x5a7214]
add eax, edi
cmp edx, eax
je 0x5204fe
jmp 0x52010d
movzx eax, word [esi + 2]
mov ebx, 0xff
mov edx, eax
cmp ax, bx
ja 0x5204e0
mov eax, dword [ecx + 0x28]
movzx edx, byte [eax + edx]
movzx eax, word [ebp]
mov ecx, eax
cmp ax, bx
ja 0x5204f6
mov eax, dword [esp + 0x6c]
mov eax, dword [eax + 0x28]
movzx ecx, byte [eax + ecx]
cmp edx, ecx
jne 0x52010d
mov ecx, dword [esp + 0x10]
lea eax, [ebp + 2]
mov dword [ecx + 0x38], eax
lea eax, [esi + 4]
mov dword [ecx], eax
mov ebp, dword [esp + 0x6c]
jmp 0x51fdc4
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x38]
mov eax, dword [esp + 0x6c]
cmp ecx, dword [eax + 0x54]
jae 0x5200e3
lea eax, [esi + 2]
test edx, edx
je 0x520616
mov edi, dword [esp + 0x10]
lea esi, [eax + 2]
mov dword [edi], eax
movzx edx, word [eax]
mov eax, edi
mov dword [eax], esi
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x520571
movzx eax, word [esi]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
lea eax, [esi + 2]
add edx, 0x10000
mov dword [edi], eax
mov eax, dword [esp + 0x10]
movzx esi, word [ecx]
add ecx, 2
mov dword [eax + 0x38], ecx
mov eax, esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5205af
movzx eax, word [ecx]
and esi, 0x3ff
and eax, 0x3ff
shl esi, 0xa
or esi, eax
lea eax, [ecx + 2]
mov ecx, dword [esp + 0x10]
add esi, 0x10000
mov dword [ecx + 0x38], eax
mov ebp, dword [esp + 0x6c]
cmp edx, esi
je case.default.0x527939
mov edi, dword [esp + 0x68]
cmp bl, 0x20
jne 0x51fdc8
cmp edx, 0x7f
jbe 0x5205f8
mov eax, edx
shr eax, 7
movzx ecx, word [eax*2 + 0x5ab420]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5af820]
lea eax, [eax + eax*2]
add edx, dword [eax*4 + 0x5a7214]
jmp 0x5205ff
mov eax, dword [ebp + 0x2c]
movzx edx, byte [eax + edx]
cmp edx, esi
mov edx, dword [esp + 0x14]
jne 0x51fdd0
mov eax, dword [esp + 0x10]
xor esi, esi
jmp 0x52011b
cmp dword [esp + 0x2c], 0
lea edi, [ecx + 2]
mov ebp, dword [esp + 0x6c]
je 0x5206af
movzx ebx, word [ecx]
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x38], edi
movzx edx, word [eax]
lea eax, [esi + 4]
mov dword [ecx], eax
cmp edx, ebx
je case.default.0x527939
cmp byte [esp + 0x58], 0x20
mov edi, dword [esp + 0x68]
jne 0x51fdc8
cmp edx, 0x7f
jbe 0x520691
mov eax, edx
test eax, eax
jns 0x52065f
add eax, 0x7f
sar eax, 7
movzx ecx, word [eax*2 + 0x5ab420]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x52067b
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x5af820]
lea eax, [eax + eax*2]
add edx, dword [eax*4 + 0x5a7214]
jmp 0x520698
mov eax, dword [ebp + 0x2c]
movzx edx, byte [eax + edx]
cmp edx, ebx
mov edx, dword [esp + 0x14]
jne 0x51fdd0
mov eax, dword [esp + 0x10]
xor esi, esi
jmp 0x52011b
movzx edx, word [eax]
mov eax, dword [esp + 0x10]
movzx ecx, word [ecx]
mov dword [eax + 0x38], edi
cmp edx, ecx
je case.default.0x527939
cmp bl, 0x20
jne 0x5206e0
cmp edx, 0xff
ja 0x5206e0
mov eax, dword [ebp + 0x2c]
movzx eax, byte [eax + edx]
cmp eax, ecx
je case.default.0x527939
lea eax, [esi + 4]
jmp 0x51fdbe
mov ecx, dword [esp + 0x10]
movzx eax, word [esi + 2]
add esi, 4
mov dword [ecx + 0x24], eax
mov dword [ecx + 0x20], eax
mov eax, ecx
mov dword [eax], esi
jmp 0x520823
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x18], 2
mov dword [eax + 0x20], 0
movzx eax, word [esi + 2]
add esi, 4
mov dword [ecx + 0x24], eax
mov eax, ecx
mov dword [eax], esi
jmp 0x52081f
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x18], 1
mov dword [eax + 0x20], 0
movzx eax, word [esi + 2]
add esi, 4
mov dword [ecx + 0x24], eax
mov eax, ecx
mov dword [eax], esi
jmp 0x52081f
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x18], 0
mov dword [eax + 0x20], 0
movzx eax, word [esi + 2]
add esi, 4
mov dword [ecx + 0x24], eax
mov eax, ecx
mov dword [eax], esi
jmp 0x52081f
mov eax, dword [esp + 0x10]
add esi, 2
mov dword [esp + 0x18], 2
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 0xffffffff
mov dword [eax], esi
jmp 0x52081f
mov eax, dword [esp + 0x10]
add esi, 2
mov dword [esp + 0x18], 2
mov dword [eax + 0x20], 1
mov dword [eax + 0x24], 0xffffffff
mov dword [eax], esi
jmp 0x52081f
mov eax, dword [esp + 0x10]
add esi, 2
mov dword [esp + 0x18], 2
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 1
mov dword [eax], esi
jmp 0x52081f
movzx ecx, word [esi]
cmp bl, 0x2e
mov edx, dword [esp + 0x10]
sbb eax, eax
and eax, 0xfffffff3
add eax, 0x2e
sub ecx, eax
mov eax, dword [esp + 0x10]
add esi, 2
mov dword [eax], esi
mov eax, dword [ecx*4 + 0x5a4350]
mov dword [edx + 0x20], eax
mov eax, dword [ecx*4 + 0x5a437c]
mov dword [edx + 0x24], eax
mov eax, dword [ecx*4 + 0x5a43a8]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
test ebx, ebx
je 0x520c28
mov dword [eax + 0xc], 1
mov dword [eax + 8], esi
movzx edx, word [esi]
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
mov eax, dword [esp + 0x10]
jne 0x52087b
movzx edi, word [esi + 2]
and edx, 0x3ff
mov ecx, dword [esp + 0x10]
and edi, 0x3ff
shl edx, 0xa
mov dword [eax + 0xc], 2
or edi, edx
lea eax, [esi + 4]
add edi, 0x10000
mov dword [ecx], eax
jmp 0x520892
mov edi, dword [esp + 0x10]
mov ecx, dword [eax + 0xc]
lea eax, [esi + 2]
mov dword [edi], eax
mov edi, edx
cmp ecx, 1
jbe 0x520c1f
mov eax, dword [esp + 0x10]
cmp byte [eax + 0x31], 0x2e
jb 0x5208de
mov eax, edi
shr eax, 7
movzx ecx, word [eax*2 + 0x5ab420]
mov eax, edi
shl ecx, 7
and eax, 0x7f
add ecx, eax
movzx eax, word [ecx*2 + 0x5af820]
lea eax, [eax + eax*2]
mov ecx, dword [eax*4 + 0x5a7214]
add ecx, edi
cmp ecx, edi
je 0x5208de
mov eax, dword [esp + 0x10]
add eax, 0x32
push eax
push ecx
call fcn.00537260
add esp, 8
jmp 0x5208e0
xor eax, eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x58], 1
mov dword [ecx + 0x14], eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x20]
cmp eax, 1
jb 0x520a34
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x38]
jmp 0x520914
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0xc]
mov ebp, dword [ebp + 0x54]
add edi, edi
mov eax, ebp
sub eax, edi
cmp ebx, eax
ja 0x52098b
mov eax, dword [esp + 0x10]
mov esi, edi
mov ecx, ebx
mov edx, dword [eax + 8]
sub esi, 4
jb 0x520945
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x52094e
add ecx, 4
add edx, 4
sub esi, 4
jae 0x520934
cmp esi, 0xfffffffc
je 0x520a13
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x52098b
cmp esi, 0xfffffffd
je 0x520a13
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x52098b
cmp esi, 0xfffffffe
je 0x520a13
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x52098b
cmp esi, 0xffffffff
je 0x520a13
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x520a13
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x14]
test eax, eax
je 0x520b8d
lea edi, [eax + eax]
mov eax, ebp
sub eax, edi
cmp ebx, eax
ja 0x520b8d
mov edx, dword [esp + 0x10]
mov esi, edi
add edx, 0x32
mov ecx, ebx
sub esi, 4
jb 0x5209d1
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x5209d6
add ecx, 4
add edx, 4
sub esi, 4
jae 0x5209c0
cmp esi, 0xfffffffc
je 0x520a13
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x520b8d
cmp esi, 0xfffffffd
je 0x520a13
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x520b8d
cmp esi, 0xfffffffe
je 0x520a13
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x520b8d
cmp esi, 0xffffffff
je 0x520a13
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x520b8d
mov eax, dword [esp + 0x10]
add ebx, edi
mov ecx, dword [esp + 0x58]
mov ebp, dword [esp + 0x6c]
inc ecx
mov dword [esp + 0x58], ecx
mov dword [eax + 0x38], ebx
mov eax, dword [eax + 0x20]
cmp ecx, eax
jbe 0x520910
mov ecx, dword [esp + 0x10]
mov ebp, dword [esp + 0x6c]
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x68]
mov ecx, dword [ecx + 0x24]
cmp eax, ecx
je 0x51fdd0
cmp dword [esp + 0x18], 0
je 0x5295ef
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x38]
mov dword [eax + 4], ebx
mov eax, dword [eax + 0x20]
cmp eax, ecx
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x10]
jae 0x520c04
mov edi, dword [eax + 0xc]
mov eax, dword [esp + 0x6c]
add edi, edi
mov ebp, dword [eax + 0x54]
mov eax, ebp
sub eax, edi
cmp ebx, eax
ja 0x520af3
mov eax, dword [esp + 0x10]
mov esi, edi
mov ecx, ebx
mov edx, dword [eax + 8]
sub esi, 4
jb 0x520ab1
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x520aba
add ecx, 4
add edx, 4
sub esi, 4
jae 0x520aa0
cmp esi, 0xfffffffc
je 0x520b6c
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x520af3
cmp esi, 0xfffffffd
je 0x520b6c
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x520af3
cmp esi, 0xfffffffe
je 0x520b6c
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x520af3
cmp esi, 0xffffffff
je 0x520b6c
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x520b6c
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x14]
test eax, eax
je 0x520bd0
lea edi, [eax + eax]
mov eax, ebp
sub eax, edi
cmp ebx, eax
ja 0x520bd0
mov edx, dword [esp + 0x10]
mov esi, edi
add edx, 0x32
mov ecx, ebx
sub esi, 4
jb 0x520b32
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x520b37
add ecx, 4
add edx, 4
sub esi, 4
jae 0x520b21
cmp esi, 0xfffffffc
je 0x520b6c
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x520bd0
cmp esi, 0xfffffffd
je 0x520b6c
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x520bd0
cmp esi, 0xfffffffe
je 0x520b6c
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x520bd0
cmp esi, 0xffffffff
je 0x520b6c
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x520bd0
mov eax, dword [esp + 0x10]
add ebx, edi
mov edx, dword [esp + 0x58]
inc edx
mov dword [esp + 0x58], edx
mov dword [eax + 0x38], ebx
cmp edx, dword [eax + 0x24]
jb 0x520a77
mov ebp, dword [esp + 0x6c]
jmp 0x520c04
cmp ebx, ebp
mov ebp, dword [esp + 0x6c]
jb case.default.0x527939
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x527939
mov eax, ebp
cmp ebx, dword [eax + 0x5c]
ja 0x520bb9
cmp dword [eax + 0x24], 0
je 0x52008a
mov dword [eax + 0x1c], 1
cmp ecx, 1
ja 0x5211f2
mov ebp, eax
jmp case.default.0x527939
cmp ebx, ebp
mov ebp, dword [esp + 0x6c]
jb 0x520c00
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x520c00
mov eax, ebp
cmp ebx, dword [eax + 0x5c]
ja 0x520bf0
cmp dword [eax + 0x24], 0
je 0x520c00
mov dword [eax + 0x1c], 1
cmp ecx, 1
ja 0x5211f2
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x18], 2
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x68]
je 0x51fdd0
mov ecx, dword [eax + 0x38]
jmp 0x527f54
mov eax, dword [esp + 0x10]
mov dword [eax + 0x28], edx
jmp 0x520c39
movzx edx, word [esi]
mov ecx, dword [esp + 0x10]
mov dword [eax + 0x28], edx
lea eax, [esi + 2]
mov dword [ecx], eax
mov eax, ecx
cmp byte [eax + 0x31], 0x2e
jb 0x520d91
test ebx, ebx
jne 0x520c4d
cmp dword [esp + 0x2c], ebx
je 0x520c7f
cmp edx, 0x7f
jbe 0x520c7f
mov eax, edx
shr eax, 7
movzx ecx, word [eax*2 + 0x5ab420]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5af820]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x5a7214]
add eax, edx
jmp 0x520c92
cmp edx, 0xff
ja 0x520c90
mov eax, dword [ebp + 0x2c]
movzx eax, byte [eax + edx]
jmp 0x520c92
mov eax, edx
mov ecx, dword [esp + 0x10]
mov edx, 1
mov dword [ecx + 0x2c], eax
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 0x20]
cmp esi, edx
jb 0x520ce1
mov ecx, dword [eax + 0x38]
nop dword [eax]
mov eax, dword [esp + 0x6c]
cmp ecx, dword [eax + 0x54]
jae 0x5200e3
mov ebx, dword [esp + 0x10]
movzx eax, word [ecx]
cmp dword [ebx + 0x28], eax
je 0x520cd2
cmp dword [ebx + 0x2c], eax
jne 0x52010d
mov eax, dword [esp + 0x10]
add ecx, 2
inc edx
mov dword [eax + 0x38], ecx
cmp edx, esi
jbe 0x520cb0
mov edx, dword [eax + 0x24]
mov ebp, dword [esp + 0x6c]
mov edi, dword [esp + 0x68]
cmp esi, edx
je 0x51fdc8
mov ebp, dword [esp + 0x18]
test ebp, ebp
je 0x52766f
mov ecx, dword [eax + 0x38]
mov dword [eax + 4], ecx
cmp esi, edx
jae 0x520d65
nop word [eax + eax]
mov eax, dword [esp + 0x6c]
cmp ecx, dword [eax + 0x54]
jae 0x520d3b
mov ebx, dword [esp + 0x10]
movzx eax, word [ecx]
cmp dword [ebx + 0x28], eax
je 0x520d2a
cmp dword [ebx + 0x2c], eax
jne 0x520d69
mov eax, dword [esp + 0x10]
add ecx, 2
inc esi
mov dword [eax + 0x38], ecx
cmp esi, edx
jb 0x520d10
jmp 0x520d65
movzx eax, word [eax + 0x3c]
mov edx, eax
test ax, ax
je 0x520d65
mov eax, dword [esp + 0x6c]
cmp ecx, dword [eax + 0x5c]
ja 0x520d55
cmp dword [eax + 0x24], 0
je 0x520d65
mov dword [eax + 0x1c], 1
cmp edx, 1
ja 0x5211f2
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
cmp ebp, 2
mov ebp, dword [esp + 0x6c]
je 0x51fdd0
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebx + 4]
je 0x51fdc4
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x1a
jmp 0x5299e2
mov edi, dword [eax + 0x20]
mov esi, 1
cmp edi, esi
jb 0x520dc8
mov edx, dword [eax + 0x38]
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x6c]
cmp edx, dword [eax + 0x54]
jae 0x520e15
movzx eax, word [edx]
add edx, 2
mov dword [ebx + 0x38], edx
cmp dword [ebx + 0x28], eax
jne 0x52010d
inc esi
cmp esi, edi
jbe 0x520da4
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x24]
mov ebp, dword [esp + 0x6c]
cmp edi, edx
je 0x51fdc4
mov ebp, dword [esp + 0x18]
test ebp, ebp
je 0x5276fa
mov ecx, dword [eax + 0x38]
mov dword [eax + 4], ecx
cmp edi, edx
jae 0x520e69
mov eax, dword [esp + 0x6c]
cmp ecx, dword [eax + 0x54]
jae 0x520e3f
mov ebx, dword [esp + 0x10]
movzx eax, word [ecx]
cmp dword [ebx + 0x28], eax
jne 0x520e6d
mov eax, ebx
add ecx, 2
inc edi
mov dword [eax + 0x38], ecx
cmp edi, edx
jb 0x520df1
jmp 0x520e69
movzx eax, word [eax + 0x3c]
mov ecx, eax
test ax, ax
je 0x52010d
mov eax, dword [esp + 0x6c]
cmp edx, dword [eax + 0x5c]
ja 0x520e37
cmp dword [eax + 0x24], 0
je 0x52010d
cmp ecx, 1
jmp 0x520100
movzx eax, word [eax + 0x3c]
mov edx, eax
test ax, ax
je 0x520e69
mov eax, dword [esp + 0x6c]
cmp ecx, dword [eax + 0x5c]
ja 0x520e59
cmp dword [eax + 0x24], 0
je 0x520e69
mov dword [eax + 0x1c], 1
cmp edx, 1
ja 0x5211f2
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
cmp ebp, 2
mov ebp, dword [esp + 0x6c]
mov edi, dword [esp + 0x68]
je 0x51fdd0
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebx + 4]
jbe 0x51fdc4
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x1c
jmp 0x5299e2
mov ecx, dword [esp + 0x10]
movzx eax, word [esi + 2]
add esi, 4
mov edx, esi
mov dword [ecx + 0x24], eax
mov dword [ecx + 0x20], eax
mov eax, ecx
mov dword [eax], esi
jmp 0x520fe9
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x18], 1
mov dword [eax + 0x20], 0
movzx eax, word [esi + 2]
add esi, 4
mov dword [ecx + 0x24], eax
mov edx, esi
mov eax, ecx
mov dword [eax], esi
jmp 0x520fe5
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x18], 0
mov dword [eax + 0x20], 0
movzx eax, word [esi + 2]
add esi, 4
mov dword [ecx + 0x24], eax
mov edx, esi
mov eax, ecx
mov dword [eax], esi
jmp 0x520fe5
mov eax, dword [esp + 0x10]
add esi, 2
mov dword [esp + 0x18], 2
mov edx, esi
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 0xffffffff
mov dword [eax], esi
jmp 0x520fe5
mov eax, dword [esp + 0x10]
add esi, 2
mov dword [esp + 0x18], 2
mov edx, esi
mov dword [eax + 0x20], 1
mov dword [eax + 0x24], 0xffffffff
mov dword [eax], esi
jmp 0x520fe5
mov eax, dword [esp + 0x10]
add esi, 2
mov dword [esp + 0x18], 2
mov edx, esi
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 1
mov dword [eax], esi
jmp 0x520fe5
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x18], 2
mov dword [eax + 0x20], 0
movzx eax, word [esi + 2]
add esi, 4
mov dword [ecx + 0x24], eax
mov edx, esi
mov eax, ecx
mov dword [eax], esi
jmp 0x520fe5
movzx ecx, word [esi]
cmp bl, 0x48
mov edx, dword [esp + 0x10]
sbb eax, eax
and eax, 0xfffffff3
add eax, 0x48
sub ecx, eax
mov eax, dword [esp + 0x10]
add esi, 2
mov dword [eax], esi
mov eax, dword [ecx*4 + 0x5a4350]
mov dword [edx + 0x20], eax
mov eax, dword [ecx*4 + 0x5a437c]
mov dword [edx + 0x24], eax
mov eax, dword [ecx*4 + 0x5a43a8]
mov dword [esp + 0x18], eax
mov eax, edx
mov edx, dword [eax]
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x14], 0
lea edi, [edx + 2]
movzx ecx, word [esi]
mov dword [eax + 0x28], ecx
mov esi, ecx
mov dword [eax], edi
je 0x521037
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
mov eax, dword [esp + 0x10]
jne 0x521037
movzx esi, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and esi, 0x3ff
or esi, ecx
mov ecx, dword [esp + 0x10]
add esi, 0x10000
mov dword [eax + 0x28], esi
lea eax, [edx + 4]
mov dword [ecx], eax
mov eax, ecx
cmp byte [eax + 0x31], 0x48
jb 0x521334
mov edx, dword [esp + 0x14]
test edx, edx
jne 0x52104f
cmp dword [esp + 0x2c], edx
je 0x521081
cmp esi, 0x7f
jbe 0x521081
mov eax, esi
shr eax, 7
movzx ecx, word [eax*2 + 0x5ab420]
mov eax, esi
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5af820]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x5a7214]
add eax, esi
jmp 0x521094
cmp esi, 0xff
ja 0x521092
mov eax, dword [ebp + 0x2c]
movzx eax, byte [eax + esi]
jmp 0x521094
mov eax, esi
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x2c], eax
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x20]
mov eax, ebx
test edx, edx
je 0x5211ff
mov esi, 1
cmp ebx, esi
jb 0x521127
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
jmp 0x5210c4
mov eax, dword [esp + 0x10]
cmp edx, dword [ebp + 0x54]
jae 0x5211c4
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x521109
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, dword [esp + 0x10]
add ecx, 0x10000
add edx, 2
mov dword [eax + 0x38], edx
jmp 0x52110d
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x28], ecx
je case.default.0x527939
cmp dword [eax + 0x2c], ecx
je case.default.0x527939
mov eax, dword [eax + 0x20]
inc esi
cmp esi, eax
jbe 0x5210c0
mov ecx, dword [esp + 0x10]
mov edi, dword [ecx + 0x24]
cmp eax, edi
je 0x51fdc4
cmp dword [esp + 0x18], 0
je 0x529433
mov edx, dword [esp + 0x14]
mov eax, ecx
mov ecx, dword [eax + 0x38]
mov dword [eax + 4], ecx
mov eax, dword [eax + 0x24]
test edx, edx
je 0x5212bc
cmp ebx, eax
jae 0x5212b6
mov esi, 1
cmp ecx, dword [ebp + 0x54]
jae 0x521275
movzx edx, word [ecx]
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x52119e
movzx eax, word [ecx + 2]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
mov esi, 2
add edx, 0x10000
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x28], edx
je 0x52129b
cmp dword [eax + 0x2c], edx
je 0x52129b
inc ebx
lea ecx, [ecx + esi*2]
mov dword [eax + 0x38], ecx
cmp ebx, edi
jb 0x521160
jmp 0x52129b
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x527939
cmp edx, dword [ebp + 0x5c]
ja 0x5211e2
cmp dword [ebp + 0x24], 0
je case.default.0x527939
mov dword [ebp + 0x1c], 1
cmp ecx, 1
jbe case.default.0x527939
pop edi
pop esi
pop ebp
mov eax, 0xfffffffe
pop ebx
add esp, 0x44
ret
mov edx, 1
cmp ebx, edx
jb 0x521127
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x38]
cmp ecx, dword [ebp + 0x54]
jae 0x521246
mov esi, dword [esp + 0x10]
movzx eax, word [ecx]
cmp dword [esi + 0x28], eax
je case.default.0x527939
cmp dword [esi + 0x2c], eax
je case.default.0x527939
mov eax, esi
add ecx, 2
inc edx
mov dword [eax + 0x38], ecx
mov eax, dword [eax + 0x20]
cmp edx, eax
jbe 0x521213
jmp 0x521127
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x527939
cmp ecx, dword [ebp + 0x5c]
ja 0x521264
cmp dword [ebp + 0x24], 0
je case.default.0x527939
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x5211f2
jmp case.default.0x527939
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je 0x521297
cmp ecx, dword [ebp + 0x5c]
ja 0x52128b
cmp dword [ebp + 0x24], 0
je 0x521297
mov dword [ebp + 0x1c], esi
cmp edx, 1
ja 0x5211f2
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x18], 2
mov edi, dword [esp + 0x68]
je 0x51fdd0
mov ecx, dword [eax + 0x38]
jmp 0x52803d
mov eax, dword [esp + 0x10]
jmp 0x52129f
cmp ebx, eax
jae 0x52132e
cmp ecx, dword [ebp + 0x54]
jae 0x5212e5
mov edx, dword [esp + 0x10]
movzx eax, word [ecx]
cmp dword [edx + 0x28], eax
je 0x52130b
cmp dword [edx + 0x2c], eax
mov eax, edx
je 0x52130f
add ecx, 2
inc ebx
mov dword [eax + 0x38], ecx
cmp ebx, edi
jb 0x5212c0
jmp 0x52130f
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je 0x52130b
cmp ecx, dword [ebp + 0x5c]
ja 0x5212fb
cmp dword [ebp + 0x24], 0
je 0x52130b
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x5211f2
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x18], 2
mov edi, dword [esp + 0x68]
je 0x51fdd0
mov eax, dword [eax + 0x38]
mov ebx, dword [esp + 0x10]
jmp 0x5277a3
mov eax, dword [esp + 0x10]
jmp 0x521313
cmp dword [esp + 0x14], 0
mov esi, 1
mov ebx, dword [eax + 0x20]
mov eax, ebx
je 0x52148e
cmp ebx, esi
jb 0x5213be
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
jmp 0x521364
mov eax, dword [esp + 0x10]
cmp edx, dword [ebp + 0x54]
jae 0x52145b
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5213a9
movzx eax, word [edx]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
mov eax, dword [esp + 0x10]
add ecx, 0x10000
add edx, 2
mov dword [eax + 0x38], edx
jmp 0x5213ad
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x28], ecx
je case.default.0x527939
mov eax, dword [eax + 0x20]
inc esi
cmp esi, eax
jbe 0x521360
mov ecx, dword [esp + 0x10]
mov edi, dword [ecx + 0x24]
cmp eax, edi
je 0x51fdc4
mov esi, dword [esp + 0x18]
test esi, esi
je 0x52944d
mov edx, dword [esp + 0x14]
mov eax, ecx
mov ecx, dword [eax + 0x38]
mov dword [eax + 4], ecx
mov eax, dword [eax + 0x24]
test edx, edx
je 0x52153b
cmp ebx, eax
jae 0x521523
nop dword [eax + eax]
mov esi, 1
cmp ecx, dword [ebp + 0x54]
jae 0x5214fd
movzx edx, word [ecx]
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x52143e
movzx eax, word [ecx + 2]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
mov esi, 2
add edx, 0x10000
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x28], edx
je 0x52151f
inc ebx
lea ecx, [ecx + esi*2]
mov dword [eax + 0x38], ecx
cmp ebx, edi
jb 0x521400
jmp 0x52151f
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x527939
cmp edx, dword [ebp + 0x5c]
ja 0x521479
cmp dword [ebp + 0x24], 0
je case.default.0x527939
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5211f2
jmp case.default.0x527939
cmp ebx, 1
jb 0x5213be
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
nop
cmp edx, dword [ebp + 0x54]
jae 0x5214ca
mov edi, dword [esp + 0x10]
movzx eax, word [edx]
add edx, 2
mov dword [edi + 0x38], edx
cmp dword [edi + 0x28], eax
mov eax, edi
je 0x52024c
mov eax, dword [eax + 0x20]
inc esi
cmp esi, eax
jbe 0x5214a0
jmp 0x5213be
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x527939
cmp edx, dword [ebp + 0x5c]
ja 0x5214e8
cmp dword [ebp + 0x24], 0
je case.default.0x527939
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5211f2
jmp case.default.0x527939
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je 0x52151f
cmp ecx, dword [ebp + 0x5c]
ja 0x521513
cmp dword [ebp + 0x24], 0
je 0x52151f
mov dword [ebp + 0x1c], esi
cmp edx, 1
ja 0x5211f2
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x18], 2
mov edi, dword [esp + 0x68]
je 0x51fdd0
mov ebx, dword [esp + 0x10]
jmp 0x528117
cmp ebx, eax
jae 0x5215a7
nop
cmp ecx, dword [ebp + 0x54]
jae 0x521560
mov edx, dword [esp + 0x10]
movzx eax, word [ecx]
cmp dword [edx + 0x28], eax
mov eax, edx
je 0x52158a
add ecx, 2
inc ebx
mov dword [eax + 0x38], ecx
cmp ebx, edi
jb 0x521540
jmp 0x52158a
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je 0x521586
cmp ecx, dword [ebp + 0x5c]
ja 0x521576
cmp dword [ebp + 0x24], 0
je 0x521586
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x5211f2
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x68]
cmp esi, 2
je 0x51fdd0
mov eax, dword [eax + 0x38]
mov ebx, dword [esp + 0x10]
jmp 0x527836
mov eax, dword [esp + 0x10]
jmp 0x52158e
mov ecx, dword [esp + 0x10]
lea eax, [esi + 2]
add esi, 0x22
mov dword [ecx + 8], eax
mov eax, ecx
mov dword [eax], esi
movzx ecx, word [esi]
lea eax, [ecx - 0x62]
cmp eax, 0xb
ja case.default.0x5215d4
movzx eax, byte [eax + 0x529f98]
jmp dword [eax*4 + 0x529f90]
mov edx, dword [esp + 0x10]
lea eax, [esi + 2]
mov edi, dword [esp + 0x10]
mov ebx, dword [ecx*4 + 0x5a4220]
mov dword [esp + 0x18], ebx
mov dword [edx], eax
mov eax, dword [esp + 0x10]
mov edx, dword [ecx*4 + 0x5a41c8]
mov dword [eax + 0x20], edx
mov eax, dword [ecx*4 + 0x5a41f4]
mov dword [edi + 0x24], eax
jmp 0x521659
mov eax, dword [esp + 0x10]
mov ecx, 0xffffffff
movzx edx, word [esi + 2]
mov dword [eax + 0x20], edx
movzx eax, word [esi + 4]
test eax, eax
cmove eax, ecx
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x24], eax
movzx eax, word [esi]
mov eax, dword [eax*4 + 0x5a4220]
mov dword [esp + 0x18], eax
lea eax, [esi + 6]
mov dword [ecx], eax
jmp 0x521659
mov eax, dword [esp + 0x10]
mov edx, 1
mov dword [eax + 0x24], 1
mov dword [eax + 0x20], 1
cmp dword [esp + 0x14], 0
mov ebx, 1
mov dword [esp + 0x58], edx
mov eax, edx
je 0x521744
cmp edx, ebx
jb 0x5217d6
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x38]
nop
cmp edi, dword [ebp + 0x54]
jae 0x521711
movzx esi, word [edi]
add edi, 2
mov dword [eax + 0x38], edi
mov eax, esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5216c5
movzx eax, word [edi]
and esi, 0x3ff
and eax, 0x3ff
shl esi, 0xa
or esi, eax
mov eax, dword [esp + 0x10]
add esi, 0x10000
add edi, 2
mov dword [eax + 0x38], edi
jmp 0x5216c9
mov eax, dword [esp + 0x10]
cmp esi, 0xff
jbe 0x5216dd
cmp byte [eax + 0x31], 0x6e
je case.default.0x527939
jmp 0x5216fc
mov eax, dword [eax + 8]
mov ecx, esi
and ecx, 7
shr esi, 3
mov edx, 1
shl edx, cl
test byte [esi + eax], dl
mov eax, dword [esp + 0x10]
je 0x52024c
mov eax, dword [eax + 0x20]
inc ebx
cmp ebx, eax
ja 0x5217d6
mov eax, dword [esp + 0x10]
jmp 0x521680
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x527939
cmp edi, dword [ebp + 0x5c]
ja 0x52172f
cmp dword [ebp + 0x24], 0
je case.default.0x527939
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5211f2
jmp case.default.0x527939
cmp edx, 1
jb 0x5217d6
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x38]
cmp edi, dword [ebp + 0x54]
jae 0x5217a3
movzx esi, word [edi]
add edi, 2
mov dword [eax + 0x38], edi
cmp esi, 0xff
jbe 0x521776
cmp byte [eax + 0x31], 0x6e
je case.default.0x527939
jmp 0x521795
mov eax, dword [eax + 8]
mov ecx, esi
and ecx, 7
shr esi, 3
mov edx, 1
shl edx, cl
test byte [esi + eax], dl
mov eax, dword [esp + 0x10]
je 0x52024c
mov eax, dword [eax + 0x20]
inc ebx
cmp ebx, eax
ja 0x5217d6
mov eax, dword [esp + 0x10]
jmp 0x521754
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x527939
cmp edi, dword [ebp + 0x5c]
ja 0x5217c1
cmp dword [ebp + 0x24], 0
je case.default.0x527939
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5211f2
jmp case.default.0x527939
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x68]
mov ebp, dword [ebx + 0x24]
cmp eax, ebp
je 0x51fdb8
cmp dword [esp + 0x18], 0
je 0x529467
mov edx, dword [esp + 0x14]
mov eax, ebx
mov edi, dword [eax + 0x38]
mov dword [eax + 4], edi
mov eax, dword [eax + 0x24]
test edx, edx
je 0x5218f0
cmp dword [esp + 0x58], eax
jae 0x5218ea
nop word [eax + eax]
mov eax, dword [esp + 0x6c]
mov ebx, 1
cmp edi, dword [eax + 0x54]
jae 0x5218c4
movzx esi, word [edi]
mov eax, esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x521862
movzx eax, word [edi + 2]
and esi, 0x3ff
and eax, 0x3ff
shl esi, 0xa
or esi, eax
mov ebx, 2
add esi, 0x10000
mov eax, dword [esp + 0x10]
cmp esi, 0xff
jbe 0x521890
cmp byte [eax + 0x31], 0x6e
jne 0x5218ab
mov ebp, dword [esp + 0x6c]
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x18], 2
jne 0x5295d6
mov edi, dword [esp + 0x68]
jmp 0x51fdd0
mov eax, dword [eax + 8]
mov ecx, esi
and ecx, 7
shr esi, 3
mov edx, 1
shl edx, cl
test byte [esi + eax], dl
je 0x521874
mov eax, dword [esp + 0x10]
lea edi, [edi + ebx*2]
mov dword [eax + 0x38], edi
mov eax, dword [esp + 0x58]
inc eax
mov dword [esp + 0x58], eax
cmp eax, ebp
jb 0x521820
jmp 0x521874
mov ebp, eax
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x521878
cmp edi, dword [ebp + 0x5c]
ja 0x5218dc
cmp dword [ebp + 0x24], 0
je 0x521878
mov dword [ebp + 0x1c], ebx
cmp ecx, 1
ja 0x5211f2
jmp 0x521878
mov ebp, dword [esp + 0x6c]
jmp 0x52187c
mov ebx, dword [esp + 0x58]
cmp ebx, eax
jae 0x52198e
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x6c]
cmp edi, dword [ecx + 0x54]
jae 0x521962
movzx esi, word [edi]
cmp esi, 0xff
jbe 0x521936
cmp byte [eax + 0x31], 0x6e
jne 0x521955
mov ebp, dword [esp + 0x6c]
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x18], 2
jne 0x5275e5
mov edi, dword [esp + 0x68]
jmp 0x51fdd0
mov eax, dword [eax + 8]
mov ecx, esi
and ecx, 7
shr esi, 3
mov edx, 1
shl edx, cl
test byte [esi + eax], dl
je 0x52191a
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x6c]
add edi, 2
inc ebx
mov dword [eax + 0x38], edi
cmp ebx, ebp
jb 0x521904
jmp 0x52191a
mov ebp, dword [esp + 0x6c]
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x52191e
cmp edi, dword [ebp + 0x5c]
ja 0x52197c
cmp dword [ebp + 0x24], 0
je 0x52191e
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5211f2
jmp 0x52191e
mov ebp, dword [esp + 0x6c]
jmp 0x521922
mov ecx, dword [esp + 0x10]
lea eax, [esi + 4]
mov dword [ecx + 8], eax
movzx eax, word [esi + 2]
lea edx, [esi + eax*2]
mov eax, ecx
mov dword [eax], edx
movzx edi, word [edx]
lea eax, [edi - 0x62]
cmp eax, 0xb
ja case.default.0x5219bf
movzx eax, byte [eax + 0x529fac]
jmp dword [eax*4 + 0x529fa4]
mov ecx, dword [esp + 0x10]
lea eax, [edx + 2]
mov esi, dword [edi*4 + 0x5a41f4]
mov dword [ecx], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [edi*4 + 0x5a41c8]
lea ebx, [eax + 0x24]
mov dword [eax + 0x20], ecx
mov eax, dword [edi*4 + 0x5a4220]
mov dword [ebx], esi
mov dword [esp + 0x18], eax
jmp 0x521a2e
mov eax, dword [esp + 0x10]
movzx ecx, word [edx + 2]
lea ebx, [eax + 0x24]
mov dword [eax + 0x20], ecx
movzx esi, word [edx + 4]
mov dword [ebx], esi
test esi, esi
jne 0x521a17
mov dword [ebx], 0xffffffff
or esi, 0xffffffff
movzx eax, word [edx]
mov eax, dword [eax*4 + 0x5a4220]
mov dword [esp + 0x18], eax
lea eax, [edx + 6]
mov edx, dword [esp + 0x10]
mov dword [edx], eax
mov eax, dword [esp + 0x10]
mov edi, ebx
cmp ecx, 1
jb 0x521adc
mov esi, 1
jmp 0x521a65
mov eax, dword [esp + 0x10]
mov esi, 1
lea ebx, [eax + 0x24]
mov dword [ebx], 1
mov edi, ebx
mov dword [eax + 0x20], 1
jmp 0x521a65
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jae 0x521bbf
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], edx
je 0x521ab6
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x521ab2
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x10]
add ecx, 0x10000
mov dword [edx + 0x38], eax
mov eax, dword [esp + 0x10]
push dword [esp + 0x14]
push dword [eax + 8]
push ecx
call fcn.005377a0
add esp, 0xc
test eax, eax
mov eax, dword [esp + 0x10]
je 0x52024c
mov ecx, dword [eax + 0x20]
inc esi
cmp esi, ecx
jbe 0x521a61
mov esi, dword [edi]
mov edi, dword [esp + 0x68]
cmp ecx, esi
je 0x51fdc8
cmp dword [esp + 0x18], 0
je 0x5295c7
mov edx, dword [eax + 0x38]
mov dword [eax + 4], edx
mov edi, dword [eax + 0x20]
cmp edi, esi
jae 0x521ba5
jmp 0x521b14
mov eax, dword [esp + 0x10]
mov esi, 1
cmp edx, dword [ebp + 0x54]
jae 0x521b83
cmp dword [esp + 0x14], 0
movzx ecx, word [edx]
je 0x521b59
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x521b55
movzx eax, word [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov esi, 2
add ecx, 0x10000
mov eax, dword [esp + 0x10]
push dword [esp + 0x14]
push dword [eax + 8]
push ecx
call fcn.005377a0
add esp, 0xc
test eax, eax
je 0x521ba5
mov ecx, dword [esp + 0x10]
lea eax, [esi + esi]
inc edi
add dword [ecx + 0x38], eax
mov eax, ecx
mov edx, dword [eax + 0x38]
cmp edi, dword [ebx]
jb 0x521b10
jmp 0x521ba5
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x521ba5
cmp edx, dword [ebp + 0x5c]
ja 0x521b99
cmp dword [ebp + 0x24], 0
je 0x521ba5
mov dword [ebp + 0x1c], esi
cmp ecx, 1
ja 0x5211f2
cmp dword [esp + 0x18], 2
je 0x51fdc4
mov ebx, dword [esp + 0x10]
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x65
jmp 0x5299e2
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x527939
cmp edx, dword [ebp + 0x5c]
ja 0x521bdd
cmp dword [ebp + 0x24], 0
je case.default.0x527939
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5211f2
jmp case.default.0x527939
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x521c31
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x527939
cmp edx, dword [ebp + 0x5c]
ja 0x521c1c
cmp dword [ebp + 0x24], 0
je case.default.0x527939
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5211f2
jmp case.default.0x527939
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], edx
je 0x521c74
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x521c74
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x10]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x521c78
mov edx, dword [esp + 0x10]
cmp ecx, 0xff
ja case.0x5221e7.8203
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 8
je case.0x5221e7.8203
jmp case.default.0x527939
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x521cd5
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x527939
cmp edx, dword [ebp + 0x5c]
ja 0x521cc0
cmp dword [ebp + 0x24], 0
je case.default.0x527939
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5211f2
jmp case.default.0x527939
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], edx
je 0x521d18
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x521d18
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x10]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x521d1c
mov edx, dword [esp + 0x10]
cmp ecx, 0xff
ja case.default.0x527939
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 8
je case.default.0x527939
lea eax, [esi + 2]
mov dword [edx], eax
jmp 0x51fdc8
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x521d7e
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x527939
cmp edx, dword [ebp + 0x5c]
ja 0x521d69
cmp dword [ebp + 0x24], 0
je case.default.0x527939
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5211f2
jmp case.default.0x527939
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], edx
je 0x521dc1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x521dc1
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x10]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x521dc5
mov edx, dword [esp + 0x10]
cmp ecx, 0xff
ja case.0x5221e7.8203
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 1
je case.0x5221e7.8203
jmp case.default.0x527939
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x521e22
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x527939
cmp edx, dword [ebp + 0x5c]
ja 0x521e0d
cmp dword [ebp + 0x24], 0
je case.default.0x527939
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5211f2
jmp case.default.0x527939
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], edx
je 0x521e65
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x521e65
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x10]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x521e69
mov edx, dword [esp + 0x10]
cmp ecx, 0xff
ja case.default.0x527939
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 1
je case.default.0x527939
lea eax, [esi + 2]
mov dword [edx], eax
jmp 0x51fdc8
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x521ecb
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x527939
cmp edx, dword [ebp + 0x5c]
ja 0x521eb6
cmp dword [ebp + 0x24], 0
je case.default.0x527939
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5211f2
jmp case.default.0x527939
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], edx
je 0x521f0e
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x521f0e
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x10]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x521f12
mov edx, dword [esp + 0x10]
cmp ecx, 0xff
ja case.0x5221e7.8203
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 0x10
je case.0x5221e7.8203
jmp case.default.0x527939
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x521f6f
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x527939
cmp edx, dword [ebp + 0x5c]
ja 0x521f5a
cmp dword [ebp + 0x24], 0
je case.default.0x527939
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5211f2
jmp case.default.0x527939
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], edx
je 0x521fb2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x521fb2
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x10]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x521fb6
mov edx, dword [esp + 0x10]
cmp ecx, 0xff
ja case.default.0x527939
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 0x10
je case.default.0x527939
lea eax, [esi + 2]
mov dword [edx], eax
jmp 0x51fdc8
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x522018
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x527939
cmp edx, dword [ebp + 0x5c]
ja 0x522003
cmp dword [ebp + 0x24], 0
je case.default.0x527939
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5211f2
jmp case.default.0x527939
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov esi, edx
mov dword [eax + 0x38], edx
je 0x52205b
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x52205b
movzx eax, word [edx]
lea esi, [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, dword [esp + 0x10]
add ecx, 0x10000
mov dword [eax + 0x38], esi
cmp ecx, 0x85
ja 0x5220cd
je case.0x522075.11
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x527939
jmp dword [ecx*4 + 0x529fb8]
cmp esi, dword [ebp + 0x54]
jb 0x5220b3
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.0x522075.10
cmp esi, dword [ebp + 0x5c]
ja 0x522097
cmp dword [ebp + 0x24], 0
je case.0x522075.10
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5211f2
mov eax, dword [esp + 0x10]
add dword [eax], 2
jmp 0x51fdc8
cmp word [esi], 0xa
jne case.0x522075.10
mov ecx, dword [esp + 0x10]
lea eax, [esi + 2]
mov dword [ecx + 0x38], eax
mov eax, ecx
add dword [eax], 2
jmp 0x51fdc8
sub ecx, 0x2028
je case.0x522075.11
sub ecx, 1
jne case.default.0x527939
cmp word [ebp + 0x3e], 2
je case.default.0x527939
mov eax, dword [esp + 0x10]
add dword [eax], 2
jmp 0x51fdc8
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x522134
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x527939
cmp edx, dword [ebp + 0x5c]
ja 0x52211f
cmp dword [ebp + 0x24], 0
je case.default.0x527939
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5211f2
jmp case.default.0x527939
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], edx
je 0x522177
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x522177
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x10]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x52217b
mov edx, dword [esp + 0x10]
cmp ecx, 0x2000
ja 0x5221bf
je case.default.0x527939
cmp ecx, 0xa0
ja 0x5221a8
je case.default.0x527939
cmp ecx, 9
je case.default.0x527939
cmp ecx, 0x20
jmp 0x521d2f
cmp ecx, 0x1680
je case.default.0x527939
cmp ecx, 0x180e
jmp 0x521d2f
cmp ecx, 0x3000
ja case.0x5221e7.8203
je case.default.0x527939
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x5221e7.8203
movzx eax, byte [ecx + 0x529fd0]
jmp dword [eax*4 + 0x529fc8]
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x52222d
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x527939
cmp edx, dword [ebp + 0x5c]
ja 0x522218
cmp dword [ebp + 0x24], 0
je case.default.0x527939
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5211f2
jmp case.default.0x527939
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], edx
je 0x522270
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x522270
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x10]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x522274
mov edx, dword [esp + 0x10]
cmp ecx, 0x2000
ja 0x5222c4
je case.0x5221e7.8203
cmp ecx, 0xa0
ja 0x5222a7
je case.0x5221e7.8203
cmp ecx, 9
je case.0x5221e7.8203
cmp ecx, 0x20
je case.0x5221e7.8203
jmp case.default.0x527939
cmp ecx, 0x1680
je case.0x5221e7.8203
cmp ecx, 0x180e
je case.0x5221e7.8203
jmp case.default.0x527939
cmp ecx, 0x3000
ja case.default.0x527939
je case.0x5221e7.8203
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.default.0x527939
movzx eax, byte [ecx + 0x52a038]
jmp dword [eax*4 + 0x52a030]
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x522332
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x527939
cmp edx, dword [ebp + 0x5c]
ja 0x52231d
cmp dword [ebp + 0x24], 0
je case.default.0x527939
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5211f2
jmp case.default.0x527939
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], edx
je 0x522375
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x522375
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x10]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x522379
mov edx, dword [esp + 0x10]
cmp ecx, 0x85
ja 0x52239a
je case.default.0x527939
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x5221e7.8203
jmp dword [ecx*4 + 0x52a098]
sub ecx, 0x2028
je case.default.0x527939
sub ecx, 1
jne case.0x5221e7.8203
jmp case.default.0x527939
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x5223f3
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x527939
cmp edx, dword [ebp + 0x5c]
ja 0x5223de
cmp dword [ebp + 0x24], 0
je case.default.0x527939
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5211f2
jmp case.default.0x527939
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], edx
je 0x522436
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x522436
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x10]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x52243a
mov edx, dword [esp + 0x10]
cmp ecx, 0x85
ja 0x52245b
je case.0x5221e7.8203
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x527939
jmp dword [ecx*4 + 0x52a0a8]
sub ecx, 0x2028
je case.0x5221e7.8203
sub ecx, 1
je case.0x5221e7.8203
jmp case.default.0x527939
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x38]
cmp ecx, dword [ebp + 0x54]
jb 0x5224b4
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x527939
cmp ecx, dword [ebp + 0x5c]
ja 0x52249f
cmp dword [ebp + 0x24], 0
je case.default.0x527939
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x5211f2
jmp case.default.0x527939
movzx edx, word [ecx]
add ecx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], ecx
je 0x5224f5
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5224f5
movzx eax, word [ecx]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
lea eax, [ecx + 2]
mov ecx, dword [esp + 0x10]
add edx, 0x10000
mov dword [ecx + 0x38], eax
mov eax, edx
xor ebx, ebx
shr eax, 7
movzx ecx, word [eax*2 + 0x5ab420]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5af820]
mov cl, byte [esp + 0x58]
cmp cl, 0xf
lea edi, [eax + eax*2]
sete bl
movzx eax, word [esi + 2]
cmp eax, 0xd
ja case.0x52791c.15
jmp dword [eax*4 + 0x52a0b8]
cmp cl, 0xf
je case.default.0x527939
mov eax, dword [esp + 0x10]
add dword [eax], 6
jmp 0x51fdc4
mov al, byte [edi*4 + 0x5a7211]
cmp al, 9
je 0x522563
cmp al, 5
je 0x522563
cmp al, 8
je 0x522563
xor eax, eax
jmp 0x522568
mov eax, 1
cmp eax, ebx
jne 0x522540
jmp case.default.0x527939
movzx ecx, byte [edi*4 + 0x5a7211]
xor edx, edx
movzx eax, word [esi + 4]
cmp eax, dword [ecx*4 + 0x5a4cb0]
sete dl
cmp edx, ebx
jne 0x522540
jmp case.default.0x527939
movzx eax, byte [edi*4 + 0x5a7211]
xor ecx, ecx
cmp word [esi + 4], ax
sete cl
cmp ecx, ebx
jne 0x522540
jmp case.default.0x527939
movzx eax, byte [edi*4 + 0x5a7210]
jmp 0x52259a
movzx ecx, word [esi + 4]
movzx eax, byte [edi*4 + 0x5a7210]
cmp cx, ax
je 0x522563
movzx edx, word [edi*4 + 0x5a7218]
mov eax, ecx
shr eax, 5
and edx, 0x3ff
add edx, eax
and ecx, 0x1f
mov eax, 1
shl eax, cl
test dword [edx*4 + 0x5a6f18], eax
jne 0x522563
xor eax, eax
jmp 0x522568
movzx eax, byte [edi*4 + 0x5a7211]
mov eax, dword [eax*4 + 0x5a4cb0]
cmp eax, 1
je 0x522563
cmp eax, 3
je 0x522563
xor eax, eax
jmp 0x522568
cmp edx, 0x20
ja 0x52263c
je case.0x522530.0
add edx, 0xfffffff7
cmp edx, 4
ja case.0x5226ac.8203
jmp dword [edx*4 + 0x52a0f0]
cmp edx, 0x2000
ja 0x52268c
je case.0x522530.0
cmp edx, 0x1680
ja 0x522684
je case.0x522530.0
sub edx, 0x85
je case.0x522530.0
sub edx, 0x1b
je case.0x522530.0
movzx eax, byte [edi*4 + 0x5a7211]
xor ecx, ecx
cmp dword [eax*4 + 0x5a4cb0], 6
jmp 0x5225a0
cmp edx, 0x180e
jmp 0x522667
cmp edx, 0x3000
ja case.0x5226ac.8203
je case.0x522530.0
add edx, 0xffffdfff
cmp edx, 0x5e
ja case.0x5226ac.8203
movzx eax, byte [edx + 0x52a10c]
jmp dword [eax*4 + 0x52a104]
movzx eax, byte [edi*4 + 0x5a7211]
mov eax, dword [eax*4 + 0x5a4cb0]
cmp eax, 1
je 0x522563
cmp eax, 3
je 0x522563
cmp edx, 0x5f
je 0x522563
xor eax, eax
jmp 0x522568
movzx eax, word [esi + 4]
mov ecx, dword [eax*4 + 0x5a6c48]
lea eax, [eax*4 + 0x5a6c48]
cmp edx, ecx
jb 0x52270d
nop word [eax + eax]
lea eax, [eax + 4]
cmp edx, ecx
je 0x52271d
mov ecx, dword [eax]
cmp edx, ecx
jae 0x522700
cmp byte [esp + 0x58], 0xf
je 0x522540
jmp case.default.0x527939
cmp byte [esp + 0x58], 0xf
jne 0x522540
jmp case.default.0x527939
cmp edx, 0x24
je 0x522563
cmp edx, 0x40
je 0x522563
cmp edx, 0x60
je 0x522563
cmp edx, 0xa0
jb 0x52275c
cmp edx, 0xd7ff
jbe 0x522563
cmp edx, 0xe000
jae 0x522563
xor eax, eax
jmp 0x522568
mov ax, word [edi*4 + 0x5a7218]
xor ecx, ecx
shr ax, 0xb
cmp ax, word [esi + 4]
jmp 0x5225a0
movzx ecx, word [esi + 4]
movzx edx, word [edi*4 + 0x5a721a]
mov eax, ecx
shr eax, 5
and edx, 0xfff
add edx, eax
and ecx, 0x1f
mov eax, 1
shl eax, cl
mov ecx, dword [edx*4 + 0x5a66c0]
and ecx, eax
neg ecx
sbb ecx, ecx
neg ecx
jmp 0x5225a3
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x5227fc
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x527939
cmp edx, dword [ebp + 0x5c]
ja 0x5227e7
cmp dword [ebp + 0x24], 0
je case.default.0x527939
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5211f2
jmp case.default.0x527939
movzx ecx, word [edx]
add edx, 2
mov ebx, dword [esp + 0x14]
mov esi, edx
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x522840
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x522840
movzx eax, word [edx]
lea esi, [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, dword [esp + 0x10]
add ecx, 0x10000
mov dword [eax + 0x38], esi
push 0
push ebx
push dword [ebp + 0x54]
push dword [ebp + 0x4c]
push esi
push ecx
call fcn.00536eb0
mov ecx, dword [esp + 0x28]
add esp, 0x18
mov dword [ecx + 0x38], eax
cmp eax, dword [ebp + 0x54]
jb 0x522885
movzx ecx, word [ebp + 0x3c]
mov edx, ecx
test cx, cx
je 0x522885
cmp eax, dword [ebp + 0x5c]
ja 0x522875
cmp dword [ebp + 0x24], 0
je 0x522885
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x5211f2
mov eax, dword [esp + 0x10]
mov edx, ebx
add dword [eax], 2
jmp 0x51fdd0
mov eax, dword [esp + 0x10]
movzx ebp, word [esi + 2]
add esi, 4
mov ecx, esi
mov dword [eax + 0x24], ebp
mov dword [eax + 0x20], ebp
mov dword [eax], esi
jmp 0x5229ae
mov ecx, dword [esp + 0x10]
xor ebx, ebx
mov dword [ecx + 0x20], 0
movzx eax, word [esi + 2]
mov dword [ecx + 0x24], eax
mov eax, ecx
cmp word [esi], 0x5c
setne bl
add esi, 4
mov dword [esp + 0x18], ebx
mov ecx, esi
mov dword [eax], esi
xor ebp, ebp
jmp 0x5229ae
mov eax, dword [esp + 0x10]
add esi, 2
mov dword [esp + 0x18], 2
mov ecx, esi
xor ebp, ebp
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 0xffffffff
mov dword [eax], esi
jmp 0x5229ae
mov eax, dword [esp + 0x10]
add esi, 2
mov dword [esp + 0x18], 2
mov ecx, esi
mov ebp, 1
mov dword [eax + 0x20], 1
mov dword [eax + 0x24], 0xffffffff
mov dword [eax], esi
jmp 0x5229ae
mov eax, dword [esp + 0x10]
add esi, 2
mov dword [esp + 0x18], 2
mov ecx, esi
xor ebp, ebp
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 1
mov dword [eax], esi
jmp 0x5229ae
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x18], 2
mov dword [ecx + 0x20], 0
movzx eax, word [esi + 2]
add esi, 4
mov dword [ecx + 0x24], eax
xor ebp, ebp
mov eax, ecx
mov ecx, esi
mov dword [eax], esi
jmp 0x5229ae
movzx ecx, word [esi]
add esi, 2
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x10]
mov ebp, dword [ecx*4 + 0x5a41fc]
mov dword [eax], esi
mov dword [eax + 0x20], ebp
mov eax, dword [ecx*4 + 0x5a4228]
mov dword [edx + 0x24], eax
mov eax, dword [ecx*4 + 0x5a4254]
mov dword [esp + 0x18], eax
mov eax, edx
mov ecx, dword [eax]
mov edi, dword [esp + 0x10]
add ecx, 2
movzx eax, word [esi]
mov edx, eax
mov dword [edi + 0x28], eax
mov eax, edi
mov dword [eax], ecx
cmp edx, 0x10
je 0x5229d0
cmp edx, 0xf
je 0x5229d0
or edx, 0xffffffff
jmp 0x5229ec
movzx edx, word [ecx]
add ecx, 2
mov ebx, dword [esp + 0x10]
mov dword [eax], ecx
movzx eax, word [ecx]
mov dword [ebx + 0x2c], eax
lea eax, [ecx + 2]
mov dword [ebx], eax
mov eax, ebx
mov ebp, dword [ebx + 0x20]
mov dword [esp + 0x5c], edx
test ebp, ebp
je 0x522b51
mov edi, dword [eax + 0x28]
test edx, edx
js 0x52367b
xor ebx, ebx
cmp edi, 0xf
sete bl
cmp edx, 0xd
ja case.0x52791c.15
jmp dword [edx*4 + 0x52a16c]
cmp edi, 0xf
je 0x52010d
mov ecx, dword [eax + 0x38]
mov esi, 1
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x6c]
cmp ecx, dword [eax + 0x54]
jae 0x522a6c
movzx edx, word [ecx]
lea eax, [ecx + 2]
mov dword [ebx + 0x38], eax
mov ecx, eax
test edi, edi
je 0x522a60
and edx, 0xfc00
cmp edx, 0xd800
jne 0x522a60
lea ecx, [eax + 2]
mov dword [ebx + 0x38], ecx
inc esi
cmp esi, ebp
jbe 0x522a34
mov esi, edi
jmp 0x522b59
mov ebp, eax
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je 0x522a94
cmp ecx, dword [ebp + 0x5c]
ja 0x522a84
cmp dword [ebp + 0x24], 0
je 0x522a94
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x5211f2
mov eax, dword [esp + 0x10]
xor esi, esi
mov edx, edi
jmp 0x52011b
mov esi, dword [eax + 0x38]
mov edi, 1
jmp 0x522ab4
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x6c]
cmp esi, dword [ecx + 0x54]
jae 0x522ba7
cmp dword [esp + 0x14], 0
lea edx, [esi + 2]
movzx ecx, word [esi]
mov esi, edx
mov dword [eax + 0x38], edx
je 0x522b04
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x522b04
movzx eax, word [edx]
lea esi, [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, dword [esp + 0x10]
add ecx, 0x10000
mov dword [eax + 0x38], esi
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ab420]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5af820]
lea eax, [eax + eax*2]
mov al, byte [eax*4 + 0x5a7211]
cmp al, 9
je 0x522b3b
cmp al, 5
je 0x522b3b
cmp al, 8
je 0x522b3b
xor eax, eax
jmp 0x522b40
mov eax, 1
cmp eax, ebx
je 0x52010d
inc edi
cmp edi, ebp
jbe 0x522ab0
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
mov edi, dword [ebx + 0x20]
mov ebp, dword [ebx + 0x24]
mov dword [esp + 0x58], edi
cmp edi, ebp
je 0x52050d
cmp dword [esp + 0x18], 0
mov ecx, dword [esp + 0x5c]
je 0x52947d
mov esi, dword [ebx + 0x38]
mov dword [ebx + 4], esi
mov ebx, dword [ebx + 0x28]
test ecx, ecx
js 0x52530a
xor eax, eax
cmp ebx, 0xf
sete al
mov dword [esp + 0x5c], eax
cmp ecx, 0xd
ja case.0x52791c.15
jmp dword [ecx*4 + 0x52a1a4]
mov ebp, ecx
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x527939
cmp esi, dword [ebp + 0x5c]
ja 0x522bc7
cmp dword [ebp + 0x24], 0
je case.default.0x527939
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5211f2
jmp case.default.0x527939
mov esi, dword [eax + 0x38]
mov edi, 1
jmp 0x522bf4
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x6c]
cmp esi, dword [ecx + 0x54]
jae 0x522c95
cmp dword [esp + 0x14], 0
lea edx, [esi + 2]
movzx ecx, word [esi]
mov esi, edx
mov dword [eax + 0x38], edx
je 0x522c44
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x522c44
movzx eax, word [edx]
lea esi, [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, dword [esp + 0x10]
add ecx, 0x10000
mov dword [eax + 0x38], esi
mov edx, dword [esp + 0x10]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, word [eax*2 + 0x5ab420]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5af820]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5a7211]
mov eax, dword [eax*4 + 0x5a4cb0]
cmp eax, dword [edx + 0x2c]
sete cl
cmp ecx, ebx
je 0x52010d
inc edi
cmp edi, ebp
jbe 0x522bf0
jmp 0x522b51
mov ebp, ecx
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x527939
cmp esi, dword [ebp + 0x5c]
ja 0x522cb5
cmp dword [ebp + 0x24], 0
je case.default.0x527939
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5211f2
jmp case.default.0x527939
mov esi, dword [eax + 0x38]
mov edi, 1
jmp 0x522cd8
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x6c]
cmp esi, dword [ecx + 0x54]
jae 0x522d72
cmp dword [esp + 0x14], 0
lea edx, [esi + 2]
movzx ecx, word [esi]
mov esi, edx
mov dword [eax + 0x38], edx
je 0x522d28
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x522d28
movzx eax, word [edx]
lea esi, [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, dword [esp + 0x10]
add ecx, 0x10000
mov dword [eax + 0x38], esi
mov edx, dword [esp + 0x10]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, word [eax*2 + 0x5ab420]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5af820]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5a7211]
cmp eax, dword [edx + 0x2c]
sete cl
cmp ecx, ebx
je 0x52010d
inc edi
cmp edi, ebp
jbe 0x522cd4
jmp 0x522b51
mov ebp, ecx
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x527939
cmp esi, dword [ebp + 0x5c]
ja 0x522d92
cmp dword [ebp + 0x24], 0
je case.default.0x527939
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5211f2
jmp case.default.0x527939
mov esi, dword [eax + 0x38]
mov edi, 1
jmp 0x522db5
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x6c]
cmp esi, dword [ecx + 0x54]
jae 0x522e4f
cmp dword [esp + 0x14], 0
lea edx, [esi + 2]
movzx ecx, word [esi]
mov esi, edx
mov dword [eax + 0x38], edx
je 0x522e05
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x522e05
movzx eax, word [edx]
lea esi, [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, dword [esp + 0x10]
add ecx, 0x10000
mov dword [eax + 0x38], esi
mov edx, dword [esp + 0x10]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, word [eax*2 + 0x5ab420]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5af820]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5a7210]
cmp eax, dword [edx + 0x2c]
sete cl
cmp ecx, ebx
je 0x52010d
inc edi
cmp edi, ebp
jbe 0x522db1
jmp 0x522b51
mov ebp, ecx
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x527939
cmp esi, dword [ebp + 0x5c]
ja 0x522e6f
cmp dword [ebp + 0x24], 0
je case.default.0x527939
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5211f2
jmp case.default.0x527939
mov esi, dword [eax + 0x38]
mov edi, 1
jmp 0x522e94
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x6c]
cmp esi, dword [ecx + 0x54]
jae 0x522f5e
cmp dword [esp + 0x14], 0
lea edx, [esi + 2]
movzx ecx, word [esi]
mov esi, edx
mov dword [eax + 0x38], edx
je 0x522ee4
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x522ee4
movzx eax, word [edx]
lea esi, [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, dword [esp + 0x10]
add ecx, 0x10000
mov dword [eax + 0x38], esi
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ab420]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5af820]
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x2c]
movzx eax, byte [edx*4 + 0x5a7210]
cmp eax, ecx
je 0x522f43
movzx edx, word [edx*4 + 0x5a7218]
mov eax, ecx
shr eax, 5
and edx, 0x3ff
add edx, eax
and ecx, 0x1f
mov eax, 1
shl eax, cl
test dword [edx*4 + 0x5a6f18], eax
jne 0x522f43
xor eax, eax
jmp 0x522f48
mov eax, 1
cmp eax, ebx
je 0x52010d
inc edi
cmp edi, ebp
jbe 0x522e90
jmp 0x522b51
mov ebp, ecx
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x527939
cmp esi, dword [ebp + 0x5c]
ja 0x522f7e
cmp dword [ebp + 0x24], 0
je case.default.0x527939
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5211f2
jmp case.default.0x527939
mov esi, dword [eax + 0x38]
mov edi, 1
jmp 0x522fa4
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x6c]
cmp esi, dword [ecx + 0x54]
jae 0x52304c
cmp dword [esp + 0x14], 0
lea edx, [esi + 2]
movzx ecx, word [esi]
mov esi, edx
mov dword [eax + 0x38], edx
je 0x522ff4
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x522ff4
movzx eax, word [edx]
lea esi, [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, dword [esp + 0x10]
add ecx, 0x10000
mov dword [eax + 0x38], esi
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ab420]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5af820]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5a7211]
mov eax, dword [eax*4 + 0x5a4cb0]
cmp eax, 1
je 0x523031
cmp eax, 3
je 0x523031
xor eax, eax
jmp 0x523036
mov eax, 1
cmp eax, ebx
je 0x52010d
inc edi
cmp edi, ebp
jbe 0x522fa0
jmp 0x522b51
mov ebp, ecx
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x527939
cmp esi, dword [ebp + 0x5c]
ja 0x52306c
cmp dword [ebp + 0x24], 0
je case.default.0x527939
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5211f2
jmp case.default.0x527939
mov ebp, dword [esp + 0x6c]
mov esi, 1
nop word [eax + eax]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jae 0x5231b3
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], edx
je 0x5230df
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5230df
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x10]
add ecx, 0x10000
mov dword [edx + 0x38], eax
jmp 0x5230e3
mov edx, dword [esp + 0x10]
cmp ecx, 0x20
ja 0x5230fd
je case.0x5231a7.8193
lea eax, [ecx - 9]
cmp eax, 4
ja case.0x5231a7.8203
jmp dword [eax*4 + 0x52a1dc]
cmp ecx, 0x2000
ja 0x52318b
je case.0x5231a7.8193
cmp ecx, 0x1680
ja 0x523183
je case.0x5231a7.8193
mov eax, ecx
sub eax, 0x85
je case.0x5231a7.8193
sub eax, 0x1b
je case.0x5231a7.8193
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ab420]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5af820]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5a7211]
cmp dword [eax*4 + 0x5a4cb0], 6
sete cl
cmp ecx, ebx
je case.default.0x527939
inc esi
cmp esi, dword [edx + 0x20]
ja 0x522b51
mov eax, dword [esp + 0x10]
jmp 0x523090
cmp ecx, 0x180e
jmp 0x52312d
cmp ecx, 0x3000
ja case.0x5231a7.8203
je case.0x5231a7.8193
lea eax, [ecx - 0x2001]
cmp eax, 0x5e
ja case.0x5231a7.8203
movzx eax, byte [eax + 0x52a1f8]
jmp dword [eax*4 + 0x52a1f0]
cmp edi, 0xf
jmp 0x52316a
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x527939
cmp edx, dword [ebp + 0x5c]
ja 0x5231d1
cmp dword [ebp + 0x24], 0
je case.default.0x527939
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5211f2
jmp case.default.0x527939
mov esi, dword [eax + 0x38]
mov edi, 1
jmp 0x5231f4
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x6c]
cmp esi, dword [ecx + 0x54]
jae 0x5232a3
cmp dword [esp + 0x14], 0
lea ecx, [esi + 2]
movzx edx, word [esi]
mov esi, ecx
mov dword [eax + 0x38], ecx
je 0x523244
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x523244
movzx eax, word [ecx]
lea esi, [ecx + 2]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
mov eax, dword [esp + 0x10]
add edx, 0x10000
mov dword [eax + 0x38], esi
mov eax, edx
shr eax, 7
movzx ecx, word [eax*2 + 0x5ab420]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5af820]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5a7211]
mov eax, dword [eax*4 + 0x5a4cb0]
cmp eax, 1
je 0x523288
cmp eax, 3
je 0x523288
cmp edx, 0x5f
je 0x523288
xor eax, eax
jmp 0x52328d
mov eax, 1
cmp eax, ebx
je 0x52010d
inc edi
cmp edi, ebp
jbe 0x5231f0
jmp 0x522b51
mov ebp, ecx
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x527939
cmp esi, dword [ebp + 0x5c]
ja 0x5232c3
cmp dword [ebp + 0x24], 0
je case.default.0x527939
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5211f2
jmp case.default.0x527939
mov ebx, dword [esp + 0x14]
mov esi, 1
mov ecx, dword [esp + 0x6c]
mov edx, dword [eax + 0x38]
cmp edx, dword [ecx + 0x54]
jae 0x523382
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x523333
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x52332f
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x10]
add ecx, 0x10000
mov dword [edx + 0x38], eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x2c]
mov edx, dword [eax*4 + 0x5a6c48]
lea eax, [eax*4 + 0x5a6c48]
cmp ecx, edx
jb 0x523355
lea eax, [eax + 4]
cmp ecx, edx
je 0x52336c
mov edx, dword [eax]
cmp ecx, edx
jae 0x523348
cmp edi, 0xf
jne 0x523371
inc esi
cmp esi, ebp
ja 0x522b51
mov eax, dword [esp + 0x10]
jmp 0x5232e1
cmp edi, 0xf
jne 0x52335a
mov eax, dword [esp + 0x10]
xor esi, esi
mov ebp, dword [esp + 0x6c]
mov edx, ebx
jmp 0x52011b
mov ebp, ecx
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x5233aa
cmp edx, dword [ebp + 0x5c]
ja 0x52339a
cmp dword [ebp + 0x24], 0
je 0x5233aa
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5211f2
mov eax, dword [esp + 0x10]
xor esi, esi
mov edx, ebx
jmp 0x52011b
mov esi, 1
jmp 0x5233c4
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x6c]
mov edx, dword [eax + 0x38]
cmp edx, dword [ecx + 0x54]
jae 0x52345b
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], edx
je 0x523415
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x523415
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
mov edx, dword [esp + 0x10]
add ecx, 0x10000
mov dword [edx + 0x38], eax
cmp ecx, 0x24
je 0x523440
cmp ecx, 0x40
je 0x523440
cmp ecx, 0x60
je 0x523440
cmp ecx, 0xa0
jb 0x523434
cmp ecx, 0xd7ff
jbe 0x523440
cmp ecx, 0xe000
jae 0x523440
xor eax, eax
jmp 0x523445
mov eax, 1
cmp eax, ebx
je 0x52010d
inc esi
cmp esi, ebp
jbe 0x5233c0
jmp 0x522b51
mov ebp, ecx
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x527939
cmp edx, dword [ebp + 0x5c]
ja 0x52347b
cmp dword [ebp + 0x24], 0
je case.default.0x527939
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5211f2
jmp case.default.0x527939
mov esi, dword [eax + 0x38]
mov edi, 1
jmp 0x5234a4
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x6c]
cmp esi, dword [ecx + 0x54]
jae 0x523541
cmp dword [esp + 0x14], 0
lea edx, [esi + 2]
movzx ecx, word [esi]
mov esi, edx
mov dword [eax + 0x38], edx
je 0x5234f4
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5234f4
movzx eax, word [edx]
lea esi, [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov eax, dword [esp + 0x10]
add ecx, 0x10000
mov dword [eax + 0x38], esi
mov edx, dword [esp + 0x10]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, word [eax*2 + 0x5ab420]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5af820]
lea eax, [eax + eax*2]
movzx eax, word [eax*4 + 0x5a7218]
shr eax, 0xb
cmp eax, dword [edx + 0x2c]
sete cl
cmp ecx, ebx
je 0x52010d
inc edi
cmp edi, ebp
jbe 0x5234a0
jmp 0x522b51
mov ebp, ecx
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x527939
cmp esi, dword [ebp + 0x5c]
ja 0x523561
cmp dword [ebp + 0x24], 0
je case.default.0x527939
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5211f2
jmp case.default.0x527939
mov esi, dword [eax + 0x38]
mov edi, 1
nop
mov ecx, dword [esp + 0x6c]
cmp esi, dword [ecx + 0x54]
jae 0x523646
cmp dword [esp + 0x14], 0
lea ecx, [esi + 2]
movzx edx, word [esi]
mov esi, ecx
mov dword [eax + 0x38], ecx
je 0x5235d4
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5235d0
movzx eax, word [ecx]
lea esi, [ecx + 2]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
mov eax, dword [esp + 0x10]
add edx, 0x10000
mov dword [eax + 0x38], esi
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x2c]
mov eax, edx
shr eax, 7
and edx, 0x7f
movzx eax, word [eax*2 + 0x5ab420]
shl eax, 7
add eax, edx
movzx eax, word [eax*2 + 0x5af820]
lea eax, [eax + eax*2]
movzx edx, word [eax*4 + 0x5a721a]
mov eax, ecx
shr eax, 5
and edx, 0xfff
add edx, eax
and ecx, 0x1f
mov eax, 1
shl eax, cl
mov ecx, dword [edx*4 + 0x5a66c0]
and ecx, eax
mov eax, dword [esp + 0x10]
neg ecx
sbb ecx, ecx
neg ecx
cmp ecx, ebx
je 0x52363b
inc edi
cmp edi, ebp
jbe 0x523580
jmp 0x522b51
mov ebp, dword [esp + 0x6c]
xor esi, esi
jmp 0x520117
mov ebp, ecx
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x527939
cmp esi, dword [ebp + 0x5c]
ja 0x523666
cmp dword [ebp + 0x24], 0
je case.default.0x527939
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5211f2
jmp case.default.0x527939
cmp edi, 0x16
jne 0x52376c
mov ebp, dword [esp + 0x6c]
mov edi, 1
mov esi, dword [ebp + 0x54]
jmp 0x523696
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, esi
jae 0x523739
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov esi, edx
mov ebx, dword [esp + 0x10]
mov dword [eax + 0x38], edx
je 0x5236e4
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5236e4
movzx eax, word [edx]
lea esi, [edx + 2]
and ecx, 0x3ff
mov dword [ebx + 0x38], esi
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
push 0
push dword [esp + 0x18]
push dword [ebp + 0x54]
push dword [ebp + 0x4c]
push esi
push ecx
call fcn.00536eb0
mov dword [ebx + 0x38], eax
add esp, 0x18
mov esi, dword [ebp + 0x54]
cmp eax, esi
jb 0x52372a
movzx ecx, word [ebp + 0x3c]
mov edx, ecx
test cx, cx
je 0x52372a
cmp eax, dword [ebp + 0x5c]
ja 0x52371a
cmp dword [ebp + 0x24], 0
je 0x52372a
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x5211f2
inc edi
cmp edi, dword [ebx + 0x20]
jbe 0x523692
jmp 0x522b55
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x527939
cmp edx, dword [ebp + 0x5c]
ja 0x523757
cmp dword [ebp + 0x24], 0
je case.default.0x527939
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5211f2
jmp case.default.0x527939
lea eax, [edi - 6]
cmp eax, 0xf
ja case.0x52791c.15
mov esi, dword [esp + 0x14]
test esi, esi
je 0x5240fa
jmp dword [eax*4 + 0x52a258]
jmp dword [eax*4 + 0x52a398]
cmp edi, ebp
jae 0x5252e7
nop dword [eax + eax]
mov eax, dword [esp + 0x6c]
mov ecx, 1
cmp esi, dword [eax + 0x54]
jae 0x52492a
cmp dword [esp + 0x14], 0
je 0x52490d
mov eax, 0xfc00
mov edx, 0xd800
and ax, word [esi]
cmp ax, dx
mov eax, 2
cmove ecx, eax
cmp ebx, 0xf
je 0x5252e7
mov eax, dword [esp + 0x10]
lea esi, [esi + ecx*2]
inc edi
mov dword [eax + 0x38], esi
cmp edi, ebp
jb 0x5248e0
jmp 0x5252e7
mov ebp, eax
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x5252eb
cmp esi, dword [ebp + 0x5c]
ja 0x52494a
cmp dword [ebp + 0x24], 0
je 0x5252eb
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5211f2
jmp 0x5252eb
cmp edi, ebp
jae 0x5252e7
mov ebx, dword [esp + 0x5c]
nop dword [eax + eax]
mov eax, dword [esp + 0x6c]
mov edx, 1
cmp esi, dword [eax + 0x54]
jae 0x524a15
cmp dword [esp + 0x14], 0
movzx ecx, word [esi]
je 0x5249b9
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5249b9
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ab420]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5af820]
lea eax, [eax + eax*2]
mov al, byte [eax*4 + 0x5a7211]
cmp al, 9
je 0x5249f0
cmp al, 5
je 0x5249f0
cmp al, 8
je 0x5249f0
xor eax, eax
jmp 0x5249f5
mov eax, 1
cmp eax, ebx
je 0x5252e7
mov eax, dword [esp + 0x10]
lea esi, [esi + edx*2]
inc edi
mov dword [eax + 0x38], esi
cmp edi, ebp
jb 0x524970
jmp 0x5252e7
mov ebp, eax
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x5252eb
cmp esi, dword [ebp + 0x5c]
ja 0x524a35
cmp dword [ebp + 0x24], 0
je 0x5252eb
mov dword [ebp + 0x1c], edx
cmp ecx, 1
ja 0x5211f2
jmp 0x5252eb
cmp edi, ebp
jae 0x5252e7
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x6c]
mov edx, 1
cmp esi, dword [eax + 0x54]
jae 0x524a15
cmp dword [esp + 0x14], 0
movzx ecx, word [esi]
je 0x524a97
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x524a97
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ab420]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5af820]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5a7211]
mov eax, dword [eax*4 + 0x5a4cb0]
cmp eax, dword [ebx + 0x2c]
sete cl
cmp ecx, dword [esp + 0x5c]
je 0x5252e7
inc edi
lea esi, [esi + edx*2]
mov dword [ebx + 0x38], esi
cmp edi, ebp
jb 0x524a52
jmp 0x5252e7
cmp edi, ebp
jae 0x5252e7
mov ebx, dword [esp + 0x10]
nop dword [eax + eax]
mov eax, dword [esp + 0x6c]
mov edx, 1
cmp esi, dword [eax + 0x54]
jae 0x524a15
cmp dword [esp + 0x14], 0
movzx ecx, word [esi]
je 0x524b49
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x524b49
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ab420]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5af820]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5a7211]
cmp eax, dword [ebx + 0x2c]
sete cl
cmp ecx, dword [esp + 0x5c]
je 0x5252e7
inc edi
lea esi, [esi + edx*2]
mov dword [ebx + 0x38], esi
cmp edi, ebp
jb 0x524b00
jmp 0x5252e7
cmp edi, ebp
jae 0x5252e7
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x6c]
mov edx, 1
cmp esi, dword [eax + 0x54]
jae 0x524a15
cmp dword [esp + 0x14], 0
movzx ecx, word [esi]
je 0x524bec
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x524bec
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ab420]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5af820]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5a7210]
cmp eax, dword [ebx + 0x2c]
sete cl
cmp ecx, dword [esp + 0x5c]
je 0x5252e7
inc edi
lea esi, [esi + edx*2]
mov dword [ebx + 0x38], esi
cmp edi, ebp
jb 0x524ba3
jmp 0x5252e7
cmp edi, ebp
jae 0x5252e7
mov ebx, dword [esp + 0x5c]
nop word [eax + eax]
mov eax, dword [esp + 0x6c]
mov edi, 1
cmp esi, dword [eax + 0x54]
jae 0x524d25
cmp dword [esp + 0x14], 0
movzx ecx, word [esi]
je 0x524c99
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x524c99
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edi, 2
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ab420]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5af820]
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x2c]
movzx eax, byte [edx*4 + 0x5a7210]
cmp eax, ecx
je 0x524cf8
movzx edx, word [edx*4 + 0x5a7218]
mov eax, ecx
shr eax, 5
and edx, 0x3ff
add edx, eax
and ecx, 0x1f
mov eax, 1
shl eax, cl
test dword [edx*4 + 0x5a6f18], eax
jne 0x524cf8
xor eax, eax
jmp 0x524cfd
mov eax, 1
cmp eax, ebx
je 0x5252e7
mov eax, dword [esp + 0x10]
lea esi, [esi + edi*2]
mov dword [eax + 0x38], esi
mov eax, dword [esp + 0x58]
inc eax
mov dword [esp + 0x58], eax
cmp eax, ebp
jb 0x524c50
jmp 0x5252e7
mov ebp, eax
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x5252eb
cmp esi, dword [ebp + 0x5c]
ja 0x524d45
cmp dword [ebp + 0x24], 0
je 0x5252eb
mov dword [ebp + 0x1c], edi
jmp 0x524a38
cmp edi, ebp
jae 0x5252e7
mov ebx, dword [esp + 0x5c]
nop dword [eax]
mov eax, dword [esp + 0x6c]
mov edx, 1
cmp esi, dword [eax + 0x54]
jae 0x524a15
cmp dword [esp + 0x14], 0
movzx ecx, word [esi]
je 0x524da9
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x524da9
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ab420]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5af820]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5a7211]
mov eax, dword [eax*4 + 0x5a4cb0]
cmp eax, 1
je 0x524de6
cmp eax, 3
je 0x524de6
xor eax, eax
jmp 0x524deb
mov eax, 1
cmp eax, ebx
je 0x5252e7
mov eax, dword [esp + 0x10]
lea esi, [esi + edx*2]
inc edi
mov dword [eax + 0x38], esi
cmp edi, ebp
jb 0x524d60
jmp 0x5252e7
cmp edi, ebp
mov ebp, dword [esp + 0x6c]
jae 0x5252eb
nop word [eax + eax]
mov edx, 1
cmp esi, dword [ebp + 0x54]
jae 0x524a17
cmp dword [esp + 0x14], 0
movzx ecx, word [esi]
je 0x524e65
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x524e65
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
cmp ecx, 0x20
ja 0x524e7f
je case.0x524f35.8193
lea eax, [ecx - 9]
cmp eax, 4
ja case.0x524f35.8203
jmp dword [eax*4 + 0x52a4d8]
cmp ecx, 0x2000
ja 0x524f19
je case.0x524f35.8193
cmp ecx, 0x1680
ja 0x524f11
je case.0x524f35.8193
mov eax, ecx
sub eax, 0x85
je case.0x524f35.8193
sub eax, 0x1b
je case.0x524f35.8193
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ab420]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5af820]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5a7211]
cmp dword [eax*4 + 0x5a4cb0], 6
sete cl
cmp ecx, dword [esp + 0x5c]
je 0x5252eb
mov eax, dword [esp + 0x10]
lea esi, [esi + edx*2]
inc edi
mov dword [eax + 0x38], esi
cmp edi, dword [eax + 0x24]
jb 0x524e20
jmp 0x5252eb
cmp ecx, 0x180e
jmp 0x524eb3
cmp ecx, 0x3000
ja case.0x524f35.8203
je case.0x524f35.8193
lea eax, [ecx - 0x2001]
cmp eax, 0x5e
ja case.0x524f35.8203
movzx eax, byte [eax + 0x52a4f4]
jmp dword [eax*4 + 0x52a4ec]
cmp ebx, 0xf
je 0x5252eb
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 0x38]
jmp 0x524efc
cmp edi, ebp
jae 0x5252e7
mov ebx, dword [esp + 0x5c]
nop word [eax + eax]
mov eax, dword [esp + 0x6c]
mov edi, 1
cmp esi, dword [eax + 0x54]
jae 0x524d25
cmp dword [esp + 0x14], 0
movzx edx, word [esi]
je 0x524fa9
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x524fa9
movzx eax, word [esi + 2]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
mov edi, 2
add edx, 0x10000
mov eax, edx
shr eax, 7
movzx ecx, word [eax*2 + 0x5ab420]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5af820]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5a7211]
mov eax, dword [eax*4 + 0x5a4cb0]
cmp eax, 1
je 0x524fed
cmp eax, 3
je 0x524fed
cmp edx, 0x5f
je 0x524fed
xor eax, eax
jmp 0x524ff2
mov eax, 1
cmp eax, ebx
je 0x5252e7
mov eax, dword [esp + 0x10]
lea esi, [esi + edi*2]
mov dword [eax + 0x38], esi
mov eax, dword [esp + 0x58]
inc eax
mov dword [esp + 0x58], eax
cmp eax, ebp
jb 0x524f60
jmp 0x5252e7
cmp edi, ebp
jae 0x5252e7
mov eax, dword [esp + 0x6c]
mov edi, 1
cmp esi, dword [eax + 0x54]
jae 0x524d25
cmp dword [esp + 0x14], 0
movzx ecx, word [esi]
je 0x52506b
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x52506b
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edi, 2
add ecx, 0x10000
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 0x2c]
mov edx, dword [eax*4 + 0x5a6c48]
lea eax, [eax*4 + 0x5a6c48]
cmp ecx, edx
jb 0x525091
lea eax, [eax + 4]
cmp ecx, edx
je 0x5250b9
mov edx, dword [eax]
cmp ecx, edx
jae 0x525084
cmp ebx, 0xf
jne 0x5252e7
lea eax, [edi + edi]
add dword [esi + 0x38], eax
mov eax, dword [esp + 0x58]
mov esi, dword [esi + 0x38]
inc eax
mov dword [esp + 0x58], eax
cmp eax, ebp
jb 0x525022
jmp 0x5252e7
cmp ebx, 0xf
je 0x5252e7
jmp 0x52509a
cmp edi, ebp
jae 0x5252e7
mov ebx, dword [esp + 0x5c]
mov eax, dword [esp + 0x6c]
mov edx, 1
cmp esi, dword [eax + 0x54]
jae 0x524a15
cmp dword [esp + 0x14], 0
movzx ecx, word [esi]
je 0x525119
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x525119
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
cmp ecx, 0x24
je 0x525144
cmp ecx, 0x40
je 0x525144
cmp ecx, 0x60
je 0x525144
cmp ecx, 0xa0
jb 0x525138
cmp ecx, 0xd7ff
jbe 0x525144
cmp ecx, 0xe000
jae 0x525144
xor eax, eax
jmp 0x525149
mov eax, 1
cmp eax, ebx
je 0x5252e7
mov eax, dword [esp + 0x10]
lea esi, [esi + edx*2]
inc edi
mov dword [eax + 0x38], esi
cmp edi, ebp
jb 0x5250d0
jmp 0x5252e7
cmp edi, ebp
jae 0x5252e7
mov ebx, dword [esp + 0x10]
nop word [eax + eax]
mov eax, dword [esp + 0x6c]
mov edx, 1
cmp esi, dword [eax + 0x54]
jae 0x524a15
cmp dword [esp + 0x14], 0
movzx ecx, word [esi]
je 0x5251c9
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5251c9
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
mov edx, 2
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ab420]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5af820]
lea eax, [eax + eax*2]
movzx eax, word [eax*4 + 0x5a7218]
shr eax, 0xb
cmp eax, dword [ebx + 0x2c]
sete cl
cmp ecx, dword [esp + 0x5c]
je 0x5252e7
inc edi
lea esi, [esi + edx*2]
mov dword [ebx + 0x38], esi
cmp edi, ebp
jb 0x525180
jmp 0x5252e7
cmp edi, ebp
jae 0x5252e7
mov ebx, dword [esp + 0x10]
nop word [eax + eax]
mov eax, dword [esp + 0x6c]
mov edi, 1
cmp esi, dword [eax + 0x54]
jae 0x524d25
cmp dword [esp + 0x14], 0
movzx edx, word [esi]
je 0x525279
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x525279
movzx eax, word [esi + 2]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
mov edi, 2
add edx, 0x10000
mov ecx, dword [ebx + 0x2c]
mov eax, edx
shr eax, 7
and edx, 0x7f
movzx eax, word [eax*2 + 0x5ab420]
shl eax, 7
add eax, edx
movzx eax, word [eax*2 + 0x5af820]
lea eax, [eax + eax*2]
movzx edx, word [eax*4 + 0x5a721a]
mov eax, ecx
shr eax, 5
and edx, 0xfff
add edx, eax
and ecx, 0x1f
mov eax, 1
shl eax, cl
mov ecx, dword [edx*4 + 0x5a66c0]
and ecx, eax
neg ecx
sbb ecx, ecx
neg ecx
cmp ecx, dword [esp + 0x5c]
je 0x5252e7
mov eax, dword [esp + 0x58]
lea esi, [esi + edi*2]
inc eax
mov dword [ebx + 0x38], esi
mov dword [esp + 0x58], eax
cmp eax, ebp
jb 0x525230
mov ebp, dword [esp + 0x6c]
cmp dword [esp + 0x18], 2
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x68]
je 0x51fdd0
mov ebx, dword [esp + 0x10]
mov ecx, dword [ebx + 0x38]
jmp 0x528eb9
cmp ebx, 0x16
jne 0x52540a
cmp edi, ebp
mov ebp, dword [esp + 0x6c]
jae 0x5253f2
mov esi, dword [ebp + 0x54]
mov ebx, dword [esp + 0x10]
nop word [eax + eax]
mov edx, dword [ebx + 0x38]
cmp edx, esi
jae 0x5253cc
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov esi, edx
mov dword [ebx + 0x38], edx
je 0x52537a
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x52537a
movzx eax, word [edx]
lea esi, [edx + 2]
and ecx, 0x3ff
mov dword [ebx + 0x38], esi
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
push 0
push dword [esp + 0x18]
push dword [ebp + 0x54]
push dword [ebp + 0x4c]
push esi
push ecx
call fcn.00536eb0
mov dword [ebx + 0x38], eax
add esp, 0x18
mov esi, dword [ebp + 0x54]
cmp eax, esi
jb 0x5253c0
movzx ecx, word [ebp + 0x3c]
mov edx, ecx
test cx, cx
je 0x5253c0
cmp eax, dword [ebp + 0x5c]
ja 0x5253b0
cmp dword [ebp + 0x24], 0
je 0x5253c0
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x5211f2
inc edi
cmp edi, dword [ebx + 0x24]
jb 0x525330
jmp 0x5253f2
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x5253f2
cmp edx, dword [ebp + 0x5c]
ja 0x5253e2
cmp dword [ebp + 0x24], 0
je 0x5253f2
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5211f2
cmp dword [esp + 0x18], 2
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x68]
je 0x51fdd0
jmp 0x5293e0
lea eax, [ebx - 6]
cmp eax, 0xf
ja case.0x52791c.15
mov edx, dword [esp + 0x14]
test edx, edx
je 0x525c5c
jmp dword [eax*4 + 0x52a554]
jmp dword [eax*4 + 0x52a60c]
mov ebp, dword [esp + 0x10]
xor eax, eax
cmp bl, 0x74
mov ebx, dword [esp + 0x6c]
sete al
mov dword [ebp + 0x28], eax
movzx eax, word [ebx + 0x42]
movzx ecx, word [esi + 2]
movzx edx, word [esi + 4]
imul ecx, eax
mov eax, dword [ebx + 0x44]
lea ecx, [eax + ecx*2]
lea eax, [esi + 6]
mov dword [ebp], eax
test edx, edx
je 0x526445
nop word [eax + eax]
movzx eax, word [ecx]
dec edx
lea eax, [eax*2 - 2]
mov dword [ebp + 0x14], eax
cmp eax, dword [ebp + 0x50]
jae 0x52643a
cmp dword [ebp + eax*4 + 0x54], 0xffffffff
jne 0x526445
movzx eax, word [ebx + 0x42]
lea ecx, [ecx + eax*2]
test edx, edx
jg 0x526420
mov esi, dword [ebp]
jmp 0x526471
mov ebp, dword [esp + 0x10]
xor eax, eax
cmp bl, 0x72
mov ebx, dword [esp + 0x6c]
sete al
mov dword [ebp + 0x28], eax
movzx eax, word [esi + 2]
add esi, 4
lea eax, [eax*2 - 2]
mov dword [ebp + 0x14], eax
mov dword [ebp], esi
mov edi, esi
movzx edx, word [esi]
lea eax, [edx - 0x62]
cmp eax, 7
ja case.default.0x526489
movzx eax, byte [eax + 0x52a744]
jmp dword [eax*4 + 0x52a73c]
mov ecx, dword [edx*4 + 0x5a41c8]
lea eax, [esi + 2]
mov ebx, dword [edx*4 + 0x5a41f4]
mov edx, dword [edx*4 + 0x5a4220]
mov dword [ebp], eax
mov dword [ebp + 0x20], ecx
mov dword [ebp + 0x24], ebx
mov dword [esp + 0x18], edx
jmp 0x5264e7
movzx ecx, word [esi + 2]
mov dword [ebp + 0x20], ecx
movzx ebx, word [edi + 4]
mov dword [ebp + 0x24], ebx
movzx eax, word [edi]
mov eax, dword [eax*4 + 0x5a4220]
mov dword [esp + 0x18], eax
test ebx, ebx
jne 0x5264e1
mov dword [ebp + 0x24], 0xffffffff
or ebx, 0xffffffff
lea eax, [edi + 6]
mov dword [ebp], eax
mov edi, dword [ebp + 0x14]
cmp edi, dword [ebp + 0x50]
jae 0x52650c
mov eax, dword [ebp + edi*4 + 0x54]
cmp eax, 0xffffffff
je 0x52650c
mov edx, dword [esp + 0x14]
cmp eax, dword [ebp + edi*4 + 0x58]
je 0x5203a7
mov eax, dword [esp + 0x6c]
jmp 0x526529
mov edx, dword [esp + 0x14]
test ecx, ecx
je 0x5203a7
mov eax, dword [esp + 0x6c]
test dword [eax + 0x7c], 0x200
jne 0x51fdb0
mov esi, 1
cmp ecx, esi
jb 0x526568
mov edi, dword [ebp + 0x14]
lea ecx, [esp + 0x40]
push ecx
push eax
push ebp
push dword [ebp + 0x28]
push edi
call fcn.0052ab20
add esp, 0x14
test eax, eax
jne 0x5265e1
mov eax, dword [esp + 0x40]
inc esi
add eax, eax
add dword [ebp + 0x38], eax
mov ecx, dword [ebp + 0x20]
mov eax, dword [esp + 0x6c]
cmp esi, ecx
jbe 0x526532
mov ebx, dword [ebp + 0x24]
mov edx, dword [esp + 0x14]
cmp ecx, ebx
je 0x5203a7
cmp dword [esp + 0x18], 0
je 0x52953e
mov eax, dword [ebp + 0x38]
mov esi, 1
mov dword [ebp + 4], eax
mov eax, dword [ebp + edi*4 + 0x58]
sub eax, dword [ebp + edi*4 + 0x54]
mov dword [ebp + 0xc], eax
mov edi, dword [ebp + 0x20]
cmp edi, ebx
mov ebp, dword [esp + 0x6c]
mov ebx, dword [esp + 0x10]
jae 0x5274d8
lea eax, [esp + 0x44]
push eax
push ebp
push ebx
push dword [ebx + 0x28]
push dword [ebx + 0x14]
call fcn.0052ab20
add esp, 0x14
test eax, eax
jne 0x526632
mov eax, dword [esp + 0x44]
xor ecx, ecx
cmp eax, dword [ebx + 0xc]
cmovne esi, ecx
add eax, eax
add dword [ebx + 0x38], eax
inc edi
cmp edi, dword [ebx + 0x24]
jb 0x5265a8
jmp 0x526657
jle 0x5265ef
mov eax, dword [esp + 0x6c]
mov ecx, dword [eax + 0x54]
mov dword [ebp + 0x38], ecx
jmp 0x5265f2
mov ecx, dword [ebp + 0x38]
mov ebp, dword [esp + 0x6c]
cmp ecx, dword [ebp + 0x54]
jb case.default.0x527939
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x527939
cmp ecx, dword [ebp + 0x5c]
ja 0x52661d
cmp dword [ebp + 0x24], 0
je case.default.0x527939
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x5211f2
jmp case.default.0x527939
jle 0x526657
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x526657
mov eax, dword [ebp + 0x54]
cmp eax, dword [ebp + 0x5c]
jbe 0x526657
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5211f2
test esi, esi
jne 0x5274d8
mov dword [ebx + 0x24], edi
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x16
jmp 0x5299e2
lea eax, [esp + 0x28]
push eax
push ebx
push ebp
push dword [ebp + 0x28]
push dword [ebp + 0x14]
call fcn.0052ab20
add esp, 0x14
test eax, eax
je 0x5266d3
jle 0x526690
mov ecx, dword [ebx + 0x54]
mov dword [ebp + 0x38], ecx
jmp 0x526693
mov ecx, dword [ebp + 0x38]
mov ebp, dword [esp + 0x6c]
cmp ecx, dword [ebp + 0x54]
jb case.default.0x527939
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x527939
cmp ecx, dword [ebp + 0x5c]
ja 0x5266be
cmp dword [ebp + 0x24], 0
je case.default.0x527939
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x5211f2
jmp case.default.0x527939
mov eax, dword [esp + 0x28]
add eax, eax
add dword [ebp + 0x38], eax
mov ebp, dword [esp + 0x6c]
jmp 0x51fdc4
mov ecx, dword [esp + 0x10]
add esi, 2
mov dword [ecx], esi
nop
movzx eax, word [esi + 2]
lea esi, [esi + eax*2]
mov dword [ecx], esi
cmp word [esi], 0x78
je 0x5266f0
lea eax, [esi + 4]
mov dword [ecx], eax
jmp 0x51fdd0
cmp dword [ebp + 0x20], 0
mov ebx, dword [esp + 0x10]
jne 0x52671d
cmp dword [ebx + 0x18], 0
jne 0x5270d9
xor eax, eax
jmp 0x5297e9
mov ebx, dword [esp + 0x10]
lea eax, [esp + 0x28]
push eax
push ebp
push ebx
call fcn.0051fb90
mov esi, eax
add esp, 0xc
test esi, esi
jg case.default.0x527939
js 0x520113
mov eax, dword [esp + 0x28]
add eax, eax
add dword [ebx], eax
jmp 0x51fdc8
movzx eax, word [esi + 2]
mov edi, dword [esp + 0x10]
mov dword [edi + 0xc], eax
cmp word [esi + eax*2], 0x78
je 0x52676c
add eax, 0xfffffffe
mov dword [edi + 0xc], eax
lea ebx, [esi + 4]
mov dword [edi], ebx
movzx eax, word [ebx]
mov ecx, eax
cmp eax, 0x76
je 0x526780
cmp eax, 0x77
jne 0x5267b0
lea eax, [esp + 0x28]
push eax
push ebp
push edi
call fcn.0051fb90
mov esi, eax
add esp, 0xc
test esi, esi
jg case.default.0x527939
js 0x520113
mov eax, dword [edi]
mov ecx, dword [esp + 0x28]
lea ebx, [eax + ecx*2]
mov dword [edi], ebx
sub dword [edi + 0xc], ecx
movzx ecx, word [ebx]
movzx ecx, cx
lea eax, [ecx - 0x90]
cmp eax, 0x12
ja case.0x5267c9.150
movzx eax, byte [eax + 0x52a768]
jmp dword [eax*4 + 0x52a74c]
mov ecx, dword [edi + 0x44]
cmp ecx, 0xffffffff
je case.0x5267c9.148
movzx eax, word [ebx + 2]
mov ebx, dword [esp + 0x10]
cmp eax, 0xffff
je 0x52928e
cmp eax, ecx
je 0x52928e
jmp 0x5292a0
mov edi, dword [edi + 0x44]
cmp edi, 0xffffffff
je case.0x5267c9.148
movzx esi, word [ebp + 0x42]
movzx ecx, word [ebx + 2]
mov eax, dword [ebp + 0x44]
movzx edx, word [ebx + 4]
imul ecx, esi
lea ecx, [eax + ecx*2]
test edx, edx
je case.0x5267c9.148
movzx eax, word [ecx]
dec edx
cmp eax, edi
je 0x526859
lea ecx, [ecx + esi*2]
test edx, edx
jg 0x526825
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], ebx
jmp 0x5292a0
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x24]
mov ecx, dword [ebx]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x18], eax
movzx eax, word [ecx]
mov dword [esp + 0x10], ebx
movzx eax, byte [eax + 0x5a4b10]
jmp 0x5292a5
movzx eax, word [ebx + 2]
mov ebx, dword [esp + 0x10]
lea eax, [eax*2 - 2]
cmp eax, dword [ebx + 0x50]
jae 0x5292a0
cmp dword [ebx + eax*4 + 0x54], 0xffffffff
je 0x5292a0
mov ecx, dword [ebx]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x5a4b10]
jmp 0x5292a5
movzx ecx, word [ebx + 2]
movzx esi, word [ebp + 0x42]
mov eax, dword [ebp + 0x44]
movzx edx, word [ebx + 4]
mov ebx, dword [esp + 0x10]
imul ecx, esi
lea ecx, [eax + ecx*2]
test edx, edx
je 0x5292a0
mov edi, dword [ebx + 0x50]
movzx eax, word [ecx]
dec edx
lea eax, [eax*2 - 2]
cmp eax, edi
jae 0x5268fc
cmp dword [ebx + eax*4 + 0x54], 0xffffffff
jne 0x52928e
lea ecx, [ecx + esi*2]
test edx, edx
jg 0x5268e2
jmp 0x5292a0
cmp dword [esp + 0x14], 0
movzx edx, word [esi + 2]
mov ebx, dword [esp + 0x10]
je 0x52694f
test edx, edx
je 0x52694a
mov ecx, dword [ebx + 0x38]
mov esi, 0xfc00
dec edx
cmp ecx, dword [ebp + 0x50]
jbe case.default.0x527939
add ecx, 0xfffffffe
mov dword [ebx + 0x38], ecx
mov ax, word [ecx]
and ax, si
cmp ax, word [esp + 0x30]
jne 0x526946
add ecx, 0xfffffffe
mov dword [ebx + 0x38], ecx
test edx, edx
jne 0x526923
mov ecx, dword [ebx + 0x38]
jmp 0x526969
mov ecx, dword [ebx + 0x38]
mov eax, ecx
sub eax, dword [ebp + 0x4c]
sar eax, 1
cmp edx, eax
jg case.default.0x527939
lea eax, [edx + edx]
sub ecx, eax
mov dword [ebx + 0x38], ecx
cmp ecx, dword [ebp + 0x5c]
jae 0x526971
mov dword [ebp + 0x5c], ecx
add dword [ebx], 4
jmp 0x51fdc8
movzx eax, word [esi + 2]
lea esi, [esi + eax*2]
mov eax, dword [esp + 0x10]
mov dword [eax], esi
cmp word [esi], 0x78
je case.0x51fdf4.120
jmp 0x51fdd0
movzx eax, word [esi + 2]
mov ecx, 0x86
add eax, eax
sub esi, eax
movzx eax, word [esi]
cmp ax, cx
je 0x526a1d
mov ecx, 0x8a
cmp ax, cx
je 0x526a1d
mov ebx, dword [esp + 0x10]
mov ecx, dword [edi + 0x18]
add ecx, dword [ebx + 0x4c]
mov edi, ecx
mov dword [esp + 0x1c], ecx
sub edi, dword [esp + 0x64]
mov eax, dword [edi + 0x4c]
mov dword [ebx + 0x4c], eax
mov eax, dword [ecx + 0x1c]
and eax, 0xffff0000
cmp eax, 0x30000
jne 0x526a18
mov eax, dword [ebx + 0x50]
shl eax, 2
push eax
lea eax, [ebx + 0x54]
push eax
lea eax, [edi + 0x54]
push eax
call fcn.00569ef0
mov eax, dword [ebx + 0x50]
add esp, 0xc
mov dword [edi + 0x50], eax
mov esi, 1
mov eax, dword [ebx + 0x40]
mov dword [edi + 0x40], eax
mov eax, ebx
sub eax, edi
mov dword [ebx + 0x10], eax
jmp 0x520113
movzx eax, word [esi]
jmp 0x526a27
mov ebx, dword [esp + 0x10]
xor edi, edi
mov ecx, dword [esp + 0x1c]
movzx eax, ax
add eax, 0xffffff82
cmp eax, 0x10
ja case.0x526a3d.134
movzx eax, byte [eax + 0x52a798]
jmp dword [eax*4 + 0x52a77c]
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebp + 0x60]
jbe 0x526a4f
mov dword [ebp + 0x60], eax
mov eax, dword [edi + 0x38]
mov dword [ebx + 0x38], eax
jmp case.0x526a3d.134
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebp + 0x60]
jbe 0x526a65
mov dword [ebp + 0x60], eax
mov eax, dword [edi + 0x38]
mov dword [ebx + 0x38], eax
mov eax, ebx
sub eax, edi
mov dword [ebx + 0x10], eax
mov ecx, dword [edi]
movzx eax, word [ecx + 2]
cmp word [ecx + eax*2], 0x78
lea ecx, [ecx + eax*2]
jne case.0x526a3d.134
nop word [eax + eax]
mov dword [edi], ecx
movzx eax, word [ecx + 2]
cmp word [ecx + eax*2], 0x78
lea ecx, [ecx + eax*2]
je 0x526a90
jmp case.0x526a3d.134
mov eax, dword [esp + 0x10]
mov esi, 1
jmp 0x52011b
push edx
push dword [ebx + 0x38]
push dword [edi + 0x38]
call fcn.005372b0
add esp, 0xc
test eax, eax
jne case.0x526a3d.134
jmp case.default.0x527939
movzx eax, word [esi + 4]
cmp dword [ebx + 0x44], eax
jne 0x526b0f
mov esi, ecx
sub esi, dword [esp + 0x64]
mov eax, dword [esi + 0x50]
shl eax, 2
push eax
lea eax, [esi + 0x54]
push eax
lea eax, [ebx + 0x54]
push eax
call fcn.00569ef0
mov eax, dword [esi + 0x50]
add esp, 0xc
mov dword [ebx + 0x50], eax
mov eax, dword [esi + 0x48]
mov dword [ebx + 0x48], eax
mov eax, dword [esi + 0x44]
mov dword [ebx + 0x44], eax
mov eax, dword [esi]
add eax, 4
mov dword [ebx], eax
jmp 0x51fdc4
mov dword [ebx + 0x48], eax
lea edx, [eax + eax]
mov eax, dword [edi + 0x38]
lea ecx, [edx - 2]
sub eax, dword [ebp + 0x4c]
sar eax, 1
mov dword [ebx + ecx*4 + 0x54], eax
mov eax, dword [ebx + 0x38]
sub eax, dword [ebp + 0x4c]
sar eax, 1
mov dword [ebx + ecx*4 + 0x58], eax
cmp ecx, dword [ebx + 0x50]
jb case.0x526a3d.134
mov dword [ebx + 0x50], edx
mov edx, dword [ebx]
cmp word [edx], 0x7c
jne 0x526b5e
push dword [esp + 0x48]
lea eax, [ebx + 0x38]
push eax
lea eax, [edi + 0x38]
push eax
call fcn.00569ef0
add esp, 0xc
mov esi, 0xfffffc1a
jmp 0x520113
mov cl, byte [ebx + 0x31]
cmp cl, 0x79
je 0x526b7a
test edi, edi
je 0x5294f9
mov eax, dword [ebx + 0x38]
cmp eax, dword [edi + 0x38]
jne 0x5294f9
add dword [ebx], 4
jmp 0x51fdc4
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x38]
cmp eax, dword [ebp + 0x4c]
jne 0x52028f
test byte [ebp + 0x78], 1
jne 0x52028f
lea eax, [esi + 2]
mov dword [ecx], eax
jmp 0x51fdd0
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x38]
cmp eax, dword [ebp + 0x4c]
je 0x526b9c
xor esi, esi
mov eax, ecx
jmp 0x52011b
test byte [ebp + 0x78], 2
je 0x526bcc
mov eax, dword [esp + 0x10]
xor esi, esi
jmp 0x52011b
test byte [ebp + 0x7c], 0x10
je case.0x51fdf4.23
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0x38]
cmp eax, dword [ebp + 0x54]
jb case.default.0x527939
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x526bfd
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5211f2
add dword [edx], 2
jmp 0x51fdc8
mov ebp, dword [esp + 0x10]
mov ecx, dword [esp + 0x6c]
mov edx, dword [ebp + 0x38]
mov esi, dword [ecx + 0x54]
cmp edx, esi
jae 0x526cd6
mov eax, dword [ecx + 0x88]
lea ebx, [ecx + 0x8c]
test eax, eax
je 0x526c4d
push dword [esp + 0x14]
push ebx
push esi
push eax
push edx
call fcn.005370b0
add esp, 0x14
test eax, eax
je 0x526c85
mov ecx, dword [esp + 0x6c]
mov edi, dword [ebx]
mov edx, dword [ebp + 0x38]
mov esi, dword [ecx + 0x54]
jmp 0x526c7c
mov edi, dword [ebx]
mov ecx, esi
lea eax, [edi + edi]
sub ecx, eax
cmp edx, ecx
ja 0x526c85
mov ecx, dword [esp + 0x6c]
mov ax, word [edx]
cmp ax, word [ecx + 0x90]
jne 0x526c85
cmp edi, 1
je 0x526c7c
mov ax, word [edx + 2]
cmp ax, word [ecx + 0x92]
jne 0x526c85
lea eax, [edi + edi]
sub esi, eax
cmp edx, esi
je 0x526cd6
mov eax, dword [esp + 0x6c]
movzx eax, word [eax + 0x3c]
mov edx, eax
test ax, ax
je 0x52010d
mov ecx, dword [ebp + 0x38]
mov ebp, dword [esp + 0x6c]
lea eax, [ecx + 2]
cmp eax, dword [ebp + 0x54]
jb case.default.0x527939
cmp dword [ebp + 0x88], 0
jne case.default.0x527939
cmp dword [ebx], 2
jne case.default.0x527939
mov ax, word [ecx]
cmp ax, word [ebp + 0x90]
jne case.default.0x527939
jmp 0x52249f
movzx eax, word [ecx + 0x3c]
mov ecx, eax
test ax, ax
je 0x526cf5
mov eax, dword [esp + 0x6c]
mov dword [eax + 0x1c], 1
cmp ecx, 1
ja 0x5211f2
add dword [ebp], 2
mov ebp, dword [esp + 0x6c]
jmp 0x51fdc4
test byte [ebp + 0x78], 1
mov ebx, dword [esp + 0x10]
je 0x526d1d
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebp + 0x4c]
jne 0x526d1d
xor esi, esi
mov eax, ebx
jmp 0x52011b
mov ecx, dword [ebx + 0x38]
mov edx, dword [ebp + 0x4c]
cmp ecx, edx
je 0x526e84
cmp ecx, dword [ebp + 0x54]
jne 0x526d3d
test dword [ebp + 0x7c], 0x200000
je case.default.0x527939
mov esi, dword [ebp + 0x88]
test esi, esi
je 0x526d75
cmp ecx, edx
jbe case.default.0x527939
push dword [esp + 0x14]
lea eax, [ebp + 0x8c]
push eax
push edx
push esi
push ecx
call fcn.00537170
add esp, 0x14
test eax, eax
je case.default.0x527939
add dword [ebx], 2
jmp 0x51fdc4
mov edi, dword [ebp + 0x8c]
lea esi, [edi + edi]
lea eax, [edx + esi]
cmp ecx, eax
jb case.default.0x527939
sub ecx, esi
mov ax, word [ecx]
cmp ax, word [ebp + 0x90]
jne case.default.0x527939
cmp edi, 1
je 0x526e84
mov ax, word [ecx + 2]
cmp ax, word [ebp + 0x92]
je 0x526e84
jmp case.default.0x527939
mov ebx, dword [esp + 0x10]
mov ecx, dword [ebp + 0x54]
mov edx, dword [ebx + 0x38]
cmp edx, ecx
jae 0x526e54
mov eax, dword [ebp + 0x88]
lea edi, [ebp + 0x8c]
test eax, eax
je 0x526df8
push dword [esp + 0x14]
push edi
push ecx
push eax
push edx
call fcn.005370b0
add esp, 0x14
test eax, eax
je 0x526e21
add dword [ebx], 2
jmp 0x51fdc4
mov esi, dword [edi]
lea eax, [esi + esi]
sub ecx, eax
cmp edx, ecx
ja 0x526e21
mov ax, word [edx]
cmp ax, word [ebp + 0x90]
jne 0x526e21
cmp esi, 1
je 0x526e84
mov ax, word [edx + 2]
cmp ax, word [ebp + 0x92]
je 0x526e84
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x527939
mov ecx, dword [ebx + 0x38]
lea eax, [ecx + 2]
cmp eax, dword [ebp + 0x54]
jb case.default.0x527939
cmp dword [ebp + 0x88], 0
jne case.default.0x527939
cmp dword [edi], 2
jmp 0x526cbb
test byte [ebp + 0x78], 2
jne case.default.0x527939
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x526e84
cmp edx, dword [ebp + 0x5c]
ja 0x526e74
cmp dword [ebp + 0x24], 0
je 0x526e84
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5211f2
add dword [ebx], 2
jmp 0x51fdc4
mov ecx, dword [ebp + 0x34]
mov eax, dword [ebp + 0x4c]
lea eax, [eax + ecx*2]
mov ecx, dword [esp + 0x10]
cmp dword [ecx + 0x38], eax
je 0x526b9c
xor esi, esi
mov eax, ecx
jmp 0x52011b
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x38]
mov dword [ecx + 0x3c], eax
lea eax, [esi + 2]
mov dword [ecx], eax
jmp 0x51fdd0
mov ebx, dword [esp + 0x10]
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x50]
je 0x526f90
movzx eax, word [edx - 2]
add edx, 0xfffffffe
cmp dword [esp + 0x14], 0
mov ecx, eax
je 0x526f1d
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x526ef2
movzx ecx, word [edx - 2]
sub edx, 2
movzx ecx, cx
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x526f1d
movzx eax, word [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
cmp edx, dword [ebp + 0x5c]
jae 0x526f25
mov dword [ebp + 0x5c], edx
test dword [ebp + 0x7c], 0x20000
je 0x526f78
cmp ecx, 0x5f
jne 0x526f38
lea edi, [ecx - 0x5e]
jmp 0x526f92
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ab420]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5af820]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5a7211]
mov eax, dword [eax*4 + 0x5a4cb0]
cmp eax, 1
je 0x526f71
cmp eax, 3
jne 0x526f90
mov edi, 1
jmp 0x526f92
cmp ecx, 0xff
ja 0x526f90
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 0x10
je 0x526f90
mov edi, 1
jmp 0x526f92
xor edi, edi
mov ecx, dword [ebx + 0x38]
mov eax, dword [ebp + 0x54]
cmp ecx, eax
jb 0x526ff3
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je 0x526fc2
cmp ecx, dword [ebp + 0x5c]
ja 0x526fb2
cmp dword [ebp + 0x24], 0
je 0x526fc2
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x5211f2
xor edx, edx
mov eax, dword [ebx]
xor edx, edi
movzx ecx, word [eax]
add eax, 2
mov dword [ebx], eax
cmp ecx, 5
jne 0x526fd8
xor edx, 1
mov edi, dword [esp + 0x68]
test edx, edx
mov edx, dword [esp + 0x14]
je 0x51fdd0
mov eax, dword [esp + 0x10]
xor esi, esi
jmp 0x52011b
cmp dword [esp + 0x14], 0
lea esi, [ecx + 2]
mov edx, esi
je 0x527041
cmp edx, eax
jae 0x527015
mov ax, word [edx]
and ax, word [esp + 0x34]
cmp ax, word [esp + 0x30]
jne 0x527015
add edx, 2
movzx ecx, word [ecx]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x527044
movzx eax, word [esi]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
jmp 0x527044
movzx ecx, word [ecx]
cmp edx, dword [ebp + 0x60]
jbe 0x52704c
mov dword [ebp + 0x60], edx
test dword [ebp + 0x7c], 0x20000
je 0x5270a9
cmp ecx, 0x5f
jne 0x527062
lea edx, [ecx - 0x5e]
jmp 0x526fc4
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ab420]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5af820]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5a7211]
mov eax, dword [eax*4 + 0x5a4cb0]
cmp eax, 1
je 0x52709f
cmp eax, 3
jne 0x526fc2
mov edx, 1
jmp 0x526fc4
cmp ecx, 0xff
ja 0x526fc2
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 0x10
je 0x526fc2
mov edx, 1
jmp 0x526fc4
test esi, esi
jne case.0x5271a6.998
mov esi, dword [ebx + 4]
mov dword [ebx], esi
movzx eax, word [esi + 2]
lea edx, [esi + eax*2]
mov dword [ebx + 4], edx
cmp word [edx], 0x78
mov ecx, dword [ebx]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x5a4b10]
lea esi, [ecx + eax*2]
je 0x529517
mov dword [ebx], esi
jmp 0x51fdc4
cmp esi, 0xfffffc1f
jne 0x527129
mov ecx, dword [ebx]
movzx eax, word [ecx + 2]
lea eax, [ecx + eax*2]
cmp dword [ebp + 0x6c], eax
jae case.0x5271a6.998
cmp word [ecx], 0x78
je 0x527131
cmp word [eax], 0x78
jmp 0x52712b
test esi, esi
jne case.0x5271a6.998
mov ecx, dword [ebx]
movzx eax, word [ecx + 2]
lea esi, [ecx + eax*2]
mov dword [ebx], esi
cmp word [esi], 0x78
je 0x5297ec
mov eax, dword [esp + 0x10]
xor esi, esi
jmp 0x52011b
cmp esi, 0xfffffc19
je 0x5291b8
test esi, esi
je 0x52716d
cmp esi, 0xfffffc1f
jne case.0x5271a6.998
mov ecx, dword [ebx]
movzx eax, word [ecx + 2]
lea esi, [ecx + eax*2]
mov dword [ebx], esi
cmp word [esi], 0x78
je 0x5298a2
mov eax, dword [esp + 0x10]
xor esi, esi
jmp 0x52011b
test esi, esi
jg 0x5271ad
je case.0x5271a6.993
lea eax, [esi + 0x3e7]
cmp eax, 6
ja case.0x5271a6.998
jmp dword [eax*4 + 0x52a7ac]
mov eax, esi
sub eax, 1
mov eax, dword [esp + 0x10]
jne 0x52011b
mov eax, dword [esp + 0x10]
xor esi, esi
jmp 0x52011b
test esi, esi
jg 0x5271e7
je case.0x5271e0.993
lea eax, [esi + 0x3e7]
cmp eax, 6
ja case.0x5271a6.998
jmp dword [eax*4 + 0x52a7c8]
mov eax, esi
sub eax, 1
jne case.0x5271a6.998
mov eax, dword [ebx + 0x20]
test eax, eax
je 0x5292a0
mov ecx, dword [ebx]
nop
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [ebx], ecx
cmp word [ecx], 0x78
je 0x527200
movzx eax, word [ecx]
movzx eax, byte [eax + 0x5a4b10]
jmp 0x5292a5
test esi, esi
jne case.0x5271a6.998
mov ecx, dword [ebx]
mov edi, dword [esp + 0x68]
movzx eax, word [ecx + 2]
add eax, eax
sub ecx, eax
mov dword [ebx], ecx
jmp 0x51fdd0
test esi, esi
je 0x526b7a
mov eax, dword [esp + 0x10]
jmp 0x52011b
cmp esi, 0xfffffc1a
jne 0x527281
mov dword [ebx + 0x24], 1
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebx + 4]
jne 0x529520
mov ecx, dword [ebx]
nop dword [eax]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [ebx], ecx
cmp word [ecx], 0x78
je 0x527270
jmp 0x5272c4
cmp esi, 0xfffffc1f
jne 0x5272a7
mov ecx, dword [ebx]
movzx eax, word [ecx + 2]
lea eax, [ecx + eax*2]
cmp dword [ebp + 0x6c], eax
jae case.0x5271a6.998
cmp word [ecx], 0x78
je 0x5272af
cmp word [eax], 0x78
jmp 0x5272a9
test esi, esi
jne case.0x5271a6.998
mov ecx, dword [ebx]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [ebx], ecx
cmp word [ecx], 0x78
je 0x5297ad
cmp dword [ebx + 0x24], 0
jne 0x5272f6
cmp dword [ebx + 0x28], 0
jne 0x5272f6
mov eax, dword [esp + 0x10]
xor esi, esi
jmp 0x52011b
test esi, esi
jne case.0x5271a6.998
mov ecx, dword [ebx + 4]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [ebx + 4], ecx
cmp word [ecx], 0x78
je 0x5272e6
mov edi, dword [esp + 0x68]
lea eax, [ecx + 4]
mov dword [ebx], eax
jmp 0x51fdd0
test esi, esi
jne case.0x5271a6.998
add dword [ebx], 2
mov edi, dword [esp + 0x68]
jmp 0x51fdd0
mov edx, dword [ebx + 4]
movzx eax, word [edx + 2]
lea ecx, [edx + eax*2]
lea eax, [esi + 0x3e5]
cmp eax, 4
ja 0x527360
mov eax, dword [ebx + 0x20]
xor eax, 0x40000
cmp dword [ebp + 0x74], eax
jne 0x527360
cmp esi, 0xfffffc1f
jne case.default.0x527939
cmp dword [ebp + 0x6c], ecx
jae case.default.0x527939
cmp word [edx], 0x78
je 0x52736c
cmp word [ecx], 0x78
je 0x52736c
jmp case.default.0x527939
mov edx, dword [esp + 0x14]
test esi, esi
jne case.0x5271a6.998
mov dword [ebx + 4], ecx
cmp word [ecx], 0x78
je 0x529873
jmp case.default.0x527939
cmp esi, 0xfffffc1e
jne case.0x5271a6.998
mov eax, dword [ebx]
push dword [ebp + 0x70]
add eax, 4
push eax
call fcn.005369f0
mov edx, dword [esp + 0x1c]
add esp, 8
test eax, eax
jne case.0x5271a6.998
mov eax, dword [ebx + 0x38]
mov esi, 0xfffffc1d
mov dword [ebp + 0x70], eax
mov eax, dword [esp + 0x10]
jmp 0x52011b
test esi, esi
jne case.0x5271a6.998
mov eax, dword [ebx + 0x44]
mov esi, 0xfffffc1b
mov dword [ebp + 0x74], eax
mov eax, dword [esp + 0x10]
jmp 0x52011b
test esi, esi
jne case.0x5271a6.998
mov eax, dword [ebx + 0x44]
mov esi, 0xfffffc1c
mov dword [ebp + 0x74], eax
mov eax, dword [esp + 0x10]
jmp 0x52011b
test esi, esi
jne case.0x5271a6.998
mov eax, dword [ebx + 0x38]
mov esi, 0xfffffc1d
mov dword [ebp + 0x70], eax
mov eax, dword [ebx + 0x44]
mov dword [ebp + 0x74], eax
mov eax, dword [esp + 0x10]
jmp 0x52011b
test esi, esi
jne case.0x5271a6.998
mov eax, dword [ebx]
mov esi, 0xfffffc1e
add eax, 4
mov dword [ebp + 0x70], eax
mov eax, dword [ebx + 0x44]
mov dword [ebp + 0x74], eax
mov eax, dword [esp + 0x10]
jmp 0x52011b
test esi, esi
jne case.0x5271a6.998
mov eax, dword [ebx]
mov esi, 0xfffffc1f
mov dword [ebp + 0x6c], eax
mov eax, dword [ebx + 0x44]
mov dword [ebp + 0x74], eax
mov eax, dword [esp + 0x10]
jmp 0x52011b
test esi, esi
jne case.0x5271a6.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x527939
lea eax, [esp + 0x4c]
push eax
push ebp
push ebx
push dword [ebx + 0x28]
push dword [ebx + 0x14]
call fcn.0052ab20
add esp, 0x14
test eax, eax
je 0x52952a
jle 0x527487
mov ecx, dword [ebp + 0x54]
mov dword [edi + 0x38], ecx
jmp 0x52748a
mov ecx, dword [edi + 0x38]
cmp ecx, dword [ebp + 0x54]
jb case.default.0x527939
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x527939
cmp ecx, dword [ebp + 0x5c]
ja 0x5274b1
cmp dword [ebp + 0x24], 0
je case.default.0x527939
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x5211f2
jmp case.default.0x527939
test esi, esi
jne case.0x5271a6.998
mov eax, dword [ebx + 0xc]
neg eax
add eax, eax
add dword [ebx + 0x38], eax
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebx + 4]
jb case.default.0x527939
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x15
jmp 0x5299e2
test esi, esi
jne case.0x5271a6.998
mov esi, dword [ebx + 4]
cmp dword [ebx + 0x38], esi
je case.default.0x527939
mov dword [ebx + 0x38], esi
dec dword [ebx + 0x24]
mov edi, dword [ebx + 0x20]
cmp edi, dword [ebx + 0x24]
jae 0x527536
lea eax, [esp + 0x50]
push eax
push ebp
push ebx
push dword [ebx + 0x28]
push dword [ebx + 0x14]
call fcn.0052ab20
mov eax, dword [esp + 0x64]
inc edi
add esp, 0x14
lea esi, [esi + eax*2]
mov dword [ebx + 0x38], esi
cmp edi, dword [ebx + 0x24]
jb 0x527511
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x16
jmp 0x5299e2
test esi, esi
jne case.0x5271a6.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x527939
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x527595
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x527939
cmp edx, dword [ebp + 0x5c]
ja 0x527580
cmp dword [ebp + 0x24], esi
je case.default.0x527939
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5211f2
jmp case.default.0x527939
movzx ecx, word [edx]
lea eax, [edx + 2]
mov dword [ebx + 0x38], eax
cmp ecx, 0xff
jbe 0x5275bb
cmp byte [ebx + 0x31], 0x6e
je case.default.0x527939
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x17
jmp 0x5299e2
mov edx, dword [ebx + 8]
mov esi, ecx
shr esi, 3
and ecx, 7
mov eax, 1
shl eax, cl
test byte [esi + edx], al
jne 0x5275b0
jmp case.default.0x527939
test esi, esi
jne case.0x5271a6.998
add dword [ebx + 0x38], 0xfffffffe
jmp 0x5275e9
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebx + 4]
jb case.default.0x527939
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x18
jmp 0x5299e2
test esi, esi
jne case.0x5271a6.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x527939
mov ecx, dword [ebx + 0x38]
cmp ecx, dword [ebp + 0x54]
jb 0x527654
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x527939
cmp ecx, dword [ebp + 0x5c]
ja 0x52763f
cmp dword [ebp + 0x24], esi
je case.default.0x527939
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x5211f2
jmp case.default.0x527939
movzx eax, word [ecx]
cmp dword [ebx + 0x28], eax
je 0x527665
cmp dword [ebx + 0x2c], eax
jne case.default.0x527939
lea eax, [ecx + 2]
mov dword [ebx + 0x38], eax
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
mov byte [eax + 0x30], 0x19
jmp 0x5299e2
add dword [ebx + 0x38], 0xfffffffe
test esi, esi
je 0x520d7a
mov eax, dword [esp + 0x10]
jmp 0x52011b
test esi, esi
jne case.0x5271a6.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x527939
mov esi, dword [ebx + 0x38]
cmp esi, dword [ebp + 0x54]
jb 0x5276e4
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x527939
cmp esi, dword [ebp + 0x5c]
ja 0x5276cf
cmp dword [ebp + 0x24], 0
je case.default.0x527939
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5211f2
jmp case.default.0x527939
movzx ecx, word [esi]
lea eax, [esi + 2]
mov dword [ebx + 0x38], eax
cmp dword [ebx + 0x28], ecx
jne case.default.0x527939
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
mov byte [eax + 0x30], 0x1b
jmp 0x5299e2
add dword [ebx + 0x38], 0xfffffffe
test esi, esi
je 0x520e82
mov eax, dword [esp + 0x10]
jmp 0x52011b
test esi, esi
jne case.0x5271a6.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x527939
mov ecx, dword [ebx + 0x38]
cmp ecx, dword [ebp + 0x54]
jb 0x52776e
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x527939
cmp ecx, dword [ebp + 0x5c]
ja 0x527759
cmp dword [ebp + 0x24], esi
je case.default.0x527939
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x5211f2
jmp case.default.0x527939
movzx eax, word [ecx]
cmp dword [ebx + 0x28], eax
je case.default.0x527939
cmp dword [ebx + 0x2c], eax
je case.default.0x527939
lea eax, [ecx + 2]
mov dword [ebx + 0x38], eax
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x1d
jmp 0x5299e2
test esi, esi
jne case.0x5271a6.998
add dword [ebx + 0x38], 0xfffffffe
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebx + 4]
jne 0x52954d
mov edi, dword [esp + 0x68]
jmp 0x51fdd0
test esi, esi
jne case.0x5271a6.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x527939
mov esi, dword [ebx + 0x38]
cmp esi, dword [ebp + 0x54]
jb 0x52780a
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x527939
cmp esi, dword [ebp + 0x5c]
ja 0x5277f5
cmp dword [ebp + 0x24], 0
je case.default.0x527939
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5211f2
jmp case.default.0x527939
movzx ecx, word [esi]
lea eax, [esi + 2]
mov dword [ebx + 0x38], eax
cmp dword [ebx + 0x28], ecx
je case.default.0x527939
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x1f
jmp 0x5299e2
test esi, esi
jne case.0x5271a6.998
add dword [ebx + 0x38], 0xfffffffe
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebx + 4]
jne 0x529558
mov edi, dword [esp + 0x68]
jmp 0x51fdd0
test esi, esi
jne case.0x5271a6.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x527939
mov edx, dword [ebx + 0x38]
mov ecx, dword [ebp + 0x54]
cmp edx, ecx
jb 0x52789e
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x527939
cmp edx, dword [ebp + 0x5c]
ja 0x527889
cmp dword [ebp + 0x24], esi
je case.default.0x527939
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5211f2
jmp case.default.0x527939
mov edi, dword [ebx + 0x28]
cmp edi, 0xc
jne 0x527907
mov esi, dword [ebp + 0x88]
lea eax, [ebp + 0x8c]
test esi, esi
je 0x5278d6
push dword [esp + 0x14]
push eax
push ecx
push esi
push edx
call fcn.005370b0
add esp, 0x14
test eax, eax
jne case.default.0x527939
mov edx, dword [ebx + 0x38]
mov edi, dword [ebx + 0x28]
jmp 0x527907
mov esi, dword [eax]
lea eax, [esi + esi]
sub ecx, eax
cmp edx, ecx
ja 0x527907
mov ax, word [edx]
cmp ax, word [ebp + 0x90]
jne 0x527907
cmp esi, 1
je case.default.0x527939
mov ax, word [edx + 2]
cmp ax, word [ebp + 0x92]
je case.default.0x527939
movzx ecx, word [edx]
lea eax, [edi - 6]
lea esi, [edx + 2]
mov dword [ebx + 0x38], esi
cmp eax, 0xf
ja case.0x52791c.15
jmp dword [eax*4 + 0x52a7e4]
cmp ecx, 0x85
ja 0x527940
je case.0x527939.11
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x527939
jmp dword [ecx*4 + 0x52a824]
sub ecx, 0x2028
je case.0x527939.11
sub ecx, 1
jne case.default.0x527939
cmp word [ebp + 0x3e], 2
jne case.0x52791c.13
jmp case.default.0x527939
cmp ecx, 0x2000
ja 0x5279b1
je case.default.0x527939
cmp ecx, 0xa0
ja 0x527994
je case.default.0x527939
cmp ecx, 9
je case.default.0x527939
cmp ecx, 0x20
jne case.0x52791c.13
jmp case.default.0x527939
cmp ecx, 0x1680
je case.default.0x527939
cmp ecx, 0x180e
jne case.0x52791c.13
jmp case.default.0x527939
cmp ecx, 0x3000
ja case.0x52791c.13
je case.default.0x527939
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x52791c.13
movzx eax, byte [ecx + 0x52a83c]
jmp dword [eax*4 + 0x52a834]
cmp ecx, 0x2000
ja 0x527a30
je case.0x52791c.13
cmp ecx, 0xa0
ja 0x527a13
je case.0x52791c.13
cmp ecx, 9
je case.0x52791c.13
cmp ecx, 0x20
je case.0x52791c.13
jmp case.default.0x527939
cmp ecx, 0x1680
je case.0x52791c.13
cmp ecx, 0x180e
je case.0x52791c.13
jmp case.default.0x527939
cmp ecx, 0x3000
ja case.default.0x527939
je case.0x52791c.13
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.default.0x527939
movzx eax, byte [ecx + 0x52a8a4]
jmp dword [eax*4 + 0x52a89c]
cmp ecx, 0x85
ja 0x527a80
je case.default.0x527939
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x52791c.13
jmp dword [ecx*4 + 0x52a904]
sub ecx, 0x2028
je case.default.0x527939
sub ecx, 1
jne case.0x52791c.13
jmp case.default.0x527939
cmp ecx, 0x85
ja 0x527abb
je case.0x52791c.13
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x527939
jmp dword [ecx*4 + 0x52a914]
sub ecx, 0x2028
je case.0x52791c.13
sub ecx, 1
je case.0x52791c.13
jmp case.default.0x527939
cmp ecx, 0xff
ja case.0x52791c.13
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 8
je case.0x52791c.13
jmp case.default.0x527939
cmp ecx, 0xff
ja case.default.0x527939
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 8
jne case.0x52791c.13
jmp case.default.0x527939
cmp ecx, 0xff
ja case.0x52791c.13
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 1
je case.0x52791c.13
jmp case.default.0x527939
cmp ecx, 0xff
ja case.default.0x527939
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 1
jne case.0x52791c.13
jmp case.default.0x527939
cmp ecx, 0xff
ja case.0x52791c.13
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 0x10
je case.0x52791c.13
jmp case.default.0x527939
cmp ecx, 0xff
ja case.default.0x527939
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 0x10
jne case.0x52791c.13
jmp case.default.0x527939
test esi, esi
jne case.0x5271a6.998
mov eax, dword [ebx + 0x38]
add eax, 0xfffffffe
mov dword [ebx + 0x38], eax
mov ecx, eax
cmp dword [ebx + 0x28], 0x11
jne 0x527bbc
cmp eax, dword [ebx + 4]
jbe 0x527bbc
cmp word [eax], 0xa
jne 0x527bbc
cmp word [eax - 2], 0xd
lea edx, [eax - 2]
jne 0x527bbc
mov dword [ebx + 0x38], edx
mov ecx, edx
cmp ecx, dword [ebx + 4]
je 0x51fdc4
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x22
jmp 0x5299e2
test esi, esi
jne case.0x5271a6.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x527939
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x527c24
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x527939
cmp edx, dword [ebp + 0x5c]
ja 0x527c0f
cmp dword [ebp + 0x24], esi
je case.default.0x527939
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5211f2
jmp case.default.0x527939
movzx ecx, word [edx]
add edx, 2
mov esi, dword [esp + 0x14]
mov dword [ebx + 0x38], edx
test esi, esi
je 0x527c62
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x527c62
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebx + 0x38], eax
push esi
push dword [ebx + 8]
push ecx
call fcn.005377a0
add esp, 0xc
test eax, eax
jne 0x5295cb
jmp case.default.0x527939
test esi, esi
jne case.0x5271a6.998
mov ecx, dword [ebx + 0x38]
lea edx, [ecx - 2]
mov dword [ebx + 0x38], edx
cmp ecx, dword [ebx + 4]
jbe case.default.0x527939
cmp dword [esp + 0x14], esi
je 0x521bb4
mov ax, word [edx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x521bb4
lea eax, [edx - 2]
mov dword [ebx + 0x38], eax
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x65
jmp 0x5299e2
test esi, esi
jne case.0x5271a6.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x527939
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x527d1e
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x527939
cmp edx, dword [ebp + 0x5c]
ja 0x527d09
cmp dword [ebp + 0x24], esi
je case.default.0x527939
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5211f2
jmp case.default.0x527939
movzx ecx, word [edx]
add edx, 2
mov eax, ecx
mov dword [ebx + 0x38], edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x527d54
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebx + 0x38], eax
cmp ecx, 0xff
jbe 0x527d71
cmp byte [ebx + 0x31], 0x6e
je case.default.0x527939
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xc8
jmp 0x5299e2
mov edx, dword [ebx + 8]
mov esi, ecx
shr esi, 3
and ecx, 7
mov eax, 1
shl eax, cl
test byte [esi + edx], al
jne 0x527d66
jmp case.default.0x527939
test esi, esi
jne case.0x5271a6.998
mov ecx, dword [ebx + 0x38]
lea edx, [ecx - 2]
mov dword [ebx + 0x38], edx
cmp ecx, dword [ebx + 4]
jbe case.default.0x527939
mov ax, word [edx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x5295da
lea eax, [edx - 2]
mov dword [ebx + 0x38], eax
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xc9
jmp 0x5299e2
test esi, esi
jne case.0x5271a6.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x527939
mov edi, dword [ebx + 0xc]
mov ebp, dword [ebp + 0x54]
mov eax, ebp
mov ebx, dword [ebx + 0x38]
lea esi, [edi + edi]
sub eax, esi
cmp ebx, eax
ja 0x527e68
mov eax, dword [esp + 0x10]
mov ecx, ebx
mov edx, dword [eax + 8]
sub esi, 4
jb 0x527e22
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x527e2b
add ecx, 4
add edx, 4
sub esi, 4
jae 0x527e11
cmp esi, 0xfffffffc
je 0x5295e5
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x527e68
cmp esi, 0xfffffffd
je 0x5295e5
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x527e68
cmp esi, 0xfffffffe
je 0x5295e5
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x527e68
cmp esi, 0xffffffff
je 0x5295e5
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x5295e5
mov ecx, dword [esp + 0x10]
mov edi, dword [ecx + 0x14]
test edi, edi
je 0x527ee7
lea esi, [edi + edi]
mov eax, ebp
sub eax, esi
cmp ebx, eax
ja 0x527ee7
lea edx, [ecx + 0x32]
mov ecx, ebx
sub esi, 4
jb 0x527ea1
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x527eaa
add ecx, 4
add edx, 4
sub esi, 4
jae 0x527e90
cmp esi, 0xfffffffc
je 0x5295e5
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x527ee7
cmp esi, 0xfffffffd
je 0x5295e5
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x527ee7
cmp esi, 0xfffffffe
je 0x5295e5
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x527ee7
cmp esi, 0xffffffff
je 0x5295e5
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x5295e5
cmp ebx, ebp
mov ebp, dword [esp + 0x6c]
jb case.default.0x527939
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x527939
cmp ebx, dword [ebp + 0x5c]
ja 0x527f11
cmp dword [ebp + 0x24], 0
je case.default.0x527939
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5211f2
jmp case.default.0x527939
test esi, esi
jne case.0x5271a6.998
add dword [ebx + 0x38], 0xfffffffe
mov edx, 0xfc00
mov ecx, dword [ebx + 0x38]
mov ax, word [ecx]
and ax, dx
mov edx, 0xdc00
cmp ax, dx
mov eax, dword [esp + 0x10]
jne 0x527f54
add ecx, 0xfffffffe
mov dword [ebx + 0x38], ecx
cmp ecx, dword [eax + 4]
jbe 0x51fdc4
mov esi, dword [eax]
mov byte [eax + 0x30], 0xcb
jmp 0x5299e6
test esi, esi
jne case.0x5271a6.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x527939
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x527fbc
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x527939
cmp edx, dword [ebp + 0x5c]
ja 0x527fa7
cmp dword [ebp + 0x24], esi
je case.default.0x527939
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5211f2
jmp case.default.0x527939
movzx ecx, word [edx]
add edx, 2
mov eax, ecx
mov dword [ebx + 0x38], edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x527ff2
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebx + 0x38], eax
cmp dword [ebx + 0x28], ecx
je case.default.0x527939
cmp dword [ebx + 0x2c], ecx
je case.default.0x527939
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xcc
jmp 0x5299e2
test esi, esi
jne case.0x5271a6.998
add dword [ebx + 0x38], 0xfffffffe
mov esi, 0xfc00
mov ecx, dword [ebx + 0x38]
mov ax, word [ecx]
and ax, si
mov esi, 0xdc00
cmp ax, si
mov eax, dword [esp + 0x10]
jne 0x52803d
add ecx, 0xfffffffe
mov dword [ebx + 0x38], ecx
cmp ecx, dword [eax + 4]
ja 0x5295fe
mov edi, dword [esp + 0x68]
jmp 0x51fdd0
test esi, esi
jne case.0x5271a6.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x527939
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x5280a3
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x527939
cmp edx, dword [ebp + 0x5c]
ja 0x52808e
cmp dword [ebp + 0x24], esi
je case.default.0x527939
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5211f2
jmp case.default.0x527939
movzx ecx, word [edx]
add edx, 2
mov eax, ecx
mov dword [ebx + 0x38], edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5280d9
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebx + 0x38], eax
cmp dword [ebx + 0x28], ecx
je case.default.0x527939
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xce
jmp 0x5299e2
test esi, esi
jne case.0x5271a6.998
add dword [ebx + 0x38], 0xfffffffe
mov esi, 0xfc00
mov ecx, dword [ebx + 0x38]
mov ax, word [ecx]
and ax, si
mov esi, 0xdc00
cmp ax, si
jne 0x528117
lea eax, [ecx - 2]
mov dword [ebx + 0x38], eax
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebx + 4]
ja 0x529609
mov edi, dword [esp + 0x68]
jmp 0x51fdd0
test esi, esi
jne case.0x5271a6.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x527939
mov ecx, dword [ebx + 0x38]
cmp ecx, dword [ebp + 0x54]
jb 0x528180
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x527939
cmp ecx, dword [ebp + 0x5c]
ja 0x52816b
cmp dword [ebp + 0x24], esi
je case.default.0x527939
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x5211f2
jmp case.default.0x527939
movzx eax, word [ecx]
add ecx, 2
mov edx, dword [esp + 0x14]
mov dword [ebx + 0x38], ecx
test edx, edx
je 0x5281a3
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5281a3
lea eax, [ecx + 2]
mov dword [ebx + 0x38], eax
cmp dword [ebx + 0x28], 0xf
jne case.0x52948a.0
mov eax, dword [esp + 0x10]
xor esi, esi
jmp 0x52011b
test esi, esi
jne case.0x5271a6.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x527939
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x52820c
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x527939
cmp edx, dword [ebp + 0x5c]
ja 0x5281f7
cmp dword [ebp + 0x24], esi
je case.default.0x527939
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5211f2
jmp case.default.0x527939
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [ebx + 0x38], edx
je 0x528249
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x528249
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebx + 0x38], eax
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ab420]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5af820]
lea eax, [eax + eax*2]
mov al, byte [eax*4 + 0x5a7211]
cmp al, 9
je 0x528280
cmp al, 5
je 0x528280
cmp al, 8
je 0x528280
xor ecx, ecx
jmp 0x528285
mov ecx, 1
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.default.0x527939
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xd1
jmp 0x5299e2
test esi, esi
jne case.0x5271a6.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x527939
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x5282f5
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x527939
cmp edx, dword [ebp + 0x5c]
ja 0x5282e0
cmp dword [ebp + 0x24], esi
je case.default.0x527939
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5211f2
jmp case.default.0x527939
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [ebx + 0x38], edx
je 0x528332
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x528332
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebx + 0x38], eax
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ab420]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5af820]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5a7211]
mov eax, dword [eax*4 + 0x5a4cb0]
cmp eax, dword [ebx + 0x2c]
sete cl
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.default.0x527939
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xd2
jmp 0x5299e2
test esi, esi
jne case.0x5271a6.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x527939
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x5283d9
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x527939
cmp edx, dword [ebp + 0x5c]
ja 0x5283c4
cmp dword [ebp + 0x24], esi
je case.default.0x527939
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5211f2
jmp case.default.0x527939
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [ebx + 0x38], edx
je 0x528416
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x528416
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebx + 0x38], eax
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ab420]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5af820]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5a7211]
cmp eax, dword [ebx + 0x2c]
sete cl
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.default.0x527939
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xd3
jmp 0x5299e2
test esi, esi
jne case.0x5271a6.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x527939
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x5284b6
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x527939
cmp edx, dword [ebp + 0x5c]
ja 0x5284a1
cmp dword [ebp + 0x24], esi
je case.default.0x527939
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5211f2
jmp case.default.0x527939
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [ebx + 0x38], edx
je 0x5284f3
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5284f3
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebx + 0x38], eax
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ab420]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5af820]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5a7210]
cmp eax, dword [ebx + 0x2c]
sete cl
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.default.0x527939
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xd4
jmp 0x5299e2
test esi, esi
jne case.0x5271a6.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x527939
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x528593
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x527939
cmp edx, dword [ebp + 0x5c]
ja 0x52857e
cmp dword [ebp + 0x24], esi
je case.default.0x527939
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5211f2
jmp case.default.0x527939
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [ebx + 0x38], edx
je 0x5285d0
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5285d0
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebx + 0x38], eax
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ab420]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5af820]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5a7211]
mov eax, dword [eax*4 + 0x5a4cb0]
cmp eax, 1
je 0x52860d
cmp eax, 3
je 0x52860d
xor ecx, ecx
jmp 0x528612
mov ecx, 1
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.default.0x527939
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xd5
jmp 0x5299e2
test esi, esi
jne case.0x5271a6.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x527939
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x528682
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x527939
cmp edx, dword [ebp + 0x5c]
ja 0x52866d
cmp dword [ebp + 0x24], esi
je case.default.0x527939
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5211f2
jmp case.default.0x527939
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [ebx + 0x38], edx
je 0x5286bf
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5286bf
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebx + 0x38], eax
cmp ecx, 0x20
ja 0x5286d9
je case.0x528784.8193
lea eax, [ecx - 9]
cmp eax, 4
ja case.0x528784.8203
jmp dword [eax*4 + 0x52a924]
cmp ecx, 0x2000
ja 0x528768
je case.0x528784.8193
cmp ecx, 0x1680
ja 0x528760
je case.0x528784.8193
mov eax, ecx
sub eax, 0x85
je case.0x528784.8193
sub eax, 0x1b
je case.0x528784.8193
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ab420]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5af820]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5a7211]
cmp dword [eax*4 + 0x5a4cb0], 6
sete cl
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.default.0x527939
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xd6
jmp 0x5299e2
cmp ecx, 0x180e
jmp 0x528709
cmp ecx, 0x3000
ja case.0x528784.8203
je case.0x528784.8193
lea eax, [ecx - 0x2001]
cmp eax, 0x5e
ja case.0x528784.8203
movzx eax, byte [eax + 0x52a940]
jmp dword [eax*4 + 0x52a938]
cmp dword [ebx + 0x28], 0xf
jne case.0x52948a.7
jmp case.default.0x527939
test esi, esi
jne case.0x5271a6.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x527939
mov ecx, dword [ebx + 0x38]
cmp ecx, dword [ebp + 0x54]
jb 0x5287ea
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x527939
cmp ecx, dword [ebp + 0x5c]
ja 0x5287d5
cmp dword [ebp + 0x24], esi
je case.default.0x527939
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x5211f2
jmp case.default.0x527939
movzx edx, word [ecx]
add ecx, 2
cmp dword [esp + 0x14], 0
mov dword [ebx + 0x38], ecx
je 0x528827
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x528827
movzx eax, word [ecx]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
lea eax, [ecx + 2]
add edx, 0x10000
mov dword [ebx + 0x38], eax
mov eax, edx
shr eax, 7
movzx ecx, word [eax*2 + 0x5ab420]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5af820]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5a7211]
mov eax, dword [eax*4 + 0x5a4cb0]
cmp eax, 1
je 0x52886b
cmp eax, 3
je 0x52886b
cmp edx, 0x5f
je 0x52886b
xor ecx, ecx
jmp 0x528870
mov ecx, 1
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.default.0x527939
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xd7
jmp 0x5299e2
test esi, esi
jne case.0x5271a6.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x527939
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x5288e0
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x527939
cmp edx, dword [ebp + 0x5c]
ja 0x5288cb
cmp dword [ebp + 0x24], esi
je case.default.0x527939
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5211f2
jmp case.default.0x527939
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [ebx + 0x38], edx
je 0x52891d
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x52891d
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebx + 0x38], eax
mov eax, dword [ebx + 0x2c]
mov edx, dword [eax*4 + 0x5a6c48]
lea eax, [eax*4 + 0x5a6c48]
cmp ecx, edx
jb 0x52893f
lea eax, [eax + 4]
cmp ecx, edx
je 0x528954
mov edx, dword [eax]
cmp ecx, edx
jae 0x528932
cmp dword [ebx + 0x28], 0xf
jne case.default.0x527939
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xd8
jmp 0x5299e2
cmp dword [ebx + 0x28], 0xf
jne case.0x52948a.10
jmp case.default.0x527939
test esi, esi
jne case.0x5271a6.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x527939
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x5289b3
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x527939
cmp edx, dword [ebp + 0x5c]
ja 0x52899e
cmp dword [ebp + 0x24], esi
je case.default.0x527939
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5211f2
jmp case.default.0x527939
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [ebx + 0x38], edx
je 0x5289f0
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5289f0
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebx + 0x38], eax
cmp ecx, 0x24
je 0x528a1b
cmp ecx, 0x40
je 0x528a1b
cmp ecx, 0x60
je 0x528a1b
cmp ecx, 0xa0
jb 0x528a0f
cmp ecx, 0xd7ff
jbe 0x528a1b
cmp ecx, 0xe000
jae 0x528a1b
xor ecx, ecx
jmp 0x528a20
mov ecx, 1
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.default.0x527939
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xd9
jmp 0x5299e2
test esi, esi
jne case.0x5271a6.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x527939
mov ecx, dword [ebx + 0x38]
cmp ecx, dword [ebp + 0x54]
jb 0x52961f
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x527939
cmp ecx, dword [ebp + 0x5c]
ja 0x528a7f
cmp dword [ebp + 0x24], esi
je case.default.0x527939
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x5211f2
jmp case.default.0x527939
test esi, esi
jne case.0x5271a6.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x527939
mov edx, dword [ebx + 0x38]
mov ecx, dword [ebp + 0x54]
cmp edx, ecx
jb 0x528aea
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x527939
cmp edx, dword [ebp + 0x5c]
ja 0x528ad5
cmp dword [ebp + 0x24], esi
je case.default.0x527939
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5211f2
jmp case.default.0x527939
mov edi, dword [ebx + 0x28]
cmp edi, 0xc
jne 0x528b53
mov esi, dword [ebp + 0x88]
lea eax, [ebp + 0x8c]
test esi, esi
je 0x528b22
push dword [esp + 0x14]
push eax
push ecx
push esi
push edx
call fcn.005370b0
add esp, 0x14
test eax, eax
jne case.default.0x527939
mov edx, dword [ebx + 0x38]
mov edi, dword [ebx + 0x28]
jmp 0x528b53
mov esi, dword [eax]
lea eax, [esi + esi]
sub ecx, eax
cmp edx, ecx
ja 0x528b53
mov ax, word [edx]
cmp ax, word [ebp + 0x90]
jne 0x528b53
cmp esi, 1
je case.default.0x527939
mov ax, word [edx + 2]
cmp ax, word [ebp + 0x92]
je case.default.0x527939
movzx ecx, word [edx]
add edx, 2
mov eax, ecx
mov dword [ebx + 0x38], edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x528b89
movzx eax, word [edx]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edx, 2
mov dword [ebx + 0x38], edx
lea eax, [edi - 6]
cmp eax, 0xf
ja case.0x52791c.15
jmp dword [eax*4 + 0x52a9a0]
cmp ecx, 0x85
ja 0x528bb9
je case.0x528bb2.11
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x527939
jmp dword [ecx*4 + 0x52a9e0]
sub ecx, 0x2028
je case.0x528bb2.11
sub ecx, 1
jne case.default.0x527939
cmp word [ebp + 0x3e], 2
jne case.0x528b95.13
jmp case.default.0x527939
cmp ecx, 0x2000
ja 0x528c2a
je case.default.0x527939
cmp ecx, 0xa0
ja 0x528c0d
je case.default.0x527939
cmp ecx, 9
je case.default.0x527939
cmp ecx, 0x20
jne case.0x528b95.13
jmp case.default.0x527939
cmp ecx, 0x1680
je case.default.0x527939
cmp ecx, 0x180e
jne case.0x528b95.13
jmp case.default.0x527939
cmp ecx, 0x3000
ja case.0x528b95.13
je case.default.0x527939
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x528b95.13
movzx eax, byte [ecx + 0x52a9f8]
jmp dword [eax*4 + 0x52a9f0]
cmp ecx, 0x2000
ja 0x528ca9
je case.0x528b95.13
cmp ecx, 0xa0
ja 0x528c8c
je case.0x528b95.13
cmp ecx, 9
je case.0x528b95.13
cmp ecx, 0x20
je case.0x528b95.13
jmp case.default.0x527939
cmp ecx, 0x1680
je case.0x528b95.13
cmp ecx, 0x180e
je case.0x528b95.13
jmp case.default.0x527939
cmp ecx, 0x3000
ja case.default.0x527939
je case.0x528b95.13
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.default.0x527939
movzx eax, byte [ecx + 0x52aa60]
jmp dword [eax*4 + 0x52aa58]
cmp ecx, 0x85
ja 0x528cf9
je case.default.0x527939
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x528b95.13
jmp dword [ecx*4 + 0x52aac0]
sub ecx, 0x2028
je case.default.0x527939
sub ecx, 1
jne case.0x528b95.13
jmp case.default.0x527939
cmp ecx, 0x85
ja 0x528d34
je case.0x528b95.13
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x527939
jmp dword [ecx*4 + 0x52aad0]
sub ecx, 0x2028
je case.0x528b95.13
sub ecx, 1
je case.0x528b95.13
jmp case.default.0x527939
cmp ecx, 0x100
jae case.0x528b95.13
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 8
je case.0x528b95.13
jmp case.default.0x527939
cmp ecx, 0x100
jae case.default.0x527939
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 8
jne case.0x528b95.13
jmp case.default.0x527939
cmp ecx, 0x100
jae case.0x528b95.13
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 1
je case.0x528b95.13
jmp case.default.0x527939
cmp ecx, 0x100
jae case.default.0x527939
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 1
jne case.0x528b95.13
jmp case.default.0x527939
cmp ecx, 0x100
jae case.0x528b95.13
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 0x10
je case.0x528b95.13
jmp case.default.0x527939
cmp ecx, 0x100
jae case.default.0x527939
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 0x10
jne case.0x528b95.13
jmp case.default.0x527939
test esi, esi
jne case.0x5271a6.998
mov edx, dword [ebx + 0x38]
add edx, 0xfffffffe
mov dword [ebx + 0x38], edx
cmp dword [esp + 0x14], esi
jne 0x5292c6
movzx ecx, word [edx]
jmp 0x52930f
test esi, esi
jne case.0x5271a6.998
add dword [ebx + 0x38], 0xfffffffe
mov edx, 0xfc00
mov ecx, dword [ebx + 0x38]
mov ax, word [ecx]
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x528e4f
add ecx, 0xfffffffe
mov dword [ebx + 0x38], ecx
cmp dword [ebx + 0x28], 0x11
mov eax, ecx
jne 0x528e71
cmp ecx, dword [ebx + 4]
jbe 0x528e71
cmp word [ecx], 0xa
jne 0x528e71
cmp word [ecx - 2], 0xd
lea edx, [ecx - 2]
jne 0x528e71
mov dword [ebx + 0x38], edx
mov eax, edx
cmp eax, dword [ebx + 4]
jbe 0x51fdc4
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xdd
jmp 0x5299e2
test esi, esi
jne case.0x5271a6.998
mov ecx, dword [ebx + 0x38]
add ecx, 0xfffffffe
mov edx, ecx
mov dword [ebx + 0x38], ecx
cmp dword [esp + 0x14], esi
je 0x528eb9
mov ax, word [edx]
mov esi, 0xfc00
and ax, si
mov esi, 0xdc00
cmp ax, si
jne 0x528eb9
lea ecx, [edx - 2]
mov dword [ebx + 0x38], ecx
cmp ecx, dword [ebx + 4]
jbe 0x51fdc4
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xde
jmp 0x5299e2
test esi, esi
jne case.0x5271a6.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x527939
mov ecx, dword [ebx + 0x38]
cmp ecx, dword [ebp + 0x54]
jb 0x528f21
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x527939
cmp ecx, dword [ebp + 0x5c]
ja 0x528f0c
cmp dword [ebp + 0x24], esi
je case.default.0x527939
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x5211f2
jmp case.default.0x527939
movzx edx, word [ecx]
add ecx, 2
cmp dword [esp + 0x14], 0
mov dword [ebx + 0x38], ecx
je 0x528f5e
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x528f5e
movzx eax, word [ecx]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
lea eax, [ecx + 2]
add edx, 0x10000
mov dword [ebx + 0x38], eax
mov ecx, dword [ebx + 0x2c]
mov eax, edx
shr eax, 7
and edx, 0x7f
movzx eax, word [eax*2 + 0x5ab420]
shl eax, 7
add eax, edx
movzx eax, word [eax*2 + 0x5af820]
lea eax, [eax + eax*2]
movzx edx, word [eax*4 + 0x5a721a]
mov eax, ecx
shr eax, 5
and edx, 0xfff
add edx, eax
and ecx, 0x1f
mov eax, 1
shl eax, cl
mov ecx, dword [edx*4 + 0x5a66c0]
and ecx, eax
neg ecx
sbb ecx, ecx
xor eax, eax
neg ecx
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.default.0x527939
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xdf
jmp 0x5299e2
test esi, esi
jne case.0x5271a6.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x527939
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x52901f
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x527939
cmp edx, dword [ebp + 0x5c]
ja 0x52900a
cmp dword [ebp + 0x24], esi
je case.default.0x527939
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5211f2
jmp case.default.0x527939
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [ebx + 0x38], edx
je 0x52905c
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x52905c
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebx + 0x38], eax
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ab420]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5af820]
lea eax, [eax + eax*2]
movzx eax, word [eax*4 + 0x5a7218]
shr eax, 0xb
cmp eax, dword [ebx + 0x2c]
sete cl
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.default.0x527939
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xe0
jmp 0x5299e2
test esi, esi
jne case.0x5271a6.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x527939
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x5290ff
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x527939
cmp edx, dword [ebp + 0x5c]
ja 0x5290ea
cmp dword [ebp + 0x24], esi
je case.default.0x527939
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x5211f2
jmp case.default.0x527939
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [ebx + 0x38], edx
je 0x52913c
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x52913c
movzx eax, word [edx]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [edx + 2]
add ecx, 0x10000
mov dword [ebx + 0x38], eax
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ab420]
shl eax, 7
add eax, ecx
mov ecx, dword [ebx + 0x2c]
movzx eax, word [eax*2 + 0x5af820]
lea edx, [eax + eax*2]
movzx eax, byte [edx*4 + 0x5a7210]
cmp eax, ecx
je 0x529197
movzx edx, word [edx*4 + 0x5a7218]
mov eax, ecx
shr eax, 5
and edx, 0x3ff
add edx, eax
and ecx, 0x1f
mov eax, 1
shl eax, cl
test dword [edx*4 + 0x5a6f18], eax
jne 0x529197
xor ecx, ecx
jmp 0x52919c
mov ecx, 1
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.default.0x527939
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xe1
jmp 0x5299e2
mov esi, dword [esp + 0x24]
mov eax, dword [esi + 0x50]
shl eax, 2
push eax
lea eax, [esi + 0x54]
push eax
lea eax, [ebx + 0x54]
push eax
call fcn.00569ef0
mov eax, dword [esi + 0x50]
add esp, 0xc
mov dword [ebx + 0x50], eax
mov eax, dword [esi + 0x40]
mov dword [ebx + 0x40], eax
mov ecx, dword [ebx]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [ebx], ecx
cmp word [ecx], 0x78
je 0x5291e1
lea eax, [ecx + 4]
mov dword [ebx], eax
jmp 0x51fdc4
mov esi, dword [ebx]
nop dword [eax]
movzx eax, word [esi + 2]
lea esi, [esi + eax*2]
mov dword [ebx], esi
cmp word [esi], 0x78
je 0x529200
mov edi, dword [esp + 0x68]
lea eax, [esi + 4]
mov dword [ebx], eax
jmp 0x51fdd0
mov ecx, dword [ebx]
movzx eax, word [ecx + 2]
lea esi, [ecx + eax*2]
mov dword [ebx], esi
cmp word [esi], 0x78
je 0x5298ce
mov edi, dword [esp + 0x68]
lea eax, [esi + 4]
mov dword [ebx], eax
jmp 0x51fdd0
mov esi, dword [esp + 0x24]
mov eax, dword [esi + 0x50]
shl eax, 2
push eax
lea eax, [esi + 0x54]
push eax
lea eax, [ebx + 0x54]
push eax
call fcn.00569ef0
mov eax, dword [esi + 0x50]
add esp, 0xc
mov dword [ebx + 0x50], eax
jmp 0x5271f2
mov ecx, dword [ebx + 4]
movzx eax, word [ecx + 2]
lea eax, [ecx + eax*2]
mov dword [ebx + 4], eax
cmp word [eax], 0x78
je 0x5294d2
xor eax, eax
cmp dword [ebx + 0x20], eax
sete al
jmp 0x5271f5
mov ebx, dword [esp + 0x10]
mov ecx, dword [ebx]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x5a4b10]
jmp 0x5292a5
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx]
lea esi, [ecx + eax*2]
mov dword [ebx], esi
cmp byte [ebx + 0x31], 0x8f
jne 0x51fdc4
mov eax, 0x2008f
mov byte [ebx + 0x30], 0x23
mov dword [esp + 0x20], eax
jmp 0x5299e2
movzx eax, word [edx]
mov esi, edx
mov ecx, eax
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x5292e2
lea esi, [edx - 2]
mov dword [ebx + 0x38], esi
movzx ecx, word [esi]
movzx ecx, cx
mov edx, esi
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x52930f
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
mov ebx, dword [ebx + 4]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, word [eax*2 + 0x5ab420]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5af820]
lea eax, [eax + eax*2]
movzx edi, byte [eax*4 + 0x5a7212]
cmp edx, ebx
jbe 0x5293e0
mov ebp, dword [esp + 0x14]
movzx eax, word [edx - 2]
add edx, 0xfffffffe
mov ecx, eax
test ebp, ebp
je 0x529391
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x529366
movzx ecx, word [edx - 2]
sub edx, 2
movzx ecx, cx
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x529391
movzx eax, word [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ab420]
shl eax, 7
add eax, ecx
mov ecx, edi
movzx eax, word [eax*2 + 0x5af820]
lea eax, [eax + eax*2]
movzx esi, byte [eax*4 + 0x5a7212]
mov eax, 1
shl eax, cl
test dword [esi*4 + 0x5a4c70], eax
je 0x5293dc
mov eax, dword [esp + 0x10]
mov edi, esi
mov dword [eax + 0x38], edx
cmp edx, ebx
ja 0x529346
mov ebp, dword [esp + 0x6c]
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x38]
cmp eax, dword [ecx + 4]
jbe 0x51fdc4
mov esi, dword [ecx]
mov byte [ecx + 0x30], 0xdc
jmp 0x5299e2
inc dword [ebp + 0x80]
mov ebx, dword [esp + 0x10]
mov eax, dword [ebp + 0x80]
cmp eax, dword [ebp + 0x84]
mov edx, dword [ebx]
movzx eax, word [edx]
movzx ecx, byte [eax + 0x5a4b10]
movzx eax, word [edx + 2]
ja 0x52970f
add ecx, eax
lea eax, [edx + ecx*2]
mov dword [ebx], eax
jmp 0x51fdc8
cmp dword [esp + 0x14], 0
mov ebx, dword [esp + 0x10]
jne 0x528004
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x1d
jmp 0x5299e2
cmp dword [esp + 0x14], 0
mov ebx, dword [esp + 0x10]
jne 0x5280e2
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x1f
jmp 0x5299e2
cmp dword [esp + 0x14], 0
jne 0x527d66
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x17
jmp 0x5299e2
test ecx, ecx
js 0x529491
cmp ecx, 0xd
ja case.0x52791c.15
jmp dword [ecx*4 + 0x52aae0]
cmp dword [ebx + 0x28], 0x16
je 0x5296a0
test esi, esi
jne case.0x528b95.13
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x21
jmp 0x5299e2
cmp ecx, 0x7e
je 0x5294c1
mov eax, 0x80
cmp cx, ax
je 0x5294c1
xor eax, eax
jmp 0x5294c6
mov eax, 1
mov ebx, dword [esp + 0x10]
mov dword [ebx + 0x20], eax
mov eax, dword [ebx]
mov dword [ebx + 4], eax
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
movzx eax, word [eax]
or eax, 0x30000
mov dword [esp + 0x20], eax
movzx eax, word [ecx]
movzx eax, byte [eax + 0x5a4b10]
mov byte [ebx + 0x30], 5
lea esi, [ecx + eax*2]
jmp 0x5299e2
mov eax, dword [esp + 0x10]
cmp cl, 0x7b
jne 0x52950e
lea esi, [edx + 4]
mov byte [ebx + 0x30], 6
jmp 0x5299e6
mov byte [ebx + 0x30], 7
jmp 0x5299e6
mov byte [ebx + 0x30], 1
jmp 0x5299e2
mov eax, dword [ebx + 8]
mov dword [ebx], eax
jmp 0x5297ad
mov eax, dword [esp + 0x4c]
add eax, eax
add dword [ebx + 0x38], eax
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x14
jmp 0x5299e2
mov ebx, dword [esp + 0x10]
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x14
jmp 0x5299e2
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x1e
jmp 0x5299e2
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x20
jmp 0x5299e2
cmp esi, dword [ebp + 0x54]
jae case.0x52791c.13
cmp word [esi], 0xa
jne case.0x52791c.13
lea eax, [esi + 2]
mov dword [ebx + 0x38], eax
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x21
jmp 0x5299e2
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.0x52791c.13
cmp esi, dword [ebp + 0x54]
jb case.0x52791c.13
cmp dword [ebp + 0x88], 0
jne case.0x52791c.13
cmp dword [ebp + 0x8c], 2
jne case.0x52791c.13
movzx eax, word [ebp + 0x90]
cmp ecx, eax
jne case.0x52791c.13
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x5211f2
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x21
jmp 0x5299e2
mov ebx, dword [esp + 0x10]
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x64
jmp 0x5299e2
mov ebx, dword [esp + 0x10]
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xc9
jmp 0x5299e2
mov ecx, dword [esp + 0x10]
lea eax, [ebx + edi*2]
mov dword [ecx + 0x38], eax
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
mov byte [eax + 0x30], 0xca
jmp 0x5299e2
mov esi, dword [eax]
mov byte [eax + 0x30], 0xcd
jmp 0x5299e2
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xcf
jmp 0x5299e2
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xd0
jmp 0x5299e2
movzx edx, word [ecx]
add ecx, 2
mov edi, dword [esp + 0x14]
mov esi, ecx
mov dword [ebx + 0x38], ecx
test edi, edi
je 0x52965f
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x52965f
movzx eax, word [ecx]
lea esi, [ecx + 2]
and edx, 0x3ff
mov dword [ebx + 0x38], esi
shl edx, 0xa
and eax, 0x3ff
or edx, eax
add edx, 0x10000
push 0
push edi
push dword [ebp + 0x54]
push dword [ebp + 0x4c]
push esi
push edx
call fcn.00536eb0
add esp, 0x18
mov dword [ebx + 0x38], eax
cmp eax, dword [ebp + 0x54]
jb 0x5296a0
movzx ecx, word [ebp + 0x3c]
mov edx, ecx
test cx, cx
je 0x5296a0
cmp eax, dword [ebp + 0x5c]
ja 0x529690
cmp dword [ebp + 0x24], 0
je 0x5296a0
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x5211f2
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xda
jmp 0x5299e2
cmp edx, dword [ebp + 0x54]
jae case.0x528b95.13
cmp word [edx], 0xa
jne case.0x528b95.13
lea eax, [edx + 2]
mov dword [ebx + 0x38], eax
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xdb
jmp 0x5299e2
movzx eax, word [ebp + 0x3c]
mov esi, eax
test ax, ax
je case.0x528b95.13
cmp edx, dword [ebp + 0x54]
jb case.0x528b95.13
cmp dword [ebp + 0x88], 0
jne case.0x528b95.13
cmp dword [ebp + 0x8c], 2
jne case.0x528b95.13
movzx eax, word [ebp + 0x90]
cmp ecx, eax
jne case.0x528b95.13
mov dword [ebp + 0x1c], 1
cmp esi, 1
ja 0x5211f2
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xdb
jmp 0x5299e2
mov byte [ebx + 0x30], 0x11
jmp 0x5299dd
mov eax, dword [esp + 0x10]
add esi, 2
mov dword [eax + 4], esi
mov byte [eax + 0x30], 9
jmp 0x5299e2
mov ecx, dword [esp + 0x10]
add esi, 2
mov dword [ecx + 4], esi
movzx eax, word [esi + 2]
lea esi, [esi + eax*2]
mov dword [ecx + 4], esi
cmp word [esi], 0x78
je 0x529735
add esi, 4
mov byte [ecx + 0x30], 0xa
jmp 0x5299e2
mov ebx, dword [esp + 0x10]
add esi, 2
mov ecx, 0x89
mov dword [ebx + 0x28], 1
mov dword [ebx], esi
movzx eax, word [esi]
cmp ax, cx
je 0x529797
mov ecx, 0x8e
cmp ax, cx
jne 0x529785
jmp 0x529797
mov ebx, dword [esp + 0x10]
mov dword [ebx + 0x28], 0
mov eax, 0x20000
jmp 0x5297a0
mov ebx, dword [esp + 0x10]
mov dword [ebx + 0x28], 0
movzx eax, word [esi + 4]
or eax, 0x10000
mov dword [ebx + 0x20], eax
mov dword [ebx + 0x24], 0
mov dword [ebx + 8], esi
mov eax, dword [ebx + 0x38]
mov dword [ebx + 4], eax
mov ecx, dword [ebx]
mov eax, dword [ebx + 0x20]
mov dword [esp + 0x20], eax
movzx eax, word [ecx]
movzx eax, byte [eax + 0x5a4b10]
mov byte [ebx + 0x30], 8
lea esi, [ecx + eax*2]
jmp 0x5299e2
movzx eax, word [esi + 4]
or eax, 0x10000
jmp 0x5297e5
movzx eax, bl
or eax, 0x20000
mov ebx, dword [esp + 0x10]
mov dword [ebx + 0x20], eax
mov eax, dword [ebx + 0x20]
mov dword [esp + 0x20], eax
movzx eax, word [esi]
movzx eax, byte [eax + 0x5a4b10]
mov byte [ebx + 0x30], 2
lea esi, [esi + eax*2]
jmp 0x5299e2
mov ecx, dword [ebp + 0x48]
movzx eax, word [esi + 2]
lea ebx, [ecx + eax*2]
cmp ebx, ecx
jne 0x52981b
xor edi, edi
jmp 0x52981f
movzx edi, word [ebx + 4]
mov ebp, dword [esp + 0x10]
cmp dword [ebp + 0x44], 0xffffffff
je 0x529863
mov eax, dword [ebp + 0x4c]
cmp eax, 0xffffffff
je 0x529863
mov esi, dword [esp + 0x68]
mov edx, edi
or edx, 0x40000
mov esi, dword [esi + 0x18]
add eax, esi
mov ecx, eax
sub ecx, dword [esp + 0x64]
cmp dword [eax + 0x1c], edx
je 0x529857
mov eax, dword [ecx + 0x4c]
cmp eax, 0xffffffff
jne 0x529840
jmp 0x529863
mov eax, dword [ebp + 0x38]
cmp eax, dword [ecx + 0x38]
je 0x529b6e
mov dword [ebp + 4], ebx
or edi, 0x40000
mov ebx, dword [esp + 0x10]
mov dword [ebx + 0x20], edi
mov ecx, dword [ebx + 4]
mov eax, dword [ebx + 0x20]
mov dword [esp + 0x20], eax
movzx eax, word [ecx]
movzx eax, byte [eax + 0x5a4b10]
mov byte [ebx + 0x30], 0xb
lea esi, [ecx + eax*2]
jmp 0x5299e2
movzx eax, bl
mov ebx, dword [esp + 0x10]
or eax, 0x20000
mov dword [ebx + 0x20], eax
mov eax, dword [ebx + 0x20]
mov dword [esp + 0x20], eax
movzx eax, word [esi]
movzx eax, byte [eax + 0x5a4b10]
mov byte [ebx + 0x30], 3
lea esi, [esi + eax*2]
jmp 0x5299e2
movzx eax, bl
mov ebx, dword [esp + 0x10]
or eax, 0x20000
mov dword [ebx + 0x20], eax
mov eax, dword [ebx + 0x20]
mov dword [esp + 0x20], eax
movzx eax, word [esi]
movzx eax, byte [eax + 0x5a4b10]
mov byte [ebx + 0x30], 4
lea esi, [esi + eax*2]
jmp 0x5299e2
mov ebx, dword [esp + 0x10]
lea eax, [esi + 4]
mov dword [ebp + 0x68], eax
mov dword [ebx + 0x40], eax
mov edx, dword [ebx]
movzx eax, word [edx]
movzx ecx, byte [eax + 0x5a4b10]
movzx eax, word [edx + 2]
mov byte [ebx + 0x30], 0xc
jmp 0x5299dd
movzx eax, word [esi]
movzx eax, byte [eax + 0x5a4b10]
lea esi, [esi + eax*2]
mov eax, dword [esp + 0x10]
mov byte [eax + 0x30], 0xd
jmp 0x5299e2
mov ebx, dword [esp + 0x10]
lea eax, [esi + 4]
mov dword [ebp + 0x68], eax
mov dword [ebx + 0x40], eax
mov edx, dword [ebx]
movzx eax, word [edx]
movzx ecx, byte [eax + 0x5a4b10]
movzx eax, word [edx + 2]
mov byte [ebx + 0x30], 0x24
jmp 0x5299dd
movzx eax, word [esi]
movzx eax, byte [eax + 0x5a4b10]
lea esi, [esi + eax*2]
mov eax, dword [esp + 0x10]
mov byte [eax + 0x30], 0xe
jmp 0x5299e2
mov ebx, dword [esp + 0x10]
lea eax, [esi + 4]
mov dword [ebp + 0x68], eax
mov dword [ebx + 0x40], eax
mov edx, dword [ebx]
movzx eax, word [edx]
movzx ecx, byte [eax + 0x5a4b10]
movzx eax, word [edx + 2]
mov byte [ebx + 0x30], 0xf
jmp 0x5299dd
movzx eax, word [esi]
movzx eax, byte [eax + 0x5a4b10]
lea esi, [esi + eax*2]
mov eax, dword [esp + 0x10]
mov byte [eax + 0x30], 0x10
jmp 0x5299e2
movzx eax, word [esi]
movzx eax, byte [eax + 0x5a4b10]
lea esi, [esi + eax*2]
mov eax, dword [esp + 0x10]
mov byte [eax + 0x30], 0x12
jmp 0x5299e2
mov ebx, dword [esp + 0x10]
lea eax, [esi + 4]
mov dword [ebp + 0x68], eax
mov dword [ebx + 0x40], eax
mov edx, dword [ebx]
movzx eax, word [edx]
movzx ecx, byte [eax + 0x5a4b10]
movzx eax, word [edx + 2]
mov byte [ebx + 0x30], 0x13
add ecx, eax
lea esi, [edx + ecx*2]
mov eax, dword [esp + 0x10]
mov ebp, dword [esp + 0x64]
lea edi, [eax + ebp]
mov dword [esp + 0x1c], edi
cmp edi, dword [esp + 0x3c]
jb 0x529a9d
mov eax, dword [esp + 0x68]
mov ebx, dword [eax + 0x1c]
mov eax, dword [esp + 0x6c]
lea edi, [ebx + ebx]
mov ecx, dword [eax + 0xc]
cmp edi, ecx
jbe 0x529a22
xor edx, edx
mov eax, ecx
div ebp
mov edi, ecx
sub edi, edx
cmp ebx, edi
jae 0x529b7b
mov eax, dword [esp + 0x68]
push dword [eax + 8]
mov eax, dword [eax]
push edi
call eax
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x529b88
mov eax, dword [esp + 0x68]
push dword [esp + 0x38]
push dword [eax + 0x18]
push ebx
call fcn.00569ef0
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x1c]
mov ecx, dword [eax + 0x18]
mov eax, ebx
sub eax, ecx
add edx, eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x1c], edx
add edx, ebp
mov dword [esp + 0x28], edx
push dword [eax + 8]
mov eax, dword [eax + 4]
push ecx
call eax
mov eax, dword [esp + 0x7c]
xor edx, edx
add esp, 0x14
mov dword [eax + 0x18], ebx
mov dword [eax + 0x1c], edi
mov eax, edi
div ebp
mov eax, edi
mov edi, dword [esp + 0x1c]
sub eax, edx
mov dword [esp + 0x38], eax
add eax, ebx
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x10]
lea ecx, [ebp - 0x38]
add eax, 0x38
push ecx
push eax
lea eax, [edi + 0x38]
push eax
call fcn.00569ef0
mov eax, dword [esp + 0x1c]
add esp, 0xc
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x10], edi
mov eax, dword [eax + 0x18]
inc eax
mov dword [edi + 0x18], eax
mov eax, edi
mov edi, dword [esp + 0x68]
jmp 0x51fd45
mov eax, ebp
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x6c]
mov dword [eax + 0x58], edx
mov eax, dword [ebx + 0x50]
mov dword [ecx + 0x38], eax
mov eax, dword [ebx + 0x40]
mov dword [ecx + 0x64], eax
mov eax, dword [ebx + 0x38]
cmp eax, dword [ecx + 0x60]
jbe 0x529af3
mov dword [ecx + 0x60], eax
mov eax, dword [ebx + 0x3c]
sub eax, dword [ecx + 0x4c]
sar eax, 1
mov dword [edi + 0x34], eax
mov eax, dword [ebx + 0x38]
sub eax, dword [ecx + 0x4c]
sar eax, 1
mov dword [edi + 0x38], eax
movzx esi, word [edi + 0x2e]
movzx eax, word [esp + 0x60]
inc eax
cmp eax, esi
cmovbe esi, eax
add esi, esi
lea eax, [esi*4 - 8]
push eax
lea eax, [ebx + 0x54]
push eax
lea eax, [edi + 0x3c]
push eax
call fcn.00569ef0
mov eax, dword [ebx + 0x50]
dec esi
add eax, 2
add esp, 0xc
cmp esi, eax
jb 0x529b57
lea edx, [esi + 0xd]
lea edx, [edi + edx*4]
mov dword [edx], 0xffffffff
lea edx, [edx - 4]
mov ecx, dword [ebx + 0x50]
dec esi
add ecx, 2
cmp esi, ecx
jae 0x529b43
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x44
ret
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x44
ret
pop edi
pop esi
pop ebp
mov eax, 0xffffffcc
pop ebx
add esp, 0x44
ret
pop edi
pop esi
pop ebp
mov eax, 0xffffffc1
pop ebx
add esp, 0x44
ret
pop edi
pop esi
pop ebp
mov eax, 0xffffffd0
pop ebx
add esp, 0x44
ret
pop edi
pop esi
pop ebp
mov eax, 0xffffffd4
pop ebx
add esp, 0x44
ret
pop edi
pop esi
pop ebp
mov eax, 0xffffffd1
pop ebx
add esp, 0x44
ret