Function at 0x521610
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 0x5216f5
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 0x5216ef
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 0x52b522
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x18]
cmp eax, dword [ebp + 0x14]
jb 0x521748
pop edi
pop esi
pop ebp
mov eax, 0xffffffcb
pop ebx
add esp, 0x44
ret
mov edi, dword [esp + 0x68]
mov ebp, eax
jmp 0x521750
mov ebp, dword [esp + 0x6c]
jmp 0x521748
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.0x52929c.15
movzx eax, byte [eax + 0x52b68c]
jmp dword [eax*4 + 0x52b530]
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x44], 0xffffffff
jne 0x5217f2
movzx edi, word [esi + 2]
mov eax, dword [eax + 0x4c]
mov esi, dword [esp + 0x68]
cmp eax, 0xffffffff
je case.0x52929c.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 0x5217b9
mov eax, dword [edx + 0x4c]
jmp 0x521790
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 0x5217ee
mov dword [eax + 0x50], esi
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x5a6b70]
lea eax, [ecx + eax*2]
jmp 0x52173e
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x38]
cmp eax, dword [ebp + 0x60]
jbe 0x521815
mov dword [ebp + 0x60], eax
mov eax, dword [esp + 0x10]
mov esi, 0xfffffc19
mov dword [esp + 0x24], eax
jmp 0x521a9b
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x44], 0xffffffff
je 0x52188e
mov eax, dword [eax + 0x4c]
cmp eax, 0xffffffff
je case.0x52929c.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 0x521864
mov eax, dword [ecx + 0x4c]
jmp 0x521834
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 0x521750
mov edx, dword [eax + 0x38]
mov esi, dword [eax + 0x3c]
cmp edx, esi
jne 0x5218c0
mov eax, dword [esp + 0x6c]
mov eax, dword [eax + 0x78]
test al, 4
jne 0x521a8d
test al, 8
je 0x5218c0
mov eax, dword [esp + 0x6c]
mov ecx, dword [eax + 0x34]
mov eax, dword [eax + 0x4c]
lea eax, [eax + ecx*2]
cmp esi, eax
je 0x521a8d
mov eax, dword [esp + 0x6c]
cmp edx, dword [eax + 0x54]
jae 0x52b451
mov ebp, dword [esp + 0x6c]
mov eax, dword [eax + 0x7c]
or eax, dword [ebp + 0x78]
test eax, 0x20000000
je 0x52b44f
test bl, bl
je case.default.0x5292b9
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 0x521937
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x38]
mov eax, dword [esp + 0x6c]
mov edx, dword [eax + 0x54]
cmp ecx, edx
jae 0x52197c
push dword [esp + 0x14]
add eax, 0x8c
push eax
push edx
push esi
push ecx
call fcn.00538a30
add esp, 0x14
test eax, eax
jne 0x521a8d
mov eax, dword [esp + 0x6c]
jmp 0x52197c
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 0x52197a
mov ax, word [edx]
cmp ax, word [ebp + 0x90]
jne 0x52197a
cmp esi, 1
je case.default.0x5292b9
mov ax, word [edx + 2]
cmp ax, word [ebp + 0x92]
je case.default.0x5292b9
mov eax, ebp
movzx eax, word [eax + 0x3c]
mov ebp, dword [esp + 0x6c]
mov edx, eax
test ax, ax
je case.0x521774.13
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x38]
mov eax, dword [ebp + 0x54]
sub eax, 2
cmp ecx, eax
jne case.0x521774.13
mov eax, ebp
cmp dword [eax + 0x88], 0
jne 0x5219ce
cmp dword [eax + 0x8c], 2
jne 0x5219ce
mov ax, word [ecx]
cmp ax, word [ebp + 0x90]
jne case.0x521774.13
mov eax, ebp
mov dword [eax + 0x1c], 1
cmp edx, 1
ja 0x522b72
mov ebp, eax
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x38]
cmp ecx, dword [ebp + 0x54]
jb 0x521a11
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x5292b9
mov eax, dword [esp + 0x6c]
cmp ecx, dword [eax + 0x5c]
ja 0x5219fa
cmp dword [eax + 0x24], 0
je 0x521a0a
mov dword [eax + 0x1c], 1
cmp edx, 1
ja 0x522b72
mov ebp, eax
jmp case.default.0x5292b9
mov edx, dword [esp + 0x14]
add ecx, 2
mov dword [eax + 0x38], ecx
test edx, edx
je 0x521a47
cmp ecx, dword [ebp + 0x54]
jae 0x521a47
mov ax, word [ecx]
mov ebx, 0xfc00
and ax, bx
mov ebx, 0xdc00
cmp ax, bx
jne 0x521a43
lea eax, [ecx + 2]
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x38], eax
mov eax, dword [esp + 0x10]
add dword [eax], 2
jmp 0x521750
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x38]
mov eax, dword [esp + 0x6c]
cmp ecx, dword [eax + 0x54]
jb 0x521ae5
movzx eax, word [eax + 0x3c]
mov edx, eax
test ax, ax
je 0x521a8d
mov eax, dword [esp + 0x6c]
cmp ecx, dword [eax + 0x5c]
ja 0x521a7d
cmp dword [eax + 0x24], 0
je 0x521a8d
cmp edx, 1
mov dword [eax + 0x1c], 1
ja 0x522b72
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 0x521aa6
mov dword [ebp + 0x60], eax
mov ebx, dword [esp + 0x10]
cmp dword [ebx + 0x18], 0
je 0x52b4e4
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.0x52929c.15
movzx eax, byte [eax + 0x52b82c]
jmp dword [eax*4 + 0x52b734]
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 0x521750
mov eax, dword [esp + 0x10]
test edx, edx
je 0x521bd3
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 0x521b40
mov dword [eax + 0xc], 2
mov edx, 2
jmp 0x521b45
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 0x521b96
cmp ecx, esi
jb case.default.0x5292b9
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x5292b9
mov eax, dword [esp + 0x6c]
cmp ecx, dword [eax + 0x5c]
ja 0x521b7f
cmp dword [eax + 0x24], 0
je 0x521a0a
mov dword [eax + 0x1c], 1
cmp edx, 1
ja 0x522b72
mov ebp, eax
jmp case.default.0x5292b9
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 0x521bcc
add dword [eax + 0xc], 0xffffffff
jne 0x521ba0
jmp 0x521748
xor esi, esi
jmp 0x521a97
mov edi, dword [eax + 0x38]
mov eax, dword [ebp + 0x54]
sub eax, edi
and eax, 0xfffffffe
cmp eax, 2
jge 0x521c1a
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x521c0f
mov eax, dword [esp + 0x6c]
cmp edi, dword [eax + 0x5c]
ja 0x521bfd
cmp dword [eax + 0x24], 0
je 0x521c0d
mov dword [eax + 0x1c], 1
cmp ecx, 1
ja 0x522b72
mov ebp, eax
mov eax, dword [esp + 0x10]
xor esi, esi
jmp 0x521a9b
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 0x52abb2
xor esi, esi
mov eax, ebx
jmp 0x521a9b
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x6c]
mov ebp, dword [eax + 0x38]
cmp ebp, dword [ecx + 0x54]
jb 0x521c8a
movzx eax, word [ecx + 0x3c]
mov ecx, eax
test ax, ax
je 0x521c7b
mov eax, dword [esp + 0x6c]
cmp ebp, dword [eax + 0x5c]
ja 0x521c6b
cmp dword [eax + 0x24], 0
je 0x521c7b
mov dword [eax + 0x1c], 1
cmp ecx, 1
ja 0x522b72
mov eax, dword [esp + 0x10]
xor esi, esi
mov ebp, dword [esp + 0x6c]
jmp 0x521a9b
test edx, edx
je 0x521dc8
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 0x521ce0
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 0x521ce4
mov eax, dword [esp + 0x10]
movzx edx, word [ebp]
cmp esi, 0x80
jae 0x521d34
mov eax, dword [ecx + 0x28]
cmp edx, 0xff
ja 0x521cff
movzx edx, byte [eax + edx]
movzx eax, byte [eax + esi]
cmp eax, edx
mov edx, dword [esp + 0x14]
je 0x521d18
mov eax, dword [esp + 0x10]
xor esi, esi
mov ebp, ecx
jmp 0x521a9b
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 0x521750
lea ecx, [ebp + 2]
mov dword [eax + 0x38], ecx
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x521d6d
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 0x521d71
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 0x521748
mov eax, esi
shr eax, 7
movzx ecx, word [eax*2 + 0x5ad480]
mov eax, esi
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5b1880]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x5a9274]
add eax, esi
cmp edx, eax
mov edx, dword [esp + 0x14]
je 0x521750
mov eax, dword [esp + 0x10]
xor esi, esi
jmp 0x521a9b
cmp dword [esp + 0x2c], 0
je 0x521e49
movzx edi, word [esi + 2]
movzx edx, word [ebp]
cmp edi, 0x80
jae 0x521e01
mov eax, dword [ecx + 0x28]
cmp edx, 0xff
ja 0x521dee
movzx edx, byte [eax + edx]
movzx eax, byte [eax + edi]
cmp eax, edx
je 0x521e7e
mov ebp, ecx
jmp case.default.0x5292b9
cmp edx, edi
je 0x521e7e
mov eax, edi
test eax, eax
jns 0x521e0e
add eax, 0x7f
sar eax, 7
movzx ecx, word [eax*2 + 0x5ad480]
mov eax, edi
shl ecx, 7
and eax, 0x8000007f
jns 0x521e2a
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x5b1880]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x5a9274]
add eax, edi
cmp edx, eax
je 0x521e7e
jmp 0x521a8d
movzx eax, word [esi + 2]
mov ebx, 0xff
mov edx, eax
cmp ax, bx
ja 0x521e60
mov eax, dword [ecx + 0x28]
movzx edx, byte [eax + edx]
movzx eax, word [ebp]
mov ecx, eax
cmp ax, bx
ja 0x521e76
mov eax, dword [esp + 0x6c]
mov eax, dword [eax + 0x28]
movzx ecx, byte [eax + ecx]
cmp edx, ecx
jne 0x521a8d
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 0x521744
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x38]
mov eax, dword [esp + 0x6c]
cmp ecx, dword [eax + 0x54]
jae 0x521a63
lea eax, [esi + 2]
test edx, edx
je 0x521f96
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 0x521ef1
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 0x521f2f
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.0x5292b9
mov edi, dword [esp + 0x68]
cmp bl, 0x20
jne 0x521748
cmp edx, 0x7f
jbe 0x521f78
mov eax, edx
shr eax, 7
movzx ecx, word [eax*2 + 0x5ad480]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5b1880]
lea eax, [eax + eax*2]
add edx, dword [eax*4 + 0x5a9274]
jmp 0x521f7f
mov eax, dword [ebp + 0x2c]
movzx edx, byte [eax + edx]
cmp edx, esi
mov edx, dword [esp + 0x14]
jne 0x521750
mov eax, dword [esp + 0x10]
xor esi, esi
jmp 0x521a9b
cmp dword [esp + 0x2c], 0
lea edi, [ecx + 2]
mov ebp, dword [esp + 0x6c]
je 0x52202f
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.0x5292b9
cmp byte [esp + 0x58], 0x20
mov edi, dword [esp + 0x68]
jne 0x521748
cmp edx, 0x7f
jbe 0x522011
mov eax, edx
test eax, eax
jns 0x521fdf
add eax, 0x7f
sar eax, 7
movzx ecx, word [eax*2 + 0x5ad480]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x521ffb
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x5b1880]
lea eax, [eax + eax*2]
add edx, dword [eax*4 + 0x5a9274]
jmp 0x522018
mov eax, dword [ebp + 0x2c]
movzx edx, byte [eax + edx]
cmp edx, ebx
mov edx, dword [esp + 0x14]
jne 0x521750
mov eax, dword [esp + 0x10]
xor esi, esi
jmp 0x521a9b
movzx edx, word [eax]
mov eax, dword [esp + 0x10]
movzx ecx, word [ecx]
mov dword [eax + 0x38], edi
cmp edx, ecx
je case.default.0x5292b9
cmp bl, 0x20
jne 0x522060
cmp edx, 0xff
ja 0x522060
mov eax, dword [ebp + 0x2c]
movzx eax, byte [eax + edx]
cmp eax, ecx
je case.default.0x5292b9
lea eax, [esi + 4]
jmp 0x52173e
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 0x5221a3
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 0x52219f
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 0x52219f
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 0x52219f
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 0x52219f
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 0x52219f
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 0x52219f
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 + 0x5a63b0]
mov dword [edx + 0x20], eax
mov eax, dword [ecx*4 + 0x5a63dc]
mov dword [edx + 0x24], eax
mov eax, dword [ecx*4 + 0x5a6408]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
test ebx, ebx
je 0x5225a8
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 0x5221fb
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 0x522212
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 0x52259f
mov eax, dword [esp + 0x10]
cmp byte [eax + 0x31], 0x2e
jb 0x52225e
mov eax, edi
shr eax, 7
movzx ecx, word [eax*2 + 0x5ad480]
mov eax, edi
shl ecx, 7
and eax, 0x7f
add ecx, eax
movzx eax, word [ecx*2 + 0x5b1880]
lea eax, [eax + eax*2]
mov ecx, dword [eax*4 + 0x5a9274]
add ecx, edi
cmp ecx, edi
je 0x52225e
mov eax, dword [esp + 0x10]
add eax, 0x32
push eax
push ecx
call fcn.00538be0
add esp, 8
jmp 0x522260
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 0x5223b4
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x38]
jmp 0x522294
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 0x52230b
mov eax, dword [esp + 0x10]
mov esi, edi
mov ecx, ebx
mov edx, dword [eax + 8]
sub esi, 4
jb 0x5222c5
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x5222ce
add ecx, 4
add edx, 4
sub esi, 4
jae 0x5222b4
cmp esi, 0xfffffffc
je 0x522393
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x52230b
cmp esi, 0xfffffffd
je 0x522393
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x52230b
cmp esi, 0xfffffffe
je 0x522393
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x52230b
cmp esi, 0xffffffff
je 0x522393
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x522393
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x14]
test eax, eax
je 0x52250d
lea edi, [eax + eax]
mov eax, ebp
sub eax, edi
cmp ebx, eax
ja 0x52250d
mov edx, dword [esp + 0x10]
mov esi, edi
add edx, 0x32
mov ecx, ebx
sub esi, 4
jb 0x522351
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x522356
add ecx, 4
add edx, 4
sub esi, 4
jae 0x522340
cmp esi, 0xfffffffc
je 0x522393
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x52250d
cmp esi, 0xfffffffd
je 0x522393
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x52250d
cmp esi, 0xfffffffe
je 0x522393
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x52250d
cmp esi, 0xffffffff
je 0x522393
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x52250d
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 0x522290
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 0x521750
cmp dword [esp + 0x18], 0
je 0x52af6f
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 0x522584
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 0x522473
mov eax, dword [esp + 0x10]
mov esi, edi
mov ecx, ebx
mov edx, dword [eax + 8]
sub esi, 4
jb 0x522431
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x52243a
add ecx, 4
add edx, 4
sub esi, 4
jae 0x522420
cmp esi, 0xfffffffc
je 0x5224ec
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x522473
cmp esi, 0xfffffffd
je 0x5224ec
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x522473
cmp esi, 0xfffffffe
je 0x5224ec
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x522473
cmp esi, 0xffffffff
je 0x5224ec
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x5224ec
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x14]
test eax, eax
je 0x522550
lea edi, [eax + eax]
mov eax, ebp
sub eax, edi
cmp ebx, eax
ja 0x522550
mov edx, dword [esp + 0x10]
mov esi, edi
add edx, 0x32
mov ecx, ebx
sub esi, 4
jb 0x5224b2
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x5224b7
add ecx, 4
add edx, 4
sub esi, 4
jae 0x5224a1
cmp esi, 0xfffffffc
je 0x5224ec
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x522550
cmp esi, 0xfffffffd
je 0x5224ec
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x522550
cmp esi, 0xfffffffe
je 0x5224ec
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x522550
cmp esi, 0xffffffff
je 0x5224ec
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x522550
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 0x5223f7
mov ebp, dword [esp + 0x6c]
jmp 0x522584
cmp ebx, ebp
mov ebp, dword [esp + 0x6c]
jb case.default.0x5292b9
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5292b9
mov eax, ebp
cmp ebx, dword [eax + 0x5c]
ja 0x522539
cmp dword [eax + 0x24], 0
je 0x521a0a
mov dword [eax + 0x1c], 1
cmp ecx, 1
ja 0x522b72
mov ebp, eax
jmp case.default.0x5292b9
cmp ebx, ebp
mov ebp, dword [esp + 0x6c]
jb 0x522580
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x522580
mov eax, ebp
cmp ebx, dword [eax + 0x5c]
ja 0x522570
cmp dword [eax + 0x24], 0
je 0x522580
mov dword [eax + 0x1c], 1
cmp ecx, 1
ja 0x522b72
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x18], 2
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x68]
je 0x521750
mov ecx, dword [eax + 0x38]
jmp 0x5298d4
mov eax, dword [esp + 0x10]
mov dword [eax + 0x28], edx
jmp 0x5225b9
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 0x522711
test ebx, ebx
jne 0x5225cd
cmp dword [esp + 0x2c], ebx
je 0x5225ff
cmp edx, 0x7f
jbe 0x5225ff
mov eax, edx
shr eax, 7
movzx ecx, word [eax*2 + 0x5ad480]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5b1880]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x5a9274]
add eax, edx
jmp 0x522612
cmp edx, 0xff
ja 0x522610
mov eax, dword [ebp + 0x2c]
movzx eax, byte [eax + edx]
jmp 0x522612
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 0x522661
mov ecx, dword [eax + 0x38]
nop dword [eax]
mov eax, dword [esp + 0x6c]
cmp ecx, dword [eax + 0x54]
jae 0x521a63
mov ebx, dword [esp + 0x10]
movzx eax, word [ecx]
cmp dword [ebx + 0x28], eax
je 0x522652
cmp dword [ebx + 0x2c], eax
jne 0x521a8d
mov eax, dword [esp + 0x10]
add ecx, 2
inc edx
mov dword [eax + 0x38], ecx
cmp edx, esi
jbe 0x522630
mov edx, dword [eax + 0x24]
mov ebp, dword [esp + 0x6c]
mov edi, dword [esp + 0x68]
cmp esi, edx
je 0x521748
mov ebp, dword [esp + 0x18]
test ebp, ebp
je 0x528fef
mov ecx, dword [eax + 0x38]
mov dword [eax + 4], ecx
cmp esi, edx
jae 0x5226e5
nop word [eax + eax]
mov eax, dword [esp + 0x6c]
cmp ecx, dword [eax + 0x54]
jae 0x5226bb
mov ebx, dword [esp + 0x10]
movzx eax, word [ecx]
cmp dword [ebx + 0x28], eax
je 0x5226aa
cmp dword [ebx + 0x2c], eax
jne 0x5226e9
mov eax, dword [esp + 0x10]
add ecx, 2
inc esi
mov dword [eax + 0x38], ecx
cmp esi, edx
jb 0x522690
jmp 0x5226e5
movzx eax, word [eax + 0x3c]
mov edx, eax
test ax, ax
je 0x5226e5
mov eax, dword [esp + 0x6c]
cmp ecx, dword [eax + 0x5c]
ja 0x5226d5
cmp dword [eax + 0x24], 0
je 0x5226e5
mov dword [eax + 0x1c], 1
cmp edx, 1
ja 0x522b72
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
cmp ebp, 2
mov ebp, dword [esp + 0x6c]
je 0x521750
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebx + 4]
je 0x521744
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x1a
jmp 0x52b362
mov edi, dword [eax + 0x20]
mov esi, 1
cmp edi, esi
jb 0x522748
mov edx, dword [eax + 0x38]
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x6c]
cmp edx, dword [eax + 0x54]
jae 0x522795
movzx eax, word [edx]
add edx, 2
mov dword [ebx + 0x38], edx
cmp dword [ebx + 0x28], eax
jne 0x521a8d
inc esi
cmp esi, edi
jbe 0x522724
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x24]
mov ebp, dword [esp + 0x6c]
cmp edi, edx
je 0x521744
mov ebp, dword [esp + 0x18]
test ebp, ebp
je 0x52907a
mov ecx, dword [eax + 0x38]
mov dword [eax + 4], ecx
cmp edi, edx
jae 0x5227e9
mov eax, dword [esp + 0x6c]
cmp ecx, dword [eax + 0x54]
jae 0x5227bf
mov ebx, dword [esp + 0x10]
movzx eax, word [ecx]
cmp dword [ebx + 0x28], eax
jne 0x5227ed
mov eax, ebx
add ecx, 2
inc edi
mov dword [eax + 0x38], ecx
cmp edi, edx
jb 0x522771
jmp 0x5227e9
movzx eax, word [eax + 0x3c]
mov ecx, eax
test ax, ax
je 0x521a8d
mov eax, dword [esp + 0x6c]
cmp edx, dword [eax + 0x5c]
ja 0x5227b7
cmp dword [eax + 0x24], 0
je 0x521a8d
cmp ecx, 1
jmp 0x521a80
movzx eax, word [eax + 0x3c]
mov edx, eax
test ax, ax
je 0x5227e9
mov eax, dword [esp + 0x6c]
cmp ecx, dword [eax + 0x5c]
ja 0x5227d9
cmp dword [eax + 0x24], 0
je 0x5227e9
mov dword [eax + 0x1c], 1
cmp edx, 1
ja 0x522b72
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
cmp ebp, 2
mov ebp, dword [esp + 0x6c]
mov edi, dword [esp + 0x68]
je 0x521750
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebx + 4]
jbe 0x521744
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x1c
jmp 0x52b362
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 0x522969
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 0x522965
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 0x522965
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 0x522965
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 0x522965
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 0x522965
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 0x522965
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 + 0x5a63b0]
mov dword [edx + 0x20], eax
mov eax, dword [ecx*4 + 0x5a63dc]
mov dword [edx + 0x24], eax
mov eax, dword [ecx*4 + 0x5a6408]
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 0x5229b7
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
mov eax, dword [esp + 0x10]
jne 0x5229b7
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 0x522cb4
mov edx, dword [esp + 0x14]
test edx, edx
jne 0x5229cf
cmp dword [esp + 0x2c], edx
je 0x522a01
cmp esi, 0x7f
jbe 0x522a01
mov eax, esi
shr eax, 7
movzx ecx, word [eax*2 + 0x5ad480]
mov eax, esi
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5b1880]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x5a9274]
add eax, esi
jmp 0x522a14
cmp esi, 0xff
ja 0x522a12
mov eax, dword [ebp + 0x2c]
movzx eax, byte [eax + esi]
jmp 0x522a14
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 0x522b7f
mov esi, 1
cmp ebx, esi
jb 0x522aa7
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
jmp 0x522a44
mov eax, dword [esp + 0x10]
cmp edx, dword [ebp + 0x54]
jae 0x522b44
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x522a89
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 0x522a8d
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x28], ecx
je case.default.0x5292b9
cmp dword [eax + 0x2c], ecx
je case.default.0x5292b9
mov eax, dword [eax + 0x20]
inc esi
cmp esi, eax
jbe 0x522a40
mov ecx, dword [esp + 0x10]
mov edi, dword [ecx + 0x24]
cmp eax, edi
je 0x521744
cmp dword [esp + 0x18], 0
je 0x52adb3
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 0x522c3c
cmp ebx, eax
jae 0x522c36
mov esi, 1
cmp ecx, dword [ebp + 0x54]
jae 0x522bf5
movzx edx, word [ecx]
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x522b1e
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 0x522c1b
cmp dword [eax + 0x2c], edx
je 0x522c1b
inc ebx
lea ecx, [ecx + esi*2]
mov dword [eax + 0x38], ecx
cmp ebx, edi
jb 0x522ae0
jmp 0x522c1b
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5292b9
cmp edx, dword [ebp + 0x5c]
ja 0x522b62
cmp dword [ebp + 0x24], 0
je case.default.0x5292b9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
jbe case.default.0x5292b9
pop edi
pop esi
pop ebp
mov eax, 0xfffffffe
pop ebx
add esp, 0x44
ret
mov edx, 1
cmp ebx, edx
jb 0x522aa7
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x38]
cmp ecx, dword [ebp + 0x54]
jae 0x522bc6
mov esi, dword [esp + 0x10]
movzx eax, word [ecx]
cmp dword [esi + 0x28], eax
je case.default.0x5292b9
cmp dword [esi + 0x2c], eax
je case.default.0x5292b9
mov eax, esi
add ecx, 2
inc edx
mov dword [eax + 0x38], ecx
mov eax, dword [eax + 0x20]
cmp edx, eax
jbe 0x522b93
jmp 0x522aa7
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x5292b9
cmp ecx, dword [ebp + 0x5c]
ja 0x522be4
cmp dword [ebp + 0x24], 0
je case.default.0x5292b9
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x522b72
jmp case.default.0x5292b9
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je 0x522c17
cmp ecx, dword [ebp + 0x5c]
ja 0x522c0b
cmp dword [ebp + 0x24], 0
je 0x522c17
mov dword [ebp + 0x1c], esi
cmp edx, 1
ja 0x522b72
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x18], 2
mov edi, dword [esp + 0x68]
je 0x521750
mov ecx, dword [eax + 0x38]
jmp 0x5299bd
mov eax, dword [esp + 0x10]
jmp 0x522c1f
cmp ebx, eax
jae 0x522cae
cmp ecx, dword [ebp + 0x54]
jae 0x522c65
mov edx, dword [esp + 0x10]
movzx eax, word [ecx]
cmp dword [edx + 0x28], eax
je 0x522c8b
cmp dword [edx + 0x2c], eax
mov eax, edx
je 0x522c8f
add ecx, 2
inc ebx
mov dword [eax + 0x38], ecx
cmp ebx, edi
jb 0x522c40
jmp 0x522c8f
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je 0x522c8b
cmp ecx, dword [ebp + 0x5c]
ja 0x522c7b
cmp dword [ebp + 0x24], 0
je 0x522c8b
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x522b72
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x18], 2
mov edi, dword [esp + 0x68]
je 0x521750
mov eax, dword [eax + 0x38]
mov ebx, dword [esp + 0x10]
jmp 0x529123
mov eax, dword [esp + 0x10]
jmp 0x522c93
cmp dword [esp + 0x14], 0
mov esi, 1
mov ebx, dword [eax + 0x20]
mov eax, ebx
je 0x522e0e
cmp ebx, esi
jb 0x522d3e
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
jmp 0x522ce4
mov eax, dword [esp + 0x10]
cmp edx, dword [ebp + 0x54]
jae 0x522ddb
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x522d29
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 0x522d2d
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x28], ecx
je case.default.0x5292b9
mov eax, dword [eax + 0x20]
inc esi
cmp esi, eax
jbe 0x522ce0
mov ecx, dword [esp + 0x10]
mov edi, dword [ecx + 0x24]
cmp eax, edi
je 0x521744
mov esi, dword [esp + 0x18]
test esi, esi
je 0x52adcd
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 0x522ebb
cmp ebx, eax
jae 0x522ea3
nop dword [eax + eax]
mov esi, 1
cmp ecx, dword [ebp + 0x54]
jae 0x522e7d
movzx edx, word [ecx]
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x522dbe
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 0x522e9f
inc ebx
lea ecx, [ecx + esi*2]
mov dword [eax + 0x38], ecx
cmp ebx, edi
jb 0x522d80
jmp 0x522e9f
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5292b9
cmp edx, dword [ebp + 0x5c]
ja 0x522df9
cmp dword [ebp + 0x24], 0
je case.default.0x5292b9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x522b72
jmp case.default.0x5292b9
cmp ebx, 1
jb 0x522d3e
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
nop
cmp edx, dword [ebp + 0x54]
jae 0x522e4a
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 0x521bcc
mov eax, dword [eax + 0x20]
inc esi
cmp esi, eax
jbe 0x522e20
jmp 0x522d3e
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5292b9
cmp edx, dword [ebp + 0x5c]
ja 0x522e68
cmp dword [ebp + 0x24], 0
je case.default.0x5292b9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x522b72
jmp case.default.0x5292b9
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je 0x522e9f
cmp ecx, dword [ebp + 0x5c]
ja 0x522e93
cmp dword [ebp + 0x24], 0
je 0x522e9f
mov dword [ebp + 0x1c], esi
cmp edx, 1
ja 0x522b72
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x18], 2
mov edi, dword [esp + 0x68]
je 0x521750
mov ebx, dword [esp + 0x10]
jmp 0x529a97
cmp ebx, eax
jae 0x522f27
nop
cmp ecx, dword [ebp + 0x54]
jae 0x522ee0
mov edx, dword [esp + 0x10]
movzx eax, word [ecx]
cmp dword [edx + 0x28], eax
mov eax, edx
je 0x522f0a
add ecx, 2
inc ebx
mov dword [eax + 0x38], ecx
cmp ebx, edi
jb 0x522ec0
jmp 0x522f0a
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je 0x522f06
cmp ecx, dword [ebp + 0x5c]
ja 0x522ef6
cmp dword [ebp + 0x24], 0
je 0x522f06
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x522b72
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x68]
cmp esi, 2
je 0x521750
mov eax, dword [eax + 0x38]
mov ebx, dword [esp + 0x10]
jmp 0x5291b6
mov eax, dword [esp + 0x10]
jmp 0x522f0e
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.0x522f54
movzx eax, byte [eax + 0x52b918]
jmp dword [eax*4 + 0x52b910]
mov edx, dword [esp + 0x10]
lea eax, [esi + 2]
mov edi, dword [esp + 0x10]
mov ebx, dword [ecx*4 + 0x5a6280]
mov dword [esp + 0x18], ebx
mov dword [edx], eax
mov eax, dword [esp + 0x10]
mov edx, dword [ecx*4 + 0x5a6228]
mov dword [eax + 0x20], edx
mov eax, dword [ecx*4 + 0x5a6254]
mov dword [edi + 0x24], eax
jmp 0x522fd9
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 + 0x5a6280]
mov dword [esp + 0x18], eax
lea eax, [esi + 6]
mov dword [ecx], eax
jmp 0x522fd9
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 0x5230c4
cmp edx, ebx
jb 0x523156
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x38]
nop
cmp edi, dword [ebp + 0x54]
jae 0x523091
movzx esi, word [edi]
add edi, 2
mov dword [eax + 0x38], edi
mov eax, esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x523045
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 0x523049
mov eax, dword [esp + 0x10]
cmp esi, 0xff
jbe 0x52305d
cmp byte [eax + 0x31], 0x6e
je case.default.0x5292b9
jmp 0x52307c
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 0x521bcc
mov eax, dword [eax + 0x20]
inc ebx
cmp ebx, eax
ja 0x523156
mov eax, dword [esp + 0x10]
jmp 0x523000
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5292b9
cmp edi, dword [ebp + 0x5c]
ja 0x5230af
cmp dword [ebp + 0x24], 0
je case.default.0x5292b9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x522b72
jmp case.default.0x5292b9
cmp edx, 1
jb 0x523156
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x38]
cmp edi, dword [ebp + 0x54]
jae 0x523123
movzx esi, word [edi]
add edi, 2
mov dword [eax + 0x38], edi
cmp esi, 0xff
jbe 0x5230f6
cmp byte [eax + 0x31], 0x6e
je case.default.0x5292b9
jmp 0x523115
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 0x521bcc
mov eax, dword [eax + 0x20]
inc ebx
cmp ebx, eax
ja 0x523156
mov eax, dword [esp + 0x10]
jmp 0x5230d4
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5292b9
cmp edi, dword [ebp + 0x5c]
ja 0x523141
cmp dword [ebp + 0x24], 0
je case.default.0x5292b9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x522b72
jmp case.default.0x5292b9
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x68]
mov ebp, dword [ebx + 0x24]
cmp eax, ebp
je 0x521738
cmp dword [esp + 0x18], 0
je 0x52ade7
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 0x523270
cmp dword [esp + 0x58], eax
jae 0x52326a
nop word [eax + eax]
mov eax, dword [esp + 0x6c]
mov ebx, 1
cmp edi, dword [eax + 0x54]
jae 0x523244
movzx esi, word [edi]
mov eax, esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5231e2
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 0x523210
cmp byte [eax + 0x31], 0x6e
jne 0x52322b
mov ebp, dword [esp + 0x6c]
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x18], 2
jne 0x52af56
mov edi, dword [esp + 0x68]
jmp 0x521750
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 0x5231f4
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 0x5231a0
jmp 0x5231f4
mov ebp, eax
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x5231f8
cmp edi, dword [ebp + 0x5c]
ja 0x52325c
cmp dword [ebp + 0x24], 0
je 0x5231f8
mov dword [ebp + 0x1c], ebx
cmp ecx, 1
ja 0x522b72
jmp 0x5231f8
mov ebp, dword [esp + 0x6c]
jmp 0x5231fc
mov ebx, dword [esp + 0x58]
cmp ebx, eax
jae 0x52330e
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x6c]
cmp edi, dword [ecx + 0x54]
jae 0x5232e2
movzx esi, word [edi]
cmp esi, 0xff
jbe 0x5232b6
cmp byte [eax + 0x31], 0x6e
jne 0x5232d5
mov ebp, dword [esp + 0x6c]
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x18], 2
jne 0x528f65
mov edi, dword [esp + 0x68]
jmp 0x521750
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 0x52329a
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x6c]
add edi, 2
inc ebx
mov dword [eax + 0x38], edi
cmp ebx, ebp
jb 0x523284
jmp 0x52329a
mov ebp, dword [esp + 0x6c]
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x52329e
cmp edi, dword [ebp + 0x5c]
ja 0x5232fc
cmp dword [ebp + 0x24], 0
je 0x52329e
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x522b72
jmp 0x52329e
mov ebp, dword [esp + 0x6c]
jmp 0x5232a2
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.0x52333f
movzx eax, byte [eax + 0x52b92c]
jmp dword [eax*4 + 0x52b924]
mov ecx, dword [esp + 0x10]
lea eax, [edx + 2]
mov esi, dword [edi*4 + 0x5a6254]
mov dword [ecx], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [edi*4 + 0x5a6228]
lea ebx, [eax + 0x24]
mov dword [eax + 0x20], ecx
mov eax, dword [edi*4 + 0x5a6280]
mov dword [ebx], esi
mov dword [esp + 0x18], eax
jmp 0x5233ae
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 0x523397
mov dword [ebx], 0xffffffff
or esi, 0xffffffff
movzx eax, word [edx]
mov eax, dword [eax*4 + 0x5a6280]
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 0x52345c
mov esi, 1
jmp 0x5233e5
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 0x5233e5
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jae 0x52353f
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], edx
je 0x523436
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x523432
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.00539120
add esp, 0xc
test eax, eax
mov eax, dword [esp + 0x10]
je 0x521bcc
mov ecx, dword [eax + 0x20]
inc esi
cmp esi, ecx
jbe 0x5233e1
mov esi, dword [edi]
mov edi, dword [esp + 0x68]
cmp ecx, esi
je 0x521748
cmp dword [esp + 0x18], 0
je 0x52af47
mov edx, dword [eax + 0x38]
mov dword [eax + 4], edx
mov edi, dword [eax + 0x20]
cmp edi, esi
jae 0x523525
jmp 0x523494
mov eax, dword [esp + 0x10]
mov esi, 1
cmp edx, dword [ebp + 0x54]
jae 0x523503
cmp dword [esp + 0x14], 0
movzx ecx, word [edx]
je 0x5234d9
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5234d5
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.00539120
add esp, 0xc
test eax, eax
je 0x523525
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 0x523490
jmp 0x523525
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x523525
cmp edx, dword [ebp + 0x5c]
ja 0x523519
cmp dword [ebp + 0x24], 0
je 0x523525
mov dword [ebp + 0x1c], esi
cmp ecx, 1
ja 0x522b72
cmp dword [esp + 0x18], 2
je 0x521744
mov ebx, dword [esp + 0x10]
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x65
jmp 0x52b362
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5292b9
cmp edx, dword [ebp + 0x5c]
ja 0x52355d
cmp dword [ebp + 0x24], 0
je case.default.0x5292b9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x522b72
jmp case.default.0x5292b9
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x5235b1
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5292b9
cmp edx, dword [ebp + 0x5c]
ja 0x52359c
cmp dword [ebp + 0x24], 0
je case.default.0x5292b9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x522b72
jmp case.default.0x5292b9
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], edx
je 0x5235f4
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5235f4
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 0x5235f8
mov edx, dword [esp + 0x10]
cmp ecx, 0xff
ja case.0x523b67.8203
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 8
je case.0x523b67.8203
jmp case.default.0x5292b9
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x523655
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5292b9
cmp edx, dword [ebp + 0x5c]
ja 0x523640
cmp dword [ebp + 0x24], 0
je case.default.0x5292b9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x522b72
jmp case.default.0x5292b9
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], edx
je 0x523698
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x523698
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 0x52369c
mov edx, dword [esp + 0x10]
cmp ecx, 0xff
ja case.default.0x5292b9
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 8
je case.default.0x5292b9
lea eax, [esi + 2]
mov dword [edx], eax
jmp 0x521748
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x5236fe
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5292b9
cmp edx, dword [ebp + 0x5c]
ja 0x5236e9
cmp dword [ebp + 0x24], 0
je case.default.0x5292b9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x522b72
jmp case.default.0x5292b9
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], edx
je 0x523741
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x523741
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 0x523745
mov edx, dword [esp + 0x10]
cmp ecx, 0xff
ja case.0x523b67.8203
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 1
je case.0x523b67.8203
jmp case.default.0x5292b9
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x5237a2
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5292b9
cmp edx, dword [ebp + 0x5c]
ja 0x52378d
cmp dword [ebp + 0x24], 0
je case.default.0x5292b9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x522b72
jmp case.default.0x5292b9
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], edx
je 0x5237e5
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5237e5
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 0x5237e9
mov edx, dword [esp + 0x10]
cmp ecx, 0xff
ja case.default.0x5292b9
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 1
je case.default.0x5292b9
lea eax, [esi + 2]
mov dword [edx], eax
jmp 0x521748
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x52384b
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5292b9
cmp edx, dword [ebp + 0x5c]
ja 0x523836
cmp dword [ebp + 0x24], 0
je case.default.0x5292b9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x522b72
jmp case.default.0x5292b9
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], edx
je 0x52388e
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x52388e
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 0x523892
mov edx, dword [esp + 0x10]
cmp ecx, 0xff
ja case.0x523b67.8203
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 0x10
je case.0x523b67.8203
jmp case.default.0x5292b9
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x5238ef
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5292b9
cmp edx, dword [ebp + 0x5c]
ja 0x5238da
cmp dword [ebp + 0x24], 0
je case.default.0x5292b9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x522b72
jmp case.default.0x5292b9
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], edx
je 0x523932
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x523932
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 0x523936
mov edx, dword [esp + 0x10]
cmp ecx, 0xff
ja case.default.0x5292b9
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 0x10
je case.default.0x5292b9
lea eax, [esi + 2]
mov dword [edx], eax
jmp 0x521748
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x523998
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5292b9
cmp edx, dword [ebp + 0x5c]
ja 0x523983
cmp dword [ebp + 0x24], 0
je case.default.0x5292b9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x522b72
jmp case.default.0x5292b9
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov esi, edx
mov dword [eax + 0x38], edx
je 0x5239db
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5239db
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 0x523a4d
je case.0x5239f5.11
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x5292b9
jmp dword [ecx*4 + 0x52b938]
cmp esi, dword [ebp + 0x54]
jb 0x523a33
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.0x5239f5.10
cmp esi, dword [ebp + 0x5c]
ja 0x523a17
cmp dword [ebp + 0x24], 0
je case.0x5239f5.10
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x522b72
mov eax, dword [esp + 0x10]
add dword [eax], 2
jmp 0x521748
cmp word [esi], 0xa
jne case.0x5239f5.10
mov ecx, dword [esp + 0x10]
lea eax, [esi + 2]
mov dword [ecx + 0x38], eax
mov eax, ecx
add dword [eax], 2
jmp 0x521748
sub ecx, 0x2028
je case.0x5239f5.11
sub ecx, 1
jne case.default.0x5292b9
cmp word [ebp + 0x3e], 2
je case.default.0x5292b9
mov eax, dword [esp + 0x10]
add dword [eax], 2
jmp 0x521748
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x523ab4
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5292b9
cmp edx, dword [ebp + 0x5c]
ja 0x523a9f
cmp dword [ebp + 0x24], 0
je case.default.0x5292b9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x522b72
jmp case.default.0x5292b9
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], edx
je 0x523af7
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x523af7
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 0x523afb
mov edx, dword [esp + 0x10]
cmp ecx, 0x2000
ja 0x523b3f
je case.default.0x5292b9
cmp ecx, 0xa0
ja 0x523b28
je case.default.0x5292b9
cmp ecx, 9
je case.default.0x5292b9
cmp ecx, 0x20
jmp 0x5236af
cmp ecx, 0x1680
je case.default.0x5292b9
cmp ecx, 0x180e
jmp 0x5236af
cmp ecx, 0x3000
ja case.0x523b67.8203
je case.default.0x5292b9
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x523b67.8203
movzx eax, byte [ecx + 0x52b950]
jmp dword [eax*4 + 0x52b948]
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x523bad
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5292b9
cmp edx, dword [ebp + 0x5c]
ja 0x523b98
cmp dword [ebp + 0x24], 0
je case.default.0x5292b9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x522b72
jmp case.default.0x5292b9
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], edx
je 0x523bf0
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x523bf0
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 0x523bf4
mov edx, dword [esp + 0x10]
cmp ecx, 0x2000
ja 0x523c44
je case.0x523b67.8203
cmp ecx, 0xa0
ja 0x523c27
je case.0x523b67.8203
cmp ecx, 9
je case.0x523b67.8203
cmp ecx, 0x20
je case.0x523b67.8203
jmp case.default.0x5292b9
cmp ecx, 0x1680
je case.0x523b67.8203
cmp ecx, 0x180e
je case.0x523b67.8203
jmp case.default.0x5292b9
cmp ecx, 0x3000
ja case.default.0x5292b9
je case.0x523b67.8203
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.default.0x5292b9
movzx eax, byte [ecx + 0x52b9b8]
jmp dword [eax*4 + 0x52b9b0]
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x523cb2
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5292b9
cmp edx, dword [ebp + 0x5c]
ja 0x523c9d
cmp dword [ebp + 0x24], 0
je case.default.0x5292b9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x522b72
jmp case.default.0x5292b9
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], edx
je 0x523cf5
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x523cf5
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 0x523cf9
mov edx, dword [esp + 0x10]
cmp ecx, 0x85
ja 0x523d1a
je case.default.0x5292b9
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x523b67.8203
jmp dword [ecx*4 + 0x52ba18]
sub ecx, 0x2028
je case.default.0x5292b9
sub ecx, 1
jne case.0x523b67.8203
jmp case.default.0x5292b9
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x523d73
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5292b9
cmp edx, dword [ebp + 0x5c]
ja 0x523d5e
cmp dword [ebp + 0x24], 0
je case.default.0x5292b9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x522b72
jmp case.default.0x5292b9
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], edx
je 0x523db6
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x523db6
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 0x523dba
mov edx, dword [esp + 0x10]
cmp ecx, 0x85
ja 0x523ddb
je case.0x523b67.8203
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x5292b9
jmp dword [ecx*4 + 0x52ba28]
sub ecx, 0x2028
je case.0x523b67.8203
sub ecx, 1
je case.0x523b67.8203
jmp case.default.0x5292b9
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x38]
cmp ecx, dword [ebp + 0x54]
jb 0x523e34
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x5292b9
cmp ecx, dword [ebp + 0x5c]
ja 0x523e1f
cmp dword [ebp + 0x24], 0
je case.default.0x5292b9
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x522b72
jmp case.default.0x5292b9
movzx edx, word [ecx]
add ecx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], ecx
je 0x523e75
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x523e75
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 + 0x5ad480]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5b1880]
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.0x52929c.15
jmp dword [eax*4 + 0x52ba38]
cmp cl, 0xf
je case.default.0x5292b9
mov eax, dword [esp + 0x10]
add dword [eax], 6
jmp 0x521744
mov al, byte [edi*4 + 0x5a9271]
cmp al, 9
je 0x523ee3
cmp al, 5
je 0x523ee3
cmp al, 8
je 0x523ee3
xor eax, eax
jmp 0x523ee8
mov eax, 1
cmp eax, ebx
jne 0x523ec0
jmp case.default.0x5292b9
movzx ecx, byte [edi*4 + 0x5a9271]
xor edx, edx
movzx eax, word [esi + 4]
cmp eax, dword [ecx*4 + 0x5a6d10]
sete dl
cmp edx, ebx
jne 0x523ec0
jmp case.default.0x5292b9
movzx eax, byte [edi*4 + 0x5a9271]
xor ecx, ecx
cmp word [esi + 4], ax
sete cl
cmp ecx, ebx
jne 0x523ec0
jmp case.default.0x5292b9
movzx eax, byte [edi*4 + 0x5a9270]
jmp 0x523f1a
movzx ecx, word [esi + 4]
movzx eax, byte [edi*4 + 0x5a9270]
cmp cx, ax
je 0x523ee3
movzx edx, word [edi*4 + 0x5a9278]
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 + 0x5a8f78], eax
jne 0x523ee3
xor eax, eax
jmp 0x523ee8
movzx eax, byte [edi*4 + 0x5a9271]
mov eax, dword [eax*4 + 0x5a6d10]
cmp eax, 1
je 0x523ee3
cmp eax, 3
je 0x523ee3
xor eax, eax
jmp 0x523ee8
cmp edx, 0x20
ja 0x523fbc
je case.0x523eb0.0
add edx, 0xfffffff7
cmp edx, 4
ja case.0x52402c.8203
jmp dword [edx*4 + 0x52ba70]
cmp edx, 0x2000
ja 0x52400c
je case.0x523eb0.0
cmp edx, 0x1680
ja 0x524004
je case.0x523eb0.0
sub edx, 0x85
je case.0x523eb0.0
sub edx, 0x1b
je case.0x523eb0.0
movzx eax, byte [edi*4 + 0x5a9271]
xor ecx, ecx
cmp dword [eax*4 + 0x5a6d10], 6
jmp 0x523f20
cmp edx, 0x180e
jmp 0x523fe7
cmp edx, 0x3000
ja case.0x52402c.8203
je case.0x523eb0.0
add edx, 0xffffdfff
cmp edx, 0x5e
ja case.0x52402c.8203
movzx eax, byte [edx + 0x52ba8c]
jmp dword [eax*4 + 0x52ba84]
movzx eax, byte [edi*4 + 0x5a9271]
mov eax, dword [eax*4 + 0x5a6d10]
cmp eax, 1
je 0x523ee3
cmp eax, 3
je 0x523ee3
cmp edx, 0x5f
je 0x523ee3
xor eax, eax
jmp 0x523ee8
movzx eax, word [esi + 4]
mov ecx, dword [eax*4 + 0x5a8ca8]
lea eax, [eax*4 + 0x5a8ca8]
cmp edx, ecx
jb 0x52408d
nop word [eax + eax]
lea eax, [eax + 4]
cmp edx, ecx
je 0x52409d
mov ecx, dword [eax]
cmp edx, ecx
jae 0x524080
cmp byte [esp + 0x58], 0xf
je 0x523ec0
jmp case.default.0x5292b9
cmp byte [esp + 0x58], 0xf
jne 0x523ec0
jmp case.default.0x5292b9
cmp edx, 0x24
je 0x523ee3
cmp edx, 0x40
je 0x523ee3
cmp edx, 0x60
je 0x523ee3
cmp edx, 0xa0
jb 0x5240dc
cmp edx, 0xd7ff
jbe 0x523ee3
cmp edx, 0xe000
jae 0x523ee3
xor eax, eax
jmp 0x523ee8
mov ax, word [edi*4 + 0x5a9278]
xor ecx, ecx
shr ax, 0xb
cmp ax, word [esi + 4]
jmp 0x523f20
movzx ecx, word [esi + 4]
movzx edx, word [edi*4 + 0x5a927a]
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 + 0x5a8720]
and ecx, eax
neg ecx
sbb ecx, ecx
neg ecx
jmp 0x523f23
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x52417c
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5292b9
cmp edx, dword [ebp + 0x5c]
ja 0x524167
cmp dword [ebp + 0x24], 0
je case.default.0x5292b9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x522b72
jmp case.default.0x5292b9
movzx ecx, word [edx]
add edx, 2
mov ebx, dword [esp + 0x14]
mov esi, edx
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x5241c0
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5241c0
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.00538830
mov ecx, dword [esp + 0x28]
add esp, 0x18
mov dword [ecx + 0x38], eax
cmp eax, dword [ebp + 0x54]
jb 0x524205
movzx ecx, word [ebp + 0x3c]
mov edx, ecx
test cx, cx
je 0x524205
cmp eax, dword [ebp + 0x5c]
ja 0x5241f5
cmp dword [ebp + 0x24], 0
je 0x524205
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x522b72
mov eax, dword [esp + 0x10]
mov edx, ebx
add dword [eax], 2
jmp 0x521750
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 0x52432e
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 0x52432e
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 0x52432e
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 0x52432e
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 0x52432e
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 0x52432e
movzx ecx, word [esi]
add esi, 2
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x10]
mov ebp, dword [ecx*4 + 0x5a625c]
mov dword [eax], esi
mov dword [eax + 0x20], ebp
mov eax, dword [ecx*4 + 0x5a6288]
mov dword [edx + 0x24], eax
mov eax, dword [ecx*4 + 0x5a62b4]
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 0x524350
cmp edx, 0xf
je 0x524350
or edx, 0xffffffff
jmp 0x52436c
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 0x5244d1
mov edi, dword [eax + 0x28]
test edx, edx
js 0x524ffb
xor ebx, ebx
cmp edi, 0xf
sete bl
cmp edx, 0xd
ja case.0x52929c.15
jmp dword [edx*4 + 0x52baec]
cmp edi, 0xf
je 0x521a8d
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 0x5243ec
movzx edx, word [ecx]
lea eax, [ecx + 2]
mov dword [ebx + 0x38], eax
mov ecx, eax
test edi, edi
je 0x5243e0
and edx, 0xfc00
cmp edx, 0xd800
jne 0x5243e0
lea ecx, [eax + 2]
mov dword [ebx + 0x38], ecx
inc esi
cmp esi, ebp
jbe 0x5243b4
mov esi, edi
jmp 0x5244d9
mov ebp, eax
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je 0x524414
cmp ecx, dword [ebp + 0x5c]
ja 0x524404
cmp dword [ebp + 0x24], 0
je 0x524414
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x522b72
mov eax, dword [esp + 0x10]
xor esi, esi
mov edx, edi
jmp 0x521a9b
mov esi, dword [eax + 0x38]
mov edi, 1
jmp 0x524434
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x6c]
cmp esi, dword [ecx + 0x54]
jae 0x524527
cmp dword [esp + 0x14], 0
lea edx, [esi + 2]
movzx ecx, word [esi]
mov esi, edx
mov dword [eax + 0x38], edx
je 0x524484
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x524484
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 + 0x5ad480]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5b1880]
lea eax, [eax + eax*2]
mov al, byte [eax*4 + 0x5a9271]
cmp al, 9
je 0x5244bb
cmp al, 5
je 0x5244bb
cmp al, 8
je 0x5244bb
xor eax, eax
jmp 0x5244c0
mov eax, 1
cmp eax, ebx
je 0x521a8d
inc edi
cmp edi, ebp
jbe 0x524430
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 0x521e8d
cmp dword [esp + 0x18], 0
mov ecx, dword [esp + 0x5c]
je 0x52adfd
mov esi, dword [ebx + 0x38]
mov dword [ebx + 4], esi
mov ebx, dword [ebx + 0x28]
test ecx, ecx
js 0x526c8a
xor eax, eax
cmp ebx, 0xf
sete al
mov dword [esp + 0x5c], eax
cmp ecx, 0xd
ja case.0x52929c.15
jmp dword [ecx*4 + 0x52bb24]
mov ebp, ecx
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5292b9
cmp esi, dword [ebp + 0x5c]
ja 0x524547
cmp dword [ebp + 0x24], 0
je case.default.0x5292b9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x522b72
jmp case.default.0x5292b9
mov esi, dword [eax + 0x38]
mov edi, 1
jmp 0x524574
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x6c]
cmp esi, dword [ecx + 0x54]
jae 0x524615
cmp dword [esp + 0x14], 0
lea edx, [esi + 2]
movzx ecx, word [esi]
mov esi, edx
mov dword [eax + 0x38], edx
je 0x5245c4
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5245c4
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 + 0x5ad480]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5b1880]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5a9271]
mov eax, dword [eax*4 + 0x5a6d10]
cmp eax, dword [edx + 0x2c]
sete cl
cmp ecx, ebx
je 0x521a8d
inc edi
cmp edi, ebp
jbe 0x524570
jmp 0x5244d1
mov ebp, ecx
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5292b9
cmp esi, dword [ebp + 0x5c]
ja 0x524635
cmp dword [ebp + 0x24], 0
je case.default.0x5292b9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x522b72
jmp case.default.0x5292b9
mov esi, dword [eax + 0x38]
mov edi, 1
jmp 0x524658
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x6c]
cmp esi, dword [ecx + 0x54]
jae 0x5246f2
cmp dword [esp + 0x14], 0
lea edx, [esi + 2]
movzx ecx, word [esi]
mov esi, edx
mov dword [eax + 0x38], edx
je 0x5246a8
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5246a8
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 + 0x5ad480]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5b1880]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5a9271]
cmp eax, dword [edx + 0x2c]
sete cl
cmp ecx, ebx
je 0x521a8d
inc edi
cmp edi, ebp
jbe 0x524654
jmp 0x5244d1
mov ebp, ecx
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5292b9
cmp esi, dword [ebp + 0x5c]
ja 0x524712
cmp dword [ebp + 0x24], 0
je case.default.0x5292b9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x522b72
jmp case.default.0x5292b9
mov esi, dword [eax + 0x38]
mov edi, 1
jmp 0x524735
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x6c]
cmp esi, dword [ecx + 0x54]
jae 0x5247cf
cmp dword [esp + 0x14], 0
lea edx, [esi + 2]
movzx ecx, word [esi]
mov esi, edx
mov dword [eax + 0x38], edx
je 0x524785
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x524785
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 + 0x5ad480]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5b1880]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5a9270]
cmp eax, dword [edx + 0x2c]
sete cl
cmp ecx, ebx
je 0x521a8d
inc edi
cmp edi, ebp
jbe 0x524731
jmp 0x5244d1
mov ebp, ecx
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5292b9
cmp esi, dword [ebp + 0x5c]
ja 0x5247ef
cmp dword [ebp + 0x24], 0
je case.default.0x5292b9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x522b72
jmp case.default.0x5292b9
mov esi, dword [eax + 0x38]
mov edi, 1
jmp 0x524814
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x6c]
cmp esi, dword [ecx + 0x54]
jae 0x5248de
cmp dword [esp + 0x14], 0
lea edx, [esi + 2]
movzx ecx, word [esi]
mov esi, edx
mov dword [eax + 0x38], edx
je 0x524864
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x524864
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 + 0x5ad480]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5b1880]
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x2c]
movzx eax, byte [edx*4 + 0x5a9270]
cmp eax, ecx
je 0x5248c3
movzx edx, word [edx*4 + 0x5a9278]
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 + 0x5a8f78], eax
jne 0x5248c3
xor eax, eax
jmp 0x5248c8
mov eax, 1
cmp eax, ebx
je 0x521a8d
inc edi
cmp edi, ebp
jbe 0x524810
jmp 0x5244d1
mov ebp, ecx
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5292b9
cmp esi, dword [ebp + 0x5c]
ja 0x5248fe
cmp dword [ebp + 0x24], 0
je case.default.0x5292b9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x522b72
jmp case.default.0x5292b9
mov esi, dword [eax + 0x38]
mov edi, 1
jmp 0x524924
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x6c]
cmp esi, dword [ecx + 0x54]
jae 0x5249cc
cmp dword [esp + 0x14], 0
lea edx, [esi + 2]
movzx ecx, word [esi]
mov esi, edx
mov dword [eax + 0x38], edx
je 0x524974
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x524974
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 + 0x5ad480]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5b1880]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5a9271]
mov eax, dword [eax*4 + 0x5a6d10]
cmp eax, 1
je 0x5249b1
cmp eax, 3
je 0x5249b1
xor eax, eax
jmp 0x5249b6
mov eax, 1
cmp eax, ebx
je 0x521a8d
inc edi
cmp edi, ebp
jbe 0x524920
jmp 0x5244d1
mov ebp, ecx
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5292b9
cmp esi, dword [ebp + 0x5c]
ja 0x5249ec
cmp dword [ebp + 0x24], 0
je case.default.0x5292b9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x522b72
jmp case.default.0x5292b9
mov ebp, dword [esp + 0x6c]
mov esi, 1
nop word [eax + eax]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jae 0x524b33
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], edx
je 0x524a5f
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x524a5f
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 0x524a63
mov edx, dword [esp + 0x10]
cmp ecx, 0x20
ja 0x524a7d
je case.0x524b27.8193
lea eax, [ecx - 9]
cmp eax, 4
ja case.0x524b27.8203
jmp dword [eax*4 + 0x52bb5c]
cmp ecx, 0x2000
ja 0x524b0b
je case.0x524b27.8193
cmp ecx, 0x1680
ja 0x524b03
je case.0x524b27.8193
mov eax, ecx
sub eax, 0x85
je case.0x524b27.8193
sub eax, 0x1b
je case.0x524b27.8193
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ad480]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5b1880]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5a9271]
cmp dword [eax*4 + 0x5a6d10], 6
sete cl
cmp ecx, ebx
je case.default.0x5292b9
inc esi
cmp esi, dword [edx + 0x20]
ja 0x5244d1
mov eax, dword [esp + 0x10]
jmp 0x524a10
cmp ecx, 0x180e
jmp 0x524aad
cmp ecx, 0x3000
ja case.0x524b27.8203
je case.0x524b27.8193
lea eax, [ecx - 0x2001]
cmp eax, 0x5e
ja case.0x524b27.8203
movzx eax, byte [eax + 0x52bb78]
jmp dword [eax*4 + 0x52bb70]
cmp edi, 0xf
jmp 0x524aea
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5292b9
cmp edx, dword [ebp + 0x5c]
ja 0x524b51
cmp dword [ebp + 0x24], 0
je case.default.0x5292b9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x522b72
jmp case.default.0x5292b9
mov esi, dword [eax + 0x38]
mov edi, 1
jmp 0x524b74
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x6c]
cmp esi, dword [ecx + 0x54]
jae 0x524c23
cmp dword [esp + 0x14], 0
lea ecx, [esi + 2]
movzx edx, word [esi]
mov esi, ecx
mov dword [eax + 0x38], ecx
je 0x524bc4
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x524bc4
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 + 0x5ad480]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5b1880]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5a9271]
mov eax, dword [eax*4 + 0x5a6d10]
cmp eax, 1
je 0x524c08
cmp eax, 3
je 0x524c08
cmp edx, 0x5f
je 0x524c08
xor eax, eax
jmp 0x524c0d
mov eax, 1
cmp eax, ebx
je 0x521a8d
inc edi
cmp edi, ebp
jbe 0x524b70
jmp 0x5244d1
mov ebp, ecx
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5292b9
cmp esi, dword [ebp + 0x5c]
ja 0x524c43
cmp dword [ebp + 0x24], 0
je case.default.0x5292b9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x522b72
jmp case.default.0x5292b9
mov ebx, dword [esp + 0x14]
mov esi, 1
mov ecx, dword [esp + 0x6c]
mov edx, dword [eax + 0x38]
cmp edx, dword [ecx + 0x54]
jae 0x524d02
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x524cb3
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x524caf
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 + 0x5a8ca8]
lea eax, [eax*4 + 0x5a8ca8]
cmp ecx, edx
jb 0x524cd5
lea eax, [eax + 4]
cmp ecx, edx
je 0x524cec
mov edx, dword [eax]
cmp ecx, edx
jae 0x524cc8
cmp edi, 0xf
jne 0x524cf1
inc esi
cmp esi, ebp
ja 0x5244d1
mov eax, dword [esp + 0x10]
jmp 0x524c61
cmp edi, 0xf
jne 0x524cda
mov eax, dword [esp + 0x10]
xor esi, esi
mov ebp, dword [esp + 0x6c]
mov edx, ebx
jmp 0x521a9b
mov ebp, ecx
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x524d2a
cmp edx, dword [ebp + 0x5c]
ja 0x524d1a
cmp dword [ebp + 0x24], 0
je 0x524d2a
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x522b72
mov eax, dword [esp + 0x10]
xor esi, esi
mov edx, ebx
jmp 0x521a9b
mov esi, 1
jmp 0x524d44
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x6c]
mov edx, dword [eax + 0x38]
cmp edx, dword [ecx + 0x54]
jae 0x524ddb
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], edx
je 0x524d95
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x524d95
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 0x524dc0
cmp ecx, 0x40
je 0x524dc0
cmp ecx, 0x60
je 0x524dc0
cmp ecx, 0xa0
jb 0x524db4
cmp ecx, 0xd7ff
jbe 0x524dc0
cmp ecx, 0xe000
jae 0x524dc0
xor eax, eax
jmp 0x524dc5
mov eax, 1
cmp eax, ebx
je 0x521a8d
inc esi
cmp esi, ebp
jbe 0x524d40
jmp 0x5244d1
mov ebp, ecx
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5292b9
cmp edx, dword [ebp + 0x5c]
ja 0x524dfb
cmp dword [ebp + 0x24], 0
je case.default.0x5292b9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x522b72
jmp case.default.0x5292b9
mov esi, dword [eax + 0x38]
mov edi, 1
jmp 0x524e24
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x6c]
cmp esi, dword [ecx + 0x54]
jae 0x524ec1
cmp dword [esp + 0x14], 0
lea edx, [esi + 2]
movzx ecx, word [esi]
mov esi, edx
mov dword [eax + 0x38], edx
je 0x524e74
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x524e74
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 + 0x5ad480]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5b1880]
lea eax, [eax + eax*2]
movzx eax, word [eax*4 + 0x5a9278]
shr eax, 0xb
cmp eax, dword [edx + 0x2c]
sete cl
cmp ecx, ebx
je 0x521a8d
inc edi
cmp edi, ebp
jbe 0x524e20
jmp 0x5244d1
mov ebp, ecx
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5292b9
cmp esi, dword [ebp + 0x5c]
ja 0x524ee1
cmp dword [ebp + 0x24], 0
je case.default.0x5292b9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x522b72
jmp case.default.0x5292b9
mov esi, dword [eax + 0x38]
mov edi, 1
nop
mov ecx, dword [esp + 0x6c]
cmp esi, dword [ecx + 0x54]
jae 0x524fc6
cmp dword [esp + 0x14], 0
lea ecx, [esi + 2]
movzx edx, word [esi]
mov esi, ecx
mov dword [eax + 0x38], ecx
je 0x524f54
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x524f50
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 + 0x5ad480]
shl eax, 7
add eax, edx
movzx eax, word [eax*2 + 0x5b1880]
lea eax, [eax + eax*2]
movzx edx, word [eax*4 + 0x5a927a]
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 + 0x5a8720]
and ecx, eax
mov eax, dword [esp + 0x10]
neg ecx
sbb ecx, ecx
neg ecx
cmp ecx, ebx
je 0x524fbb
inc edi
cmp edi, ebp
jbe 0x524f00
jmp 0x5244d1
mov ebp, dword [esp + 0x6c]
xor esi, esi
jmp 0x521a97
mov ebp, ecx
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5292b9
cmp esi, dword [ebp + 0x5c]
ja 0x524fe6
cmp dword [ebp + 0x24], 0
je case.default.0x5292b9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x522b72
jmp case.default.0x5292b9
cmp edi, 0x16
jne 0x5250ec
mov ebp, dword [esp + 0x6c]
mov edi, 1
mov esi, dword [ebp + 0x54]
jmp 0x525016
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, esi
jae 0x5250b9
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 0x525064
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x525064
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.00538830
mov dword [ebx + 0x38], eax
add esp, 0x18
mov esi, dword [ebp + 0x54]
cmp eax, esi
jb 0x5250aa
movzx ecx, word [ebp + 0x3c]
mov edx, ecx
test cx, cx
je 0x5250aa
cmp eax, dword [ebp + 0x5c]
ja 0x52509a
cmp dword [ebp + 0x24], 0
je 0x5250aa
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x522b72
inc edi
cmp edi, dword [ebx + 0x20]
jbe 0x525012
jmp 0x5244d5
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5292b9
cmp edx, dword [ebp + 0x5c]
ja 0x5250d7
cmp dword [ebp + 0x24], 0
je case.default.0x5292b9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x522b72
jmp case.default.0x5292b9
lea eax, [edi - 6]
cmp eax, 0xf
ja case.0x52929c.15
mov esi, dword [esp + 0x14]
test esi, esi
je 0x525a7a
jmp dword [eax*4 + 0x52bbd8]
jmp dword [eax*4 + 0x52bd18]
cmp edi, ebp
jae 0x526c67
nop dword [eax + eax]
mov eax, dword [esp + 0x6c]
mov ecx, 1
cmp esi, dword [eax + 0x54]
jae 0x5262aa
cmp dword [esp + 0x14], 0
je 0x52628d
mov eax, 0xfc00
mov edx, 0xd800
and ax, word [esi]
cmp ax, dx
mov eax, 2
cmove ecx, eax
cmp ebx, 0xf
je 0x526c67
mov eax, dword [esp + 0x10]
lea esi, [esi + ecx*2]
inc edi
mov dword [eax + 0x38], esi
cmp edi, ebp
jb 0x526260
jmp 0x526c67
mov ebp, eax
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x526c6b
cmp esi, dword [ebp + 0x5c]
ja 0x5262ca
cmp dword [ebp + 0x24], 0
je 0x526c6b
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x522b72
jmp 0x526c6b
cmp edi, ebp
jae 0x526c67
mov ebx, dword [esp + 0x5c]
nop dword [eax + eax]
mov eax, dword [esp + 0x6c]
mov edx, 1
cmp esi, dword [eax + 0x54]
jae 0x526395
cmp dword [esp + 0x14], 0
movzx ecx, word [esi]
je 0x526339
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x526339
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 + 0x5ad480]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5b1880]
lea eax, [eax + eax*2]
mov al, byte [eax*4 + 0x5a9271]
cmp al, 9
je 0x526370
cmp al, 5
je 0x526370
cmp al, 8
je 0x526370
xor eax, eax
jmp 0x526375
mov eax, 1
cmp eax, ebx
je 0x526c67
mov eax, dword [esp + 0x10]
lea esi, [esi + edx*2]
inc edi
mov dword [eax + 0x38], esi
cmp edi, ebp
jb 0x5262f0
jmp 0x526c67
mov ebp, eax
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x526c6b
cmp esi, dword [ebp + 0x5c]
ja 0x5263b5
cmp dword [ebp + 0x24], 0
je 0x526c6b
mov dword [ebp + 0x1c], edx
cmp ecx, 1
ja 0x522b72
jmp 0x526c6b
cmp edi, ebp
jae 0x526c67
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x6c]
mov edx, 1
cmp esi, dword [eax + 0x54]
jae 0x526395
cmp dword [esp + 0x14], 0
movzx ecx, word [esi]
je 0x526417
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x526417
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 + 0x5ad480]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5b1880]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5a9271]
mov eax, dword [eax*4 + 0x5a6d10]
cmp eax, dword [ebx + 0x2c]
sete cl
cmp ecx, dword [esp + 0x5c]
je 0x526c67
inc edi
lea esi, [esi + edx*2]
mov dword [ebx + 0x38], esi
cmp edi, ebp
jb 0x5263d2
jmp 0x526c67
cmp edi, ebp
jae 0x526c67
mov ebx, dword [esp + 0x10]
nop dword [eax + eax]
mov eax, dword [esp + 0x6c]
mov edx, 1
cmp esi, dword [eax + 0x54]
jae 0x526395
cmp dword [esp + 0x14], 0
movzx ecx, word [esi]
je 0x5264c9
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5264c9
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 + 0x5ad480]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5b1880]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5a9271]
cmp eax, dword [ebx + 0x2c]
sete cl
cmp ecx, dword [esp + 0x5c]
je 0x526c67
inc edi
lea esi, [esi + edx*2]
mov dword [ebx + 0x38], esi
cmp edi, ebp
jb 0x526480
jmp 0x526c67
cmp edi, ebp
jae 0x526c67
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x6c]
mov edx, 1
cmp esi, dword [eax + 0x54]
jae 0x526395
cmp dword [esp + 0x14], 0
movzx ecx, word [esi]
je 0x52656c
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x52656c
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 + 0x5ad480]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5b1880]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5a9270]
cmp eax, dword [ebx + 0x2c]
sete cl
cmp ecx, dword [esp + 0x5c]
je 0x526c67
inc edi
lea esi, [esi + edx*2]
mov dword [ebx + 0x38], esi
cmp edi, ebp
jb 0x526523
jmp 0x526c67
cmp edi, ebp
jae 0x526c67
mov ebx, dword [esp + 0x5c]
nop word [eax + eax]
mov eax, dword [esp + 0x6c]
mov edi, 1
cmp esi, dword [eax + 0x54]
jae 0x5266a5
cmp dword [esp + 0x14], 0
movzx ecx, word [esi]
je 0x526619
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x526619
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 + 0x5ad480]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5b1880]
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x2c]
movzx eax, byte [edx*4 + 0x5a9270]
cmp eax, ecx
je 0x526678
movzx edx, word [edx*4 + 0x5a9278]
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 + 0x5a8f78], eax
jne 0x526678
xor eax, eax
jmp 0x52667d
mov eax, 1
cmp eax, ebx
je 0x526c67
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 0x5265d0
jmp 0x526c67
mov ebp, eax
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x526c6b
cmp esi, dword [ebp + 0x5c]
ja 0x5266c5
cmp dword [ebp + 0x24], 0
je 0x526c6b
mov dword [ebp + 0x1c], edi
jmp 0x5263b8
cmp edi, ebp
jae 0x526c67
mov ebx, dword [esp + 0x5c]
nop dword [eax]
mov eax, dword [esp + 0x6c]
mov edx, 1
cmp esi, dword [eax + 0x54]
jae 0x526395
cmp dword [esp + 0x14], 0
movzx ecx, word [esi]
je 0x526729
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x526729
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 + 0x5ad480]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5b1880]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5a9271]
mov eax, dword [eax*4 + 0x5a6d10]
cmp eax, 1
je 0x526766
cmp eax, 3
je 0x526766
xor eax, eax
jmp 0x52676b
mov eax, 1
cmp eax, ebx
je 0x526c67
mov eax, dword [esp + 0x10]
lea esi, [esi + edx*2]
inc edi
mov dword [eax + 0x38], esi
cmp edi, ebp
jb 0x5266e0
jmp 0x526c67
cmp edi, ebp
mov ebp, dword [esp + 0x6c]
jae 0x526c6b
nop word [eax + eax]
mov edx, 1
cmp esi, dword [ebp + 0x54]
jae 0x526397
cmp dword [esp + 0x14], 0
movzx ecx, word [esi]
je 0x5267e5
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5267e5
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 0x5267ff
je case.0x5268b5.8193
lea eax, [ecx - 9]
cmp eax, 4
ja case.0x5268b5.8203
jmp dword [eax*4 + 0x52be58]
cmp ecx, 0x2000
ja 0x526899
je case.0x5268b5.8193
cmp ecx, 0x1680
ja 0x526891
je case.0x5268b5.8193
mov eax, ecx
sub eax, 0x85
je case.0x5268b5.8193
sub eax, 0x1b
je case.0x5268b5.8193
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ad480]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5b1880]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5a9271]
cmp dword [eax*4 + 0x5a6d10], 6
sete cl
cmp ecx, dword [esp + 0x5c]
je 0x526c6b
mov eax, dword [esp + 0x10]
lea esi, [esi + edx*2]
inc edi
mov dword [eax + 0x38], esi
cmp edi, dword [eax + 0x24]
jb 0x5267a0
jmp 0x526c6b
cmp ecx, 0x180e
jmp 0x526833
cmp ecx, 0x3000
ja case.0x5268b5.8203
je case.0x5268b5.8193
lea eax, [ecx - 0x2001]
cmp eax, 0x5e
ja case.0x5268b5.8203
movzx eax, byte [eax + 0x52be74]
jmp dword [eax*4 + 0x52be6c]
cmp ebx, 0xf
je 0x526c6b
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 0x38]
jmp 0x52687c
cmp edi, ebp
jae 0x526c67
mov ebx, dword [esp + 0x5c]
nop word [eax + eax]
mov eax, dword [esp + 0x6c]
mov edi, 1
cmp esi, dword [eax + 0x54]
jae 0x5266a5
cmp dword [esp + 0x14], 0
movzx edx, word [esi]
je 0x526929
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x526929
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 + 0x5ad480]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5b1880]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5a9271]
mov eax, dword [eax*4 + 0x5a6d10]
cmp eax, 1
je 0x52696d
cmp eax, 3
je 0x52696d
cmp edx, 0x5f
je 0x52696d
xor eax, eax
jmp 0x526972
mov eax, 1
cmp eax, ebx
je 0x526c67
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 0x5268e0
jmp 0x526c67
cmp edi, ebp
jae 0x526c67
mov eax, dword [esp + 0x6c]
mov edi, 1
cmp esi, dword [eax + 0x54]
jae 0x5266a5
cmp dword [esp + 0x14], 0
movzx ecx, word [esi]
je 0x5269eb
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5269eb
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 + 0x5a8ca8]
lea eax, [eax*4 + 0x5a8ca8]
cmp ecx, edx
jb 0x526a11
lea eax, [eax + 4]
cmp ecx, edx
je 0x526a39
mov edx, dword [eax]
cmp ecx, edx
jae 0x526a04
cmp ebx, 0xf
jne 0x526c67
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 0x5269a2
jmp 0x526c67
cmp ebx, 0xf
je 0x526c67
jmp 0x526a1a
cmp edi, ebp
jae 0x526c67
mov ebx, dword [esp + 0x5c]
mov eax, dword [esp + 0x6c]
mov edx, 1
cmp esi, dword [eax + 0x54]
jae 0x526395
cmp dword [esp + 0x14], 0
movzx ecx, word [esi]
je 0x526a99
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x526a99
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 0x526ac4
cmp ecx, 0x40
je 0x526ac4
cmp ecx, 0x60
je 0x526ac4
cmp ecx, 0xa0
jb 0x526ab8
cmp ecx, 0xd7ff
jbe 0x526ac4
cmp ecx, 0xe000
jae 0x526ac4
xor eax, eax
jmp 0x526ac9
mov eax, 1
cmp eax, ebx
je 0x526c67
mov eax, dword [esp + 0x10]
lea esi, [esi + edx*2]
inc edi
mov dword [eax + 0x38], esi
cmp edi, ebp
jb 0x526a50
jmp 0x526c67
cmp edi, ebp
jae 0x526c67
mov ebx, dword [esp + 0x10]
nop word [eax + eax]
mov eax, dword [esp + 0x6c]
mov edx, 1
cmp esi, dword [eax + 0x54]
jae 0x526395
cmp dword [esp + 0x14], 0
movzx ecx, word [esi]
je 0x526b49
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x526b49
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 + 0x5ad480]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5b1880]
lea eax, [eax + eax*2]
movzx eax, word [eax*4 + 0x5a9278]
shr eax, 0xb
cmp eax, dword [ebx + 0x2c]
sete cl
cmp ecx, dword [esp + 0x5c]
je 0x526c67
inc edi
lea esi, [esi + edx*2]
mov dword [ebx + 0x38], esi
cmp edi, ebp
jb 0x526b00
jmp 0x526c67
cmp edi, ebp
jae 0x526c67
mov ebx, dword [esp + 0x10]
nop word [eax + eax]
mov eax, dword [esp + 0x6c]
mov edi, 1
cmp esi, dword [eax + 0x54]
jae 0x5266a5
cmp dword [esp + 0x14], 0
movzx edx, word [esi]
je 0x526bf9
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x526bf9
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 + 0x5ad480]
shl eax, 7
add eax, edx
movzx eax, word [eax*2 + 0x5b1880]
lea eax, [eax + eax*2]
movzx edx, word [eax*4 + 0x5a927a]
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 + 0x5a8720]
and ecx, eax
neg ecx
sbb ecx, ecx
neg ecx
cmp ecx, dword [esp + 0x5c]
je 0x526c67
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 0x526bb0
mov ebp, dword [esp + 0x6c]
cmp dword [esp + 0x18], 2
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x68]
je 0x521750
mov ebx, dword [esp + 0x10]
mov ecx, dword [ebx + 0x38]
jmp 0x52a839
cmp ebx, 0x16
jne 0x526d8a
cmp edi, ebp
mov ebp, dword [esp + 0x6c]
jae 0x526d72
mov esi, dword [ebp + 0x54]
mov ebx, dword [esp + 0x10]
nop word [eax + eax]
mov edx, dword [ebx + 0x38]
cmp edx, esi
jae 0x526d4c
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov esi, edx
mov dword [ebx + 0x38], edx
je 0x526cfa
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x526cfa
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.00538830
mov dword [ebx + 0x38], eax
add esp, 0x18
mov esi, dword [ebp + 0x54]
cmp eax, esi
jb 0x526d40
movzx ecx, word [ebp + 0x3c]
mov edx, ecx
test cx, cx
je 0x526d40
cmp eax, dword [ebp + 0x5c]
ja 0x526d30
cmp dword [ebp + 0x24], 0
je 0x526d40
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x522b72
inc edi
cmp edi, dword [ebx + 0x24]
jb 0x526cb0
jmp 0x526d72
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x526d72
cmp edx, dword [ebp + 0x5c]
ja 0x526d62
cmp dword [ebp + 0x24], 0
je 0x526d72
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x522b72
cmp dword [esp + 0x18], 2
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x68]
je 0x521750
jmp 0x52ad60
lea eax, [ebx - 6]
cmp eax, 0xf
ja case.0x52929c.15
mov edx, dword [esp + 0x14]
test edx, edx
je 0x5275dc
jmp dword [eax*4 + 0x52bed4]
jmp dword [eax*4 + 0x52bf8c]
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 0x527dc5
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 0x527dba
cmp dword [ebp + eax*4 + 0x54], 0xffffffff
jne 0x527dc5
movzx eax, word [ebx + 0x42]
lea ecx, [ecx + eax*2]
test edx, edx
jg 0x527da0
mov esi, dword [ebp]
jmp 0x527df1
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.0x527e09
movzx eax, byte [eax + 0x52c0c4]
jmp dword [eax*4 + 0x52c0bc]
mov ecx, dword [edx*4 + 0x5a6228]
lea eax, [esi + 2]
mov ebx, dword [edx*4 + 0x5a6254]
mov edx, dword [edx*4 + 0x5a6280]
mov dword [ebp], eax
mov dword [ebp + 0x20], ecx
mov dword [ebp + 0x24], ebx
mov dword [esp + 0x18], edx
jmp 0x527e67
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 + 0x5a6280]
mov dword [esp + 0x18], eax
test ebx, ebx
jne 0x527e61
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 0x527e8c
mov eax, dword [ebp + edi*4 + 0x54]
cmp eax, 0xffffffff
je 0x527e8c
mov edx, dword [esp + 0x14]
cmp eax, dword [ebp + edi*4 + 0x58]
je 0x521d27
mov eax, dword [esp + 0x6c]
jmp 0x527ea9
mov edx, dword [esp + 0x14]
test ecx, ecx
je 0x521d27
mov eax, dword [esp + 0x6c]
test dword [eax + 0x7c], 0x200
jne 0x521730
mov esi, 1
cmp ecx, esi
jb 0x527ee8
mov edi, dword [ebp + 0x14]
lea ecx, [esp + 0x40]
push ecx
push eax
push ebp
push dword [ebp + 0x28]
push edi
call fcn.0052c4a0
add esp, 0x14
test eax, eax
jne 0x527f61
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 0x527eb2
mov ebx, dword [ebp + 0x24]
mov edx, dword [esp + 0x14]
cmp ecx, ebx
je 0x521d27
cmp dword [esp + 0x18], 0
je 0x52aebe
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 0x528e58
lea eax, [esp + 0x44]
push eax
push ebp
push ebx
push dword [ebx + 0x28]
push dword [ebx + 0x14]
call fcn.0052c4a0
add esp, 0x14
test eax, eax
jne 0x527fb2
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 0x527f28
jmp 0x527fd7
jle 0x527f6f
mov eax, dword [esp + 0x6c]
mov ecx, dword [eax + 0x54]
mov dword [ebp + 0x38], ecx
jmp 0x527f72
mov ecx, dword [ebp + 0x38]
mov ebp, dword [esp + 0x6c]
cmp ecx, dword [ebp + 0x54]
jb case.default.0x5292b9
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x5292b9
cmp ecx, dword [ebp + 0x5c]
ja 0x527f9d
cmp dword [ebp + 0x24], 0
je case.default.0x5292b9
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x522b72
jmp case.default.0x5292b9
jle 0x527fd7
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x527fd7
mov eax, dword [ebp + 0x54]
cmp eax, dword [ebp + 0x5c]
jbe 0x527fd7
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x522b72
test esi, esi
jne 0x528e58
mov dword [ebx + 0x24], edi
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x16
jmp 0x52b362
lea eax, [esp + 0x28]
push eax
push ebx
push ebp
push dword [ebp + 0x28]
push dword [ebp + 0x14]
call fcn.0052c4a0
add esp, 0x14
test eax, eax
je 0x528053
jle 0x528010
mov ecx, dword [ebx + 0x54]
mov dword [ebp + 0x38], ecx
jmp 0x528013
mov ecx, dword [ebp + 0x38]
mov ebp, dword [esp + 0x6c]
cmp ecx, dword [ebp + 0x54]
jb case.default.0x5292b9
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x5292b9
cmp ecx, dword [ebp + 0x5c]
ja 0x52803e
cmp dword [ebp + 0x24], 0
je case.default.0x5292b9
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x522b72
jmp case.default.0x5292b9
mov eax, dword [esp + 0x28]
add eax, eax
add dword [ebp + 0x38], eax
mov ebp, dword [esp + 0x6c]
jmp 0x521744
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 0x528070
lea eax, [esi + 4]
mov dword [ecx], eax
jmp 0x521750
cmp dword [ebp + 0x20], 0
mov ebx, dword [esp + 0x10]
jne 0x52809d
cmp dword [ebx + 0x18], 0
jne 0x528a59
xor eax, eax
jmp 0x52b169
mov ebx, dword [esp + 0x10]
lea eax, [esp + 0x28]
push eax
push ebp
push ebx
call fcn.00521520
mov esi, eax
add esp, 0xc
test esi, esi
jg case.default.0x5292b9
js 0x521a93
mov eax, dword [esp + 0x28]
add eax, eax
add dword [ebx], eax
jmp 0x521748
movzx eax, word [esi + 2]
mov edi, dword [esp + 0x10]
mov dword [edi + 0xc], eax
cmp word [esi + eax*2], 0x78
je 0x5280ec
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 0x528100
cmp eax, 0x77
jne 0x528130
lea eax, [esp + 0x28]
push eax
push ebp
push edi
call fcn.00521520
mov esi, eax
add esp, 0xc
test esi, esi
jg case.default.0x5292b9
js 0x521a93
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.0x528149.150
movzx eax, byte [eax + 0x52c0e8]
jmp dword [eax*4 + 0x52c0cc]
mov ecx, dword [edi + 0x44]
cmp ecx, 0xffffffff
je case.0x528149.148
movzx eax, word [ebx + 2]
mov ebx, dword [esp + 0x10]
cmp eax, 0xffff
je 0x52ac0e
cmp eax, ecx
je 0x52ac0e
jmp 0x52ac20
mov edi, dword [edi + 0x44]
cmp edi, 0xffffffff
je case.0x528149.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.0x528149.148
movzx eax, word [ecx]
dec edx
cmp eax, edi
je 0x5281d9
lea ecx, [ecx + esi*2]
test edx, edx
jg 0x5281a5
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 0x52ac20
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 + 0x5a6b70]
jmp 0x52ac25
movzx eax, word [ebx + 2]
mov ebx, dword [esp + 0x10]
lea eax, [eax*2 - 2]
cmp eax, dword [ebx + 0x50]
jae 0x52ac20
cmp dword [ebx + eax*4 + 0x54], 0xffffffff
je 0x52ac20
mov ecx, dword [ebx]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x5a6b70]
jmp 0x52ac25
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 0x52ac20
mov edi, dword [ebx + 0x50]
movzx eax, word [ecx]
dec edx
lea eax, [eax*2 - 2]
cmp eax, edi
jae 0x52827c
cmp dword [ebx + eax*4 + 0x54], 0xffffffff
jne 0x52ac0e
lea ecx, [ecx + esi*2]
test edx, edx
jg 0x528262
jmp 0x52ac20
cmp dword [esp + 0x14], 0
movzx edx, word [esi + 2]
mov ebx, dword [esp + 0x10]
je 0x5282cf
test edx, edx
je 0x5282ca
mov ecx, dword [ebx + 0x38]
mov esi, 0xfc00
dec edx
cmp ecx, dword [ebp + 0x50]
jbe case.default.0x5292b9
add ecx, 0xfffffffe
mov dword [ebx + 0x38], ecx
mov ax, word [ecx]
and ax, si
cmp ax, word [esp + 0x30]
jne 0x5282c6
add ecx, 0xfffffffe
mov dword [ebx + 0x38], ecx
test edx, edx
jne 0x5282a3
mov ecx, dword [ebx + 0x38]
jmp 0x5282e9
mov ecx, dword [ebx + 0x38]
mov eax, ecx
sub eax, dword [ebp + 0x4c]
sar eax, 1
cmp edx, eax
jg case.default.0x5292b9
lea eax, [edx + edx]
sub ecx, eax
mov dword [ebx + 0x38], ecx
cmp ecx, dword [ebp + 0x5c]
jae 0x5282f1
mov dword [ebp + 0x5c], ecx
add dword [ebx], 4
jmp 0x521748
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.0x521774.120
jmp 0x521750
movzx eax, word [esi + 2]
mov ecx, 0x86
add eax, eax
sub esi, eax
movzx eax, word [esi]
cmp ax, cx
je 0x52839d
mov ecx, 0x8a
cmp ax, cx
je 0x52839d
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 0x528398
mov eax, dword [ebx + 0x50]
shl eax, 2
push eax
lea eax, [ebx + 0x54]
push eax
lea eax, [edi + 0x54]
push eax
call fcn.0056b850
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 0x521a93
movzx eax, word [esi]
jmp 0x5283a7
mov ebx, dword [esp + 0x10]
xor edi, edi
mov ecx, dword [esp + 0x1c]
movzx eax, ax
add eax, 0xffffff82
cmp eax, 0x10
ja case.0x5283bd.134
movzx eax, byte [eax + 0x52c118]
jmp dword [eax*4 + 0x52c0fc]
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebp + 0x60]
jbe 0x5283cf
mov dword [ebp + 0x60], eax
mov eax, dword [edi + 0x38]
mov dword [ebx + 0x38], eax
jmp case.0x5283bd.134
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebp + 0x60]
jbe 0x5283e5
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.0x5283bd.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 0x528410
jmp case.0x5283bd.134
mov eax, dword [esp + 0x10]
mov esi, 1
jmp 0x521a9b
push edx
push dword [ebx + 0x38]
push dword [edi + 0x38]
call fcn.00538c30
add esp, 0xc
test eax, eax
jne case.0x5283bd.134
jmp case.default.0x5292b9
movzx eax, word [esi + 4]
cmp dword [ebx + 0x44], eax
jne 0x52848f
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.0056b850
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 0x521744
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.0x5283bd.134
mov dword [ebx + 0x50], edx
mov edx, dword [ebx]
cmp word [edx], 0x7c
jne 0x5284de
push dword [esp + 0x48]
lea eax, [ebx + 0x38]
push eax
lea eax, [edi + 0x38]
push eax
call fcn.0056b850
add esp, 0xc
mov esi, 0xfffffc1a
jmp 0x521a93
mov cl, byte [ebx + 0x31]
cmp cl, 0x79
je 0x5284fa
test edi, edi
je 0x52ae79
mov eax, dword [ebx + 0x38]
cmp eax, dword [edi + 0x38]
jne 0x52ae79
add dword [ebx], 4
jmp 0x521744
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x38]
cmp eax, dword [ebp + 0x4c]
jne 0x521c0f
test byte [ebp + 0x78], 1
jne 0x521c0f
lea eax, [esi + 2]
mov dword [ecx], eax
jmp 0x521750
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x38]
cmp eax, dword [ebp + 0x4c]
je 0x52851c
xor esi, esi
mov eax, ecx
jmp 0x521a9b
test byte [ebp + 0x78], 2
je 0x52854c
mov eax, dword [esp + 0x10]
xor esi, esi
jmp 0x521a9b
test byte [ebp + 0x7c], 0x10
je case.0x521774.23
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0x38]
cmp eax, dword [ebp + 0x54]
jb case.default.0x5292b9
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x52857d
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x522b72
add dword [edx], 2
jmp 0x521748
mov ebp, dword [esp + 0x10]
mov ecx, dword [esp + 0x6c]
mov edx, dword [ebp + 0x38]
mov esi, dword [ecx + 0x54]
cmp edx, esi
jae 0x528656
mov eax, dword [ecx + 0x88]
lea ebx, [ecx + 0x8c]
test eax, eax
je 0x5285cd
push dword [esp + 0x14]
push ebx
push esi
push eax
push edx
call fcn.00538a30
add esp, 0x14
test eax, eax
je 0x528605
mov ecx, dword [esp + 0x6c]
mov edi, dword [ebx]
mov edx, dword [ebp + 0x38]
mov esi, dword [ecx + 0x54]
jmp 0x5285fc
mov edi, dword [ebx]
mov ecx, esi
lea eax, [edi + edi]
sub ecx, eax
cmp edx, ecx
ja 0x528605
mov ecx, dword [esp + 0x6c]
mov ax, word [edx]
cmp ax, word [ecx + 0x90]
jne 0x528605
cmp edi, 1
je 0x5285fc
mov ax, word [edx + 2]
cmp ax, word [ecx + 0x92]
jne 0x528605
lea eax, [edi + edi]
sub esi, eax
cmp edx, esi
je 0x528656
mov eax, dword [esp + 0x6c]
movzx eax, word [eax + 0x3c]
mov edx, eax
test ax, ax
je 0x521a8d
mov ecx, dword [ebp + 0x38]
mov ebp, dword [esp + 0x6c]
lea eax, [ecx + 2]
cmp eax, dword [ebp + 0x54]
jb case.default.0x5292b9
cmp dword [ebp + 0x88], 0
jne case.default.0x5292b9
cmp dword [ebx], 2
jne case.default.0x5292b9
mov ax, word [ecx]
cmp ax, word [ebp + 0x90]
jne case.default.0x5292b9
jmp 0x523e1f
movzx eax, word [ecx + 0x3c]
mov ecx, eax
test ax, ax
je 0x528675
mov eax, dword [esp + 0x6c]
mov dword [eax + 0x1c], 1
cmp ecx, 1
ja 0x522b72
add dword [ebp], 2
mov ebp, dword [esp + 0x6c]
jmp 0x521744
test byte [ebp + 0x78], 1
mov ebx, dword [esp + 0x10]
je 0x52869d
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebp + 0x4c]
jne 0x52869d
xor esi, esi
mov eax, ebx
jmp 0x521a9b
mov ecx, dword [ebx + 0x38]
mov edx, dword [ebp + 0x4c]
cmp ecx, edx
je 0x528804
cmp ecx, dword [ebp + 0x54]
jne 0x5286bd
test dword [ebp + 0x7c], 0x200000
je case.default.0x5292b9
mov esi, dword [ebp + 0x88]
test esi, esi
je 0x5286f5
cmp ecx, edx
jbe case.default.0x5292b9
push dword [esp + 0x14]
lea eax, [ebp + 0x8c]
push eax
push edx
push esi
push ecx
call fcn.00538af0
add esp, 0x14
test eax, eax
je case.default.0x5292b9
add dword [ebx], 2
jmp 0x521744
mov edi, dword [ebp + 0x8c]
lea esi, [edi + edi]
lea eax, [edx + esi]
cmp ecx, eax
jb case.default.0x5292b9
sub ecx, esi
mov ax, word [ecx]
cmp ax, word [ebp + 0x90]
jne case.default.0x5292b9
cmp edi, 1
je 0x528804
mov ax, word [ecx + 2]
cmp ax, word [ebp + 0x92]
je 0x528804
jmp case.default.0x5292b9
mov ebx, dword [esp + 0x10]
mov ecx, dword [ebp + 0x54]
mov edx, dword [ebx + 0x38]
cmp edx, ecx
jae 0x5287d4
mov eax, dword [ebp + 0x88]
lea edi, [ebp + 0x8c]
test eax, eax
je 0x528778
push dword [esp + 0x14]
push edi
push ecx
push eax
push edx
call fcn.00538a30
add esp, 0x14
test eax, eax
je 0x5287a1
add dword [ebx], 2
jmp 0x521744
mov esi, dword [edi]
lea eax, [esi + esi]
sub ecx, eax
cmp edx, ecx
ja 0x5287a1
mov ax, word [edx]
cmp ax, word [ebp + 0x90]
jne 0x5287a1
cmp esi, 1
je 0x528804
mov ax, word [edx + 2]
cmp ax, word [ebp + 0x92]
je 0x528804
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x5292b9
mov ecx, dword [ebx + 0x38]
lea eax, [ecx + 2]
cmp eax, dword [ebp + 0x54]
jb case.default.0x5292b9
cmp dword [ebp + 0x88], 0
jne case.default.0x5292b9
cmp dword [edi], 2
jmp 0x52863b
test byte [ebp + 0x78], 2
jne case.default.0x5292b9
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x528804
cmp edx, dword [ebp + 0x5c]
ja 0x5287f4
cmp dword [ebp + 0x24], 0
je 0x528804
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x522b72
add dword [ebx], 2
jmp 0x521744
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 0x52851c
xor esi, esi
mov eax, ecx
jmp 0x521a9b
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x38]
mov dword [ecx + 0x3c], eax
lea eax, [esi + 2]
mov dword [ecx], eax
jmp 0x521750
mov ebx, dword [esp + 0x10]
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x50]
je 0x528910
movzx eax, word [edx - 2]
add edx, 0xfffffffe
cmp dword [esp + 0x14], 0
mov ecx, eax
je 0x52889d
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x528872
movzx ecx, word [edx - 2]
sub edx, 2
movzx ecx, cx
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x52889d
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 0x5288a5
mov dword [ebp + 0x5c], edx
test dword [ebp + 0x7c], 0x20000
je 0x5288f8
cmp ecx, 0x5f
jne 0x5288b8
lea edi, [ecx - 0x5e]
jmp 0x528912
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ad480]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5b1880]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5a9271]
mov eax, dword [eax*4 + 0x5a6d10]
cmp eax, 1
je 0x5288f1
cmp eax, 3
jne 0x528910
mov edi, 1
jmp 0x528912
cmp ecx, 0xff
ja 0x528910
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 0x10
je 0x528910
mov edi, 1
jmp 0x528912
xor edi, edi
mov ecx, dword [ebx + 0x38]
mov eax, dword [ebp + 0x54]
cmp ecx, eax
jb 0x528973
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je 0x528942
cmp ecx, dword [ebp + 0x5c]
ja 0x528932
cmp dword [ebp + 0x24], 0
je 0x528942
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x522b72
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 0x528958
xor edx, 1
mov edi, dword [esp + 0x68]
test edx, edx
mov edx, dword [esp + 0x14]
je 0x521750
mov eax, dword [esp + 0x10]
xor esi, esi
jmp 0x521a9b
cmp dword [esp + 0x14], 0
lea esi, [ecx + 2]
mov edx, esi
je 0x5289c1
cmp edx, eax
jae 0x528995
mov ax, word [edx]
and ax, word [esp + 0x34]
cmp ax, word [esp + 0x30]
jne 0x528995
add edx, 2
movzx ecx, word [ecx]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5289c4
movzx eax, word [esi]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
jmp 0x5289c4
movzx ecx, word [ecx]
cmp edx, dword [ebp + 0x60]
jbe 0x5289cc
mov dword [ebp + 0x60], edx
test dword [ebp + 0x7c], 0x20000
je 0x528a29
cmp ecx, 0x5f
jne 0x5289e2
lea edx, [ecx - 0x5e]
jmp 0x528944
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ad480]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5b1880]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5a9271]
mov eax, dword [eax*4 + 0x5a6d10]
cmp eax, 1
je 0x528a1f
cmp eax, 3
jne 0x528942
mov edx, 1
jmp 0x528944
cmp ecx, 0xff
ja 0x528942
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 0x10
je 0x528942
mov edx, 1
jmp 0x528944
test esi, esi
jne case.0x528b26.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 + 0x5a6b70]
lea esi, [ecx + eax*2]
je 0x52ae97
mov dword [ebx], esi
jmp 0x521744
cmp esi, 0xfffffc1f
jne 0x528aa9
mov ecx, dword [ebx]
movzx eax, word [ecx + 2]
lea eax, [ecx + eax*2]
cmp dword [ebp + 0x6c], eax
jae case.0x528b26.998
cmp word [ecx], 0x78
je 0x528ab1
cmp word [eax], 0x78
jmp 0x528aab
test esi, esi
jne case.0x528b26.998
mov ecx, dword [ebx]
movzx eax, word [ecx + 2]
lea esi, [ecx + eax*2]
mov dword [ebx], esi
cmp word [esi], 0x78
je 0x52b16c
mov eax, dword [esp + 0x10]
xor esi, esi
jmp 0x521a9b
cmp esi, 0xfffffc19
je 0x52ab38
test esi, esi
je 0x528aed
cmp esi, 0xfffffc1f
jne case.0x528b26.998
mov ecx, dword [ebx]
movzx eax, word [ecx + 2]
lea esi, [ecx + eax*2]
mov dword [ebx], esi
cmp word [esi], 0x78
je 0x52b222
mov eax, dword [esp + 0x10]
xor esi, esi
jmp 0x521a9b
test esi, esi
jg 0x528b2d
je case.0x528b26.993
lea eax, [esi + 0x3e7]
cmp eax, 6
ja case.0x528b26.998
jmp dword [eax*4 + 0x52c12c]
mov eax, esi
sub eax, 1
mov eax, dword [esp + 0x10]
jne 0x521a9b
mov eax, dword [esp + 0x10]
xor esi, esi
jmp 0x521a9b
test esi, esi
jg 0x528b67
je case.0x528b60.993
lea eax, [esi + 0x3e7]
cmp eax, 6
ja case.0x528b26.998
jmp dword [eax*4 + 0x52c148]
mov eax, esi
sub eax, 1
jne case.0x528b26.998
mov eax, dword [ebx + 0x20]
test eax, eax
je 0x52ac20
mov ecx, dword [ebx]
nop
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [ebx], ecx
cmp word [ecx], 0x78
je 0x528b80
movzx eax, word [ecx]
movzx eax, byte [eax + 0x5a6b70]
jmp 0x52ac25
test esi, esi
jne case.0x528b26.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 0x521750
test esi, esi
je 0x5284fa
mov eax, dword [esp + 0x10]
jmp 0x521a9b
cmp esi, 0xfffffc1a
jne 0x528c01
mov dword [ebx + 0x24], 1
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebx + 4]
jne 0x52aea0
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 0x528bf0
jmp 0x528c44
cmp esi, 0xfffffc1f
jne 0x528c27
mov ecx, dword [ebx]
movzx eax, word [ecx + 2]
lea eax, [ecx + eax*2]
cmp dword [ebp + 0x6c], eax
jae case.0x528b26.998
cmp word [ecx], 0x78
je 0x528c2f
cmp word [eax], 0x78
jmp 0x528c29
test esi, esi
jne case.0x528b26.998
mov ecx, dword [ebx]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [ebx], ecx
cmp word [ecx], 0x78
je 0x52b12d
cmp dword [ebx + 0x24], 0
jne 0x528c76
cmp dword [ebx + 0x28], 0
jne 0x528c76
mov eax, dword [esp + 0x10]
xor esi, esi
jmp 0x521a9b
test esi, esi
jne case.0x528b26.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 0x528c66
mov edi, dword [esp + 0x68]
lea eax, [ecx + 4]
mov dword [ebx], eax
jmp 0x521750
test esi, esi
jne case.0x528b26.998
add dword [ebx], 2
mov edi, dword [esp + 0x68]
jmp 0x521750
mov edx, dword [ebx + 4]
movzx eax, word [edx + 2]
lea ecx, [edx + eax*2]
lea eax, [esi + 0x3e5]
cmp eax, 4
ja 0x528ce0
mov eax, dword [ebx + 0x20]
xor eax, 0x40000
cmp dword [ebp + 0x74], eax
jne 0x528ce0
cmp esi, 0xfffffc1f
jne case.default.0x5292b9
cmp dword [ebp + 0x6c], ecx
jae case.default.0x5292b9
cmp word [edx], 0x78
je 0x528cec
cmp word [ecx], 0x78
je 0x528cec
jmp case.default.0x5292b9
mov edx, dword [esp + 0x14]
test esi, esi
jne case.0x528b26.998
mov dword [ebx + 4], ecx
cmp word [ecx], 0x78
je 0x52b1f3
jmp case.default.0x5292b9
cmp esi, 0xfffffc1e
jne case.0x528b26.998
mov eax, dword [ebx]
push dword [ebp + 0x70]
add eax, 4
push eax
call fcn.00538370
mov edx, dword [esp + 0x1c]
add esp, 8
test eax, eax
jne case.0x528b26.998
mov eax, dword [ebx + 0x38]
mov esi, 0xfffffc1d
mov dword [ebp + 0x70], eax
mov eax, dword [esp + 0x10]
jmp 0x521a9b
test esi, esi
jne case.0x528b26.998
mov eax, dword [ebx + 0x44]
mov esi, 0xfffffc1b
mov dword [ebp + 0x74], eax
mov eax, dword [esp + 0x10]
jmp 0x521a9b
test esi, esi
jne case.0x528b26.998
mov eax, dword [ebx + 0x44]
mov esi, 0xfffffc1c
mov dword [ebp + 0x74], eax
mov eax, dword [esp + 0x10]
jmp 0x521a9b
test esi, esi
jne case.0x528b26.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 0x521a9b
test esi, esi
jne case.0x528b26.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 0x521a9b
test esi, esi
jne case.0x528b26.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 0x521a9b
test esi, esi
jne case.0x528b26.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5292b9
lea eax, [esp + 0x4c]
push eax
push ebp
push ebx
push dword [ebx + 0x28]
push dword [ebx + 0x14]
call fcn.0052c4a0
add esp, 0x14
test eax, eax
je 0x52aeaa
jle 0x528e07
mov ecx, dword [ebp + 0x54]
mov dword [edi + 0x38], ecx
jmp 0x528e0a
mov ecx, dword [edi + 0x38]
cmp ecx, dword [ebp + 0x54]
jb case.default.0x5292b9
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x5292b9
cmp ecx, dword [ebp + 0x5c]
ja 0x528e31
cmp dword [ebp + 0x24], 0
je case.default.0x5292b9
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x522b72
jmp case.default.0x5292b9
test esi, esi
jne case.0x528b26.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.0x5292b9
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x15
jmp 0x52b362
test esi, esi
jne case.0x528b26.998
mov esi, dword [ebx + 4]
cmp dword [ebx + 0x38], esi
je case.default.0x5292b9
mov dword [ebx + 0x38], esi
dec dword [ebx + 0x24]
mov edi, dword [ebx + 0x20]
cmp edi, dword [ebx + 0x24]
jae 0x528eb6
lea eax, [esp + 0x50]
push eax
push ebp
push ebx
push dword [ebx + 0x28]
push dword [ebx + 0x14]
call fcn.0052c4a0
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 0x528e91
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x16
jmp 0x52b362
test esi, esi
jne case.0x528b26.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5292b9
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x528f15
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5292b9
cmp edx, dword [ebp + 0x5c]
ja 0x528f00
cmp dword [ebp + 0x24], esi
je case.default.0x5292b9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x522b72
jmp case.default.0x5292b9
movzx ecx, word [edx]
lea eax, [edx + 2]
mov dword [ebx + 0x38], eax
cmp ecx, 0xff
jbe 0x528f3b
cmp byte [ebx + 0x31], 0x6e
je case.default.0x5292b9
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x17
jmp 0x52b362
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 0x528f30
jmp case.default.0x5292b9
test esi, esi
jne case.0x528b26.998
add dword [ebx + 0x38], 0xfffffffe
jmp 0x528f69
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebx + 4]
jb case.default.0x5292b9
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x18
jmp 0x52b362
test esi, esi
jne case.0x528b26.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5292b9
mov ecx, dword [ebx + 0x38]
cmp ecx, dword [ebp + 0x54]
jb 0x528fd4
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x5292b9
cmp ecx, dword [ebp + 0x5c]
ja 0x528fbf
cmp dword [ebp + 0x24], esi
je case.default.0x5292b9
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x522b72
jmp case.default.0x5292b9
movzx eax, word [ecx]
cmp dword [ebx + 0x28], eax
je 0x528fe5
cmp dword [ebx + 0x2c], eax
jne case.default.0x5292b9
lea eax, [ecx + 2]
mov dword [ebx + 0x38], eax
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
mov byte [eax + 0x30], 0x19
jmp 0x52b362
add dword [ebx + 0x38], 0xfffffffe
test esi, esi
je 0x5226fa
mov eax, dword [esp + 0x10]
jmp 0x521a9b
test esi, esi
jne case.0x528b26.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5292b9
mov esi, dword [ebx + 0x38]
cmp esi, dword [ebp + 0x54]
jb 0x529064
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5292b9
cmp esi, dword [ebp + 0x5c]
ja 0x52904f
cmp dword [ebp + 0x24], 0
je case.default.0x5292b9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x522b72
jmp case.default.0x5292b9
movzx ecx, word [esi]
lea eax, [esi + 2]
mov dword [ebx + 0x38], eax
cmp dword [ebx + 0x28], ecx
jne case.default.0x5292b9
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
mov byte [eax + 0x30], 0x1b
jmp 0x52b362
add dword [ebx + 0x38], 0xfffffffe
test esi, esi
je 0x522802
mov eax, dword [esp + 0x10]
jmp 0x521a9b
test esi, esi
jne case.0x528b26.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5292b9
mov ecx, dword [ebx + 0x38]
cmp ecx, dword [ebp + 0x54]
jb 0x5290ee
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x5292b9
cmp ecx, dword [ebp + 0x5c]
ja 0x5290d9
cmp dword [ebp + 0x24], esi
je case.default.0x5292b9
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x522b72
jmp case.default.0x5292b9
movzx eax, word [ecx]
cmp dword [ebx + 0x28], eax
je case.default.0x5292b9
cmp dword [ebx + 0x2c], eax
je case.default.0x5292b9
lea eax, [ecx + 2]
mov dword [ebx + 0x38], eax
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x1d
jmp 0x52b362
test esi, esi
jne case.0x528b26.998
add dword [ebx + 0x38], 0xfffffffe
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebx + 4]
jne 0x52aecd
mov edi, dword [esp + 0x68]
jmp 0x521750
test esi, esi
jne case.0x528b26.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5292b9
mov esi, dword [ebx + 0x38]
cmp esi, dword [ebp + 0x54]
jb 0x52918a
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5292b9
cmp esi, dword [ebp + 0x5c]
ja 0x529175
cmp dword [ebp + 0x24], 0
je case.default.0x5292b9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x522b72
jmp case.default.0x5292b9
movzx ecx, word [esi]
lea eax, [esi + 2]
mov dword [ebx + 0x38], eax
cmp dword [ebx + 0x28], ecx
je case.default.0x5292b9
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x1f
jmp 0x52b362
test esi, esi
jne case.0x528b26.998
add dword [ebx + 0x38], 0xfffffffe
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebx + 4]
jne 0x52aed8
mov edi, dword [esp + 0x68]
jmp 0x521750
test esi, esi
jne case.0x528b26.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5292b9
mov edx, dword [ebx + 0x38]
mov ecx, dword [ebp + 0x54]
cmp edx, ecx
jb 0x52921e
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5292b9
cmp edx, dword [ebp + 0x5c]
ja 0x529209
cmp dword [ebp + 0x24], esi
je case.default.0x5292b9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x522b72
jmp case.default.0x5292b9
mov edi, dword [ebx + 0x28]
cmp edi, 0xc
jne 0x529287
mov esi, dword [ebp + 0x88]
lea eax, [ebp + 0x8c]
test esi, esi
je 0x529256
push dword [esp + 0x14]
push eax
push ecx
push esi
push edx
call fcn.00538a30
add esp, 0x14
test eax, eax
jne case.default.0x5292b9
mov edx, dword [ebx + 0x38]
mov edi, dword [ebx + 0x28]
jmp 0x529287
mov esi, dword [eax]
lea eax, [esi + esi]
sub ecx, eax
cmp edx, ecx
ja 0x529287
mov ax, word [edx]
cmp ax, word [ebp + 0x90]
jne 0x529287
cmp esi, 1
je case.default.0x5292b9
mov ax, word [edx + 2]
cmp ax, word [ebp + 0x92]
je case.default.0x5292b9
movzx ecx, word [edx]
lea eax, [edi - 6]
lea esi, [edx + 2]
mov dword [ebx + 0x38], esi
cmp eax, 0xf
ja case.0x52929c.15
jmp dword [eax*4 + 0x52c164]
cmp ecx, 0x85
ja 0x5292c0
je case.0x5292b9.11
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x5292b9
jmp dword [ecx*4 + 0x52c1a4]
sub ecx, 0x2028
je case.0x5292b9.11
sub ecx, 1
jne case.default.0x5292b9
cmp word [ebp + 0x3e], 2
jne case.0x52929c.13
jmp case.default.0x5292b9
cmp ecx, 0x2000
ja 0x529331
je case.default.0x5292b9
cmp ecx, 0xa0
ja 0x529314
je case.default.0x5292b9
cmp ecx, 9
je case.default.0x5292b9
cmp ecx, 0x20
jne case.0x52929c.13
jmp case.default.0x5292b9
cmp ecx, 0x1680
je case.default.0x5292b9
cmp ecx, 0x180e
jne case.0x52929c.13
jmp case.default.0x5292b9
cmp ecx, 0x3000
ja case.0x52929c.13
je case.default.0x5292b9
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x52929c.13
movzx eax, byte [ecx + 0x52c1bc]
jmp dword [eax*4 + 0x52c1b4]
cmp ecx, 0x2000
ja 0x5293b0
je case.0x52929c.13
cmp ecx, 0xa0
ja 0x529393
je case.0x52929c.13
cmp ecx, 9
je case.0x52929c.13
cmp ecx, 0x20
je case.0x52929c.13
jmp case.default.0x5292b9
cmp ecx, 0x1680
je case.0x52929c.13
cmp ecx, 0x180e
je case.0x52929c.13
jmp case.default.0x5292b9
cmp ecx, 0x3000
ja case.default.0x5292b9
je case.0x52929c.13
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.default.0x5292b9
movzx eax, byte [ecx + 0x52c224]
jmp dword [eax*4 + 0x52c21c]
cmp ecx, 0x85
ja 0x529400
je case.default.0x5292b9
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x52929c.13
jmp dword [ecx*4 + 0x52c284]
sub ecx, 0x2028
je case.default.0x5292b9
sub ecx, 1
jne case.0x52929c.13
jmp case.default.0x5292b9
cmp ecx, 0x85
ja 0x52943b
je case.0x52929c.13
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x5292b9
jmp dword [ecx*4 + 0x52c294]
sub ecx, 0x2028
je case.0x52929c.13
sub ecx, 1
je case.0x52929c.13
jmp case.default.0x5292b9
cmp ecx, 0xff
ja case.0x52929c.13
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 8
je case.0x52929c.13
jmp case.default.0x5292b9
cmp ecx, 0xff
ja case.default.0x5292b9
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 8
jne case.0x52929c.13
jmp case.default.0x5292b9
cmp ecx, 0xff
ja case.0x52929c.13
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 1
je case.0x52929c.13
jmp case.default.0x5292b9
cmp ecx, 0xff
ja case.default.0x5292b9
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 1
jne case.0x52929c.13
jmp case.default.0x5292b9
cmp ecx, 0xff
ja case.0x52929c.13
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 0x10
je case.0x52929c.13
jmp case.default.0x5292b9
cmp ecx, 0xff
ja case.default.0x5292b9
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 0x10
jne case.0x52929c.13
jmp case.default.0x5292b9
test esi, esi
jne case.0x528b26.998
mov eax, dword [ebx + 0x38]
add eax, 0xfffffffe
mov dword [ebx + 0x38], eax
mov ecx, eax
cmp dword [ebx + 0x28], 0x11
jne 0x52953c
cmp eax, dword [ebx + 4]
jbe 0x52953c
cmp word [eax], 0xa
jne 0x52953c
cmp word [eax - 2], 0xd
lea edx, [eax - 2]
jne 0x52953c
mov dword [ebx + 0x38], edx
mov ecx, edx
cmp ecx, dword [ebx + 4]
je 0x521744
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x22
jmp 0x52b362
test esi, esi
jne case.0x528b26.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5292b9
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x5295a4
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5292b9
cmp edx, dword [ebp + 0x5c]
ja 0x52958f
cmp dword [ebp + 0x24], esi
je case.default.0x5292b9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x522b72
jmp case.default.0x5292b9
movzx ecx, word [edx]
add edx, 2
mov esi, dword [esp + 0x14]
mov dword [ebx + 0x38], edx
test esi, esi
je 0x5295e2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5295e2
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.00539120
add esp, 0xc
test eax, eax
jne 0x52af4b
jmp case.default.0x5292b9
test esi, esi
jne case.0x528b26.998
mov ecx, dword [ebx + 0x38]
lea edx, [ecx - 2]
mov dword [ebx + 0x38], edx
cmp ecx, dword [ebx + 4]
jbe case.default.0x5292b9
cmp dword [esp + 0x14], esi
je 0x523534
mov ax, word [edx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x523534
lea eax, [edx - 2]
mov dword [ebx + 0x38], eax
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x65
jmp 0x52b362
test esi, esi
jne case.0x528b26.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5292b9
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x52969e
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5292b9
cmp edx, dword [ebp + 0x5c]
ja 0x529689
cmp dword [ebp + 0x24], esi
je case.default.0x5292b9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x522b72
jmp case.default.0x5292b9
movzx ecx, word [edx]
add edx, 2
mov eax, ecx
mov dword [ebx + 0x38], edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5296d4
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 0x5296f1
cmp byte [ebx + 0x31], 0x6e
je case.default.0x5292b9
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xc8
jmp 0x52b362
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 0x5296e6
jmp case.default.0x5292b9
test esi, esi
jne case.0x528b26.998
mov ecx, dword [ebx + 0x38]
lea edx, [ecx - 2]
mov dword [ebx + 0x38], edx
cmp ecx, dword [ebx + 4]
jbe case.default.0x5292b9
mov ax, word [edx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x52af5a
lea eax, [edx - 2]
mov dword [ebx + 0x38], eax
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xc9
jmp 0x52b362
test esi, esi
jne case.0x528b26.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5292b9
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 0x5297e8
mov eax, dword [esp + 0x10]
mov ecx, ebx
mov edx, dword [eax + 8]
sub esi, 4
jb 0x5297a2
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x5297ab
add ecx, 4
add edx, 4
sub esi, 4
jae 0x529791
cmp esi, 0xfffffffc
je 0x52af65
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x5297e8
cmp esi, 0xfffffffd
je 0x52af65
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x5297e8
cmp esi, 0xfffffffe
je 0x52af65
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x5297e8
cmp esi, 0xffffffff
je 0x52af65
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x52af65
mov ecx, dword [esp + 0x10]
mov edi, dword [ecx + 0x14]
test edi, edi
je 0x529867
lea esi, [edi + edi]
mov eax, ebp
sub eax, esi
cmp ebx, eax
ja 0x529867
lea edx, [ecx + 0x32]
mov ecx, ebx
sub esi, 4
jb 0x529821
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x52982a
add ecx, 4
add edx, 4
sub esi, 4
jae 0x529810
cmp esi, 0xfffffffc
je 0x52af65
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x529867
cmp esi, 0xfffffffd
je 0x52af65
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x529867
cmp esi, 0xfffffffe
je 0x52af65
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x529867
cmp esi, 0xffffffff
je 0x52af65
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x52af65
cmp ebx, ebp
mov ebp, dword [esp + 0x6c]
jb case.default.0x5292b9
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5292b9
cmp ebx, dword [ebp + 0x5c]
ja 0x529891
cmp dword [ebp + 0x24], 0
je case.default.0x5292b9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x522b72
jmp case.default.0x5292b9
test esi, esi
jne case.0x528b26.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 0x5298d4
add ecx, 0xfffffffe
mov dword [ebx + 0x38], ecx
cmp ecx, dword [eax + 4]
jbe 0x521744
mov esi, dword [eax]
mov byte [eax + 0x30], 0xcb
jmp 0x52b366
test esi, esi
jne case.0x528b26.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5292b9
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x52993c
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5292b9
cmp edx, dword [ebp + 0x5c]
ja 0x529927
cmp dword [ebp + 0x24], esi
je case.default.0x5292b9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x522b72
jmp case.default.0x5292b9
movzx ecx, word [edx]
add edx, 2
mov eax, ecx
mov dword [ebx + 0x38], edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x529972
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.0x5292b9
cmp dword [ebx + 0x2c], ecx
je case.default.0x5292b9
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xcc
jmp 0x52b362
test esi, esi
jne case.0x528b26.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 0x5299bd
add ecx, 0xfffffffe
mov dword [ebx + 0x38], ecx
cmp ecx, dword [eax + 4]
ja 0x52af7e
mov edi, dword [esp + 0x68]
jmp 0x521750
test esi, esi
jne case.0x528b26.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5292b9
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x529a23
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5292b9
cmp edx, dword [ebp + 0x5c]
ja 0x529a0e
cmp dword [ebp + 0x24], esi
je case.default.0x5292b9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x522b72
jmp case.default.0x5292b9
movzx ecx, word [edx]
add edx, 2
mov eax, ecx
mov dword [ebx + 0x38], edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x529a59
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.0x5292b9
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xce
jmp 0x52b362
test esi, esi
jne case.0x528b26.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 0x529a97
lea eax, [ecx - 2]
mov dword [ebx + 0x38], eax
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebx + 4]
ja 0x52af89
mov edi, dword [esp + 0x68]
jmp 0x521750
test esi, esi
jne case.0x528b26.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5292b9
mov ecx, dword [ebx + 0x38]
cmp ecx, dword [ebp + 0x54]
jb 0x529b00
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x5292b9
cmp ecx, dword [ebp + 0x5c]
ja 0x529aeb
cmp dword [ebp + 0x24], esi
je case.default.0x5292b9
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x522b72
jmp case.default.0x5292b9
movzx eax, word [ecx]
add ecx, 2
mov edx, dword [esp + 0x14]
mov dword [ebx + 0x38], ecx
test edx, edx
je 0x529b23
and eax, 0xfc00
cmp eax, 0xd800
jne 0x529b23
lea eax, [ecx + 2]
mov dword [ebx + 0x38], eax
cmp dword [ebx + 0x28], 0xf
jne case.0x52ae0a.0
mov eax, dword [esp + 0x10]
xor esi, esi
jmp 0x521a9b
test esi, esi
jne case.0x528b26.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5292b9
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x529b8c
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5292b9
cmp edx, dword [ebp + 0x5c]
ja 0x529b77
cmp dword [ebp + 0x24], esi
je case.default.0x5292b9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x522b72
jmp case.default.0x5292b9
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [ebx + 0x38], edx
je 0x529bc9
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x529bc9
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 + 0x5ad480]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5b1880]
lea eax, [eax + eax*2]
mov al, byte [eax*4 + 0x5a9271]
cmp al, 9
je 0x529c00
cmp al, 5
je 0x529c00
cmp al, 8
je 0x529c00
xor ecx, ecx
jmp 0x529c05
mov ecx, 1
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.default.0x5292b9
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xd1
jmp 0x52b362
test esi, esi
jne case.0x528b26.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5292b9
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x529c75
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5292b9
cmp edx, dword [ebp + 0x5c]
ja 0x529c60
cmp dword [ebp + 0x24], esi
je case.default.0x5292b9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x522b72
jmp case.default.0x5292b9
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [ebx + 0x38], edx
je 0x529cb2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x529cb2
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 + 0x5ad480]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5b1880]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5a9271]
mov eax, dword [eax*4 + 0x5a6d10]
cmp eax, dword [ebx + 0x2c]
sete cl
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.default.0x5292b9
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xd2
jmp 0x52b362
test esi, esi
jne case.0x528b26.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5292b9
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x529d59
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5292b9
cmp edx, dword [ebp + 0x5c]
ja 0x529d44
cmp dword [ebp + 0x24], esi
je case.default.0x5292b9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x522b72
jmp case.default.0x5292b9
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [ebx + 0x38], edx
je 0x529d96
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x529d96
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 + 0x5ad480]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5b1880]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5a9271]
cmp eax, dword [ebx + 0x2c]
sete cl
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.default.0x5292b9
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xd3
jmp 0x52b362
test esi, esi
jne case.0x528b26.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5292b9
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x529e36
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5292b9
cmp edx, dword [ebp + 0x5c]
ja 0x529e21
cmp dword [ebp + 0x24], esi
je case.default.0x5292b9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x522b72
jmp case.default.0x5292b9
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [ebx + 0x38], edx
je 0x529e73
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x529e73
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 + 0x5ad480]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5b1880]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5a9270]
cmp eax, dword [ebx + 0x2c]
sete cl
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.default.0x5292b9
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xd4
jmp 0x52b362
test esi, esi
jne case.0x528b26.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5292b9
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x529f13
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5292b9
cmp edx, dword [ebp + 0x5c]
ja 0x529efe
cmp dword [ebp + 0x24], esi
je case.default.0x5292b9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x522b72
jmp case.default.0x5292b9
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [ebx + 0x38], edx
je 0x529f50
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x529f50
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 + 0x5ad480]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5b1880]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5a9271]
mov eax, dword [eax*4 + 0x5a6d10]
cmp eax, 1
je 0x529f8d
cmp eax, 3
je 0x529f8d
xor ecx, ecx
jmp 0x529f92
mov ecx, 1
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.default.0x5292b9
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xd5
jmp 0x52b362
test esi, esi
jne case.0x528b26.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5292b9
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x52a002
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5292b9
cmp edx, dword [ebp + 0x5c]
ja 0x529fed
cmp dword [ebp + 0x24], esi
je case.default.0x5292b9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x522b72
jmp case.default.0x5292b9
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [ebx + 0x38], edx
je 0x52a03f
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x52a03f
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 0x52a059
je case.0x52a104.8193
lea eax, [ecx - 9]
cmp eax, 4
ja case.0x52a104.8203
jmp dword [eax*4 + 0x52c2a4]
cmp ecx, 0x2000
ja 0x52a0e8
je case.0x52a104.8193
cmp ecx, 0x1680
ja 0x52a0e0
je case.0x52a104.8193
mov eax, ecx
sub eax, 0x85
je case.0x52a104.8193
sub eax, 0x1b
je case.0x52a104.8193
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5ad480]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5b1880]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5a9271]
cmp dword [eax*4 + 0x5a6d10], 6
sete cl
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.default.0x5292b9
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xd6
jmp 0x52b362
cmp ecx, 0x180e
jmp 0x52a089
cmp ecx, 0x3000
ja case.0x52a104.8203
je case.0x52a104.8193
lea eax, [ecx - 0x2001]
cmp eax, 0x5e
ja case.0x52a104.8203
movzx eax, byte [eax + 0x52c2c0]
jmp dword [eax*4 + 0x52c2b8]
cmp dword [ebx + 0x28], 0xf
jne case.0x52ae0a.7
jmp case.default.0x5292b9
test esi, esi
jne case.0x528b26.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5292b9
mov ecx, dword [ebx + 0x38]
cmp ecx, dword [ebp + 0x54]
jb 0x52a16a
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x5292b9
cmp ecx, dword [ebp + 0x5c]
ja 0x52a155
cmp dword [ebp + 0x24], esi
je case.default.0x5292b9
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x522b72
jmp case.default.0x5292b9
movzx edx, word [ecx]
add ecx, 2
cmp dword [esp + 0x14], 0
mov dword [ebx + 0x38], ecx
je 0x52a1a7
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x52a1a7
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 + 0x5ad480]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5b1880]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5a9271]
mov eax, dword [eax*4 + 0x5a6d10]
cmp eax, 1
je 0x52a1eb
cmp eax, 3
je 0x52a1eb
cmp edx, 0x5f
je 0x52a1eb
xor ecx, ecx
jmp 0x52a1f0
mov ecx, 1
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.default.0x5292b9
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xd7
jmp 0x52b362
test esi, esi
jne case.0x528b26.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5292b9
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x52a260
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5292b9
cmp edx, dword [ebp + 0x5c]
ja 0x52a24b
cmp dword [ebp + 0x24], esi
je case.default.0x5292b9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x522b72
jmp case.default.0x5292b9
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [ebx + 0x38], edx
je 0x52a29d
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x52a29d
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 + 0x5a8ca8]
lea eax, [eax*4 + 0x5a8ca8]
cmp ecx, edx
jb 0x52a2bf
lea eax, [eax + 4]
cmp ecx, edx
je 0x52a2d4
mov edx, dword [eax]
cmp ecx, edx
jae 0x52a2b2
cmp dword [ebx + 0x28], 0xf
jne case.default.0x5292b9
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xd8
jmp 0x52b362
cmp dword [ebx + 0x28], 0xf
jne case.0x52ae0a.10
jmp case.default.0x5292b9
test esi, esi
jne case.0x528b26.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5292b9
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x52a333
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5292b9
cmp edx, dword [ebp + 0x5c]
ja 0x52a31e
cmp dword [ebp + 0x24], esi
je case.default.0x5292b9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x522b72
jmp case.default.0x5292b9
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [ebx + 0x38], edx
je 0x52a370
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x52a370
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 0x52a39b
cmp ecx, 0x40
je 0x52a39b
cmp ecx, 0x60
je 0x52a39b
cmp ecx, 0xa0
jb 0x52a38f
cmp ecx, 0xd7ff
jbe 0x52a39b
cmp ecx, 0xe000
jae 0x52a39b
xor ecx, ecx
jmp 0x52a3a0
mov ecx, 1
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.default.0x5292b9
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xd9
jmp 0x52b362
test esi, esi
jne case.0x528b26.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5292b9
mov ecx, dword [ebx + 0x38]
cmp ecx, dword [ebp + 0x54]
jb 0x52af9f
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x5292b9
cmp ecx, dword [ebp + 0x5c]
ja 0x52a3ff
cmp dword [ebp + 0x24], esi
je case.default.0x5292b9
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x522b72
jmp case.default.0x5292b9
test esi, esi
jne case.0x528b26.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5292b9
mov edx, dword [ebx + 0x38]
mov ecx, dword [ebp + 0x54]
cmp edx, ecx
jb 0x52a46a
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5292b9
cmp edx, dword [ebp + 0x5c]
ja 0x52a455
cmp dword [ebp + 0x24], esi
je case.default.0x5292b9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x522b72
jmp case.default.0x5292b9
mov edi, dword [ebx + 0x28]
cmp edi, 0xc
jne 0x52a4d3
mov esi, dword [ebp + 0x88]
lea eax, [ebp + 0x8c]
test esi, esi
je 0x52a4a2
push dword [esp + 0x14]
push eax
push ecx
push esi
push edx
call fcn.00538a30
add esp, 0x14
test eax, eax
jne case.default.0x5292b9
mov edx, dword [ebx + 0x38]
mov edi, dword [ebx + 0x28]
jmp 0x52a4d3
mov esi, dword [eax]
lea eax, [esi + esi]
sub ecx, eax
cmp edx, ecx
ja 0x52a4d3
mov ax, word [edx]
cmp ax, word [ebp + 0x90]
jne 0x52a4d3
cmp esi, 1
je case.default.0x5292b9
mov ax, word [edx + 2]
cmp ax, word [ebp + 0x92]
je case.default.0x5292b9
movzx ecx, word [edx]
add edx, 2
mov eax, ecx
mov dword [ebx + 0x38], edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x52a509
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.0x52929c.15
jmp dword [eax*4 + 0x52c320]
cmp ecx, 0x85
ja 0x52a539
je case.0x52a532.11
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x5292b9
jmp dword [ecx*4 + 0x52c360]
sub ecx, 0x2028
je case.0x52a532.11
sub ecx, 1
jne case.default.0x5292b9
cmp word [ebp + 0x3e], 2
jne case.0x52a515.13
jmp case.default.0x5292b9
cmp ecx, 0x2000
ja 0x52a5aa
je case.default.0x5292b9
cmp ecx, 0xa0
ja 0x52a58d
je case.default.0x5292b9
cmp ecx, 9
je case.default.0x5292b9
cmp ecx, 0x20
jne case.0x52a515.13
jmp case.default.0x5292b9
cmp ecx, 0x1680
je case.default.0x5292b9
cmp ecx, 0x180e
jne case.0x52a515.13
jmp case.default.0x5292b9
cmp ecx, 0x3000
ja case.0x52a515.13
je case.default.0x5292b9
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x52a515.13
movzx eax, byte [ecx + 0x52c378]
jmp dword [eax*4 + 0x52c370]
cmp ecx, 0x2000
ja 0x52a629
je case.0x52a515.13
cmp ecx, 0xa0
ja 0x52a60c
je case.0x52a515.13
cmp ecx, 9
je case.0x52a515.13
cmp ecx, 0x20
je case.0x52a515.13
jmp case.default.0x5292b9
cmp ecx, 0x1680
je case.0x52a515.13
cmp ecx, 0x180e
je case.0x52a515.13
jmp case.default.0x5292b9
cmp ecx, 0x3000
ja case.default.0x5292b9
je case.0x52a515.13
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.default.0x5292b9
movzx eax, byte [ecx + 0x52c3e0]
jmp dword [eax*4 + 0x52c3d8]
cmp ecx, 0x85
ja 0x52a679
je case.default.0x5292b9
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x52a515.13
jmp dword [ecx*4 + 0x52c440]
sub ecx, 0x2028
je case.default.0x5292b9
sub ecx, 1
jne case.0x52a515.13
jmp case.default.0x5292b9
cmp ecx, 0x85
ja 0x52a6b4
je case.0x52a515.13
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x5292b9
jmp dword [ecx*4 + 0x52c450]
sub ecx, 0x2028
je case.0x52a515.13
sub ecx, 1
je case.0x52a515.13
jmp case.default.0x5292b9
cmp ecx, 0x100
jae case.0x52a515.13
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 8
je case.0x52a515.13
jmp case.default.0x5292b9
cmp ecx, 0x100
jae case.default.0x5292b9
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 8
jne case.0x52a515.13
jmp case.default.0x5292b9
cmp ecx, 0x100
jae case.0x52a515.13
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 1
je case.0x52a515.13
jmp case.default.0x5292b9
cmp ecx, 0x100
jae case.default.0x5292b9
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 1
jne case.0x52a515.13
jmp case.default.0x5292b9
cmp ecx, 0x100
jae case.0x52a515.13
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 0x10
je case.0x52a515.13
jmp case.default.0x5292b9
cmp ecx, 0x100
jae case.default.0x5292b9
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 0x10
jne case.0x52a515.13
jmp case.default.0x5292b9
test esi, esi
jne case.0x528b26.998
mov edx, dword [ebx + 0x38]
add edx, 0xfffffffe
mov dword [ebx + 0x38], edx
cmp dword [esp + 0x14], esi
jne 0x52ac46
movzx ecx, word [edx]
jmp 0x52ac8f
test esi, esi
jne case.0x528b26.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 0x52a7cf
add ecx, 0xfffffffe
mov dword [ebx + 0x38], ecx
cmp dword [ebx + 0x28], 0x11
mov eax, ecx
jne 0x52a7f1
cmp ecx, dword [ebx + 4]
jbe 0x52a7f1
cmp word [ecx], 0xa
jne 0x52a7f1
cmp word [ecx - 2], 0xd
lea edx, [ecx - 2]
jne 0x52a7f1
mov dword [ebx + 0x38], edx
mov eax, edx
cmp eax, dword [ebx + 4]
jbe 0x521744
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xdd
jmp 0x52b362
test esi, esi
jne case.0x528b26.998
mov ecx, dword [ebx + 0x38]
add ecx, 0xfffffffe
mov edx, ecx
mov dword [ebx + 0x38], ecx
cmp dword [esp + 0x14], esi
je 0x52a839
mov ax, word [edx]
mov esi, 0xfc00
and ax, si
mov esi, 0xdc00
cmp ax, si
jne 0x52a839
lea ecx, [edx - 2]
mov dword [ebx + 0x38], ecx
cmp ecx, dword [ebx + 4]
jbe 0x521744
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xde
jmp 0x52b362
test esi, esi
jne case.0x528b26.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5292b9
mov ecx, dword [ebx + 0x38]
cmp ecx, dword [ebp + 0x54]
jb 0x52a8a1
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x5292b9
cmp ecx, dword [ebp + 0x5c]
ja 0x52a88c
cmp dword [ebp + 0x24], esi
je case.default.0x5292b9
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x522b72
jmp case.default.0x5292b9
movzx edx, word [ecx]
add ecx, 2
cmp dword [esp + 0x14], 0
mov dword [ebx + 0x38], ecx
je 0x52a8de
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x52a8de
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 + 0x5ad480]
shl eax, 7
add eax, edx
movzx eax, word [eax*2 + 0x5b1880]
lea eax, [eax + eax*2]
movzx edx, word [eax*4 + 0x5a927a]
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 + 0x5a8720]
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.0x5292b9
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xdf
jmp 0x52b362
test esi, esi
jne case.0x528b26.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5292b9
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x52a99f
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5292b9
cmp edx, dword [ebp + 0x5c]
ja 0x52a98a
cmp dword [ebp + 0x24], esi
je case.default.0x5292b9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x522b72
jmp case.default.0x5292b9
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [ebx + 0x38], edx
je 0x52a9dc
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x52a9dc
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 + 0x5ad480]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5b1880]
lea eax, [eax + eax*2]
movzx eax, word [eax*4 + 0x5a9278]
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.0x5292b9
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xe0
jmp 0x52b362
test esi, esi
jne case.0x528b26.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5292b9
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x52aa7f
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5292b9
cmp edx, dword [ebp + 0x5c]
ja 0x52aa6a
cmp dword [ebp + 0x24], esi
je case.default.0x5292b9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x522b72
jmp case.default.0x5292b9
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [ebx + 0x38], edx
je 0x52aabc
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x52aabc
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 + 0x5ad480]
shl eax, 7
add eax, ecx
mov ecx, dword [ebx + 0x2c]
movzx eax, word [eax*2 + 0x5b1880]
lea edx, [eax + eax*2]
movzx eax, byte [edx*4 + 0x5a9270]
cmp eax, ecx
je 0x52ab17
movzx edx, word [edx*4 + 0x5a9278]
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 + 0x5a8f78], eax
jne 0x52ab17
xor ecx, ecx
jmp 0x52ab1c
mov ecx, 1
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.default.0x5292b9
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xe1
jmp 0x52b362
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.0056b850
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 0x52ab61
lea eax, [ecx + 4]
mov dword [ebx], eax
jmp 0x521744
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 0x52ab80
mov edi, dword [esp + 0x68]
lea eax, [esi + 4]
mov dword [ebx], eax
jmp 0x521750
mov ecx, dword [ebx]
movzx eax, word [ecx + 2]
lea esi, [ecx + eax*2]
mov dword [ebx], esi
cmp word [esi], 0x78
je 0x52b24e
mov edi, dword [esp + 0x68]
lea eax, [esi + 4]
mov dword [ebx], eax
jmp 0x521750
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.0056b850
mov eax, dword [esi + 0x50]
add esp, 0xc
mov dword [ebx + 0x50], eax
jmp 0x528b72
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 0x52ae52
xor eax, eax
cmp dword [ebx + 0x20], eax
sete al
jmp 0x528b75
mov ebx, dword [esp + 0x10]
mov ecx, dword [ebx]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x5a6b70]
jmp 0x52ac25
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 0x521744
mov eax, 0x2008f
mov byte [ebx + 0x30], 0x23
mov dword [esp + 0x20], eax
jmp 0x52b362
movzx eax, word [edx]
mov esi, edx
mov ecx, eax
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x52ac62
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 0x52ac8f
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 + 0x5ad480]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5b1880]
lea eax, [eax + eax*2]
movzx edi, byte [eax*4 + 0x5a9272]
cmp edx, ebx
jbe 0x52ad60
mov ebp, dword [esp + 0x14]
movzx eax, word [edx - 2]
add edx, 0xfffffffe
mov ecx, eax
test ebp, ebp
je 0x52ad11
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x52ace6
movzx ecx, word [edx - 2]
sub edx, 2
movzx ecx, cx
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x52ad11
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 + 0x5ad480]
shl eax, 7
add eax, ecx
mov ecx, edi
movzx eax, word [eax*2 + 0x5b1880]
lea eax, [eax + eax*2]
movzx esi, byte [eax*4 + 0x5a9272]
mov eax, 1
shl eax, cl
test dword [esi*4 + 0x5a6cd0], eax
je 0x52ad5c
mov eax, dword [esp + 0x10]
mov edi, esi
mov dword [eax + 0x38], edx
cmp edx, ebx
ja 0x52acc6
mov ebp, dword [esp + 0x6c]
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x38]
cmp eax, dword [ecx + 4]
jbe 0x521744
mov esi, dword [ecx]
mov byte [ecx + 0x30], 0xdc
jmp 0x52b362
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 + 0x5a6b70]
movzx eax, word [edx + 2]
ja 0x52b08f
add ecx, eax
lea eax, [edx + ecx*2]
mov dword [ebx], eax
jmp 0x521748
cmp dword [esp + 0x14], 0
mov ebx, dword [esp + 0x10]
jne 0x529984
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x1d
jmp 0x52b362
cmp dword [esp + 0x14], 0
mov ebx, dword [esp + 0x10]
jne 0x529a62
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x1f
jmp 0x52b362
cmp dword [esp + 0x14], 0
jne 0x5296e6
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x17
jmp 0x52b362
test ecx, ecx
js 0x52ae11
cmp ecx, 0xd
ja case.0x52929c.15
jmp dword [ecx*4 + 0x52c460]
cmp dword [ebx + 0x28], 0x16
je 0x52b020
test esi, esi
jne case.0x52a515.13
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x21
jmp 0x52b362
cmp ecx, 0x7e
je 0x52ae41
mov eax, 0x80
cmp cx, ax
je 0x52ae41
xor eax, eax
jmp 0x52ae46
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 + 0x5a6b70]
mov byte [ebx + 0x30], 5
lea esi, [ecx + eax*2]
jmp 0x52b362
mov eax, dword [esp + 0x10]
cmp cl, 0x7b
jne 0x52ae8e
lea esi, [edx + 4]
mov byte [ebx + 0x30], 6
jmp 0x52b366
mov byte [ebx + 0x30], 7
jmp 0x52b366
mov byte [ebx + 0x30], 1
jmp 0x52b362
mov eax, dword [ebx + 8]
mov dword [ebx], eax
jmp 0x52b12d
mov eax, dword [esp + 0x4c]
add eax, eax
add dword [ebx + 0x38], eax
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x14
jmp 0x52b362
mov ebx, dword [esp + 0x10]
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x14
jmp 0x52b362
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x1e
jmp 0x52b362
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x20
jmp 0x52b362
cmp esi, dword [ebp + 0x54]
jae case.0x52929c.13
cmp word [esi], 0xa
jne case.0x52929c.13
lea eax, [esi + 2]
mov dword [ebx + 0x38], eax
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x21
jmp 0x52b362
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.0x52929c.13
cmp esi, dword [ebp + 0x54]
jb case.0x52929c.13
cmp dword [ebp + 0x88], 0
jne case.0x52929c.13
cmp dword [ebp + 0x8c], 2
jne case.0x52929c.13
movzx eax, word [ebp + 0x90]
cmp ecx, eax
jne case.0x52929c.13
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x522b72
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x21
jmp 0x52b362
mov ebx, dword [esp + 0x10]
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x64
jmp 0x52b362
mov ebx, dword [esp + 0x10]
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xc9
jmp 0x52b362
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 0x52b362
mov esi, dword [eax]
mov byte [eax + 0x30], 0xcd
jmp 0x52b362
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xcf
jmp 0x52b362
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xd0
jmp 0x52b362
movzx edx, word [ecx]
add ecx, 2
mov edi, dword [esp + 0x14]
mov esi, ecx
mov dword [ebx + 0x38], ecx
test edi, edi
je 0x52afdf
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x52afdf
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.00538830
add esp, 0x18
mov dword [ebx + 0x38], eax
cmp eax, dword [ebp + 0x54]
jb 0x52b020
movzx ecx, word [ebp + 0x3c]
mov edx, ecx
test cx, cx
je 0x52b020
cmp eax, dword [ebp + 0x5c]
ja 0x52b010
cmp dword [ebp + 0x24], 0
je 0x52b020
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x522b72
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xda
jmp 0x52b362
cmp edx, dword [ebp + 0x54]
jae case.0x52a515.13
cmp word [edx], 0xa
jne case.0x52a515.13
lea eax, [edx + 2]
mov dword [ebx + 0x38], eax
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xdb
jmp 0x52b362
movzx eax, word [ebp + 0x3c]
mov esi, eax
test ax, ax
je case.0x52a515.13
cmp edx, dword [ebp + 0x54]
jb case.0x52a515.13
cmp dword [ebp + 0x88], 0
jne case.0x52a515.13
cmp dword [ebp + 0x8c], 2
jne case.0x52a515.13
movzx eax, word [ebp + 0x90]
cmp ecx, eax
jne case.0x52a515.13
mov dword [ebp + 0x1c], 1
cmp esi, 1
ja 0x522b72
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xdb
jmp 0x52b362
mov byte [ebx + 0x30], 0x11
jmp 0x52b35d
mov eax, dword [esp + 0x10]
add esi, 2
mov dword [eax + 4], esi
mov byte [eax + 0x30], 9
jmp 0x52b362
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 0x52b0b5
add esi, 4
mov byte [ecx + 0x30], 0xa
jmp 0x52b362
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 0x52b117
mov ecx, 0x8e
cmp ax, cx
jne 0x52b105
jmp 0x52b117
mov ebx, dword [esp + 0x10]
mov dword [ebx + 0x28], 0
mov eax, 0x20000
jmp 0x52b120
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 + 0x5a6b70]
mov byte [ebx + 0x30], 8
lea esi, [ecx + eax*2]
jmp 0x52b362
movzx eax, word [esi + 4]
or eax, 0x10000
jmp 0x52b165
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 + 0x5a6b70]
mov byte [ebx + 0x30], 2
lea esi, [esi + eax*2]
jmp 0x52b362
mov ecx, dword [ebp + 0x48]
movzx eax, word [esi + 2]
lea ebx, [ecx + eax*2]
cmp ebx, ecx
jne 0x52b19b
xor edi, edi
jmp 0x52b19f
movzx edi, word [ebx + 4]
mov ebp, dword [esp + 0x10]
cmp dword [ebp + 0x44], 0xffffffff
je 0x52b1e3
mov eax, dword [ebp + 0x4c]
cmp eax, 0xffffffff
je 0x52b1e3
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 0x52b1d7
mov eax, dword [ecx + 0x4c]
cmp eax, 0xffffffff
jne 0x52b1c0
jmp 0x52b1e3
mov eax, dword [ebp + 0x38]
cmp eax, dword [ecx + 0x38]
je 0x52b4ee
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 + 0x5a6b70]
mov byte [ebx + 0x30], 0xb
lea esi, [ecx + eax*2]
jmp 0x52b362
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 + 0x5a6b70]
mov byte [ebx + 0x30], 3
lea esi, [esi + eax*2]
jmp 0x52b362
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 + 0x5a6b70]
mov byte [ebx + 0x30], 4
lea esi, [esi + eax*2]
jmp 0x52b362
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 + 0x5a6b70]
movzx eax, word [edx + 2]
mov byte [ebx + 0x30], 0xc
jmp 0x52b35d
movzx eax, word [esi]
movzx eax, byte [eax + 0x5a6b70]
lea esi, [esi + eax*2]
mov eax, dword [esp + 0x10]
mov byte [eax + 0x30], 0xd
jmp 0x52b362
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 + 0x5a6b70]
movzx eax, word [edx + 2]
mov byte [ebx + 0x30], 0x24
jmp 0x52b35d
movzx eax, word [esi]
movzx eax, byte [eax + 0x5a6b70]
lea esi, [esi + eax*2]
mov eax, dword [esp + 0x10]
mov byte [eax + 0x30], 0xe
jmp 0x52b362
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 + 0x5a6b70]
movzx eax, word [edx + 2]
mov byte [ebx + 0x30], 0xf
jmp 0x52b35d
movzx eax, word [esi]
movzx eax, byte [eax + 0x5a6b70]
lea esi, [esi + eax*2]
mov eax, dword [esp + 0x10]
mov byte [eax + 0x30], 0x10
jmp 0x52b362
movzx eax, word [esi]
movzx eax, byte [eax + 0x5a6b70]
lea esi, [esi + eax*2]
mov eax, dword [esp + 0x10]
mov byte [eax + 0x30], 0x12
jmp 0x52b362
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 + 0x5a6b70]
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 0x52b41d
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 0x52b3a2
xor edx, edx
mov eax, ecx
div ebp
mov edi, ecx
sub edi, edx
cmp ebx, edi
jae 0x52b4fb
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 0x52b508
mov eax, dword [esp + 0x68]
push dword [esp + 0x38]
push dword [eax + 0x18]
push ebx
call fcn.0056b850
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.0056b850
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 0x5216c5
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 0x52b473
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.0056b850
mov eax, dword [ebx + 0x50]
dec esi
add eax, 2
add esp, 0xc
cmp esi, eax
jb 0x52b4d7
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 0x52b4c3
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