Function at 0x518a50
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 0x518b35
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 0x518b2f
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 0x522962
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x18]
cmp eax, dword [ebp + 0x14]
jb 0x518b88
pop edi
pop esi
pop ebp
mov eax, 0xffffffcb
pop ebx
add esp, 0x44
ret
mov edi, dword [esp + 0x68]
mov ebp, eax
jmp 0x518b90
mov ebp, dword [esp + 0x6c]
jmp 0x518b88
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.0x5206dc.15
movzx eax, byte [eax + 0x522acc]
jmp dword [eax*4 + 0x522970]
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x44], 0xffffffff
jne 0x518c32
movzx edi, word [esi + 2]
mov eax, dword [eax + 0x4c]
mov esi, dword [esp + 0x68]
cmp eax, 0xffffffff
je case.0x5206dc.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 0x518bf9
mov eax, dword [edx + 0x4c]
jmp 0x518bd0
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 0x518c2e
mov dword [eax + 0x50], esi
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x59da80]
lea eax, [ecx + eax*2]
jmp 0x518b7e
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x38]
cmp eax, dword [ebp + 0x60]
jbe 0x518c55
mov dword [ebp + 0x60], eax
mov eax, dword [esp + 0x10]
mov esi, 0xfffffc19
mov dword [esp + 0x24], eax
jmp 0x518edb
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x44], 0xffffffff
je 0x518cce
mov eax, dword [eax + 0x4c]
cmp eax, 0xffffffff
je case.0x5206dc.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 0x518ca4
mov eax, dword [ecx + 0x4c]
jmp 0x518c74
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 0x518b90
mov edx, dword [eax + 0x38]
mov esi, dword [eax + 0x3c]
cmp edx, esi
jne 0x518d00
mov eax, dword [esp + 0x6c]
mov eax, dword [eax + 0x78]
test al, 4
jne 0x518ecd
test al, 8
je 0x518d00
mov eax, dword [esp + 0x6c]
mov ecx, dword [eax + 0x34]
mov eax, dword [eax + 0x4c]
lea eax, [eax + ecx*2]
cmp esi, eax
je 0x518ecd
mov eax, dword [esp + 0x6c]
cmp edx, dword [eax + 0x54]
jae 0x522891
mov ebp, dword [esp + 0x6c]
mov eax, dword [eax + 0x7c]
or eax, dword [ebp + 0x78]
test eax, 0x20000000
je 0x52288f
test bl, bl
je case.default.0x5206f9
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 0x518d77
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x38]
mov eax, dword [esp + 0x6c]
mov edx, dword [eax + 0x54]
cmp ecx, edx
jae 0x518dbc
push dword [esp + 0x14]
add eax, 0x8c
push eax
push edx
push esi
push ecx
call fcn.0052fe70
add esp, 0x14
test eax, eax
jne 0x518ecd
mov eax, dword [esp + 0x6c]
jmp 0x518dbc
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 0x518dba
mov ax, word [edx]
cmp ax, word [ebp + 0x90]
jne 0x518dba
cmp esi, 1
je case.default.0x5206f9
mov ax, word [edx + 2]
cmp ax, word [ebp + 0x92]
je case.default.0x5206f9
mov eax, ebp
movzx eax, word [eax + 0x3c]
mov ebp, dword [esp + 0x6c]
mov edx, eax
test ax, ax
je case.0x518bb4.13
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x38]
mov eax, dword [ebp + 0x54]
sub eax, 2
cmp ecx, eax
jne case.0x518bb4.13
mov eax, ebp
cmp dword [eax + 0x88], 0
jne 0x518e0e
cmp dword [eax + 0x8c], 2
jne 0x518e0e
mov ax, word [ecx]
cmp ax, word [ebp + 0x90]
jne case.0x518bb4.13
mov eax, ebp
mov dword [eax + 0x1c], 1
cmp edx, 1
ja 0x519fb2
mov ebp, eax
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x38]
cmp ecx, dword [ebp + 0x54]
jb 0x518e51
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x5206f9
mov eax, dword [esp + 0x6c]
cmp ecx, dword [eax + 0x5c]
ja 0x518e3a
cmp dword [eax + 0x24], 0
je 0x518e4a
mov dword [eax + 0x1c], 1
cmp edx, 1
ja 0x519fb2
mov ebp, eax
jmp case.default.0x5206f9
mov edx, dword [esp + 0x14]
add ecx, 2
mov dword [eax + 0x38], ecx
test edx, edx
je 0x518e87
cmp ecx, dword [ebp + 0x54]
jae 0x518e87
mov ax, word [ecx]
mov ebx, 0xfc00
and ax, bx
mov ebx, 0xdc00
cmp ax, bx
jne 0x518e83
lea eax, [ecx + 2]
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x38], eax
mov eax, dword [esp + 0x10]
add dword [eax], 2
jmp 0x518b90
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x38]
mov eax, dword [esp + 0x6c]
cmp ecx, dword [eax + 0x54]
jb 0x518f25
movzx eax, word [eax + 0x3c]
mov edx, eax
test ax, ax
je 0x518ecd
mov eax, dword [esp + 0x6c]
cmp ecx, dword [eax + 0x5c]
ja 0x518ebd
cmp dword [eax + 0x24], 0
je 0x518ecd
cmp edx, 1
mov dword [eax + 0x1c], 1
ja 0x519fb2
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 0x518ee6
mov dword [ebp + 0x60], eax
mov ebx, dword [esp + 0x10]
cmp dword [ebx + 0x18], 0
je 0x522924
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.0x5206dc.15
movzx eax, byte [eax + 0x522c6c]
jmp dword [eax*4 + 0x522b74]
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 0x518b90
mov eax, dword [esp + 0x10]
test edx, edx
je 0x519013
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 0x518f80
mov dword [eax + 0xc], 2
mov edx, 2
jmp 0x518f85
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 0x518fd6
cmp ecx, esi
jb case.default.0x5206f9
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x5206f9
mov eax, dword [esp + 0x6c]
cmp ecx, dword [eax + 0x5c]
ja 0x518fbf
cmp dword [eax + 0x24], 0
je 0x518e4a
mov dword [eax + 0x1c], 1
cmp edx, 1
ja 0x519fb2
mov ebp, eax
jmp case.default.0x5206f9
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 0x51900c
add dword [eax + 0xc], 0xffffffff
jne 0x518fe0
jmp 0x518b88
xor esi, esi
jmp 0x518ed7
mov edi, dword [eax + 0x38]
mov eax, dword [ebp + 0x54]
sub eax, edi
and eax, 0xfffffffe
cmp eax, 2
jge 0x51905a
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x51904f
mov eax, dword [esp + 0x6c]
cmp edi, dword [eax + 0x5c]
ja 0x51903d
cmp dword [eax + 0x24], 0
je 0x51904d
mov dword [eax + 0x1c], 1
cmp ecx, 1
ja 0x519fb2
mov ebp, eax
mov eax, dword [esp + 0x10]
xor esi, esi
jmp 0x518edb
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 0x521ff2
xor esi, esi
mov eax, ebx
jmp 0x518edb
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x6c]
mov ebp, dword [eax + 0x38]
cmp ebp, dword [ecx + 0x54]
jb 0x5190ca
movzx eax, word [ecx + 0x3c]
mov ecx, eax
test ax, ax
je 0x5190bb
mov eax, dword [esp + 0x6c]
cmp ebp, dword [eax + 0x5c]
ja 0x5190ab
cmp dword [eax + 0x24], 0
je 0x5190bb
mov dword [eax + 0x1c], 1
cmp ecx, 1
ja 0x519fb2
mov eax, dword [esp + 0x10]
xor esi, esi
mov ebp, dword [esp + 0x6c]
jmp 0x518edb
test edx, edx
je 0x519208
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 0x519120
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 0x519124
mov eax, dword [esp + 0x10]
movzx edx, word [ebp]
cmp esi, 0x80
jae 0x519174
mov eax, dword [ecx + 0x28]
cmp edx, 0xff
ja 0x51913f
movzx edx, byte [eax + edx]
movzx eax, byte [eax + esi]
cmp eax, edx
mov edx, dword [esp + 0x14]
je 0x519158
mov eax, dword [esp + 0x10]
xor esi, esi
mov ebp, ecx
jmp 0x518edb
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 0x518b90
lea ecx, [ebp + 2]
mov dword [eax + 0x38], ecx
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5191ad
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 0x5191b1
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 0x518b88
mov eax, esi
shr eax, 7
movzx ecx, word [eax*2 + 0x5a4390]
mov eax, esi
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5a8790]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x5a0184]
add eax, esi
cmp edx, eax
mov edx, dword [esp + 0x14]
je 0x518b90
mov eax, dword [esp + 0x10]
xor esi, esi
jmp 0x518edb
cmp dword [esp + 0x2c], 0
je 0x519289
movzx edi, word [esi + 2]
movzx edx, word [ebp]
cmp edi, 0x80
jae 0x519241
mov eax, dword [ecx + 0x28]
cmp edx, 0xff
ja 0x51922e
movzx edx, byte [eax + edx]
movzx eax, byte [eax + edi]
cmp eax, edx
je 0x5192be
mov ebp, ecx
jmp case.default.0x5206f9
cmp edx, edi
je 0x5192be
mov eax, edi
test eax, eax
jns 0x51924e
add eax, 0x7f
sar eax, 7
movzx ecx, word [eax*2 + 0x5a4390]
mov eax, edi
shl ecx, 7
and eax, 0x8000007f
jns 0x51926a
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x5a8790]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x5a0184]
add eax, edi
cmp edx, eax
je 0x5192be
jmp 0x518ecd
movzx eax, word [esi + 2]
mov ebx, 0xff
mov edx, eax
cmp ax, bx
ja 0x5192a0
mov eax, dword [ecx + 0x28]
movzx edx, byte [eax + edx]
movzx eax, word [ebp]
mov ecx, eax
cmp ax, bx
ja 0x5192b6
mov eax, dword [esp + 0x6c]
mov eax, dword [eax + 0x28]
movzx ecx, byte [eax + ecx]
cmp edx, ecx
jne 0x518ecd
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 0x518b84
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x38]
mov eax, dword [esp + 0x6c]
cmp ecx, dword [eax + 0x54]
jae 0x518ea3
lea eax, [esi + 2]
test edx, edx
je 0x5193d6
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 0x519331
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 0x51936f
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.0x5206f9
mov edi, dword [esp + 0x68]
cmp bl, 0x20
jne 0x518b88
cmp edx, 0x7f
jbe 0x5193b8
mov eax, edx
shr eax, 7
movzx ecx, word [eax*2 + 0x5a4390]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5a8790]
lea eax, [eax + eax*2]
add edx, dword [eax*4 + 0x5a0184]
jmp 0x5193bf
mov eax, dword [ebp + 0x2c]
movzx edx, byte [eax + edx]
cmp edx, esi
mov edx, dword [esp + 0x14]
jne 0x518b90
mov eax, dword [esp + 0x10]
xor esi, esi
jmp 0x518edb
cmp dword [esp + 0x2c], 0
lea edi, [ecx + 2]
mov ebp, dword [esp + 0x6c]
je 0x51946f
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.0x5206f9
cmp byte [esp + 0x58], 0x20
mov edi, dword [esp + 0x68]
jne 0x518b88
cmp edx, 0x7f
jbe 0x519451
mov eax, edx
test eax, eax
jns 0x51941f
add eax, 0x7f
sar eax, 7
movzx ecx, word [eax*2 + 0x5a4390]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x51943b
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x5a8790]
lea eax, [eax + eax*2]
add edx, dword [eax*4 + 0x5a0184]
jmp 0x519458
mov eax, dword [ebp + 0x2c]
movzx edx, byte [eax + edx]
cmp edx, ebx
mov edx, dword [esp + 0x14]
jne 0x518b90
mov eax, dword [esp + 0x10]
xor esi, esi
jmp 0x518edb
movzx edx, word [eax]
mov eax, dword [esp + 0x10]
movzx ecx, word [ecx]
mov dword [eax + 0x38], edi
cmp edx, ecx
je case.default.0x5206f9
cmp bl, 0x20
jne 0x5194a0
cmp edx, 0xff
ja 0x5194a0
mov eax, dword [ebp + 0x2c]
movzx eax, byte [eax + edx]
cmp eax, ecx
je case.default.0x5206f9
lea eax, [esi + 4]
jmp 0x518b7e
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 0x5195e3
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 0x5195df
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 0x5195df
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 0x5195df
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 0x5195df
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 0x5195df
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 0x5195df
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 + 0x59d2c0]
mov dword [edx + 0x20], eax
mov eax, dword [ecx*4 + 0x59d2ec]
mov dword [edx + 0x24], eax
mov eax, dword [ecx*4 + 0x59d318]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
test ebx, ebx
je 0x5199e8
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 0x51963b
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 0x519652
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 0x5199df
mov eax, dword [esp + 0x10]
cmp byte [eax + 0x31], 0x2e
jb 0x51969e
mov eax, edi
shr eax, 7
movzx ecx, word [eax*2 + 0x5a4390]
mov eax, edi
shl ecx, 7
and eax, 0x7f
add ecx, eax
movzx eax, word [ecx*2 + 0x5a8790]
lea eax, [eax + eax*2]
mov ecx, dword [eax*4 + 0x5a0184]
add ecx, edi
cmp ecx, edi
je 0x51969e
mov eax, dword [esp + 0x10]
add eax, 0x32
push eax
push ecx
call fcn.00530020
add esp, 8
jmp 0x5196a0
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 0x5197f4
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x38]
jmp 0x5196d4
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 0x51974b
mov eax, dword [esp + 0x10]
mov esi, edi
mov ecx, ebx
mov edx, dword [eax + 8]
sub esi, 4
jb 0x519705
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x51970e
add ecx, 4
add edx, 4
sub esi, 4
jae 0x5196f4
cmp esi, 0xfffffffc
je 0x5197d3
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x51974b
cmp esi, 0xfffffffd
je 0x5197d3
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x51974b
cmp esi, 0xfffffffe
je 0x5197d3
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x51974b
cmp esi, 0xffffffff
je 0x5197d3
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x5197d3
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x14]
test eax, eax
je 0x51994d
lea edi, [eax + eax]
mov eax, ebp
sub eax, edi
cmp ebx, eax
ja 0x51994d
mov edx, dword [esp + 0x10]
mov esi, edi
add edx, 0x32
mov ecx, ebx
sub esi, 4
jb 0x519791
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x519796
add ecx, 4
add edx, 4
sub esi, 4
jae 0x519780
cmp esi, 0xfffffffc
je 0x5197d3
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x51994d
cmp esi, 0xfffffffd
je 0x5197d3
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x51994d
cmp esi, 0xfffffffe
je 0x5197d3
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x51994d
cmp esi, 0xffffffff
je 0x5197d3
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x51994d
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 0x5196d0
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 0x518b90
cmp dword [esp + 0x18], 0
je 0x5223af
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 0x5199c4
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 0x5198b3
mov eax, dword [esp + 0x10]
mov esi, edi
mov ecx, ebx
mov edx, dword [eax + 8]
sub esi, 4
jb 0x519871
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x51987a
add ecx, 4
add edx, 4
sub esi, 4
jae 0x519860
cmp esi, 0xfffffffc
je 0x51992c
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x5198b3
cmp esi, 0xfffffffd
je 0x51992c
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x5198b3
cmp esi, 0xfffffffe
je 0x51992c
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x5198b3
cmp esi, 0xffffffff
je 0x51992c
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x51992c
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x14]
test eax, eax
je 0x519990
lea edi, [eax + eax]
mov eax, ebp
sub eax, edi
cmp ebx, eax
ja 0x519990
mov edx, dword [esp + 0x10]
mov esi, edi
add edx, 0x32
mov ecx, ebx
sub esi, 4
jb 0x5198f2
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x5198f7
add ecx, 4
add edx, 4
sub esi, 4
jae 0x5198e1
cmp esi, 0xfffffffc
je 0x51992c
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x519990
cmp esi, 0xfffffffd
je 0x51992c
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x519990
cmp esi, 0xfffffffe
je 0x51992c
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x519990
cmp esi, 0xffffffff
je 0x51992c
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x519990
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 0x519837
mov ebp, dword [esp + 0x6c]
jmp 0x5199c4
cmp ebx, ebp
mov ebp, dword [esp + 0x6c]
jb case.default.0x5206f9
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5206f9
mov eax, ebp
cmp ebx, dword [eax + 0x5c]
ja 0x519979
cmp dword [eax + 0x24], 0
je 0x518e4a
mov dword [eax + 0x1c], 1
cmp ecx, 1
ja 0x519fb2
mov ebp, eax
jmp case.default.0x5206f9
cmp ebx, ebp
mov ebp, dword [esp + 0x6c]
jb 0x5199c0
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x5199c0
mov eax, ebp
cmp ebx, dword [eax + 0x5c]
ja 0x5199b0
cmp dword [eax + 0x24], 0
je 0x5199c0
mov dword [eax + 0x1c], 1
cmp ecx, 1
ja 0x519fb2
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x18], 2
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x68]
je 0x518b90
mov ecx, dword [eax + 0x38]
jmp 0x520d14
mov eax, dword [esp + 0x10]
mov dword [eax + 0x28], edx
jmp 0x5199f9
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 0x519b51
test ebx, ebx
jne 0x519a0d
cmp dword [esp + 0x2c], ebx
je 0x519a3f
cmp edx, 0x7f
jbe 0x519a3f
mov eax, edx
shr eax, 7
movzx ecx, word [eax*2 + 0x5a4390]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5a8790]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x5a0184]
add eax, edx
jmp 0x519a52
cmp edx, 0xff
ja 0x519a50
mov eax, dword [ebp + 0x2c]
movzx eax, byte [eax + edx]
jmp 0x519a52
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 0x519aa1
mov ecx, dword [eax + 0x38]
nop dword [eax]
mov eax, dword [esp + 0x6c]
cmp ecx, dword [eax + 0x54]
jae 0x518ea3
mov ebx, dword [esp + 0x10]
movzx eax, word [ecx]
cmp dword [ebx + 0x28], eax
je 0x519a92
cmp dword [ebx + 0x2c], eax
jne 0x518ecd
mov eax, dword [esp + 0x10]
add ecx, 2
inc edx
mov dword [eax + 0x38], ecx
cmp edx, esi
jbe 0x519a70
mov edx, dword [eax + 0x24]
mov ebp, dword [esp + 0x6c]
mov edi, dword [esp + 0x68]
cmp esi, edx
je 0x518b88
mov ebp, dword [esp + 0x18]
test ebp, ebp
je 0x52042f
mov ecx, dword [eax + 0x38]
mov dword [eax + 4], ecx
cmp esi, edx
jae 0x519b25
nop word [eax + eax]
mov eax, dword [esp + 0x6c]
cmp ecx, dword [eax + 0x54]
jae 0x519afb
mov ebx, dword [esp + 0x10]
movzx eax, word [ecx]
cmp dword [ebx + 0x28], eax
je 0x519aea
cmp dword [ebx + 0x2c], eax
jne 0x519b29
mov eax, dword [esp + 0x10]
add ecx, 2
inc esi
mov dword [eax + 0x38], ecx
cmp esi, edx
jb 0x519ad0
jmp 0x519b25
movzx eax, word [eax + 0x3c]
mov edx, eax
test ax, ax
je 0x519b25
mov eax, dword [esp + 0x6c]
cmp ecx, dword [eax + 0x5c]
ja 0x519b15
cmp dword [eax + 0x24], 0
je 0x519b25
mov dword [eax + 0x1c], 1
cmp edx, 1
ja 0x519fb2
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
cmp ebp, 2
mov ebp, dword [esp + 0x6c]
je 0x518b90
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebx + 4]
je 0x518b84
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x1a
jmp 0x5227a2
mov edi, dword [eax + 0x20]
mov esi, 1
cmp edi, esi
jb 0x519b88
mov edx, dword [eax + 0x38]
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x6c]
cmp edx, dword [eax + 0x54]
jae 0x519bd5
movzx eax, word [edx]
add edx, 2
mov dword [ebx + 0x38], edx
cmp dword [ebx + 0x28], eax
jne 0x518ecd
inc esi
cmp esi, edi
jbe 0x519b64
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x24]
mov ebp, dword [esp + 0x6c]
cmp edi, edx
je 0x518b84
mov ebp, dword [esp + 0x18]
test ebp, ebp
je 0x5204ba
mov ecx, dword [eax + 0x38]
mov dword [eax + 4], ecx
cmp edi, edx
jae 0x519c29
mov eax, dword [esp + 0x6c]
cmp ecx, dword [eax + 0x54]
jae 0x519bff
mov ebx, dword [esp + 0x10]
movzx eax, word [ecx]
cmp dword [ebx + 0x28], eax
jne 0x519c2d
mov eax, ebx
add ecx, 2
inc edi
mov dword [eax + 0x38], ecx
cmp edi, edx
jb 0x519bb1
jmp 0x519c29
movzx eax, word [eax + 0x3c]
mov ecx, eax
test ax, ax
je 0x518ecd
mov eax, dword [esp + 0x6c]
cmp edx, dword [eax + 0x5c]
ja 0x519bf7
cmp dword [eax + 0x24], 0
je 0x518ecd
cmp ecx, 1
jmp 0x518ec0
movzx eax, word [eax + 0x3c]
mov edx, eax
test ax, ax
je 0x519c29
mov eax, dword [esp + 0x6c]
cmp ecx, dword [eax + 0x5c]
ja 0x519c19
cmp dword [eax + 0x24], 0
je 0x519c29
mov dword [eax + 0x1c], 1
cmp edx, 1
ja 0x519fb2
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
cmp ebp, 2
mov ebp, dword [esp + 0x6c]
mov edi, dword [esp + 0x68]
je 0x518b90
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebx + 4]
jbe 0x518b84
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x1c
jmp 0x5227a2
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 0x519da9
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 0x519da5
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 0x519da5
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 0x519da5
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 0x519da5
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 0x519da5
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 0x519da5
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 + 0x59d2c0]
mov dword [edx + 0x20], eax
mov eax, dword [ecx*4 + 0x59d2ec]
mov dword [edx + 0x24], eax
mov eax, dword [ecx*4 + 0x59d318]
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 0x519df7
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
mov eax, dword [esp + 0x10]
jne 0x519df7
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 0x51a0f4
mov edx, dword [esp + 0x14]
test edx, edx
jne 0x519e0f
cmp dword [esp + 0x2c], edx
je 0x519e41
cmp esi, 0x7f
jbe 0x519e41
mov eax, esi
shr eax, 7
movzx ecx, word [eax*2 + 0x5a4390]
mov eax, esi
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5a8790]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x5a0184]
add eax, esi
jmp 0x519e54
cmp esi, 0xff
ja 0x519e52
mov eax, dword [ebp + 0x2c]
movzx eax, byte [eax + esi]
jmp 0x519e54
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 0x519fbf
mov esi, 1
cmp ebx, esi
jb 0x519ee7
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
jmp 0x519e84
mov eax, dword [esp + 0x10]
cmp edx, dword [ebp + 0x54]
jae 0x519f84
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x519ec9
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 0x519ecd
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x28], ecx
je case.default.0x5206f9
cmp dword [eax + 0x2c], ecx
je case.default.0x5206f9
mov eax, dword [eax + 0x20]
inc esi
cmp esi, eax
jbe 0x519e80
mov ecx, dword [esp + 0x10]
mov edi, dword [ecx + 0x24]
cmp eax, edi
je 0x518b84
cmp dword [esp + 0x18], 0
je 0x5221f3
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 0x51a07c
cmp ebx, eax
jae 0x51a076
mov esi, 1
cmp ecx, dword [ebp + 0x54]
jae 0x51a035
movzx edx, word [ecx]
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x519f5e
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 0x51a05b
cmp dword [eax + 0x2c], edx
je 0x51a05b
inc ebx
lea ecx, [ecx + esi*2]
mov dword [eax + 0x38], ecx
cmp ebx, edi
jb 0x519f20
jmp 0x51a05b
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5206f9
cmp edx, dword [ebp + 0x5c]
ja 0x519fa2
cmp dword [ebp + 0x24], 0
je case.default.0x5206f9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
jbe case.default.0x5206f9
pop edi
pop esi
pop ebp
mov eax, 0xfffffffe
pop ebx
add esp, 0x44
ret
mov edx, 1
cmp ebx, edx
jb 0x519ee7
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x38]
cmp ecx, dword [ebp + 0x54]
jae 0x51a006
mov esi, dword [esp + 0x10]
movzx eax, word [ecx]
cmp dword [esi + 0x28], eax
je case.default.0x5206f9
cmp dword [esi + 0x2c], eax
je case.default.0x5206f9
mov eax, esi
add ecx, 2
inc edx
mov dword [eax + 0x38], ecx
mov eax, dword [eax + 0x20]
cmp edx, eax
jbe 0x519fd3
jmp 0x519ee7
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x5206f9
cmp ecx, dword [ebp + 0x5c]
ja 0x51a024
cmp dword [ebp + 0x24], 0
je case.default.0x5206f9
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x519fb2
jmp case.default.0x5206f9
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je 0x51a057
cmp ecx, dword [ebp + 0x5c]
ja 0x51a04b
cmp dword [ebp + 0x24], 0
je 0x51a057
mov dword [ebp + 0x1c], esi
cmp edx, 1
ja 0x519fb2
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x18], 2
mov edi, dword [esp + 0x68]
je 0x518b90
mov ecx, dword [eax + 0x38]
jmp 0x520dfd
mov eax, dword [esp + 0x10]
jmp 0x51a05f
cmp ebx, eax
jae 0x51a0ee
cmp ecx, dword [ebp + 0x54]
jae 0x51a0a5
mov edx, dword [esp + 0x10]
movzx eax, word [ecx]
cmp dword [edx + 0x28], eax
je 0x51a0cb
cmp dword [edx + 0x2c], eax
mov eax, edx
je 0x51a0cf
add ecx, 2
inc ebx
mov dword [eax + 0x38], ecx
cmp ebx, edi
jb 0x51a080
jmp 0x51a0cf
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je 0x51a0cb
cmp ecx, dword [ebp + 0x5c]
ja 0x51a0bb
cmp dword [ebp + 0x24], 0
je 0x51a0cb
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x519fb2
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x18], 2
mov edi, dword [esp + 0x68]
je 0x518b90
mov eax, dword [eax + 0x38]
mov ebx, dword [esp + 0x10]
jmp 0x520563
mov eax, dword [esp + 0x10]
jmp 0x51a0d3
cmp dword [esp + 0x14], 0
mov esi, 1
mov ebx, dword [eax + 0x20]
mov eax, ebx
je 0x51a24e
cmp ebx, esi
jb 0x51a17e
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
jmp 0x51a124
mov eax, dword [esp + 0x10]
cmp edx, dword [ebp + 0x54]
jae 0x51a21b
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x51a169
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 0x51a16d
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x28], ecx
je case.default.0x5206f9
mov eax, dword [eax + 0x20]
inc esi
cmp esi, eax
jbe 0x51a120
mov ecx, dword [esp + 0x10]
mov edi, dword [ecx + 0x24]
cmp eax, edi
je 0x518b84
mov esi, dword [esp + 0x18]
test esi, esi
je 0x52220d
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 0x51a2fb
cmp ebx, eax
jae 0x51a2e3
nop dword [eax + eax]
mov esi, 1
cmp ecx, dword [ebp + 0x54]
jae 0x51a2bd
movzx edx, word [ecx]
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x51a1fe
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 0x51a2df
inc ebx
lea ecx, [ecx + esi*2]
mov dword [eax + 0x38], ecx
cmp ebx, edi
jb 0x51a1c0
jmp 0x51a2df
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5206f9
cmp edx, dword [ebp + 0x5c]
ja 0x51a239
cmp dword [ebp + 0x24], 0
je case.default.0x5206f9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x519fb2
jmp case.default.0x5206f9
cmp ebx, 1
jb 0x51a17e
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
nop
cmp edx, dword [ebp + 0x54]
jae 0x51a28a
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 0x51900c
mov eax, dword [eax + 0x20]
inc esi
cmp esi, eax
jbe 0x51a260
jmp 0x51a17e
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5206f9
cmp edx, dword [ebp + 0x5c]
ja 0x51a2a8
cmp dword [ebp + 0x24], 0
je case.default.0x5206f9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x519fb2
jmp case.default.0x5206f9
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je 0x51a2df
cmp ecx, dword [ebp + 0x5c]
ja 0x51a2d3
cmp dword [ebp + 0x24], 0
je 0x51a2df
mov dword [ebp + 0x1c], esi
cmp edx, 1
ja 0x519fb2
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x18], 2
mov edi, dword [esp + 0x68]
je 0x518b90
mov ebx, dword [esp + 0x10]
jmp 0x520ed7
cmp ebx, eax
jae 0x51a367
nop
cmp ecx, dword [ebp + 0x54]
jae 0x51a320
mov edx, dword [esp + 0x10]
movzx eax, word [ecx]
cmp dword [edx + 0x28], eax
mov eax, edx
je 0x51a34a
add ecx, 2
inc ebx
mov dword [eax + 0x38], ecx
cmp ebx, edi
jb 0x51a300
jmp 0x51a34a
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je 0x51a346
cmp ecx, dword [ebp + 0x5c]
ja 0x51a336
cmp dword [ebp + 0x24], 0
je 0x51a346
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x519fb2
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x68]
cmp esi, 2
je 0x518b90
mov eax, dword [eax + 0x38]
mov ebx, dword [esp + 0x10]
jmp 0x5205f6
mov eax, dword [esp + 0x10]
jmp 0x51a34e
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.0x51a394
movzx eax, byte [eax + 0x522d58]
jmp dword [eax*4 + 0x522d50]
mov edx, dword [esp + 0x10]
lea eax, [esi + 2]
mov edi, dword [esp + 0x10]
mov ebx, dword [ecx*4 + 0x59d190]
mov dword [esp + 0x18], ebx
mov dword [edx], eax
mov eax, dword [esp + 0x10]
mov edx, dword [ecx*4 + 0x59d138]
mov dword [eax + 0x20], edx
mov eax, dword [ecx*4 + 0x59d164]
mov dword [edi + 0x24], eax
jmp 0x51a419
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 + 0x59d190]
mov dword [esp + 0x18], eax
lea eax, [esi + 6]
mov dword [ecx], eax
jmp 0x51a419
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 0x51a504
cmp edx, ebx
jb 0x51a596
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x38]
nop
cmp edi, dword [ebp + 0x54]
jae 0x51a4d1
movzx esi, word [edi]
add edi, 2
mov dword [eax + 0x38], edi
mov eax, esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x51a485
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 0x51a489
mov eax, dword [esp + 0x10]
cmp esi, 0xff
jbe 0x51a49d
cmp byte [eax + 0x31], 0x6e
je case.default.0x5206f9
jmp 0x51a4bc
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 0x51900c
mov eax, dword [eax + 0x20]
inc ebx
cmp ebx, eax
ja 0x51a596
mov eax, dword [esp + 0x10]
jmp 0x51a440
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5206f9
cmp edi, dword [ebp + 0x5c]
ja 0x51a4ef
cmp dword [ebp + 0x24], 0
je case.default.0x5206f9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x519fb2
jmp case.default.0x5206f9
cmp edx, 1
jb 0x51a596
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x38]
cmp edi, dword [ebp + 0x54]
jae 0x51a563
movzx esi, word [edi]
add edi, 2
mov dword [eax + 0x38], edi
cmp esi, 0xff
jbe 0x51a536
cmp byte [eax + 0x31], 0x6e
je case.default.0x5206f9
jmp 0x51a555
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 0x51900c
mov eax, dword [eax + 0x20]
inc ebx
cmp ebx, eax
ja 0x51a596
mov eax, dword [esp + 0x10]
jmp 0x51a514
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5206f9
cmp edi, dword [ebp + 0x5c]
ja 0x51a581
cmp dword [ebp + 0x24], 0
je case.default.0x5206f9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x519fb2
jmp case.default.0x5206f9
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x68]
mov ebp, dword [ebx + 0x24]
cmp eax, ebp
je 0x518b78
cmp dword [esp + 0x18], 0
je 0x522227
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 0x51a6b0
cmp dword [esp + 0x58], eax
jae 0x51a6aa
nop word [eax + eax]
mov eax, dword [esp + 0x6c]
mov ebx, 1
cmp edi, dword [eax + 0x54]
jae 0x51a684
movzx esi, word [edi]
mov eax, esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x51a622
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 0x51a650
cmp byte [eax + 0x31], 0x6e
jne 0x51a66b
mov ebp, dword [esp + 0x6c]
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x18], 2
jne 0x522396
mov edi, dword [esp + 0x68]
jmp 0x518b90
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 0x51a634
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 0x51a5e0
jmp 0x51a634
mov ebp, eax
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x51a638
cmp edi, dword [ebp + 0x5c]
ja 0x51a69c
cmp dword [ebp + 0x24], 0
je 0x51a638
mov dword [ebp + 0x1c], ebx
cmp ecx, 1
ja 0x519fb2
jmp 0x51a638
mov ebp, dword [esp + 0x6c]
jmp 0x51a63c
mov ebx, dword [esp + 0x58]
cmp ebx, eax
jae 0x51a74e
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x6c]
cmp edi, dword [ecx + 0x54]
jae 0x51a722
movzx esi, word [edi]
cmp esi, 0xff
jbe 0x51a6f6
cmp byte [eax + 0x31], 0x6e
jne 0x51a715
mov ebp, dword [esp + 0x6c]
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x18], 2
jne 0x5203a5
mov edi, dword [esp + 0x68]
jmp 0x518b90
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 0x51a6da
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x6c]
add edi, 2
inc ebx
mov dword [eax + 0x38], edi
cmp ebx, ebp
jb 0x51a6c4
jmp 0x51a6da
mov ebp, dword [esp + 0x6c]
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x51a6de
cmp edi, dword [ebp + 0x5c]
ja 0x51a73c
cmp dword [ebp + 0x24], 0
je 0x51a6de
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x519fb2
jmp 0x51a6de
mov ebp, dword [esp + 0x6c]
jmp 0x51a6e2
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.0x51a77f
movzx eax, byte [eax + 0x522d6c]
jmp dword [eax*4 + 0x522d64]
mov ecx, dword [esp + 0x10]
lea eax, [edx + 2]
mov esi, dword [edi*4 + 0x59d164]
mov dword [ecx], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [edi*4 + 0x59d138]
lea ebx, [eax + 0x24]
mov dword [eax + 0x20], ecx
mov eax, dword [edi*4 + 0x59d190]
mov dword [ebx], esi
mov dword [esp + 0x18], eax
jmp 0x51a7ee
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 0x51a7d7
mov dword [ebx], 0xffffffff
or esi, 0xffffffff
movzx eax, word [edx]
mov eax, dword [eax*4 + 0x59d190]
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 0x51a89c
mov esi, 1
jmp 0x51a825
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 0x51a825
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jae 0x51a97f
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], edx
je 0x51a876
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x51a872
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.00530560
add esp, 0xc
test eax, eax
mov eax, dword [esp + 0x10]
je 0x51900c
mov ecx, dword [eax + 0x20]
inc esi
cmp esi, ecx
jbe 0x51a821
mov esi, dword [edi]
mov edi, dword [esp + 0x68]
cmp ecx, esi
je 0x518b88
cmp dword [esp + 0x18], 0
je 0x522387
mov edx, dword [eax + 0x38]
mov dword [eax + 4], edx
mov edi, dword [eax + 0x20]
cmp edi, esi
jae 0x51a965
jmp 0x51a8d4
mov eax, dword [esp + 0x10]
mov esi, 1
cmp edx, dword [ebp + 0x54]
jae 0x51a943
cmp dword [esp + 0x14], 0
movzx ecx, word [edx]
je 0x51a919
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x51a915
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.00530560
add esp, 0xc
test eax, eax
je 0x51a965
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 0x51a8d0
jmp 0x51a965
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x51a965
cmp edx, dword [ebp + 0x5c]
ja 0x51a959
cmp dword [ebp + 0x24], 0
je 0x51a965
mov dword [ebp + 0x1c], esi
cmp ecx, 1
ja 0x519fb2
cmp dword [esp + 0x18], 2
je 0x518b84
mov ebx, dword [esp + 0x10]
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x65
jmp 0x5227a2
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5206f9
cmp edx, dword [ebp + 0x5c]
ja 0x51a99d
cmp dword [ebp + 0x24], 0
je case.default.0x5206f9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x519fb2
jmp case.default.0x5206f9
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x51a9f1
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5206f9
cmp edx, dword [ebp + 0x5c]
ja 0x51a9dc
cmp dword [ebp + 0x24], 0
je case.default.0x5206f9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x519fb2
jmp case.default.0x5206f9
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], edx
je 0x51aa34
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x51aa34
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 0x51aa38
mov edx, dword [esp + 0x10]
cmp ecx, 0xff
ja case.0x51afa7.8203
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 8
je case.0x51afa7.8203
jmp case.default.0x5206f9
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x51aa95
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5206f9
cmp edx, dword [ebp + 0x5c]
ja 0x51aa80
cmp dword [ebp + 0x24], 0
je case.default.0x5206f9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x519fb2
jmp case.default.0x5206f9
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], edx
je 0x51aad8
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x51aad8
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 0x51aadc
mov edx, dword [esp + 0x10]
cmp ecx, 0xff
ja case.default.0x5206f9
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 8
je case.default.0x5206f9
lea eax, [esi + 2]
mov dword [edx], eax
jmp 0x518b88
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x51ab3e
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5206f9
cmp edx, dword [ebp + 0x5c]
ja 0x51ab29
cmp dword [ebp + 0x24], 0
je case.default.0x5206f9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x519fb2
jmp case.default.0x5206f9
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], edx
je 0x51ab81
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x51ab81
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 0x51ab85
mov edx, dword [esp + 0x10]
cmp ecx, 0xff
ja case.0x51afa7.8203
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 1
je case.0x51afa7.8203
jmp case.default.0x5206f9
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x51abe2
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5206f9
cmp edx, dword [ebp + 0x5c]
ja 0x51abcd
cmp dword [ebp + 0x24], 0
je case.default.0x5206f9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x519fb2
jmp case.default.0x5206f9
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], edx
je 0x51ac25
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x51ac25
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 0x51ac29
mov edx, dword [esp + 0x10]
cmp ecx, 0xff
ja case.default.0x5206f9
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 1
je case.default.0x5206f9
lea eax, [esi + 2]
mov dword [edx], eax
jmp 0x518b88
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x51ac8b
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5206f9
cmp edx, dword [ebp + 0x5c]
ja 0x51ac76
cmp dword [ebp + 0x24], 0
je case.default.0x5206f9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x519fb2
jmp case.default.0x5206f9
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], edx
je 0x51acce
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x51acce
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 0x51acd2
mov edx, dword [esp + 0x10]
cmp ecx, 0xff
ja case.0x51afa7.8203
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 0x10
je case.0x51afa7.8203
jmp case.default.0x5206f9
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x51ad2f
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5206f9
cmp edx, dword [ebp + 0x5c]
ja 0x51ad1a
cmp dword [ebp + 0x24], 0
je case.default.0x5206f9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x519fb2
jmp case.default.0x5206f9
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], edx
je 0x51ad72
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x51ad72
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 0x51ad76
mov edx, dword [esp + 0x10]
cmp ecx, 0xff
ja case.default.0x5206f9
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 0x10
je case.default.0x5206f9
lea eax, [esi + 2]
mov dword [edx], eax
jmp 0x518b88
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x51add8
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5206f9
cmp edx, dword [ebp + 0x5c]
ja 0x51adc3
cmp dword [ebp + 0x24], 0
je case.default.0x5206f9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x519fb2
jmp case.default.0x5206f9
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov esi, edx
mov dword [eax + 0x38], edx
je 0x51ae1b
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x51ae1b
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 0x51ae8d
je case.0x51ae35.11
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x5206f9
jmp dword [ecx*4 + 0x522d78]
cmp esi, dword [ebp + 0x54]
jb 0x51ae73
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.0x51ae35.10
cmp esi, dword [ebp + 0x5c]
ja 0x51ae57
cmp dword [ebp + 0x24], 0
je case.0x51ae35.10
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x519fb2
mov eax, dword [esp + 0x10]
add dword [eax], 2
jmp 0x518b88
cmp word [esi], 0xa
jne case.0x51ae35.10
mov ecx, dword [esp + 0x10]
lea eax, [esi + 2]
mov dword [ecx + 0x38], eax
mov eax, ecx
add dword [eax], 2
jmp 0x518b88
sub ecx, 0x2028
je case.0x51ae35.11
sub ecx, 1
jne case.default.0x5206f9
cmp word [ebp + 0x3e], 2
je case.default.0x5206f9
mov eax, dword [esp + 0x10]
add dword [eax], 2
jmp 0x518b88
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x51aef4
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5206f9
cmp edx, dword [ebp + 0x5c]
ja 0x51aedf
cmp dword [ebp + 0x24], 0
je case.default.0x5206f9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x519fb2
jmp case.default.0x5206f9
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], edx
je 0x51af37
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x51af37
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 0x51af3b
mov edx, dword [esp + 0x10]
cmp ecx, 0x2000
ja 0x51af7f
je case.default.0x5206f9
cmp ecx, 0xa0
ja 0x51af68
je case.default.0x5206f9
cmp ecx, 9
je case.default.0x5206f9
cmp ecx, 0x20
jmp 0x51aaef
cmp ecx, 0x1680
je case.default.0x5206f9
cmp ecx, 0x180e
jmp 0x51aaef
cmp ecx, 0x3000
ja case.0x51afa7.8203
je case.default.0x5206f9
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x51afa7.8203
movzx eax, byte [ecx + 0x522d90]
jmp dword [eax*4 + 0x522d88]
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x51afed
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5206f9
cmp edx, dword [ebp + 0x5c]
ja 0x51afd8
cmp dword [ebp + 0x24], 0
je case.default.0x5206f9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x519fb2
jmp case.default.0x5206f9
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], edx
je 0x51b030
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x51b030
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 0x51b034
mov edx, dword [esp + 0x10]
cmp ecx, 0x2000
ja 0x51b084
je case.0x51afa7.8203
cmp ecx, 0xa0
ja 0x51b067
je case.0x51afa7.8203
cmp ecx, 9
je case.0x51afa7.8203
cmp ecx, 0x20
je case.0x51afa7.8203
jmp case.default.0x5206f9
cmp ecx, 0x1680
je case.0x51afa7.8203
cmp ecx, 0x180e
je case.0x51afa7.8203
jmp case.default.0x5206f9
cmp ecx, 0x3000
ja case.default.0x5206f9
je case.0x51afa7.8203
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.default.0x5206f9
movzx eax, byte [ecx + 0x522df8]
jmp dword [eax*4 + 0x522df0]
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x51b0f2
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5206f9
cmp edx, dword [ebp + 0x5c]
ja 0x51b0dd
cmp dword [ebp + 0x24], 0
je case.default.0x5206f9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x519fb2
jmp case.default.0x5206f9
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], edx
je 0x51b135
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x51b135
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 0x51b139
mov edx, dword [esp + 0x10]
cmp ecx, 0x85
ja 0x51b15a
je case.default.0x5206f9
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x51afa7.8203
jmp dword [ecx*4 + 0x522e58]
sub ecx, 0x2028
je case.default.0x5206f9
sub ecx, 1
jne case.0x51afa7.8203
jmp case.default.0x5206f9
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x51b1b3
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5206f9
cmp edx, dword [ebp + 0x5c]
ja 0x51b19e
cmp dword [ebp + 0x24], 0
je case.default.0x5206f9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x519fb2
jmp case.default.0x5206f9
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], edx
je 0x51b1f6
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x51b1f6
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 0x51b1fa
mov edx, dword [esp + 0x10]
cmp ecx, 0x85
ja 0x51b21b
je case.0x51afa7.8203
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x5206f9
jmp dword [ecx*4 + 0x522e68]
sub ecx, 0x2028
je case.0x51afa7.8203
sub ecx, 1
je case.0x51afa7.8203
jmp case.default.0x5206f9
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x38]
cmp ecx, dword [ebp + 0x54]
jb 0x51b274
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x5206f9
cmp ecx, dword [ebp + 0x5c]
ja 0x51b25f
cmp dword [ebp + 0x24], 0
je case.default.0x5206f9
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x519fb2
jmp case.default.0x5206f9
movzx edx, word [ecx]
add ecx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], ecx
je 0x51b2b5
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x51b2b5
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 + 0x5a4390]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5a8790]
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.0x5206dc.15
jmp dword [eax*4 + 0x522e78]
cmp cl, 0xf
je case.default.0x5206f9
mov eax, dword [esp + 0x10]
add dword [eax], 6
jmp 0x518b84
mov al, byte [edi*4 + 0x5a0181]
cmp al, 9
je 0x51b323
cmp al, 5
je 0x51b323
cmp al, 8
je 0x51b323
xor eax, eax
jmp 0x51b328
mov eax, 1
cmp eax, ebx
jne 0x51b300
jmp case.default.0x5206f9
movzx ecx, byte [edi*4 + 0x5a0181]
xor edx, edx
movzx eax, word [esi + 4]
cmp eax, dword [ecx*4 + 0x59dc20]
sete dl
cmp edx, ebx
jne 0x51b300
jmp case.default.0x5206f9
movzx eax, byte [edi*4 + 0x5a0181]
xor ecx, ecx
cmp word [esi + 4], ax
sete cl
cmp ecx, ebx
jne 0x51b300
jmp case.default.0x5206f9
movzx eax, byte [edi*4 + 0x5a0180]
jmp 0x51b35a
movzx ecx, word [esi + 4]
movzx eax, byte [edi*4 + 0x5a0180]
cmp cx, ax
je 0x51b323
movzx edx, word [edi*4 + 0x5a0188]
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 + 0x59fe88], eax
jne 0x51b323
xor eax, eax
jmp 0x51b328
movzx eax, byte [edi*4 + 0x5a0181]
mov eax, dword [eax*4 + 0x59dc20]
cmp eax, 1
je 0x51b323
cmp eax, 3
je 0x51b323
xor eax, eax
jmp 0x51b328
cmp edx, 0x20
ja 0x51b3fc
je case.0x51b2f0.0
add edx, 0xfffffff7
cmp edx, 4
ja case.0x51b46c.8203
jmp dword [edx*4 + 0x522eb0]
cmp edx, 0x2000
ja 0x51b44c
je case.0x51b2f0.0
cmp edx, 0x1680
ja 0x51b444
je case.0x51b2f0.0
sub edx, 0x85
je case.0x51b2f0.0
sub edx, 0x1b
je case.0x51b2f0.0
movzx eax, byte [edi*4 + 0x5a0181]
xor ecx, ecx
cmp dword [eax*4 + 0x59dc20], 6
jmp 0x51b360
cmp edx, 0x180e
jmp 0x51b427
cmp edx, 0x3000
ja case.0x51b46c.8203
je case.0x51b2f0.0
add edx, 0xffffdfff
cmp edx, 0x5e
ja case.0x51b46c.8203
movzx eax, byte [edx + 0x522ecc]
jmp dword [eax*4 + 0x522ec4]
movzx eax, byte [edi*4 + 0x5a0181]
mov eax, dword [eax*4 + 0x59dc20]
cmp eax, 1
je 0x51b323
cmp eax, 3
je 0x51b323
cmp edx, 0x5f
je 0x51b323
xor eax, eax
jmp 0x51b328
movzx eax, word [esi + 4]
mov ecx, dword [eax*4 + 0x59fbb8]
lea eax, [eax*4 + 0x59fbb8]
cmp edx, ecx
jb 0x51b4cd
nop word [eax + eax]
lea eax, [eax + 4]
cmp edx, ecx
je 0x51b4dd
mov ecx, dword [eax]
cmp edx, ecx
jae 0x51b4c0
cmp byte [esp + 0x58], 0xf
je 0x51b300
jmp case.default.0x5206f9
cmp byte [esp + 0x58], 0xf
jne 0x51b300
jmp case.default.0x5206f9
cmp edx, 0x24
je 0x51b323
cmp edx, 0x40
je 0x51b323
cmp edx, 0x60
je 0x51b323
cmp edx, 0xa0
jb 0x51b51c
cmp edx, 0xd7ff
jbe 0x51b323
cmp edx, 0xe000
jae 0x51b323
xor eax, eax
jmp 0x51b328
mov ax, word [edi*4 + 0x5a0188]
xor ecx, ecx
shr ax, 0xb
cmp ax, word [esi + 4]
jmp 0x51b360
movzx ecx, word [esi + 4]
movzx edx, word [edi*4 + 0x5a018a]
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 + 0x59f630]
and ecx, eax
neg ecx
sbb ecx, ecx
neg ecx
jmp 0x51b363
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x51b5bc
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5206f9
cmp edx, dword [ebp + 0x5c]
ja 0x51b5a7
cmp dword [ebp + 0x24], 0
je case.default.0x5206f9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x519fb2
jmp case.default.0x5206f9
movzx ecx, word [edx]
add edx, 2
mov ebx, dword [esp + 0x14]
mov esi, edx
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x51b600
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x51b600
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.0052fc70
mov ecx, dword [esp + 0x28]
add esp, 0x18
mov dword [ecx + 0x38], eax
cmp eax, dword [ebp + 0x54]
jb 0x51b645
movzx ecx, word [ebp + 0x3c]
mov edx, ecx
test cx, cx
je 0x51b645
cmp eax, dword [ebp + 0x5c]
ja 0x51b635
cmp dword [ebp + 0x24], 0
je 0x51b645
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x519fb2
mov eax, dword [esp + 0x10]
mov edx, ebx
add dword [eax], 2
jmp 0x518b90
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 0x51b76e
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 0x51b76e
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 0x51b76e
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 0x51b76e
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 0x51b76e
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 0x51b76e
movzx ecx, word [esi]
add esi, 2
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x10]
mov ebp, dword [ecx*4 + 0x59d16c]
mov dword [eax], esi
mov dword [eax + 0x20], ebp
mov eax, dword [ecx*4 + 0x59d198]
mov dword [edx + 0x24], eax
mov eax, dword [ecx*4 + 0x59d1c4]
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 0x51b790
cmp edx, 0xf
je 0x51b790
or edx, 0xffffffff
jmp 0x51b7ac
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 0x51b911
mov edi, dword [eax + 0x28]
test edx, edx
js 0x51c43b
xor ebx, ebx
cmp edi, 0xf
sete bl
cmp edx, 0xd
ja case.0x5206dc.15
jmp dword [edx*4 + 0x522f2c]
cmp edi, 0xf
je 0x518ecd
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 0x51b82c
movzx edx, word [ecx]
lea eax, [ecx + 2]
mov dword [ebx + 0x38], eax
mov ecx, eax
test edi, edi
je 0x51b820
and edx, 0xfc00
cmp edx, 0xd800
jne 0x51b820
lea ecx, [eax + 2]
mov dword [ebx + 0x38], ecx
inc esi
cmp esi, ebp
jbe 0x51b7f4
mov esi, edi
jmp 0x51b919
mov ebp, eax
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je 0x51b854
cmp ecx, dword [ebp + 0x5c]
ja 0x51b844
cmp dword [ebp + 0x24], 0
je 0x51b854
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x519fb2
mov eax, dword [esp + 0x10]
xor esi, esi
mov edx, edi
jmp 0x518edb
mov esi, dword [eax + 0x38]
mov edi, 1
jmp 0x51b874
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x6c]
cmp esi, dword [ecx + 0x54]
jae 0x51b967
cmp dword [esp + 0x14], 0
lea edx, [esi + 2]
movzx ecx, word [esi]
mov esi, edx
mov dword [eax + 0x38], edx
je 0x51b8c4
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x51b8c4
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 + 0x5a4390]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5a8790]
lea eax, [eax + eax*2]
mov al, byte [eax*4 + 0x5a0181]
cmp al, 9
je 0x51b8fb
cmp al, 5
je 0x51b8fb
cmp al, 8
je 0x51b8fb
xor eax, eax
jmp 0x51b900
mov eax, 1
cmp eax, ebx
je 0x518ecd
inc edi
cmp edi, ebp
jbe 0x51b870
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 0x5192cd
cmp dword [esp + 0x18], 0
mov ecx, dword [esp + 0x5c]
je 0x52223d
mov esi, dword [ebx + 0x38]
mov dword [ebx + 4], esi
mov ebx, dword [ebx + 0x28]
test ecx, ecx
js 0x51e0ca
xor eax, eax
cmp ebx, 0xf
sete al
mov dword [esp + 0x5c], eax
cmp ecx, 0xd
ja case.0x5206dc.15
jmp dword [ecx*4 + 0x522f64]
mov ebp, ecx
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5206f9
cmp esi, dword [ebp + 0x5c]
ja 0x51b987
cmp dword [ebp + 0x24], 0
je case.default.0x5206f9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x519fb2
jmp case.default.0x5206f9
mov esi, dword [eax + 0x38]
mov edi, 1
jmp 0x51b9b4
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x6c]
cmp esi, dword [ecx + 0x54]
jae 0x51ba55
cmp dword [esp + 0x14], 0
lea edx, [esi + 2]
movzx ecx, word [esi]
mov esi, edx
mov dword [eax + 0x38], edx
je 0x51ba04
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x51ba04
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 + 0x5a4390]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5a8790]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5a0181]
mov eax, dword [eax*4 + 0x59dc20]
cmp eax, dword [edx + 0x2c]
sete cl
cmp ecx, ebx
je 0x518ecd
inc edi
cmp edi, ebp
jbe 0x51b9b0
jmp 0x51b911
mov ebp, ecx
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5206f9
cmp esi, dword [ebp + 0x5c]
ja 0x51ba75
cmp dword [ebp + 0x24], 0
je case.default.0x5206f9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x519fb2
jmp case.default.0x5206f9
mov esi, dword [eax + 0x38]
mov edi, 1
jmp 0x51ba98
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x6c]
cmp esi, dword [ecx + 0x54]
jae 0x51bb32
cmp dword [esp + 0x14], 0
lea edx, [esi + 2]
movzx ecx, word [esi]
mov esi, edx
mov dword [eax + 0x38], edx
je 0x51bae8
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x51bae8
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 + 0x5a4390]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5a8790]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5a0181]
cmp eax, dword [edx + 0x2c]
sete cl
cmp ecx, ebx
je 0x518ecd
inc edi
cmp edi, ebp
jbe 0x51ba94
jmp 0x51b911
mov ebp, ecx
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5206f9
cmp esi, dword [ebp + 0x5c]
ja 0x51bb52
cmp dword [ebp + 0x24], 0
je case.default.0x5206f9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x519fb2
jmp case.default.0x5206f9
mov esi, dword [eax + 0x38]
mov edi, 1
jmp 0x51bb75
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x6c]
cmp esi, dword [ecx + 0x54]
jae 0x51bc0f
cmp dword [esp + 0x14], 0
lea edx, [esi + 2]
movzx ecx, word [esi]
mov esi, edx
mov dword [eax + 0x38], edx
je 0x51bbc5
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x51bbc5
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 + 0x5a4390]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5a8790]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5a0180]
cmp eax, dword [edx + 0x2c]
sete cl
cmp ecx, ebx
je 0x518ecd
inc edi
cmp edi, ebp
jbe 0x51bb71
jmp 0x51b911
mov ebp, ecx
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5206f9
cmp esi, dword [ebp + 0x5c]
ja 0x51bc2f
cmp dword [ebp + 0x24], 0
je case.default.0x5206f9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x519fb2
jmp case.default.0x5206f9
mov esi, dword [eax + 0x38]
mov edi, 1
jmp 0x51bc54
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x6c]
cmp esi, dword [ecx + 0x54]
jae 0x51bd1e
cmp dword [esp + 0x14], 0
lea edx, [esi + 2]
movzx ecx, word [esi]
mov esi, edx
mov dword [eax + 0x38], edx
je 0x51bca4
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x51bca4
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 + 0x5a4390]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5a8790]
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x2c]
movzx eax, byte [edx*4 + 0x5a0180]
cmp eax, ecx
je 0x51bd03
movzx edx, word [edx*4 + 0x5a0188]
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 + 0x59fe88], eax
jne 0x51bd03
xor eax, eax
jmp 0x51bd08
mov eax, 1
cmp eax, ebx
je 0x518ecd
inc edi
cmp edi, ebp
jbe 0x51bc50
jmp 0x51b911
mov ebp, ecx
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5206f9
cmp esi, dword [ebp + 0x5c]
ja 0x51bd3e
cmp dword [ebp + 0x24], 0
je case.default.0x5206f9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x519fb2
jmp case.default.0x5206f9
mov esi, dword [eax + 0x38]
mov edi, 1
jmp 0x51bd64
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x6c]
cmp esi, dword [ecx + 0x54]
jae 0x51be0c
cmp dword [esp + 0x14], 0
lea edx, [esi + 2]
movzx ecx, word [esi]
mov esi, edx
mov dword [eax + 0x38], edx
je 0x51bdb4
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x51bdb4
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 + 0x5a4390]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5a8790]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5a0181]
mov eax, dword [eax*4 + 0x59dc20]
cmp eax, 1
je 0x51bdf1
cmp eax, 3
je 0x51bdf1
xor eax, eax
jmp 0x51bdf6
mov eax, 1
cmp eax, ebx
je 0x518ecd
inc edi
cmp edi, ebp
jbe 0x51bd60
jmp 0x51b911
mov ebp, ecx
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5206f9
cmp esi, dword [ebp + 0x5c]
ja 0x51be2c
cmp dword [ebp + 0x24], 0
je case.default.0x5206f9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x519fb2
jmp case.default.0x5206f9
mov ebp, dword [esp + 0x6c]
mov esi, 1
nop word [eax + eax]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebp + 0x54]
jae 0x51bf73
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], edx
je 0x51be9f
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x51be9f
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 0x51bea3
mov edx, dword [esp + 0x10]
cmp ecx, 0x20
ja 0x51bebd
je case.0x51bf67.8193
lea eax, [ecx - 9]
cmp eax, 4
ja case.0x51bf67.8203
jmp dword [eax*4 + 0x522f9c]
cmp ecx, 0x2000
ja 0x51bf4b
je case.0x51bf67.8193
cmp ecx, 0x1680
ja 0x51bf43
je case.0x51bf67.8193
mov eax, ecx
sub eax, 0x85
je case.0x51bf67.8193
sub eax, 0x1b
je case.0x51bf67.8193
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5a4390]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5a8790]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5a0181]
cmp dword [eax*4 + 0x59dc20], 6
sete cl
cmp ecx, ebx
je case.default.0x5206f9
inc esi
cmp esi, dword [edx + 0x20]
ja 0x51b911
mov eax, dword [esp + 0x10]
jmp 0x51be50
cmp ecx, 0x180e
jmp 0x51beed
cmp ecx, 0x3000
ja case.0x51bf67.8203
je case.0x51bf67.8193
lea eax, [ecx - 0x2001]
cmp eax, 0x5e
ja case.0x51bf67.8203
movzx eax, byte [eax + 0x522fb8]
jmp dword [eax*4 + 0x522fb0]
cmp edi, 0xf
jmp 0x51bf2a
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5206f9
cmp edx, dword [ebp + 0x5c]
ja 0x51bf91
cmp dword [ebp + 0x24], 0
je case.default.0x5206f9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x519fb2
jmp case.default.0x5206f9
mov esi, dword [eax + 0x38]
mov edi, 1
jmp 0x51bfb4
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x6c]
cmp esi, dword [ecx + 0x54]
jae 0x51c063
cmp dword [esp + 0x14], 0
lea ecx, [esi + 2]
movzx edx, word [esi]
mov esi, ecx
mov dword [eax + 0x38], ecx
je 0x51c004
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x51c004
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 + 0x5a4390]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5a8790]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5a0181]
mov eax, dword [eax*4 + 0x59dc20]
cmp eax, 1
je 0x51c048
cmp eax, 3
je 0x51c048
cmp edx, 0x5f
je 0x51c048
xor eax, eax
jmp 0x51c04d
mov eax, 1
cmp eax, ebx
je 0x518ecd
inc edi
cmp edi, ebp
jbe 0x51bfb0
jmp 0x51b911
mov ebp, ecx
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5206f9
cmp esi, dword [ebp + 0x5c]
ja 0x51c083
cmp dword [ebp + 0x24], 0
je case.default.0x5206f9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x519fb2
jmp case.default.0x5206f9
mov ebx, dword [esp + 0x14]
mov esi, 1
mov ecx, dword [esp + 0x6c]
mov edx, dword [eax + 0x38]
cmp edx, dword [ecx + 0x54]
jae 0x51c142
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test ebx, ebx
je 0x51c0f3
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x51c0ef
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 + 0x59fbb8]
lea eax, [eax*4 + 0x59fbb8]
cmp ecx, edx
jb 0x51c115
lea eax, [eax + 4]
cmp ecx, edx
je 0x51c12c
mov edx, dword [eax]
cmp ecx, edx
jae 0x51c108
cmp edi, 0xf
jne 0x51c131
inc esi
cmp esi, ebp
ja 0x51b911
mov eax, dword [esp + 0x10]
jmp 0x51c0a1
cmp edi, 0xf
jne 0x51c11a
mov eax, dword [esp + 0x10]
xor esi, esi
mov ebp, dword [esp + 0x6c]
mov edx, ebx
jmp 0x518edb
mov ebp, ecx
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x51c16a
cmp edx, dword [ebp + 0x5c]
ja 0x51c15a
cmp dword [ebp + 0x24], 0
je 0x51c16a
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x519fb2
mov eax, dword [esp + 0x10]
xor esi, esi
mov edx, ebx
jmp 0x518edb
mov esi, 1
jmp 0x51c184
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x6c]
mov edx, dword [eax + 0x38]
cmp edx, dword [ecx + 0x54]
jae 0x51c21b
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], edx
je 0x51c1d5
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x51c1d5
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 0x51c200
cmp ecx, 0x40
je 0x51c200
cmp ecx, 0x60
je 0x51c200
cmp ecx, 0xa0
jb 0x51c1f4
cmp ecx, 0xd7ff
jbe 0x51c200
cmp ecx, 0xe000
jae 0x51c200
xor eax, eax
jmp 0x51c205
mov eax, 1
cmp eax, ebx
je 0x518ecd
inc esi
cmp esi, ebp
jbe 0x51c180
jmp 0x51b911
mov ebp, ecx
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5206f9
cmp edx, dword [ebp + 0x5c]
ja 0x51c23b
cmp dword [ebp + 0x24], 0
je case.default.0x5206f9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x519fb2
jmp case.default.0x5206f9
mov esi, dword [eax + 0x38]
mov edi, 1
jmp 0x51c264
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x6c]
cmp esi, dword [ecx + 0x54]
jae 0x51c301
cmp dword [esp + 0x14], 0
lea edx, [esi + 2]
movzx ecx, word [esi]
mov esi, edx
mov dword [eax + 0x38], edx
je 0x51c2b4
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x51c2b4
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 + 0x5a4390]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5a8790]
lea eax, [eax + eax*2]
movzx eax, word [eax*4 + 0x5a0188]
shr eax, 0xb
cmp eax, dword [edx + 0x2c]
sete cl
cmp ecx, ebx
je 0x518ecd
inc edi
cmp edi, ebp
jbe 0x51c260
jmp 0x51b911
mov ebp, ecx
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5206f9
cmp esi, dword [ebp + 0x5c]
ja 0x51c321
cmp dword [ebp + 0x24], 0
je case.default.0x5206f9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x519fb2
jmp case.default.0x5206f9
mov esi, dword [eax + 0x38]
mov edi, 1
nop
mov ecx, dword [esp + 0x6c]
cmp esi, dword [ecx + 0x54]
jae 0x51c406
cmp dword [esp + 0x14], 0
lea ecx, [esi + 2]
movzx edx, word [esi]
mov esi, ecx
mov dword [eax + 0x38], ecx
je 0x51c394
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x51c390
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 + 0x5a4390]
shl eax, 7
add eax, edx
movzx eax, word [eax*2 + 0x5a8790]
lea eax, [eax + eax*2]
movzx edx, word [eax*4 + 0x5a018a]
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 + 0x59f630]
and ecx, eax
mov eax, dword [esp + 0x10]
neg ecx
sbb ecx, ecx
neg ecx
cmp ecx, ebx
je 0x51c3fb
inc edi
cmp edi, ebp
jbe 0x51c340
jmp 0x51b911
mov ebp, dword [esp + 0x6c]
xor esi, esi
jmp 0x518ed7
mov ebp, ecx
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5206f9
cmp esi, dword [ebp + 0x5c]
ja 0x51c426
cmp dword [ebp + 0x24], 0
je case.default.0x5206f9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x519fb2
jmp case.default.0x5206f9
cmp edi, 0x16
jne 0x51c52c
mov ebp, dword [esp + 0x6c]
mov edi, 1
mov esi, dword [ebp + 0x54]
jmp 0x51c456
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, esi
jae 0x51c4f9
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 0x51c4a4
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x51c4a4
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.0052fc70
mov dword [ebx + 0x38], eax
add esp, 0x18
mov esi, dword [ebp + 0x54]
cmp eax, esi
jb 0x51c4ea
movzx ecx, word [ebp + 0x3c]
mov edx, ecx
test cx, cx
je 0x51c4ea
cmp eax, dword [ebp + 0x5c]
ja 0x51c4da
cmp dword [ebp + 0x24], 0
je 0x51c4ea
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x519fb2
inc edi
cmp edi, dword [ebx + 0x20]
jbe 0x51c452
jmp 0x51b915
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5206f9
cmp edx, dword [ebp + 0x5c]
ja 0x51c517
cmp dword [ebp + 0x24], 0
je case.default.0x5206f9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x519fb2
jmp case.default.0x5206f9
lea eax, [edi - 6]
cmp eax, 0xf
ja case.0x5206dc.15
mov esi, dword [esp + 0x14]
test esi, esi
je 0x51ceba
jmp dword [eax*4 + 0x523018]
jmp dword [eax*4 + 0x523158]
cmp edi, ebp
jae 0x51e0a7
nop dword [eax + eax]
mov eax, dword [esp + 0x6c]
mov ecx, 1
cmp esi, dword [eax + 0x54]
jae 0x51d6ea
cmp dword [esp + 0x14], 0
je 0x51d6cd
mov eax, 0xfc00
mov edx, 0xd800
and ax, word [esi]
cmp ax, dx
mov eax, 2
cmove ecx, eax
cmp ebx, 0xf
je 0x51e0a7
mov eax, dword [esp + 0x10]
lea esi, [esi + ecx*2]
inc edi
mov dword [eax + 0x38], esi
cmp edi, ebp
jb 0x51d6a0
jmp 0x51e0a7
mov ebp, eax
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x51e0ab
cmp esi, dword [ebp + 0x5c]
ja 0x51d70a
cmp dword [ebp + 0x24], 0
je 0x51e0ab
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x519fb2
jmp 0x51e0ab
cmp edi, ebp
jae 0x51e0a7
mov ebx, dword [esp + 0x5c]
nop dword [eax + eax]
mov eax, dword [esp + 0x6c]
mov edx, 1
cmp esi, dword [eax + 0x54]
jae 0x51d7d5
cmp dword [esp + 0x14], 0
movzx ecx, word [esi]
je 0x51d779
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x51d779
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 + 0x5a4390]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5a8790]
lea eax, [eax + eax*2]
mov al, byte [eax*4 + 0x5a0181]
cmp al, 9
je 0x51d7b0
cmp al, 5
je 0x51d7b0
cmp al, 8
je 0x51d7b0
xor eax, eax
jmp 0x51d7b5
mov eax, 1
cmp eax, ebx
je 0x51e0a7
mov eax, dword [esp + 0x10]
lea esi, [esi + edx*2]
inc edi
mov dword [eax + 0x38], esi
cmp edi, ebp
jb 0x51d730
jmp 0x51e0a7
mov ebp, eax
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x51e0ab
cmp esi, dword [ebp + 0x5c]
ja 0x51d7f5
cmp dword [ebp + 0x24], 0
je 0x51e0ab
mov dword [ebp + 0x1c], edx
cmp ecx, 1
ja 0x519fb2
jmp 0x51e0ab
cmp edi, ebp
jae 0x51e0a7
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x6c]
mov edx, 1
cmp esi, dword [eax + 0x54]
jae 0x51d7d5
cmp dword [esp + 0x14], 0
movzx ecx, word [esi]
je 0x51d857
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x51d857
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 + 0x5a4390]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5a8790]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5a0181]
mov eax, dword [eax*4 + 0x59dc20]
cmp eax, dword [ebx + 0x2c]
sete cl
cmp ecx, dword [esp + 0x5c]
je 0x51e0a7
inc edi
lea esi, [esi + edx*2]
mov dword [ebx + 0x38], esi
cmp edi, ebp
jb 0x51d812
jmp 0x51e0a7
cmp edi, ebp
jae 0x51e0a7
mov ebx, dword [esp + 0x10]
nop dword [eax + eax]
mov eax, dword [esp + 0x6c]
mov edx, 1
cmp esi, dword [eax + 0x54]
jae 0x51d7d5
cmp dword [esp + 0x14], 0
movzx ecx, word [esi]
je 0x51d909
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x51d909
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 + 0x5a4390]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5a8790]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5a0181]
cmp eax, dword [ebx + 0x2c]
sete cl
cmp ecx, dword [esp + 0x5c]
je 0x51e0a7
inc edi
lea esi, [esi + edx*2]
mov dword [ebx + 0x38], esi
cmp edi, ebp
jb 0x51d8c0
jmp 0x51e0a7
cmp edi, ebp
jae 0x51e0a7
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x6c]
mov edx, 1
cmp esi, dword [eax + 0x54]
jae 0x51d7d5
cmp dword [esp + 0x14], 0
movzx ecx, word [esi]
je 0x51d9ac
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x51d9ac
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 + 0x5a4390]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5a8790]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5a0180]
cmp eax, dword [ebx + 0x2c]
sete cl
cmp ecx, dword [esp + 0x5c]
je 0x51e0a7
inc edi
lea esi, [esi + edx*2]
mov dword [ebx + 0x38], esi
cmp edi, ebp
jb 0x51d963
jmp 0x51e0a7
cmp edi, ebp
jae 0x51e0a7
mov ebx, dword [esp + 0x5c]
nop word [eax + eax]
mov eax, dword [esp + 0x6c]
mov edi, 1
cmp esi, dword [eax + 0x54]
jae 0x51dae5
cmp dword [esp + 0x14], 0
movzx ecx, word [esi]
je 0x51da59
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x51da59
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 + 0x5a4390]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5a8790]
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x2c]
movzx eax, byte [edx*4 + 0x5a0180]
cmp eax, ecx
je 0x51dab8
movzx edx, word [edx*4 + 0x5a0188]
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 + 0x59fe88], eax
jne 0x51dab8
xor eax, eax
jmp 0x51dabd
mov eax, 1
cmp eax, ebx
je 0x51e0a7
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 0x51da10
jmp 0x51e0a7
mov ebp, eax
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x51e0ab
cmp esi, dword [ebp + 0x5c]
ja 0x51db05
cmp dword [ebp + 0x24], 0
je 0x51e0ab
mov dword [ebp + 0x1c], edi
jmp 0x51d7f8
cmp edi, ebp
jae 0x51e0a7
mov ebx, dword [esp + 0x5c]
nop dword [eax]
mov eax, dword [esp + 0x6c]
mov edx, 1
cmp esi, dword [eax + 0x54]
jae 0x51d7d5
cmp dword [esp + 0x14], 0
movzx ecx, word [esi]
je 0x51db69
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x51db69
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 + 0x5a4390]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5a8790]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5a0181]
mov eax, dword [eax*4 + 0x59dc20]
cmp eax, 1
je 0x51dba6
cmp eax, 3
je 0x51dba6
xor eax, eax
jmp 0x51dbab
mov eax, 1
cmp eax, ebx
je 0x51e0a7
mov eax, dword [esp + 0x10]
lea esi, [esi + edx*2]
inc edi
mov dword [eax + 0x38], esi
cmp edi, ebp
jb 0x51db20
jmp 0x51e0a7
cmp edi, ebp
mov ebp, dword [esp + 0x6c]
jae 0x51e0ab
nop word [eax + eax]
mov edx, 1
cmp esi, dword [ebp + 0x54]
jae 0x51d7d7
cmp dword [esp + 0x14], 0
movzx ecx, word [esi]
je 0x51dc25
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x51dc25
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 0x51dc3f
je case.0x51dcf5.8193
lea eax, [ecx - 9]
cmp eax, 4
ja case.0x51dcf5.8203
jmp dword [eax*4 + 0x523298]
cmp ecx, 0x2000
ja 0x51dcd9
je case.0x51dcf5.8193
cmp ecx, 0x1680
ja 0x51dcd1
je case.0x51dcf5.8193
mov eax, ecx
sub eax, 0x85
je case.0x51dcf5.8193
sub eax, 0x1b
je case.0x51dcf5.8193
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5a4390]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5a8790]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5a0181]
cmp dword [eax*4 + 0x59dc20], 6
sete cl
cmp ecx, dword [esp + 0x5c]
je 0x51e0ab
mov eax, dword [esp + 0x10]
lea esi, [esi + edx*2]
inc edi
mov dword [eax + 0x38], esi
cmp edi, dword [eax + 0x24]
jb 0x51dbe0
jmp 0x51e0ab
cmp ecx, 0x180e
jmp 0x51dc73
cmp ecx, 0x3000
ja case.0x51dcf5.8203
je case.0x51dcf5.8193
lea eax, [ecx - 0x2001]
cmp eax, 0x5e
ja case.0x51dcf5.8203
movzx eax, byte [eax + 0x5232b4]
jmp dword [eax*4 + 0x5232ac]
cmp ebx, 0xf
je 0x51e0ab
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 0x38]
jmp 0x51dcbc
cmp edi, ebp
jae 0x51e0a7
mov ebx, dword [esp + 0x5c]
nop word [eax + eax]
mov eax, dword [esp + 0x6c]
mov edi, 1
cmp esi, dword [eax + 0x54]
jae 0x51dae5
cmp dword [esp + 0x14], 0
movzx edx, word [esi]
je 0x51dd69
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x51dd69
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 + 0x5a4390]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5a8790]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5a0181]
mov eax, dword [eax*4 + 0x59dc20]
cmp eax, 1
je 0x51ddad
cmp eax, 3
je 0x51ddad
cmp edx, 0x5f
je 0x51ddad
xor eax, eax
jmp 0x51ddb2
mov eax, 1
cmp eax, ebx
je 0x51e0a7
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 0x51dd20
jmp 0x51e0a7
cmp edi, ebp
jae 0x51e0a7
mov eax, dword [esp + 0x6c]
mov edi, 1
cmp esi, dword [eax + 0x54]
jae 0x51dae5
cmp dword [esp + 0x14], 0
movzx ecx, word [esi]
je 0x51de2b
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x51de2b
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 + 0x59fbb8]
lea eax, [eax*4 + 0x59fbb8]
cmp ecx, edx
jb 0x51de51
lea eax, [eax + 4]
cmp ecx, edx
je 0x51de79
mov edx, dword [eax]
cmp ecx, edx
jae 0x51de44
cmp ebx, 0xf
jne 0x51e0a7
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 0x51dde2
jmp 0x51e0a7
cmp ebx, 0xf
je 0x51e0a7
jmp 0x51de5a
cmp edi, ebp
jae 0x51e0a7
mov ebx, dword [esp + 0x5c]
mov eax, dword [esp + 0x6c]
mov edx, 1
cmp esi, dword [eax + 0x54]
jae 0x51d7d5
cmp dword [esp + 0x14], 0
movzx ecx, word [esi]
je 0x51ded9
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x51ded9
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 0x51df04
cmp ecx, 0x40
je 0x51df04
cmp ecx, 0x60
je 0x51df04
cmp ecx, 0xa0
jb 0x51def8
cmp ecx, 0xd7ff
jbe 0x51df04
cmp ecx, 0xe000
jae 0x51df04
xor eax, eax
jmp 0x51df09
mov eax, 1
cmp eax, ebx
je 0x51e0a7
mov eax, dword [esp + 0x10]
lea esi, [esi + edx*2]
inc edi
mov dword [eax + 0x38], esi
cmp edi, ebp
jb 0x51de90
jmp 0x51e0a7
cmp edi, ebp
jae 0x51e0a7
mov ebx, dword [esp + 0x10]
nop word [eax + eax]
mov eax, dword [esp + 0x6c]
mov edx, 1
cmp esi, dword [eax + 0x54]
jae 0x51d7d5
cmp dword [esp + 0x14], 0
movzx ecx, word [esi]
je 0x51df89
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x51df89
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 + 0x5a4390]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5a8790]
lea eax, [eax + eax*2]
movzx eax, word [eax*4 + 0x5a0188]
shr eax, 0xb
cmp eax, dword [ebx + 0x2c]
sete cl
cmp ecx, dword [esp + 0x5c]
je 0x51e0a7
inc edi
lea esi, [esi + edx*2]
mov dword [ebx + 0x38], esi
cmp edi, ebp
jb 0x51df40
jmp 0x51e0a7
cmp edi, ebp
jae 0x51e0a7
mov ebx, dword [esp + 0x10]
nop word [eax + eax]
mov eax, dword [esp + 0x6c]
mov edi, 1
cmp esi, dword [eax + 0x54]
jae 0x51dae5
cmp dword [esp + 0x14], 0
movzx edx, word [esi]
je 0x51e039
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x51e039
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 + 0x5a4390]
shl eax, 7
add eax, edx
movzx eax, word [eax*2 + 0x5a8790]
lea eax, [eax + eax*2]
movzx edx, word [eax*4 + 0x5a018a]
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 + 0x59f630]
and ecx, eax
neg ecx
sbb ecx, ecx
neg ecx
cmp ecx, dword [esp + 0x5c]
je 0x51e0a7
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 0x51dff0
mov ebp, dword [esp + 0x6c]
cmp dword [esp + 0x18], 2
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x68]
je 0x518b90
mov ebx, dword [esp + 0x10]
mov ecx, dword [ebx + 0x38]
jmp 0x521c79
cmp ebx, 0x16
jne 0x51e1ca
cmp edi, ebp
mov ebp, dword [esp + 0x6c]
jae 0x51e1b2
mov esi, dword [ebp + 0x54]
mov ebx, dword [esp + 0x10]
nop word [eax + eax]
mov edx, dword [ebx + 0x38]
cmp edx, esi
jae 0x51e18c
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov esi, edx
mov dword [ebx + 0x38], edx
je 0x51e13a
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x51e13a
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.0052fc70
mov dword [ebx + 0x38], eax
add esp, 0x18
mov esi, dword [ebp + 0x54]
cmp eax, esi
jb 0x51e180
movzx ecx, word [ebp + 0x3c]
mov edx, ecx
test cx, cx
je 0x51e180
cmp eax, dword [ebp + 0x5c]
ja 0x51e170
cmp dword [ebp + 0x24], 0
je 0x51e180
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x519fb2
inc edi
cmp edi, dword [ebx + 0x24]
jb 0x51e0f0
jmp 0x51e1b2
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x51e1b2
cmp edx, dword [ebp + 0x5c]
ja 0x51e1a2
cmp dword [ebp + 0x24], 0
je 0x51e1b2
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x519fb2
cmp dword [esp + 0x18], 2
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x68]
je 0x518b90
jmp 0x5221a0
lea eax, [ebx - 6]
cmp eax, 0xf
ja case.0x5206dc.15
mov edx, dword [esp + 0x14]
test edx, edx
je 0x51ea1c
jmp dword [eax*4 + 0x523314]
jmp dword [eax*4 + 0x5233cc]
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 0x51f205
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 0x51f1fa
cmp dword [ebp + eax*4 + 0x54], 0xffffffff
jne 0x51f205
movzx eax, word [ebx + 0x42]
lea ecx, [ecx + eax*2]
test edx, edx
jg 0x51f1e0
mov esi, dword [ebp]
jmp 0x51f231
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.0x51f249
movzx eax, byte [eax + 0x523504]
jmp dword [eax*4 + 0x5234fc]
mov ecx, dword [edx*4 + 0x59d138]
lea eax, [esi + 2]
mov ebx, dword [edx*4 + 0x59d164]
mov edx, dword [edx*4 + 0x59d190]
mov dword [ebp], eax
mov dword [ebp + 0x20], ecx
mov dword [ebp + 0x24], ebx
mov dword [esp + 0x18], edx
jmp 0x51f2a7
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 + 0x59d190]
mov dword [esp + 0x18], eax
test ebx, ebx
jne 0x51f2a1
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 0x51f2cc
mov eax, dword [ebp + edi*4 + 0x54]
cmp eax, 0xffffffff
je 0x51f2cc
mov edx, dword [esp + 0x14]
cmp eax, dword [ebp + edi*4 + 0x58]
je 0x519167
mov eax, dword [esp + 0x6c]
jmp 0x51f2e9
mov edx, dword [esp + 0x14]
test ecx, ecx
je 0x519167
mov eax, dword [esp + 0x6c]
test dword [eax + 0x7c], 0x200
jne 0x518b70
mov esi, 1
cmp ecx, esi
jb 0x51f328
mov edi, dword [ebp + 0x14]
lea ecx, [esp + 0x40]
push ecx
push eax
push ebp
push dword [ebp + 0x28]
push edi
call fcn.005238e0
add esp, 0x14
test eax, eax
jne 0x51f3a1
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 0x51f2f2
mov ebx, dword [ebp + 0x24]
mov edx, dword [esp + 0x14]
cmp ecx, ebx
je 0x519167
cmp dword [esp + 0x18], 0
je 0x5222fe
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 0x520298
lea eax, [esp + 0x44]
push eax
push ebp
push ebx
push dword [ebx + 0x28]
push dword [ebx + 0x14]
call fcn.005238e0
add esp, 0x14
test eax, eax
jne 0x51f3f2
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 0x51f368
jmp 0x51f417
jle 0x51f3af
mov eax, dword [esp + 0x6c]
mov ecx, dword [eax + 0x54]
mov dword [ebp + 0x38], ecx
jmp 0x51f3b2
mov ecx, dword [ebp + 0x38]
mov ebp, dword [esp + 0x6c]
cmp ecx, dword [ebp + 0x54]
jb case.default.0x5206f9
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x5206f9
cmp ecx, dword [ebp + 0x5c]
ja 0x51f3dd
cmp dword [ebp + 0x24], 0
je case.default.0x5206f9
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x519fb2
jmp case.default.0x5206f9
jle 0x51f417
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x51f417
mov eax, dword [ebp + 0x54]
cmp eax, dword [ebp + 0x5c]
jbe 0x51f417
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x519fb2
test esi, esi
jne 0x520298
mov dword [ebx + 0x24], edi
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x16
jmp 0x5227a2
lea eax, [esp + 0x28]
push eax
push ebx
push ebp
push dword [ebp + 0x28]
push dword [ebp + 0x14]
call fcn.005238e0
add esp, 0x14
test eax, eax
je 0x51f493
jle 0x51f450
mov ecx, dword [ebx + 0x54]
mov dword [ebp + 0x38], ecx
jmp 0x51f453
mov ecx, dword [ebp + 0x38]
mov ebp, dword [esp + 0x6c]
cmp ecx, dword [ebp + 0x54]
jb case.default.0x5206f9
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x5206f9
cmp ecx, dword [ebp + 0x5c]
ja 0x51f47e
cmp dword [ebp + 0x24], 0
je case.default.0x5206f9
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x519fb2
jmp case.default.0x5206f9
mov eax, dword [esp + 0x28]
add eax, eax
add dword [ebp + 0x38], eax
mov ebp, dword [esp + 0x6c]
jmp 0x518b84
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 0x51f4b0
lea eax, [esi + 4]
mov dword [ecx], eax
jmp 0x518b90
cmp dword [ebp + 0x20], 0
mov ebx, dword [esp + 0x10]
jne 0x51f4dd
cmp dword [ebx + 0x18], 0
jne 0x51fe99
xor eax, eax
jmp 0x5225a9
mov ebx, dword [esp + 0x10]
lea eax, [esp + 0x28]
push eax
push ebp
push ebx
call fcn.00518960
mov esi, eax
add esp, 0xc
test esi, esi
jg case.default.0x5206f9
js 0x518ed3
mov eax, dword [esp + 0x28]
add eax, eax
add dword [ebx], eax
jmp 0x518b88
movzx eax, word [esi + 2]
mov edi, dword [esp + 0x10]
mov dword [edi + 0xc], eax
cmp word [esi + eax*2], 0x78
je 0x51f52c
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 0x51f540
cmp eax, 0x77
jne 0x51f570
lea eax, [esp + 0x28]
push eax
push ebp
push edi
call fcn.00518960
mov esi, eax
add esp, 0xc
test esi, esi
jg case.default.0x5206f9
js 0x518ed3
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.0x51f589.150
movzx eax, byte [eax + 0x523528]
jmp dword [eax*4 + 0x52350c]
mov ecx, dword [edi + 0x44]
cmp ecx, 0xffffffff
je case.0x51f589.148
movzx eax, word [ebx + 2]
mov ebx, dword [esp + 0x10]
cmp eax, 0xffff
je 0x52204e
cmp eax, ecx
je 0x52204e
jmp 0x522060
mov edi, dword [edi + 0x44]
cmp edi, 0xffffffff
je case.0x51f589.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.0x51f589.148
movzx eax, word [ecx]
dec edx
cmp eax, edi
je 0x51f619
lea ecx, [ecx + esi*2]
test edx, edx
jg 0x51f5e5
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 0x522060
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 + 0x59da80]
jmp 0x522065
movzx eax, word [ebx + 2]
mov ebx, dword [esp + 0x10]
lea eax, [eax*2 - 2]
cmp eax, dword [ebx + 0x50]
jae 0x522060
cmp dword [ebx + eax*4 + 0x54], 0xffffffff
je 0x522060
mov ecx, dword [ebx]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x59da80]
jmp 0x522065
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 0x522060
mov edi, dword [ebx + 0x50]
movzx eax, word [ecx]
dec edx
lea eax, [eax*2 - 2]
cmp eax, edi
jae 0x51f6bc
cmp dword [ebx + eax*4 + 0x54], 0xffffffff
jne 0x52204e
lea ecx, [ecx + esi*2]
test edx, edx
jg 0x51f6a2
jmp 0x522060
cmp dword [esp + 0x14], 0
movzx edx, word [esi + 2]
mov ebx, dword [esp + 0x10]
je 0x51f70f
test edx, edx
je 0x51f70a
mov ecx, dword [ebx + 0x38]
mov esi, 0xfc00
dec edx
cmp ecx, dword [ebp + 0x50]
jbe case.default.0x5206f9
add ecx, 0xfffffffe
mov dword [ebx + 0x38], ecx
mov ax, word [ecx]
and ax, si
cmp ax, word [esp + 0x30]
jne 0x51f706
add ecx, 0xfffffffe
mov dword [ebx + 0x38], ecx
test edx, edx
jne 0x51f6e3
mov ecx, dword [ebx + 0x38]
jmp 0x51f729
mov ecx, dword [ebx + 0x38]
mov eax, ecx
sub eax, dword [ebp + 0x4c]
sar eax, 1
cmp edx, eax
jg case.default.0x5206f9
lea eax, [edx + edx]
sub ecx, eax
mov dword [ebx + 0x38], ecx
cmp ecx, dword [ebp + 0x5c]
jae 0x51f731
mov dword [ebp + 0x5c], ecx
add dword [ebx], 4
jmp 0x518b88
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.0x518bb4.120
jmp 0x518b90
movzx eax, word [esi + 2]
mov ecx, 0x86
add eax, eax
sub esi, eax
movzx eax, word [esi]
cmp ax, cx
je 0x51f7dd
mov ecx, 0x8a
cmp ax, cx
je 0x51f7dd
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 0x51f7d8
mov eax, dword [ebx + 0x50]
shl eax, 2
push eax
lea eax, [ebx + 0x54]
push eax
lea eax, [edi + 0x54]
push eax
call fcn.00562cb0
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 0x518ed3
movzx eax, word [esi]
jmp 0x51f7e7
mov ebx, dword [esp + 0x10]
xor edi, edi
mov ecx, dword [esp + 0x1c]
movzx eax, ax
add eax, 0xffffff82
cmp eax, 0x10
ja case.0x51f7fd.134
movzx eax, byte [eax + 0x523558]
jmp dword [eax*4 + 0x52353c]
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebp + 0x60]
jbe 0x51f80f
mov dword [ebp + 0x60], eax
mov eax, dword [edi + 0x38]
mov dword [ebx + 0x38], eax
jmp case.0x51f7fd.134
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebp + 0x60]
jbe 0x51f825
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.0x51f7fd.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 0x51f850
jmp case.0x51f7fd.134
mov eax, dword [esp + 0x10]
mov esi, 1
jmp 0x518edb
push edx
push dword [ebx + 0x38]
push dword [edi + 0x38]
call fcn.00530070
add esp, 0xc
test eax, eax
jne case.0x51f7fd.134
jmp case.default.0x5206f9
movzx eax, word [esi + 4]
cmp dword [ebx + 0x44], eax
jne 0x51f8cf
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.00562cb0
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 0x518b84
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.0x51f7fd.134
mov dword [ebx + 0x50], edx
mov edx, dword [ebx]
cmp word [edx], 0x7c
jne 0x51f91e
push dword [esp + 0x48]
lea eax, [ebx + 0x38]
push eax
lea eax, [edi + 0x38]
push eax
call fcn.00562cb0
add esp, 0xc
mov esi, 0xfffffc1a
jmp 0x518ed3
mov cl, byte [ebx + 0x31]
cmp cl, 0x79
je 0x51f93a
test edi, edi
je 0x5222b9
mov eax, dword [ebx + 0x38]
cmp eax, dword [edi + 0x38]
jne 0x5222b9
add dword [ebx], 4
jmp 0x518b84
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x38]
cmp eax, dword [ebp + 0x4c]
jne 0x51904f
test byte [ebp + 0x78], 1
jne 0x51904f
lea eax, [esi + 2]
mov dword [ecx], eax
jmp 0x518b90
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x38]
cmp eax, dword [ebp + 0x4c]
je 0x51f95c
xor esi, esi
mov eax, ecx
jmp 0x518edb
test byte [ebp + 0x78], 2
je 0x51f98c
mov eax, dword [esp + 0x10]
xor esi, esi
jmp 0x518edb
test byte [ebp + 0x7c], 0x10
je case.0x518bb4.23
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0x38]
cmp eax, dword [ebp + 0x54]
jb case.default.0x5206f9
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x51f9bd
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x519fb2
add dword [edx], 2
jmp 0x518b88
mov ebp, dword [esp + 0x10]
mov ecx, dword [esp + 0x6c]
mov edx, dword [ebp + 0x38]
mov esi, dword [ecx + 0x54]
cmp edx, esi
jae 0x51fa96
mov eax, dword [ecx + 0x88]
lea ebx, [ecx + 0x8c]
test eax, eax
je 0x51fa0d
push dword [esp + 0x14]
push ebx
push esi
push eax
push edx
call fcn.0052fe70
add esp, 0x14
test eax, eax
je 0x51fa45
mov ecx, dword [esp + 0x6c]
mov edi, dword [ebx]
mov edx, dword [ebp + 0x38]
mov esi, dword [ecx + 0x54]
jmp 0x51fa3c
mov edi, dword [ebx]
mov ecx, esi
lea eax, [edi + edi]
sub ecx, eax
cmp edx, ecx
ja 0x51fa45
mov ecx, dword [esp + 0x6c]
mov ax, word [edx]
cmp ax, word [ecx + 0x90]
jne 0x51fa45
cmp edi, 1
je 0x51fa3c
mov ax, word [edx + 2]
cmp ax, word [ecx + 0x92]
jne 0x51fa45
lea eax, [edi + edi]
sub esi, eax
cmp edx, esi
je 0x51fa96
mov eax, dword [esp + 0x6c]
movzx eax, word [eax + 0x3c]
mov edx, eax
test ax, ax
je 0x518ecd
mov ecx, dword [ebp + 0x38]
mov ebp, dword [esp + 0x6c]
lea eax, [ecx + 2]
cmp eax, dword [ebp + 0x54]
jb case.default.0x5206f9
cmp dword [ebp + 0x88], 0
jne case.default.0x5206f9
cmp dword [ebx], 2
jne case.default.0x5206f9
mov ax, word [ecx]
cmp ax, word [ebp + 0x90]
jne case.default.0x5206f9
jmp 0x51b25f
movzx eax, word [ecx + 0x3c]
mov ecx, eax
test ax, ax
je 0x51fab5
mov eax, dword [esp + 0x6c]
mov dword [eax + 0x1c], 1
cmp ecx, 1
ja 0x519fb2
add dword [ebp], 2
mov ebp, dword [esp + 0x6c]
jmp 0x518b84
test byte [ebp + 0x78], 1
mov ebx, dword [esp + 0x10]
je 0x51fadd
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebp + 0x4c]
jne 0x51fadd
xor esi, esi
mov eax, ebx
jmp 0x518edb
mov ecx, dword [ebx + 0x38]
mov edx, dword [ebp + 0x4c]
cmp ecx, edx
je 0x51fc44
cmp ecx, dword [ebp + 0x54]
jne 0x51fafd
test dword [ebp + 0x7c], 0x200000
je case.default.0x5206f9
mov esi, dword [ebp + 0x88]
test esi, esi
je 0x51fb35
cmp ecx, edx
jbe case.default.0x5206f9
push dword [esp + 0x14]
lea eax, [ebp + 0x8c]
push eax
push edx
push esi
push ecx
call fcn.0052ff30
add esp, 0x14
test eax, eax
je case.default.0x5206f9
add dword [ebx], 2
jmp 0x518b84
mov edi, dword [ebp + 0x8c]
lea esi, [edi + edi]
lea eax, [edx + esi]
cmp ecx, eax
jb case.default.0x5206f9
sub ecx, esi
mov ax, word [ecx]
cmp ax, word [ebp + 0x90]
jne case.default.0x5206f9
cmp edi, 1
je 0x51fc44
mov ax, word [ecx + 2]
cmp ax, word [ebp + 0x92]
je 0x51fc44
jmp case.default.0x5206f9
mov ebx, dword [esp + 0x10]
mov ecx, dword [ebp + 0x54]
mov edx, dword [ebx + 0x38]
cmp edx, ecx
jae 0x51fc14
mov eax, dword [ebp + 0x88]
lea edi, [ebp + 0x8c]
test eax, eax
je 0x51fbb8
push dword [esp + 0x14]
push edi
push ecx
push eax
push edx
call fcn.0052fe70
add esp, 0x14
test eax, eax
je 0x51fbe1
add dword [ebx], 2
jmp 0x518b84
mov esi, dword [edi]
lea eax, [esi + esi]
sub ecx, eax
cmp edx, ecx
ja 0x51fbe1
mov ax, word [edx]
cmp ax, word [ebp + 0x90]
jne 0x51fbe1
cmp esi, 1
je 0x51fc44
mov ax, word [edx + 2]
cmp ax, word [ebp + 0x92]
je 0x51fc44
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x5206f9
mov ecx, dword [ebx + 0x38]
lea eax, [ecx + 2]
cmp eax, dword [ebp + 0x54]
jb case.default.0x5206f9
cmp dword [ebp + 0x88], 0
jne case.default.0x5206f9
cmp dword [edi], 2
jmp 0x51fa7b
test byte [ebp + 0x78], 2
jne case.default.0x5206f9
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x51fc44
cmp edx, dword [ebp + 0x5c]
ja 0x51fc34
cmp dword [ebp + 0x24], 0
je 0x51fc44
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x519fb2
add dword [ebx], 2
jmp 0x518b84
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 0x51f95c
xor esi, esi
mov eax, ecx
jmp 0x518edb
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x38]
mov dword [ecx + 0x3c], eax
lea eax, [esi + 2]
mov dword [ecx], eax
jmp 0x518b90
mov ebx, dword [esp + 0x10]
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x50]
je 0x51fd50
movzx eax, word [edx - 2]
add edx, 0xfffffffe
cmp dword [esp + 0x14], 0
mov ecx, eax
je 0x51fcdd
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x51fcb2
movzx ecx, word [edx - 2]
sub edx, 2
movzx ecx, cx
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x51fcdd
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 0x51fce5
mov dword [ebp + 0x5c], edx
test dword [ebp + 0x7c], 0x20000
je 0x51fd38
cmp ecx, 0x5f
jne 0x51fcf8
lea edi, [ecx - 0x5e]
jmp 0x51fd52
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5a4390]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5a8790]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5a0181]
mov eax, dword [eax*4 + 0x59dc20]
cmp eax, 1
je 0x51fd31
cmp eax, 3
jne 0x51fd50
mov edi, 1
jmp 0x51fd52
cmp ecx, 0xff
ja 0x51fd50
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 0x10
je 0x51fd50
mov edi, 1
jmp 0x51fd52
xor edi, edi
mov ecx, dword [ebx + 0x38]
mov eax, dword [ebp + 0x54]
cmp ecx, eax
jb 0x51fdb3
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je 0x51fd82
cmp ecx, dword [ebp + 0x5c]
ja 0x51fd72
cmp dword [ebp + 0x24], 0
je 0x51fd82
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x519fb2
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 0x51fd98
xor edx, 1
mov edi, dword [esp + 0x68]
test edx, edx
mov edx, dword [esp + 0x14]
je 0x518b90
mov eax, dword [esp + 0x10]
xor esi, esi
jmp 0x518edb
cmp dword [esp + 0x14], 0
lea esi, [ecx + 2]
mov edx, esi
je 0x51fe01
cmp edx, eax
jae 0x51fdd5
mov ax, word [edx]
and ax, word [esp + 0x34]
cmp ax, word [esp + 0x30]
jne 0x51fdd5
add edx, 2
movzx ecx, word [ecx]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x51fe04
movzx eax, word [esi]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
jmp 0x51fe04
movzx ecx, word [ecx]
cmp edx, dword [ebp + 0x60]
jbe 0x51fe0c
mov dword [ebp + 0x60], edx
test dword [ebp + 0x7c], 0x20000
je 0x51fe69
cmp ecx, 0x5f
jne 0x51fe22
lea edx, [ecx - 0x5e]
jmp 0x51fd84
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5a4390]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5a8790]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5a0181]
mov eax, dword [eax*4 + 0x59dc20]
cmp eax, 1
je 0x51fe5f
cmp eax, 3
jne 0x51fd82
mov edx, 1
jmp 0x51fd84
cmp ecx, 0xff
ja 0x51fd82
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 0x10
je 0x51fd82
mov edx, 1
jmp 0x51fd84
test esi, esi
jne case.0x51ff66.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 + 0x59da80]
lea esi, [ecx + eax*2]
je 0x5222d7
mov dword [ebx], esi
jmp 0x518b84
cmp esi, 0xfffffc1f
jne 0x51fee9
mov ecx, dword [ebx]
movzx eax, word [ecx + 2]
lea eax, [ecx + eax*2]
cmp dword [ebp + 0x6c], eax
jae case.0x51ff66.998
cmp word [ecx], 0x78
je 0x51fef1
cmp word [eax], 0x78
jmp 0x51feeb
test esi, esi
jne case.0x51ff66.998
mov ecx, dword [ebx]
movzx eax, word [ecx + 2]
lea esi, [ecx + eax*2]
mov dword [ebx], esi
cmp word [esi], 0x78
je 0x5225ac
mov eax, dword [esp + 0x10]
xor esi, esi
jmp 0x518edb
cmp esi, 0xfffffc19
je 0x521f78
test esi, esi
je 0x51ff2d
cmp esi, 0xfffffc1f
jne case.0x51ff66.998
mov ecx, dword [ebx]
movzx eax, word [ecx + 2]
lea esi, [ecx + eax*2]
mov dword [ebx], esi
cmp word [esi], 0x78
je 0x522662
mov eax, dword [esp + 0x10]
xor esi, esi
jmp 0x518edb
test esi, esi
jg 0x51ff6d
je case.0x51ff66.993
lea eax, [esi + 0x3e7]
cmp eax, 6
ja case.0x51ff66.998
jmp dword [eax*4 + 0x52356c]
mov eax, esi
sub eax, 1
mov eax, dword [esp + 0x10]
jne 0x518edb
mov eax, dword [esp + 0x10]
xor esi, esi
jmp 0x518edb
test esi, esi
jg 0x51ffa7
je case.0x51ffa0.993
lea eax, [esi + 0x3e7]
cmp eax, 6
ja case.0x51ff66.998
jmp dword [eax*4 + 0x523588]
mov eax, esi
sub eax, 1
jne case.0x51ff66.998
mov eax, dword [ebx + 0x20]
test eax, eax
je 0x522060
mov ecx, dword [ebx]
nop
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [ebx], ecx
cmp word [ecx], 0x78
je 0x51ffc0
movzx eax, word [ecx]
movzx eax, byte [eax + 0x59da80]
jmp 0x522065
test esi, esi
jne case.0x51ff66.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 0x518b90
test esi, esi
je 0x51f93a
mov eax, dword [esp + 0x10]
jmp 0x518edb
cmp esi, 0xfffffc1a
jne 0x520041
mov dword [ebx + 0x24], 1
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebx + 4]
jne 0x5222e0
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 0x520030
jmp 0x520084
cmp esi, 0xfffffc1f
jne 0x520067
mov ecx, dword [ebx]
movzx eax, word [ecx + 2]
lea eax, [ecx + eax*2]
cmp dword [ebp + 0x6c], eax
jae case.0x51ff66.998
cmp word [ecx], 0x78
je 0x52006f
cmp word [eax], 0x78
jmp 0x520069
test esi, esi
jne case.0x51ff66.998
mov ecx, dword [ebx]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [ebx], ecx
cmp word [ecx], 0x78
je 0x52256d
cmp dword [ebx + 0x24], 0
jne 0x5200b6
cmp dword [ebx + 0x28], 0
jne 0x5200b6
mov eax, dword [esp + 0x10]
xor esi, esi
jmp 0x518edb
test esi, esi
jne case.0x51ff66.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 0x5200a6
mov edi, dword [esp + 0x68]
lea eax, [ecx + 4]
mov dword [ebx], eax
jmp 0x518b90
test esi, esi
jne case.0x51ff66.998
add dword [ebx], 2
mov edi, dword [esp + 0x68]
jmp 0x518b90
mov edx, dword [ebx + 4]
movzx eax, word [edx + 2]
lea ecx, [edx + eax*2]
lea eax, [esi + 0x3e5]
cmp eax, 4
ja 0x520120
mov eax, dword [ebx + 0x20]
xor eax, 0x40000
cmp dword [ebp + 0x74], eax
jne 0x520120
cmp esi, 0xfffffc1f
jne case.default.0x5206f9
cmp dword [ebp + 0x6c], ecx
jae case.default.0x5206f9
cmp word [edx], 0x78
je 0x52012c
cmp word [ecx], 0x78
je 0x52012c
jmp case.default.0x5206f9
mov edx, dword [esp + 0x14]
test esi, esi
jne case.0x51ff66.998
mov dword [ebx + 4], ecx
cmp word [ecx], 0x78
je 0x522633
jmp case.default.0x5206f9
cmp esi, 0xfffffc1e
jne case.0x51ff66.998
mov eax, dword [ebx]
push dword [ebp + 0x70]
add eax, 4
push eax
call fcn.0052f7b0
mov edx, dword [esp + 0x1c]
add esp, 8
test eax, eax
jne case.0x51ff66.998
mov eax, dword [ebx + 0x38]
mov esi, 0xfffffc1d
mov dword [ebp + 0x70], eax
mov eax, dword [esp + 0x10]
jmp 0x518edb
test esi, esi
jne case.0x51ff66.998
mov eax, dword [ebx + 0x44]
mov esi, 0xfffffc1b
mov dword [ebp + 0x74], eax
mov eax, dword [esp + 0x10]
jmp 0x518edb
test esi, esi
jne case.0x51ff66.998
mov eax, dword [ebx + 0x44]
mov esi, 0xfffffc1c
mov dword [ebp + 0x74], eax
mov eax, dword [esp + 0x10]
jmp 0x518edb
test esi, esi
jne case.0x51ff66.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 0x518edb
test esi, esi
jne case.0x51ff66.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 0x518edb
test esi, esi
jne case.0x51ff66.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 0x518edb
test esi, esi
jne case.0x51ff66.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5206f9
lea eax, [esp + 0x4c]
push eax
push ebp
push ebx
push dword [ebx + 0x28]
push dword [ebx + 0x14]
call fcn.005238e0
add esp, 0x14
test eax, eax
je 0x5222ea
jle 0x520247
mov ecx, dword [ebp + 0x54]
mov dword [edi + 0x38], ecx
jmp 0x52024a
mov ecx, dword [edi + 0x38]
cmp ecx, dword [ebp + 0x54]
jb case.default.0x5206f9
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x5206f9
cmp ecx, dword [ebp + 0x5c]
ja 0x520271
cmp dword [ebp + 0x24], 0
je case.default.0x5206f9
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x519fb2
jmp case.default.0x5206f9
test esi, esi
jne case.0x51ff66.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.0x5206f9
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x15
jmp 0x5227a2
test esi, esi
jne case.0x51ff66.998
mov esi, dword [ebx + 4]
cmp dword [ebx + 0x38], esi
je case.default.0x5206f9
mov dword [ebx + 0x38], esi
dec dword [ebx + 0x24]
mov edi, dword [ebx + 0x20]
cmp edi, dword [ebx + 0x24]
jae 0x5202f6
lea eax, [esp + 0x50]
push eax
push ebp
push ebx
push dword [ebx + 0x28]
push dword [ebx + 0x14]
call fcn.005238e0
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 0x5202d1
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x16
jmp 0x5227a2
test esi, esi
jne case.0x51ff66.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5206f9
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x520355
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5206f9
cmp edx, dword [ebp + 0x5c]
ja 0x520340
cmp dword [ebp + 0x24], esi
je case.default.0x5206f9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x519fb2
jmp case.default.0x5206f9
movzx ecx, word [edx]
lea eax, [edx + 2]
mov dword [ebx + 0x38], eax
cmp ecx, 0xff
jbe 0x52037b
cmp byte [ebx + 0x31], 0x6e
je case.default.0x5206f9
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x17
jmp 0x5227a2
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 0x520370
jmp case.default.0x5206f9
test esi, esi
jne case.0x51ff66.998
add dword [ebx + 0x38], 0xfffffffe
jmp 0x5203a9
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebx + 4]
jb case.default.0x5206f9
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x18
jmp 0x5227a2
test esi, esi
jne case.0x51ff66.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5206f9
mov ecx, dword [ebx + 0x38]
cmp ecx, dword [ebp + 0x54]
jb 0x520414
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x5206f9
cmp ecx, dword [ebp + 0x5c]
ja 0x5203ff
cmp dword [ebp + 0x24], esi
je case.default.0x5206f9
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x519fb2
jmp case.default.0x5206f9
movzx eax, word [ecx]
cmp dword [ebx + 0x28], eax
je 0x520425
cmp dword [ebx + 0x2c], eax
jne case.default.0x5206f9
lea eax, [ecx + 2]
mov dword [ebx + 0x38], eax
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
mov byte [eax + 0x30], 0x19
jmp 0x5227a2
add dword [ebx + 0x38], 0xfffffffe
test esi, esi
je 0x519b3a
mov eax, dword [esp + 0x10]
jmp 0x518edb
test esi, esi
jne case.0x51ff66.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5206f9
mov esi, dword [ebx + 0x38]
cmp esi, dword [ebp + 0x54]
jb 0x5204a4
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5206f9
cmp esi, dword [ebp + 0x5c]
ja 0x52048f
cmp dword [ebp + 0x24], 0
je case.default.0x5206f9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x519fb2
jmp case.default.0x5206f9
movzx ecx, word [esi]
lea eax, [esi + 2]
mov dword [ebx + 0x38], eax
cmp dword [ebx + 0x28], ecx
jne case.default.0x5206f9
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
mov byte [eax + 0x30], 0x1b
jmp 0x5227a2
add dword [ebx + 0x38], 0xfffffffe
test esi, esi
je 0x519c42
mov eax, dword [esp + 0x10]
jmp 0x518edb
test esi, esi
jne case.0x51ff66.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5206f9
mov ecx, dword [ebx + 0x38]
cmp ecx, dword [ebp + 0x54]
jb 0x52052e
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x5206f9
cmp ecx, dword [ebp + 0x5c]
ja 0x520519
cmp dword [ebp + 0x24], esi
je case.default.0x5206f9
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x519fb2
jmp case.default.0x5206f9
movzx eax, word [ecx]
cmp dword [ebx + 0x28], eax
je case.default.0x5206f9
cmp dword [ebx + 0x2c], eax
je case.default.0x5206f9
lea eax, [ecx + 2]
mov dword [ebx + 0x38], eax
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x1d
jmp 0x5227a2
test esi, esi
jne case.0x51ff66.998
add dword [ebx + 0x38], 0xfffffffe
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebx + 4]
jne 0x52230d
mov edi, dword [esp + 0x68]
jmp 0x518b90
test esi, esi
jne case.0x51ff66.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5206f9
mov esi, dword [ebx + 0x38]
cmp esi, dword [ebp + 0x54]
jb 0x5205ca
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5206f9
cmp esi, dword [ebp + 0x5c]
ja 0x5205b5
cmp dword [ebp + 0x24], 0
je case.default.0x5206f9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x519fb2
jmp case.default.0x5206f9
movzx ecx, word [esi]
lea eax, [esi + 2]
mov dword [ebx + 0x38], eax
cmp dword [ebx + 0x28], ecx
je case.default.0x5206f9
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x1f
jmp 0x5227a2
test esi, esi
jne case.0x51ff66.998
add dword [ebx + 0x38], 0xfffffffe
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebx + 4]
jne 0x522318
mov edi, dword [esp + 0x68]
jmp 0x518b90
test esi, esi
jne case.0x51ff66.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5206f9
mov edx, dword [ebx + 0x38]
mov ecx, dword [ebp + 0x54]
cmp edx, ecx
jb 0x52065e
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5206f9
cmp edx, dword [ebp + 0x5c]
ja 0x520649
cmp dword [ebp + 0x24], esi
je case.default.0x5206f9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x519fb2
jmp case.default.0x5206f9
mov edi, dword [ebx + 0x28]
cmp edi, 0xc
jne 0x5206c7
mov esi, dword [ebp + 0x88]
lea eax, [ebp + 0x8c]
test esi, esi
je 0x520696
push dword [esp + 0x14]
push eax
push ecx
push esi
push edx
call fcn.0052fe70
add esp, 0x14
test eax, eax
jne case.default.0x5206f9
mov edx, dword [ebx + 0x38]
mov edi, dword [ebx + 0x28]
jmp 0x5206c7
mov esi, dword [eax]
lea eax, [esi + esi]
sub ecx, eax
cmp edx, ecx
ja 0x5206c7
mov ax, word [edx]
cmp ax, word [ebp + 0x90]
jne 0x5206c7
cmp esi, 1
je case.default.0x5206f9
mov ax, word [edx + 2]
cmp ax, word [ebp + 0x92]
je case.default.0x5206f9
movzx ecx, word [edx]
lea eax, [edi - 6]
lea esi, [edx + 2]
mov dword [ebx + 0x38], esi
cmp eax, 0xf
ja case.0x5206dc.15
jmp dword [eax*4 + 0x5235a4]
cmp ecx, 0x85
ja 0x520700
je case.0x5206f9.11
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x5206f9
jmp dword [ecx*4 + 0x5235e4]
sub ecx, 0x2028
je case.0x5206f9.11
sub ecx, 1
jne case.default.0x5206f9
cmp word [ebp + 0x3e], 2
jne case.0x5206dc.13
jmp case.default.0x5206f9
cmp ecx, 0x2000
ja 0x520771
je case.default.0x5206f9
cmp ecx, 0xa0
ja 0x520754
je case.default.0x5206f9
cmp ecx, 9
je case.default.0x5206f9
cmp ecx, 0x20
jne case.0x5206dc.13
jmp case.default.0x5206f9
cmp ecx, 0x1680
je case.default.0x5206f9
cmp ecx, 0x180e
jne case.0x5206dc.13
jmp case.default.0x5206f9
cmp ecx, 0x3000
ja case.0x5206dc.13
je case.default.0x5206f9
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x5206dc.13
movzx eax, byte [ecx + 0x5235fc]
jmp dword [eax*4 + 0x5235f4]
cmp ecx, 0x2000
ja 0x5207f0
je case.0x5206dc.13
cmp ecx, 0xa0
ja 0x5207d3
je case.0x5206dc.13
cmp ecx, 9
je case.0x5206dc.13
cmp ecx, 0x20
je case.0x5206dc.13
jmp case.default.0x5206f9
cmp ecx, 0x1680
je case.0x5206dc.13
cmp ecx, 0x180e
je case.0x5206dc.13
jmp case.default.0x5206f9
cmp ecx, 0x3000
ja case.default.0x5206f9
je case.0x5206dc.13
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.default.0x5206f9
movzx eax, byte [ecx + 0x523664]
jmp dword [eax*4 + 0x52365c]
cmp ecx, 0x85
ja 0x520840
je case.default.0x5206f9
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x5206dc.13
jmp dword [ecx*4 + 0x5236c4]
sub ecx, 0x2028
je case.default.0x5206f9
sub ecx, 1
jne case.0x5206dc.13
jmp case.default.0x5206f9
cmp ecx, 0x85
ja 0x52087b
je case.0x5206dc.13
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x5206f9
jmp dword [ecx*4 + 0x5236d4]
sub ecx, 0x2028
je case.0x5206dc.13
sub ecx, 1
je case.0x5206dc.13
jmp case.default.0x5206f9
cmp ecx, 0xff
ja case.0x5206dc.13
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 8
je case.0x5206dc.13
jmp case.default.0x5206f9
cmp ecx, 0xff
ja case.default.0x5206f9
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 8
jne case.0x5206dc.13
jmp case.default.0x5206f9
cmp ecx, 0xff
ja case.0x5206dc.13
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 1
je case.0x5206dc.13
jmp case.default.0x5206f9
cmp ecx, 0xff
ja case.default.0x5206f9
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 1
jne case.0x5206dc.13
jmp case.default.0x5206f9
cmp ecx, 0xff
ja case.0x5206dc.13
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 0x10
je case.0x5206dc.13
jmp case.default.0x5206f9
cmp ecx, 0xff
ja case.default.0x5206f9
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 0x10
jne case.0x5206dc.13
jmp case.default.0x5206f9
test esi, esi
jne case.0x51ff66.998
mov eax, dword [ebx + 0x38]
add eax, 0xfffffffe
mov dword [ebx + 0x38], eax
mov ecx, eax
cmp dword [ebx + 0x28], 0x11
jne 0x52097c
cmp eax, dword [ebx + 4]
jbe 0x52097c
cmp word [eax], 0xa
jne 0x52097c
cmp word [eax - 2], 0xd
lea edx, [eax - 2]
jne 0x52097c
mov dword [ebx + 0x38], edx
mov ecx, edx
cmp ecx, dword [ebx + 4]
je 0x518b84
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x22
jmp 0x5227a2
test esi, esi
jne case.0x51ff66.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5206f9
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x5209e4
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5206f9
cmp edx, dword [ebp + 0x5c]
ja 0x5209cf
cmp dword [ebp + 0x24], esi
je case.default.0x5206f9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x519fb2
jmp case.default.0x5206f9
movzx ecx, word [edx]
add edx, 2
mov esi, dword [esp + 0x14]
mov dword [ebx + 0x38], edx
test esi, esi
je 0x520a22
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x520a22
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.00530560
add esp, 0xc
test eax, eax
jne 0x52238b
jmp case.default.0x5206f9
test esi, esi
jne case.0x51ff66.998
mov ecx, dword [ebx + 0x38]
lea edx, [ecx - 2]
mov dword [ebx + 0x38], edx
cmp ecx, dword [ebx + 4]
jbe case.default.0x5206f9
cmp dword [esp + 0x14], esi
je 0x51a974
mov ax, word [edx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x51a974
lea eax, [edx - 2]
mov dword [ebx + 0x38], eax
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x65
jmp 0x5227a2
test esi, esi
jne case.0x51ff66.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5206f9
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x520ade
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5206f9
cmp edx, dword [ebp + 0x5c]
ja 0x520ac9
cmp dword [ebp + 0x24], esi
je case.default.0x5206f9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x519fb2
jmp case.default.0x5206f9
movzx ecx, word [edx]
add edx, 2
mov eax, ecx
mov dword [ebx + 0x38], edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x520b14
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 0x520b31
cmp byte [ebx + 0x31], 0x6e
je case.default.0x5206f9
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xc8
jmp 0x5227a2
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 0x520b26
jmp case.default.0x5206f9
test esi, esi
jne case.0x51ff66.998
mov ecx, dword [ebx + 0x38]
lea edx, [ecx - 2]
mov dword [ebx + 0x38], edx
cmp ecx, dword [ebx + 4]
jbe case.default.0x5206f9
mov ax, word [edx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x52239a
lea eax, [edx - 2]
mov dword [ebx + 0x38], eax
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xc9
jmp 0x5227a2
test esi, esi
jne case.0x51ff66.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5206f9
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 0x520c28
mov eax, dword [esp + 0x10]
mov ecx, ebx
mov edx, dword [eax + 8]
sub esi, 4
jb 0x520be2
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x520beb
add ecx, 4
add edx, 4
sub esi, 4
jae 0x520bd1
cmp esi, 0xfffffffc
je 0x5223a5
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x520c28
cmp esi, 0xfffffffd
je 0x5223a5
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x520c28
cmp esi, 0xfffffffe
je 0x5223a5
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x520c28
cmp esi, 0xffffffff
je 0x5223a5
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x5223a5
mov ecx, dword [esp + 0x10]
mov edi, dword [ecx + 0x14]
test edi, edi
je 0x520ca7
lea esi, [edi + edi]
mov eax, ebp
sub eax, esi
cmp ebx, eax
ja 0x520ca7
lea edx, [ecx + 0x32]
mov ecx, ebx
sub esi, 4
jb 0x520c61
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x520c6a
add ecx, 4
add edx, 4
sub esi, 4
jae 0x520c50
cmp esi, 0xfffffffc
je 0x5223a5
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x520ca7
cmp esi, 0xfffffffd
je 0x5223a5
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x520ca7
cmp esi, 0xfffffffe
je 0x5223a5
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x520ca7
cmp esi, 0xffffffff
je 0x5223a5
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x5223a5
cmp ebx, ebp
mov ebp, dword [esp + 0x6c]
jb case.default.0x5206f9
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5206f9
cmp ebx, dword [ebp + 0x5c]
ja 0x520cd1
cmp dword [ebp + 0x24], 0
je case.default.0x5206f9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x519fb2
jmp case.default.0x5206f9
test esi, esi
jne case.0x51ff66.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 0x520d14
add ecx, 0xfffffffe
mov dword [ebx + 0x38], ecx
cmp ecx, dword [eax + 4]
jbe 0x518b84
mov esi, dword [eax]
mov byte [eax + 0x30], 0xcb
jmp 0x5227a6
test esi, esi
jne case.0x51ff66.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5206f9
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x520d7c
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5206f9
cmp edx, dword [ebp + 0x5c]
ja 0x520d67
cmp dword [ebp + 0x24], esi
je case.default.0x5206f9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x519fb2
jmp case.default.0x5206f9
movzx ecx, word [edx]
add edx, 2
mov eax, ecx
mov dword [ebx + 0x38], edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x520db2
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.0x5206f9
cmp dword [ebx + 0x2c], ecx
je case.default.0x5206f9
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xcc
jmp 0x5227a2
test esi, esi
jne case.0x51ff66.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 0x520dfd
add ecx, 0xfffffffe
mov dword [ebx + 0x38], ecx
cmp ecx, dword [eax + 4]
ja 0x5223be
mov edi, dword [esp + 0x68]
jmp 0x518b90
test esi, esi
jne case.0x51ff66.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5206f9
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x520e63
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5206f9
cmp edx, dword [ebp + 0x5c]
ja 0x520e4e
cmp dword [ebp + 0x24], esi
je case.default.0x5206f9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x519fb2
jmp case.default.0x5206f9
movzx ecx, word [edx]
add edx, 2
mov eax, ecx
mov dword [ebx + 0x38], edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x520e99
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.0x5206f9
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xce
jmp 0x5227a2
test esi, esi
jne case.0x51ff66.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 0x520ed7
lea eax, [ecx - 2]
mov dword [ebx + 0x38], eax
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebx + 4]
ja 0x5223c9
mov edi, dword [esp + 0x68]
jmp 0x518b90
test esi, esi
jne case.0x51ff66.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5206f9
mov ecx, dword [ebx + 0x38]
cmp ecx, dword [ebp + 0x54]
jb 0x520f40
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x5206f9
cmp ecx, dword [ebp + 0x5c]
ja 0x520f2b
cmp dword [ebp + 0x24], esi
je case.default.0x5206f9
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x519fb2
jmp case.default.0x5206f9
movzx eax, word [ecx]
add ecx, 2
mov edx, dword [esp + 0x14]
mov dword [ebx + 0x38], ecx
test edx, edx
je 0x520f63
and eax, 0xfc00
cmp eax, 0xd800
jne 0x520f63
lea eax, [ecx + 2]
mov dword [ebx + 0x38], eax
cmp dword [ebx + 0x28], 0xf
jne case.0x52224a.0
mov eax, dword [esp + 0x10]
xor esi, esi
jmp 0x518edb
test esi, esi
jne case.0x51ff66.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5206f9
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x520fcc
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5206f9
cmp edx, dword [ebp + 0x5c]
ja 0x520fb7
cmp dword [ebp + 0x24], esi
je case.default.0x5206f9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x519fb2
jmp case.default.0x5206f9
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [ebx + 0x38], edx
je 0x521009
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x521009
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 + 0x5a4390]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5a8790]
lea eax, [eax + eax*2]
mov al, byte [eax*4 + 0x5a0181]
cmp al, 9
je 0x521040
cmp al, 5
je 0x521040
cmp al, 8
je 0x521040
xor ecx, ecx
jmp 0x521045
mov ecx, 1
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.default.0x5206f9
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xd1
jmp 0x5227a2
test esi, esi
jne case.0x51ff66.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5206f9
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x5210b5
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5206f9
cmp edx, dword [ebp + 0x5c]
ja 0x5210a0
cmp dword [ebp + 0x24], esi
je case.default.0x5206f9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x519fb2
jmp case.default.0x5206f9
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [ebx + 0x38], edx
je 0x5210f2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5210f2
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 + 0x5a4390]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5a8790]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5a0181]
mov eax, dword [eax*4 + 0x59dc20]
cmp eax, dword [ebx + 0x2c]
sete cl
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.default.0x5206f9
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xd2
jmp 0x5227a2
test esi, esi
jne case.0x51ff66.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5206f9
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x521199
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5206f9
cmp edx, dword [ebp + 0x5c]
ja 0x521184
cmp dword [ebp + 0x24], esi
je case.default.0x5206f9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x519fb2
jmp case.default.0x5206f9
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [ebx + 0x38], edx
je 0x5211d6
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5211d6
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 + 0x5a4390]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5a8790]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5a0181]
cmp eax, dword [ebx + 0x2c]
sete cl
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.default.0x5206f9
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xd3
jmp 0x5227a2
test esi, esi
jne case.0x51ff66.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5206f9
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x521276
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5206f9
cmp edx, dword [ebp + 0x5c]
ja 0x521261
cmp dword [ebp + 0x24], esi
je case.default.0x5206f9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x519fb2
jmp case.default.0x5206f9
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [ebx + 0x38], edx
je 0x5212b3
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5212b3
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 + 0x5a4390]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5a8790]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5a0180]
cmp eax, dword [ebx + 0x2c]
sete cl
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.default.0x5206f9
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xd4
jmp 0x5227a2
test esi, esi
jne case.0x51ff66.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5206f9
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x521353
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5206f9
cmp edx, dword [ebp + 0x5c]
ja 0x52133e
cmp dword [ebp + 0x24], esi
je case.default.0x5206f9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x519fb2
jmp case.default.0x5206f9
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [ebx + 0x38], edx
je 0x521390
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x521390
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 + 0x5a4390]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5a8790]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5a0181]
mov eax, dword [eax*4 + 0x59dc20]
cmp eax, 1
je 0x5213cd
cmp eax, 3
je 0x5213cd
xor ecx, ecx
jmp 0x5213d2
mov ecx, 1
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.default.0x5206f9
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xd5
jmp 0x5227a2
test esi, esi
jne case.0x51ff66.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5206f9
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x521442
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5206f9
cmp edx, dword [ebp + 0x5c]
ja 0x52142d
cmp dword [ebp + 0x24], esi
je case.default.0x5206f9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x519fb2
jmp case.default.0x5206f9
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [ebx + 0x38], edx
je 0x52147f
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x52147f
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 0x521499
je case.0x521544.8193
lea eax, [ecx - 9]
cmp eax, 4
ja case.0x521544.8203
jmp dword [eax*4 + 0x5236e4]
cmp ecx, 0x2000
ja 0x521528
je case.0x521544.8193
cmp ecx, 0x1680
ja 0x521520
je case.0x521544.8193
mov eax, ecx
sub eax, 0x85
je case.0x521544.8193
sub eax, 0x1b
je case.0x521544.8193
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5a4390]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5a8790]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5a0181]
cmp dword [eax*4 + 0x59dc20], 6
sete cl
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.default.0x5206f9
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xd6
jmp 0x5227a2
cmp ecx, 0x180e
jmp 0x5214c9
cmp ecx, 0x3000
ja case.0x521544.8203
je case.0x521544.8193
lea eax, [ecx - 0x2001]
cmp eax, 0x5e
ja case.0x521544.8203
movzx eax, byte [eax + 0x523700]
jmp dword [eax*4 + 0x5236f8]
cmp dword [ebx + 0x28], 0xf
jne case.0x52224a.7
jmp case.default.0x5206f9
test esi, esi
jne case.0x51ff66.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5206f9
mov ecx, dword [ebx + 0x38]
cmp ecx, dword [ebp + 0x54]
jb 0x5215aa
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x5206f9
cmp ecx, dword [ebp + 0x5c]
ja 0x521595
cmp dword [ebp + 0x24], esi
je case.default.0x5206f9
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x519fb2
jmp case.default.0x5206f9
movzx edx, word [ecx]
add ecx, 2
cmp dword [esp + 0x14], 0
mov dword [ebx + 0x38], ecx
je 0x5215e7
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5215e7
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 + 0x5a4390]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x5a8790]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x5a0181]
mov eax, dword [eax*4 + 0x59dc20]
cmp eax, 1
je 0x52162b
cmp eax, 3
je 0x52162b
cmp edx, 0x5f
je 0x52162b
xor ecx, ecx
jmp 0x521630
mov ecx, 1
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.default.0x5206f9
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xd7
jmp 0x5227a2
test esi, esi
jne case.0x51ff66.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5206f9
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x5216a0
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5206f9
cmp edx, dword [ebp + 0x5c]
ja 0x52168b
cmp dword [ebp + 0x24], esi
je case.default.0x5206f9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x519fb2
jmp case.default.0x5206f9
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [ebx + 0x38], edx
je 0x5216dd
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5216dd
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 + 0x59fbb8]
lea eax, [eax*4 + 0x59fbb8]
cmp ecx, edx
jb 0x5216ff
lea eax, [eax + 4]
cmp ecx, edx
je 0x521714
mov edx, dword [eax]
cmp ecx, edx
jae 0x5216f2
cmp dword [ebx + 0x28], 0xf
jne case.default.0x5206f9
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xd8
jmp 0x5227a2
cmp dword [ebx + 0x28], 0xf
jne case.0x52224a.10
jmp case.default.0x5206f9
test esi, esi
jne case.0x51ff66.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5206f9
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x521773
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5206f9
cmp edx, dword [ebp + 0x5c]
ja 0x52175e
cmp dword [ebp + 0x24], esi
je case.default.0x5206f9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x519fb2
jmp case.default.0x5206f9
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [ebx + 0x38], edx
je 0x5217b0
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5217b0
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 0x5217db
cmp ecx, 0x40
je 0x5217db
cmp ecx, 0x60
je 0x5217db
cmp ecx, 0xa0
jb 0x5217cf
cmp ecx, 0xd7ff
jbe 0x5217db
cmp ecx, 0xe000
jae 0x5217db
xor ecx, ecx
jmp 0x5217e0
mov ecx, 1
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.default.0x5206f9
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xd9
jmp 0x5227a2
test esi, esi
jne case.0x51ff66.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5206f9
mov ecx, dword [ebx + 0x38]
cmp ecx, dword [ebp + 0x54]
jb 0x5223df
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x5206f9
cmp ecx, dword [ebp + 0x5c]
ja 0x52183f
cmp dword [ebp + 0x24], esi
je case.default.0x5206f9
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x519fb2
jmp case.default.0x5206f9
test esi, esi
jne case.0x51ff66.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5206f9
mov edx, dword [ebx + 0x38]
mov ecx, dword [ebp + 0x54]
cmp edx, ecx
jb 0x5218aa
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5206f9
cmp edx, dword [ebp + 0x5c]
ja 0x521895
cmp dword [ebp + 0x24], esi
je case.default.0x5206f9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x519fb2
jmp case.default.0x5206f9
mov edi, dword [ebx + 0x28]
cmp edi, 0xc
jne 0x521913
mov esi, dword [ebp + 0x88]
lea eax, [ebp + 0x8c]
test esi, esi
je 0x5218e2
push dword [esp + 0x14]
push eax
push ecx
push esi
push edx
call fcn.0052fe70
add esp, 0x14
test eax, eax
jne case.default.0x5206f9
mov edx, dword [ebx + 0x38]
mov edi, dword [ebx + 0x28]
jmp 0x521913
mov esi, dword [eax]
lea eax, [esi + esi]
sub ecx, eax
cmp edx, ecx
ja 0x521913
mov ax, word [edx]
cmp ax, word [ebp + 0x90]
jne 0x521913
cmp esi, 1
je case.default.0x5206f9
mov ax, word [edx + 2]
cmp ax, word [ebp + 0x92]
je case.default.0x5206f9
movzx ecx, word [edx]
add edx, 2
mov eax, ecx
mov dword [ebx + 0x38], edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x521949
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.0x5206dc.15
jmp dword [eax*4 + 0x523760]
cmp ecx, 0x85
ja 0x521979
je case.0x521972.11
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x5206f9
jmp dword [ecx*4 + 0x5237a0]
sub ecx, 0x2028
je case.0x521972.11
sub ecx, 1
jne case.default.0x5206f9
cmp word [ebp + 0x3e], 2
jne case.0x521955.13
jmp case.default.0x5206f9
cmp ecx, 0x2000
ja 0x5219ea
je case.default.0x5206f9
cmp ecx, 0xa0
ja 0x5219cd
je case.default.0x5206f9
cmp ecx, 9
je case.default.0x5206f9
cmp ecx, 0x20
jne case.0x521955.13
jmp case.default.0x5206f9
cmp ecx, 0x1680
je case.default.0x5206f9
cmp ecx, 0x180e
jne case.0x521955.13
jmp case.default.0x5206f9
cmp ecx, 0x3000
ja case.0x521955.13
je case.default.0x5206f9
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x521955.13
movzx eax, byte [ecx + 0x5237b8]
jmp dword [eax*4 + 0x5237b0]
cmp ecx, 0x2000
ja 0x521a69
je case.0x521955.13
cmp ecx, 0xa0
ja 0x521a4c
je case.0x521955.13
cmp ecx, 9
je case.0x521955.13
cmp ecx, 0x20
je case.0x521955.13
jmp case.default.0x5206f9
cmp ecx, 0x1680
je case.0x521955.13
cmp ecx, 0x180e
je case.0x521955.13
jmp case.default.0x5206f9
cmp ecx, 0x3000
ja case.default.0x5206f9
je case.0x521955.13
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.default.0x5206f9
movzx eax, byte [ecx + 0x523820]
jmp dword [eax*4 + 0x523818]
cmp ecx, 0x85
ja 0x521ab9
je case.default.0x5206f9
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x521955.13
jmp dword [ecx*4 + 0x523880]
sub ecx, 0x2028
je case.default.0x5206f9
sub ecx, 1
jne case.0x521955.13
jmp case.default.0x5206f9
cmp ecx, 0x85
ja 0x521af4
je case.0x521955.13
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x5206f9
jmp dword [ecx*4 + 0x523890]
sub ecx, 0x2028
je case.0x521955.13
sub ecx, 1
je case.0x521955.13
jmp case.default.0x5206f9
cmp ecx, 0x100
jae case.0x521955.13
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 8
je case.0x521955.13
jmp case.default.0x5206f9
cmp ecx, 0x100
jae case.default.0x5206f9
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 8
jne case.0x521955.13
jmp case.default.0x5206f9
cmp ecx, 0x100
jae case.0x521955.13
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 1
je case.0x521955.13
jmp case.default.0x5206f9
cmp ecx, 0x100
jae case.default.0x5206f9
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 1
jne case.0x521955.13
jmp case.default.0x5206f9
cmp ecx, 0x100
jae case.0x521955.13
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 0x10
je case.0x521955.13
jmp case.default.0x5206f9
cmp ecx, 0x100
jae case.default.0x5206f9
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 0x10
jne case.0x521955.13
jmp case.default.0x5206f9
test esi, esi
jne case.0x51ff66.998
mov edx, dword [ebx + 0x38]
add edx, 0xfffffffe
mov dword [ebx + 0x38], edx
cmp dword [esp + 0x14], esi
jne 0x522086
movzx ecx, word [edx]
jmp 0x5220cf
test esi, esi
jne case.0x51ff66.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 0x521c0f
add ecx, 0xfffffffe
mov dword [ebx + 0x38], ecx
cmp dword [ebx + 0x28], 0x11
mov eax, ecx
jne 0x521c31
cmp ecx, dword [ebx + 4]
jbe 0x521c31
cmp word [ecx], 0xa
jne 0x521c31
cmp word [ecx - 2], 0xd
lea edx, [ecx - 2]
jne 0x521c31
mov dword [ebx + 0x38], edx
mov eax, edx
cmp eax, dword [ebx + 4]
jbe 0x518b84
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xdd
jmp 0x5227a2
test esi, esi
jne case.0x51ff66.998
mov ecx, dword [ebx + 0x38]
add ecx, 0xfffffffe
mov edx, ecx
mov dword [ebx + 0x38], ecx
cmp dword [esp + 0x14], esi
je 0x521c79
mov ax, word [edx]
mov esi, 0xfc00
and ax, si
mov esi, 0xdc00
cmp ax, si
jne 0x521c79
lea ecx, [edx - 2]
mov dword [ebx + 0x38], ecx
cmp ecx, dword [ebx + 4]
jbe 0x518b84
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xde
jmp 0x5227a2
test esi, esi
jne case.0x51ff66.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5206f9
mov ecx, dword [ebx + 0x38]
cmp ecx, dword [ebp + 0x54]
jb 0x521ce1
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.default.0x5206f9
cmp ecx, dword [ebp + 0x5c]
ja 0x521ccc
cmp dword [ebp + 0x24], esi
je case.default.0x5206f9
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x519fb2
jmp case.default.0x5206f9
movzx edx, word [ecx]
add ecx, 2
cmp dword [esp + 0x14], 0
mov dword [ebx + 0x38], ecx
je 0x521d1e
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x521d1e
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 + 0x5a4390]
shl eax, 7
add eax, edx
movzx eax, word [eax*2 + 0x5a8790]
lea eax, [eax + eax*2]
movzx edx, word [eax*4 + 0x5a018a]
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 + 0x59f630]
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.0x5206f9
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xdf
jmp 0x5227a2
test esi, esi
jne case.0x51ff66.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5206f9
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x521ddf
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5206f9
cmp edx, dword [ebp + 0x5c]
ja 0x521dca
cmp dword [ebp + 0x24], esi
je case.default.0x5206f9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x519fb2
jmp case.default.0x5206f9
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [ebx + 0x38], edx
je 0x521e1c
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x521e1c
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 + 0x5a4390]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5a8790]
lea eax, [eax + eax*2]
movzx eax, word [eax*4 + 0x5a0188]
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.0x5206f9
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xe0
jmp 0x5227a2
test esi, esi
jne case.0x51ff66.998
mov edx, dword [ebx + 0x20]
lea eax, [edx + 1]
mov dword [ebx + 0x20], eax
cmp edx, dword [ebx + 0x24]
jae case.default.0x5206f9
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x54]
jb 0x521ebf
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je case.default.0x5206f9
cmp edx, dword [ebp + 0x5c]
ja 0x521eaa
cmp dword [ebp + 0x24], esi
je case.default.0x5206f9
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x519fb2
jmp case.default.0x5206f9
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [ebx + 0x38], edx
je 0x521efc
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x521efc
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 + 0x5a4390]
shl eax, 7
add eax, ecx
mov ecx, dword [ebx + 0x2c]
movzx eax, word [eax*2 + 0x5a8790]
lea edx, [eax + eax*2]
movzx eax, byte [edx*4 + 0x5a0180]
cmp eax, ecx
je 0x521f57
movzx edx, word [edx*4 + 0x5a0188]
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 + 0x59fe88], eax
jne 0x521f57
xor ecx, ecx
jmp 0x521f5c
mov ecx, 1
xor eax, eax
cmp dword [ebx + 0x28], 0xf
sete al
cmp ecx, eax
je case.default.0x5206f9
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xe1
jmp 0x5227a2
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.00562cb0
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 0x521fa1
lea eax, [ecx + 4]
mov dword [ebx], eax
jmp 0x518b84
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 0x521fc0
mov edi, dword [esp + 0x68]
lea eax, [esi + 4]
mov dword [ebx], eax
jmp 0x518b90
mov ecx, dword [ebx]
movzx eax, word [ecx + 2]
lea esi, [ecx + eax*2]
mov dword [ebx], esi
cmp word [esi], 0x78
je 0x52268e
mov edi, dword [esp + 0x68]
lea eax, [esi + 4]
mov dword [ebx], eax
jmp 0x518b90
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.00562cb0
mov eax, dword [esi + 0x50]
add esp, 0xc
mov dword [ebx + 0x50], eax
jmp 0x51ffb2
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 0x522292
xor eax, eax
cmp dword [ebx + 0x20], eax
sete al
jmp 0x51ffb5
mov ebx, dword [esp + 0x10]
mov ecx, dword [ebx]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x59da80]
jmp 0x522065
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 0x518b84
mov eax, 0x2008f
mov byte [ebx + 0x30], 0x23
mov dword [esp + 0x20], eax
jmp 0x5227a2
movzx eax, word [edx]
mov esi, edx
mov ecx, eax
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x5220a2
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 0x5220cf
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 + 0x5a4390]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5a8790]
lea eax, [eax + eax*2]
movzx edi, byte [eax*4 + 0x5a0182]
cmp edx, ebx
jbe 0x5221a0
mov ebp, dword [esp + 0x14]
movzx eax, word [edx - 2]
add edx, 0xfffffffe
mov ecx, eax
test ebp, ebp
je 0x522151
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x522126
movzx ecx, word [edx - 2]
sub edx, 2
movzx ecx, cx
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x522151
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 + 0x5a4390]
shl eax, 7
add eax, ecx
mov ecx, edi
movzx eax, word [eax*2 + 0x5a8790]
lea eax, [eax + eax*2]
movzx esi, byte [eax*4 + 0x5a0182]
mov eax, 1
shl eax, cl
test dword [esi*4 + 0x59dbe0], eax
je 0x52219c
mov eax, dword [esp + 0x10]
mov edi, esi
mov dword [eax + 0x38], edx
cmp edx, ebx
ja 0x522106
mov ebp, dword [esp + 0x6c]
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x38]
cmp eax, dword [ecx + 4]
jbe 0x518b84
mov esi, dword [ecx]
mov byte [ecx + 0x30], 0xdc
jmp 0x5227a2
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 + 0x59da80]
movzx eax, word [edx + 2]
ja 0x5224cf
add ecx, eax
lea eax, [edx + ecx*2]
mov dword [ebx], eax
jmp 0x518b88
cmp dword [esp + 0x14], 0
mov ebx, dword [esp + 0x10]
jne 0x520dc4
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x1d
jmp 0x5227a2
cmp dword [esp + 0x14], 0
mov ebx, dword [esp + 0x10]
jne 0x520ea2
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x1f
jmp 0x5227a2
cmp dword [esp + 0x14], 0
jne 0x520b26
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x17
jmp 0x5227a2
test ecx, ecx
js 0x522251
cmp ecx, 0xd
ja case.0x5206dc.15
jmp dword [ecx*4 + 0x5238a0]
cmp dword [ebx + 0x28], 0x16
je 0x522460
test esi, esi
jne case.0x521955.13
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x21
jmp 0x5227a2
cmp ecx, 0x7e
je 0x522281
mov eax, 0x80
cmp cx, ax
je 0x522281
xor eax, eax
jmp 0x522286
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 + 0x59da80]
mov byte [ebx + 0x30], 5
lea esi, [ecx + eax*2]
jmp 0x5227a2
mov eax, dword [esp + 0x10]
cmp cl, 0x7b
jne 0x5222ce
lea esi, [edx + 4]
mov byte [ebx + 0x30], 6
jmp 0x5227a6
mov byte [ebx + 0x30], 7
jmp 0x5227a6
mov byte [ebx + 0x30], 1
jmp 0x5227a2
mov eax, dword [ebx + 8]
mov dword [ebx], eax
jmp 0x52256d
mov eax, dword [esp + 0x4c]
add eax, eax
add dword [ebx + 0x38], eax
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x14
jmp 0x5227a2
mov ebx, dword [esp + 0x10]
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x14
jmp 0x5227a2
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x1e
jmp 0x5227a2
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x20
jmp 0x5227a2
cmp esi, dword [ebp + 0x54]
jae case.0x5206dc.13
cmp word [esi], 0xa
jne case.0x5206dc.13
lea eax, [esi + 2]
mov dword [ebx + 0x38], eax
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x21
jmp 0x5227a2
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.0x5206dc.13
cmp esi, dword [ebp + 0x54]
jb case.0x5206dc.13
cmp dword [ebp + 0x88], 0
jne case.0x5206dc.13
cmp dword [ebp + 0x8c], 2
jne case.0x5206dc.13
movzx eax, word [ebp + 0x90]
cmp ecx, eax
jne case.0x5206dc.13
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x519fb2
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x21
jmp 0x5227a2
mov ebx, dword [esp + 0x10]
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0x64
jmp 0x5227a2
mov ebx, dword [esp + 0x10]
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xc9
jmp 0x5227a2
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 0x5227a2
mov esi, dword [eax]
mov byte [eax + 0x30], 0xcd
jmp 0x5227a2
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xcf
jmp 0x5227a2
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xd0
jmp 0x5227a2
movzx edx, word [ecx]
add ecx, 2
mov edi, dword [esp + 0x14]
mov esi, ecx
mov dword [ebx + 0x38], ecx
test edi, edi
je 0x52241f
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x52241f
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.0052fc70
add esp, 0x18
mov dword [ebx + 0x38], eax
cmp eax, dword [ebp + 0x54]
jb 0x522460
movzx ecx, word [ebp + 0x3c]
mov edx, ecx
test cx, cx
je 0x522460
cmp eax, dword [ebp + 0x5c]
ja 0x522450
cmp dword [ebp + 0x24], 0
je 0x522460
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x519fb2
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xda
jmp 0x5227a2
cmp edx, dword [ebp + 0x54]
jae case.0x521955.13
cmp word [edx], 0xa
jne case.0x521955.13
lea eax, [edx + 2]
mov dword [ebx + 0x38], eax
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xdb
jmp 0x5227a2
movzx eax, word [ebp + 0x3c]
mov esi, eax
test ax, ax
je case.0x521955.13
cmp edx, dword [ebp + 0x54]
jb case.0x521955.13
cmp dword [ebp + 0x88], 0
jne case.0x521955.13
cmp dword [ebp + 0x8c], 2
jne case.0x521955.13
movzx eax, word [ebp + 0x90]
cmp ecx, eax
jne case.0x521955.13
mov dword [ebp + 0x1c], 1
cmp esi, 1
ja 0x519fb2
mov esi, dword [ebx]
mov byte [ebx + 0x30], 0xdb
jmp 0x5227a2
mov byte [ebx + 0x30], 0x11
jmp 0x52279d
mov eax, dword [esp + 0x10]
add esi, 2
mov dword [eax + 4], esi
mov byte [eax + 0x30], 9
jmp 0x5227a2
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 0x5224f5
add esi, 4
mov byte [ecx + 0x30], 0xa
jmp 0x5227a2
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 0x522557
mov ecx, 0x8e
cmp ax, cx
jne 0x522545
jmp 0x522557
mov ebx, dword [esp + 0x10]
mov dword [ebx + 0x28], 0
mov eax, 0x20000
jmp 0x522560
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 + 0x59da80]
mov byte [ebx + 0x30], 8
lea esi, [ecx + eax*2]
jmp 0x5227a2
movzx eax, word [esi + 4]
or eax, 0x10000
jmp 0x5225a5
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 + 0x59da80]
mov byte [ebx + 0x30], 2
lea esi, [esi + eax*2]
jmp 0x5227a2
mov ecx, dword [ebp + 0x48]
movzx eax, word [esi + 2]
lea ebx, [ecx + eax*2]
cmp ebx, ecx
jne 0x5225db
xor edi, edi
jmp 0x5225df
movzx edi, word [ebx + 4]
mov ebp, dword [esp + 0x10]
cmp dword [ebp + 0x44], 0xffffffff
je 0x522623
mov eax, dword [ebp + 0x4c]
cmp eax, 0xffffffff
je 0x522623
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 0x522617
mov eax, dword [ecx + 0x4c]
cmp eax, 0xffffffff
jne 0x522600
jmp 0x522623
mov eax, dword [ebp + 0x38]
cmp eax, dword [ecx + 0x38]
je 0x52292e
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 + 0x59da80]
mov byte [ebx + 0x30], 0xb
lea esi, [ecx + eax*2]
jmp 0x5227a2
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 + 0x59da80]
mov byte [ebx + 0x30], 3
lea esi, [esi + eax*2]
jmp 0x5227a2
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 + 0x59da80]
mov byte [ebx + 0x30], 4
lea esi, [esi + eax*2]
jmp 0x5227a2
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 + 0x59da80]
movzx eax, word [edx + 2]
mov byte [ebx + 0x30], 0xc
jmp 0x52279d
movzx eax, word [esi]
movzx eax, byte [eax + 0x59da80]
lea esi, [esi + eax*2]
mov eax, dword [esp + 0x10]
mov byte [eax + 0x30], 0xd
jmp 0x5227a2
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 + 0x59da80]
movzx eax, word [edx + 2]
mov byte [ebx + 0x30], 0x24
jmp 0x52279d
movzx eax, word [esi]
movzx eax, byte [eax + 0x59da80]
lea esi, [esi + eax*2]
mov eax, dword [esp + 0x10]
mov byte [eax + 0x30], 0xe
jmp 0x5227a2
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 + 0x59da80]
movzx eax, word [edx + 2]
mov byte [ebx + 0x30], 0xf
jmp 0x52279d
movzx eax, word [esi]
movzx eax, byte [eax + 0x59da80]
lea esi, [esi + eax*2]
mov eax, dword [esp + 0x10]
mov byte [eax + 0x30], 0x10
jmp 0x5227a2
movzx eax, word [esi]
movzx eax, byte [eax + 0x59da80]
lea esi, [esi + eax*2]
mov eax, dword [esp + 0x10]
mov byte [eax + 0x30], 0x12
jmp 0x5227a2
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 + 0x59da80]
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 0x52285d
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 0x5227e2
xor edx, edx
mov eax, ecx
div ebp
mov edi, ecx
sub edi, edx
cmp ebx, edi
jae 0x52293b
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 0x522948
mov eax, dword [esp + 0x68]
push dword [esp + 0x38]
push dword [eax + 0x18]
push ebx
call fcn.00562cb0
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.00562cb0
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 0x518b05
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 0x5228b3
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.00562cb0
mov eax, dword [ebx + 0x50]
dec esi
add eax, 2
add esp, 0xc
cmp esi, eax
jb 0x522917
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 0x522903
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