Function at 0x5256e0
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 0x5257c5
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 0x5257bf
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 0x52f5f2
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x18]
cmp eax, dword [ebp + 0x14]
jb 0x525818
pop edi
pop esi
pop ebp
mov eax, 0xffffffcb
pop ebx
add esp, 0x44
ret
mov edi, dword [esp + 0x68]
mov ebp, eax
jmp 0x525820
mov ebp, dword [esp + 0x6c]
jmp 0x525818
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.0x52d36c.15
movzx eax, byte [eax + 0x52f75c]
jmp dword [eax*4 + 0x52f600]
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x44], 0xffffffff
jne 0x5258c2
movzx edi, word [esi + 2]
mov eax, dword [eax + 0x4c]
mov esi, dword [esp + 0x68]
cmp eax, 0xffffffff
je case.0x52d36c.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 0x525889
mov eax, dword [edx + 0x4c]
jmp 0x525860
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 0x5258be
mov dword [eax + 0x50], esi
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x5ae4a0]
lea eax, [ecx + eax*2]
jmp 0x52580e
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x38]
cmp eax, dword [ebp + 0x60]
jbe 0x5258e5
mov dword [ebp + 0x60], eax
mov eax, dword [esp + 0x10]
mov esi, 0xfffffc19
mov dword [esp + 0x24], eax
jmp 0x525b6b
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x44], 0xffffffff
je 0x52595e
mov eax, dword [eax + 0x4c]
cmp eax, 0xffffffff
je case.0x52d36c.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 0x525934
mov eax, dword [ecx + 0x4c]
jmp 0x525904
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 0x525820
mov edx, dword [eax + 0x38]
mov esi, dword [eax + 0x3c]
cmp edx, esi
jne 0x525990
mov eax, dword [esp + 0x6c]
mov eax, dword [eax + 0x78]
test al, 4
jne 0x525b5d
test al, 8
je 0x525990
mov eax, dword [esp + 0x6c]
mov ecx, dword [eax + 0x34]
mov eax, dword [eax + 0x4c]
lea eax, [eax + ecx*2]
cmp esi, eax
je 0x525b5d
mov eax, dword [esp + 0x6c]
cmp edx, dword [eax + 0x54]
jae 0x52f521
mov ebp, dword [esp + 0x6c]
mov eax, dword [eax + 0x7c]
or eax, dword [ebp + 0x78]
test eax, 0x20000000
je 0x52f51f
test bl, bl
je case.default.0x52d389
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 0x525a07
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x38]
mov eax, dword [esp + 0x6c]
mov edx, dword [eax + 0x54]
cmp ecx, edx
jae 0x525a4c
push dword [esp + 0x14]
add eax, 0x8c
push eax
push edx
push esi
push ecx
call fcn.0053cb00
add esp, 0x14
test eax, eax
jne 0x525b5d
mov eax, dword [esp + 0x6c]
jmp 0x525a4c
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 0x525a4a
mov ax, word [edx]
cmp ax, word [ebp + 0x90]
jne 0x525a4a
cmp esi, 1
je case.default.0x52d389
mov ax, word [edx + 2]
cmp ax, word [ebp + 0x92]
je case.default.0x52d389
mov eax, ebp
movzx eax, word [eax + 0x3c]
mov ebp, dword [esp + 0x6c]
mov edx, eax
test ax, ax
je case.0x525844.13
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x38]
mov eax, dword [ebp + 0x54]
sub eax, 2
cmp ecx, eax
jne case.0x525844.13
mov eax, ebp
cmp dword [eax + 0x88], 0
jne 0x525a9e
cmp dword [eax + 0x8c], 2
jne 0x525a9e
mov ax, word [ecx]
cmp ax, word [ebp + 0x90]
jne case.0x525844.13
mov eax, ebp
mov dword [eax + 0x1c], 1
cmp edx, 1
ja 0x526c42
mov ebp, eax
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x38]
cmp ecx, dword [ebp + 0x54]
jb 0x525ae1
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x52d389
mov eax, dword [esp + 0x6c]
cmp ecx, dword [eax + 0x5c]
ja 0x525aca
cmp dword [eax + 0x24], 0
je 0x525ada
mov dword [eax + 0x1c], 1
cmp edx, 1
ja 0x526c42
mov ebp, eax
jmp case.default.0x52d389
mov edx, dword [esp + 0x14]
add ecx, 2
mov dword [eax + 0x38], ecx
test edx, edx
je 0x525b17
cmp ecx, dword [ebp + 0x54]
jae 0x525b17
mov ax, word [ecx]
mov ebx, 0xfc00
and ax, bx
mov ebx, 0xdc00
cmp ax, bx
jne 0x525b13
lea eax, [ecx + 2]
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x38], eax
mov eax, dword [esp + 0x10]
add dword [eax], 2
jmp 0x525820
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x38]
mov eax, dword [esp + 0x6c]
cmp ecx, dword [eax + 0x54]
jb 0x525bb5
movzx eax, word [eax + 0x3c]
mov edx, eax
test ax, ax
je 0x525b5d
mov eax, dword [esp + 0x6c]
cmp ecx, dword [eax + 0x5c]
ja 0x525b4d
cmp dword [eax + 0x24], 0
je 0x525b5d
cmp edx, 1
mov dword [eax + 0x1c], 1
ja 0x526c42
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 0x525b76
mov dword [ebp + 0x60], eax
mov ebx, dword [esp + 0x10]
cmp dword [ebx + 0x18], 0
je 0x52f5b4
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.0x52d36c.15
movzx eax, byte [eax + 0x52f8fc]
jmp dword [eax*4 + 0x52f804]
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 0x525820
mov eax, dword [esp + 0x10]
test edx, edx
je 0x525ca3
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 0x525c10
mov dword [eax + 0xc], 2
mov edx, 2
jmp 0x525c15
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 0x525c66
cmp ecx, esi
jb case.default.0x52d389
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x52d389
mov eax, dword [esp + 0x6c]
cmp ecx, dword [eax + 0x5c]
ja 0x525c4f
cmp dword [eax + 0x24], 0
je 0x525ada
mov dword [eax + 0x1c], 1
cmp edx, 1
ja 0x526c42
mov ebp, eax
jmp case.default.0x52d389
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 0x525c9c
add dword [eax + 0xc], 0xffffffff
jne 0x525c70
jmp 0x525818
xor esi, esi
jmp 0x525b67
mov edi, dword [eax + 0x38]
mov eax, dword [ebp + 0x54]
sub eax, edi
and eax, 0xfffffffe
cmp eax, 2
jge 0x525cea
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x525cdf
mov eax, dword [esp + 0x6c]
cmp edi, dword [eax + 0x5c]
ja 0x525ccd
cmp dword [eax + 0x24], 0
je 0x525cdd
mov dword [eax + 0x1c], 1
cmp ecx, 1
ja 0x526c42
mov ebp, eax
mov eax, dword [esp + 0x10]
xor esi, esi
jmp 0x525b6b
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 0x52ec82
xor esi, esi
mov eax, ebx
jmp 0x525b6b
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x6c]
mov ebp, dword [eax + 0x38]
cmp ebp, dword [ecx + 0x54]
jb 0x525d5a
movzx eax, word [ecx + 0x3c]
mov ecx, eax
test ax, ax
je 0x525d4b
mov eax, dword [esp + 0x6c]
cmp ebp, dword [eax + 0x5c]
ja 0x525d3b
cmp dword [eax + 0x24], 0
je 0x525d4b
mov dword [eax + 0x1c], 1
cmp ecx, 1
ja 0x526c42
mov eax, dword [esp + 0x10]
xor esi, esi
mov ebp, dword [esp + 0x6c]
jmp 0x525b6b
test edx, edx
je 0x525e98
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 0x525db0
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 0x525db4
mov eax, dword [esp + 0x10]
movzx edx, word [ebp]
cmp esi, 0x80
jae 0x525e04
mov eax, dword [ecx + 0x28]
cmp edx, 0xff
ja 0x525dcf
movzx edx, byte [eax + edx]
movzx eax, byte [eax + esi]
cmp eax, edx
mov edx, dword [esp + 0x14]
je 0x525de8
mov eax, dword [esp + 0x10]
xor esi, esi
mov ebp, ecx
jmp 0x525b6b
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 0x525820
lea ecx, [ebp + 2]
mov dword [eax + 0x38], ecx
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x525e3d
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 0x525e41
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 0x525818
mov eax, esi
shr eax, 7
movzx ecx, word [eax*2 + 0x5b4db0]
mov eax, esi
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5b91b0]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x5b0ba4]
add eax, esi
cmp edx, eax
mov edx, dword [esp + 0x14]
je 0x525820
mov eax, dword [esp + 0x10]
xor esi, esi
jmp 0x525b6b
cmp dword [esp + 0x2c], 0
je 0x525f19
movzx edi, word [esi + 2]
movzx edx, word [ebp]
cmp edi, 0x80
jae 0x525ed1
mov eax, dword [ecx + 0x28]
cmp edx, 0xff
ja 0x525ebe
movzx edx, byte [eax + edx]
movzx eax, byte [eax + edi]
cmp eax, edx
je 0x525f4e
mov ebp, ecx
jmp case.default.0x52d389
cmp edx, edi
je 0x525f4e
mov eax, edi
test eax, eax
jns 0x525ede
add eax, 0x7f
sar eax, 7
movzx ecx, word [eax*2 + 0x5b4db0]
mov eax, edi
shl ecx, 7
and eax, 0x8000007f
jns 0x525efa
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x5b91b0]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x5b0ba4]
add eax, edi
cmp edx, eax
je 0x525f4e
jmp 0x525b5d
movzx eax, word [esi + 2]
mov ebx, 0xff
mov edx, eax
cmp ax, bx
ja 0x525f30
mov eax, dword [ecx + 0x28]
movzx edx, byte [eax + edx]
movzx eax, word [ebp]
mov ecx, eax
cmp ax, bx
ja 0x525f46
mov eax, dword [esp + 0x6c]
mov eax, dword [eax + 0x28]
movzx ecx, byte [eax + ecx]
cmp edx, ecx
jne 0x525b5d
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 0x525814
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x38]
mov eax, dword [esp + 0x6c]
cmp ecx, dword [eax + 0x54]
jae 0x525b33
lea eax, [esi + 2]
test edx, edx
je 0x526066
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 0x525fc1
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 0x525fff
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.0x52d389
mov edi, dword [esp + 0x68]
cmp bl, 0x20
jne 0x525818
cmp edx, 0x7f
jbe 0x526048
mov eax, edx
shr eax, 7
movzx ecx, word [eax*2 + 0x5b4db0]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5b91b0]
lea eax, [eax + eax*2]
add edx, dword [eax*4 + 0x5b0ba4]
jmp 0x52604f
mov eax, dword [ebp + 0x2c]
movzx edx, byte [eax + edx]
cmp edx, esi
mov edx, dword [esp + 0x14]
jne 0x525820
mov eax, dword [esp + 0x10]
xor esi, esi
jmp 0x525b6b
cmp dword [esp + 0x2c], 0
lea edi, [ecx + 2]
mov ebp, dword [esp + 0x6c]
je 0x5260ff
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.0x52d389
cmp byte [esp + 0x58], 0x20
mov edi, dword [esp + 0x68]
jne 0x525818
cmp edx, 0x7f
jbe 0x5260e1
mov eax, edx
test eax, eax
jns 0x5260af
add eax, 0x7f
sar eax, 7
movzx ecx, word [eax*2 + 0x5b4db0]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x5260cb
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x5b91b0]
lea eax, [eax + eax*2]
add edx, dword [eax*4 + 0x5b0ba4]
jmp 0x5260e8
mov eax, dword [ebp + 0x2c]
movzx edx, byte [eax + edx]
cmp edx, ebx
mov edx, dword [esp + 0x14]
jne 0x525820
mov eax, dword [esp + 0x10]
xor esi, esi
jmp 0x525b6b
movzx edx, word [eax]
mov eax, dword [esp + 0x10]
movzx ecx, word [ecx]
mov dword [eax + 0x38], edi
cmp edx, ecx
je case.default.0x52d389
cmp bl, 0x20
jne 0x526130
cmp edx, 0xff
ja 0x526130
mov eax, dword [ebp + 0x2c]
movzx eax, byte [eax + edx]
cmp eax, ecx
je case.default.0x52d389
lea eax, [esi + 4]
jmp 0x52580e
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 0x526273
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 0x52626f
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 0x52626f
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 0x52626f
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 0x52626f
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 0x52626f
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 0x52626f
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 + 0x5adce0]
mov dword [edx + 0x20], eax
mov eax, dword [ecx*4 + 0x5add0c]
mov dword [edx + 0x24], eax
mov eax, dword [ecx*4 + 0x5add38]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
test ebx, ebx
je 0x526678
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 0x5262cb
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 0x5262e2
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 0x52666f
mov eax, dword [esp + 0x10]
cmp byte [eax + 0x31], 0x2e
jb 0x52632e
mov eax, edi
shr eax, 7
movzx ecx, word [eax*2 + 0x5b4db0]
mov eax, edi
shl ecx, 7
and eax, 0x7f
add ecx, eax
movzx eax, word [ecx*2 + 0x5b91b0]
lea eax, [eax + eax*2]
mov ecx, dword [eax*4 + 0x5b0ba4]
add ecx, edi
cmp ecx, edi
je 0x52632e
mov eax, dword [esp + 0x10]
add eax, 0x32
push eax
push ecx
call fcn.0053ccb0
add esp, 8
jmp 0x526330
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 0x526484
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x38]
jmp 0x526364
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 0x5263db
mov eax, dword [esp + 0x10]
mov esi, edi
mov ecx, ebx
mov edx, dword [eax + 8]
sub esi, 4
jb 0x526395
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x52639e
add ecx, 4
add edx, 4
sub esi, 4
jae 0x526384
cmp esi, 0xfffffffc
je 0x526463
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x5263db
cmp esi, 0xfffffffd
je 0x526463
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x5263db
cmp esi, 0xfffffffe
je 0x526463
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x5263db
cmp esi, 0xffffffff
je 0x526463
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x526463
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x14]
test eax, eax
je 0x5265dd
lea edi, [eax + eax]
mov eax, ebp
sub eax, edi
cmp ebx, eax
ja 0x5265dd
mov edx, dword [esp + 0x10]
mov esi, edi
add edx, 0x32
mov ecx, ebx
sub esi, 4
jb 0x526421
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x526426
add ecx, 4
add edx, 4
sub esi, 4
jae 0x526410
cmp esi, 0xfffffffc
je 0x526463
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x5265dd
cmp esi, 0xfffffffd
je 0x526463
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x5265dd
cmp esi, 0xfffffffe
je 0x526463
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x5265dd
cmp esi, 0xffffffff
je 0x526463
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x5265dd
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 0x526360
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 0x525820
cmp dword [esp + 0x18], 0
je 0x52f03f
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 0x526654
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 0x526543
mov eax, dword [esp + 0x10]
mov esi, edi
mov ecx, ebx
mov edx, dword [eax + 8]
sub esi, 4
jb 0x526501
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x52650a
add ecx, 4
add edx, 4
sub esi, 4
jae 0x5264f0
cmp esi, 0xfffffffc
je 0x5265bc
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x526543
cmp esi, 0xfffffffd
je 0x5265bc
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x526543
cmp esi, 0xfffffffe
je 0x5265bc
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x526543
cmp esi, 0xffffffff
je 0x5265bc
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x5265bc
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x14]
test eax, eax
je 0x526620
lea edi, [eax + eax]
mov eax, ebp
sub eax, edi
cmp ebx, eax
ja 0x526620
mov edx, dword [esp + 0x10]
mov esi, edi
add edx, 0x32
mov ecx, ebx
sub esi, 4
jb 0x526582
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x526587
add ecx, 4
add edx, 4
sub esi, 4
jae 0x526571
cmp esi, 0xfffffffc
je 0x5265bc
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x526620
cmp esi, 0xfffffffd
je 0x5265bc
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x526620
cmp esi, 0xfffffffe
je 0x5265bc
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x526620
cmp esi, 0xffffffff
je 0x5265bc
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x526620
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 0x5264c7
mov ebp, dword [esp + 0x6c]
jmp 0x526654
cmp ebx, ebp
mov ebp, dword [esp + 0x6c]
jb case.default.0x52d389
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x52d389
mov eax, ebp
cmp ebx, dword [eax + 0x5c]
ja 0x526609
cmp dword [eax + 0x24], 0
je 0x525ada
mov dword [eax + 0x1c], 1
cmp ecx, 1
ja 0x526c42
mov ebp, eax
jmp case.default.0x52d389
cmp ebx, ebp
mov ebp, dword [esp + 0x6c]
jb 0x526650
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x526650
mov eax, ebp
cmp ebx, dword [eax + 0x5c]
ja 0x526640
cmp dword [eax + 0x24], 0
je 0x526650
mov dword [eax + 0x1c], 1
cmp ecx, 1
ja 0x526c42
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x18], 2
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x68]
je 0x525820
mov ecx, dword [eax + 0x38]
jmp 0x52d9a4
mov eax, dword [esp + 0x10]
mov dword [eax + 0x28], edx
jmp 0x526689
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 0x5267e1
test ebx, ebx
jne 0x52669d
cmp dword [esp + 0x2c], ebx
je 0x5266cf
cmp edx, 0x7f
jbe 0x5266cf
mov eax, edx
shr eax, 7
movzx ecx, word [eax*2 + 0x5b4db0]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5b91b0]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x5b0ba4]
add eax, edx
jmp 0x5266e2
cmp edx, 0xff
ja 0x5266e0
mov eax, dword [ebp + 0x2c]
movzx eax, byte [eax + edx]
jmp 0x5266e2
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 0x526731
mov ecx, dword [eax + 0x38]
nop dword [eax]
mov eax, dword [esp + 0x6c]
cmp ecx, dword [eax + 0x54]
jae 0x525b33
mov ebx, dword [esp + 0x10]
movzx eax, word [ecx]
cmp dword [ebx + 0x28], eax
je 0x526722
cmp dword [ebx + 0x2c], eax
jne 0x525b5d
mov eax, dword [esp + 0x10]
add ecx, 2
inc edx
mov dword [eax + 0x38], ecx
cmp edx, esi
jbe 0x526700
mov edx, dword [eax + 0x24]
mov ebp, dword [esp + 0x6c]
mov edi, dword [esp + 0x68]
cmp esi, edx
je 0x525818
mov ebp, dword [esp + 0x18]
test ebp, ebp
je 0x52d0bf
mov ecx, dword [eax + 0x38]
mov dword [eax + 4], ecx
cmp esi, edx
jae 0x5267b5
nop word [eax + eax]
mov eax, dword [esp + 0x6c]
cmp ecx, dword [eax + 0x54]
jae 0x52678b
mov ebx, dword [esp + 0x10]
movzx eax, word [ecx]
cmp dword [ebx + 0x28], eax
je 0x52677a
cmp dword [ebx + 0x2c], eax
jne 0x5267b9
mov eax, dword [esp + 0x10]
add ecx, 2
inc esi
mov dword [eax + 0x38], ecx
cmp esi, edx
jb 0x526760
jmp 0x5267b5
movzx eax, word [eax + 0x3c]
mov edx, eax
test ax, ax
je 0x5267b5
mov eax, dword [esp + 0x6c]
cmp ecx, dword [eax + 0x5c]
ja 0x5267a5
cmp dword [eax + 0x24], 0
je 0x5267b5
mov dword [eax + 0x1c], 1
cmp edx, 1
ja 0x526c42
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
cmp ebp, 2
mov ebp, dword [esp + 0x6c]
je 0x525820
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebx + 4]
je 0x525814
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x1a
jmp 0x52f432
mov edi, dword [eax + 0x20]
mov esi, 1
cmp edi, esi
jb 0x526818
mov edx, dword [eax + 0x38]
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x6c]
cmp edx, dword [eax + 0x54]
jae 0x526865
movzx eax, word [edx]
add edx, 2
mov dword [ebx + 0x38], edx
cmp dword [ebx + 0x28], eax
jne 0x525b5d
inc esi
cmp esi, edi
jbe 0x5267f4
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x24]
mov ebp, dword [esp + 0x6c]
cmp edi, edx
je 0x525814
mov ebp, dword [esp + 0x18]
test ebp, ebp
je 0x52d14a
mov ecx, dword [eax + 0x38]
mov dword [eax + 4], ecx
cmp edi, edx
jae 0x5268b9
mov eax, dword [esp + 0x6c]
cmp ecx, dword [eax + 0x54]
jae 0x52688f
mov ebx, dword [esp + 0x10]
movzx eax, word [ecx]
cmp dword [ebx + 0x28], eax
jne 0x5268bd
mov eax, ebx
add ecx, 2
inc edi
mov dword [eax + 0x38], ecx
cmp edi, edx
jb 0x526841
jmp 0x5268b9
movzx eax, word [eax + 0x3c]
mov ecx, eax
test ax, ax
je 0x525b5d
mov eax, dword [esp + 0x6c]
cmp edx, dword [eax + 0x5c]
ja 0x526887
cmp dword [eax + 0x24], 0
je 0x525b5d
cmp ecx, 1
jmp 0x525b50
movzx eax, word [eax + 0x3c]
mov edx, eax
test ax, ax
je 0x5268b9
mov eax, dword [esp + 0x6c]
cmp ecx, dword [eax + 0x5c]
ja 0x5268a9
cmp dword [eax + 0x24], 0
je 0x5268b9
mov dword [eax + 0x1c], 1
cmp edx, 1
ja 0x526c42
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
cmp ebp, 2
mov ebp, dword [esp + 0x6c]
mov edi, dword [esp + 0x68]
je 0x525820
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebx + 4]
jbe 0x525814
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x1c
jmp 0x52f432
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 0x526a39
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 0x526a35
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 0x526a35
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 0x526a35
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 0x526a35
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 0x526a35
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 0x526a35
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 + 0x5adce0]
mov dword [edx + 0x20], eax
mov eax, dword [ecx*4 + 0x5add0c]
mov dword [edx + 0x24], eax
mov eax, dword [ecx*4 + 0x5add38]
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 0x526a87
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
mov eax, dword [esp + 0x10]
jne 0x526a87
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 0x526d84
mov edx, dword [esp + 0x14]
test edx, edx
jne 0x526a9f
cmp dword [esp + 0x2c], edx
je 0x526ad1
cmp esi, 0x7f
jbe 0x526ad1
mov eax, esi
shr eax, 7
movzx ecx, word [eax*2 + 0x5b4db0]
mov eax, esi
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5b91b0]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x5b0ba4]
add eax, esi
jmp 0x526ae4
cmp esi, 0xff
ja 0x526ae2
mov eax, dword [ebp + 0x2c]
movzx eax, byte [eax + esi]
jmp 0x526ae4
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 0x526c4f
mov esi, 1
cmp ebx, esi
jb 0x526b77
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
jmp 0x526b14
mov eax, dword [esp + 0x10]
cmp edx, dword [ebp + 0x54]
jae 0x526c14
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x526b59
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 0x526b5d
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x28], ecx
je case.default.0x52d389
cmp dword [eax + 0x2c], ecx
je case.default.0x52d389
mov eax, dword [eax + 0x20]
inc esi
cmp esi, eax
jbe 0x526b10
mov ecx, dword [esp + 0x10]
mov edi, dword [ecx + 0x24]
cmp eax, edi
je 0x525814
cmp dword [esp + 0x18], 0
je 0x52ee83
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 0x526d0c
cmp ebx, eax
jae 0x526d06
mov esi, 1
cmp ecx, dword [ebp + 0x54]
jae 0x526cc5
movzx edx, word [ecx]
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x526bee
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 0x526ceb
cmp dword [eax + 0x2c], edx
je 0x526ceb
inc ebx
lea ecx, [ecx + esi*2]
mov dword [eax + 0x38], ecx
cmp ebx, edi
jb 0x526bb0
jmp 0x526ceb
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x52d389
cmp edx, dword [ebp + 0x5c]
ja 0x526c32
cmp dword [ebp + 0x24], 0
je case.default.0x52d389
mov dword [ebp + 0x1c], 1
cmp ecx, 1
jbe case.default.0x52d389
pop edi
pop esi
pop ebp
mov eax, 0xfffffffe
pop ebx
add esp, 0x44
ret
mov edx, 1
cmp ebx, edx
jb 0x526b77
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x38]
cmp ecx, dword [ebp + 0x54]
jae 0x526c96
mov esi, dword [esp + 0x10]
movzx eax, word [ecx]
cmp dword [esi + 0x28], eax
je case.default.0x52d389
cmp dword [esi + 0x2c], eax
je case.default.0x52d389
mov eax, esi
add ecx, 2
inc edx
mov dword [eax + 0x38], ecx
mov eax, dword [eax + 0x20]
cmp edx, eax
jbe 0x526c63
jmp 0x526b77
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x52d389
cmp ecx, dword [ebp + 0x5c]
ja 0x526cb4
cmp dword [ebp + 0x24], 0
je case.default.0x52d389
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x526c42
jmp case.default.0x52d389
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je 0x526ce7
cmp ecx, dword [ebp + 0x5c]
ja 0x526cdb
cmp dword [ebp + 0x24], 0
je 0x526ce7
mov dword [ebp + 0x1c], esi
cmp edx, 1
ja 0x526c42
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x18], 2
mov edi, dword [esp + 0x68]
je 0x525820
mov ecx, dword [eax + 0x38]
jmp 0x52da8d
mov eax, dword [esp + 0x10]
jmp 0x526cef
cmp ebx, eax
jae 0x526d7e
cmp ecx, dword [ebp + 0x54]
jae 0x526d35
mov edx, dword [esp + 0x10]
movzx eax, word [ecx]
cmp dword [edx + 0x28], eax
je 0x526d5b
cmp dword [edx + 0x2c], eax
mov eax, edx
je 0x526d5f
add ecx, 2
inc ebx
mov dword [eax + 0x38], ecx
cmp ebx, edi
jb 0x526d10
jmp 0x526d5f
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je 0x526d5b
cmp ecx, dword [ebp + 0x5c]
ja 0x526d4b
cmp dword [ebp + 0x24], 0
je 0x526d5b
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x526c42
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x18], 2
mov edi, dword [esp + 0x68]
je 0x525820
mov eax, dword [eax + 0x38]
mov ebx, dword [esp + 0x10]
jmp 0x52d1f3
mov eax, dword [esp + 0x10]
jmp 0x526d63
cmp dword [esp + 0x14], 0
mov esi, 1
mov ebx, dword [eax + 0x20]
mov eax, ebx
je 0x526ede
cmp ebx, esi
jb 0x526e0e
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
jmp 0x526db4
mov eax, dword [esp + 0x10]
cmp edx, dword [ebp + 0x54]
jae 0x526eab
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x526df9
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 0x526dfd
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x28], ecx
je case.default.0x52d389
mov eax, dword [eax + 0x20]
inc esi
cmp esi, eax
jbe 0x526db0
mov ecx, dword [esp + 0x10]
mov edi, dword [ecx + 0x24]
cmp eax, edi
je 0x525814
mov esi, dword [esp + 0x18]
test esi, esi
je 0x52ee9d
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 0x526f8b
cmp ebx, eax
jae 0x526f73
nop dword [eax + eax]
mov esi, 1
cmp ecx, dword [ebp + 0x54]
jae 0x526f4d
movzx edx, word [ecx]
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x526e8e
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 0x526f6f
inc ebx
lea ecx, [ecx + esi*2]
mov dword [eax + 0x38], ecx
cmp ebx, edi
jb 0x526e50
jmp 0x526f6f
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x52d389
cmp edx, dword [ebp + 0x5c]
ja 0x526ec9
cmp dword [ebp + 0x24], 0
je case.default.0x52d389
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x526c42
jmp case.default.0x52d389
cmp ebx, 1
jb 0x526e0e
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
nop
cmp edx, dword [ebp + 0x54]
jae 0x526f1a
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 0x525c9c
mov eax, dword [eax + 0x20]
inc esi
cmp esi, eax
jbe 0x526ef0
jmp 0x526e0e
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x52d389
cmp edx, dword [ebp + 0x5c]
ja 0x526f38
cmp dword [ebp + 0x24], 0
je case.default.0x52d389
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x526c42
jmp case.default.0x52d389
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je 0x526f6f
cmp ecx, dword [ebp + 0x5c]
ja 0x526f63
cmp dword [ebp + 0x24], 0
je 0x526f6f
mov dword [ebp + 0x1c], esi
cmp edx, 1
ja 0x526c42
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x18], 2
mov edi, dword [esp + 0x68]
je 0x525820
mov ebx, dword [esp + 0x10]
jmp 0x52db67
cmp ebx, eax
jae 0x526ff7
nop
cmp ecx, dword [ebp + 0x54]
jae 0x526fb0
mov edx, dword [esp + 0x10]
movzx eax, word [ecx]
cmp dword [edx + 0x28], eax
mov eax, edx
je 0x526fda
add ecx, 2
inc ebx
mov dword [eax + 0x38], ecx
cmp ebx, edi
jb 0x526f90
jmp 0x526fda
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je 0x526fd6
cmp ecx, dword [ebp + 0x5c]
ja 0x526fc6
cmp dword [ebp + 0x24], 0
je 0x526fd6
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x526c42
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x68]
cmp esi, 2
je 0x525820
mov eax, dword [eax + 0x38]
mov ebx, dword [esp + 0x10]
jmp 0x52d286
mov eax, dword [esp + 0x10]
jmp 0x526fde
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.0x527024
movzx eax, byte [eax + 0x52f9e8]
jmp dword [eax*4 + 0x52f9e0]
mov edx, dword [esp + 0x10]
lea eax, [esi + 2]
mov edi, dword [esp + 0x10]
mov ebx, dword [ecx*4 + 0x5adbb0]
mov dword [esp + 0x18], ebx
mov dword [edx], eax
mov eax, dword [esp + 0x10]
mov edx, dword [ecx*4 + 0x5adb58]
mov dword [eax + 0x20], edx
mov eax, dword [ecx*4 + 0x5adb84]
mov dword [edi + 0x24], eax
jmp 0x5270a9
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 + 0x5adbb0]
mov dword [esp + 0x18], eax
lea eax, [esi + 6]
mov dword [ecx], eax
jmp 0x5270a9
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 0x527194
cmp edx, ebx
jb 0x527226
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x38]
nop
cmp edi, dword [ebp + 0x54]
jae 0x527161
movzx esi, word [edi]
add edi, 2
mov dword [eax + 0x38], edi
mov eax, esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x527115
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 0x527119
mov eax, dword [esp + 0x10]
cmp esi, 0xff
jbe 0x52712d
cmp byte [eax + 0x31], 0x6e
je case.default.0x52d389
jmp 0x52714c
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 0x525c9c
mov eax, dword [eax + 0x20]
inc ebx
cmp ebx, eax
ja 0x527226
mov eax, dword [esp + 0x10]
jmp 0x5270d0
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x52d389
cmp edi, dword [ebp + 0x5c]
ja 0x52717f
cmp dword [ebp + 0x24], 0
je case.default.0x52d389
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x526c42
jmp case.default.0x52d389
cmp edx, 1
jb 0x527226
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x38]
cmp edi, dword [ebp + 0x54]
jae 0x5271f3
movzx esi, word [edi]
add edi, 2
mov dword [eax + 0x38], edi
cmp esi, 0xff
jbe 0x5271c6
cmp byte [eax + 0x31], 0x6e
je case.default.0x52d389
jmp 0x5271e5
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 0x525c9c
mov eax, dword [eax + 0x20]
inc ebx
cmp ebx, eax
ja 0x527226
mov eax, dword [esp + 0x10]
jmp 0x5271a4
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x52d389
cmp edi, dword [ebp + 0x5c]
ja 0x527211
cmp dword [ebp + 0x24], 0
je case.default.0x52d389
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x526c42
jmp case.default.0x52d389
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x68]
mov ebp, dword [ebx + 0x24]
cmp eax, ebp
je 0x525808
cmp dword [esp + 0x18], 0
je 0x52eeb7
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 0x527340
cmp dword [esp + 0x58], eax
jae 0x52733a
nop word [eax + eax]
mov eax, dword [esp + 0x6c]
mov ebx, 1
cmp edi, dword [eax + 0x54]
jae 0x527314
movzx esi, word [edi]
mov eax, esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5272b2
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 0x5272e0
cmp byte [eax + 0x31], 0x6e
jne 0x5272fb
mov ebp, dword [esp + 0x6c]
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x18], 2
jne 0x52f026
mov edi, dword [esp + 0x68]
jmp 0x525820
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 0x5272c4
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 0x527270
jmp 0x5272c4
mov ebp, eax
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x5272c8
cmp edi, dword [ebp + 0x5c]
ja 0x52732c
cmp dword [ebp + 0x24], 0
je 0x5272c8
mov dword [ebp + 0x1c], ebx
cmp ecx, 1
ja 0x526c42
jmp 0x5272c8
mov ebp, dword [esp + 0x6c]
jmp 0x5272cc
mov ebx, dword [esp + 0x58]
cmp ebx, eax
jae 0x5273de
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x6c]
cmp edi, dword [ecx + 0x54]
jae 0x5273b2
movzx esi, word [edi]
cmp esi, 0xff
jbe 0x527386
cmp byte [eax + 0x31], 0x6e
jne 0x5273a5
mov ebp, dword [esp + 0x6c]
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x18], 2
jne 0x52d035
mov edi, dword [esp + 0x68]
jmp 0x525820
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 0x52736a
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x6c]
add edi, 2
inc ebx
mov dword [eax + 0x38], edi
cmp ebx, ebp
jb 0x527354
jmp 0x52736a
mov ebp, dword [esp + 0x6c]
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x52736e
cmp edi, dword [ebp + 0x5c]
ja 0x5273cc
cmp dword [ebp + 0x24], 0
je 0x52736e
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x526c42
jmp 0x52736e
mov ebp, dword [esp + 0x6c]
jmp 0x527372
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.0x52740f
movzx eax, byte [eax + 0x52f9fc]
jmp dword [eax*4 + 0x52f9f4]
mov ecx, dword [esp + 0x10]
lea eax, [edx + 2]
mov esi, dword [edi*4 + 0x5adb84]
mov dword [ecx], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [edi*4 + 0x5adb58]
lea ebx, [eax + 0x24]
mov dword [eax + 0x20], ecx
mov eax, dword [edi*4 + 0x5adbb0]
mov dword [ebx], esi
mov dword [esp + 0x18], eax
jmp 0x52747e
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 0x527467
mov dword [ebx], 0xffffffff
or esi, 0xffffffff
movzx eax, word [edx]
mov eax, dword [eax*4 + 0x5adbb0]
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 0x52752c
mov esi, 1
jmp 0x5274b5
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 0x5274b5
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jae 0x52760f
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], edx
je 0x527506
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x527502
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.0053d1f0
add esp, 0xc
test eax, eax
mov eax, dword [esp + 0x10]
je 0x525c9c
mov ecx, dword [eax + 0x20]
inc esi
cmp esi, ecx
jbe 0x5274b1
mov esi, dword [edi]
mov edi, dword [esp + 0x68]
cmp ecx, esi
je 0x525818
cmp dword [esp + 0x18], 0
je 0x52f017
mov edx, dword [eax + 0x38]
mov dword [eax + 4], edx
mov edi, dword [eax + 0x20]
cmp edi, esi
jae 0x5275f5
jmp 0x527564
mov eax, dword [esp + 0x10]
mov esi, 1
cmp edx, dword [ebp + 0x54]
jae 0x5275d3
cmp dword [esp + 0x14], 0
movzx ecx, word [edx]
je 0x5275a9
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5275a5
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.0053d1f0
add esp, 0xc
test eax, eax
je 0x5275f5
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 0x527560
jmp 0x5275f5
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x5275f5
cmp edx, dword [ebp + 0x5c]
ja 0x5275e9
cmp dword [ebp + 0x24], 0
je 0x5275f5
mov dword [ebp + 0x1c], esi
cmp ecx, 1
ja 0x526c42
cmp dword [esp + 0x18], 2
je 0x525814
mov ebx, dword [esp + 0x10]
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x65
jmp 0x52f432
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x52d389
cmp edx, dword [ebp + 0x5c]
ja 0x52762d
cmp dword [ebp + 0x24], 0
je case.default.0x52d389
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x526c42
jmp case.default.0x52d389
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x527681
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x52d389
cmp edx, dword [ebp + 0x5c]
ja 0x52766c
cmp dword [ebp + 0x24], 0
je case.default.0x52d389
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x526c42
jmp case.default.0x52d389
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], edx
je 0x5276c4
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5276c4
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 0x5276c8
mov edx, dword [esp + 0x10]
cmp ecx, 0xff
ja case.0x527c37.8203
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 8
je case.0x527c37.8203
jmp case.default.0x52d389
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x527725
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x52d389
cmp edx, dword [ebp + 0x5c]
ja 0x527710
cmp dword [ebp + 0x24], 0
je case.default.0x52d389
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x526c42
jmp case.default.0x52d389
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], edx
je 0x527768
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x527768
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 0x52776c
mov edx, dword [esp + 0x10]
cmp ecx, 0xff
ja case.default.0x52d389
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 8
je case.default.0x52d389
lea eax, [esi + 2]
mov dword [edx], eax
jmp 0x525818
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x5277ce
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x52d389
cmp edx, dword [ebp + 0x5c]
ja 0x5277b9
cmp dword [ebp + 0x24], 0
je case.default.0x52d389
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x526c42
jmp case.default.0x52d389
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], edx
je 0x527811
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x527811
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 0x527815
mov edx, dword [esp + 0x10]
cmp ecx, 0xff
ja case.0x527c37.8203
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 1
je case.0x527c37.8203
jmp case.default.0x52d389
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x527872
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x52d389
cmp edx, dword [ebp + 0x5c]
ja 0x52785d
cmp dword [ebp + 0x24], 0
je case.default.0x52d389
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x526c42
jmp case.default.0x52d389
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], edx
je 0x5278b5
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5278b5
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 0x5278b9
mov edx, dword [esp + 0x10]
cmp ecx, 0xff
ja case.default.0x52d389
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 1
je case.default.0x52d389
lea eax, [esi + 2]
mov dword [edx], eax
jmp 0x525818
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x52791b
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x52d389
cmp edx, dword [ebp + 0x5c]
ja 0x527906
cmp dword [ebp + 0x24], 0
je case.default.0x52d389
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x526c42
jmp case.default.0x52d389
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], edx
je 0x52795e
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x52795e
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 0x527962
mov edx, dword [esp + 0x10]
cmp ecx, 0xff
ja case.0x527c37.8203
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 0x10
je case.0x527c37.8203
jmp case.default.0x52d389
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x5279bf
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x52d389
cmp edx, dword [ebp + 0x5c]
ja 0x5279aa
cmp dword [ebp + 0x24], 0
je case.default.0x52d389
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x526c42
jmp case.default.0x52d389
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], edx
je 0x527a02
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x527a02
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 0x527a06
mov edx, dword [esp + 0x10]
cmp ecx, 0xff
ja case.default.0x52d389
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 0x10
je case.default.0x52d389
lea eax, [esi + 2]
mov dword [edx], eax
jmp 0x525818
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x527a68
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x52d389
cmp edx, dword [ebp + 0x5c]
ja 0x527a53
cmp dword [ebp + 0x24], 0
je case.default.0x52d389
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x526c42
jmp case.default.0x52d389
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov esi, edx
mov dword [eax + 0x38], edx
je 0x527aab
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x527aab
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 0x527b1d
je case.0x527ac5.11
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x52d389
jmp dword [ecx*4 + 0x52fa08]
cmp esi, dword [ebp + 0x54]
jb 0x527b03
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.0x527ac5.10
cmp esi, dword [ebp + 0x5c]
ja 0x527ae7
cmp dword [ebp + 0x24], 0
je case.0x527ac5.10
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x526c42
mov eax, dword [esp + 0x10]
add dword [eax], 2
jmp 0x525818
cmp word [esi], 0xa
jne case.0x527ac5.10
mov ecx, dword [esp + 0x10]
lea eax, [esi + 2]
mov dword [ecx + 0x38], eax
mov eax, ecx
add dword [eax], 2
jmp 0x525818
sub ecx, 0x2028
je case.0x527ac5.11
sub ecx, 1
jne case.default.0x52d389
cmp word [ebp + 0x3e], 2
je case.default.0x52d389
mov eax, dword [esp + 0x10]
add dword [eax], 2
jmp 0x525818
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x527b84
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x52d389
cmp edx, dword [ebp + 0x5c]
ja 0x527b6f
cmp dword [ebp + 0x24], 0
je case.default.0x52d389
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x526c42
jmp case.default.0x52d389
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], edx
je 0x527bc7
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x527bc7
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 0x527bcb
mov edx, dword [esp + 0x10]
cmp ecx, 0x2000
ja 0x527c0f
je case.default.0x52d389
cmp ecx, 0xa0
ja 0x527bf8
je case.default.0x52d389
cmp ecx, 9
je case.default.0x52d389
cmp ecx, 0x20
jmp 0x52777f
cmp ecx, 0x1680
je case.default.0x52d389
cmp ecx, 0x180e
jmp 0x52777f
cmp ecx, 0x3000
ja case.0x527c37.8203
je case.default.0x52d389
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x527c37.8203
movzx eax, byte [ecx + 0x52fa20]
jmp dword [eax*4 + 0x52fa18]
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x527c7d
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x52d389
cmp edx, dword [ebp + 0x5c]
ja 0x527c68
cmp dword [ebp + 0x24], 0
je case.default.0x52d389
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x526c42
jmp case.default.0x52d389
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], edx
je 0x527cc0
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x527cc0
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 0x527cc4
mov edx, dword [esp + 0x10]
cmp ecx, 0x2000
ja 0x527d14
je case.0x527c37.8203
cmp ecx, 0xa0
ja 0x527cf7
je case.0x527c37.8203
cmp ecx, 9
je case.0x527c37.8203
cmp ecx, 0x20
je case.0x527c37.8203
jmp case.default.0x52d389
cmp ecx, 0x1680
je case.0x527c37.8203
cmp ecx, 0x180e
je case.0x527c37.8203
jmp case.default.0x52d389
cmp ecx, 0x3000
ja case.default.0x52d389
je case.0x527c37.8203
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.default.0x52d389
movzx eax, byte [ecx + 0x52fa88]
jmp dword [eax*4 + 0x52fa80]
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x527d82
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x52d389
cmp edx, dword [ebp + 0x5c]
ja 0x527d6d
cmp dword [ebp + 0x24], 0
je case.default.0x52d389
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x526c42
jmp case.default.0x52d389
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], edx
je 0x527dc5
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x527dc5
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 0x527dc9
mov edx, dword [esp + 0x10]
cmp ecx, 0x85
ja 0x527dea
je case.default.0x52d389
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x527c37.8203
jmp dword [ecx*4 + 0x52fae8]
sub ecx, 0x2028
je case.default.0x52d389
sub ecx, 1
jne case.0x527c37.8203
jmp case.default.0x52d389
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x527e43
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x52d389
cmp edx, dword [ebp + 0x5c]
ja 0x527e2e
cmp dword [ebp + 0x24], 0
je case.default.0x52d389
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x526c42
jmp case.default.0x52d389
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], edx
je 0x527e86
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x527e86
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 0x527e8a
mov edx, dword [esp + 0x10]
cmp ecx, 0x85
ja 0x527eab
je case.0x527c37.8203
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x52d389
jmp dword [ecx*4 + 0x52faf8]
sub ecx, 0x2028
je case.0x527c37.8203
sub ecx, 1
je case.0x527c37.8203
jmp case.default.0x52d389
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x38]
cmp ecx, dword [ebp + 0x54]
jb 0x527f04
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x52d389
cmp ecx, dword [ebp + 0x5c]
ja 0x527eef
cmp dword [ebp + 0x24], 0
je case.default.0x52d389
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x526c42
jmp case.default.0x52d389
movzx edx, word [ecx]
add ecx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], ecx
je 0x527f45
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x527f45
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 + 0x5b4db0]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5b91b0]
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.0x52d36c.15
jmp dword [eax*4 + 0x52fb08]
cmp cl, 0xf
je case.default.0x52d389
mov eax, dword [esp + 0x10]
add dword [eax], 6
jmp 0x525814
mov al, byte [edi*4 + 0x5b0ba1]
cmp al, 9
je 0x527fb3
cmp al, 5
je 0x527fb3
cmp al, 8
je 0x527fb3
xor eax, eax
jmp 0x527fb8
mov eax, 1
cmp eax, ebx
jne 0x527f90
jmp case.default.0x52d389
movzx ecx, byte [edi*4 + 0x5b0ba1]
xor edx, edx
movzx eax, word [esi + 4]
cmp eax, dword [ecx*4 + 0x5ae640]
sete dl
cmp edx, ebx
jne 0x527f90
jmp case.default.0x52d389
movzx eax, byte [edi*4 + 0x5b0ba1]
xor ecx, ecx
cmp word [esi + 4], ax
sete cl
cmp ecx, ebx
jne 0x527f90
jmp case.default.0x52d389
movzx eax, byte [edi*4 + 0x5b0ba0]
jmp 0x527fea
movzx ecx, word [esi + 4]
movzx eax, byte [edi*4 + 0x5b0ba0]
cmp cx, ax
je 0x527fb3
movzx edx, word [edi*4 + 0x5b0ba8]
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 + 0x5b08a8], eax
jne 0x527fb3
xor eax, eax
jmp 0x527fb8
movzx eax, byte [edi*4 + 0x5b0ba1]
mov eax, dword [eax*4 + 0x5ae640]
cmp eax, 1
je 0x527fb3
cmp eax, 3
je 0x527fb3
xor eax, eax
jmp 0x527fb8
cmp edx, 0x20
ja 0x52808c
je case.0x527f80.0
add edx, 0xfffffff7
cmp edx, 4
ja case.0x5280fc.8203
jmp dword [edx*4 + 0x52fb40]
cmp edx, 0x2000
ja 0x5280dc
je case.0x527f80.0
cmp edx, 0x1680
ja 0x5280d4
je case.0x527f80.0
sub edx, 0x85
je case.0x527f80.0
sub edx, 0x1b
je case.0x527f80.0
movzx eax, byte [edi*4 + 0x5b0ba1]
xor ecx, ecx
cmp dword [eax*4 + 0x5ae640], 6
jmp 0x527ff0
cmp edx, 0x180e
jmp 0x5280b7
cmp edx, 0x3000
ja case.0x5280fc.8203
je case.0x527f80.0
add edx, 0xffffdfff
cmp edx, 0x5e
ja case.0x5280fc.8203
movzx eax, byte [edx + 0x52fb5c]
jmp dword [eax*4 + 0x52fb54]
movzx eax, byte [edi*4 + 0x5b0ba1]
mov eax, dword [eax*4 + 0x5ae640]
cmp eax, 1
je 0x527fb3
cmp eax, 3
je 0x527fb3
cmp edx, 0x5f
je 0x527fb3
xor eax, eax
jmp 0x527fb8
movzx eax, word [esi + 4]
mov ecx, dword [eax*4 + 0x5b05d8]
lea eax, [eax*4 + 0x5b05d8]
cmp edx, ecx
jb 0x52815d
nop word [eax + eax]
lea eax, [eax + 4]
cmp edx, ecx
je 0x52816d
mov ecx, dword [eax]
cmp edx, ecx
jae 0x528150
cmp byte [esp + 0x58], 0xf
je 0x527f90
jmp case.default.0x52d389
cmp byte [esp + 0x58], 0xf
jne 0x527f90
jmp case.default.0x52d389
cmp edx, 0x24
je 0x527fb3
cmp edx, 0x40
je 0x527fb3
cmp edx, 0x60
je 0x527fb3
cmp edx, 0xa0
jb 0x5281ac
cmp edx, 0xd7ff
jbe 0x527fb3
cmp edx, 0xe000
jae 0x527fb3
xor eax, eax
jmp 0x527fb8
mov ax, word [edi*4 + 0x5b0ba8]
xor ecx, ecx
shr ax, 0xb
cmp ax, word [esi + 4]
jmp 0x527ff0
movzx ecx, word [esi + 4]
movzx edx, word [edi*4 + 0x5b0baa]
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 + 0x5b0050]
and ecx, eax
neg ecx
sbb ecx, ecx
neg ecx
jmp 0x527ff3
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x52824c
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x52d389
cmp edx, dword [ebp + 0x5c]
ja 0x528237
cmp dword [ebp + 0x24], 0
je case.default.0x52d389
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x526c42
jmp case.default.0x52d389
movzx ecx, word [edx]
add edx, 2
mov ebx, dword [esp + 0x14]
mov esi, edx
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x528290
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x528290
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.0053c900
mov ecx, dword [esp + 0x28]
add esp, 0x18
mov dword [ecx + 0x38], eax
cmp eax, dword [ebp + 0x54]
jb 0x5282d5
movzx ecx, word [ebp + 0x3c]
mov edx, ecx
test cx, cx
je 0x5282d5
cmp eax, dword [ebp + 0x5c]
ja 0x5282c5
cmp dword [ebp + 0x24], 0
je 0x5282d5
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x526c42
mov eax, dword [esp + 0x10]
mov edx, ebx
add dword [eax], 2
jmp 0x525820
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 0x5283fe
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 0x5283fe
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 0x5283fe
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 0x5283fe
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 0x5283fe
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 0x5283fe
movzx ecx, word [esi]
add esi, 2
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x10]
mov ebp, dword [ecx*4 + 0x5adb8c]
mov dword [eax], esi
mov dword [eax + 0x20], ebp
mov eax, dword [ecx*4 + 0x5adbb8]
mov dword [edx + 0x24], eax
mov eax, dword [ecx*4 + 0x5adbe4]
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 0x528420
cmp edx, 0xf
je 0x528420
or edx, 0xffffffff
jmp 0x52843c
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 0x5285a1
mov edi, dword [eax + 0x28]
test edx, edx
js 0x5290cb
xor ebx, ebx
cmp edi, 0xf
sete bl
cmp edx, 0xd
ja case.0x52d36c.15
jmp dword [edx*4 + 0x52fbbc]
cmp edi, 0xf
je 0x525b5d
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 0x5284bc
movzx edx, word [ecx]
lea eax, [ecx + 2]
mov dword [ebx + 0x38], eax
mov ecx, eax
test edi, edi
je 0x5284b0
and edx, 0xfc00
cmp edx, 0xd800
jne 0x5284b0
lea ecx, [eax + 2]
mov dword [ebx + 0x38], ecx
inc esi
cmp esi, ebp
jbe 0x528484
mov esi, edi
jmp 0x5285a9
mov ebp, eax
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je 0x5284e4
cmp ecx, dword [ebp + 0x5c]
ja 0x5284d4
cmp dword [ebp + 0x24], 0
je 0x5284e4
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x526c42
mov eax, dword [esp + 0x10]
xor esi, esi
mov edx, edi
jmp 0x525b6b
mov esi, dword [eax + 0x38]
mov edi, 1
jmp 0x528504
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x6c]
cmp esi, dword [ecx + 0x54]
jae 0x5285f7
cmp dword [esp + 0x14], 0
lea edx, [esi + 2]
movzx ecx, word [esi]
mov esi, edx
mov dword [eax + 0x38], edx
je 0x528554
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x528554
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 + 0x5b4db0]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5b91b0]
lea eax, [eax + eax*2]
mov al, byte [eax*4 + 0x5b0ba1]
cmp al, 9
je 0x52858b
cmp al, 5
je 0x52858b
cmp al, 8
je 0x52858b
xor eax, eax
jmp 0x528590
mov eax, 1
cmp eax, ebx
je 0x525b5d
inc edi
cmp edi, ebp
jbe 0x528500
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 0x525f5d
cmp dword [esp + 0x18], 0
mov ecx, dword [esp + 0x5c]
je 0x52eecd
mov esi, dword [ebx + 0x38]
mov dword [ebx + 4], esi
mov ebx, dword [ebx + 0x28]
test ecx, ecx
js 0x52ad5a
xor eax, eax
cmp ebx, 0xf
sete al
mov dword [esp + 0x5c], eax
cmp ecx, 0xd
ja case.0x52d36c.15
jmp dword [ecx*4 + 0x52fbf4]
mov ebp, ecx
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x52d389
cmp esi, dword [ebp + 0x5c]
ja 0x528617
cmp dword [ebp + 0x24], 0
je case.default.0x52d389
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x526c42
jmp case.default.0x52d389
mov esi, dword [eax + 0x38]
mov edi, 1
jmp 0x528644
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x6c]
cmp esi, dword [ecx + 0x54]
jae 0x5286e5
cmp dword [esp + 0x14], 0
lea edx, [esi + 2]
movzx ecx, word [esi]
mov esi, edx
mov dword [eax + 0x38], edx
je 0x528694
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x528694
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 + 0x5b4db0]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5b91b0]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5b0ba1]
mov eax, dword [eax*4 + 0x5ae640]
cmp eax, dword [edx + 0x2c]
sete cl
cmp ecx, ebx
je 0x525b5d
inc edi
cmp edi, ebp
jbe 0x528640
jmp 0x5285a1
mov ebp, ecx
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x52d389
cmp esi, dword [ebp + 0x5c]
ja 0x528705
cmp dword [ebp + 0x24], 0
je case.default.0x52d389
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x526c42
jmp case.default.0x52d389
mov esi, dword [eax + 0x38]
mov edi, 1
jmp 0x528728
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x6c]
cmp esi, dword [ecx + 0x54]
jae 0x5287c2
cmp dword [esp + 0x14], 0
lea edx, [esi + 2]
movzx ecx, word [esi]
mov esi, edx
mov dword [eax + 0x38], edx
je 0x528778
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x528778
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 + 0x5b4db0]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5b91b0]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5b0ba1]
cmp eax, dword [edx + 0x2c]
sete cl
cmp ecx, ebx
je 0x525b5d
inc edi
cmp edi, ebp
jbe 0x528724
jmp 0x5285a1
mov ebp, ecx
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x52d389
cmp esi, dword [ebp + 0x5c]
ja 0x5287e2
cmp dword [ebp + 0x24], 0
je case.default.0x52d389
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x526c42
jmp case.default.0x52d389
mov esi, dword [eax + 0x38]
mov edi, 1
jmp 0x528805
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x6c]
cmp esi, dword [ecx + 0x54]
jae 0x52889f
cmp dword [esp + 0x14], 0
lea edx, [esi + 2]
movzx ecx, word [esi]
mov esi, edx
mov dword [eax + 0x38], edx
je 0x528855
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x528855
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 + 0x5b4db0]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5b91b0]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5b0ba0]
cmp eax, dword [edx + 0x2c]
sete cl
cmp ecx, ebx
je 0x525b5d
inc edi
cmp edi, ebp
jbe 0x528801
jmp 0x5285a1
mov ebp, ecx
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x52d389
cmp esi, dword [ebp + 0x5c]
ja 0x5288bf
cmp dword [ebp + 0x24], 0
je case.default.0x52d389
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x526c42
jmp case.default.0x52d389
mov esi, dword [eax + 0x38]
mov edi, 1
jmp 0x5288e4
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x6c]
cmp esi, dword [ecx + 0x54]
jae 0x5289ae
cmp dword [esp + 0x14], 0
lea edx, [esi + 2]
movzx ecx, word [esi]
mov esi, edx
mov dword [eax + 0x38], edx
je 0x528934
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x528934
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 + 0x5b4db0]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5b91b0]
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x2c]
movzx eax, byte [edx*4 + 0x5b0ba0]
cmp eax, ecx
je 0x528993
movzx edx, word [edx*4 + 0x5b0ba8]
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 + 0x5b08a8], eax
jne 0x528993
xor eax, eax
jmp 0x528998
mov eax, 1
cmp eax, ebx
je 0x525b5d
inc edi
cmp edi, ebp
jbe 0x5288e0
jmp 0x5285a1
mov ebp, ecx
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x52d389
cmp esi, dword [ebp + 0x5c]
ja 0x5289ce
cmp dword [ebp + 0x24], 0
je case.default.0x52d389
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x526c42
jmp case.default.0x52d389
mov esi, dword [eax + 0x38]
mov edi, 1
jmp 0x5289f4
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x6c]
cmp esi, dword [ecx + 0x54]
jae 0x528a9c
cmp dword [esp + 0x14], 0
lea edx, [esi + 2]
movzx ecx, word [esi]
mov esi, edx
mov dword [eax + 0x38], edx
je 0x528a44
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x528a44
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 + 0x5b4db0]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5b91b0]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5b0ba1]
mov eax, dword [eax*4 + 0x5ae640]
cmp eax, 1
je 0x528a81
cmp eax, 3
je 0x528a81
xor eax, eax
jmp 0x528a86
mov eax, 1
cmp eax, ebx
je 0x525b5d
inc edi
cmp edi, ebp
jbe 0x5289f0
jmp 0x5285a1
mov ebp, ecx
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x52d389
cmp esi, dword [ebp + 0x5c]
ja 0x528abc
cmp dword [ebp + 0x24], 0
je case.default.0x52d389
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x526c42
jmp case.default.0x52d389
mov ebp, dword [esp + 0x6c]
mov esi, 1
nop word [eax + eax]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jae 0x528c03
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], edx
je 0x528b2f
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x528b2f
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 0x528b33
mov edx, dword [esp + 0x10]
cmp ecx, 0x20
ja 0x528b4d
je case.0x528bf7.8193
lea eax, [ecx - 9]
cmp eax, 4
ja case.0x528bf7.8203
jmp dword [eax*4 + 0x52fc2c]
cmp ecx, 0x2000
ja 0x528bdb
je case.0x528bf7.8193
cmp ecx, 0x1680
ja 0x528bd3
je case.0x528bf7.8193
mov eax, ecx
sub eax, 0x85
je case.0x528bf7.8193
sub eax, 0x1b
je case.0x528bf7.8193
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5b4db0]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5b91b0]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5b0ba1]
cmp dword [eax*4 + 0x5ae640], 6
sete cl
cmp ecx, ebx
je case.default.0x52d389
inc esi
cmp esi, dword [edx + 0x20]
ja 0x5285a1
mov eax, dword [esp + 0x10]
jmp 0x528ae0
cmp ecx, 0x180e
jmp 0x528b7d
cmp ecx, 0x3000
ja case.0x528bf7.8203
je case.0x528bf7.8193
lea eax, [ecx - 0x2001]
cmp eax, 0x5e
ja case.0x528bf7.8203
movzx eax, byte [eax + 0x52fc48]
jmp dword [eax*4 + 0x52fc40]
cmp edi, 0xf
jmp 0x528bba
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x52d389
cmp edx, dword [ebp + 0x5c]
ja 0x528c21
cmp dword [ebp + 0x24], 0
je case.default.0x52d389
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x526c42
jmp case.default.0x52d389
mov esi, dword [eax + 0x38]
mov edi, 1
jmp 0x528c44
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x6c]
cmp esi, dword [ecx + 0x54]
jae 0x528cf3
cmp dword [esp + 0x14], 0
lea ecx, [esi + 2]
movzx edx, word [esi]
mov esi, ecx
mov dword [eax + 0x38], ecx
je 0x528c94
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x528c94
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 + 0x5b4db0]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5b91b0]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5b0ba1]
mov eax, dword [eax*4 + 0x5ae640]
cmp eax, 1
je 0x528cd8
cmp eax, 3
je 0x528cd8
cmp edx, 0x5f
je 0x528cd8
xor eax, eax
jmp 0x528cdd
mov eax, 1
cmp eax, ebx
je 0x525b5d
inc edi
cmp edi, ebp
jbe 0x528c40
jmp 0x5285a1
mov ebp, ecx
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x52d389
cmp esi, dword [ebp + 0x5c]
ja 0x528d13
cmp dword [ebp + 0x24], 0
je case.default.0x52d389
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x526c42
jmp case.default.0x52d389
mov ebx, dword [esp + 0x14]
mov esi, 1
mov ecx, dword [esp + 0x6c]
mov edx, dword [eax + 0x38]
cmp edx, dword [ecx + 0x54]
jae 0x528dd2
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x528d83
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x528d7f
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 + 0x5b05d8]
lea eax, [eax*4 + 0x5b05d8]
cmp ecx, edx
jb 0x528da5
lea eax, [eax + 4]
cmp ecx, edx
je 0x528dbc
mov edx, dword [eax]
cmp ecx, edx
jae 0x528d98
cmp edi, 0xf
jne 0x528dc1
inc esi
cmp esi, ebp
ja 0x5285a1
mov eax, dword [esp + 0x10]
jmp 0x528d31
cmp edi, 0xf
jne 0x528daa
mov eax, dword [esp + 0x10]
xor esi, esi
mov ebp, dword [esp + 0x6c]
mov edx, ebx
jmp 0x525b6b
mov ebp, ecx
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x528dfa
cmp edx, dword [ebp + 0x5c]
ja 0x528dea
cmp dword [ebp + 0x24], 0
je 0x528dfa
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x526c42
mov eax, dword [esp + 0x10]
xor esi, esi
mov edx, ebx
jmp 0x525b6b
mov esi, 1
jmp 0x528e14
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x6c]
mov edx, dword [eax + 0x38]
cmp edx, dword [ecx + 0x54]
jae 0x528eab
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], edx
je 0x528e65
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x528e65
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 0x528e90
cmp ecx, 0x40
je 0x528e90
cmp ecx, 0x60
je 0x528e90
cmp ecx, 0xa0
jb 0x528e84
cmp ecx, 0xd7ff
jbe 0x528e90
cmp ecx, 0xe000
jae 0x528e90
xor eax, eax
jmp 0x528e95
mov eax, 1
cmp eax, ebx
je 0x525b5d
inc esi
cmp esi, ebp
jbe 0x528e10
jmp 0x5285a1
mov ebp, ecx
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x52d389
cmp edx, dword [ebp + 0x5c]
ja 0x528ecb
cmp dword [ebp + 0x24], 0
je case.default.0x52d389
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x526c42
jmp case.default.0x52d389
mov esi, dword [eax + 0x38]
mov edi, 1
jmp 0x528ef4
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x6c]
cmp esi, dword [ecx + 0x54]
jae 0x528f91
cmp dword [esp + 0x14], 0
lea edx, [esi + 2]
movzx ecx, word [esi]
mov esi, edx
mov dword [eax + 0x38], edx
je 0x528f44
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x528f44
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 + 0x5b4db0]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5b91b0]
lea eax, [eax + eax*2]
movzx eax, word [eax*4 + 0x5b0ba8]
shr eax, 0xb
cmp eax, dword [edx + 0x2c]
sete cl
cmp ecx, ebx
je 0x525b5d
inc edi
cmp edi, ebp
jbe 0x528ef0
jmp 0x5285a1
mov ebp, ecx
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x52d389
cmp esi, dword [ebp + 0x5c]
ja 0x528fb1
cmp dword [ebp + 0x24], 0
je case.default.0x52d389
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x526c42
jmp case.default.0x52d389
mov esi, dword [eax + 0x38]
mov edi, 1
nop
mov ecx, dword [esp + 0x6c]
cmp esi, dword [ecx + 0x54]
jae 0x529096
cmp dword [esp + 0x14], 0
lea ecx, [esi + 2]
movzx edx, word [esi]
mov esi, ecx
mov dword [eax + 0x38], ecx
je 0x529024
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x529020
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 + 0x5b4db0]
shl eax, 7
add eax, edx
movzx eax, word [eax*2 + 0x5b91b0]
lea eax, [eax + eax*2]
movzx edx, word [eax*4 + 0x5b0baa]
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 + 0x5b0050]
and ecx, eax
mov eax, dword [esp + 0x10]
neg ecx
sbb ecx, ecx
neg ecx
cmp ecx, ebx
je 0x52908b
inc edi
cmp edi, ebp
jbe 0x528fd0
jmp 0x5285a1
mov ebp, dword [esp + 0x6c]
xor esi, esi
jmp 0x525b67
mov ebp, ecx
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x52d389
cmp esi, dword [ebp + 0x5c]
ja 0x5290b6
cmp dword [ebp + 0x24], 0
je case.default.0x52d389
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x526c42
jmp case.default.0x52d389
cmp edi, 0x16
jne 0x5291bc
mov ebp, dword [esp + 0x6c]
mov edi, 1
mov esi, dword [ebp + 0x54]
jmp 0x5290e6
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, esi
jae 0x529189
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 0x529134
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x529134
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.0053c900
mov dword [ebx + 0x38], eax
add esp, 0x18
mov esi, dword [ebp + 0x54]
cmp eax, esi
jb 0x52917a
movzx ecx, word [ebp + 0x3c]
mov edx, ecx
test cx, cx
je 0x52917a
cmp eax, dword [ebp + 0x5c]
ja 0x52916a
cmp dword [ebp + 0x24], 0
je 0x52917a
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x526c42
inc edi
cmp edi, dword [ebx + 0x20]
jbe 0x5290e2
jmp 0x5285a5
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x52d389
cmp edx, dword [ebp + 0x5c]
ja 0x5291a7
cmp dword [ebp + 0x24], 0
je case.default.0x52d389
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x526c42
jmp case.default.0x52d389
lea eax, [edi - 6]
cmp eax, 0xf
ja case.0x52d36c.15
mov esi, dword [esp + 0x14]
test esi, esi
je 0x529b4a
jmp dword [eax*4 + 0x52fca8]
jmp dword [eax*4 + 0x52fde8]
cmp edi, ebp
jae 0x52ad37
nop dword [eax + eax]
mov eax, dword [esp + 0x6c]
mov ecx, 1
cmp esi, dword [eax + 0x54]
jae 0x52a37a
cmp dword [esp + 0x14], 0
je 0x52a35d
mov eax, 0xfc00
mov edx, 0xd800
and ax, word [esi]
cmp ax, dx
mov eax, 2
cmove ecx, eax
cmp ebx, 0xf
je 0x52ad37
mov eax, dword [esp + 0x10]
lea esi, [esi + ecx*2]
inc edi
mov dword [eax + 0x38], esi
cmp edi, ebp
jb 0x52a330
jmp 0x52ad37
mov ebp, eax
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x52ad3b
cmp esi, dword [ebp + 0x5c]
ja 0x52a39a
cmp dword [ebp + 0x24], 0
je 0x52ad3b
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x526c42
jmp 0x52ad3b
cmp edi, ebp
jae 0x52ad37
mov ebx, dword [esp + 0x5c]
nop dword [eax + eax]
mov eax, dword [esp + 0x6c]
mov edx, 1
cmp esi, dword [eax + 0x54]
jae 0x52a465
cmp dword [esp + 0x14], 0
movzx ecx, word [esi]
je 0x52a409
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x52a409
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 + 0x5b4db0]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5b91b0]
lea eax, [eax + eax*2]
mov al, byte [eax*4 + 0x5b0ba1]
cmp al, 9
je 0x52a440
cmp al, 5
je 0x52a440
cmp al, 8
je 0x52a440
xor eax, eax
jmp 0x52a445
mov eax, 1
cmp eax, ebx
je 0x52ad37
mov eax, dword [esp + 0x10]
lea esi, [esi + edx*2]
inc edi
mov dword [eax + 0x38], esi
cmp edi, ebp
jb 0x52a3c0
jmp 0x52ad37
mov ebp, eax
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x52ad3b
cmp esi, dword [ebp + 0x5c]
ja 0x52a485
cmp dword [ebp + 0x24], 0
je 0x52ad3b
mov dword [ebp + 0x1c], edx
cmp ecx, 1
ja 0x526c42
jmp 0x52ad3b
cmp edi, ebp
jae 0x52ad37
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x6c]
mov edx, 1
cmp esi, dword [eax + 0x54]
jae 0x52a465
cmp dword [esp + 0x14], 0
movzx ecx, word [esi]
je 0x52a4e7
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x52a4e7
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 + 0x5b4db0]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5b91b0]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5b0ba1]
mov eax, dword [eax*4 + 0x5ae640]
cmp eax, dword [ebx + 0x2c]
sete cl
cmp ecx, dword [esp + 0x5c]
je 0x52ad37
inc edi
lea esi, [esi + edx*2]
mov dword [ebx + 0x38], esi
cmp edi, ebp
jb 0x52a4a2
jmp 0x52ad37
cmp edi, ebp
jae 0x52ad37
mov ebx, dword [esp + 0x10]
nop dword [eax + eax]
mov eax, dword [esp + 0x6c]
mov edx, 1
cmp esi, dword [eax + 0x54]
jae 0x52a465
cmp dword [esp + 0x14], 0
movzx ecx, word [esi]
je 0x52a599
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x52a599
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 + 0x5b4db0]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5b91b0]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5b0ba1]
cmp eax, dword [ebx + 0x2c]
sete cl
cmp ecx, dword [esp + 0x5c]
je 0x52ad37
inc edi
lea esi, [esi + edx*2]
mov dword [ebx + 0x38], esi
cmp edi, ebp
jb 0x52a550
jmp 0x52ad37
cmp edi, ebp
jae 0x52ad37
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x6c]
mov edx, 1
cmp esi, dword [eax + 0x54]
jae 0x52a465
cmp dword [esp + 0x14], 0
movzx ecx, word [esi]
je 0x52a63c
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x52a63c
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 + 0x5b4db0]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5b91b0]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5b0ba0]
cmp eax, dword [ebx + 0x2c]
sete cl
cmp ecx, dword [esp + 0x5c]
je 0x52ad37
inc edi
lea esi, [esi + edx*2]
mov dword [ebx + 0x38], esi
cmp edi, ebp
jb 0x52a5f3
jmp 0x52ad37
cmp edi, ebp
jae 0x52ad37
mov ebx, dword [esp + 0x5c]
nop word [eax + eax]
mov eax, dword [esp + 0x6c]
mov edi, 1
cmp esi, dword [eax + 0x54]
jae 0x52a775
cmp dword [esp + 0x14], 0
movzx ecx, word [esi]
je 0x52a6e9
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x52a6e9
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 + 0x5b4db0]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5b91b0]
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x2c]
movzx eax, byte [edx*4 + 0x5b0ba0]
cmp eax, ecx
je 0x52a748
movzx edx, word [edx*4 + 0x5b0ba8]
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 + 0x5b08a8], eax
jne 0x52a748
xor eax, eax
jmp 0x52a74d
mov eax, 1
cmp eax, ebx
je 0x52ad37
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 0x52a6a0
jmp 0x52ad37
mov ebp, eax
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x52ad3b
cmp esi, dword [ebp + 0x5c]
ja 0x52a795
cmp dword [ebp + 0x24], 0
je 0x52ad3b
mov dword [ebp + 0x1c], edi
jmp 0x52a488
cmp edi, ebp
jae 0x52ad37
mov ebx, dword [esp + 0x5c]
nop dword [eax]
mov eax, dword [esp + 0x6c]
mov edx, 1
cmp esi, dword [eax + 0x54]
jae 0x52a465
cmp dword [esp + 0x14], 0
movzx ecx, word [esi]
je 0x52a7f9
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x52a7f9
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 + 0x5b4db0]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5b91b0]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5b0ba1]
mov eax, dword [eax*4 + 0x5ae640]
cmp eax, 1
je 0x52a836
cmp eax, 3
je 0x52a836
xor eax, eax
jmp 0x52a83b
mov eax, 1
cmp eax, ebx
je 0x52ad37
mov eax, dword [esp + 0x10]
lea esi, [esi + edx*2]
inc edi
mov dword [eax + 0x38], esi
cmp edi, ebp
jb 0x52a7b0
jmp 0x52ad37
cmp edi, ebp
mov ebp, dword [esp + 0x6c]
jae 0x52ad3b
nop word [eax + eax]
mov edx, 1
cmp esi, dword [ebp + 0x54]
jae 0x52a467
cmp dword [esp + 0x14], 0
movzx ecx, word [esi]
je 0x52a8b5
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x52a8b5
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 0x52a8cf
je case.0x52a985.8193
lea eax, [ecx - 9]
cmp eax, 4
ja case.0x52a985.8203
jmp dword [eax*4 + 0x52ff28]
cmp ecx, 0x2000
ja 0x52a969
je case.0x52a985.8193
cmp ecx, 0x1680
ja 0x52a961
je case.0x52a985.8193
mov eax, ecx
sub eax, 0x85
je case.0x52a985.8193
sub eax, 0x1b
je case.0x52a985.8193
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5b4db0]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5b91b0]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5b0ba1]
cmp dword [eax*4 + 0x5ae640], 6
sete cl
cmp ecx, dword [esp + 0x5c]
je 0x52ad3b
mov eax, dword [esp + 0x10]
lea esi, [esi + edx*2]
inc edi
mov dword [eax + 0x38], esi
cmp edi, dword [eax + 0x24]
jb 0x52a870
jmp 0x52ad3b
cmp ecx, 0x180e
jmp 0x52a903
cmp ecx, 0x3000
ja case.0x52a985.8203
je case.0x52a985.8193
lea eax, [ecx - 0x2001]
cmp eax, 0x5e
ja case.0x52a985.8203
movzx eax, byte [eax + 0x52ff44]
jmp dword [eax*4 + 0x52ff3c]
cmp ebx, 0xf
je 0x52ad3b
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 0x38]
jmp 0x52a94c
cmp edi, ebp
jae 0x52ad37
mov ebx, dword [esp + 0x5c]
nop word [eax + eax]
mov eax, dword [esp + 0x6c]
mov edi, 1
cmp esi, dword [eax + 0x54]
jae 0x52a775
cmp dword [esp + 0x14], 0
movzx edx, word [esi]
je 0x52a9f9
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x52a9f9
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 + 0x5b4db0]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5b91b0]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5b0ba1]
mov eax, dword [eax*4 + 0x5ae640]
cmp eax, 1
je 0x52aa3d
cmp eax, 3
je 0x52aa3d
cmp edx, 0x5f
je 0x52aa3d
xor eax, eax
jmp 0x52aa42
mov eax, 1
cmp eax, ebx
je 0x52ad37
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 0x52a9b0
jmp 0x52ad37
cmp edi, ebp
jae 0x52ad37
mov eax, dword [esp + 0x6c]
mov edi, 1
cmp esi, dword [eax + 0x54]
jae 0x52a775
cmp dword [esp + 0x14], 0
movzx ecx, word [esi]
je 0x52aabb
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x52aabb
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 + 0x5b05d8]
lea eax, [eax*4 + 0x5b05d8]
cmp ecx, edx
jb 0x52aae1
lea eax, [eax + 4]
cmp ecx, edx
je 0x52ab09
mov edx, dword [eax]
cmp ecx, edx
jae 0x52aad4
cmp ebx, 0xf
jne 0x52ad37
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 0x52aa72
jmp 0x52ad37
cmp ebx, 0xf
je 0x52ad37
jmp 0x52aaea
cmp edi, ebp
jae 0x52ad37
mov ebx, dword [esp + 0x5c]
mov eax, dword [esp + 0x6c]
mov edx, 1
cmp esi, dword [eax + 0x54]
jae 0x52a465
cmp dword [esp + 0x14], 0
movzx ecx, word [esi]
je 0x52ab69
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x52ab69
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 0x52ab94
cmp ecx, 0x40
je 0x52ab94
cmp ecx, 0x60
je 0x52ab94
cmp ecx, 0xa0
jb 0x52ab88
cmp ecx, 0xd7ff
jbe 0x52ab94
cmp ecx, 0xe000
jae 0x52ab94
xor eax, eax
jmp 0x52ab99
mov eax, 1
cmp eax, ebx
je 0x52ad37
mov eax, dword [esp + 0x10]
lea esi, [esi + edx*2]
inc edi
mov dword [eax + 0x38], esi
cmp edi, ebp
jb 0x52ab20
jmp 0x52ad37
cmp edi, ebp
jae 0x52ad37
mov ebx, dword [esp + 0x10]
nop word [eax + eax]
mov eax, dword [esp + 0x6c]
mov edx, 1
cmp esi, dword [eax + 0x54]
jae 0x52a465
cmp dword [esp + 0x14], 0
movzx ecx, word [esi]
je 0x52ac19
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x52ac19
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 + 0x5b4db0]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5b91b0]
lea eax, [eax + eax*2]
movzx eax, word [eax*4 + 0x5b0ba8]
shr eax, 0xb
cmp eax, dword [ebx + 0x2c]
sete cl
cmp ecx, dword [esp + 0x5c]
je 0x52ad37
inc edi
lea esi, [esi + edx*2]
mov dword [ebx + 0x38], esi
cmp edi, ebp
jb 0x52abd0
jmp 0x52ad37
cmp edi, ebp
jae 0x52ad37
mov ebx, dword [esp + 0x10]
nop word [eax + eax]
mov eax, dword [esp + 0x6c]
mov edi, 1
cmp esi, dword [eax + 0x54]
jae 0x52a775
cmp dword [esp + 0x14], 0
movzx edx, word [esi]
je 0x52acc9
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x52acc9
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 + 0x5b4db0]
shl eax, 7
add eax, edx
movzx eax, word [eax*2 + 0x5b91b0]
lea eax, [eax + eax*2]
movzx edx, word [eax*4 + 0x5b0baa]
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 + 0x5b0050]
and ecx, eax
neg ecx
sbb ecx, ecx
neg ecx
cmp ecx, dword [esp + 0x5c]
je 0x52ad37
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 0x52ac80
mov ebp, dword [esp + 0x6c]
cmp dword [esp + 0x18], 2
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x68]
je 0x525820
mov ebx, dword [esp + 0x10]
mov ecx, dword [ebx + 0x38]
jmp 0x52e909
cmp ebx, 0x16
jne 0x52ae5a
cmp edi, ebp
mov ebp, dword [esp + 0x6c]
jae 0x52ae42
mov esi, dword [ebp + 0x54]
mov ebx, dword [esp + 0x10]
nop word [eax + eax]
mov edx, dword [ebx + 0x38]
cmp edx, esi
jae 0x52ae1c
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov esi, edx
mov dword [ebx + 0x38], edx
je 0x52adca
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x52adca
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.0053c900
mov dword [ebx + 0x38], eax
add esp, 0x18
mov esi, dword [ebp + 0x54]
cmp eax, esi
jb 0x52ae10
movzx ecx, word [ebp + 0x3c]
mov edx, ecx
test cx, cx
je 0x52ae10
cmp eax, dword [ebp + 0x5c]
ja 0x52ae00
cmp dword [ebp + 0x24], 0
je 0x52ae10
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x526c42
inc edi
cmp edi, dword [ebx + 0x24]
jb 0x52ad80
jmp 0x52ae42
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x52ae42
cmp edx, dword [ebp + 0x5c]
ja 0x52ae32
cmp dword [ebp + 0x24], 0
je 0x52ae42
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x526c42
cmp dword [esp + 0x18], 2
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x68]
je 0x525820
jmp 0x52ee30
lea eax, [ebx - 6]
cmp eax, 0xf
ja case.0x52d36c.15
mov edx, dword [esp + 0x14]
test edx, edx
je 0x52b6ac
jmp dword [eax*4 + 0x52ffa4]
jmp dword [eax*4 + 0x53005c]
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 0x52be95
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 0x52be8a
cmp dword [ebp + eax*4 + 0x54], 0xffffffff
jne 0x52be95
movzx eax, word [ebx + 0x42]
lea ecx, [ecx + eax*2]
test edx, edx
jg 0x52be70
mov esi, dword [ebp]
jmp 0x52bec1
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.0x52bed9
movzx eax, byte [eax + 0x530194]
jmp dword [eax*4 + 0x53018c]
mov ecx, dword [edx*4 + 0x5adb58]
lea eax, [esi + 2]
mov ebx, dword [edx*4 + 0x5adb84]
mov edx, dword [edx*4 + 0x5adbb0]
mov dword [ebp], eax
mov dword [ebp + 0x20], ecx
mov dword [ebp + 0x24], ebx
mov dword [esp + 0x18], edx
jmp 0x52bf37
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 + 0x5adbb0]
mov dword [esp + 0x18], eax
test ebx, ebx
jne 0x52bf31
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 0x52bf5c
mov eax, dword [ebp + edi*4 + 0x54]
cmp eax, 0xffffffff
je 0x52bf5c
mov edx, dword [esp + 0x14]
cmp eax, dword [ebp + edi*4 + 0x58]
je 0x525df7
mov eax, dword [esp + 0x6c]
jmp 0x52bf79
mov edx, dword [esp + 0x14]
test ecx, ecx
je 0x525df7
mov eax, dword [esp + 0x6c]
test dword [eax + 0x7c], 0x200
jne 0x525800
mov esi, 1
cmp ecx, esi
jb 0x52bfb8
mov edi, dword [ebp + 0x14]
lea ecx, [esp + 0x40]
push ecx
push eax
push ebp
push dword [ebp + 0x28]
push edi
call fcn.00530570
add esp, 0x14
test eax, eax
jne 0x52c031
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 0x52bf82
mov ebx, dword [ebp + 0x24]
mov edx, dword [esp + 0x14]
cmp ecx, ebx
je 0x525df7
cmp dword [esp + 0x18], 0
je 0x52ef8e
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 0x52cf28
lea eax, [esp + 0x44]
push eax
push ebp
push ebx
push dword [ebx + 0x28]
push dword [ebx + 0x14]
call fcn.00530570
add esp, 0x14
test eax, eax
jne 0x52c082
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 0x52bff8
jmp 0x52c0a7
jle 0x52c03f
mov eax, dword [esp + 0x6c]
mov ecx, dword [eax + 0x54]
mov dword [ebp + 0x38], ecx
jmp 0x52c042
mov ecx, dword [ebp + 0x38]
mov ebp, dword [esp + 0x6c]
cmp ecx, dword [ebp + 0x54]
jb case.default.0x52d389
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x52d389
cmp ecx, dword [ebp + 0x5c]
ja 0x52c06d
cmp dword [ebp + 0x24], 0
je case.default.0x52d389
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x526c42
jmp case.default.0x52d389
jle 0x52c0a7
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x52c0a7
mov eax, dword [ebp + 0x54]
cmp eax, dword [ebp + 0x5c]
jbe 0x52c0a7
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x526c42
test esi, esi
jne 0x52cf28
mov dword [ebx + 0x24], edi
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x16
jmp 0x52f432
lea eax, [esp + 0x28]
push eax
push ebx
push ebp
push dword [ebp + 0x28]
push dword [ebp + 0x14]
call fcn.00530570
add esp, 0x14
test eax, eax
je 0x52c123
jle 0x52c0e0
mov ecx, dword [ebx + 0x54]
mov dword [ebp + 0x38], ecx
jmp 0x52c0e3
mov ecx, dword [ebp + 0x38]
mov ebp, dword [esp + 0x6c]
cmp ecx, dword [ebp + 0x54]
jb case.default.0x52d389
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x52d389
cmp ecx, dword [ebp + 0x5c]
ja 0x52c10e
cmp dword [ebp + 0x24], 0
je case.default.0x52d389
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x526c42
jmp case.default.0x52d389
mov eax, dword [esp + 0x28]
add eax, eax
add dword [ebp + 0x38], eax
mov ebp, dword [esp + 0x6c]
jmp 0x525814
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 0x52c140
lea eax, [esi + 4]
mov dword [ecx], eax
jmp 0x525820
cmp dword [ebp + 0x20], 0
mov ebx, dword [esp + 0x10]
jne 0x52c16d
cmp dword [ebx + 0x18], 0
jne 0x52cb29
xor eax, eax
jmp 0x52f239
mov ebx, dword [esp + 0x10]
lea eax, [esp + 0x28]
push eax
push ebp
push ebx
call fcn.005255e0
mov esi, eax
add esp, 0xc
test esi, esi
jg case.default.0x52d389
js 0x525b63
mov eax, dword [esp + 0x28]
add eax, eax
add dword [ebx], eax
jmp 0x525818
movzx eax, word [esi + 2]
mov edi, dword [esp + 0x10]
mov dword [edi + 0xc], eax
cmp word [esi + eax*2], 0x78
je 0x52c1bc
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 0x52c1d0
cmp eax, 0x77
jne 0x52c200
lea eax, [esp + 0x28]
push eax
push ebp
push edi
call fcn.005255e0
mov esi, eax
add esp, 0xc
test esi, esi
jg case.default.0x52d389
js 0x525b63
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.0x52c219.150
movzx eax, byte [eax + 0x5301b8]
jmp dword [eax*4 + 0x53019c]
mov ecx, dword [edi + 0x44]
cmp ecx, 0xffffffff
je case.0x52c219.148
movzx eax, word [ebx + 2]
mov ebx, dword [esp + 0x10]
cmp eax, 0xffff
je 0x52ecde
cmp eax, ecx
je 0x52ecde
jmp 0x52ecf0
mov edi, dword [edi + 0x44]
cmp edi, 0xffffffff
je case.0x52c219.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.0x52c219.148
movzx eax, word [ecx]
dec edx
cmp eax, edi
je 0x52c2a9
lea ecx, [ecx + esi*2]
test edx, edx
jg 0x52c275
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 0x52ecf0
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 + 0x5ae4a0]
jmp 0x52ecf5
movzx eax, word [ebx + 2]
mov ebx, dword [esp + 0x10]
lea eax, [eax*2 - 2]
cmp eax, dword [ebx + 0x50]
jae 0x52ecf0
cmp dword [ebx + eax*4 + 0x54], 0xffffffff
je 0x52ecf0
mov ecx, dword [ebx]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x5ae4a0]
jmp 0x52ecf5
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 0x52ecf0
mov edi, dword [ebx + 0x50]
movzx eax, word [ecx]
dec edx
lea eax, [eax*2 - 2]
cmp eax, edi
jae 0x52c34c
cmp dword [ebx + eax*4 + 0x54], 0xffffffff
jne 0x52ecde
lea ecx, [ecx + esi*2]
test edx, edx
jg 0x52c332
jmp 0x52ecf0
cmp dword [esp + 0x14], 0
movzx edx, word [esi + 2]
mov ebx, dword [esp + 0x10]
je 0x52c39f
test edx, edx
je 0x52c39a
mov ecx, dword [ebx + 0x38]
mov esi, 0xfc00
dec edx
cmp ecx, dword [ebp + 0x50]
jbe case.default.0x52d389
add ecx, 0xfffffffe
mov dword [ebx + 0x38], ecx
mov ax, word [ecx]
and ax, si
cmp ax, word [esp + 0x30]
jne 0x52c396
add ecx, 0xfffffffe
mov dword [ebx + 0x38], ecx
test edx, edx
jne 0x52c373
mov ecx, dword [ebx + 0x38]
jmp 0x52c3b9
mov ecx, dword [ebx + 0x38]
mov eax, ecx
sub eax, dword [ebp + 0x4c]
sar eax, 1
cmp edx, eax
jg case.default.0x52d389
lea eax, [edx + edx]
sub ecx, eax
mov dword [ebx + 0x38], ecx
cmp ecx, dword [ebp + 0x5c]
jae 0x52c3c1
mov dword [ebp + 0x5c], ecx
add dword [ebx], 4
jmp 0x525818
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.0x525844.120
jmp 0x525820
movzx eax, word [esi + 2]
mov ecx, 0x86
add eax, eax
sub esi, eax
movzx eax, word [esi]
cmp ax, cx
je 0x52c46d
mov ecx, 0x8a
cmp ax, cx
je 0x52c46d
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 0x52c468
mov eax, dword [ebx + 0x50]
shl eax, 2
push eax
lea eax, [ebx + 0x54]
push eax
lea eax, [edi + 0x54]
push eax
call fcn.0056f940
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 0x525b63
movzx eax, word [esi]
jmp 0x52c477
mov ebx, dword [esp + 0x10]
xor edi, edi
mov ecx, dword [esp + 0x1c]
movzx eax, ax
add eax, 0xffffff82
cmp eax, 0x10
ja case.0x52c48d.134
movzx eax, byte [eax + 0x5301e8]
jmp dword [eax*4 + 0x5301cc]
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebp + 0x60]
jbe 0x52c49f
mov dword [ebp + 0x60], eax
mov eax, dword [edi + 0x38]
mov dword [ebx + 0x38], eax
jmp case.0x52c48d.134
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebp + 0x60]
jbe 0x52c4b5
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.0x52c48d.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 0x52c4e0
jmp case.0x52c48d.134
mov eax, dword [esp + 0x10]
mov esi, 1
jmp 0x525b6b
push edx
push dword [ebx + 0x38]
push dword [edi + 0x38]
call fcn.0053cd00
add esp, 0xc
test eax, eax
jne case.0x52c48d.134
jmp case.default.0x52d389
movzx eax, word [esi + 4]
cmp dword [ebx + 0x44], eax
jne 0x52c55f
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.0056f940
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 0x525814
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.0x52c48d.134
mov dword [ebx + 0x50], edx
mov edx, dword [ebx]
cmp word [edx], 0x7c
jne 0x52c5ae
push dword [esp + 0x48]
lea eax, [ebx + 0x38]
push eax
lea eax, [edi + 0x38]
push eax
call fcn.0056f940
add esp, 0xc
mov esi, 0xfffffc1a
jmp 0x525b63
mov cl, byte [ebx + 0x31]
cmp cl, 0x79
je 0x52c5ca
test edi, edi
je 0x52ef49
mov eax, dword [ebx + 0x38]
cmp eax, dword [edi + 0x38]
jne 0x52ef49
add dword [ebx], 4
jmp 0x525814
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x38]
cmp eax, dword [ebp + 0x4c]
jne 0x525cdf
test byte [ebp + 0x78], 1
jne 0x525cdf
lea eax, [esi + 2]
mov dword [ecx], eax
jmp 0x525820
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x38]
cmp eax, dword [ebp + 0x4c]
je 0x52c5ec
xor esi, esi
mov eax, ecx
jmp 0x525b6b
test byte [ebp + 0x78], 2
je 0x52c61c
mov eax, dword [esp + 0x10]
xor esi, esi
jmp 0x525b6b
test byte [ebp + 0x7c], 0x10
je case.0x525844.23
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0x38]
cmp eax, dword [ebp + 0x54]
jb case.default.0x52d389
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x52c64d
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x526c42
add dword [edx], 2
jmp 0x525818
mov ebp, dword [esp + 0x10]
mov ecx, dword [esp + 0x6c]
mov edx, dword [ebp + 0x38]
mov esi, dword [ecx + 0x54]
cmp edx, esi
jae 0x52c726
mov eax, dword [ecx + 0x88]
lea ebx, [ecx + 0x8c]
test eax, eax
je 0x52c69d
push dword [esp + 0x14]
push ebx
push esi
push eax
push edx
call fcn.0053cb00
add esp, 0x14
test eax, eax
je 0x52c6d5
mov ecx, dword [esp + 0x6c]
mov edi, dword [ebx]
mov edx, dword [ebp + 0x38]
mov esi, dword [ecx + 0x54]
jmp 0x52c6cc
mov edi, dword [ebx]
mov ecx, esi
lea eax, [edi + edi]
sub ecx, eax
cmp edx, ecx
ja 0x52c6d5
mov ecx, dword [esp + 0x6c]
mov ax, word [edx]
cmp ax, word [ecx + 0x90]
jne 0x52c6d5
cmp edi, 1
je 0x52c6cc
mov ax, word [edx + 2]
cmp ax, word [ecx + 0x92]
jne 0x52c6d5
lea eax, [edi + edi]
sub esi, eax
cmp edx, esi
je 0x52c726
mov eax, dword [esp + 0x6c]
movzx eax, word [eax + 0x3c]
mov edx, eax
test ax, ax
je 0x525b5d
mov ecx, dword [ebp + 0x38]
mov ebp, dword [esp + 0x6c]
lea eax, [ecx + 2]
cmp eax, dword [ebp + 0x54]
jb case.default.0x52d389
cmp dword [ebp + 0x88], 0
jne case.default.0x52d389
cmp dword [ebx], 2
jne case.default.0x52d389
mov ax, word [ecx]
cmp ax, word [ebp + 0x90]
jne case.default.0x52d389
jmp 0x527eef
movzx eax, word [ecx + 0x3c]
mov ecx, eax
test ax, ax
je 0x52c745
mov eax, dword [esp + 0x6c]
mov dword [eax + 0x1c], 1
cmp ecx, 1
ja 0x526c42
add dword [ebp], 2
mov ebp, dword [esp + 0x6c]
jmp 0x525814
test byte [ebp + 0x78], 1
mov ebx, dword [esp + 0x10]
je 0x52c76d
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebp + 0x4c]
jne 0x52c76d
xor esi, esi
mov eax, ebx
jmp 0x525b6b
mov ecx, dword [ebx + 0x38]
mov edx, dword [ebp + 0x4c]
cmp ecx, edx
je 0x52c8d4
cmp ecx, dword [ebp + 0x54]
jne 0x52c78d
test dword [ebp + 0x7c], 0x200000
je case.default.0x52d389
mov esi, dword [ebp + 0x88]
test esi, esi
je 0x52c7c5
cmp ecx, edx
jbe case.default.0x52d389
push dword [esp + 0x14]
lea eax, [ebp + 0x8c]
push eax
push edx
push esi
push ecx
call fcn.0053cbc0
add esp, 0x14
test eax, eax
je case.default.0x52d389
add dword [ebx], 2
jmp 0x525814
mov edi, dword [ebp + 0x8c]
lea esi, [edi + edi]
lea eax, [edx + esi]
cmp ecx, eax
jb case.default.0x52d389
sub ecx, esi
mov ax, word [ecx]
cmp ax, word [ebp + 0x90]
jne case.default.0x52d389
cmp edi, 1
je 0x52c8d4
mov ax, word [ecx + 2]
cmp ax, word [ebp + 0x92]
je 0x52c8d4
jmp case.default.0x52d389
mov ebx, dword [esp + 0x10]
mov ecx, dword [ebp + 0x54]
mov edx, dword [ebx + 0x38]
cmp edx, ecx
jae 0x52c8a4
mov eax, dword [ebp + 0x88]
lea edi, [ebp + 0x8c]
test eax, eax
je 0x52c848
push dword [esp + 0x14]
push edi
push ecx
push eax
push edx
call fcn.0053cb00
add esp, 0x14
test eax, eax
je 0x52c871
add dword [ebx], 2
jmp 0x525814
mov esi, dword [edi]
lea eax, [esi + esi]
sub ecx, eax
cmp edx, ecx
ja 0x52c871
mov ax, word [edx]
cmp ax, word [ebp + 0x90]
jne 0x52c871
cmp esi, 1
je 0x52c8d4
mov ax, word [edx + 2]
cmp ax, word [ebp + 0x92]
je 0x52c8d4
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x52d389
mov ecx, dword [ebx + 0x38]
lea eax, [ecx + 2]
cmp eax, dword [ebp + 0x54]
jb case.default.0x52d389
cmp dword [ebp + 0x88], 0
jne case.default.0x52d389
cmp dword [edi], 2
jmp 0x52c70b
test byte [ebp + 0x78], 2
jne case.default.0x52d389
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x52c8d4
cmp edx, dword [ebp + 0x5c]
ja 0x52c8c4
cmp dword [ebp + 0x24], 0
je 0x52c8d4
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x526c42
add dword [ebx], 2
jmp 0x525814
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 0x52c5ec
xor esi, esi
mov eax, ecx
jmp 0x525b6b
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x38]
mov dword [ecx + 0x3c], eax
lea eax, [esi + 2]
mov dword [ecx], eax
jmp 0x525820
mov ebx, dword [esp + 0x10]
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x50]
je 0x52c9e0
movzx eax, word [edx - 2]
add edx, 0xfffffffe
cmp dword [esp + 0x14], 0
mov ecx, eax
je 0x52c96d
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x52c942
movzx ecx, word [edx - 2]
sub edx, 2
movzx ecx, cx
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x52c96d
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 0x52c975
mov dword [ebp + 0x5c], edx
test dword [ebp + 0x7c], 0x20000
je 0x52c9c8
cmp ecx, 0x5f
jne 0x52c988
lea edi, [ecx - 0x5e]
jmp 0x52c9e2
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5b4db0]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5b91b0]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5b0ba1]
mov eax, dword [eax*4 + 0x5ae640]
cmp eax, 1
je 0x52c9c1
cmp eax, 3
jne 0x52c9e0
mov edi, 1
jmp 0x52c9e2
cmp ecx, 0xff
ja 0x52c9e0
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 0x10
je 0x52c9e0
mov edi, 1
jmp 0x52c9e2
xor edi, edi
mov ecx, dword [ebx + 0x38]
mov eax, dword [ebp + 0x54]
cmp ecx, eax
jb 0x52ca43
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je 0x52ca12
cmp ecx, dword [ebp + 0x5c]
ja 0x52ca02
cmp dword [ebp + 0x24], 0
je 0x52ca12
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x526c42
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 0x52ca28
xor edx, 1
mov edi, dword [esp + 0x68]
test edx, edx
mov edx, dword [esp + 0x14]
je 0x525820
mov eax, dword [esp + 0x10]
xor esi, esi
jmp 0x525b6b
cmp dword [esp + 0x14], 0
lea esi, [ecx + 2]
mov edx, esi
je 0x52ca91
cmp edx, eax
jae 0x52ca65
mov ax, word [edx]
and ax, word [esp + 0x34]
cmp ax, word [esp + 0x30]
jne 0x52ca65
add edx, 2
movzx ecx, word [ecx]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x52ca94
movzx eax, word [esi]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
jmp 0x52ca94
movzx ecx, word [ecx]
cmp edx, dword [ebp + 0x60]
jbe 0x52ca9c
mov dword [ebp + 0x60], edx
test dword [ebp + 0x7c], 0x20000
je 0x52caf9
cmp ecx, 0x5f
jne 0x52cab2
lea edx, [ecx - 0x5e]
jmp 0x52ca14
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5b4db0]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5b91b0]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5b0ba1]
mov eax, dword [eax*4 + 0x5ae640]
cmp eax, 1
je 0x52caef
cmp eax, 3
jne 0x52ca12
mov edx, 1
jmp 0x52ca14
cmp ecx, 0xff
ja 0x52ca12
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 0x10
je 0x52ca12
mov edx, 1
jmp 0x52ca14
test esi, esi
jne case.0x52cbf6.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 + 0x5ae4a0]
lea esi, [ecx + eax*2]
je 0x52ef67
mov dword [ebx], esi
jmp 0x525814
cmp esi, 0xfffffc1f
jne 0x52cb79
mov ecx, dword [ebx]
movzx eax, word [ecx + 2]
lea eax, [ecx + eax*2]
cmp dword [ebp + 0x6c], eax
jae case.0x52cbf6.998
cmp word [ecx], 0x78
je 0x52cb81
cmp word [eax], 0x78
jmp 0x52cb7b
test esi, esi
jne case.0x52cbf6.998
mov ecx, dword [ebx]
movzx eax, word [ecx + 2]
lea esi, [ecx + eax*2]
mov dword [ebx], esi
cmp word [esi], 0x78
je 0x52f23c
mov eax, dword [esp + 0x10]
xor esi, esi
jmp 0x525b6b
cmp esi, 0xfffffc19
je 0x52ec08
test esi, esi
je 0x52cbbd
cmp esi, 0xfffffc1f
jne case.0x52cbf6.998
mov ecx, dword [ebx]
movzx eax, word [ecx + 2]
lea esi, [ecx + eax*2]
mov dword [ebx], esi
cmp word [esi], 0x78
je 0x52f2f2
mov eax, dword [esp + 0x10]
xor esi, esi
jmp 0x525b6b
test esi, esi
jg 0x52cbfd
je case.0x52cbf6.993
lea eax, [esi + 0x3e7]
cmp eax, 6
ja case.0x52cbf6.998
jmp dword [eax*4 + 0x5301fc]
mov eax, esi
sub eax, 1
mov eax, dword [esp + 0x10]
jne 0x525b6b
mov eax, dword [esp + 0x10]
xor esi, esi
jmp 0x525b6b
test esi, esi
jg 0x52cc37
je case.0x52cc30.993
lea eax, [esi + 0x3e7]
cmp eax, 6
ja case.0x52cbf6.998
jmp dword [eax*4 + 0x530218]
mov eax, esi
sub eax, 1
jne case.0x52cbf6.998
mov eax, dword [ebx + 0x20]
test eax, eax
je 0x52ecf0
mov ecx, dword [ebx]
nop
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [ebx], ecx
cmp word [ecx], 0x78
je 0x52cc50
movzx eax, word [ecx]
movzx eax, byte [eax + 0x5ae4a0]
jmp 0x52ecf5
test esi, esi
jne case.0x52cbf6.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 0x525820
test esi, esi
je 0x52c5ca
mov eax, dword [esp + 0x10]
jmp 0x525b6b
cmp esi, 0xfffffc1a
jne 0x52ccd1
mov dword [ebx + 0x24], 1
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebx + 4]
jne 0x52ef70
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 0x52ccc0
jmp 0x52cd14
cmp esi, 0xfffffc1f
jne 0x52ccf7
mov ecx, dword [ebx]
movzx eax, word [ecx + 2]
lea eax, [ecx + eax*2]
cmp dword [ebp + 0x6c], eax
jae case.0x52cbf6.998
cmp word [ecx], 0x78
je 0x52ccff
cmp word [eax], 0x78
jmp 0x52ccf9
test esi, esi
jne case.0x52cbf6.998
mov ecx, dword [ebx]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [ebx], ecx
cmp word [ecx], 0x78
je 0x52f1fd
cmp dword [ebx + 0x24], 0
jne 0x52cd46
cmp dword [ebx + 0x28], 0
jne 0x52cd46
mov eax, dword [esp + 0x10]
xor esi, esi
jmp 0x525b6b
test esi, esi
jne case.0x52cbf6.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 0x52cd36
mov edi, dword [esp + 0x68]
lea eax, [ecx + 4]
mov dword [ebx], eax
jmp 0x525820
test esi, esi
jne case.0x52cbf6.998
add dword [ebx], 2
mov edi, dword [esp + 0x68]
jmp 0x525820
mov edx, dword [ebx + 4]
movzx eax, word [edx + 2]
lea ecx, [edx + eax*2]
lea eax, [esi + 0x3e5]
cmp eax, 4
ja 0x52cdb0
mov eax, dword [ebx + 0x20]
xor eax, 0x40000
cmp dword [ebp + 0x74], eax
jne 0x52cdb0
cmp esi, 0xfffffc1f
jne case.default.0x52d389
cmp dword [ebp + 0x6c], ecx
jae case.default.0x52d389
cmp word [edx], 0x78
je 0x52cdbc
cmp word [ecx], 0x78
je 0x52cdbc
jmp case.default.0x52d389
mov edx, dword [esp + 0x14]
test esi, esi
jne case.0x52cbf6.998
mov dword [ebx + 4], ecx
cmp word [ecx], 0x78
je 0x52f2c3
jmp case.default.0x52d389
cmp esi, 0xfffffc1e
jne case.0x52cbf6.998
mov eax, dword [ebx]
push dword [ebp + 0x70]
add eax, 4
push eax
call fcn.0053c440
mov edx, dword [esp + 0x1c]
add esp, 8
test eax, eax
jne case.0x52cbf6.998
mov eax, dword [ebx + 0x38]
mov esi, 0xfffffc1d
mov dword [ebp + 0x70], eax
mov eax, dword [esp + 0x10]
jmp 0x525b6b
test esi, esi
jne case.0x52cbf6.998
mov eax, dword [ebx + 0x44]
mov esi, 0xfffffc1b
mov dword [ebp + 0x74], eax
mov eax, dword [esp + 0x10]
jmp 0x525b6b
test esi, esi
jne case.0x52cbf6.998
mov eax, dword [ebx + 0x44]
mov esi, 0xfffffc1c
mov dword [ebp + 0x74], eax
mov eax, dword [esp + 0x10]
jmp 0x525b6b
test esi, esi
jne case.0x52cbf6.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 0x525b6b
test esi, esi
jne case.0x52cbf6.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 0x525b6b
test esi, esi
jne case.0x52cbf6.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 0x525b6b
test esi, esi
jne case.0x52cbf6.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x52d389
lea eax, [esp + 0x4c]
push eax
push ebp
push ebx
push dword [ebx + 0x28]
push dword [ebx + 0x14]
call fcn.00530570
add esp, 0x14
test eax, eax
je 0x52ef7a
jle 0x52ced7
mov ecx, dword [ebp + 0x54]
mov dword [edi + 0x38], ecx
jmp 0x52ceda
mov ecx, dword [edi + 0x38]
cmp ecx, dword [ebp + 0x54]
jb case.default.0x52d389
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x52d389
cmp ecx, dword [ebp + 0x5c]
ja 0x52cf01
cmp dword [ebp + 0x24], 0
je case.default.0x52d389
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x526c42
jmp case.default.0x52d389
test esi, esi
jne case.0x52cbf6.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.0x52d389
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x15
jmp 0x52f432
test esi, esi
jne case.0x52cbf6.998
mov esi, dword [ebx + 4]
cmp dword [ebx + 0x38], esi
je case.default.0x52d389
mov dword [ebx + 0x38], esi
dec dword [ebx + 0x24]
mov edi, dword [ebx + 0x20]
cmp edi, dword [ebx + 0x24]
jae 0x52cf86
lea eax, [esp + 0x50]
push eax
push ebp
push ebx
push dword [ebx + 0x28]
push dword [ebx + 0x14]
call fcn.00530570
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 0x52cf61
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x16
jmp 0x52f432
test esi, esi
jne case.0x52cbf6.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x52d389
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x52cfe5
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x52d389
cmp edx, dword [ebp + 0x5c]
ja 0x52cfd0
cmp dword [ebp + 0x24], esi
je case.default.0x52d389
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x526c42
jmp case.default.0x52d389
movzx ecx, word [edx]
lea eax, [edx + 2]
mov dword [ebx + 0x38], eax
cmp ecx, 0xff
jbe 0x52d00b
cmp byte [ebx + 0x31], 0x6e
je case.default.0x52d389
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x17
jmp 0x52f432
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 0x52d000
jmp case.default.0x52d389
test esi, esi
jne case.0x52cbf6.998
add dword [ebx + 0x38], 0xfffffffe
jmp 0x52d039
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebx + 4]
jb case.default.0x52d389
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x18
jmp 0x52f432
test esi, esi
jne case.0x52cbf6.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x52d389
mov ecx, dword [ebx + 0x38]
cmp ecx, dword [ebp + 0x54]
jb 0x52d0a4
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x52d389
cmp ecx, dword [ebp + 0x5c]
ja 0x52d08f
cmp dword [ebp + 0x24], esi
je case.default.0x52d389
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x526c42
jmp case.default.0x52d389
movzx eax, word [ecx]
cmp dword [ebx + 0x28], eax
je 0x52d0b5
cmp dword [ebx + 0x2c], eax
jne case.default.0x52d389
lea eax, [ecx + 2]
mov dword [ebx + 0x38], eax
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
mov byte [eax + 0x30], 0x19
jmp 0x52f432
add dword [ebx + 0x38], 0xfffffffe
test esi, esi
je 0x5267ca
mov eax, dword [esp + 0x10]
jmp 0x525b6b
test esi, esi
jne case.0x52cbf6.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x52d389
mov esi, dword [ebx + 0x38]
cmp esi, dword [ebp + 0x54]
jb 0x52d134
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x52d389
cmp esi, dword [ebp + 0x5c]
ja 0x52d11f
cmp dword [ebp + 0x24], 0
je case.default.0x52d389
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x526c42
jmp case.default.0x52d389
movzx ecx, word [esi]
lea eax, [esi + 2]
mov dword [ebx + 0x38], eax
cmp dword [ebx + 0x28], ecx
jne case.default.0x52d389
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
mov byte [eax + 0x30], 0x1b
jmp 0x52f432
add dword [ebx + 0x38], 0xfffffffe
test esi, esi
je 0x5268d2
mov eax, dword [esp + 0x10]
jmp 0x525b6b
test esi, esi
jne case.0x52cbf6.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x52d389
mov ecx, dword [ebx + 0x38]
cmp ecx, dword [ebp + 0x54]
jb 0x52d1be
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x52d389
cmp ecx, dword [ebp + 0x5c]
ja 0x52d1a9
cmp dword [ebp + 0x24], esi
je case.default.0x52d389
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x526c42
jmp case.default.0x52d389
movzx eax, word [ecx]
cmp dword [ebx + 0x28], eax
je case.default.0x52d389
cmp dword [ebx + 0x2c], eax
je case.default.0x52d389
lea eax, [ecx + 2]
mov dword [ebx + 0x38], eax
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x1d
jmp 0x52f432
test esi, esi
jne case.0x52cbf6.998
add dword [ebx + 0x38], 0xfffffffe
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebx + 4]
jne 0x52ef9d
mov edi, dword [esp + 0x68]
jmp 0x525820
test esi, esi
jne case.0x52cbf6.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x52d389
mov esi, dword [ebx + 0x38]
cmp esi, dword [ebp + 0x54]
jb 0x52d25a
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x52d389
cmp esi, dword [ebp + 0x5c]
ja 0x52d245
cmp dword [ebp + 0x24], 0
je case.default.0x52d389
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x526c42
jmp case.default.0x52d389
movzx ecx, word [esi]
lea eax, [esi + 2]
mov dword [ebx + 0x38], eax
cmp dword [ebx + 0x28], ecx
je case.default.0x52d389
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x1f
jmp 0x52f432
test esi, esi
jne case.0x52cbf6.998
add dword [ebx + 0x38], 0xfffffffe
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebx + 4]
jne 0x52efa8
mov edi, dword [esp + 0x68]
jmp 0x525820
test esi, esi
jne case.0x52cbf6.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x52d389
mov edx, dword [ebx + 0x38]
mov ecx, dword [ebp + 0x54]
cmp edx, ecx
jb 0x52d2ee
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x52d389
cmp edx, dword [ebp + 0x5c]
ja 0x52d2d9
cmp dword [ebp + 0x24], esi
je case.default.0x52d389
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x526c42
jmp case.default.0x52d389
mov edi, dword [ebx + 0x28]
cmp edi, 0xc
jne 0x52d357
mov esi, dword [ebp + 0x88]
lea eax, [ebp + 0x8c]
test esi, esi
je 0x52d326
push dword [esp + 0x14]
push eax
push ecx
push esi
push edx
call fcn.0053cb00
add esp, 0x14
test eax, eax
jne case.default.0x52d389
mov edx, dword [ebx + 0x38]
mov edi, dword [ebx + 0x28]
jmp 0x52d357
mov esi, dword [eax]
lea eax, [esi + esi]
sub ecx, eax
cmp edx, ecx
ja 0x52d357
mov ax, word [edx]
cmp ax, word [ebp + 0x90]
jne 0x52d357
cmp esi, 1
je case.default.0x52d389
mov ax, word [edx + 2]
cmp ax, word [ebp + 0x92]
je case.default.0x52d389
movzx ecx, word [edx]
lea eax, [edi - 6]
lea esi, [edx + 2]
mov dword [ebx + 0x38], esi
cmp eax, 0xf
ja case.0x52d36c.15
jmp dword [eax*4 + 0x530234]
cmp ecx, 0x85
ja 0x52d390
je case.0x52d389.11
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x52d389
jmp dword [ecx*4 + 0x530274]
sub ecx, 0x2028
je case.0x52d389.11
sub ecx, 1
jne case.default.0x52d389
cmp word [ebp + 0x3e], 2
jne case.0x52d36c.13
jmp case.default.0x52d389
cmp ecx, 0x2000
ja 0x52d401
je case.default.0x52d389
cmp ecx, 0xa0
ja 0x52d3e4
je case.default.0x52d389
cmp ecx, 9
je case.default.0x52d389
cmp ecx, 0x20
jne case.0x52d36c.13
jmp case.default.0x52d389
cmp ecx, 0x1680
je case.default.0x52d389
cmp ecx, 0x180e
jne case.0x52d36c.13
jmp case.default.0x52d389
cmp ecx, 0x3000
ja case.0x52d36c.13
je case.default.0x52d389
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x52d36c.13
movzx eax, byte [ecx + 0x53028c]
jmp dword [eax*4 + 0x530284]
cmp ecx, 0x2000
ja 0x52d480
je case.0x52d36c.13
cmp ecx, 0xa0
ja 0x52d463
je case.0x52d36c.13
cmp ecx, 9
je case.0x52d36c.13
cmp ecx, 0x20
je case.0x52d36c.13
jmp case.default.0x52d389
cmp ecx, 0x1680
je case.0x52d36c.13
cmp ecx, 0x180e
je case.0x52d36c.13
jmp case.default.0x52d389
cmp ecx, 0x3000
ja case.default.0x52d389
je case.0x52d36c.13
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.default.0x52d389
movzx eax, byte [ecx + 0x5302f4]
jmp dword [eax*4 + 0x5302ec]
cmp ecx, 0x85
ja 0x52d4d0
je case.default.0x52d389
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x52d36c.13
jmp dword [ecx*4 + 0x530354]
sub ecx, 0x2028
je case.default.0x52d389
sub ecx, 1
jne case.0x52d36c.13
jmp case.default.0x52d389
cmp ecx, 0x85
ja 0x52d50b
je case.0x52d36c.13
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x52d389
jmp dword [ecx*4 + 0x530364]
sub ecx, 0x2028
je case.0x52d36c.13
sub ecx, 1
je case.0x52d36c.13
jmp case.default.0x52d389
cmp ecx, 0xff
ja case.0x52d36c.13
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 8
je case.0x52d36c.13
jmp case.default.0x52d389
cmp ecx, 0xff
ja case.default.0x52d389
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 8
jne case.0x52d36c.13
jmp case.default.0x52d389
cmp ecx, 0xff
ja case.0x52d36c.13
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 1
je case.0x52d36c.13
jmp case.default.0x52d389
cmp ecx, 0xff
ja case.default.0x52d389
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 1
jne case.0x52d36c.13
jmp case.default.0x52d389
cmp ecx, 0xff
ja case.0x52d36c.13
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 0x10
je case.0x52d36c.13
jmp case.default.0x52d389
cmp ecx, 0xff
ja case.default.0x52d389
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 0x10
jne case.0x52d36c.13
jmp case.default.0x52d389
test esi, esi
jne case.0x52cbf6.998
mov eax, dword [ebx + 0x38]
add eax, 0xfffffffe
mov dword [ebx + 0x38], eax
mov ecx, eax
cmp dword [ebx + 0x28], 0x11
jne 0x52d60c
cmp eax, dword [ebx + 4]
jbe 0x52d60c
cmp word [eax], 0xa
jne 0x52d60c
cmp word [eax - 2], 0xd
lea edx, [eax - 2]
jne 0x52d60c
mov dword [ebx + 0x38], edx
mov ecx, edx
cmp ecx, dword [ebx + 4]
je 0x525814
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x22
jmp 0x52f432
test esi, esi
jne case.0x52cbf6.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x52d389
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x52d674
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x52d389
cmp edx, dword [ebp + 0x5c]
ja 0x52d65f
cmp dword [ebp + 0x24], esi
je case.default.0x52d389
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x526c42
jmp case.default.0x52d389
movzx ecx, word [edx]
add edx, 2
mov esi, dword [esp + 0x14]
mov dword [ebx + 0x38], edx
test esi, esi
je 0x52d6b2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x52d6b2
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.0053d1f0
add esp, 0xc
test eax, eax
jne 0x52f01b
jmp case.default.0x52d389
test esi, esi
jne case.0x52cbf6.998
mov ecx, dword [ebx + 0x38]
lea edx, [ecx - 2]
mov dword [ebx + 0x38], edx
cmp ecx, dword [ebx + 4]
jbe case.default.0x52d389
cmp dword [esp + 0x14], esi
je 0x527604
mov ax, word [edx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x527604
lea eax, [edx - 2]
mov dword [ebx + 0x38], eax
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x65
jmp 0x52f432
test esi, esi
jne case.0x52cbf6.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x52d389
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x52d76e
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x52d389
cmp edx, dword [ebp + 0x5c]
ja 0x52d759
cmp dword [ebp + 0x24], esi
je case.default.0x52d389
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x526c42
jmp case.default.0x52d389
movzx ecx, word [edx]
add edx, 2
mov eax, ecx
mov dword [ebx + 0x38], edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x52d7a4
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 0x52d7c1
cmp byte [ebx + 0x31], 0x6e
je case.default.0x52d389
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xc8
jmp 0x52f432
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 0x52d7b6
jmp case.default.0x52d389
test esi, esi
jne case.0x52cbf6.998
mov ecx, dword [ebx + 0x38]
lea edx, [ecx - 2]
mov dword [ebx + 0x38], edx
cmp ecx, dword [ebx + 4]
jbe case.default.0x52d389
mov ax, word [edx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x52f02a
lea eax, [edx - 2]
mov dword [ebx + 0x38], eax
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xc9
jmp 0x52f432
test esi, esi
jne case.0x52cbf6.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x52d389
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 0x52d8b8
mov eax, dword [esp + 0x10]
mov ecx, ebx
mov edx, dword [eax + 8]
sub esi, 4
jb 0x52d872
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x52d87b
add ecx, 4
add edx, 4
sub esi, 4
jae 0x52d861
cmp esi, 0xfffffffc
je 0x52f035
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x52d8b8
cmp esi, 0xfffffffd
je 0x52f035
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x52d8b8
cmp esi, 0xfffffffe
je 0x52f035
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x52d8b8
cmp esi, 0xffffffff
je 0x52f035
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x52f035
mov ecx, dword [esp + 0x10]
mov edi, dword [ecx + 0x14]
test edi, edi
je 0x52d937
lea esi, [edi + edi]
mov eax, ebp
sub eax, esi
cmp ebx, eax
ja 0x52d937
lea edx, [ecx + 0x32]
mov ecx, ebx
sub esi, 4
jb 0x52d8f1
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x52d8fa
add ecx, 4
add edx, 4
sub esi, 4
jae 0x52d8e0
cmp esi, 0xfffffffc
je 0x52f035
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x52d937
cmp esi, 0xfffffffd
je 0x52f035
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x52d937
cmp esi, 0xfffffffe
je 0x52f035
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x52d937
cmp esi, 0xffffffff
je 0x52f035
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x52f035
cmp ebx, ebp
mov ebp, dword [esp + 0x6c]
jb case.default.0x52d389
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x52d389
cmp ebx, dword [ebp + 0x5c]
ja 0x52d961
cmp dword [ebp + 0x24], 0
je case.default.0x52d389
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x526c42
jmp case.default.0x52d389
test esi, esi
jne case.0x52cbf6.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 0x52d9a4
add ecx, 0xfffffffe
mov dword [ebx + 0x38], ecx
cmp ecx, dword [eax + 4]
jbe 0x525814
mov esi, dword [eax]
mov byte [eax + 0x30], 0xcb
jmp 0x52f436
test esi, esi
jne case.0x52cbf6.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x52d389
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x52da0c
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x52d389
cmp edx, dword [ebp + 0x5c]
ja 0x52d9f7
cmp dword [ebp + 0x24], esi
je case.default.0x52d389
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x526c42
jmp case.default.0x52d389
movzx ecx, word [edx]
add edx, 2
mov eax, ecx
mov dword [ebx + 0x38], edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x52da42
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.0x52d389
cmp dword [ebx + 0x2c], ecx
je case.default.0x52d389
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xcc
jmp 0x52f432
test esi, esi
jne case.0x52cbf6.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 0x52da8d
add ecx, 0xfffffffe
mov dword [ebx + 0x38], ecx
cmp ecx, dword [eax + 4]
ja 0x52f04e
mov edi, dword [esp + 0x68]
jmp 0x525820
test esi, esi
jne case.0x52cbf6.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x52d389
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x52daf3
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x52d389
cmp edx, dword [ebp + 0x5c]
ja 0x52dade
cmp dword [ebp + 0x24], esi
je case.default.0x52d389
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x526c42
jmp case.default.0x52d389
movzx ecx, word [edx]
add edx, 2
mov eax, ecx
mov dword [ebx + 0x38], edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x52db29
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.0x52d389
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xce
jmp 0x52f432
test esi, esi
jne case.0x52cbf6.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 0x52db67
lea eax, [ecx - 2]
mov dword [ebx + 0x38], eax
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebx + 4]
ja 0x52f059
mov edi, dword [esp + 0x68]
jmp 0x525820
test esi, esi
jne case.0x52cbf6.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x52d389
mov ecx, dword [ebx + 0x38]
cmp ecx, dword [ebp + 0x54]
jb 0x52dbd0
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x52d389
cmp ecx, dword [ebp + 0x5c]
ja 0x52dbbb
cmp dword [ebp + 0x24], esi
je case.default.0x52d389
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x526c42
jmp case.default.0x52d389
movzx eax, word [ecx]
add ecx, 2
mov edx, dword [esp + 0x14]
mov dword [ebx + 0x38], ecx
test edx, edx
je 0x52dbf3
and eax, 0xfc00
cmp eax, 0xd800
jne 0x52dbf3
lea eax, [ecx + 2]
mov dword [ebx + 0x38], eax
cmp dword [ebx + 0x28], 0xf
jne case.0x52eeda.0
mov eax, dword [esp + 0x10]
xor esi, esi
jmp 0x525b6b
test esi, esi
jne case.0x52cbf6.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x52d389
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x52dc5c
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x52d389
cmp edx, dword [ebp + 0x5c]
ja 0x52dc47
cmp dword [ebp + 0x24], esi
je case.default.0x52d389
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x526c42
jmp case.default.0x52d389
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [ebx + 0x38], edx
je 0x52dc99
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x52dc99
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 + 0x5b4db0]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5b91b0]
lea eax, [eax + eax*2]
mov al, byte [eax*4 + 0x5b0ba1]
cmp al, 9
je 0x52dcd0
cmp al, 5
je 0x52dcd0
cmp al, 8
je 0x52dcd0
xor ecx, ecx
jmp 0x52dcd5
mov ecx, 1
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.default.0x52d389
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xd1
jmp 0x52f432
test esi, esi
jne case.0x52cbf6.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x52d389
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x52dd45
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x52d389
cmp edx, dword [ebp + 0x5c]
ja 0x52dd30
cmp dword [ebp + 0x24], esi
je case.default.0x52d389
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x526c42
jmp case.default.0x52d389
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [ebx + 0x38], edx
je 0x52dd82
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x52dd82
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 + 0x5b4db0]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5b91b0]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5b0ba1]
mov eax, dword [eax*4 + 0x5ae640]
cmp eax, dword [ebx + 0x2c]
sete cl
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.default.0x52d389
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xd2
jmp 0x52f432
test esi, esi
jne case.0x52cbf6.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x52d389
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x52de29
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x52d389
cmp edx, dword [ebp + 0x5c]
ja 0x52de14
cmp dword [ebp + 0x24], esi
je case.default.0x52d389
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x526c42
jmp case.default.0x52d389
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [ebx + 0x38], edx
je 0x52de66
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x52de66
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 + 0x5b4db0]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5b91b0]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5b0ba1]
cmp eax, dword [ebx + 0x2c]
sete cl
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.default.0x52d389
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xd3
jmp 0x52f432
test esi, esi
jne case.0x52cbf6.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x52d389
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x52df06
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x52d389
cmp edx, dword [ebp + 0x5c]
ja 0x52def1
cmp dword [ebp + 0x24], esi
je case.default.0x52d389
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x526c42
jmp case.default.0x52d389
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [ebx + 0x38], edx
je 0x52df43
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x52df43
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 + 0x5b4db0]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5b91b0]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5b0ba0]
cmp eax, dword [ebx + 0x2c]
sete cl
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.default.0x52d389
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xd4
jmp 0x52f432
test esi, esi
jne case.0x52cbf6.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x52d389
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x52dfe3
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x52d389
cmp edx, dword [ebp + 0x5c]
ja 0x52dfce
cmp dword [ebp + 0x24], esi
je case.default.0x52d389
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x526c42
jmp case.default.0x52d389
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [ebx + 0x38], edx
je 0x52e020
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x52e020
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 + 0x5b4db0]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5b91b0]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5b0ba1]
mov eax, dword [eax*4 + 0x5ae640]
cmp eax, 1
je 0x52e05d
cmp eax, 3
je 0x52e05d
xor ecx, ecx
jmp 0x52e062
mov ecx, 1
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.default.0x52d389
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xd5
jmp 0x52f432
test esi, esi
jne case.0x52cbf6.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x52d389
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x52e0d2
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x52d389
cmp edx, dword [ebp + 0x5c]
ja 0x52e0bd
cmp dword [ebp + 0x24], esi
je case.default.0x52d389
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x526c42
jmp case.default.0x52d389
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [ebx + 0x38], edx
je 0x52e10f
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x52e10f
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 0x52e129
je case.0x52e1d4.8193
lea eax, [ecx - 9]
cmp eax, 4
ja case.0x52e1d4.8203
jmp dword [eax*4 + 0x530374]
cmp ecx, 0x2000
ja 0x52e1b8
je case.0x52e1d4.8193
cmp ecx, 0x1680
ja 0x52e1b0
je case.0x52e1d4.8193
mov eax, ecx
sub eax, 0x85
je case.0x52e1d4.8193
sub eax, 0x1b
je case.0x52e1d4.8193
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5b4db0]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5b91b0]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5b0ba1]
cmp dword [eax*4 + 0x5ae640], 6
sete cl
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.default.0x52d389
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xd6
jmp 0x52f432
cmp ecx, 0x180e
jmp 0x52e159
cmp ecx, 0x3000
ja case.0x52e1d4.8203
je case.0x52e1d4.8193
lea eax, [ecx - 0x2001]
cmp eax, 0x5e
ja case.0x52e1d4.8203
movzx eax, byte [eax + 0x530390]
jmp dword [eax*4 + 0x530388]
cmp dword [ebx + 0x28], 0xf
jne case.0x52eeda.7
jmp case.default.0x52d389
test esi, esi
jne case.0x52cbf6.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x52d389
mov ecx, dword [ebx + 0x38]
cmp ecx, dword [ebp + 0x54]
jb 0x52e23a
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x52d389
cmp ecx, dword [ebp + 0x5c]
ja 0x52e225
cmp dword [ebp + 0x24], esi
je case.default.0x52d389
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x526c42
jmp case.default.0x52d389
movzx edx, word [ecx]
add ecx, 2
cmp dword [esp + 0x14], 0
mov dword [ebx + 0x38], ecx
je 0x52e277
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x52e277
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 + 0x5b4db0]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5b91b0]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5b0ba1]
mov eax, dword [eax*4 + 0x5ae640]
cmp eax, 1
je 0x52e2bb
cmp eax, 3
je 0x52e2bb
cmp edx, 0x5f
je 0x52e2bb
xor ecx, ecx
jmp 0x52e2c0
mov ecx, 1
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.default.0x52d389
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xd7
jmp 0x52f432
test esi, esi
jne case.0x52cbf6.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x52d389
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x52e330
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x52d389
cmp edx, dword [ebp + 0x5c]
ja 0x52e31b
cmp dword [ebp + 0x24], esi
je case.default.0x52d389
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x526c42
jmp case.default.0x52d389
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [ebx + 0x38], edx
je 0x52e36d
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x52e36d
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 + 0x5b05d8]
lea eax, [eax*4 + 0x5b05d8]
cmp ecx, edx
jb 0x52e38f
lea eax, [eax + 4]
cmp ecx, edx
je 0x52e3a4
mov edx, dword [eax]
cmp ecx, edx
jae 0x52e382
cmp dword [ebx + 0x28], 0xf
jne case.default.0x52d389
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xd8
jmp 0x52f432
cmp dword [ebx + 0x28], 0xf
jne case.0x52eeda.10
jmp case.default.0x52d389
test esi, esi
jne case.0x52cbf6.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x52d389
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x52e403
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x52d389
cmp edx, dword [ebp + 0x5c]
ja 0x52e3ee
cmp dword [ebp + 0x24], esi
je case.default.0x52d389
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x526c42
jmp case.default.0x52d389
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [ebx + 0x38], edx
je 0x52e440
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x52e440
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 0x52e46b
cmp ecx, 0x40
je 0x52e46b
cmp ecx, 0x60
je 0x52e46b
cmp ecx, 0xa0
jb 0x52e45f
cmp ecx, 0xd7ff
jbe 0x52e46b
cmp ecx, 0xe000
jae 0x52e46b
xor ecx, ecx
jmp 0x52e470
mov ecx, 1
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.default.0x52d389
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xd9
jmp 0x52f432
test esi, esi
jne case.0x52cbf6.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x52d389
mov ecx, dword [ebx + 0x38]
cmp ecx, dword [ebp + 0x54]
jb 0x52f06f
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x52d389
cmp ecx, dword [ebp + 0x5c]
ja 0x52e4cf
cmp dword [ebp + 0x24], esi
je case.default.0x52d389
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x526c42
jmp case.default.0x52d389
test esi, esi
jne case.0x52cbf6.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x52d389
mov edx, dword [ebx + 0x38]
mov ecx, dword [ebp + 0x54]
cmp edx, ecx
jb 0x52e53a
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x52d389
cmp edx, dword [ebp + 0x5c]
ja 0x52e525
cmp dword [ebp + 0x24], esi
je case.default.0x52d389
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x526c42
jmp case.default.0x52d389
mov edi, dword [ebx + 0x28]
cmp edi, 0xc
jne 0x52e5a3
mov esi, dword [ebp + 0x88]
lea eax, [ebp + 0x8c]
test esi, esi
je 0x52e572
push dword [esp + 0x14]
push eax
push ecx
push esi
push edx
call fcn.0053cb00
add esp, 0x14
test eax, eax
jne case.default.0x52d389
mov edx, dword [ebx + 0x38]
mov edi, dword [ebx + 0x28]
jmp 0x52e5a3
mov esi, dword [eax]
lea eax, [esi + esi]
sub ecx, eax
cmp edx, ecx
ja 0x52e5a3
mov ax, word [edx]
cmp ax, word [ebp + 0x90]
jne 0x52e5a3
cmp esi, 1
je case.default.0x52d389
mov ax, word [edx + 2]
cmp ax, word [ebp + 0x92]
je case.default.0x52d389
movzx ecx, word [edx]
add edx, 2
mov eax, ecx
mov dword [ebx + 0x38], edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x52e5d9
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.0x52d36c.15
jmp dword [eax*4 + 0x5303f0]
cmp ecx, 0x85
ja 0x52e609
je case.0x52e602.11
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x52d389
jmp dword [ecx*4 + 0x530430]
sub ecx, 0x2028
je case.0x52e602.11
sub ecx, 1
jne case.default.0x52d389
cmp word [ebp + 0x3e], 2
jne case.0x52e5e5.13
jmp case.default.0x52d389
cmp ecx, 0x2000
ja 0x52e67a
je case.default.0x52d389
cmp ecx, 0xa0
ja 0x52e65d
je case.default.0x52d389
cmp ecx, 9
je case.default.0x52d389
cmp ecx, 0x20
jne case.0x52e5e5.13
jmp case.default.0x52d389
cmp ecx, 0x1680
je case.default.0x52d389
cmp ecx, 0x180e
jne case.0x52e5e5.13
jmp case.default.0x52d389
cmp ecx, 0x3000
ja case.0x52e5e5.13
je case.default.0x52d389
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x52e5e5.13
movzx eax, byte [ecx + 0x530448]
jmp dword [eax*4 + 0x530440]
cmp ecx, 0x2000
ja 0x52e6f9
je case.0x52e5e5.13
cmp ecx, 0xa0
ja 0x52e6dc
je case.0x52e5e5.13
cmp ecx, 9
je case.0x52e5e5.13
cmp ecx, 0x20
je case.0x52e5e5.13
jmp case.default.0x52d389
cmp ecx, 0x1680
je case.0x52e5e5.13
cmp ecx, 0x180e
je case.0x52e5e5.13
jmp case.default.0x52d389
cmp ecx, 0x3000
ja case.default.0x52d389
je case.0x52e5e5.13
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.default.0x52d389
movzx eax, byte [ecx + 0x5304b0]
jmp dword [eax*4 + 0x5304a8]
cmp ecx, 0x85
ja 0x52e749
je case.default.0x52d389
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x52e5e5.13
jmp dword [ecx*4 + 0x530510]
sub ecx, 0x2028
je case.default.0x52d389
sub ecx, 1
jne case.0x52e5e5.13
jmp case.default.0x52d389
cmp ecx, 0x85
ja 0x52e784
je case.0x52e5e5.13
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x52d389
jmp dword [ecx*4 + 0x530520]
sub ecx, 0x2028
je case.0x52e5e5.13
sub ecx, 1
je case.0x52e5e5.13
jmp case.default.0x52d389
cmp ecx, 0x100
jae case.0x52e5e5.13
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 8
je case.0x52e5e5.13
jmp case.default.0x52d389
cmp ecx, 0x100
jae case.default.0x52d389
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 8
jne case.0x52e5e5.13
jmp case.default.0x52d389
cmp ecx, 0x100
jae case.0x52e5e5.13
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 1
je case.0x52e5e5.13
jmp case.default.0x52d389
cmp ecx, 0x100
jae case.default.0x52d389
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 1
jne case.0x52e5e5.13
jmp case.default.0x52d389
cmp ecx, 0x100
jae case.0x52e5e5.13
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 0x10
je case.0x52e5e5.13
jmp case.default.0x52d389
cmp ecx, 0x100
jae case.default.0x52d389
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 0x10
jne case.0x52e5e5.13
jmp case.default.0x52d389
test esi, esi
jne case.0x52cbf6.998
mov edx, dword [ebx + 0x38]
add edx, 0xfffffffe
mov dword [ebx + 0x38], edx
cmp dword [esp + 0x14], esi
jne 0x52ed16
movzx ecx, word [edx]
jmp 0x52ed5f
test esi, esi
jne case.0x52cbf6.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 0x52e89f
add ecx, 0xfffffffe
mov dword [ebx + 0x38], ecx
cmp dword [ebx + 0x28], 0x11
mov eax, ecx
jne 0x52e8c1
cmp ecx, dword [ebx + 4]
jbe 0x52e8c1
cmp word [ecx], 0xa
jne 0x52e8c1
cmp word [ecx - 2], 0xd
lea edx, [ecx - 2]
jne 0x52e8c1
mov dword [ebx + 0x38], edx
mov eax, edx
cmp eax, dword [ebx + 4]
jbe 0x525814
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xdd
jmp 0x52f432
test esi, esi
jne case.0x52cbf6.998
mov ecx, dword [ebx + 0x38]
add ecx, 0xfffffffe
mov edx, ecx
mov dword [ebx + 0x38], ecx
cmp dword [esp + 0x14], esi
je 0x52e909
mov ax, word [edx]
mov esi, 0xfc00
and ax, si
mov esi, 0xdc00
cmp ax, si
jne 0x52e909
lea ecx, [edx - 2]
mov dword [ebx + 0x38], ecx
cmp ecx, dword [ebx + 4]
jbe 0x525814
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xde
jmp 0x52f432
test esi, esi
jne case.0x52cbf6.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x52d389
mov ecx, dword [ebx + 0x38]
cmp ecx, dword [ebp + 0x54]
jb 0x52e971
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x52d389
cmp ecx, dword [ebp + 0x5c]
ja 0x52e95c
cmp dword [ebp + 0x24], esi
je case.default.0x52d389
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x526c42
jmp case.default.0x52d389
movzx edx, word [ecx]
add ecx, 2
cmp dword [esp + 0x14], 0
mov dword [ebx + 0x38], ecx
je 0x52e9ae
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x52e9ae
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 + 0x5b4db0]
shl eax, 7
add eax, edx
movzx eax, word [eax*2 + 0x5b91b0]
lea eax, [eax + eax*2]
movzx edx, word [eax*4 + 0x5b0baa]
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 + 0x5b0050]
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.0x52d389
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xdf
jmp 0x52f432
test esi, esi
jne case.0x52cbf6.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x52d389
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x52ea6f
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x52d389
cmp edx, dword [ebp + 0x5c]
ja 0x52ea5a
cmp dword [ebp + 0x24], esi
je case.default.0x52d389
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x526c42
jmp case.default.0x52d389
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [ebx + 0x38], edx
je 0x52eaac
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x52eaac
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 + 0x5b4db0]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5b91b0]
lea eax, [eax + eax*2]
movzx eax, word [eax*4 + 0x5b0ba8]
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.0x52d389
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xe0
jmp 0x52f432
test esi, esi
jne case.0x52cbf6.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x52d389
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x52eb4f
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x52d389
cmp edx, dword [ebp + 0x5c]
ja 0x52eb3a
cmp dword [ebp + 0x24], esi
je case.default.0x52d389
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x526c42
jmp case.default.0x52d389
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [ebx + 0x38], edx
je 0x52eb8c
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x52eb8c
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 + 0x5b4db0]
shl eax, 7
add eax, ecx
mov ecx, dword [ebx + 0x2c]
movzx eax, word [eax*2 + 0x5b91b0]
lea edx, [eax + eax*2]
movzx eax, byte [edx*4 + 0x5b0ba0]
cmp eax, ecx
je 0x52ebe7
movzx edx, word [edx*4 + 0x5b0ba8]
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 + 0x5b08a8], eax
jne 0x52ebe7
xor ecx, ecx
jmp 0x52ebec
mov ecx, 1
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.default.0x52d389
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xe1
jmp 0x52f432
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.0056f940
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 0x52ec31
lea eax, [ecx + 4]
mov dword [ebx], eax
jmp 0x525814
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 0x52ec50
mov edi, dword [esp + 0x68]
lea eax, [esi + 4]
mov dword [ebx], eax
jmp 0x525820
mov ecx, dword [ebx]
movzx eax, word [ecx + 2]
lea esi, [ecx + eax*2]
mov dword [ebx], esi
cmp word [esi], 0x78
je 0x52f31e
mov edi, dword [esp + 0x68]
lea eax, [esi + 4]
mov dword [ebx], eax
jmp 0x525820
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.0056f940
mov eax, dword [esi + 0x50]
add esp, 0xc
mov dword [ebx + 0x50], eax
jmp 0x52cc42
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 0x52ef22
xor eax, eax
cmp dword [ebx + 0x20], eax
sete al
jmp 0x52cc45
mov ebx, dword [esp + 0x10]
mov ecx, dword [ebx]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x5ae4a0]
jmp 0x52ecf5
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 0x525814
mov eax, 0x2008f
mov byte [ebx + 0x30], 0x23
mov dword [esp + 0x20], eax
jmp 0x52f432
movzx eax, word [edx]
mov esi, edx
mov ecx, eax
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x52ed32
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 0x52ed5f
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 + 0x5b4db0]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5b91b0]
lea eax, [eax + eax*2]
movzx edi, byte [eax*4 + 0x5b0ba2]
cmp edx, ebx
jbe 0x52ee30
mov ebp, dword [esp + 0x14]
movzx eax, word [edx - 2]
add edx, 0xfffffffe
mov ecx, eax
test ebp, ebp
je 0x52ede1
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x52edb6
movzx ecx, word [edx - 2]
sub edx, 2
movzx ecx, cx
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x52ede1
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 + 0x5b4db0]
shl eax, 7
add eax, ecx
mov ecx, edi
movzx eax, word [eax*2 + 0x5b91b0]
lea eax, [eax + eax*2]
movzx esi, byte [eax*4 + 0x5b0ba2]
mov eax, 1
shl eax, cl
test dword [esi*4 + 0x5ae600], eax
je 0x52ee2c
mov eax, dword [esp + 0x10]
mov edi, esi
mov dword [eax + 0x38], edx
cmp edx, ebx
ja 0x52ed96
mov ebp, dword [esp + 0x6c]
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x38]
cmp eax, dword [ecx + 4]
jbe 0x525814
mov esi, dword [ecx]
mov byte [ecx + 0x30], 0xdc
jmp 0x52f432
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 + 0x5ae4a0]
movzx eax, word [edx + 2]
ja 0x52f15f
add ecx, eax
lea eax, [edx + ecx*2]
mov dword [ebx], eax
jmp 0x525818
cmp dword [esp + 0x14], 0
mov ebx, dword [esp + 0x10]
jne 0x52da54
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x1d
jmp 0x52f432
cmp dword [esp + 0x14], 0
mov ebx, dword [esp + 0x10]
jne 0x52db32
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x1f
jmp 0x52f432
cmp dword [esp + 0x14], 0
jne 0x52d7b6
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x17
jmp 0x52f432
test ecx, ecx
js 0x52eee1
cmp ecx, 0xd
ja case.0x52d36c.15
jmp dword [ecx*4 + 0x530530]
cmp dword [ebx + 0x28], 0x16
je 0x52f0f0
test esi, esi
jne case.0x52e5e5.13
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x21
jmp 0x52f432
cmp ecx, 0x7e
je 0x52ef11
mov eax, 0x80
cmp cx, ax
je 0x52ef11
xor eax, eax
jmp 0x52ef16
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 + 0x5ae4a0]
mov byte [ebx + 0x30], 5
lea esi, [ecx + eax*2]
jmp 0x52f432
mov eax, dword [esp + 0x10]
cmp cl, 0x7b
jne 0x52ef5e
lea esi, [edx + 4]
mov byte [ebx + 0x30], 6
jmp 0x52f436
mov byte [ebx + 0x30], 7
jmp 0x52f436
mov byte [ebx + 0x30], 1
jmp 0x52f432
mov eax, dword [ebx + 8]
mov dword [ebx], eax
jmp 0x52f1fd
mov eax, dword [esp + 0x4c]
add eax, eax
add dword [ebx + 0x38], eax
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x14
jmp 0x52f432
mov ebx, dword [esp + 0x10]
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x14
jmp 0x52f432
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x1e
jmp 0x52f432
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x20
jmp 0x52f432
cmp esi, dword [ebp + 0x54]
jae case.0x52d36c.13
cmp word [esi], 0xa
jne case.0x52d36c.13
lea eax, [esi + 2]
mov dword [ebx + 0x38], eax
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x21
jmp 0x52f432
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.0x52d36c.13
cmp esi, dword [ebp + 0x54]
jb case.0x52d36c.13
cmp dword [ebp + 0x88], 0
jne case.0x52d36c.13
cmp dword [ebp + 0x8c], 2
jne case.0x52d36c.13
movzx eax, word [ebp + 0x90]
cmp ecx, eax
jne case.0x52d36c.13
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x526c42
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x21
jmp 0x52f432
mov ebx, dword [esp + 0x10]
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x64
jmp 0x52f432
mov ebx, dword [esp + 0x10]
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xc9
jmp 0x52f432
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 0x52f432
mov esi, dword [eax]
mov byte [eax + 0x30], 0xcd
jmp 0x52f432
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xcf
jmp 0x52f432
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xd0
jmp 0x52f432
movzx edx, word [ecx]
add ecx, 2
mov edi, dword [esp + 0x14]
mov esi, ecx
mov dword [ebx + 0x38], ecx
test edi, edi
je 0x52f0af
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x52f0af
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.0053c900
add esp, 0x18
mov dword [ebx + 0x38], eax
cmp eax, dword [ebp + 0x54]
jb 0x52f0f0
movzx ecx, word [ebp + 0x3c]
mov edx, ecx
test cx, cx
je 0x52f0f0
cmp eax, dword [ebp + 0x5c]
ja 0x52f0e0
cmp dword [ebp + 0x24], 0
je 0x52f0f0
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x526c42
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xda
jmp 0x52f432
cmp edx, dword [ebp + 0x54]
jae case.0x52e5e5.13
cmp word [edx], 0xa
jne case.0x52e5e5.13
lea eax, [edx + 2]
mov dword [ebx + 0x38], eax
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xdb
jmp 0x52f432
movzx eax, word [ebp + 0x3c]
mov esi, eax
test ax, ax
je case.0x52e5e5.13
cmp edx, dword [ebp + 0x54]
jb case.0x52e5e5.13
cmp dword [ebp + 0x88], 0
jne case.0x52e5e5.13
cmp dword [ebp + 0x8c], 2
jne case.0x52e5e5.13
movzx eax, word [ebp + 0x90]
cmp ecx, eax
jne case.0x52e5e5.13
mov dword [ebp + 0x1c], 1
cmp esi, 1
ja 0x526c42
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xdb
jmp 0x52f432
mov byte [ebx + 0x30], 0x11
jmp 0x52f42d
mov eax, dword [esp + 0x10]
add esi, 2
mov dword [eax + 4], esi
mov byte [eax + 0x30], 9
jmp 0x52f432
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 0x52f185
add esi, 4
mov byte [ecx + 0x30], 0xa
jmp 0x52f432
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 0x52f1e7
mov ecx, 0x8e
cmp ax, cx
jne 0x52f1d5
jmp 0x52f1e7
mov ebx, dword [esp + 0x10]
mov dword [ebx + 0x28], 0
mov eax, 0x20000
jmp 0x52f1f0
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 + 0x5ae4a0]
mov byte [ebx + 0x30], 8
lea esi, [ecx + eax*2]
jmp 0x52f432
movzx eax, word [esi + 4]
or eax, 0x10000
jmp 0x52f235
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 + 0x5ae4a0]
mov byte [ebx + 0x30], 2
lea esi, [esi + eax*2]
jmp 0x52f432
mov ecx, dword [ebp + 0x48]
movzx eax, word [esi + 2]
lea ebx, [ecx + eax*2]
cmp ebx, ecx
jne 0x52f26b
xor edi, edi
jmp 0x52f26f
movzx edi, word [ebx + 4]
mov ebp, dword [esp + 0x10]
cmp dword [ebp + 0x44], 0xffffffff
je 0x52f2b3
mov eax, dword [ebp + 0x4c]
cmp eax, 0xffffffff
je 0x52f2b3
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 0x52f2a7
mov eax, dword [ecx + 0x4c]
cmp eax, 0xffffffff
jne 0x52f290
jmp 0x52f2b3
mov eax, dword [ebp + 0x38]
cmp eax, dword [ecx + 0x38]
je 0x52f5be
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 + 0x5ae4a0]
mov byte [ebx + 0x30], 0xb
lea esi, [ecx + eax*2]
jmp 0x52f432
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 + 0x5ae4a0]
mov byte [ebx + 0x30], 3
lea esi, [esi + eax*2]
jmp 0x52f432
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 + 0x5ae4a0]
mov byte [ebx + 0x30], 4
lea esi, [esi + eax*2]
jmp 0x52f432
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 + 0x5ae4a0]
movzx eax, word [edx + 2]
mov byte [ebx + 0x30], 0xc
jmp 0x52f42d
movzx eax, word [esi]
movzx eax, byte [eax + 0x5ae4a0]
lea esi, [esi + eax*2]
mov eax, dword [esp + 0x10]
mov byte [eax + 0x30], 0xd
jmp 0x52f432
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 + 0x5ae4a0]
movzx eax, word [edx + 2]
mov byte [ebx + 0x30], 0x24
jmp 0x52f42d
movzx eax, word [esi]
movzx eax, byte [eax + 0x5ae4a0]
lea esi, [esi + eax*2]
mov eax, dword [esp + 0x10]
mov byte [eax + 0x30], 0xe
jmp 0x52f432
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 + 0x5ae4a0]
movzx eax, word [edx + 2]
mov byte [ebx + 0x30], 0xf
jmp 0x52f42d
movzx eax, word [esi]
movzx eax, byte [eax + 0x5ae4a0]
lea esi, [esi + eax*2]
mov eax, dword [esp + 0x10]
mov byte [eax + 0x30], 0x10
jmp 0x52f432
movzx eax, word [esi]
movzx eax, byte [eax + 0x5ae4a0]
lea esi, [esi + eax*2]
mov eax, dword [esp + 0x10]
mov byte [eax + 0x30], 0x12
jmp 0x52f432
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 + 0x5ae4a0]
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 0x52f4ed
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 0x52f472
xor edx, edx
mov eax, ecx
div ebp
mov edi, ecx
sub edi, edx
cmp ebx, edi
jae 0x52f5cb
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 0x52f5d8
mov eax, dword [esp + 0x68]
push dword [esp + 0x38]
push dword [eax + 0x18]
push ebx
call fcn.0056f940
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.0056f940
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 0x525795
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 0x52f543
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.0056f940
mov eax, dword [ebx + 0x50]
dec esi
add eax, 2
add esp, 0xc
cmp esi, eax
jb 0x52f5a7
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 0x52f593
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