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

Disassembly:
sub esp, 0x50
mov eax, dword [esp + 0x68]
xor ecx, ecx
push ebx
mov ebx, dword [esp + 0x68]
xor edx, edx
push ebp
mov eax, dword [eax + 0x7c]
mov ebp, dword [esp + 0x68]
push esi
push edi
mov edi, eax
mov dword [esp + 0x24], ecx
shr eax, 0x11
and eax, 1
mov dword [esp + 0x18], ecx
mov ecx, dword [ebx + 0x1c]
mov dword [esp + 0x2c], eax
lea eax, [ebp - 0x38]
mov dword [esp + 0x44], eax
mov eax, dword [ebx + 0x18]
mov dword [esp + 0x10], eax
mov eax, ecx
div ebp
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x68]
sub ecx, edx
mov dword [esp + 0x3c], ecx
add ecx, eax
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x10]
mov dword [eax + 0x18], 0
mov dword [eax + 0x48], 0
mov dword [eax + 0x44], 0xffffffff
mov eax, dword [esp + 0x64]
mov dword [ecx + 0x38], eax
mov dword [ecx + 0x3c], eax
mov eax, ecx
shr edi, 0x13
and edi, 1
mov dword [esp + 0x1c], 0
xor edx, edx
mov dword [esp + 0x14], edi
mov dword [eax + 0x40], 0
mov dword [eax + 0x50], 0
mov dword [eax + 0x4c], 0xffffffff
mov dword [esp + 0x20], edx
mov dword [esp + 0x34], 0xfc00
mov dword [esp + 0x30], 0xdc00
mov dword [esp + 0x4c], 0xd800
mov dword [esp + 0x48], 0xff
nop dword [eax]
mov dword [eax + 0x1c], edx
mov dword [eax], esi
mov dword [eax + 0x10], ebp
test edx, edx
je 0x4efa10
sub eax, dword [ebx + 0x18]
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x4c], eax
mov eax, edx
and eax, 0xffff0000
cmp eax, 0x40000
jne 0x4efa0a
movzx eax, dx
mov dword [ecx + 0x44], eax
xor eax, eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x78]
mov ebp, dword [esp + 0x78]
mov edx, dword [eax + 0x18]
mov ecx, dword [eax + 0x10]
lea eax, [edx + 1]
mov dword [ebp + 0x18], eax
cmp edx, ecx
jae 0x4f9b2f
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x18]
cmp eax, dword [ebp + 0x14]
jb 0x4efa50
pop edi
pop esi
pop ebp
mov eax, 0xffffffcb
pop ebx
add esp, 0x50
ret
mov dword [ebp], eax
mov ebp, dword [esp + 0x78]
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
mov bl, byte [esi]
movzx ecx, bl
mov byte [esp + 0x64], bl
mov byte [eax + 0x31], bl
cmp ecx, 0xa6
ja case.0x4f77f2.15
movzx eax, byte [ecx + 0x4f9c98]
jmp dword [eax*4 + 0x4f9b3c]
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x44], 0xffffffff
jne 0x4efaf6
movzx edi, word [esi + 2]
mov eax, dword [eax + 0x4c]
nop dword [eax]
cmp eax, 0xffffffff
je case.0x4f77f2.15
mov ecx, dword [esp + 0x74]
mov ecx, dword [ecx + 0x18]
add ecx, eax
mov eax, edi
mov edx, ecx
mov dword [esp + 0x1c], ecx
sub edx, dword [esp + 0x70]
or eax, 0x10000
cmp dword [ecx + 0x1c], eax
je 0x4efabd
mov eax, dword [edx + 0x4c]
jmp 0x4efa90
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 edx, dword [esp + 0x10]
sar eax, 1
mov dword [edx + ecx*4 + 0x54], eax
mov eax, edx
mov eax, dword [eax + 0x38]
sub eax, dword [ebp + 0x4c]
sar eax, 1
mov dword [edx + ecx*4 + 0x58], eax
mov eax, edx
cmp ecx, dword [eax + 0x50]
jb 0x4efaf2
mov dword [eax + 0x50], esi
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x6bdc60]
lea eax, [ecx + eax*2]
mov ecx, dword [esp + 0x10]
mov dword [ecx], eax
jmp 0x4efa4c
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x78]
mov eax, dword [eax + 0x38]
cmp eax, dword [ebx + 0x60]
jbe 0x4efb23
mov dword [ebx + 0x60], eax
mov eax, dword [esp + 0x10]
mov esi, 0xfffffc19
mov dword [esp + 0x24], eax
jmp 0x4f6ecc
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x44], 0xffffffff
je 0x4efb94
mov eax, dword [eax + 0x4c]
cmp eax, 0xffffffff
je case.0x4f77f2.15
mov ecx, dword [esp + 0x74]
mov edx, dword [ecx + 0x18]
add edx, eax
mov ecx, edx
mov dword [esp + 0x1c], edx
sub ecx, dword [esp + 0x70]
mov eax, dword [edx + 0x1c]
and eax, 0xffff0000
cmp eax, 0x40000
je 0x4efb72
mov eax, dword [ecx + 0x4c]
jmp 0x4efb42
mov edx, dword [esp + 0x10]
mov dword [esp + 0x10], ecx
mov eax, dword [edx + 0x38]
mov dword [ecx + 0x38], eax
mov eax, dword [edx + 0x40]
mov dword [ecx + 0x40], eax
mov eax, dword [edx + 0x3c]
mov dword [ecx + 0x3c], eax
add dword [ecx], 4
jmp 0x4efa50
mov edx, dword [eax + 0x38]
mov esi, dword [eax + 0x3c]
cmp edx, esi
jne 0x4efbc2
mov eax, dword [ebp + 0x78]
test al, 4
jne case.0x4efa75.162
test al, 8
je 0x4efbc2
mov eax, dword [esp + 0x78]
mov ecx, dword [eax + 0x34]
mov eax, dword [eax + 0x4c]
lea eax, [eax + ecx*2]
cmp esi, eax
je case.0x4efa75.162
mov eax, dword [esp + 0x78]
cmp edx, dword [eax + 0x54]
jae 0x4f9a59
mov ecx, dword [esp + 0x78]
mov eax, dword [eax + 0x7c]
or eax, dword [ecx + 0x78]
test eax, 0x20000000
je 0x4f9a57
test bl, bl
jne 0x4f9a4d
xor esi, esi
mov ebx, ecx
jmp case.0x4f70c6.998
mov eax, dword [esp + 0x78]
mov ebp, eax
mov esi, dword [eax + 0x88]
test esi, esi
je 0x4efca4
mov edx, dword [eax + 0x54]
lea edi, [eax + 0x54]
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x38]
cmp ecx, edx
jae 0x4efc3b
push dword [esp + 0x14]
lea eax, [ebp + 0x8c]
push eax
push edx
push esi
push ecx
call fcn.0051fd50
add esp, 0x14
test eax, eax
je 0x4efc3b
mov eax, 1
jmp 0x4efc3d
xor eax, eax
test eax, eax
jne 0x4efcdb
mov ebx, dword [esp + 0x10]
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je case.0x4efa75.13
mov eax, dword [edi]
mov ecx, dword [ebx + 0x38]
sub eax, 2
cmp ecx, eax
jne case.0x4efa75.13
mov eax, dword [esp + 0x78]
cmp dword [eax + 0x88], 0
jne 0x4efca0
cmp dword [eax + 0x8c], 2
jne 0x4efca0
mov ebx, dword [esp + 0x78]
mov ax, word [ecx]
cmp ax, word [ebx + 0x90]
jne 0x4efcf2
mov eax, ebx
mov dword [eax + 0x1c], 1
cmp edx, 1
ja 0x4efdb9
mov ebx, eax
jmp 0x4efcf2
mov esi, dword [eax + 0x8c]
mov ebx, dword [esp + 0x10]
mov ecx, dword [ebp + 0x54]
lea eax, [esi + esi]
mov edx, dword [ebx + 0x38]
sub ecx, eax
cmp edx, ecx
ja 0x4efce6
mov ax, word [edx]
cmp ax, word [ebp + 0x90]
jne 0x4efce6
cmp esi, 1
je 0x4efcdb
mov ax, word [edx + 2]
cmp ax, word [ebp + 0x92]
jne 0x4efce6
mov edi, dword [esp + 0x14]
xor esi, esi
jmp 0x4f6ec4
lea edi, [ebp + 0x54]
jmp 0x4efc49
mov ebx, dword [esp + 0x78]
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x38]
cmp ecx, dword [ebx + 0x54]
jb 0x4efd35
movzx eax, word [ebx + 0x3c]
mov edx, eax
test ax, ax
je 0x4efd2a
mov eax, dword [esp + 0x78]
cmp ecx, dword [eax + 0x5c]
ja 0x4efd18
cmp dword [eax + 0x24], 0
je 0x4efd28
mov dword [eax + 0x1c], 1
cmp edx, 1
ja 0x4efdb9
mov ebx, eax
mov edi, dword [esp + 0x14]
xor esi, esi
jmp case.0x4f70c6.998
mov edi, dword [esp + 0x14]
add ecx, 2
mov dword [eax + 0x38], ecx
test edi, edi
je 0x4efd6b
cmp ecx, dword [ebx + 0x54]
jae 0x4efd6b
mov ax, word [ecx]
mov edx, 0xfc00
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x4efd67
lea eax, [ecx + 2]
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x38], eax
mov eax, dword [esp + 0x10]
add dword [eax], 2
mov ebp, dword [esp + 0x78]
jmp 0x4efa50
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x38]
mov eax, dword [esp + 0x78]
cmp ecx, dword [eax + 0x54]
jb 0x4efdc6
movzx eax, word [eax + 0x3c]
mov edx, eax
test ax, ax
je case.0x4efa75.162
mov eax, dword [esp + 0x78]
cmp ecx, dword [eax + 0x5c]
ja 0x4efda9
cmp dword [eax + 0x24], 0
je case.0x4efa75.162
mov dword [eax + 0x1c], 1
cmp edx, 1
jbe case.0x4efa75.162
pop edi
pop esi
pop ebp
mov eax, 0xfffffffe
pop ebx
add esp, 0x50
ret
mov ebp, dword [esp + 0x78]
lea eax, [ecx + 2]
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x38], eax
lea eax, [esi + 2]
mov dword [ecx], eax
jmp 0x4efa50
test edi, edi
je 0x4efeb8
mov eax, dword [esp + 0x10]
lea edi, [esi + 2]
mov ecx, 0xfc00
mov edx, 1
mov dword [eax + 0xc], 1
mov dword [eax], edi
mov ax, word [edi]
and ax, cx
mov ecx, 0xd800
cmp ax, cx
mov eax, dword [esp + 0x10]
jne 0x4efe20
mov dword [eax + 0xc], 2
mov edx, 2
mov ebx, dword [esp + 0x78]
mov esi, dword [eax + 0x38]
mov ecx, dword [ebx + 0x54]
mov eax, ecx
sub eax, esi
sar eax, 1
cmp edx, eax
jbe 0x4efe80
cmp esi, ecx
jb 0x4efd2a
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je 0x4efd2a
mov eax, ebx
cmp esi, dword [eax + 0x5c]
ja 0x4efe5c
cmp dword [eax + 0x24], 0
je 0x4efd28
mov dword [eax + 0x1c], 1
cmp ecx, 1
ja 0x4efdb9
mov edi, dword [esp + 0x14]
mov ebx, eax
xor esi, esi
jmp case.0x4f70c6.998
mov ax, word [esi]
add esi, 2
mov ebx, dword [esp + 0x10]
movzx ecx, word [edi]
add edi, 2
cmp cx, ax
mov eax, ebx
mov dword [ebx + 0x38], esi
mov dword [ebx], edi
jne 0x4efea9
add edx, 0xffffffff
mov dword [eax + 0xc], edx
jne 0x4efe80
jmp 0x4efa48
mov ebx, dword [esp + 0x78]
xor esi, esi
mov edi, dword [esp + 0x14]
jmp 0x4f6ecc
mov ebx, dword [esp + 0x10]
mov eax, dword [ebp + 0x54]
mov edi, dword [ebx + 0x38]
sub eax, edi
and eax, 0xfffffffe
cmp eax, 2
jge 0x4eff0d
mov ebx, dword [esp + 0x78]
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je 0x4efd2a
mov eax, ebx
cmp edi, dword [eax + 0x5c]
ja 0x4efef0
cmp dword [eax + 0x24], 0
je 0x4efd28
mov dword [eax + 0x1c], 1
cmp ecx, 1
ja 0x4efdb9
mov edi, dword [esp + 0x14]
mov ebx, eax
xor esi, esi
jmp case.0x4f70c6.998
movzx ecx, word [edi]
lea eax, [edi + 2]
movzx edx, word [esi + 2]
mov edi, dword [esp + 0x14]
mov dword [ebx + 0x38], eax
cmp dx, cx
jne case.0x4efa75.162
lea eax, [esi + 4]
mov dword [ebx], eax
jmp 0x4efa50
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x78]
mov ebp, dword [eax + 0x38]
cmp ebp, dword [ebx + 0x54]
jb 0x4eff72
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je case.0x4f70c6.999
mov eax, ebx
cmp ebp, dword [eax + 0x5c]
ja 0x4eff59
cmp dword [eax + 0x24], 0
je 0x4eff69
mov dword [eax + 0x1c], 1
cmp ecx, 1
ja 0x4efdb9
mov ebx, eax
xor esi, esi
jmp case.0x4f70c6.998
test edi, edi
je 0x4f00a8
mov dword [eax + 0xc], 1
lea ebx, [esi + 2]
mov dword [eax], ebx
mov edi, 1
movzx esi, word [ebx]
mov eax, esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4effc8
movzx eax, word [ebx + 2]
and esi, 0x3ff
and eax, 0x3ff
shl esi, 0xa
or esi, eax
mov edi, 2
mov eax, dword [esp + 0x10]
add esi, 0x10000
mov dword [eax + 0xc], 2
jmp 0x4effcc
mov eax, dword [esp + 0x10]
movzx edx, word [ebp]
cmp esi, 0x80
jae 0x4f001a
cmp edx, 0xff
ja 0x4effeb
mov eax, dword [esp + 0x78]
mov eax, dword [eax + 0x28]
movzx edx, byte [eax + edx]
mov eax, dword [esp + 0x78]
mov edi, dword [esp + 0x14]
mov eax, dword [eax + 0x28]
movzx eax, byte [eax + esi]
cmp eax, edx
jne case.0x4efa75.162
mov ecx, dword [esp + 0x10]
lea eax, [ebx + 2]
mov dword [ecx], eax
lea eax, [ebp + 2]
mov ebp, dword [esp + 0x78]
mov dword [ecx + 0x38], eax
jmp 0x4efa50
lea ecx, [ebp + 2]
mov dword [eax + 0x38], ecx
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f0053
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 0x4f0057
mov ecx, dword [esp + 0x10]
mov ebp, dword [esp + 0x78]
lea eax, [ebx + edi*2]
mov edi, dword [esp + 0x14]
mov dword [ecx], eax
cmp edx, esi
je 0x4efa50
mov eax, esi
shr eax, 7
movzx ecx, word [eax*2 + 0x6a6508]
mov eax, esi
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x6aa908]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x6a22fc]
add eax, esi
cmp edx, eax
je 0x4efa50
xor esi, esi
mov ebx, ebp
jmp case.0x4f70c6.998
cmp dword [esp + 0x2c], 0
je 0x4f014c
movzx edi, word [esi + 2]
movzx edx, word [ebp]
cmp edi, 0x80
jae 0x4f00e8
cmp edx, 0xff
ja 0x4f00d2
mov eax, dword [ebx + 0x28]
movzx edx, byte [eax + edx]
mov eax, dword [ebx + 0x28]
movzx eax, byte [eax + edi]
cmp eax, edx
je 0x4f0136
mov edi, dword [esp + 0x14]
xor esi, esi
jmp case.0x4f70c6.998
cmp edx, edi
je 0x4f0136
mov eax, edi
test eax, eax
jns 0x4f00f5
add eax, 0x7f
sar eax, 7
movzx ecx, word [eax*2 + 0x6a6508]
mov eax, edi
shl ecx, 7
and eax, 0x8000007f
jns 0x4f0111
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x6aa908]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x6a22fc]
add eax, edi
cmp edx, eax
je 0x4f0136
mov edi, dword [esp + 0x14]
xor esi, esi
jmp case.0x4f70c6.998
mov ecx, dword [esp + 0x10]
lea eax, [ebp + 2]
mov ebp, ebx
mov dword [ecx + 0x38], eax
lea eax, [esi + 4]
mov dword [ecx], eax
jmp 0x4efa4c
movzx eax, word [esi + 2]
mov ecx, 0xff
mov edx, eax
cmp ax, cx
ja 0x4f0163
mov eax, dword [ebx + 0x28]
movzx edx, byte [eax + edx]
movzx eax, word [ebp]
mov ecx, eax
cmp ax, word [esp + 0x48]
ja 0x4f0177
mov eax, dword [ebx + 0x28]
movzx ecx, byte [eax + ecx]
cmp edx, ecx
je 0x4f0182
xor esi, esi
jmp case.0x4f70c6.998
mov ecx, dword [esp + 0x10]
lea eax, [ebp + 2]
mov ebp, ebx
mov dword [ecx + 0x38], eax
lea eax, [esi + 4]
mov dword [ecx], eax
jmp 0x4efa50
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x38]
mov eax, dword [esp + 0x78]
cmp ecx, dword [eax + 0x54]
jb 0x4f01df
movzx eax, word [eax + 0x3c]
mov edx, eax
test ax, ax
je case.0x4efa75.162
mov eax, dword [esp + 0x78]
cmp ecx, dword [eax + 0x5c]
ja 0x4f01ca
cmp dword [eax + 0x24], 0
je case.0x4efa75.162
mov dword [eax + 0x1c], 1
cmp edx, 1
ja 0x4efdb9
jmp case.0x4efa75.162
lea eax, [esi + 2]
test edi, edi
je 0x4f02bb
mov edi, dword [esp + 0x10]
lea esi, [eax + 2]
mov dword [edi], eax
movzx edx, word [eax]
mov eax, edx
mov dword [edi], esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f0224
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
movzx esi, word [ecx]
add ecx, 2
mov eax, esi
mov dword [edi + 0x38], ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f025a
movzx eax, word [ecx]
and esi, 0x3ff
and eax, 0x3ff
shl esi, 0xa
or esi, eax
lea eax, [ecx + 2]
add esi, 0x10000
mov dword [edi + 0x38], eax
mov edi, dword [esp + 0x14]
cmp edx, esi
je case.0x4efa75.162
mov ebp, dword [esp + 0x78]
cmp bl, 0x20
jne 0x4efa50
mov ebx, ebp
cmp edx, 0x7f
jbe 0x4f02a5
mov eax, edx
shr eax, 7
movzx ecx, word [eax*2 + 0x6a6508]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x6aa908]
lea eax, [eax + eax*2]
add edx, dword [eax*4 + 0x6a22fc]
jmp 0x4f02ac
mov eax, dword [ebx + 0x2c]
movzx edx, byte [eax + edx]
cmp edx, esi
jne 0x4efa50
xor esi, esi
jmp case.0x4f70c6.998
cmp dword [esp + 0x2c], 0
lea edi, [ecx + 2]
je 0x4f034a
movzx ebx, word [ecx]
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x38], edi
movzx edx, word [eax]
lea eax, [esi + 4]
mov edi, dword [esp + 0x14]
mov dword [ecx], eax
cmp edx, ebx
je case.0x4efa75.162
cmp byte [esp + 0x64], 0x20
mov ebp, dword [esp + 0x78]
jne 0x4efa50
cmp edx, 0x7f
jbe 0x4f0336
mov eax, edx
test eax, eax
jns 0x4f0304
add eax, 0x7f
sar eax, 7
movzx ecx, word [eax*2 + 0x6a6508]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x4f0320
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x6aa908]
lea eax, [eax + eax*2]
add edx, dword [eax*4 + 0x6a22fc]
jmp 0x4f033d
mov eax, dword [ebp + 0x2c]
movzx edx, byte [eax + edx]
cmp edx, ebx
jne 0x4efa50
jmp case.0x4efa75.162
movzx edx, word [eax]
mov eax, dword [esp + 0x10]
movzx ecx, word [ecx]
mov dword [eax + 0x38], edi
cmp edx, ecx
je 0x4f0385
cmp bl, 0x20
jne 0x4f0377
cmp edx, 0xff
ja 0x4f0377
mov ebx, dword [esp + 0x78]
mov eax, dword [ebx + 0x2c]
movzx eax, byte [eax + edx]
cmp eax, ecx
je 0x4f0389
mov ecx, dword [esp + 0x10]
lea eax, [esi + 4]
mov dword [ecx], eax
jmp 0x4efa48
mov ebx, dword [esp + 0x78]
mov edi, dword [esp + 0x14]
xor esi, esi
jmp case.0x4f70c6.998
mov eax, dword [esp + 0x10]
movzx edi, word [esi + 2]
add esi, 4
mov dword [eax + 0x24], edi
mov dword [eax + 0x20], edi
mov dword [eax], esi
jmp 0x4f04cd
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 edi, edi
mov dword [ecx], esi
jmp 0x4f04c9
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x18], 1
mov dword [ecx + 0x20], 0
movzx eax, word [esi + 2]
add esi, 4
mov dword [ecx + 0x24], eax
xor edi, edi
mov dword [ecx], esi
jmp 0x4f04c9
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x18], 0
mov dword [ecx + 0x20], 0
movzx eax, word [esi + 2]
add esi, 4
mov dword [ecx + 0x24], eax
xor edi, edi
mov dword [ecx], esi
jmp 0x4f04c9
mov eax, dword [esp + 0x10]
add esi, 2
mov dword [esp + 0x18], 2
xor edi, edi
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 0xffffffff
mov dword [eax], esi
jmp 0x4f04c9
mov eax, dword [esp + 0x10]
add esi, 2
mov dword [esp + 0x18], 2
mov edi, 1
mov dword [eax + 0x20], 1
mov dword [eax + 0x24], 0xffffffff
mov dword [eax], esi
jmp 0x4f04c9
mov eax, dword [esp + 0x10]
add esi, 2
mov dword [esp + 0x18], 2
xor edi, edi
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 1
mov dword [eax], esi
jmp 0x4f04c9
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 edi, dword [ecx*4 + 0x69fc10]
mov dword [eax], esi
mov dword [eax + 0x20], edi
mov eax, dword [ecx*4 + 0x69fc3c]
mov dword [edx + 0x24], eax
mov eax, dword [ecx*4 + 0x69fc68]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
test ebx, ebx
je 0x4f089e
mov dword [eax + 0xc], 1
lea ecx, [esi + 2]
mov dword [eax + 8], esi
movzx edx, word [esi]
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f0893
movzx eax, word [ecx]
and edx, 0x3ff
mov ecx, dword [esp + 0x10]
and eax, 0x3ff
shl edx, 0xa
or edx, eax
lea eax, [esi + 4]
add edx, 0x10000
mov dword [ecx + 0xc], 2
mov dword [ecx], eax
mov eax, ecx
cmp byte [eax + 0x31], 0x2e
jb 0x4f056e
mov eax, edx
shr eax, 7
movzx ecx, word [eax*2 + 0x6a6508]
mov eax, edx
shl ecx, 7
and eax, 0x7f
add ecx, eax
movzx eax, word [ecx*2 + 0x6aa908]
lea eax, [eax + eax*2]
mov ecx, dword [eax*4 + 0x6a22fc]
add ecx, edx
cmp ecx, edx
je 0x4f056e
mov eax, dword [esp + 0x10]
add eax, 0x32
push eax
push ecx
call fcn.0051ff00
add esp, 8
jmp 0x4f0570
xor eax, eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x64], 1
mov dword [ecx + 0x14], eax
mov eax, dword [ecx + 0x20]
cmp eax, 1
jb 0x4f06f5
nop dword [eax + eax]
mov eax, dword [esp + 0x10]
mov ebp, dword [ebp + 0x54]
mov edi, dword [eax + 0xc]
mov ebx, dword [eax + 0x38]
add edi, edi
mov eax, ebp
sub eax, edi
cmp ebx, eax
ja 0x4f0606
mov eax, dword [esp + 0x10]
mov esi, edi
mov ecx, ebx
mov edx, dword [eax + 8]
sub esi, 4
jb 0x4f05c8
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4f05d1
add ecx, 4
add edx, 4
sub esi, 4
jae 0x4f05b7
cmp esi, 0xfffffffc
je 0x4f0677
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4f0606
cmp esi, 0xfffffffd
je 0x4f0677
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4f0606
cmp esi, 0xfffffffe
je 0x4f0677
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4f0606
cmp esi, 0xffffffff
je 0x4f0677
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x4f0677
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x14]
test eax, eax
je 0x4f06ae
lea edi, [eax + eax]
mov eax, ebp
sub eax, edi
cmp ebx, eax
ja 0x4f06ae
mov edx, dword [esp + 0x10]
mov esi, edi
add edx, 0x32
mov ecx, ebx
sub esi, 4
jb 0x4f0645
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4f064a
add ecx, 4
add edx, 4
sub esi, 4
jae 0x4f0634
cmp esi, 0xfffffffc
je 0x4f0677
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4f06ae
cmp esi, 0xfffffffd
je 0x4f0677
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4f06ae
cmp esi, 0xfffffffe
je 0x4f0677
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4f06ae
cmp esi, 0xffffffff
je 0x4f0677
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x4f06ae
mov ecx, dword [esp + 0x10]
lea eax, [ebx + edi]
mov ebp, dword [esp + 0x78]
mov edx, 0x38
mov dword [ecx + edx], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x64]
inc ecx
mov dword [esp + 0x64], ecx
mov eax, dword [eax + 0x20]
cmp ecx, eax
jbe 0x4f0590
mov ecx, dword [esp + 0x10]
mov edx, eax
mov dword [esp + 0x64], edx
jmp 0x4f06fb
cmp ebx, ebp
jb 0x4efcdb
mov eax, dword [esp + 0x78]
movzx eax, word [eax + 0x3c]
mov ecx, eax
test ax, ax
je 0x4efcdb
mov eax, dword [esp + 0x78]
cmp ebx, dword [eax + 0x5c]
ja 0x4f06dc
cmp dword [eax + 0x24], 0
je 0x4efcdb
mov dword [eax + 0x1c], 1
cmp ecx, 1
ja 0x4efdb9
mov edi, dword [esp + 0x14]
jmp case.0x4efa75.162
mov edx, eax
mov dword [esp + 0x64], eax
mov ecx, dword [ecx + 0x24]
mov ebp, dword [esp + 0x78]
mov edi, dword [esp + 0x14]
cmp eax, ecx
je 0x4efa50
cmp dword [esp + 0x18], 0
je 0x4f9570
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x38]
mov dword [eax + 4], ebx
cmp edx, ecx
jae 0x4f087b
jmp 0x4f0734
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0xc]
mov eax, dword [esp + 0x78]
add edi, edi
mov ebp, dword [eax + 0x54]
mov eax, ebp
sub eax, edi
cmp ebx, eax
ja 0x4f07ab
mov eax, dword [esp + 0x10]
mov esi, edi
mov ecx, ebx
mov edx, dword [eax + 8]
sub esi, 4
jb 0x4f0769
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4f0772
add ecx, 4
add edx, 4
sub esi, 4
jae 0x4f0758
cmp esi, 0xfffffffc
je 0x4f0823
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4f07ab
cmp esi, 0xfffffffd
je 0x4f0823
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4f07ab
cmp esi, 0xfffffffe
je 0x4f0823
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4f07ab
cmp esi, 0xffffffff
je 0x4f0823
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x4f0823
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x14]
test eax, eax
je 0x4f0849
lea edi, [eax + eax]
mov eax, ebp
sub eax, edi
cmp ebx, eax
ja 0x4f0849
mov edx, dword [esp + 0x10]
mov esi, edi
add edx, 0x32
mov ecx, ebx
sub esi, 4
jb 0x4f07f1
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4f07f6
add ecx, 4
add edx, 4
sub esi, 4
jae 0x4f07e0
cmp esi, 0xfffffffc
je 0x4f0823
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4f0849
cmp esi, 0xfffffffd
je 0x4f0823
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4f0849
cmp esi, 0xfffffffe
je 0x4f0823
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4f0849
cmp esi, 0xffffffff
je 0x4f0823
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x4f0849
mov eax, dword [esp + 0x10]
mov ecx, 0x38
mov edx, dword [esp + 0x64]
add ebx, edi
inc edx
mov dword [esp + 0x64], edx
mov dword [ecx + eax], ebx
cmp edx, dword [eax + 0x24]
jb 0x4f0730
mov ebp, dword [esp + 0x78]
jmp 0x4f087b
cmp ebx, ebp
mov ebp, dword [esp + 0x78]
jb 0x4f087b
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x4f087b
mov eax, ebp
cmp ebx, dword [eax + 0x5c]
ja 0x4f0869
cmp dword [eax + 0x24], 0
je 0x4f0879
mov dword [eax + 0x1c], 1
cmp ecx, 1
ja 0x4efdb9
mov ebp, eax
cmp dword [esp + 0x18], 2
mov edi, dword [esp + 0x14]
je 0x4efa50
mov ebp, dword [esp + 0x10]
jmp 0x4f7e6f
mov eax, dword [esp + 0x10]
mov dword [eax], ecx
mov dword [eax + 0x28], edx
jmp 0x4f08af
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 0x4f0a48
test ebx, ebx
jne 0x4f08c3
cmp dword [esp + 0x2c], ebx
je 0x4f08f5
cmp edx, 0x7f
jbe 0x4f08f5
mov eax, edx
shr eax, 7
movzx ecx, word [eax*2 + 0x6a6508]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x6aa908]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x6a22fc]
add eax, edx
jmp 0x4f0908
cmp edx, 0xff
ja 0x4f0906
mov eax, dword [ebp + 0x2c]
movzx eax, byte [eax + edx]
jmp 0x4f0908
mov eax, edx
mov ecx, dword [esp + 0x10]
mov esi, 1
mov dword [ecx + 0x2c], eax
cmp edi, esi
jb 0x4f0956
nop dword [eax + eax]
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x38]
mov eax, dword [esp + 0x78]
cmp ecx, dword [eax + 0x54]
jae 0x4f09ba
mov ebx, dword [esp + 0x10]
movzx eax, word [ecx]
mov edx, dword [ebx + 0x28]
cmp edx, eax
je 0x4f094b
cmp dword [ebx + 0x2c], eax
jne 0x4efcdb
inc esi
lea eax, [ecx + 2]
mov dword [ebx + 0x38], eax
cmp esi, edi
jbe 0x4f0920
mov eax, dword [esp + 0x10]
mov ebx, edi
mov ebp, dword [esp + 0x78]
mov esi, dword [eax + 0x24]
cmp edi, esi
mov edi, dword [esp + 0x14]
je 0x4efa50
mov edi, dword [esp + 0x18]
test edi, edi
je 0x4f753e
mov ecx, dword [eax + 0x38]
mov dword [eax + 4], ecx
cmp ebx, esi
jae 0x4f0a1f
nop dword [eax]
mov eax, dword [esp + 0x78]
cmp ecx, dword [eax + 0x54]
jae 0x4f09f5
movzx eax, word [ecx]
cmp edx, eax
je 0x4f09a9
mov ebp, dword [esp + 0x10]
cmp dword [ebp + 0x2c], eax
jne 0x4f0a23
mov eax, dword [esp + 0x10]
add ecx, 2
inc ebx
mov dword [eax + 0x38], ecx
cmp ebx, esi
jb 0x4f0990
jmp 0x4f0a1f
movzx eax, word [eax + 0x3c]
mov edx, eax
test ax, ax
je 0x4efcdb
mov eax, dword [esp + 0x78]
cmp ecx, dword [eax + 0x5c]
ja 0x4f09dc
cmp dword [eax + 0x24], 0
je 0x4efcdb
mov dword [eax + 0x1c], 1
cmp edx, 1
ja 0x4efdb9
mov edi, dword [esp + 0x14]
jmp case.0x4efa75.162
movzx eax, word [eax + 0x3c]
mov edx, eax
test ax, ax
je 0x4f0a1f
mov eax, dword [esp + 0x78]
cmp ecx, dword [eax + 0x5c]
ja 0x4f0a0f
cmp dword [eax + 0x24], 0
je 0x4f0a1f
mov dword [eax + 0x1c], 1
cmp edx, 1
ja 0x4efdb9
mov ebp, dword [esp + 0x10]
cmp edi, 2
mov edi, dword [esp + 0x14]
je 0x4f6540
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebp + 4]
je 0x4efa48
mov esi, dword [ebp]
mov byte [ebp + 0x30], 0x1a
jmp 0x4f995a
mov ebx, 1
cmp edi, ebx
jb 0x4f0a7a
mov esi, dword [eax + 0x38]
mov eax, dword [esp + 0x78]
cmp esi, dword [eax + 0x54]
jae 0x4f0ad4
mov ebp, dword [esp + 0x10]
lea eax, [esi + 2]
movzx edx, word [esi]
mov dword [ebp + 0x38], eax
mov eax, ebp
cmp dword [ebp + 0x28], edx
jne 0x4efea9
inc ebx
cmp ebx, edi
jbe 0x4f0a51
mov edx, dword [eax + 0x24]
mov esi, edi
mov ebp, dword [esp + 0x78]
cmp edi, edx
mov edi, dword [esp + 0x14]
je 0x4efa50
mov ebx, dword [esp + 0x18]
test ebx, ebx
je 0x4f75c7
mov ecx, dword [eax + 0x38]
mov dword [eax + 4], ecx
cmp esi, edx
jae 0x4f0b39
nop dword [eax]
mov eax, dword [esp + 0x78]
cmp ecx, dword [eax + 0x54]
jae 0x4f0b0f
mov ebp, dword [esp + 0x10]
movzx eax, word [ecx]
cmp dword [ebp + 0x28], eax
jne 0x4f0b3d
mov eax, ebp
add ecx, 2
inc esi
mov dword [eax + 0x38], ecx
cmp esi, edx
jb 0x4f0ab0
jmp 0x4f0b39
movzx eax, word [eax + 0x3c]
mov ecx, eax
test ax, ax
je 0x4efcdb
mov eax, dword [esp + 0x78]
cmp esi, dword [eax + 0x5c]
ja 0x4f0af6
cmp dword [eax + 0x24], 0
je 0x4efcdb
mov dword [eax + 0x1c], 1
cmp ecx, 1
ja 0x4efdb9
mov edi, dword [esp + 0x14]
jmp case.0x4efa75.162
movzx eax, word [eax + 0x3c]
mov edx, eax
test ax, ax
je 0x4f0b39
mov eax, dword [esp + 0x78]
cmp ecx, dword [eax + 0x5c]
ja 0x4f0b29
cmp dword [eax + 0x24], 0
je 0x4f0b39
mov dword [eax + 0x1c], 1
cmp edx, 1
ja 0x4efdb9
mov ebp, dword [esp + 0x10]
cmp ebx, 2
je 0x4f6540
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebp + 4]
jbe 0x4efa48
mov esi, dword [ebp]
mov byte [ebp + 0x30], 0x1c
jmp 0x4f995a
mov eax, dword [esp + 0x10]
movzx edx, word [esi + 2]
add esi, 4
mov dword [eax + 0x24], edx
mov dword [eax + 0x20], edx
mov dword [eax], esi
jmp 0x4f0c97
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x18], 1
mov dword [ecx + 0x20], 0
movzx eax, word [esi + 2]
add esi, 4
mov dword [ecx + 0x24], eax
xor edx, edx
mov dword [ecx], esi
jmp 0x4f0c93
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x18], 0
mov dword [ecx + 0x20], 0
movzx eax, word [esi + 2]
add esi, 4
mov dword [ecx + 0x24], eax
xor edx, edx
mov dword [ecx], esi
jmp 0x4f0c93
mov eax, dword [esp + 0x10]
add esi, 2
mov dword [esp + 0x18], 2
xor edx, edx
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 0xffffffff
mov dword [eax], esi
jmp 0x4f0c93
mov eax, dword [esp + 0x10]
add esi, 2
mov dword [esp + 0x18], 2
mov edx, 1
mov dword [eax + 0x20], 1
mov dword [eax + 0x24], 0xffffffff
mov dword [eax], esi
jmp 0x4f0c93
mov eax, dword [esp + 0x10]
add esi, 2
mov dword [esp + 0x18], 2
xor edx, edx
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 1
mov dword [eax], esi
jmp 0x4f0c93
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 edx, edx
mov dword [ecx], esi
jmp 0x4f0c93
movzx ecx, word [esi]
cmp bl, 0x48
mov ebx, dword [esp + 0x10]
sbb eax, eax
and eax, 0xfffffff3
add eax, 0x48
sub ecx, eax
mov eax, dword [esp + 0x10]
add esi, 2
mov edx, dword [ecx*4 + 0x69fc10]
mov dword [eax], esi
mov dword [eax + 0x20], edx
mov eax, dword [ecx*4 + 0x69fc3c]
mov dword [ebx + 0x24], eax
mov eax, dword [ecx*4 + 0x69fc68]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x10]
movzx ecx, word [esi]
add esi, 2
mov ebx, dword [esp + 0x14]
mov edi, ecx
mov dword [eax + 0x28], ecx
mov dword [eax], esi
test ebx, ebx
je 0x4f0ce4
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f0ce0
movzx edi, word [esi]
lea eax, [esi + 2]
and ecx, 0x3ff
and edi, 0x3ff
shl ecx, 0xa
or edi, ecx
mov ecx, dword [esp + 0x10]
add edi, 0x10000
mov dword [ecx + 0x28], edi
mov dword [ecx], eax
mov eax, dword [esp + 0x10]
cmp byte [eax + 0x31], 0x48
jb 0x4f0fdb
test ebx, ebx
jne 0x4f0cf8
cmp dword [esp + 0x2c], ebx
je 0x4f0d2a
cmp edi, 0x7f
jbe 0x4f0d2a
mov eax, edi
shr eax, 7
movzx ecx, word [eax*2 + 0x6a6508]
mov eax, edi
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x6aa908]
lea eax, [eax + eax*2]
mov ebx, dword [eax*4 + 0x6a22fc]
add ebx, edi
jmp 0x4f0d3d
cmp edi, 0xff
ja 0x4f0d3b
mov eax, dword [ebp + 0x2c]
movzx ebx, byte [eax + edi]
jmp 0x4f0d3d
mov ebx, edi
cmp dword [esp + 0x14], 0
mov eax, dword [esp + 0x10]
mov dword [eax + 0x2c], ebx
je 0x4f0e02
mov ebp, 1
cmp edx, ebp
jb 0x4f0ef2
jmp 0x4f0d64
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x78]
mov esi, dword [eax + 0x38]
cmp esi, dword [ecx + 0x54]
jae 0x4f0dc3
movzx ecx, word [esi]
add esi, 2
mov dword [eax + 0x38], esi
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f0daa
movzx eax, word [esi]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
lea eax, [esi + 2]
mov esi, dword [esp + 0x10]
add ecx, 0x10000
mov dword [esi + 0x38], eax
cmp edi, ecx
je 0x4efcdb
cmp ebx, ecx
je 0x4efcdb
inc ebp
cmp ebp, edx
jbe 0x4f0d60
mov ebp, edx
jmp 0x4f0e11
mov ebx, ecx
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je 0x4efd2a
mov eax, ebx
cmp esi, dword [eax + 0x5c]
ja 0x4f0de5
cmp dword [eax + 0x24], 0
je 0x4efd28
mov dword [eax + 0x1c], 1
cmp ecx, 1
ja 0x4efdb9
mov edi, dword [esp + 0x14]
mov ebx, eax
xor esi, esi
jmp case.0x4f70c6.998
mov esi, 1
mov ebp, edx
cmp edx, esi
jae 0x4f0ec4
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x24]
cmp edx, edi
je 0x4efa48
mov ebx, dword [esp + 0x18]
test ebx, ebx
je 0x4f9375
cmp dword [esp + 0x14], 0
mov edx, dword [eax + 0x38]
mov dword [eax + 4], edx
je 0x4f0f70
cmp ebp, edi
jae 0x4f0f5a
nop word [eax + eax]
mov eax, dword [esp + 0x78]
mov esi, 1
cmp edx, dword [eax + 0x54]
jae 0x4f0f34
movzx ecx, word [edx]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f0e92
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]
cmp dword [eax + 0x28], ecx
je 0x4f0f5a
cmp dword [eax + 0x2c], ecx
je 0x4f0f5a
inc ebp
lea edx, [edx + esi*2]
mov dword [eax + 0x38], edx
cmp ebp, edi
jb 0x4f0e50
jmp 0x4f0f5a
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x38]
mov eax, dword [esp + 0x78]
cmp ecx, dword [eax + 0x54]
jae 0x4f0ef9
movzx eax, word [ecx]
cmp edi, eax
je 0x4efcdb
cmp ebx, eax
je 0x4efcdb
lea eax, [ecx + 2]
inc esi
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x38], eax
cmp esi, edx
jbe 0x4f0ec0
mov ebp, edx
jmp 0x4f0e11
movzx eax, word [eax + 0x3c]
mov edx, eax
test ax, ax
je 0x4efcdb
mov eax, dword [esp + 0x78]
cmp ecx, dword [eax + 0x5c]
ja 0x4f0f1b
cmp dword [eax + 0x24], 0
je 0x4efcdb
mov dword [eax + 0x1c], 1
cmp edx, 1
ja 0x4efdb9
mov edi, dword [esp + 0x14]
jmp case.0x4efa75.162
movzx eax, word [eax + 0x3c]
mov ecx, eax
test ax, ax
je 0x4f0f5a
mov eax, dword [esp + 0x78]
cmp edx, dword [eax + 0x5c]
ja 0x4f0f4e
cmp dword [eax + 0x24], 0
je 0x4f0f5a
mov dword [eax + 0x1c], esi
cmp ecx, 1
ja 0x4efdb9
mov edi, dword [esp + 0x14]
cmp ebx, 2
je 0x4f6540
mov ebp, dword [esp + 0x10]
jmp 0x4f7f60
cmp ebp, edi
jae 0x4f0fc3
mov ebx, dword [esp + 0x78]
cmp edx, dword [ebx + 0x54]
jae 0x4f0f9d
mov ecx, dword [esp + 0x10]
movzx eax, word [edx]
cmp dword [ecx + 0x28], eax
je 0x4f0fc3
cmp dword [ecx + 0x2c], eax
je 0x4f0fc3
mov eax, ecx
add edx, 2
inc ebp
mov dword [eax + 0x38], edx
cmp ebp, edi
jb 0x4f0f78
jmp 0x4f0fc3
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je 0x4f0fc3
cmp edx, dword [ebx + 0x5c]
ja 0x4f0fb3
cmp dword [ebx + 0x24], 0
je 0x4f0fc3
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efdb9
cmp dword [esp + 0x18], 2
mov edi, dword [esp + 0x14]
je 0x4f6540
mov ebp, dword [esp + 0x10]
jmp 0x4f766f
mov esi, 1
test ebx, ebx
je 0x4f112f
cmp edx, esi
jb 0x4f1050
mov ebx, dword [esp + 0x78]
jmp 0x4f0ff6
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x54]
jae 0x4f10f6
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f103c
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]
cmp edi, ecx
je 0x4f10eb
mov edx, dword [eax + 0x20]
inc esi
cmp esi, edx
jbe 0x4f0ff2
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 0x24]
mov ebp, dword [esp + 0x78]
cmp edx, esi
je 0x4efa4c
cmp dword [esp + 0x18], 0
je 0x4f938b
mov ecx, dword [eax + 0x38]
mov edi, dword [esp + 0x14]
mov dword [eax + 4], ecx
mov ebx, dword [eax + 0x20]
test edi, edi
je 0x4f11e3
cmp ebx, esi
jae 0x4f11cf
nop dword [eax + eax]
mov edi, 1
cmp ecx, dword [ebp + 0x54]
jae 0x4f11a5
movzx edx, word [ecx]
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f10ce
movzx eax, word [ecx + 2]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
mov edi, 2
add edx, 0x10000
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x28], edx
je 0x4f11cb
inc ebx
lea ecx, [ecx + edi*2]
mov dword [eax + 0x38], ecx
cmp ebx, esi
jb 0x4f1090
jmp 0x4f11cb
mov edi, dword [esp + 0x14]
xor esi, esi
jmp 0x4f6ecc
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je 0x4efd2a
cmp edx, dword [ebx + 0x5c]
ja 0x4f1114
cmp dword [ebx + 0x24], 0
je 0x4efd2a
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efdb9
mov edi, dword [esp + 0x14]
xor esi, esi
jmp case.0x4f70c6.998
cmp edx, 1
jb 0x4f1050
mov ebx, dword [esp + 0x78]
jmp 0x4f1144
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x54]
jae 0x4f116c
movzx ecx, word [edx]
lea eax, [edx + 2]
mov edx, dword [esp + 0x10]
mov dword [edx + 0x38], eax
mov eax, edx
cmp edi, ecx
je 0x4f10eb
mov edx, dword [eax + 0x20]
inc esi
cmp esi, edx
jbe 0x4f1140
jmp 0x4f1054
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je 0x4efd2a
cmp edx, dword [ebx + 0x5c]
ja 0x4f118a
cmp dword [ebx + 0x24], 0
je 0x4efd2a
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efdb9
mov edi, dword [esp + 0x14]
xor esi, esi
jmp case.0x4f70c6.998
mov ebx, ebp
movzx eax, word [ebx + 0x3c]
mov edx, eax
test ax, ax
je 0x4f11c9
cmp ecx, dword [ebx + 0x5c]
ja 0x4f11bd
cmp dword [ebx + 0x24], 0
je 0x4f11c9
mov dword [ebx + 0x1c], edi
cmp edx, 1
ja 0x4efdb9
mov ebp, ebx
mov edi, dword [esp + 0x14]
cmp dword [esp + 0x18], 2
je 0x4efa50
mov ebp, dword [esp + 0x10]
jmp 0x4f8048
cmp ebx, esi
jae 0x4f1233
mov eax, dword [esp + 0x78]
cmp ecx, dword [eax + 0x54]
jae 0x4f120b
mov ebp, dword [esp + 0x10]
movzx eax, word [ecx]
cmp dword [ebp + 0x28], eax
je 0x4f1237
mov eax, ebp
add ecx, 2
inc ebx
mov dword [eax + 0x38], ecx
cmp ebx, esi
jb 0x4f11e7
jmp 0x4f1233
mov ebx, eax
movzx eax, word [ebx + 0x3c]
mov edx, eax
test ax, ax
je 0x4f1233
cmp ecx, dword [ebx + 0x5c]
ja 0x4f1223
cmp dword [ebx + 0x24], 0
je 0x4f1233
mov dword [ebx + 0x1c], 1
cmp edx, 1
ja 0x4efdb9
mov ebp, dword [esp + 0x10]
cmp dword [esp + 0x18], 2
je 0x4f6540
jmp 0x4f770b
mov ebx, dword [esp + 0x10]
lea eax, [esi + 2]
lea edx, [esi + 0x22]
mov dword [ebx + 8], eax
mov dword [ebx], edx
movzx edi, word [edx]
lea eax, [edi - 0x62]
cmp eax, 0xb
ja case.default.0x4f1268
movzx eax, byte [eax + 0x4f9d48]
jmp dword [eax*4 + 0x4f9d40]
mov ecx, dword [edi*4 + 0x69fa88]
lea eax, [esi + 0x24]
mov ebp, dword [edi*4 + 0x69fae0]
mov dword [ebx], eax
mov eax, dword [edi*4 + 0x69fab4]
mov dword [ebx + 0x20], ecx
mov dword [ebx + 0x24], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x18], ebp
jmp 0x4f12e8
movzx ecx, word [esi + 0x24]
mov dword [ebx + 0x20], ecx
movzx eax, word [edx + 4]
mov dword [ebx + 0x24], eax
test eax, eax
jne 0x4f12b8
mov eax, dword [esp + 0x10]
mov ebx, eax
mov dword [eax + 0x24], 0xffffffff
movzx eax, word [edx]
mov eax, dword [eax*4 + 0x69fae0]
mov dword [esp + 0x18], eax
lea eax, [edx + 6]
mov dword [ebx], eax
mov eax, dword [esp + 0x10]
jmp 0x4f12e8
mov eax, dword [esp + 0x10]
mov ecx, 1
mov dword [eax + 0x24], 1
mov dword [eax + 0x20], 1
cmp dword [esp + 0x14], 0
mov edi, 1
je 0x4f13cf
cmp ecx, edi
jb 0x4f1475
mov ebx, dword [esp + 0x78]
mov ecx, dword [eax + 0x38]
cmp ecx, dword [ebx + 0x54]
jae 0x4f1396
movzx esi, word [ecx]
add ecx, 2
mov ebx, dword [esp + 0x10]
mov dword [eax + 0x38], ecx
mov eax, esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f134a
movzx eax, word [ecx]
and esi, 0x3ff
and eax, 0x3ff
shl esi, 0xa
or esi, eax
lea eax, [ecx + 2]
add esi, 0x10000
mov dword [ebx + 0x38], eax
cmp esi, 0xff
jbe 0x4f1362
mov eax, dword [esp + 0x10]
cmp byte [eax + 0x31], 0x6e
je 0x4efcdb
jmp 0x4f1381
mov eax, dword [ebx + 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 0x4efea9
mov ecx, dword [eax + 0x20]
inc edi
cmp edi, ecx
ja 0x4f1475
mov eax, dword [esp + 0x10]
jmp 0x4f1300
movzx eax, word [ebx + 0x3c]
mov edx, eax
test ax, ax
je 0x4efd2a
cmp ecx, dword [ebx + 0x5c]
ja 0x4f13b4
cmp dword [ebx + 0x24], 0
je 0x4efd2a
mov dword [ebx + 0x1c], 1
cmp edx, 1
ja 0x4efdb9
mov edi, dword [esp + 0x14]
xor esi, esi
jmp case.0x4f70c6.998
cmp ecx, 1
jb 0x4f1475
nop dword [eax + eax]
mov ebx, dword [esp + 0x78]
mov ecx, dword [eax + 0x38]
cmp ecx, dword [ebx + 0x54]
jae 0x4f143c
mov ebx, dword [esp + 0x10]
lea eax, [ecx + 2]
movzx esi, word [ecx]
mov dword [ebx + 0x38], eax
cmp esi, 0xff
jbe 0x4f140f
mov eax, ebx
cmp byte [eax + 0x31], 0x6e
je 0x4efcdb
jmp 0x4f142e
mov eax, dword [ebx + 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 0x4efea9
mov ecx, dword [eax + 0x20]
inc edi
cmp edi, ecx
ja 0x4f1479
mov eax, dword [esp + 0x10]
jmp 0x4f13e0
movzx eax, word [ebx + 0x3c]
mov edx, eax
test ax, ax
je 0x4efd2a
cmp ecx, dword [ebx + 0x5c]
ja 0x4f145a
cmp dword [ebx + 0x24], 0
je 0x4efd2a
mov dword [ebx + 0x1c], 1
cmp edx, 1
ja 0x4efdb9
mov edi, dword [esp + 0x14]
xor esi, esi
jmp case.0x4f70c6.998
mov eax, dword [esp + 0x10]
mov ebp, dword [eax + 0x24]
cmp ecx, ebp
je 0x4efa48
cmp dword [esp + 0x18], 0
je 0x4f93a1
cmp dword [esp + 0x14], 0
mov edi, dword [eax + 0x38]
mov dword [eax + 4], edi
mov eax, dword [eax + 0x20]
mov dword [esp + 0x64], eax
je 0x4f157d
cmp eax, ebp
jae 0x4f1562
nop
mov eax, dword [esp + 0x78]
mov ebx, 1
cmp edi, dword [eax + 0x54]
jae 0x4f153a
movzx esi, word [edi]
mov eax, esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f14f2
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 0x4f1506
cmp byte [eax + 0x31], 0x6e
je 0x4f1562
jmp 0x4f1521
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 0x4f1562
mov eax, dword [esp + 0x10]
lea edi, [edi + ebx*2]
mov dword [eax + 0x38], edi
mov eax, dword [esp + 0x64]
inc eax
mov dword [esp + 0x64], eax
cmp eax, ebp
jb 0x4f14b0
jmp 0x4f1562
mov ebx, eax
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je 0x4f1562
cmp edi, dword [ebx + 0x5c]
ja 0x4f1552
cmp dword [ebx + 0x24], 0
je 0x4f1562
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efdb9
cmp dword [esp + 0x18], 2
je 0x4efa48
mov ebp, dword [esp + 0x10]
mov esi, dword [ebp]
mov byte [ebp + 0x30], 0xc9
jmp 0x4f995a
cmp eax, ebp
jae 0x4f15a6
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x78]
nop dword [eax]
cmp edi, dword [ecx + 0x54]
jae 0x4f1601
movzx esi, word [edi]
cmp esi, 0xff
jbe 0x4f15d1
cmp byte [ebx + 0x31], 0x6e
jne 0x4f15f0
mov ebx, dword [esp + 0x78]
cmp dword [esp + 0x18], 2
je 0x4efa48
mov ebp, dword [esp + 0x10]
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebp + 4]
jb 0x4efd2a
mov esi, dword [ebp]
mov byte [ebp + 0x30], 0x18
jmp 0x4f995a
mov eax, dword [ebx + 8]
mov ecx, esi
and ecx, 7
shr esi, 3
mov edx, 1
shl edx, cl
test byte [esi + eax], dl
je 0x4f15a6
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x78]
inc eax
add edi, 2
mov dword [ebx + 0x38], edi
mov dword [esp + 0x64], eax
cmp eax, ebp
jb 0x4f1590
jmp 0x4f15a6
mov ebx, dword [esp + 0x78]
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je 0x4f15aa
cmp edi, dword [ebx + 0x5c]
ja 0x4f161b
cmp dword [ebx + 0x24], 0
je 0x4f15aa
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efdb9
jmp 0x4f15aa
mov ebp, dword [esp + 0x10]
lea eax, [esi + 4]
mov dword [ebp + 8], eax
movzx eax, word [esi + 2]
lea edx, [esi + eax*2]
mov dword [ebp], edx
movzx esi, word [edx]
lea eax, [esi - 0x62]
cmp eax, 0xb
ja case.default.0x4f165a
movzx eax, byte [eax + 0x4f9d5c]
jmp dword [eax*4 + 0x4f9d54]
mov ecx, dword [esi*4 + 0x69fa88]
lea eax, [edx + 2]
mov ebx, dword [esi*4 + 0x69fae0]
lea edi, [ebp + 0x20]
mov dword [ebp], eax
mov eax, dword [esi*4 + 0x69fab4]
mov dword [edi], ecx
mov dword [ebp + 0x24], eax
mov dword [esp + 0x18], ebx
jmp 0x4f16bf
movzx ecx, word [edx + 2]
lea edi, [ebp + 0x20]
mov dword [edi], ecx
movzx eax, word [edx + 4]
mov dword [ebp + 0x24], eax
test eax, eax
jne 0x4f16ab
mov eax, dword [esp + 0x10]
mov ebp, eax
mov dword [eax + 0x24], 0xffffffff
movzx eax, word [edx]
mov eax, dword [eax*4 + 0x69fae0]
mov dword [esp + 0x18], eax
lea eax, [edx + 6]
mov dword [ebp], eax
mov esi, 1
cmp ecx, esi
jae 0x4f178f
mov ebx, dword [esp + 0x78]
mov eax, dword [ebp + 0x24]
cmp ecx, eax
je 0x4efa48
cmp dword [esp + 0x18], 0
je 0x4f7b9c
mov edx, dword [ebp + 0x38]
mov dword [ebp + 4], edx
mov edi, dword [ebp + 0x20]
cmp edi, eax
jae 0x4f1839
mov eax, dword [esp + 0x10]
mov ebp, dword [esp + 0x14]
nop
mov esi, 1
cmp edx, dword [ebx + 0x54]
jae 0x4f1813
movzx ecx, word [edx]
test ebp, ebp
je 0x4f1746
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f1742
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 ebp
push dword [eax + 8]
push ecx
call fcn.00521dd0
add esp, 0xc
test eax, eax
je 0x4f1835
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 [eax + 0x24]
jb 0x4f1700
jmp 0x4f1835
mov eax, dword [esp + 0x10]
mov esi, 1
mov dword [eax + 0x24], 1
lea edi, [eax + 0x20]
mov dword [eax + 0x20], 1
mov ebx, dword [esp + 0x78]
mov ebp, dword [esp + 0x14]
nop word [eax + eax]
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x54]
jae 0x4f1849
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test ebp, ebp
je 0x4f17f2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f17ee
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 ebp
push dword [eax + 8]
push ecx
call fcn.00521dd0
add esp, 0xc
test eax, eax
je 0x4f186f
mov ecx, dword [edi]
inc esi
cmp esi, ecx
jbe 0x4f17a0
mov ebp, dword [esp + 0x10]
jmp 0x4f16d0
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je 0x4f1835
cmp edx, dword [ebx + 0x5c]
ja 0x4f1829
cmp dword [ebx + 0x24], 0
je 0x4f1835
mov dword [ebx + 0x1c], esi
cmp ecx, 1
ja 0x4efdb9
mov ebp, dword [esp + 0x10]
cmp dword [esp + 0x18], 2
jne 0x4f7be1
jmp 0x4efa48
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je 0x4f186f
cmp edx, dword [ebx + 0x5c]
ja 0x4f185f
cmp dword [ebx + 0x24], 0
je 0x4f186f
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efdb9
xor esi, esi
mov edi, ebp
jmp case.0x4f70c6.998
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x78]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x54]
jb 0x4f18bd
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je case.0x4f70c6.999
cmp edx, dword [ebx + 0x5c]
ja 0x4f18a6
cmp dword [ebx + 0x24], 0
je case.0x4f70c6.999
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efdb9
xor esi, esi
jmp case.0x4f70c6.998
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test edi, edi
je 0x4f18fd
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f18fd
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 0x4f1901
mov edx, dword [esp + 0x10]
cmp ecx, 0xff
ja case.default.0x4f2048
mov eax, dword [ebx + 0x30]
test byte [ecx + eax], 8
je case.default.0x4f2048
xor esi, esi
jmp case.0x4f70c6.998
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x78]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x54]
jb 0x4f1966
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je case.0x4f70c6.999
cmp edx, dword [ebx + 0x5c]
ja 0x4f194f
cmp dword [ebx + 0x24], 0
je case.0x4f70c6.999
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efdb9
xor esi, esi
jmp case.0x4f70c6.998
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test edi, edi
je 0x4f19a6
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f19a6
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 0x4f19aa
mov edx, dword [esp + 0x10]
cmp ecx, 0xff
ja case.0x4f70c6.999
mov eax, dword [ebx + 0x30]
test byte [ecx + eax], 8
je case.0x4f70c6.999
lea eax, [esi + 2]
mov ebp, ebx
mov dword [edx], eax
jmp 0x4efa50
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x78]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x54]
jb 0x4f1a14
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je case.0x4f70c6.999
cmp edx, dword [ebx + 0x5c]
ja 0x4f19fd
cmp dword [ebx + 0x24], 0
je case.0x4f70c6.999
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efdb9
xor esi, esi
jmp case.0x4f70c6.998
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test edi, edi
je 0x4f1a54
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f1a54
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 0x4f1a58
mov edx, dword [esp + 0x10]
cmp ecx, 0xff
ja case.default.0x4f2048
mov eax, dword [ebx + 0x30]
test byte [ecx + eax], 1
je case.default.0x4f2048
xor esi, esi
jmp case.0x4f70c6.998
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x78]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x54]
jb 0x4f1abd
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je case.0x4f70c6.999
cmp edx, dword [ebx + 0x5c]
ja 0x4f1aa6
cmp dword [ebx + 0x24], 0
je case.0x4f70c6.999
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efdb9
xor esi, esi
jmp case.0x4f70c6.998
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test edi, edi
je 0x4f1afd
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f1afd
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 0x4f1b01
mov edx, dword [esp + 0x10]
cmp ecx, 0xff
ja case.0x4f70c6.999
mov eax, dword [ebx + 0x30]
test byte [ecx + eax], 1
je case.0x4f70c6.999
lea eax, [esi + 2]
mov ebp, ebx
mov dword [edx], eax
jmp 0x4efa50
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x78]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x54]
jb 0x4f1b6b
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je case.0x4f70c6.999
cmp edx, dword [ebx + 0x5c]
ja 0x4f1b54
cmp dword [ebx + 0x24], 0
je case.0x4f70c6.999
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efdb9
xor esi, esi
jmp case.0x4f70c6.998
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test edi, edi
je 0x4f1bab
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f1bab
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 0x4f1baf
mov edx, dword [esp + 0x10]
cmp ecx, 0xff
ja case.default.0x4f2048
mov eax, dword [ebx + 0x30]
test byte [ecx + eax], 0x10
je case.default.0x4f2048
xor esi, esi
jmp case.0x4f70c6.998
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x78]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x54]
jb 0x4f1c14
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je case.0x4f70c6.999
cmp edx, dword [ebx + 0x5c]
ja 0x4f1bfd
cmp dword [ebx + 0x24], 0
je case.0x4f70c6.999
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efdb9
xor esi, esi
jmp case.0x4f70c6.998
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test edi, edi
je 0x4f1c54
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f1c54
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 0x4f1c58
mov edx, dword [esp + 0x10]
cmp ecx, 0xff
ja case.0x4f70c6.999
mov eax, dword [ebx + 0x30]
test byte [ecx + eax], 0x10
je case.0x4f70c6.999
lea eax, [esi + 2]
mov ebp, ebx
mov dword [edx], eax
jmp 0x4efa50
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x78]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x54]
jb 0x4f1cc2
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je case.0x4f70c6.999
cmp edx, dword [ebx + 0x5c]
ja 0x4f1cab
cmp dword [ebx + 0x24], 0
je case.0x4f70c6.999
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efdb9
xor esi, esi
jmp case.0x4f70c6.998
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
mov esi, edx
test edi, edi
je 0x4f1d02
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f1d02
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 0x4f1d74
je case.0x4f1d18.11
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x4f70c6.999
jmp dword [ecx*4 + 0x4f9d68]
cmp esi, dword [ebx + 0x54]
jb 0x4f1d58
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je case.0x4f1d18.10
cmp esi, dword [ebx + 0x5c]
ja 0x4f1d3a
cmp dword [ebx + 0x24], 0
je case.0x4f1d18.10
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efdb9
mov eax, dword [esp + 0x10]
mov ebp, ebx
add dword [eax], 2
jmp 0x4efa50
cmp word [esi], 0xa
jne case.0x4f1d18.10
mov ecx, dword [esp + 0x10]
lea eax, [esi + 2]
mov ebp, ebx
mov dword [ecx + 0x38], eax
mov eax, ecx
add dword [eax], 2
jmp 0x4efa50
sub ecx, 0x2028
je case.0x4f1d18.11
sub ecx, 1
je case.0x4f1d18.11
xor esi, esi
jmp case.0x4f70c6.998
cmp word [ebx + 0x3e], 2
jne case.0x4f1d18.10
xor esi, esi
jmp case.0x4f70c6.998
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x78]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x54]
jb 0x4f1ddb
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je case.0x4f70c6.999
cmp edx, dword [ebx + 0x5c]
ja 0x4f1dc4
cmp dword [ebx + 0x24], 0
je case.0x4f70c6.999
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efdb9
xor esi, esi
jmp case.0x4f70c6.998
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test edi, edi
je 0x4f1e19
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f1e19
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, 0x2000
ja 0x4f1e7b
je case.0x4f70c6.999
cmp ecx, 0xa0
ja 0x4f1e55
je case.0x4f70c6.999
cmp ecx, 9
je case.0x4f70c6.999
cmp ecx, 0x20
je case.0x4f70c6.999
mov eax, dword [esp + 0x10]
mov ebp, ebx
add dword [eax], 2
jmp 0x4efa50
cmp ecx, 0x1680
je case.0x4f70c6.999
cmp ecx, 0x180e
je case.0x4f70c6.999
mov eax, dword [esp + 0x10]
mov ebp, ebx
add dword [eax], 2
jmp 0x4efa50
cmp ecx, 0x3000
ja case.0x4f1d18.10
je case.0x4f70c6.999
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x4f1d18.10
movzx eax, byte [ecx + 0x4f9d80]
jmp dword [eax*4 + 0x4f9d78]
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x78]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x54]
jb 0x4f1eef
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je case.0x4f70c6.999
cmp edx, dword [ebx + 0x5c]
ja 0x4f1ed8
cmp dword [ebx + 0x24], 0
je case.0x4f70c6.999
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efdb9
xor esi, esi
jmp case.0x4f70c6.998
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test edi, edi
je 0x4f1f2d
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f1f2d
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, 0x2000
ja 0x4f1f76
je case.0x4f1d18.10
cmp ecx, 0xa0
ja 0x4f1f62
je case.0x4f1d18.10
cmp ecx, 9
je case.0x4f1d18.10
cmp ecx, 0x20
je case.0x4f1d18.10
xor esi, esi
jmp case.0x4f70c6.998
cmp ecx, 0x1680
je case.0x4f1d18.10
cmp ecx, 0x180e
jmp 0x4f1f55
cmp ecx, 0x3000
ja case.0x4f70c6.999
je case.0x4f1d18.10
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x4f70c6.999
movzx eax, byte [ecx + 0x4f9de8]
jmp dword [eax*4 + 0x4f9de0]
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x78]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x54]
jb 0x4f1fea
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je case.0x4f70c6.999
cmp edx, dword [ebx + 0x5c]
ja 0x4f1fd3
cmp dword [ebx + 0x24], 0
je case.0x4f70c6.999
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efdb9
xor esi, esi
jmp case.0x4f70c6.998
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test edi, edi
je 0x4f202a
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f202a
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 0x4f202e
mov edx, dword [esp + 0x10]
cmp ecx, 0x85
ja 0x4f204f
je case.0x4f70c6.999
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x4f2048
jmp dword [ecx*4 + 0x4f9e48]
sub ecx, 0x2028
je case.0x4f70c6.999
sub ecx, 1
je case.0x4f70c6.999
lea eax, [esi + 2]
mov ebp, ebx
mov dword [edx], eax
jmp 0x4efa50
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x78]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x54]
jb 0x4f20b5
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je case.0x4f70c6.999
cmp edx, dword [ebx + 0x5c]
ja 0x4f209e
cmp dword [ebx + 0x24], 0
je case.0x4f70c6.999
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efdb9
xor esi, esi
jmp case.0x4f70c6.998
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test edi, edi
je 0x4f20f5
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f20f5
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 0x4f20f9
mov edx, dword [esp + 0x10]
cmp ecx, 0x85
ja 0x4f211a
je case.default.0x4f2048
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x4f70c6.999
jmp dword [ecx*4 + 0x4f9e58]
sub ecx, 0x2028
je case.default.0x4f2048
sub ecx, 1
je case.default.0x4f2048
xor esi, esi
jmp case.0x4f70c6.998
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x78]
mov ecx, dword [eax + 0x38]
cmp ecx, dword [ebx + 0x54]
jb 0x4f217b
movzx eax, word [ebx + 0x3c]
mov edx, eax
test ax, ax
je case.0x4f70c6.999
cmp ecx, dword [ebx + 0x5c]
ja 0x4f2164
cmp dword [ebx + 0x24], 0
je case.0x4f70c6.999
mov dword [ebx + 0x1c], 1
cmp edx, 1
ja 0x4efdb9
xor esi, esi
jmp case.0x4f70c6.998
movzx edx, word [ecx]
add ecx, 2
mov dword [eax + 0x38], ecx
test edi, edi
je 0x4f21b9
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f21b9
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 + 0x6a6508]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x6aa908]
mov cl, byte [esp + 0x64]
cmp cl, 0xf
lea edi, [eax + eax*2]
sete bl
movzx eax, word [esi + 2]
cmp eax, 0xd
ja case.0x4f77f2.15
jmp dword [eax*4 + 0x4f9e68]
cmp cl, 0xf
jne 0x4f23fc
mov edi, dword [esp + 0x14]
jmp case.0x4efa75.162
mov al, byte [edi*4 + 0x6a22f9]
cmp al, 9
je 0x4f2224
cmp al, 5
je 0x4f2224
cmp al, 8
je 0x4f2224
xor eax, eax
jmp 0x4f2229
mov eax, 1
cmp eax, ebx
jne 0x4f23fc
mov edi, dword [esp + 0x14]
jmp case.0x4efa75.162
movzx ecx, byte [edi*4 + 0x6a22f9]
xor edx, edx
movzx eax, word [esi + 4]
cmp eax, dword [ecx*4 + 0x6bde00]
sete dl
cmp edx, ebx
jne 0x4f23fc
mov edi, dword [esp + 0x14]
jmp case.0x4efa75.162
movzx eax, byte [edi*4 + 0x6a22f9]
xor ecx, ecx
cmp word [esi + 4], ax
sete cl
cmp ecx, ebx
jne 0x4f23fc
mov edi, dword [esp + 0x14]
jmp case.0x4efa75.162
movzx eax, byte [edi*4 + 0x6a22f8]
jmp 0x4f226b
movzx ecx, word [esi + 4]
movzx eax, byte [edi*4 + 0x6a22f8]
cmp cx, ax
je 0x4f2224
movzx edx, word [edi*4 + 0x6a2300]
mov eax, ecx
and edx, 0x3ff
shr eax, 5
add edx, eax
and ecx, 0x8000001f
jns 0x4f22c2
dec ecx
or ecx, 0xffffffe0
inc ecx
mov eax, 1
shl eax, cl
test dword [edx*4 + 0x6a2000], eax
jne 0x4f2224
xor eax, eax
jmp 0x4f2229
movzx eax, byte [edi*4 + 0x6a22f9]
mov eax, dword [eax*4 + 0x6bde00]
cmp eax, 1
je 0x4f2224
cmp eax, 3
je 0x4f2224
xor eax, eax
jmp 0x4f2229
cmp edx, 0x20
ja 0x4f231f
je case.0x4f21f4.0
add edx, 0xfffffff7
cmp edx, 4
ja case.0x4f2394.8203
jmp dword [edx*4 + 0x4f9ea0]
cmp edx, 0x2000
ja 0x4f2374
je case.0x4f21f4.0
cmp edx, 0x1680
ja 0x4f236c
je case.0x4f21f4.0
sub edx, 0x85
je case.0x4f21f4.0
sub edx, 0x1b
je case.0x4f21f4.0
movzx eax, byte [edi*4 + 0x6a22f9]
xor ecx, ecx
cmp dword [eax*4 + 0x6bde00], 6
sete cl
cmp ecx, ebx
jmp 0x4f21fe
cmp edx, 0x180e
jmp 0x4f234a
cmp edx, 0x3000
ja case.0x4f2394.8203
je case.0x4f21f4.0
add edx, 0xffffdfff
cmp edx, 0x5e
ja case.0x4f2394.8203
movzx eax, byte [edx + 0x4f9ebc]
jmp dword [eax*4 + 0x4f9eb4]
movzx eax, byte [edi*4 + 0x6a22f9]
mov eax, dword [eax*4 + 0x6bde00]
cmp eax, 1
je 0x4f23c2
cmp eax, 3
je 0x4f23c2
cmp edx, 0x5f
je 0x4f23c2
xor eax, eax
cmp eax, ebx
jmp 0x4f21fe
mov eax, 1
cmp eax, ebx
jmp 0x4f21fe
movzx eax, word [esi + 4]
mov ecx, dword [eax*4 + 0x6a1d30]
lea eax, [eax*4 + 0x6a1d30]
cmp edx, ecx
jb 0x4f23f1
lea eax, [eax + 4]
cmp edx, ecx
je 0x4f2408
mov ecx, dword [eax]
cmp edx, ecx
jae 0x4f23e4
cmp byte [esp + 0x64], 0xf
jne 0x4efcdb
mov eax, dword [esp + 0x10]
add dword [eax], 6
jmp 0x4efa48
cmp byte [esp + 0x64], 0xf
jmp 0x4f21fe
cmp edx, 0x24
je 0x4f23c2
cmp edx, 0x40
je 0x4f23c2
cmp edx, 0x60
je 0x4f23c2
cmp edx, 0xa0
jb 0x4f2431
cmp edx, 0xd7ff
jbe 0x4f23c2
cmp edx, 0xe000
jae 0x4f23c2
xor eax, eax
cmp eax, ebx
jmp 0x4f21fe
mov ax, word [edi*4 + 0x6a2300]
xor ecx, ecx
shr ax, 0xb
cmp ax, word [esi + 4]
sete cl
cmp ecx, ebx
jmp 0x4f21fe
movzx ecx, word [esi + 4]
movzx edx, word [edi*4 + 0x6a2302]
mov eax, ecx
and edx, 0xfff
shr eax, 5
add edx, eax
and ecx, 0x8000001f
jns 0x4f2484
dec ecx
or ecx, 0xffffffe0
inc ecx
mov eax, 1
shl eax, cl
mov ecx, dword [edx*4 + 0x6a17a8]
and ecx, eax
neg ecx
sbb ecx, ecx
neg ecx
cmp ecx, ebx
jmp 0x4f21fe
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x78]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x54]
jb 0x4f24e6
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je case.0x4f70c6.999
cmp edx, dword [ebx + 0x5c]
ja 0x4f24cf
cmp dword [ebx + 0x24], 0
je case.0x4f70c6.999
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efdb9
xor esi, esi
jmp case.0x4f70c6.998
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
mov esi, edx
test edi, edi
je 0x4f2526
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f2526
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 edi
push dword [ebx + 0x54]
push dword [ebx + 0x4c]
push esi
push ecx
call fcn.00521780
mov ecx, dword [esp + 0x28]
add esp, 0x18
mov dword [ecx + 0x38], eax
cmp eax, dword [ebx + 0x54]
jb case.0x4f1d18.10
movzx ecx, word [ebx + 0x3c]
mov edx, ecx
test cx, cx
je case.0x4f1d18.10
cmp eax, dword [ebx + 0x5c]
ja 0x4f2567
cmp dword [ebx + 0x24], 0
je case.0x4f1d18.10
mov dword [ebx + 0x1c], 1
cmp edx, 1
ja 0x4efdb9
mov eax, dword [esp + 0x10]
mov ebp, ebx
add dword [eax], 2
jmp 0x4efa50
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 0x4f267e
mov ecx, dword [esp + 0x10]
xor edx, edx
mov dword [ecx + 0x20], 0
movzx eax, word [esi + 2]
mov dword [ecx + 0x24], eax
cmp word [esi], 0x5c
setne dl
add esi, 4
mov dword [esp + 0x18], edx
mov dword [ecx], esi
jmp 0x4f267a
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 0x4f267a
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 0x4f267a
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 0x4f267a
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
mov dword [ecx], esi
jmp 0x4f267a
movzx ecx, word [esi]
add esi, 2
mov edx, dword [esp + 0x10]
mov eax, dword [ecx*4 + str.NOTEMPTY_ATSTART_]
mov dword [edx], esi
mov dword [edx + 0x20], eax
mov eax, dword [ecx*4 + 0x69fae8]
mov dword [edx + 0x24], eax
mov eax, dword [ecx*4 + 0x69fb14]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x10]
movzx ebx, word [esi]
lea ecx, [esi + 2]
mov dword [eax + 0x28], ebx
mov dword [eax], ecx
cmp ebx, 0x10
je 0x4f2698
cmp ebx, 0xf
je 0x4f2698
or ebp, 0xffffffff
jmp 0x4f26b1
movzx ebp, word [ecx]
add ecx, 2
mov edx, dword [esp + 0x10]
mov dword [eax], ecx
movzx eax, word [ecx]
mov dword [edx + 0x2c], eax
lea eax, [ecx + 2]
mov dword [edx], eax
mov eax, edx
mov edi, dword [eax + 0x20]
mov dword [esp + 0x38], ebp
test edi, edi
je 0x4f2e7c
test ebp, ebp
js 0x4f3421
xor eax, eax
cmp ebx, 0xf
sete al
mov dword [esp + 0x64], eax
cmp ebp, 0xd
ja case.0x4f77f2.15
jmp dword [ebp*4 + 0x4f9f1c]
cmp ebx, 0xf
je 0x4efcdb
mov esi, dword [esp + 0x14]
mov edx, 1
nop word [eax + eax]
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x78]
mov ecx, dword [eax + 0x38]
cmp ecx, dword [ebx + 0x54]
jae 0x4f2741
mov ebx, dword [esp + 0x10]
movzx eax, word [ecx]
add ecx, 2
mov dword [ebx + 0x38], ecx
test esi, esi
je 0x4f2733
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f2733
lea eax, [ecx + 2]
mov dword [ebx + 0x38], eax
inc edx
cmp edx, edi
jbe 0x4f2700
mov eax, dword [esp + 0x10]
jmp 0x4f2e80
movzx eax, word [ebx + 0x3c]
mov edx, eax
test ax, ax
je 0x4efd2a
cmp ecx, dword [ebx + 0x5c]
ja 0x4f275f
cmp dword [ebx + 0x24], 0
je 0x4efd2a
mov dword [ebx + 0x1c], 1
cmp edx, 1
ja 0x4efdb9
mov edi, dword [esp + 0x14]
xor esi, esi
jmp case.0x4f70c6.998
mov edi, dword [esp + 0x64]
mov esi, 1
mov ebx, dword [esp + 0x78]
nop word [eax + eax]
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x54]
jae 0x4f2844
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], edx
je 0x4f27e3
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f27e3
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 0x4f27e7
mov edx, dword [esp + 0x10]
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x6a6508]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x6aa908]
lea eax, [eax + eax*2]
mov al, byte [eax*4 + 0x6a22f9]
cmp al, 9
je 0x4f281e
cmp al, 5
je 0x4f281e
cmp al, 8
je 0x4f281e
xor eax, eax
jmp 0x4f2823
mov eax, 1
cmp eax, edi
je 0x4efd2a
inc esi
cmp esi, dword [edx + 0x20]
jbe 0x4f2790
mov eax, dword [esp + 0x10]
mov edx, ebx
mov esi, dword [esp + 0x14]
jmp 0x4f2e84
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je 0x4efd2a
cmp edx, dword [ebx + 0x5c]
ja 0x4f2862
cmp dword [ebx + 0x24], 0
je 0x4efd2a
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efdb9
mov edi, dword [esp + 0x14]
xor esi, esi
jmp case.0x4f70c6.998
mov ebx, dword [esp + 0x78]
mov esi, 1
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x54]
jae 0x4f2936
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], edx
je 0x4f28d9
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f28d9
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 0x4f28dd
mov edx, dword [esp + 0x10]
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x6a6508]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x6aa908]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x6a22f9]
mov eax, dword [eax*4 + 0x6bde00]
cmp eax, dword [edx + 0x2c]
sete cl
cmp ecx, dword [esp + 0x64]
je 0x4efd2a
inc esi
cmp esi, edi
jbe 0x4f2886
mov eax, dword [esp + 0x10]
mov edx, ebx
mov esi, dword [esp + 0x14]
jmp 0x4f2e84
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je 0x4efd2a
cmp edx, dword [ebx + 0x5c]
ja 0x4f2954
cmp dword [ebx + 0x24], 0
je 0x4efd2a
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efdb9
mov edi, dword [esp + 0x14]
xor esi, esi
jmp case.0x4f70c6.998
mov ebx, dword [esp + 0x78]
mov esi, 1
nop dword [eax + eax]
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x54]
jae 0x4f2a29
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], edx
je 0x4f29d3
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f29d3
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 0x4f29d7
mov edx, dword [esp + 0x10]
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x6a6508]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x6aa908]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x6a22f9]
cmp eax, dword [edx + 0x2c]
sete cl
cmp ecx, dword [esp + 0x64]
je 0x4efd2a
inc esi
cmp esi, edi
jbe 0x4f2980
mov eax, dword [esp + 0x10]
mov edx, ebx
mov esi, dword [esp + 0x14]
jmp 0x4f2e84
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je 0x4efd2a
cmp edx, dword [ebx + 0x5c]
ja 0x4f2a47
cmp dword [ebx + 0x24], 0
je 0x4efd2a
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efdb9
mov edi, dword [esp + 0x14]
xor esi, esi
jmp case.0x4f70c6.998
mov ebx, dword [esp + 0x78]
mov esi, 1
nop dword [eax + eax]
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x54]
jae 0x4f2b19
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], edx
je 0x4f2ac3
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f2ac3
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 0x4f2ac7
mov edx, dword [esp + 0x10]
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x6a6508]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x6aa908]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x6a22f8]
cmp eax, dword [edx + 0x2c]
sete cl
cmp ecx, dword [esp + 0x64]
je 0x4efd2a
inc esi
cmp esi, edi
jbe 0x4f2a70
mov eax, dword [esp + 0x10]
mov edx, ebx
mov esi, dword [esp + 0x14]
jmp 0x4f2e84
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je 0x4efd2a
cmp edx, dword [ebx + 0x5c]
ja 0x4f2b37
cmp dword [ebx + 0x24], 0
je 0x4efd2a
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efdb9
mov edi, dword [esp + 0x14]
xor esi, esi
jmp case.0x4f70c6.998
mov edi, dword [esp + 0x64]
mov esi, 1
mov ebx, dword [esp + 0x78]
nop
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x54]
jae 0x4f2c36
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], edx
je 0x4f2bb1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f2bb1
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, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x6a6508]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x6aa908]
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x2c]
movzx eax, byte [edx*4 + 0x6a22f8]
cmp eax, ecx
je 0x4f2c10
movzx edx, word [edx*4 + 0x6a2300]
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 + 0x6a2000], eax
jne 0x4f2c10
xor eax, eax
jmp 0x4f2c15
mov eax, 1
cmp eax, edi
mov eax, dword [esp + 0x10]
je 0x4f10eb
inc esi
cmp esi, dword [eax + 0x20]
jbe 0x4f2b60
mov esi, dword [esp + 0x14]
mov edx, ebx
jmp 0x4f2e84
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je 0x4efd2a
cmp edx, dword [ebx + 0x5c]
ja 0x4f2c54
cmp dword [ebx + 0x24], 0
je 0x4efd2a
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efdb9
mov edi, dword [esp + 0x14]
xor esi, esi
jmp case.0x4f70c6.998
mov edi, dword [esp + 0x64]
mov esi, 1
mov ebx, dword [esp + 0x78]
nop dword [eax]
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x54]
jae 0x4f2d3a
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], edx
je 0x4f2cd3
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f2cd3
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 0x4f2cd7
mov edx, dword [esp + 0x10]
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x6a6508]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x6aa908]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x6a22f9]
mov eax, dword [eax*4 + 0x6bde00]
cmp eax, 1
je 0x4f2d14
cmp eax, 3
je 0x4f2d14
xor eax, eax
jmp 0x4f2d19
mov eax, 1
cmp eax, edi
je 0x4efd2a
inc esi
cmp esi, dword [edx + 0x20]
jbe 0x4f2c80
mov eax, dword [esp + 0x10]
mov edx, ebx
mov esi, dword [esp + 0x14]
jmp 0x4f2e84
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je 0x4efd2a
cmp edx, dword [ebx + 0x5c]
ja 0x4f2d58
cmp dword [ebx + 0x24], 0
je 0x4efd2a
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efdb9
mov edi, dword [esp + 0x14]
xor esi, esi
jmp case.0x4f70c6.998
mov esi, 1
nop dword [eax + eax]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x78]
mov edx, dword [eax + 0x38]
cmp edx, dword [ecx + 0x54]
jae 0x4f2f10
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], edx
je 0x4f2dd7
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f2dd7
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 0x4f2ddb
mov edx, dword [esp + 0x10]
cmp ecx, 0x20
ja 0x4f2df5
je case.0x4f2f01.8193
lea eax, [ecx - 9]
cmp eax, 4
ja case.0x4f2f01.8203
jmp dword [eax*4 + 0x4f9f54]
cmp ecx, 0x2000
ja 0x4f2edd
je case.0x4f2f01.8193
cmp ecx, 0x1680
ja 0x4f2ed2
je case.0x4f2f01.8193
mov eax, ecx
sub eax, 0x85
je case.0x4f2f01.8193
sub eax, 0x1b
je case.0x4f2f01.8193
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x6a6508]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x6aa908]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x6a22f9]
cmp dword [eax*4 + 0x6bde00], 6
sete cl
cmp ecx, dword [esp + 0x64]
je 0x4efcdb
inc esi
cmp esi, dword [edx + 0x20]
jbe 0x4f2d80
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x78]
mov edi, dword [eax + 0x20]
mov ebx, dword [eax + 0x24]
mov dword [esp + 0x68], edi
cmp edi, ebx
je 0x4efa48
cmp dword [esp + 0x18], 0
je 0x4f93b7
mov esi, dword [eax + 0x38]
mov ecx, dword [esp + 0x38]
mov dword [eax + 4], esi
mov ebp, dword [eax + 0x28]
test ecx, ecx
js 0x4f51ef
xor eax, eax
cmp ebp, 0xf
sete al
mov dword [esp + 0x64], eax
cmp ecx, 0xd
ja case.0x4f77f2.15
jmp dword [ecx*4 + 0x4f9f68]
cmp ecx, 0x180e
jmp 0x4f2e29
cmp ecx, 0x3000
ja case.0x4f2f01.8203
je case.0x4f2f01.8193
lea eax, [ecx - 0x2001]
cmp eax, 0x5e
ja case.0x4f2f01.8203
movzx eax, byte [eax + 0x4f9fa8]
jmp dword [eax*4 + 0x4f9fa0]
cmp ebx, 0xf
jmp 0x4f2e68
mov ebx, ecx
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je 0x4efd2a
cmp edx, dword [ebx + 0x5c]
ja 0x4f2f30
cmp dword [ebx + 0x24], 0
je 0x4efd2a
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efdb9
mov edi, dword [esp + 0x14]
xor esi, esi
jmp case.0x4f70c6.998
mov edi, dword [esp + 0x64]
mov esi, 1
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x78]
mov ecx, dword [eax + 0x38]
cmp ecx, dword [ebx + 0x54]
jae 0x4f3007
movzx edx, word [ecx]
mov ebx, eax
add ecx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], ecx
je 0x4f2fa7
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f2fa7
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 + 0x6a6508]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x6aa908]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x6a22f9]
mov eax, dword [eax*4 + 0x6bde00]
cmp eax, 1
je 0x4f2feb
cmp eax, 3
je 0x4f2feb
cmp edx, 0x5f
je 0x4f2feb
xor eax, eax
jmp 0x4f2ff0
mov eax, 1
cmp eax, edi
je 0x4efcdb
inc esi
cmp esi, dword [ebx + 0x20]
jbe 0x4f2f54
jmp 0x4f2e78
movzx eax, word [ebx + 0x3c]
mov edx, eax
test ax, ax
je 0x4efd2a
cmp ecx, dword [ebx + 0x5c]
ja 0x4f3025
cmp dword [ebx + 0x24], 0
je 0x4efd2a
mov dword [ebx + 0x1c], 1
cmp edx, 1
ja 0x4efdb9
mov edi, dword [esp + 0x14]
xor esi, esi
jmp case.0x4f70c6.998
mov edi, dword [esp + 0x14]
mov esi, 1
nop dword [eax]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x78]
mov edx, dword [eax + 0x38]
cmp edx, dword [ecx + 0x54]
jae 0x4f30f6
movzx ecx, word [edx]
add edx, 2
mov dword [eax + 0x38], edx
test edi, edi
je 0x4f30a6
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f30a2
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 + 0x6a1d30]
lea eax, [eax*4 + 0x6a1d30]
cmp ecx, edx
jb 0x4f30cd
nop dword [eax + eax]
lea eax, [eax + 4]
cmp ecx, edx
je 0x4f30eb
mov edx, dword [eax]
cmp ecx, edx
jae 0x4f30c0
cmp ebx, 0xf
jne case.0x4efa75.162
mov eax, dword [esp + 0x10]
inc esi
cmp esi, dword [eax + 0x20]
jbe 0x4f3050
mov esi, edi
jmp 0x4f2e80
cmp ebx, 0xf
je case.0x4efa75.162
jmp 0x4f30d6
mov ebx, ecx
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je case.0x4f70c6.999
cmp edx, dword [ebx + 0x5c]
ja 0x4f3116
cmp dword [ebx + 0x24], 0
je case.0x4f70c6.999
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efdb9
xor esi, esi
jmp case.0x4f70c6.998
mov edi, dword [esp + 0x64]
mov esi, 1
mov ebx, dword [esp + 0x78]
nop word [eax + eax]
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x54]
jae 0x4f31e8
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], edx
je 0x4f3193
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f3193
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 0x4f3197
mov edx, dword [esp + 0x10]
cmp ecx, 0x24
je 0x4f31c2
cmp ecx, 0x40
je 0x4f31c2
cmp ecx, 0x60
je 0x4f31c2
cmp ecx, 0xa0
jb 0x4f31b6
cmp ecx, 0xd7ff
jbe 0x4f31c2
cmp ecx, 0xe000
jae 0x4f31c2
xor eax, eax
jmp 0x4f31c7
mov eax, 1
cmp eax, edi
je 0x4efd2a
inc esi
cmp esi, dword [edx + 0x20]
jbe 0x4f3140
mov eax, dword [esp + 0x10]
mov edx, ebx
mov esi, dword [esp + 0x14]
jmp 0x4f2e84
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je 0x4efd2a
cmp edx, dword [ebx + 0x5c]
ja 0x4f3206
cmp dword [ebx + 0x24], 0
je 0x4efd2a
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efdb9
mov edi, dword [esp + 0x14]
xor esi, esi
jmp case.0x4f70c6.998
mov ebx, dword [esp + 0x78]
mov esi, 1
nop word [eax + eax]
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x54]
jae 0x4f32dc
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], edx
je 0x4f3283
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f3283
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 0x4f3287
mov edx, dword [esp + 0x10]
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x6a6508]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x6aa908]
lea eax, [eax + eax*2]
movzx eax, word [eax*4 + 0x6a2300]
shr eax, 0xb
cmp eax, dword [edx + 0x2c]
sete cl
cmp ecx, dword [esp + 0x64]
je 0x4efd2a
inc esi
cmp esi, edi
jbe 0x4f3230
mov eax, dword [esp + 0x10]
mov edx, ebx
mov esi, dword [esp + 0x14]
jmp 0x4f2e84
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je 0x4efd2a
cmp edx, dword [ebx + 0x5c]
ja 0x4f32fa
cmp dword [ebx + 0x24], 0
je 0x4efd2a
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efdb9
mov edi, dword [esp + 0x14]
xor esi, esi
jmp case.0x4f70c6.998
mov ebx, dword [esp + 0x78]
mov esi, 1
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x38]
cmp ecx, dword [ebx + 0x54]
jae 0x4f33e8
movzx edx, word [ecx]
add ecx, 2
cmp dword [esp + 0x14], 0
mov dword [eax + 0x38], ecx
je 0x4f3375
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f3371
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, dword [esp + 0x10]
mov ecx, dword [eax + 0x2c]
mov eax, edx
shr eax, 7
and edx, 0x7f
movzx eax, word [eax*2 + 0x6a6508]
shl eax, 7
add eax, edx
movzx eax, word [eax*2 + 0x6aa908]
lea eax, [eax + eax*2]
movzx edx, word [eax*4 + 0x6a2302]
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 + 0x6a17a8]
and ecx, eax
neg ecx
sbb ecx, ecx
neg ecx
cmp ecx, dword [esp + 0x64]
je 0x4efd2a
inc esi
cmp esi, edi
jbe 0x4f3320
mov eax, dword [esp + 0x10]
mov edx, ebx
mov esi, dword [esp + 0x14]
jmp 0x4f2e84
movzx eax, word [ebx + 0x3c]
mov edx, eax
test ax, ax
je 0x4efd2a
cmp ecx, dword [ebx + 0x5c]
ja 0x4f3406
cmp dword [ebx + 0x24], 0
je 0x4efd2a
mov dword [ebx + 0x1c], 1
cmp edx, 1
ja 0x4efdb9
mov edi, dword [esp + 0x14]
xor esi, esi
jmp case.0x4f70c6.998
cmp ebx, 0x16
jne 0x4f3521
lea edi, [ebx - 0x15]
nop dword [eax]
mov ebx, dword [esp + 0x78]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x54]
jae 0x4f34e8
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov esi, edx
mov dword [eax + 0x38], edx
je 0x4f3483
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f3483
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 dword [esp + 0x18]
push dword [ebx + 0x54]
push dword [ebx + 0x4c]
push esi
push ecx
call fcn.00521780
mov ebx, dword [esp + 0x28]
add esp, 0x18
mov esi, dword [esp + 0x78]
mov dword [ebx + 0x38], eax
cmp eax, dword [esi + 0x54]
jb 0x4f34cf
movzx ecx, word [esi + 0x3c]
mov edx, ecx
test cx, cx
je 0x4f34cf
cmp eax, dword [esi + 0x5c]
ja 0x4f34bf
cmp dword [esi + 0x24], 0
je 0x4f34cf
mov dword [esi + 0x1c], 1
cmp edx, 1
ja 0x4efdb9
mov eax, dword [esp + 0x10]
inc edi
cmp edi, dword [ebx + 0x20]
jbe 0x4f3430
mov edx, esi
mov esi, dword [esp + 0x14]
jmp 0x4f2e84
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je 0x4efd2a
cmp edx, dword [ebx + 0x5c]
ja 0x4f3506
cmp dword [ebx + 0x24], 0
je 0x4efd2a
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efdb9
mov edi, dword [esp + 0x14]
xor esi, esi
jmp case.0x4f70c6.998
lea eax, [ebx - 6]
cmp eax, 0xf
ja case.0x4f77f2.15
mov esi, dword [esp + 0x14]
test esi, esi
je 0x4f3f44
jmp dword [eax*4 + 0x4fa008]
jmp dword [eax*4 + 0x4fa148]
cmp edi, ebx
jae 0x4f4810
mov ecx, 1
cmp esi, dword [edx + 0x54]
jae 0x4f4819
cmp dword [esp + 0x14], 0
je 0x4f47fc
mov eax, 0xfc00
and ax, word [esi]
cmp ax, word [esp + 0x4c]
mov eax, 2
cmove ecx, eax
cmp ebp, 0xf
je 0x4f4810
mov eax, dword [esp + 0x10]
lea esi, [esi + ecx*2]
inc edi
mov dword [eax + 0x38], esi
cmp edi, ebx
jb 0x4f47d6
mov ebp, dword [esp + 0x78]
jmp 0x4f51d7
mov ebx, dword [esp + 0x78]
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je 0x4f51d5
cmp esi, dword [ebx + 0x5c]
ja 0x4f483b
cmp dword [ebx + 0x24], 0
je 0x4f51d5
mov dword [ebx + 0x1c], 1
jmp 0x4f51cc
mov ebp, dword [esp + 0x78]
cmp edi, ebx
jae 0x4f51d7
mov ebx, dword [esp + 0x64]
nop word [eax + eax]
mov edx, 1
cmp esi, dword [ebp + 0x54]
jae 0x4f4902
cmp dword [esp + 0x14], 0
movzx ecx, word [esi]
je 0x4f48a5
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f48a5
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 + 0x6a6508]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x6aa908]
lea eax, [eax + eax*2]
mov al, byte [eax*4 + 0x6a22f9]
cmp al, 9
je 0x4f48dc
cmp al, 5
je 0x4f48dc
cmp al, 8
je 0x4f48dc
xor eax, eax
jmp 0x4f48e1
mov eax, 1
cmp eax, ebx
je 0x4f51d7
mov eax, dword [esp + 0x10]
lea esi, [esi + edx*2]
inc edi
mov dword [eax + 0x38], esi
cmp edi, dword [eax + 0x24]
jb 0x4f4860
jmp 0x4f51d7
mov ebx, ebp
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je 0x4f51d5
cmp esi, dword [ebx + 0x5c]
ja 0x4f4922
cmp dword [ebx + 0x24], 0
je 0x4f51d5
mov dword [ebx + 0x1c], edx
jmp 0x4f51cc
cmp edi, ebx
jae 0x4f4810
mov ebp, dword [esp + 0x10]
nop word [eax + eax]
mov eax, dword [esp + 0x78]
mov edx, 1
cmp esi, dword [eax + 0x54]
jae 0x4f49e2
cmp dword [esp + 0x14], 0
movzx ecx, word [esi]
je 0x4f4989
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f4989
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 + 0x6a6508]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x6aa908]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x6a22f9]
mov eax, dword [eax*4 + 0x6bde00]
cmp eax, dword [ebp + 0x2c]
sete cl
cmp ecx, dword [esp + 0x64]
je 0x4f4810
inc edi
lea esi, [esi + edx*2]
mov dword [ebp + 0x38], esi
cmp edi, ebx
jb 0x4f4940
mov ebp, dword [esp + 0x78]
jmp 0x4f51d7
mov ebx, eax
jmp 0x4f4904
cmp edi, ebx
jae 0x4f4810
mov ebp, dword [esp + 0x10]
nop word [eax + eax]
mov eax, dword [esp + 0x78]
mov edx, 1
cmp esi, dword [eax + 0x54]
jae 0x4f49e2
cmp dword [esp + 0x14], 0
movzx ecx, word [esi]
je 0x4f4a45
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f4a45
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 + 0x6a6508]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x6aa908]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x6a22f9]
cmp eax, dword [ebp + 0x2c]
sete cl
cmp ecx, dword [esp + 0x64]
je 0x4f4810
inc edi
lea esi, [esi + edx*2]
mov dword [ebp + 0x38], esi
cmp edi, ebx
jb 0x4f4a00
mov ebp, dword [esp + 0x78]
jmp 0x4f51d7
cmp edi, ebx
jae 0x4f4810
mov ebp, dword [esp + 0x10]
mov eax, dword [esp + 0x78]
mov edx, 1
cmp esi, dword [eax + 0x54]
jae 0x4f49e2
cmp dword [esp + 0x14], 0
movzx ecx, word [esi]
je 0x4f4aec
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f4aec
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 + 0x6a6508]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x6aa908]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x6a22f8]
cmp eax, dword [ebp + 0x2c]
sete cl
cmp ecx, dword [esp + 0x64]
je 0x4f4810
inc edi
lea esi, [esi + edx*2]
mov dword [ebp + 0x38], esi
cmp edi, ebx
jb 0x4f4aa3
mov ebp, dword [esp + 0x78]
jmp 0x4f51d7
cmp edi, ebx
jae 0x4f4810
mov ebx, dword [esp + 0x64]
mov ebp, dword [esp + 0x68]
nop
mov edi, 1
cmp esi, dword [edx + 0x54]
jae 0x4f51af
cmp dword [esp + 0x14], 0
movzx ecx, word [esi]
je 0x4f4b95
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f4b95
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 + 0x6a6508]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x6aa908]
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x2c]
movzx eax, byte [edx*4 + 0x6a22f8]
cmp eax, ecx
je 0x4f4bf4
movzx edx, word [edx*4 + 0x6a2300]
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 + 0x6a2000], eax
jne 0x4f4bf4
xor eax, eax
jmp 0x4f4bf9
mov eax, 1
cmp eax, ebx
je 0x4f4810
mov eax, dword [esp + 0x10]
lea esi, [esi + edi*2]
mov edx, dword [esp + 0x78]
inc ebp
mov dword [eax + 0x38], esi
cmp ebp, dword [eax + 0x24]
jb 0x4f4b50
mov ebp, edx
jmp 0x4f51d7
mov ebp, dword [esp + 0x78]
cmp edi, ebx
jae 0x4f51d7
mov ebx, dword [esp + 0x64]
mov edx, 1
cmp esi, dword [ebp + 0x54]
jae 0x4f4902
cmp dword [esp + 0x14], 0
movzx ecx, word [esi]
je 0x4f4c75
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f4c75
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 + 0x6a6508]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x6aa908]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x6a22f9]
mov eax, dword [eax*4 + 0x6bde00]
cmp eax, 1
je 0x4f4cb2
cmp eax, 3
je 0x4f4cb2
xor eax, eax
jmp 0x4f4cb7
mov eax, 1
cmp eax, ebx
je 0x4f51d7
mov eax, dword [esp + 0x10]
lea esi, [esi + edx*2]
inc edi
mov dword [eax + 0x38], esi
cmp edi, dword [eax + 0x24]
jb 0x4f4c30
jmp 0x4f51d7
cmp edi, ebx
jae 0x4f4810
mov ebx, dword [esp + 0x64]
mov eax, dword [esp + 0x78]
mov edx, 1
cmp esi, dword [eax + 0x54]
jae 0x4f49e2
cmp dword [esp + 0x14], 0
movzx ecx, word [esi]
je 0x4f4d2d
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f4d2d
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 0x4f4d47
je case.0x4f4dfe.8193
lea eax, [ecx - 9]
cmp eax, 4
ja case.0x4f4dfe.8203
jmp dword [eax*4 + 0x4fa288]
cmp ecx, 0x2000
ja 0x4f4de2
je case.0x4f4dfe.8193
cmp ecx, 0x1680
ja 0x4f4dda
je case.0x4f4dfe.8193
mov eax, ecx
sub eax, 0x85
je case.0x4f4dfe.8193
sub eax, 0x1b
je case.0x4f4dfe.8193
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x6a6508]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x6aa908]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x6a22f9]
cmp dword [eax*4 + 0x6bde00], 6
sete cl
cmp ecx, ebx
je 0x4f4810
mov ecx, dword [esp + 0x10]
lea eax, [edx + edx]
inc edi
add dword [ecx + 0x38], eax
mov esi, dword [ecx + 0x38]
cmp edi, dword [ecx + 0x24]
jb 0x4f4ce4
mov ebp, dword [esp + 0x78]
jmp 0x4f51d7
cmp ecx, 0x180e
jmp 0x4f4d77
cmp ecx, 0x3000
ja case.0x4f4dfe.8203
je case.0x4f4dfe.8193
lea eax, [ecx - 0x2001]
cmp eax, 0x5e
ja case.0x4f4dfe.8203
movzx eax, byte [eax + 0x4fa2a4]
jmp dword [eax*4 + 0x4fa29c]
cmp ebp, 0xf
jmp 0x4f4db4
cmp edi, ebx
jae 0x4f4810
mov ebx, dword [esp + 0x64]
mov ebp, dword [esp + 0x68]
nop word [eax + eax]
mov edi, 1
cmp esi, dword [edx + 0x54]
jae 0x4f51af
cmp dword [esp + 0x14], 0
movzx edx, word [esi]
je 0x4f4e65
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f4e65
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 + 0x6a6508]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x6aa908]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x6a22f9]
mov eax, dword [eax*4 + 0x6bde00]
cmp eax, 1
je 0x4f4ea9
cmp eax, 3
je 0x4f4ea9
cmp edx, 0x5f
je 0x4f4ea9
xor eax, eax
jmp 0x4f4eae
mov eax, 1
cmp eax, ebx
je 0x4f4810
mov eax, dword [esp + 0x10]
lea esi, [esi + edi*2]
mov edx, dword [esp + 0x78]
inc ebp
mov dword [eax + 0x38], esi
cmp ebp, dword [eax + 0x24]
jb 0x4f4e20
mov ebp, edx
jmp 0x4f51d7
cmp edi, ebx
jae 0x4f4810
mov ebx, dword [esp + 0x10]
mov edi, 1
cmp esi, dword [edx + 0x54]
jae 0x4f51af
cmp dword [esp + 0x14], 0
movzx ecx, word [esi]
je 0x4f4f26
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f4f26
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, dword [ebx + 0x2c]
mov edx, dword [eax*4 + 0x6a1d30]
lea eax, [eax*4 + 0x6a1d30]
cmp ecx, edx
jb 0x4f4f4d
nop dword [eax + eax]
lea eax, [eax + 4]
cmp ecx, edx
je 0x4f4f7c
mov edx, dword [eax]
cmp ecx, edx
jae 0x4f4f40
cmp ebp, 0xf
jne 0x4f4810
mov edx, dword [esp + 0x78]
lea eax, [edi + edi]
add dword [ebx + 0x38], eax
mov eax, dword [esp + 0x68]
mov esi, dword [ebx + 0x38]
inc eax
mov dword [esp + 0x68], eax
cmp eax, dword [ebx + 0x24]
jb 0x4f4ee1
mov ebp, edx
jmp 0x4f51d7
cmp ebp, 0xf
je 0x4f4810
jmp 0x4f4f56
mov ebp, dword [esp + 0x78]
cmp edi, ebx
jae 0x4f51d7
mov ebx, dword [esp + 0x64]
nop word [eax + eax]
mov edx, 1
cmp esi, dword [ebp + 0x54]
jae 0x4f4902
cmp dword [esp + 0x14], 0
movzx ecx, word [esi]
je 0x4f4fe5
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f4fe5
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 0x4f5010
cmp ecx, 0x40
je 0x4f5010
cmp ecx, 0x60
je 0x4f5010
cmp ecx, 0xa0
jb 0x4f5004
cmp ecx, 0xd7ff
jbe 0x4f5010
cmp ecx, 0xe000
jae 0x4f5010
xor eax, eax
jmp 0x4f5015
mov eax, 1
cmp eax, ebx
je 0x4f51d7
mov eax, dword [esp + 0x10]
lea esi, [esi + edx*2]
inc edi
mov dword [eax + 0x38], esi
cmp edi, dword [eax + 0x24]
jb 0x4f4fa0
jmp 0x4f51d7
cmp edi, ebx
jae 0x4f4810
mov ebp, dword [esp + 0x10]
mov eax, dword [esp + 0x78]
mov edx, 1
cmp esi, dword [eax + 0x54]
jae 0x4f49e2
cmp dword [esp + 0x14], 0
movzx ecx, word [esi]
je 0x4f508b
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f508b
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 + 0x6a6508]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x6aa908]
lea eax, [eax + eax*2]
movzx eax, word [eax*4 + 0x6a2300]
shr eax, 0xb
cmp eax, dword [ebp + 0x2c]
sete cl
cmp ecx, dword [esp + 0x64]
je 0x4f4810
inc edi
lea esi, [esi + edx*2]
mov dword [ebp + 0x38], esi
cmp edi, ebx
jb 0x4f5042
mov ebp, dword [esp + 0x78]
jmp 0x4f51d7
cmp edi, ebx
jae 0x4f4810
mov ebp, dword [esp + 0x10]
nop dword [eax]
mov edi, 1
cmp esi, dword [edx + 0x54]
jae 0x4f51af
cmp dword [esp + 0x14], 0
movzx edx, word [esi]
je 0x4f5135
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f5135
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 [ebp + 0x2c]
mov eax, edx
shr eax, 7
and edx, 0x7f
movzx eax, word [eax*2 + 0x6a6508]
shl eax, 7
add eax, edx
movzx eax, word [eax*2 + 0x6aa908]
lea eax, [eax + eax*2]
movzx edx, word [eax*4 + 0x6a2302]
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 + 0x6a17a8]
and ecx, eax
neg ecx
sbb ecx, ecx
neg ecx
cmp ecx, dword [esp + 0x64]
je 0x4f4810
mov eax, dword [esp + 0x68]
lea esi, [esi + edi*2]
mov edx, dword [esp + 0x78]
inc eax
mov dword [ebp + 0x38], esi
mov dword [esp + 0x68], eax
cmp eax, ebx
jb 0x4f50f0
mov ebp, edx
jmp 0x4f51d7
mov ebx, dword [esp + 0x78]
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je 0x4f51d5
cmp esi, dword [ebx + 0x5c]
ja 0x4f51c9
cmp dword [ebx + 0x24], 0
je 0x4f51d5
mov dword [ebx + 0x1c], edi
cmp ecx, 1
ja 0x4efdb9
mov ebp, ebx
cmp dword [esp + 0x18], 2
mov edi, dword [esp + 0x14]
je 0x4efa50
mov ebp, dword [esp + 0x10]
jmp 0x4f8e25
cmp ebp, 0x16
jne 0x4f52e7
cmp edi, ebx
jae 0x4f52cf
mov ebx, dword [esp + 0x78]
jmp 0x4f520a
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x38]
cmp edx, dword [ebx + 0x54]
jae 0x4f52a9
movzx ecx, word [edx]
add edx, 2
cmp dword [esp + 0x14], 0
mov esi, edx
mov ebp, dword [esp + 0x10]
mov dword [eax + 0x38], edx
je 0x4f5259
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f5259
movzx eax, word [edx]
lea esi, [edx + 2]
and ecx, 0x3ff
mov dword [ebp + 0x38], esi
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
push 0
push dword [esp + 0x18]
push dword [ebx + 0x54]
push dword [ebx + 0x4c]
push esi
push ecx
call fcn.00521780
add esp, 0x18
mov dword [ebp + 0x38], eax
cmp eax, dword [ebx + 0x54]
jb 0x4f529d
movzx ecx, word [ebx + 0x3c]
mov edx, ecx
test cx, cx
je 0x4f529d
cmp eax, dword [ebx + 0x5c]
ja 0x4f528d
cmp dword [ebx + 0x24], 0
je 0x4f529d
mov dword [ebx + 0x1c], 1
cmp edx, 1
ja 0x4efdb9
inc edi
cmp edi, dword [ebp + 0x24]
jb 0x4f5206
jmp 0x4f52d3
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je 0x4f52cf
cmp edx, dword [ebx + 0x5c]
ja 0x4f52bf
cmp dword [ebx + 0x24], 0
je 0x4f52cf
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efdb9
mov ebp, dword [esp + 0x10]
cmp dword [esp + 0x18], 2
mov edi, dword [esp + 0x14]
je 0x4f6540
jmp 0x4f9325
lea eax, [ebp - 6]
cmp eax, 0xf
ja case.0x4f77f2.15
mov ebp, dword [esp + 0x14]
test ebp, ebp
je 0x4f5a98
jmp dword [eax*4 + 0x4fa304]
jmp dword [eax*4 + 0x4fa3bc]
mov ebp, dword [esp + 0x10]
xor eax, eax
cmp bl, 0x74
mov ebx, dword [esp + 0x78]
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 0x4f62be
movzx eax, word [ecx]
dec edx
lea eax, [eax*2 - 2]
mov dword [ebp + 0x14], eax
cmp eax, dword [ebp + 0x50]
jae 0x4f628a
cmp dword [ebp + eax*4 + 0x54], 0xffffffff
jne 0x4f62be
movzx eax, word [ebx + 0x42]
lea ecx, [ecx + eax*2]
test edx, edx
jg 0x4f6270
jmp 0x4f62be
mov ebp, dword [esp + 0x10]
xor eax, eax
cmp bl, 0x72
mov ebx, dword [esp + 0x78]
sete al
mov dword [ebp + 0x28], eax
movzx eax, word [esi + 2]
lea eax, [eax*2 - 2]
mov dword [ebp + 0x14], eax
lea eax, [esi + 4]
mov dword [ebp], eax
mov esi, dword [ebp]
movzx ecx, word [esi]
lea eax, [ecx - 0x62]
cmp eax, 7
ja case.default.0x4f62d7
movzx eax, byte [eax + 0x4fa4f4]
jmp dword [eax*4 + 0x4fa4ec]
mov edx, dword [ecx*4 + 0x69fa88]
lea eax, [esi + 2]
mov dword [ebp], eax
mov eax, dword [ecx*4 + 0x69fab4]
mov dword [ebp + 0x20], edx
mov dword [ebp + 0x24], eax
mov eax, dword [ecx*4 + 0x69fae0]
mov dword [esp + 0x18], eax
jmp 0x4f6332
movzx edx, word [esi + 2]
mov dword [ebp + 0x20], edx
movzx ecx, word [esi + 4]
mov dword [ebp + 0x24], ecx
movzx eax, word [esi]
mov eax, dword [eax*4 + 0x69fae0]
mov dword [esp + 0x18], eax
test ecx, ecx
jne 0x4f632c
mov dword [ebp + 0x24], 0xffffffff
lea eax, [esi + 6]
mov dword [ebp], eax
mov esi, dword [ebp + 0x14]
cmp esi, dword [ebp + 0x50]
jae 0x4f634f
mov eax, dword [ebp + esi*4 + 0x54]
cmp eax, 0xffffffff
je 0x4f634f
cmp eax, dword [ebp + esi*4 + 0x58]
je 0x4f6540
jmp 0x4f6364
test edx, edx
je 0x4f6540
test dword [ebx + 0x7c], 0x200
jne 0x4f6540
mov edi, 1
cmp edx, edi
jb 0x4f639c
nop dword [eax]
lea eax, [esp + 0x50]
push eax
push ebx
push ebp
push dword [ebp + 0x28]
push esi
call fcn.004faab0
add esp, 0x14
test eax, eax
jne 0x4f6434
mov eax, dword [esp + 0x50]
inc edi
add eax, eax
add dword [ebp + 0x38], eax
mov edx, dword [ebp + 0x20]
cmp edi, edx
jbe 0x4f6370
mov ebx, dword [ebp + 0x24]
mov edi, dword [esp + 0x14]
cmp edx, ebx
je 0x4f6540
cmp dword [esp + 0x18], 0
je 0x4f946c
mov ecx, dword [esp + 0x10]
mov ebp, 1
mov eax, dword [ecx + 0x38]
mov dword [ecx + 4], eax
mov edi, dword [ecx + esi*4 + 0x58]
sub edi, dword [ecx + esi*4 + 0x54]
mov dword [esp + 0x68], eax
mov dword [ecx + 0xc], edi
mov eax, dword [ecx + 0x20]
mov dword [esp + 0x64], eax
cmp eax, ebx
jae 0x4f73df
lea eax, [esp + 0x54]
push eax
push dword [esp + 0x7c]
push ecx
push dword [ecx + 0x28]
push esi
call fcn.004faab0
add esp, 0x14
test eax, eax
jne 0x4f6481
mov eax, dword [esp + 0x54]
xor ecx, ecx
cmp eax, edi
cmovne ebp, ecx
mov ecx, dword [esp + 0x68]
lea ecx, [ecx + eax*2]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x68], ecx
mov dword [eax + 0x38], ecx
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x10]
inc eax
mov dword [esp + 0x64], eax
cmp eax, ebx
jb 0x4f63e3
jmp 0x4f64b4
jle 0x4f643c
mov eax, dword [ebx + 0x54]
mov dword [ebp + 0x38], eax
mov ecx, dword [ebp + 0x38]
cmp ecx, dword [ebx + 0x54]
jb 0x4efd2a
movzx eax, word [ebx + 0x3c]
mov edx, eax
test ax, ax
je 0x4efd2a
cmp ecx, dword [ebx + 0x5c]
ja 0x4f6466
cmp dword [ebx + 0x24], 0
je 0x4efd2a
mov dword [ebx + 0x1c], 1
cmp edx, 1
ja 0x4efdb9
mov edi, dword [esp + 0x14]
xor esi, esi
jmp case.0x4f70c6.998
jle 0x4f64b0
mov ebx, dword [esp + 0x78]
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je 0x4f64aa
mov eax, dword [ebx + 0x54]
cmp eax, dword [ebx + 0x5c]
jbe 0x4f64aa
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efdb9
mov eax, dword [esp + 0x64]
jmp 0x4f64b8
mov eax, dword [esp + 0x64]
mov ebx, dword [esp + 0x78]
test ebp, ebp
mov ebp, dword [esp + 0x10]
jne 0x4f73e7
mov dword [ebp + 0x24], eax
mov esi, dword [ebp]
mov byte [ebp + 0x30], 0x16
jmp 0x4f995a
lea eax, [esp + 0x28]
push eax
push ebx
push ebp
push dword [ebp + 0x28]
push dword [ebp + 0x14]
call fcn.004faab0
add esp, 0x14
test eax, eax
je 0x4f6535
jle 0x4f64f4
mov eax, dword [ebx + 0x54]
mov dword [ebp + 0x38], eax
mov ecx, dword [ebp + 0x38]
cmp ecx, dword [ebx + 0x54]
jb case.0x4f70c6.999
movzx eax, word [ebx + 0x3c]
mov edx, eax
test ax, ax
je case.0x4f70c6.999
cmp ecx, dword [ebx + 0x5c]
ja 0x4f651e
cmp dword [ebx + 0x24], 0
je case.0x4f70c6.999
mov dword [ebx + 0x1c], 1
cmp edx, 1
ja 0x4efdb9
xor esi, esi
jmp case.0x4f70c6.998
mov eax, dword [esp + 0x28]
add eax, eax
add dword [ebp + 0x38], eax
nop
mov ebp, dword [esp + 0x78]
jmp 0x4efa50
mov ecx, dword [esp + 0x10]
add esi, 2
mov dword [ecx], esi
movzx eax, word [esi + 2]
lea eax, [esi + eax*2]
mov esi, eax
mov dword [ecx], eax
cmp word [esi], 0x78
je 0x4f6552
add eax, 4
mov dword [ecx], eax
jmp 0x4efa50
cmp dword [ebp + 0x20], 0
mov ebp, dword [esp + 0x10]
jne 0x4f6581
cmp dword [ebp + 0x18], 0
jne 0x4f6ffb
xor ecx, ecx
jmp 0x4f976c
mov ebx, dword [esp + 0x10]
lea eax, [esp + 0x28]
push eax
push ebp
push ebx
call fcn.004ef820
mov esi, eax
add esp, 0xc
test esi, esi
jg case.0x4efa75.162
js 0x4f6ec4
mov eax, dword [esp + 0x28]
add eax, eax
add dword [ebx], eax
jmp 0x4efa50
movzx eax, word [esi + 2]
mov ebp, dword [esp + 0x10]
mov dword [ebp + 0xc], eax
cmp word [esi + eax*2], 0x78
je 0x4f65d0
add eax, 0xfffffffe
mov dword [ebp + 0xc], eax
add esi, 4
mov dword [ebp], esi
movzx eax, word [esi]
cmp eax, 0x76
je 0x4f65e3
cmp eax, 0x77
jne 0x4f661b
mov ebx, dword [esp + 0x78]
lea eax, [esp + 0x28]
push eax
push ebx
push ebp
call fcn.004ef820
mov esi, eax
add esp, 0xc
test esi, esi
jle 0x4f6603
xor esi, esi
jmp case.0x4f70c6.998
js case.0x4f70c6.998
mov ecx, dword [esp + 0x28]
lea eax, [ecx + ecx]
add dword [ebp], eax
mov esi, dword [ebp]
sub dword [ebp + 0xc], ecx
jmp 0x4f661f
mov ebx, dword [esp + 0x78]
movzx ecx, word [esi]
lea eax, [ecx - 0x90]
cmp eax, 0x12
ja case.0x4f6638.150
movzx eax, byte [eax + 0x4fa518]
jmp dword [eax*4 + 0x4fa4fc]
mov ecx, dword [ebp + 0x44]
cmp ecx, 0xffffffff
je case.0x4f6638.148
movzx eax, word [esi + 2]
cmp eax, 0xffff
je case.0x4f6638.149
cmp eax, ecx
je case.0x4f6638.149
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp]
lea esi, [ecx + eax*2]
mov dword [ebp], esi
cmp byte [ebp + 0x31], 0x8f
jne 0x4efa48
mov eax, 0x2008f
mov byte [ebp + 0x30], 0x23
mov dword [esp + 0x20], eax
jmp 0x4f995a
mov edi, dword [ebp + 0x44]
cmp edi, 0xffffffff
je case.0x4f6638.148
movzx ebx, word [ebx + 0x42]
movzx ecx, word [esi + 2]
mov eax, dword [esp + 0x78]
movzx edx, word [esi + 4]
imul ecx, ebx
mov eax, dword [eax + 0x44]
lea ecx, [eax + ecx*2]
test edx, edx
je case.0x4f6638.148
mov esi, ebx
nop dword [eax]
movzx eax, word [ecx]
dec edx
cmp eax, edi
je 0x4f66e0
lea ecx, [ecx + esi*2]
test edx, edx
jg 0x4f66b0
mov eax, dword [esp + 0x1c]
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], ebp
jmp case.0x4f6638.148
mov eax, dword [esp + 0x1c]
mov ecx, dword [ebp]
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
movzx eax, word [ecx]
mov dword [esp + 0x10], ebp
movzx eax, byte [eax + 0x6bdc60]
jmp 0x4f6664
movzx eax, word [esi + 2]
lea eax, [eax*2 - 2]
cmp eax, dword [ebp + 0x50]
jae case.0x4f6638.148
cmp dword [ebp + eax*4 + 0x54], 0xffffffff
je case.0x4f6638.148
mov ecx, dword [ebp]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x6bdc60]
jmp 0x4f6664
movzx edi, word [ebx + 0x42]
movzx ecx, word [esi + 2]
mov eax, dword [ebx + 0x44]
movzx edx, word [esi + 4]
imul ecx, edi
lea ecx, [eax + ecx*2]
test edx, edx
je case.0x4f6638.148
mov ebx, dword [ebp + 0x50]
mov esi, edi
movzx eax, word [ecx]
dec edx
lea eax, [eax*2 - 2]
cmp eax, ebx
jae 0x4f677b
cmp dword [ebp + eax*4 + 0x54], 0xffffffff
jne case.0x4f6638.149
lea ecx, [ecx + esi*2]
test edx, edx
jg 0x4f6761
jmp case.0x4f6638.148
movzx edx, word [esi + 2]
mov ebx, dword [esp + 0x10]
test edi, edi
je 0x4f67cc
test edx, edx
je 0x4f67e6
mov esi, 0xfc00
nop dword [eax]
mov ecx, dword [ebx + 0x38]
dec edx
cmp ecx, dword [ebp + 0x50]
jbe case.0x4efa75.162
add ecx, 0xfffffffe
mov dword [ebx + 0x38], ecx
mov ax, word [ecx]
and ax, si
cmp ax, word [esp + 0x30]
jne 0x4f67c6
lea eax, [ecx - 2]
mov dword [ebx + 0x38], eax
test edx, edx
jne 0x4f67a0
jmp 0x4f67e6
mov ecx, dword [ebx + 0x38]
mov eax, ecx
sub eax, dword [ebp + 0x4c]
sar eax, 1
cmp edx, eax
jg case.0x4efa75.162
lea eax, [edx + edx]
sub ecx, eax
mov dword [ebx + 0x38], ecx
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebp + 0x5c]
jae 0x4f67f1
mov dword [ebp + 0x5c], eax
add dword [ebx], 4
jmp 0x4efa50
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.0x4efa75.120
jmp 0x4efa50
movzx eax, word [esi + 2]
mov ecx, 0x86
add eax, eax
sub esi, eax
movzx eax, word [esi]
cmp ax, cx
je 0x4f689e
mov ecx, 0x8a
cmp ax, cx
je 0x4f689e
mov eax, dword [esp + 0x74]
mov ebp, dword [esp + 0x10]
mov edx, dword [esp + 0x70]
mov ecx, dword [eax + 0x18]
add ecx, dword [ebp + 0x4c]
mov edi, ecx
mov dword [esp + 0x1c], ecx
sub edi, edx
mov eax, dword [edi + 0x4c]
mov dword [ebp + 0x4c], eax
mov eax, dword [ecx + 0x1c]
and eax, 0xffff0000
cmp eax, 0x30000
jne 0x4f68ac
mov eax, dword [ebp + 0x50]
shl eax, 2
push eax
lea eax, [ebp + 0x54]
push eax
lea eax, [edi + 0x54]
push eax
call fcn.00526450
mov eax, dword [ebp + 0x50]
add esp, 0xc
mov dword [edi + 0x50], eax
mov eax, dword [ebp + 0x40]
mov dword [edi + 0x40], eax
mov eax, ebp
sub eax, edi
mov dword [ebp + 0x10], eax
mov edi, dword [esp + 0x14]
mov esi, 1
jmp 0x4f6ec4
mov ebp, dword [esp + 0x10]
xor edi, edi
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x70]
movzx eax, word [esi]
add eax, 0xffffff82
cmp eax, 0x10
ja case.0x4f68c2.134
movzx eax, byte [eax + 0x4fa548]
jmp dword [eax*4 + 0x4fa52c]
mov ebx, dword [esp + 0x78]
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebx + 0x60]
jbe 0x4f68d8
mov dword [ebx + 0x60], eax
mov eax, dword [edi + 0x38]
mov dword [ebp + 0x38], eax
jmp 0x4f69cf
mov ebx, dword [esp + 0x78]
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebx + 0x60]
jbe 0x4f68f2
mov dword [ebx + 0x60], eax
mov eax, dword [edi + 0x38]
mov dword [ebp + 0x38], eax
jmp 0x4f68fe
mov ebx, dword [esp + 0x78]
mov eax, ebp
sub eax, edi
mov dword [ebp + 0x10], eax
mov ecx, dword [edi]
movzx eax, word [ecx + 2]
add eax, eax
cmp word [eax + ecx], 0x78
jne 0x4f69cf
add eax, ecx
mov ecx, eax
mov dword [edi], eax
movzx eax, word [eax + 2]
add eax, eax
cmp word [ecx + eax], 0x78
je 0x4f6918
jmp 0x4f69cf
push dword [esp + 0x14]
push dword [ebp + 0x38]
push dword [edi + 0x38]
call fcn.00521970
mov ebx, dword [esp + 0x84]
add esp, 0xc
test eax, eax
jne 0x4f69cf
mov edi, dword [esp + 0x14]
xor esi, esi
jmp case.0x4f70c6.998
movzx eax, word [esi + 4]
cmp dword [ebp + 0x44], eax
jne 0x4f699c
mov esi, ecx
sub esi, edx
mov eax, dword [esi + 0x50]
shl eax, 2
push eax
lea eax, [esi + 0x54]
push eax
lea eax, [ebp + 0x54]
push eax
call fcn.00526450
mov eax, dword [esi + 0x50]
add esp, 0xc
mov dword [ebp + 0x50], eax
mov eax, dword [esi + 0x48]
mov dword [ebp + 0x48], eax
mov eax, dword [esi + 0x44]
mov dword [ebp + 0x44], eax
mov eax, dword [esi]
add eax, 4
jmp 0x4efa45
mov ebx, dword [esp + 0x78]
lea edx, [eax + eax]
mov dword [ebp + 0x48], eax
lea ecx, [edx - 2]
mov eax, dword [edi + 0x38]
sub eax, dword [ebx + 0x4c]
sar eax, 1
mov dword [ebp + ecx*4 + 0x54], eax
mov eax, dword [ebp + 0x38]
sub eax, dword [ebx + 0x4c]
sar eax, 1
mov dword [ebp + ecx*4 + 0x58], eax
cmp ecx, dword [ebp + 0x50]
jb 0x4f69cf
mov dword [ebp + 0x50], edx
jmp 0x4f69cf
mov ebx, dword [esp + 0x78]
mov edx, dword [ebp]
cmp word [edx], 0x7c
jne 0x4f69fa
push dword [esp + 0x44]
lea eax, [ebp + 0x38]
push eax
lea eax, [edi + 0x38]
push eax
call fcn.00526450
mov edi, dword [esp + 0x20]
add esp, 0xc
mov esi, 0xfffffc1a
jmp case.0x4f70c6.998
mov cl, byte [ebp + 0x31]
cmp cl, 0x79
je 0x4f6a16
test edi, edi
je 0x4f942e
mov eax, dword [ebp + 0x38]
cmp eax, dword [edi + 0x38]
jne 0x4f942e
add dword [ebp], 4
jmp 0x4efa48
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x78]
mov eax, dword [ecx + 0x38]
cmp eax, dword [ebx + 0x4c]
jne case.0x4f70c6.999
test byte [ebx + 0x78], 1
jne case.0x4f70c6.999
lea eax, [esi + 2]
mov ebp, ebx
mov dword [ecx], eax
jmp 0x4efa50
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x78]
mov eax, dword [ecx + 0x38]
cmp eax, dword [ebx + 0x4c]
je 0x4f6a3d
xor esi, esi
jmp case.0x4f70c6.998
mov ebx, dword [esp + 0x78]
test byte [ebx + 0x78], 2
je 0x4f6a71
xor esi, esi
jmp case.0x4f70c6.998
test byte [ebx + 0x7c], 0x10
jne 0x4f6ab6
mov ebp, ebx
mov ebx, dword [esp + 0x10]
mov ecx, dword [ebp + 0x54]
mov edx, dword [ebx + 0x38]
cmp edx, ecx
jae 0x4f6b31
mov eax, dword [ebp + 0x88]
lea esi, [ebp + 0x8c]
test eax, eax
je 0x4f6af0
push edi
push esi
push ecx
push eax
push edx
call fcn.0051fd50
add esp, 0x14
test eax, eax
je 0x4f6b5a
jmp 0x4f6b23
mov ebx, dword [esp + 0x78]
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0x38]
cmp eax, dword [ebx + 0x54]
jae 0x4f6ac9
xor esi, esi
jmp case.0x4f70c6.998
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je 0x4f6ae4
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efdb9
add dword [edx], 2
mov ebp, dword [esp + 0x78]
jmp 0x4efa50
mov edi, dword [esi]
lea eax, [edi + edi]
sub ecx, eax
cmp edx, ecx
ja 0x4f6b54
mov ax, word [edx]
cmp ax, word [ebp + 0x90]
jne 0x4f6b54
cmp edi, 1
je 0x4f6b1f
mov ax, word [edx + 2]
cmp ax, word [ebp + 0x92]
jne 0x4f6b54
lea esi, [ebp + 0x8c]
mov edi, dword [esp + 0x14]
mov ecx, dword [esi]
mov eax, dword [ebp + 0x54]
add ecx, ecx
sub eax, ecx
cmp dword [ebx + 0x38], eax
jne 0x4f6b5a
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x4f6b4c
mov dword [ebp + 0x1c], 1
cmp ecx, 1
ja 0x4efdb9
add dword [ebx], 2
jmp 0x4efa50
lea esi, [ebp + 0x8c]
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je 0x4f0385
mov ecx, dword [ebx + 0x38]
mov ebx, dword [esp + 0x78]
lea eax, [ecx + 2]
cmp eax, dword [ebx + 0x54]
jb 0x4f0389
cmp dword [ebx + 0x88], 0
jne 0x4f0389
cmp dword [esi], 2
jne 0x4f0389
mov ax, word [ecx]
cmp ax, word [ebx + 0x90]
jne 0x4f0389
mov dword [ebx + 0x1c], 1
cmp edx, 1
ja 0x4efdb9
mov edi, dword [esp + 0x14]
xor esi, esi
jmp case.0x4f70c6.998
test byte [ebp + 0x78], 1
mov ebx, dword [esp + 0x10]
je 0x4f6bd3
mov eax, dword [ebx + 0x38]
cmp eax, dword [ebp + 0x4c]
je case.0x4efa75.162
mov ecx, dword [ebx + 0x38]
mov edx, dword [ebp + 0x4c]
cmp ecx, edx
je 0x4f6c6c
cmp ecx, dword [ebp + 0x54]
jne 0x4f6bf3
test dword [ebp + 0x7c], 0x200000
je 0x4efcdb
mov esi, dword [ebp + 0x88]
test esi, esi
je 0x4f6c30
cmp ecx, edx
jbe 0x4f6c1f
push edi
lea eax, [ebp + 0x8c]
push eax
push edx
push esi
push ecx
call fcn.0051fe10
add esp, 0x14
test eax, eax
je 0x4f6c1f
mov eax, 1
jmp 0x4f6c21
xor eax, eax
test eax, eax
jne 0x4f6c6c
mov edi, dword [esp + 0x14]
xor esi, esi
jmp 0x4f6ec4
mov edi, dword [ebp + 0x8c]
lea esi, [edi + edi]
lea eax, [edx + esi]
cmp ecx, eax
jb 0x4efcdb
sub ecx, esi
mov ax, word [ecx]
cmp ax, word [ebp + 0x90]
jne 0x4efcdb
cmp edi, 1
je 0x4f6c6c
mov ax, word [ecx + 2]
cmp ax, word [ebp + 0x92]
jne 0x4efcdb
add dword [ebx], 2
jmp 0x4efa4c
mov ebx, dword [esp + 0x10]
mov ecx, dword [ebp + 0x54]
mov edx, dword [ebx + 0x38]
cmp edx, ecx
jae 0x4f6d3c
mov esi, dword [ebp + 0x88]
test esi, esi
je 0x4f6cad
push edi
lea eax, [ebp + 0x8c]
push eax
push ecx
push esi
push edx
call fcn.0051fd50
add esp, 0x14
test eax, eax
jne 0x4f6b4c
jmp 0x4f6ce2
mov esi, dword [ebp + 0x8c]
lea eax, [esi + esi]
sub ecx, eax
cmp edx, ecx
ja 0x4f6ce2
mov ax, word [edx]
cmp ax, word [ebp + 0x90]
jne 0x4f6ce2
cmp esi, 1
je 0x4f6b4c
mov ax, word [edx + 2]
cmp ax, word [ebp + 0x92]
je 0x4f6b4c
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je 0x4f6d31
mov ecx, dword [ebx + 0x38]
mov ebx, dword [esp + 0x78]
lea eax, [ecx + 2]
cmp eax, dword [ebx + 0x54]
jb 0x4f6d35
cmp dword [ebx + 0x88], 0
jne 0x4f6d35
cmp dword [ebx + 0x8c], 2
jne 0x4f6d35
mov ax, word [ecx]
cmp ax, word [ebx + 0x90]
jne 0x4f6d35
mov dword [ebx + 0x1c], 1
cmp edx, 1
ja 0x4efdb9
xor esi, esi
jmp case.0x4f70c6.998
mov ebx, dword [esp + 0x78]
xor esi, esi
jmp case.0x4f70c6.998
test byte [ebp + 0x78], 2
jne case.0x4efa75.162
movzx eax, word [ebp + 0x3c]
mov ecx, eax
test ax, ax
je 0x4f6b4c
cmp edx, dword [ebp + 0x5c]
ja 0x4f6b3c
cmp dword [ebp + 0x24], 0
jmp 0x4f6b3a
mov ebx, dword [esp + 0x78]
mov ecx, dword [ebx + 0x34]
mov eax, dword [ebx + 0x4c]
lea eax, [eax + ecx*2]
mov ecx, dword [esp + 0x10]
cmp dword [ecx + 0x38], eax
je 0x4f6a3d
xor esi, esi
jmp case.0x4f70c6.998
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x38]
mov dword [ecx + 0x3c], eax
lea eax, [esi + 2]
mov dword [ecx], eax
jmp 0x4efa50
mov ebx, dword [esp + 0x10]
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebp + 0x50]
je 0x4f6e6a
movzx eax, word [edx - 2]
add edx, 0xfffffffe
mov ecx, eax
test edi, edi
je 0x4f6df7
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x4f6dcc
movzx ecx, word [edx - 2]
sub edx, 2
movzx ecx, cx
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f6df7
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 0x4f6dff
mov dword [ebp + 0x5c], edx
test dword [ebp + 0x7c], 0x20000
je 0x4f6e52
cmp ecx, 0x5f
jne 0x4f6e12
lea edi, [ecx - 0x5e]
jmp 0x4f6e6c
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x6a6508]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x6aa908]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x6a22f9]
mov eax, dword [eax*4 + 0x6bde00]
cmp eax, 1
je 0x4f6e4b
cmp eax, 3
jne 0x4f6e6a
mov edi, 1
jmp 0x4f6e6c
cmp ecx, 0xff
ja 0x4f6e6a
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 0x10
je 0x4f6e6a
mov edi, 1
jmp 0x4f6e6c
xor edi, edi
mov ecx, dword [ebx + 0x38]
mov eax, dword [ebp + 0x54]
cmp ecx, eax
jb 0x4f6f14
movzx eax, word [ebp + 0x3c]
mov edx, eax
test ax, ax
je 0x4f6ea0
cmp ecx, dword [ebp + 0x5c]
ja 0x4f6e90
cmp dword [ebp + 0x24], 0
je 0x4f6ea0
mov dword [ebp + 0x1c], 1
cmp edx, 1
ja 0x4efdb9
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 0x4f6eb6
xor edx, 1
mov edi, dword [esp + 0x14]
test edx, edx
je 0x4efa50
xor esi, esi
mov ebx, dword [esp + 0x78]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x38]
cmp eax, dword [ebx + 0x60]
jbe 0x4f6ed7
mov dword [ebx + 0x60], eax
mov ebp, dword [esp + 0x10]
cmp dword [ebp + 0x18], 0
je 0x4f9afe
sub ebp, dword [ebp + 0x10]
mov eax, dword [ebx + 0x98]
mov dword [esp + 0x10], ebp
or dword [eax + 0x3c], 2
movzx eax, byte [ebp + 0x30]
dec eax
cmp eax, 0xe0
ja case.0x4f77f2.15
movzx eax, byte [eax + 0x4fa654]
jmp dword [eax*4 + 0x4fa55c]
cmp dword [esp + 0x14], 0
lea esi, [ecx + 2]
mov edx, esi
je 0x4f6f62
cmp edx, eax
jae 0x4f6f36
mov ax, word [edx]
and ax, word [esp + 0x34]
cmp ax, word [esp + 0x30]
jne 0x4f6f36
add edx, 2
movzx ecx, word [ecx]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f6f65
movzx eax, word [esi]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
jmp 0x4f6f65
movzx ecx, word [ecx]
cmp edx, dword [ebp + 0x60]
jbe 0x4f6f6d
mov dword [ebp + 0x60], edx
test dword [ebp + 0x7c], 0x20000
je 0x4f6fca
cmp ecx, 0x5f
jne 0x4f6f83
lea edx, [ecx - 0x5e]
jmp 0x4f6ea2
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x6a6508]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x6aa908]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x6a22f9]
mov eax, dword [eax*4 + 0x6bde00]
cmp eax, 1
je 0x4f6fc0
cmp eax, 3
jne 0x4f6ea0
mov edx, 1
jmp 0x4f6ea2
cmp ecx, 0xff
ja 0x4f6ea0
mov eax, dword [ebp + 0x30]
test byte [ecx + eax], 0x10
je 0x4f6ea0
mov edx, 1
jmp 0x4f6ea2
test esi, esi
jne case.0x4f70c6.998
mov esi, dword [ebp + 4]
mov dword [ebp], esi
movzx eax, word [esi + 2]
lea ecx, [esi + eax*2]
mov dword [ebp + 4], ecx
cmp word [ecx], 0x78
mov eax, dword [ebp]
movzx eax, word [eax]
mov al, byte [eax + 0x6bdc60]
movzx eax, al
je 0x4f944c
lea eax, [esi + eax*2]
jmp 0x4efa45
cmp esi, 0xfffffc1f
jne 0x4f704d
mov ecx, dword [ebp]
movzx eax, word [ecx + 2]
lea eax, [ecx + eax*2]
cmp dword [ebx + 0x6c], eax
jae case.0x4f70c6.998
cmp word [ecx], 0x78
je 0x4f7055
cmp word [eax], 0x78
jmp 0x4f704f
test esi, esi
jne case.0x4f70c6.998
mov ecx, dword [ebp]
movzx eax, word [ecx + 2]
lea esi, [ecx + eax*2]
mov dword [ebp], esi
cmp word [esi], 0x78
je 0x4f976f
xor esi, esi
jmp case.0x4f70c6.998
cmp esi, 0xfffffc19
je 0x4f912e
test esi, esi
je 0x4f708f
cmp esi, 0xfffffc1f
jne case.0x4f70c6.998
mov ecx, dword [ebp]
movzx eax, word [ecx + 2]
lea esi, [ecx + eax*2]
mov dword [ebp], esi
cmp word [esi], 0x78
je 0x4f981f
xor esi, esi
jmp case.0x4f70c6.998
test esi, esi
jg 0x4f70cd
je case.0x4f70c6.993
lea eax, [esi + 0x3e7]
cmp eax, 6
ja case.0x4f70c6.998
jmp dword [eax*4 + 0x4fa738]
mov eax, esi
sub eax, 1
mov eax, dword [esp + 0x10]
jne 0x4f6ecc
xor esi, esi
jmp case.0x4f70c6.998
test esi, esi
jg 0x4f7103
je case.0x4f70fc.993
lea eax, [esi + 0x3e7]
cmp eax, 6
ja case.0x4f70c6.998
jmp dword [eax*4 + 0x4fa754]
mov eax, esi
sub eax, 1
jne case.0x4f70c6.998
mov eax, dword [ebp + 0x20]
test eax, eax
je case.0x4f6638.148
mov ecx, dword [ebp]
nop dword [eax]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [ebp], ecx
cmp word [ecx], 0x78
je 0x4f7120
mov ecx, dword [ebp]
movzx eax, word [ecx]
movzx eax, byte [eax + 0x6bdc60]
jmp 0x4f6664
test esi, esi
jne case.0x4f70c6.998
mov ecx, dword [ebp]
movzx eax, word [ecx + 2]
add eax, eax
sub ecx, eax
mov dword [ebp], ecx
mov ebp, dword [esp + 0x78]
jmp 0x4efa50
test esi, esi
je 0x4f6a16
jmp case.0x4f70c6.998
cmp esi, 0xfffffc1a
jne 0x4f71a2
mov dword [ebp + 0x24], 1
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebp + 4]
jne 0x4f9458
mov ecx, dword [ebp]
nop dword [eax]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [ebp], ecx
cmp word [ecx], 0x78
je 0x4f7190
jmp 0x4f71e8
cmp esi, 0xfffffc1f
jne 0x4f71c9
mov ecx, dword [ebp]
movzx eax, word [ecx + 2]
lea eax, [ecx + eax*2]
cmp dword [ebx + 0x6c], eax
jae case.0x4f70c6.998
cmp word [ecx], 0x78
je 0x4f71d1
cmp word [eax], 0x78
jmp 0x4f71cb
test esi, esi
jne case.0x4f70c6.998
mov ecx, dword [ebp]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [ebp], ecx
cmp word [ecx], 0x78
je 0x4f9730
cmp dword [ebp + 0x24], 0
jne 0x4f7216
cmp dword [ebp + 0x28], 0
jne 0x4f7216
xor esi, esi
jmp case.0x4f70c6.998
test esi, esi
jne case.0x4f70c6.998
mov ecx, dword [ebp + 4]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [ebp + 4], ecx
cmp word [ecx], 0x78
je 0x4f7206
lea eax, [ecx + 4]
mov dword [ebp], eax
mov ebp, dword [esp + 0x78]
jmp 0x4efa50
test esi, esi
jne case.0x4f70c6.998
add dword [ebp], 2
mov ebp, dword [esp + 0x78]
jmp 0x4efa50
mov edx, dword [ebp + 4]
movzx eax, word [edx + 2]
lea ecx, [edx + eax*2]
lea eax, [esi + 0x3e5]
cmp eax, 4
ja 0x4f7284
mov eax, dword [ebp + 0x20]
xor eax, 0x40000
cmp dword [ebx + 0x74], eax
jne 0x4f7284
cmp esi, 0xfffffc1f
jne case.0x4f70c6.999
cmp dword [ebx + 0x6c], ecx
jae case.0x4f70c6.999
cmp word [edx], 0x78
je 0x4f728c
cmp word [ecx], 0x78
je 0x4f728c
xor esi, esi
jmp case.0x4f70c6.998
test esi, esi
jne case.0x4f70c6.998
mov dword [ebp + 4], ecx
cmp word [ecx], 0x78
je 0x4f97f2
xor esi, esi
jmp case.0x4f70c6.998
cmp esi, 0xfffffc1e
jne case.0x4f70c6.998
mov eax, dword [ebp]
push dword [ebx + 0x70]
add eax, 4
push eax
call fcn.0051e220
add esp, 8
test eax, eax
jne case.0x4f70c6.998
mov eax, dword [ebp + 0x38]
mov esi, 0xfffffc1d
mov dword [ebx + 0x70], eax
jmp case.0x4f70c6.998
test esi, esi
jne case.0x4f70c6.998
mov eax, dword [ebp + 0x44]
mov esi, 0xfffffc1c
mov dword [ebx + 0x74], eax
jmp case.0x4f70c6.998
test esi, esi
jne case.0x4f70c6.998
mov eax, dword [ebp + 0x38]
mov esi, 0xfffffc1d
mov dword [ebx + 0x70], eax
mov eax, dword [ebp + 0x44]
mov dword [ebx + 0x74], eax
jmp case.0x4f70c6.998
test esi, esi
jne case.0x4f70c6.998
mov eax, dword [ebp]
mov esi, 0xfffffc1e
add eax, 4
mov dword [ebx + 0x70], eax
mov eax, dword [ebp + 0x44]
mov dword [ebx + 0x74], eax
jmp case.0x4f70c6.998
test esi, esi
jne case.0x4f70c6.998
mov eax, dword [ebp]
mov esi, 0xfffffc1f
mov dword [ebx + 0x6c], eax
mov eax, dword [ebp + 0x44]
mov dword [ebx + 0x74], eax
jmp case.0x4f70c6.998
test esi, esi
jne case.0x4f70c6.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f70c6.998
lea eax, [esp + 0x58]
push eax
push ebx
push ebp
push dword [ebp + 0x28]
push dword [ebp + 0x14]
call fcn.004faab0
add esp, 0x14
test eax, eax
je 0x4f9463
jle 0x4f738a
mov eax, dword [ebx + 0x54]
mov dword [ebp + 0x38], eax
mov ecx, dword [ebp + 0x38]
cmp ecx, dword [ebx + 0x54]
jb case.0x4f70c6.999
movzx eax, word [ebx + 0x3c]
mov edx, eax
test ax, ax
je case.0x4f70c6.999
cmp ecx, dword [ebx + 0x5c]
ja 0x4f73b4
cmp dword [ebx + 0x24], 0
je case.0x4f70c6.999
mov dword [ebx + 0x1c], 1
cmp edx, 1
ja 0x4efdb9
xor esi, esi
jmp case.0x4f70c6.998
test esi, esi
jne case.0x4f70c6.998
mov eax, dword [ebp + 0xc]
neg eax
add eax, eax
add dword [ebp + 0x38], eax
jmp 0x4f73e7
mov ebp, dword [esp + 0x10]
mov ebx, dword [esp + 0x78]
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebp + 4]
jb 0x4efd2a
mov esi, dword [ebp]
mov byte [ebp + 0x30], 0x15
jmp 0x4f995a
test esi, esi
jne case.0x4f70c6.998
mov esi, dword [ebp + 4]
cmp dword [ebp + 0x38], esi
jne 0x4f9478
mov edi, dword [esp + 0x14]
xor esi, esi
jmp case.0x4f70c6.998
test esi, esi
jne case.0x4f70c6.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f70c6.999
mov edx, dword [ebp + 0x38]
cmp edx, dword [ebx + 0x54]
jb 0x4f7474
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je case.0x4f70c6.999
cmp edx, dword [ebx + 0x5c]
ja 0x4f745d
cmp dword [ebx + 0x24], esi
je case.0x4f70c6.999
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efdb9
xor esi, esi
jmp case.0x4f70c6.998
movzx ecx, word [edx]
lea eax, [edx + 2]
mov dword [ebp + 0x38], eax
cmp ecx, 0xff
jbe 0x4f749e
cmp byte [ebp + 0x31], 0x6e
je case.0x4f70c6.999
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
mov byte [eax + 0x30], 0x17
jmp 0x4f995a
mov edx, dword [ebp + 8]
mov esi, ecx
shr esi, 3
and ecx, 7
mov eax, 1
shl eax, cl
test byte [esi + edx], al
jne 0x4f748f
xor esi, esi
jmp case.0x4f70c6.998
test esi, esi
jne case.0x4f70c6.998
add dword [ebp + 0x38], 0xfffffffe
jmp 0x4f15b9
test esi, esi
jne case.0x4f70c6.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f70c6.999
mov ecx, dword [ebp + 0x38]
cmp ecx, dword [ebx + 0x54]
jb 0x4f7523
movzx eax, word [ebx + 0x3c]
mov edx, eax
test ax, ax
je case.0x4f70c6.999
cmp ecx, dword [ebx + 0x5c]
ja 0x4f750c
cmp dword [ebx + 0x24], esi
je case.0x4f70c6.999
mov dword [ebx + 0x1c], 1
cmp edx, 1
ja 0x4efdb9
xor esi, esi
jmp case.0x4f70c6.998
movzx eax, word [ecx]
cmp dword [ebp + 0x28], eax
je 0x4f7534
cmp dword [ebp + 0x2c], eax
jne case.0x4f70c6.999
lea eax, [ecx + 2]
mov dword [ebp + 0x38], eax
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
mov byte [eax + 0x30], 0x19
jmp 0x4f995a
add dword [ebp + 0x38], 0xfffffffe
test esi, esi
je 0x4f0a30
jmp case.0x4f70c6.998
test esi, esi
jne case.0x4f70c6.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f70c6.999
mov esi, dword [ebp + 0x38]
cmp esi, dword [ebx + 0x54]
jb 0x4f75b1
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je case.0x4f70c6.999
cmp esi, dword [ebx + 0x5c]
ja 0x4f759a
cmp dword [ebx + 0x24], 0
je case.0x4f70c6.999
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efdb9
xor esi, esi
jmp case.0x4f70c6.998
movzx ecx, word [esi]
lea eax, [esi + 2]
mov dword [ebp + 0x38], eax
cmp dword [ebp + 0x28], ecx
jne case.0x4f70c6.999
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
mov byte [eax + 0x30], 0x1b
jmp 0x4f995e
add dword [ebp + 0x38], 0xfffffffe
test esi, esi
je 0x4f0b46
jmp case.0x4f70c6.998
test esi, esi
jne case.0x4f70c6.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f70c6.999
mov ecx, dword [ebp + 0x38]
cmp ecx, dword [ebx + 0x54]
jb 0x4f7639
movzx eax, word [ebx + 0x3c]
mov edx, eax
test ax, ax
je case.0x4f70c6.999
cmp ecx, dword [ebx + 0x5c]
ja 0x4f7622
cmp dword [ebx + 0x24], esi
je case.0x4f70c6.999
mov dword [ebx + 0x1c], 1
cmp edx, 1
ja 0x4efdb9
xor esi, esi
jmp case.0x4f70c6.998
movzx eax, word [ecx]
cmp dword [ebp + 0x28], eax
je case.0x4f70c6.999
cmp dword [ebp + 0x2c], eax
je case.0x4f70c6.999
lea eax, [ecx + 2]
mov dword [ebp + 0x38], eax
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
mov byte [eax + 0x30], 0x1d
jmp 0x4f995a
test esi, esi
jne case.0x4f70c6.998
add dword [ebp + 0x38], 0xfffffffe
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebp + 4]
je 0x4efa48
mov esi, dword [ebp]
mov byte [ebp + 0x30], 0x1e
jmp 0x4f995a
test esi, esi
jne case.0x4f70c6.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f70c6.999
mov esi, dword [ebp + 0x38]
cmp esi, dword [ebx + 0x54]
jb 0x4f76de
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je case.0x4f70c6.999
cmp esi, dword [ebx + 0x5c]
ja 0x4f76c7
cmp dword [ebx + 0x24], 0
je case.0x4f70c6.999
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efdb9
xor esi, esi
jmp case.0x4f70c6.998
movzx ecx, word [esi]
lea eax, [esi + 2]
mov dword [ebp + 0x38], eax
cmp dword [ebp + 0x28], ecx
je case.0x4f70c6.999
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
mov byte [eax + 0x30], 0x1f
jmp 0x4f995a
test esi, esi
jne case.0x4f70c6.998
add dword [ebp + 0x38], 0xfffffffe
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebp + 4]
jne 0x4f94c3
mov ebp, dword [esp + 0x78]
jmp 0x4efa50
test esi, esi
jne case.0x4f70c6.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f70c6.999
mov edx, dword [ebp + 0x38]
mov ecx, dword [ebx + 0x54]
cmp edx, ecx
jb 0x4f7778
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je case.0x4f70c6.999
cmp edx, dword [ebx + 0x5c]
ja 0x4f7761
cmp dword [ebx + 0x24], esi
je case.0x4f70c6.999
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efdb9
xor esi, esi
jmp case.0x4f70c6.998
cmp dword [ebp + 0x28], 0xc
jne 0x4f77d7
mov eax, dword [ebx + 0x88]
lea esi, [ebx + 0x8c]
test eax, eax
je 0x4f77a6
push edi
push esi
push ecx
push eax
push edx
call fcn.0051fd50
add esp, 0x14
test eax, eax
je 0x4f77d7
xor esi, esi
jmp case.0x4f70c6.998
mov esi, dword [esi]
lea eax, [esi + esi]
sub ecx, eax
cmp edx, ecx
ja 0x4f77d7
mov ax, word [edx]
cmp ax, word [ebx + 0x90]
jne 0x4f77d7
cmp esi, 1
je case.0x4f70c6.999
mov ax, word [edx + 2]
cmp ax, word [ebx + 0x92]
je case.0x4f70c6.999
mov eax, dword [ebp + 0x38]
movzx ecx, word [eax]
lea esi, [eax + 2]
mov dword [ebp + 0x38], esi
mov eax, dword [ebp + 0x28]
add eax, 0xfffffffa
cmp eax, 0xf
ja case.0x4f77f2.15
jmp dword [eax*4 + 0x4fa770]
cmp ecx, 0x85
ja 0x4f7816
je case.0x4f780f.11
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x4f70c6.999
jmp dword [ecx*4 + 0x4fa7b0]
sub ecx, 0x2028
je case.0x4f780f.11
sub ecx, 1
jne case.0x4f70c6.999
cmp word [ebx + 0x3e], 2
jne case.0x4f77f2.13
xor esi, esi
jmp case.0x4f70c6.998
cmp ecx, 0x2000
ja 0x4f788d
je case.0x4f70c6.999
cmp ecx, 0xa0
ja 0x4f786e
je case.0x4f70c6.999
cmp ecx, 9
je case.0x4f70c6.999
cmp ecx, 0x20
jne case.0x4f77f2.13
xor esi, esi
jmp case.0x4f70c6.998
cmp ecx, 0x1680
je case.0x4f70c6.999
cmp ecx, 0x180e
jne case.0x4f77f2.13
xor esi, esi
jmp case.0x4f70c6.998
cmp ecx, 0x3000
ja case.0x4f77f2.13
je case.0x4f70c6.999
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x4f77f2.13
movzx eax, byte [ecx + 0x4fa7c8]
jmp dword [eax*4 + 0x4fa7c0]
cmp ecx, 0x2000
ja 0x4f7910
je case.0x4f77f2.13
cmp ecx, 0xa0
ja 0x4f78f1
je case.0x4f77f2.13
cmp ecx, 9
je case.0x4f77f2.13
cmp ecx, 0x20
je case.0x4f77f2.13
xor esi, esi
jmp case.0x4f70c6.998
cmp ecx, 0x1680
je case.0x4f77f2.13
cmp ecx, 0x180e
je case.0x4f77f2.13
xor esi, esi
jmp case.0x4f70c6.998
cmp ecx, 0x3000
ja case.0x4f70c6.999
je case.0x4f77f2.13
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x4f70c6.999
movzx eax, byte [ecx + 0x4fa830]
jmp dword [eax*4 + 0x4fa828]
cmp ecx, 0x85
ja 0x4f7960
je case.0x4f70c6.999
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x4f77f2.13
jmp dword [ecx*4 + 0x4fa890]
sub ecx, 0x2028
je case.0x4f70c6.999
mov eax, dword [esp + 0x10]
sub ecx, 1
jne 0x4f9530
xor esi, esi
jmp 0x4f6ecc
cmp ecx, 0x85
ja 0x4f79a1
je case.0x4f77f2.13
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x4f70c6.999
jmp dword [ecx*4 + 0x4fa8a0]
sub ecx, 0x2028
je case.0x4f77f2.13
mov eax, dword [esp + 0x10]
sub ecx, 1
je 0x4f9530
xor esi, esi
jmp 0x4f6ecc
cmp ecx, 0xff
ja case.0x4f77f2.13
mov eax, dword [ebx + 0x30]
test byte [ecx + eax], 8
mov eax, dword [esp + 0x10]
je 0x4f9530
xor esi, esi
jmp 0x4f6ecc
cmp ecx, 0xff
ja case.0x4f70c6.999
mov eax, dword [ebx + 0x30]
test byte [ecx + eax], 8
mov eax, dword [esp + 0x10]
jne 0x4f9530
xor esi, esi
jmp 0x4f6ecc
cmp ecx, 0xff
ja case.0x4f77f2.13
mov eax, dword [ebx + 0x30]
test byte [ecx + eax], 1
mov eax, dword [esp + 0x10]
je 0x4f9530
xor esi, esi
jmp 0x4f6ecc
cmp ecx, 0xff
ja case.0x4f70c6.999
mov eax, dword [ebx + 0x30]
test byte [ecx + eax], 1
mov eax, dword [esp + 0x10]
jne 0x4f9530
xor esi, esi
jmp 0x4f6ecc
cmp ecx, 0xff
ja case.0x4f77f2.13
mov eax, dword [ebx + 0x30]
test byte [ecx + eax], 0x10
mov eax, dword [esp + 0x10]
je 0x4f9530
xor esi, esi
jmp 0x4f6ecc
cmp ecx, 0xff
ja case.0x4f70c6.999
mov eax, dword [ebx + 0x30]
test byte [ecx + eax], 0x10
mov eax, dword [esp + 0x10]
jne 0x4f9530
xor esi, esi
jmp 0x4f6ecc
test esi, esi
jne case.0x4f70c6.998
mov eax, dword [ebp + 0x38]
add eax, 0xfffffffe
mov dword [ebp + 0x38], eax
cmp dword [ebp + 0x28], 0x11
jne 0x4f7ac7
cmp eax, dword [ebp + 4]
jbe 0x4f7ac7
cmp word [eax], 0xa
jne 0x4f7ac7
add eax, 0xfffffffe
cmp word [eax], 0xd
jne 0x4f7ac7
mov dword [ebp + 0x38], eax
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebp + 4]
je 0x4efa48
mov esi, dword [ebp]
mov byte [ebp + 0x30], 0x22
jmp 0x4f995a
test esi, esi
jne case.0x4f70c6.998
mov eax, dword [ebp + 0x44]
mov esi, 0xfffffc1b
mov dword [ebx + 0x74], eax
jmp case.0x4f70c6.998
test esi, esi
jne case.0x4f70c6.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f70c6.999
mov edx, dword [ebp + 0x38]
cmp edx, dword [ebx + 0x54]
jb 0x4f7b4d
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je case.0x4f70c6.999
cmp edx, dword [ebx + 0x5c]
ja 0x4f7b36
cmp dword [ebx + 0x24], esi
je case.0x4f70c6.999
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efdb9
xor esi, esi
jmp case.0x4f70c6.998
movzx ecx, word [edx]
add edx, 2
mov dword [ebp + 0x38], edx
test edi, edi
je 0x4f7b87
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f7b87
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 [ebp + 0x38], eax
push edi
push dword [ebp + 8]
push ecx
call fcn.00521dd0
add esp, 0xc
test eax, eax
je case.0x4f70c6.999
mov esi, dword [ebp]
mov byte [ebp + 0x30], 0x64
jmp 0x4f995a
test esi, esi
jne case.0x4f70c6.998
mov ecx, dword [ebp + 0x38]
lea edx, [ecx - 2]
mov dword [ebp + 0x38], edx
cmp ecx, dword [ebp + 4]
jbe case.0x4f70c6.999
test edi, edi
je 0x4f7be1
mov ax, word [edx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x4f7be1
lea eax, [edx - 2]
mov dword [ebp + 0x38], eax
mov esi, dword [ebp]
mov byte [ebp + 0x30], 0x65
jmp 0x4f995a
test esi, esi
jne case.0x4f70c6.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f70c6.999
mov edx, dword [ebp + 0x38]
cmp edx, dword [ebx + 0x54]
jb 0x4f7c43
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je case.0x4f70c6.999
cmp edx, dword [ebx + 0x5c]
ja 0x4f7c2c
cmp dword [ebx + 0x24], esi
je case.0x4f70c6.999
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efdb9
xor esi, esi
jmp case.0x4f70c6.998
movzx ecx, word [edx]
add edx, 2
mov eax, ecx
mov dword [ebp + 0x38], edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f7c79
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 [ebp + 0x38], eax
cmp ecx, 0xff
jbe 0x4f7c9a
cmp byte [ebp + 0x31], 0x6e
je case.0x4f70c6.999
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
mov byte [eax + 0x30], 0xc8
jmp 0x4f995a
mov edx, dword [ebp + 8]
mov esi, ecx
shr esi, 3
and ecx, 7
mov eax, 1
shl eax, cl
test byte [esi + edx], al
jne 0x4f7c8b
xor esi, esi
jmp case.0x4f70c6.998
test esi, esi
jne case.0x4f70c6.998
mov ecx, dword [ebp + 0x38]
lea edx, [ecx - 2]
mov dword [ebp + 0x38], edx
cmp ecx, dword [ebp + 4]
ja 0x4f953b
mov edi, dword [esp + 0x14]
jmp case.0x4f70c6.998
test esi, esi
jne case.0x4f70c6.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f70c6.999
mov edi, dword [ebp + 0xc]
mov ebp, dword [ebx + 0x54]
add edi, edi
mov edx, dword [esp + 0x10]
mov eax, ebp
sub eax, edi
mov ebx, dword [edx + 0x38]
cmp ebx, eax
ja 0x4f7d6f
mov edx, dword [edx + 8]
mov esi, edi
mov ecx, ebx
sub esi, 4
jb 0x4f7d29
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4f7d32
add ecx, 4
add edx, 4
sub esi, 4
jae 0x4f7d18
cmp esi, 0xfffffffc
je 0x4f9566
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4f7d6f
cmp esi, 0xfffffffd
je 0x4f9566
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4f7d6f
cmp esi, 0xfffffffe
je 0x4f9566
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4f7d6f
cmp esi, 0xffffffff
je 0x4f9566
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x4f9566
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x14]
test eax, eax
je 0x4f7dec
lea edi, [eax + eax]
mov eax, ebp
sub eax, edi
cmp ebx, eax
ja 0x4f7dec
mov edx, dword [esp + 0x10]
mov esi, edi
add edx, 0x32
mov ecx, ebx
sub esi, 4
jb 0x4f7da6
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4f7daf
add ecx, 4
add edx, 4
sub esi, 4
jae 0x4f7d95
cmp esi, 0xfffffffc
je 0x4f9566
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4f7dec
cmp esi, 0xfffffffd
je 0x4f9566
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4f7dec
cmp esi, 0xfffffffe
je 0x4f9566
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4f7dec
cmp esi, 0xffffffff
je 0x4f9566
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x4f9566
cmp ebx, ebp
jb 0x4f7e27
mov edx, dword [esp + 0x78]
movzx eax, word [edx + 0x3c]
mov ecx, eax
test ax, ax
je 0x4f7e36
cmp ebx, dword [edx + 0x5c]
mov ebx, edx
ja 0x4f7e0c
cmp dword [ebx + 0x24], 0
je 0x4f7e38
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efdb9
mov edi, dword [esp + 0x14]
xor esi, esi
jmp case.0x4f70c6.998
mov ebx, dword [esp + 0x78]
xor esi, esi
mov edi, dword [esp + 0x14]
jmp case.0x4f70c6.998
mov ebx, edx
mov edi, dword [esp + 0x14]
xor esi, esi
jmp case.0x4f70c6.998
test esi, esi
jne case.0x4f70c6.998
mov ecx, dword [ebp + 0x38]
mov edx, 0xfc00
add ecx, 0xfffffffe
mov dword [ebp + 0x38], ecx
mov ax, word [ecx]
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x4f7e6f
lea eax, [ecx - 2]
mov dword [ebp + 0x38], eax
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebp + 4]
jbe 0x4efa48
mov esi, dword [ebp]
mov byte [ebp + 0x30], 0xcb
jmp 0x4f995a
test esi, esi
jne case.0x4f70c6.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f70c6.999
mov edx, dword [ebp + 0x38]
cmp edx, dword [ebx + 0x54]
jb 0x4f7edd
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je case.0x4f70c6.999
cmp edx, dword [ebx + 0x5c]
ja 0x4f7ec6
cmp dword [ebx + 0x24], esi
je case.0x4f70c6.999
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efdb9
xor esi, esi
jmp case.0x4f70c6.998
movzx ecx, word [edx]
add edx, 2
mov eax, ecx
mov dword [ebp + 0x38], edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f7f13
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 [ebp + 0x38], eax
cmp dword [ebp + 0x28], ecx
je case.0x4f70c6.999
cmp dword [ebp + 0x2c], ecx
je case.0x4f70c6.999
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
mov byte [eax + 0x30], 0xcc
jmp 0x4f995a
test esi, esi
jne case.0x4f70c6.998
mov ecx, dword [ebp + 0x38]
mov edx, 0xfc00
add ecx, 0xfffffffe
mov dword [ebp + 0x38], ecx
mov ax, word [ecx]
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x4f7f60
lea eax, [ecx - 2]
mov dword [ebp + 0x38], eax
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebp + 4]
jbe 0x4efa48
mov esi, dword [ebp]
mov byte [ebp + 0x30], 0xcd
jmp 0x4f995a
test esi, esi
jne case.0x4f70c6.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f70c6.999
mov edx, dword [ebp + 0x38]
cmp edx, dword [ebx + 0x54]
jb 0x4f7fce
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je case.0x4f70c6.999
cmp edx, dword [ebx + 0x5c]
ja 0x4f7fb7
cmp dword [ebx + 0x24], esi
je case.0x4f70c6.999
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efdb9
xor esi, esi
jmp case.0x4f70c6.998
movzx ecx, word [edx]
add edx, 2
mov eax, ecx
mov dword [ebp + 0x38], edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f8004
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 [ebp + 0x38], eax
cmp dword [ebp + 0x28], ecx
je case.0x4f70c6.999
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
mov byte [eax + 0x30], 0xce
jmp 0x4f995a
test esi, esi
jne case.0x4f70c6.998
mov ecx, dword [ebp + 0x38]
mov edx, 0xfc00
add ecx, 0xfffffffe
mov dword [ebp + 0x38], ecx
mov ax, word [ecx]
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x4f8048
lea eax, [ecx - 2]
mov dword [ebp + 0x38], eax
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebp + 4]
ja 0x4f957f
mov ebp, dword [esp + 0x78]
jmp 0x4efa50
test esi, esi
jne case.0x4f70c6.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f70c6.999
mov ecx, dword [ebp + 0x38]
cmp ecx, dword [ebx + 0x54]
jb 0x4f80b3
movzx eax, word [ebx + 0x3c]
mov edx, eax
test ax, ax
je case.0x4f70c6.999
cmp ecx, dword [ebx + 0x5c]
ja 0x4f809c
cmp dword [ebx + 0x24], esi
je case.0x4f70c6.999
mov dword [ebx + 0x1c], 1
cmp edx, 1
ja 0x4efdb9
xor esi, esi
jmp case.0x4f70c6.998
movzx eax, word [ecx]
add ecx, 2
mov dword [ebp + 0x38], ecx
test edi, edi
je 0x4f80d2
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f80d2
lea eax, [ecx + 2]
mov dword [ebp + 0x38], eax
cmp dword [ebp + 0x28], 0xf
je case.0x4f70c6.999
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
mov byte [eax + 0x30], 0xd0
jmp 0x4f995a
test esi, esi
jne case.0x4f70c6.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f70c6.999
mov edx, dword [ebp + 0x38]
cmp edx, dword [ebx + 0x54]
jb 0x4f8141
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je case.0x4f70c6.999
cmp edx, dword [ebx + 0x5c]
ja 0x4f812a
cmp dword [ebx + 0x24], esi
je case.0x4f70c6.999
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efdb9
xor esi, esi
jmp case.0x4f70c6.998
movzx ecx, word [edx]
add edx, 2
mov dword [ebp + 0x38], edx
test edi, edi
je 0x4f817b
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f817b
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 [ebp + 0x38], eax
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x6a6508]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x6aa908]
lea eax, [eax + eax*2]
mov al, byte [eax*4 + 0x6a22f9]
cmp al, 9
je 0x4f81b2
cmp al, 5
je 0x4f81b2
cmp al, 8
je 0x4f81b2
xor ecx, ecx
jmp 0x4f81b7
mov ecx, 1
xor eax, eax
cmp dword [ebp + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x4f70c6.999
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
mov byte [eax + 0x30], 0xd1
jmp 0x4f995a
test esi, esi
jne case.0x4f70c6.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f70c6.999
mov edx, dword [ebp + 0x38]
cmp edx, dword [ebx + 0x54]
jb 0x4f822d
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je case.0x4f70c6.999
cmp edx, dword [ebx + 0x5c]
ja 0x4f8216
cmp dword [ebx + 0x24], esi
je case.0x4f70c6.999
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efdb9
xor esi, esi
jmp case.0x4f70c6.998
movzx ecx, word [edx]
add edx, 2
mov dword [ebp + 0x38], edx
test edi, edi
je 0x4f8267
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f8267
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 [ebp + 0x38], eax
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x6a6508]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x6aa908]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x6a22f9]
mov eax, dword [eax*4 + 0x6bde00]
cmp eax, dword [ebp + 0x2c]
sete cl
xor eax, eax
cmp dword [ebp + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x4f70c6.999
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
mov byte [eax + 0x30], 0xd2
jmp 0x4f995a
test esi, esi
jne case.0x4f70c6.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f70c6.999
mov edx, dword [ebp + 0x38]
cmp edx, dword [ebx + 0x54]
jb 0x4f8314
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je case.0x4f70c6.999
cmp edx, dword [ebx + 0x5c]
ja 0x4f82fd
cmp dword [ebx + 0x24], esi
je case.0x4f70c6.999
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efdb9
xor esi, esi
jmp case.0x4f70c6.998
movzx ecx, word [edx]
add edx, 2
mov dword [ebp + 0x38], edx
test edi, edi
je 0x4f834e
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f834e
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 [ebp + 0x38], eax
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x6a6508]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x6aa908]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x6a22f9]
cmp eax, dword [ebp + 0x2c]
sete cl
xor eax, eax
cmp dword [ebp + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x4f70c6.999
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
mov byte [eax + 0x30], 0xd3
jmp 0x4f995a
test esi, esi
jne case.0x4f70c6.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f70c6.999
mov edx, dword [ebp + 0x38]
cmp edx, dword [ebx + 0x54]
jb 0x4f83f4
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je case.0x4f70c6.999
cmp edx, dword [ebx + 0x5c]
ja 0x4f83dd
cmp dword [ebx + 0x24], esi
je case.0x4f70c6.999
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efdb9
xor esi, esi
jmp case.0x4f70c6.998
movzx ecx, word [edx]
add edx, 2
mov dword [ebp + 0x38], edx
test edi, edi
je 0x4f842e
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f842e
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 [ebp + 0x38], eax
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x6a6508]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x6aa908]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x6a22f8]
cmp eax, dword [ebp + 0x2c]
sete cl
xor eax, eax
cmp dword [ebp + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x4f70c6.999
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
mov byte [eax + 0x30], 0xd4
jmp 0x4f995a
test esi, esi
jne case.0x4f70c6.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f70c6.999
mov edx, dword [ebp + 0x38]
cmp edx, dword [ebx + 0x54]
jb 0x4f84d4
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je case.0x4f70c6.999
cmp edx, dword [ebx + 0x5c]
ja 0x4f84bd
cmp dword [ebx + 0x24], esi
je case.0x4f70c6.999
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efdb9
xor esi, esi
jmp case.0x4f70c6.998
movzx ecx, word [edx]
add edx, 2
mov dword [ebp + 0x38], edx
test edi, edi
je 0x4f850e
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f850e
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 [ebp + 0x38], eax
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x6a6508]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x6aa908]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x6a22f9]
mov eax, dword [eax*4 + 0x6bde00]
cmp eax, 1
je 0x4f854b
cmp eax, 3
je 0x4f854b
xor ecx, ecx
jmp 0x4f8550
mov ecx, 1
xor eax, eax
cmp dword [ebp + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x4f70c6.999
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
mov byte [eax + 0x30], 0xd5
jmp 0x4f995a
test esi, esi
jne case.0x4f70c6.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f70c6.999
mov edx, dword [ebp + 0x38]
cmp edx, dword [ebx + 0x54]
jb 0x4f85c6
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je case.0x4f70c6.999
cmp edx, dword [ebx + 0x5c]
ja 0x4f85af
cmp dword [ebx + 0x24], esi
je case.0x4f70c6.999
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efdb9
xor esi, esi
jmp case.0x4f70c6.998
movzx ecx, word [edx]
add edx, 2
mov dword [ebp + 0x38], edx
test edi, edi
je 0x4f8600
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f8600
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 [ebp + 0x38], eax
cmp ecx, 0x20
ja 0x4f861a
je case.0x4f86c9.8193
lea eax, [ecx - 9]
cmp eax, 4
ja case.0x4f86c9.8203
jmp dword [eax*4 + 0x4fa8b0]
cmp ecx, 0x2000
ja 0x4f86ad
je case.0x4f86c9.8193
cmp ecx, 0x1680
ja 0x4f86a5
je case.0x4f86c9.8193
mov eax, ecx
sub eax, 0x85
je case.0x4f86c9.8193
sub eax, 0x1b
je case.0x4f86c9.8193
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x6a6508]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x6aa908]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x6a22f9]
cmp dword [eax*4 + 0x6bde00], 6
sete cl
xor eax, eax
cmp dword [ebp + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x4f70c6.999
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
mov byte [eax + 0x30], 0xd6
jmp 0x4f995a
cmp ecx, 0x180e
jmp 0x4f864a
cmp ecx, 0x3000
ja case.0x4f86c9.8203
je case.0x4f86c9.8193
lea eax, [ecx - 0x2001]
cmp eax, 0x5e
ja case.0x4f86c9.8203
movzx eax, byte [eax + 0x4fa8cc]
jmp dword [eax*4 + 0x4fa8c4]
cmp dword [ebp + 0x28], 0xf
jne 0x4f8696
xor esi, esi
jmp case.0x4f70c6.998
test esi, esi
jne case.0x4f70c6.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f70c6.999
mov ecx, dword [ebp + 0x38]
cmp ecx, dword [ebx + 0x54]
jb 0x4f8733
movzx eax, word [ebx + 0x3c]
mov edx, eax
test ax, ax
je case.0x4f70c6.999
cmp ecx, dword [ebx + 0x5c]
ja 0x4f871c
cmp dword [ebx + 0x24], esi
je case.0x4f70c6.999
mov dword [ebx + 0x1c], 1
cmp edx, 1
ja 0x4efdb9
xor esi, esi
jmp case.0x4f70c6.998
movzx edx, word [ecx]
add ecx, 2
mov dword [ebp + 0x38], ecx
test edi, edi
je 0x4f876d
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f876d
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 [ebp + 0x38], eax
mov eax, edx
shr eax, 7
movzx ecx, word [eax*2 + 0x6a6508]
mov eax, edx
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x6aa908]
lea eax, [eax + eax*2]
movzx eax, byte [eax*4 + 0x6a22f9]
mov eax, dword [eax*4 + 0x6bde00]
cmp eax, 1
je 0x4f87b1
cmp eax, 3
je 0x4f87b1
cmp edx, 0x5f
je 0x4f87b1
xor ecx, ecx
jmp 0x4f87b6
mov ecx, 1
xor eax, eax
cmp dword [ebp + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x4f70c6.999
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
mov byte [eax + 0x30], 0xd7
jmp 0x4f995a
test esi, esi
jne case.0x4f70c6.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f70c6.999
mov edx, dword [ebp + 0x38]
cmp edx, dword [ebx + 0x54]
jb 0x4f882c
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je case.0x4f70c6.999
cmp edx, dword [ebx + 0x5c]
ja 0x4f8815
cmp dword [ebx + 0x24], esi
je case.0x4f70c6.999
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efdb9
xor esi, esi
jmp case.0x4f70c6.998
movzx ecx, word [edx]
add edx, 2
mov dword [ebp + 0x38], edx
test edi, edi
je 0x4f8866
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f8866
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 [ebp + 0x38], eax
mov eax, dword [ebp + 0x2c]
mov edx, dword [eax*4 + 0x6a1d30]
lea eax, [eax*4 + 0x6a1d30]
cmp ecx, edx
jb 0x4f888d
nop dword [eax + eax]
lea eax, [eax + 4]
cmp ecx, edx
je 0x4f88a6
mov edx, dword [eax]
cmp ecx, edx
jae 0x4f8880
cmp dword [ebp + 0x28], 0xf
jne case.0x4f70c6.999
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
mov byte [eax + 0x30], 0xd8
jmp 0x4f995a
cmp dword [ebp + 0x28], 0xf
jne 0x4f8897
xor esi, esi
jmp case.0x4f70c6.998
test esi, esi
jne case.0x4f70c6.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f70c6.999
mov edx, dword [ebp + 0x38]
cmp edx, dword [ebx + 0x54]
jb 0x4f8909
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je case.0x4f70c6.999
cmp edx, dword [ebx + 0x5c]
ja 0x4f88f2
cmp dword [ebx + 0x24], esi
je case.0x4f70c6.999
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efdb9
xor esi, esi
jmp case.0x4f70c6.998
movzx ecx, word [edx]
add edx, 2
mov dword [ebp + 0x38], edx
test edi, edi
je 0x4f8943
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f8943
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 [ebp + 0x38], eax
cmp ecx, 0x24
je 0x4f896e
cmp ecx, 0x40
je 0x4f896e
cmp ecx, 0x60
je 0x4f896e
cmp ecx, 0xa0
jb 0x4f8962
cmp ecx, 0xd7ff
jbe 0x4f896e
cmp ecx, 0xe000
jae 0x4f896e
xor ecx, ecx
jmp 0x4f8973
mov ecx, 1
xor eax, eax
cmp dword [ebp + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x4f70c6.999
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
mov byte [eax + 0x30], 0xd9
jmp 0x4f995a
test esi, esi
jne case.0x4f70c6.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f70c6.999
mov ecx, dword [ebp + 0x38]
cmp ecx, dword [ebx + 0x54]
jb 0x4f958b
movzx eax, word [ebx + 0x3c]
mov edx, eax
test ax, ax
je case.0x4f70c6.999
cmp ecx, dword [ebx + 0x5c]
ja 0x4f89d6
cmp dword [ebx + 0x24], esi
je case.0x4f70c6.999
mov dword [ebx + 0x1c], 1
cmp edx, 1
ja 0x4efdb9
xor esi, esi
jmp case.0x4f70c6.998
test esi, esi
jne case.0x4f70c6.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f70c6.999
mov edx, dword [ebp + 0x38]
mov ecx, dword [ebx + 0x54]
cmp edx, ecx
jb 0x4f8a45
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je case.0x4f70c6.999
cmp edx, dword [ebx + 0x5c]
ja 0x4f8a2e
cmp dword [ebx + 0x24], esi
je case.0x4f70c6.999
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efdb9
xor esi, esi
jmp case.0x4f70c6.998
cmp dword [ebp + 0x28], 0xc
jne 0x4f8aa4
mov eax, dword [ebx + 0x88]
lea esi, [ebx + 0x8c]
test eax, eax
je 0x4f8a73
push edi
push esi
push ecx
push eax
push edx
call fcn.0051fd50
add esp, 0x14
test eax, eax
je 0x4f8aa4
xor esi, esi
jmp case.0x4f70c6.998
mov esi, dword [esi]
lea eax, [esi + esi]
sub ecx, eax
cmp edx, ecx
ja 0x4f8aa4
mov ax, word [edx]
cmp ax, word [ebx + 0x90]
jne 0x4f8aa4
cmp esi, 1
je case.0x4f70c6.999
mov ax, word [edx + 2]
cmp ax, word [ebx + 0x92]
je case.0x4f70c6.999
mov eax, dword [ebp + 0x38]
movzx ecx, word [eax]
lea edx, [eax + 2]
mov eax, ecx
mov dword [ebp + 0x38], edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f8add
movzx eax, word [edx]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edx, 2
mov dword [ebp + 0x38], edx
mov eax, dword [ebp + 0x28]
add eax, 0xfffffffa
cmp eax, 0xf
ja case.0x4f77f2.15
jmp dword [eax*4 + 0x4fa92c]
cmp ecx, 0x85
ja 0x4f8b10
je case.0x4f8b09.11
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x4f70c6.999
jmp dword [ecx*4 + 0x4fa96c]
sub ecx, 0x2028
je case.0x4f8b09.11
sub ecx, 1
jne case.0x4f70c6.999
cmp word [ebx + 0x3e], 2
jne case.0x4f8aec.13
xor esi, esi
jmp case.0x4f70c6.998
cmp ecx, 0x2000
ja 0x4f8b87
je case.0x4f70c6.999
cmp ecx, 0xa0
ja 0x4f8b68
je case.0x4f70c6.999
cmp ecx, 9
je case.0x4f70c6.999
cmp ecx, 0x20
jne case.0x4f8aec.13
xor esi, esi
jmp case.0x4f70c6.998
cmp ecx, 0x1680
je case.0x4f70c6.999
cmp ecx, 0x180e
jne case.0x4f8aec.13
xor esi, esi
jmp case.0x4f70c6.998
cmp ecx, 0x3000
ja case.0x4f8aec.13
je case.0x4f70c6.999
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x4f8aec.13
movzx eax, byte [ecx + 0x4fa984]
jmp dword [eax*4 + 0x4fa97c]
cmp ecx, 0x2000
ja 0x4f8c0a
je case.0x4f8aec.13
cmp ecx, 0xa0
ja 0x4f8beb
je case.0x4f8aec.13
cmp ecx, 9
je case.0x4f8aec.13
cmp ecx, 0x20
je case.0x4f8aec.13
xor esi, esi
jmp case.0x4f70c6.998
cmp ecx, 0x1680
je case.0x4f8aec.13
cmp ecx, 0x180e
je case.0x4f8aec.13
xor esi, esi
jmp case.0x4f70c6.998
cmp ecx, 0x3000
ja case.0x4f70c6.999
je case.0x4f8aec.13
add ecx, 0xffffdfff
cmp ecx, 0x5e
ja case.0x4f70c6.999
movzx eax, byte [ecx + 0x4fa9ec]
jmp dword [eax*4 + 0x4fa9e4]
cmp ecx, 0x85
ja 0x4f8c5a
je case.0x4f70c6.999
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x4f8aec.13
jmp dword [ecx*4 + 0x4faa4c]
sub ecx, 0x2028
je case.0x4f70c6.999
sub ecx, 1
jne case.0x4f8aec.13
xor esi, esi
jmp case.0x4f70c6.998
cmp ecx, 0x85
ja 0x4f8c97
je case.0x4f8aec.13
add ecx, 0xfffffff6
cmp ecx, 3
ja case.0x4f70c6.999
jmp dword [ecx*4 + 0x4faa5c]
sub ecx, 0x2028
je case.0x4f8aec.13
sub ecx, 1
je case.0x4f8aec.13
xor esi, esi
jmp case.0x4f70c6.998
cmp ecx, 0x100
jae case.0x4f8aec.13
mov eax, dword [ebx + 0x30]
test byte [ecx + eax], 8
je case.0x4f8aec.13
xor esi, esi
jmp case.0x4f70c6.998
cmp ecx, 0x100
jae case.0x4f70c6.999
mov eax, dword [ebx + 0x30]
test byte [ecx + eax], 8
jne case.0x4f8aec.13
xor esi, esi
jmp case.0x4f70c6.998
cmp ecx, 0x100
jae case.0x4f8aec.13
mov eax, dword [ebx + 0x30]
test byte [ecx + eax], 1
je case.0x4f8aec.13
xor esi, esi
jmp case.0x4f70c6.998
cmp ecx, 0x100
jae case.0x4f70c6.999
mov eax, dword [ebx + 0x30]
test byte [ecx + eax], 1
jne case.0x4f8aec.13
xor esi, esi
jmp case.0x4f70c6.998
cmp ecx, 0x100
jae case.0x4f8aec.13
mov eax, dword [ebx + 0x30]
test byte [ecx + eax], 0x10
je case.0x4f8aec.13
xor esi, esi
jmp case.0x4f70c6.998
cmp ecx, 0x100
jae case.0x4f70c6.999
mov eax, dword [ebx + 0x30]
test byte [ecx + eax], 0x10
jne case.0x4f8aec.13
xor esi, esi
jmp case.0x4f70c6.998
test esi, esi
jne case.0x4f70c6.998
mov edx, dword [ebp + 0x38]
add edx, 0xfffffffe
mov dword [ebp + 0x38], edx
test edi, edi
jne 0x4f9211
movzx ecx, word [edx]
jmp 0x4f925a
test esi, esi
jne case.0x4f70c6.998
mov ecx, dword [ebp + 0x38]
mov edx, 0xfc00
add ecx, 0xfffffffe
mov dword [ebp + 0x38], ecx
mov ax, word [ecx]
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x4f8dc0
add ecx, 0xfffffffe
mov dword [ebp + 0x38], ecx
cmp dword [ebp + 0x28], 0x11
jne 0x4f8ddd
cmp ecx, dword [ebp + 4]
jbe 0x4f8ddd
cmp word [ecx], 0xa
jne 0x4f8ddd
add ecx, 0xfffffffe
cmp word [ecx], 0xd
jne 0x4f8ddd
mov dword [ebp + 0x38], ecx
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebp + 4]
jbe 0x4efa48
mov esi, dword [ebp]
mov byte [ebp + 0x30], 0xdd
jmp 0x4f995a
test esi, esi
jne case.0x4f70c6.998
mov ecx, dword [ebp + 0x38]
add ecx, 0xfffffffe
mov dword [ebp + 0x38], ecx
test edi, edi
je 0x4f8e25
mov ax, word [ecx]
mov edx, 0xfc00
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x4f8e25
lea eax, [ecx - 2]
mov dword [ebp + 0x38], eax
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebp + 4]
ja 0x4f9683
mov ebp, dword [esp + 0x78]
jmp 0x4efa50
test esi, esi
jne case.0x4f70c6.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f70c6.999
mov ecx, dword [ebp + 0x38]
cmp ecx, dword [ebx + 0x54]
jb 0x4f8e90
movzx eax, word [ebx + 0x3c]
mov edx, eax
test ax, ax
je case.0x4f70c6.999
cmp ecx, dword [ebx + 0x5c]
ja 0x4f8e79
cmp dword [ebx + 0x24], esi
je case.0x4f70c6.999
mov dword [ebx + 0x1c], 1
cmp edx, 1
ja 0x4efdb9
xor esi, esi
jmp case.0x4f70c6.998
movzx edx, word [ecx]
add ecx, 2
mov dword [ebp + 0x38], ecx
test edi, edi
je 0x4f8eca
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f8eca
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 [ebp + 0x38], eax
mov ecx, dword [ebp + 0x2c]
mov eax, edx
shr eax, 7
and edx, 0x7f
movzx eax, word [eax*2 + 0x6a6508]
shl eax, 7
add eax, edx
movzx eax, word [eax*2 + 0x6aa908]
lea eax, [eax + eax*2]
movzx edx, word [eax*4 + 0x6a2302]
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 + 0x6a17a8]
and ecx, eax
neg ecx
sbb ecx, ecx
xor eax, eax
neg ecx
cmp dword [ebp + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x4f70c6.999
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
mov byte [eax + 0x30], 0xdf
jmp 0x4f995a
test esi, esi
jne case.0x4f70c6.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f70c6.999
mov edx, dword [ebp + 0x38]
cmp edx, dword [ebx + 0x54]
jb 0x4f8f91
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je case.0x4f70c6.999
cmp edx, dword [ebx + 0x5c]
ja 0x4f8f7a
cmp dword [ebx + 0x24], esi
je case.0x4f70c6.999
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efdb9
xor esi, esi
jmp case.0x4f70c6.998
movzx ecx, word [edx]
add edx, 2
mov dword [ebp + 0x38], edx
test edi, edi
je 0x4f8fcb
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f8fcb
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 [ebp + 0x38], eax
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x6a6508]
shl eax, 7
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x6aa908]
lea eax, [eax + eax*2]
movzx eax, word [eax*4 + 0x6a2300]
shr eax, 0xb
cmp eax, dword [ebp + 0x2c]
sete cl
xor eax, eax
cmp dword [ebp + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x4f70c6.999
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
mov byte [eax + 0x30], 0xe0
jmp 0x4f995a
test esi, esi
jne case.0x4f70c6.998
mov edx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x20], eax
cmp edx, dword [ebp + 0x24]
jae case.0x4f70c6.999
mov edx, dword [ebp + 0x38]
cmp edx, dword [ebx + 0x54]
jb 0x4f9074
movzx eax, word [ebx + 0x3c]
mov ecx, eax
test ax, ax
je case.0x4f70c6.999
cmp edx, dword [ebx + 0x5c]
ja 0x4f905d
cmp dword [ebx + 0x24], esi
je case.0x4f70c6.999
mov dword [ebx + 0x1c], 1
cmp ecx, 1
ja 0x4efdb9
xor esi, esi
jmp case.0x4f70c6.998
movzx ecx, word [edx]
add edx, 2
mov dword [ebp + 0x38], edx
test edi, edi
je 0x4f90ae
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f90ae
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 [ebp + 0x38], eax
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x6a6508]
shl eax, 7
add eax, ecx
mov ecx, dword [ebp + 0x2c]
movzx eax, word [eax*2 + 0x6aa908]
lea edx, [eax + eax*2]
movzx eax, byte [edx*4 + 0x6a22f8]
cmp eax, ecx
je 0x4f9109
movzx edx, word [edx*4 + 0x6a2300]
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 + 0x6a2000], eax
jne 0x4f9109
xor ecx, ecx
jmp 0x4f910e
mov ecx, 1
xor eax, eax
cmp dword [ebp + 0x28], 0xf
sete al
cmp ecx, eax
je case.0x4f70c6.999
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
mov byte [eax + 0x30], 0xe1
jmp 0x4f995a
mov ebx, dword [esp + 0x24]
mov eax, dword [ebx + 0x50]
shl eax, 2
push eax
lea eax, [ebx + 0x54]
push eax
lea eax, [ebp + 0x54]
push eax
call fcn.00526450
mov eax, dword [ebx + 0x50]
add esp, 0xc
mov dword [ebp + 0x50], eax
mov eax, dword [ebx + 0x40]
mov dword [ebp + 0x40], eax
mov ecx, dword [ebp]
nop dword [eax + eax]
movzx eax, word [ecx + 2]
lea ecx, [ecx + eax*2]
mov dword [ebp], ecx
cmp word [ecx], 0x78
je 0x4f9160
lea eax, [ecx + 4]
mov dword [ebp], eax
mov ebp, dword [esp + 0x78]
jmp 0x4efa50
mov esi, dword [ebp]
movzx eax, word [esi + 2]
lea esi, [esi + eax*2]
mov dword [ebp], esi
cmp word [esi], 0x78
je 0x4f9182
lea eax, [esi + 4]
mov dword [ebp], eax
mov ebp, dword [esp + 0x78]
jmp 0x4efa50
mov ecx, dword [ebp]
movzx eax, word [ecx + 2]
lea esi, [ecx + eax*2]
mov dword [ebp], esi
cmp word [esi], 0x78
je 0x4f9849
lea eax, [esi + 4]
mov dword [ebp], eax
mov ebp, dword [esp + 0x78]
jmp 0x4efa50
mov ebx, dword [esp + 0x24]
mov eax, dword [ebx + 0x50]
shl eax, 2
push eax
lea eax, [ebx + 0x54]
push eax
lea eax, [ebp + 0x54]
push eax
call fcn.00526450
mov eax, dword [ebx + 0x50]
add esp, 0xc
mov dword [ebp + 0x50], eax
jmp 0x4f710e
mov ecx, dword [ebp + 4]
movzx eax, word [ecx + 2]
lea eax, [ecx + eax*2]
mov dword [ebp + 4], eax
cmp word [eax], 0x78
je 0x4f9406
xor eax, eax
cmp dword [ebp + 0x20], eax
sete al
jmp 0x4f7111
movzx eax, word [edx]
mov esi, edx
mov ecx, eax
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x4f922d
lea esi, [edx - 2]
mov dword [ebp + 0x38], esi
movzx ecx, word [esi]
movzx ecx, cx
mov edx, esi
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f925a
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
mov edi, dword [ebp + 4]
mov eax, ecx
shr eax, 7
and ecx, 0x7f
movzx eax, word [eax*2 + 0x6a6508]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x6aa908]
lea eax, [eax + eax*2]
movzx ebx, byte [eax*4 + 0x6a22fa]
cmp edx, edi
jbe 0x4f9325
nop dword [eax]
movzx eax, word [edx - 2]
add edx, 0xfffffffe
cmp dword [esp + 0x14], 0
mov ecx, eax
je 0x4f92de
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x4f92b3
movzx ecx, word [edx - 2]
sub edx, 2
movzx ecx, cx
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f92de
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 + 0x6a6508]
shl eax, 7
add eax, ecx
mov ecx, ebx
movzx eax, word [eax*2 + 0x6aa908]
lea eax, [eax + eax*2]
movzx esi, byte [eax*4 + 0x6a22fa]
mov eax, 1
shl eax, cl
test dword [esi*4 + 0x6bddc0], eax
je 0x4f9325
mov dword [ebp + 0x38], edx
mov ebx, esi
cmp edx, edi
ja 0x4f9290
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebp + 4]
jbe 0x4efa48
mov esi, dword [ebp]
mov byte [ebp + 0x30], 0xdc
jmp 0x4f995a
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 + 0x6bdc60]
movzx eax, word [edx + 2]
ja 0x4f968f
add ecx, eax
lea eax, [edx + ecx*2]
mov dword [ebx], eax
jmp 0x4efa50
cmp dword [esp + 0x14], 0
jne 0x4f7f29
mov esi, dword [eax]
mov byte [eax + 0x30], 0x1d
jmp 0x4f995a
cmp dword [esp + 0x14], 0
jne 0x4f8011
mov esi, dword [eax]
mov byte [eax + 0x30], 0x1f
jmp 0x4f995a
cmp dword [esp + 0x14], 0
jne 0x4f7c8f
mov esi, dword [eax]
mov byte [eax + 0x30], 0x17
jmp 0x4f995a
test ebp, ebp
js 0x4f93cb
cmp ebp, 0xd
ja case.0x4f77f2.15
jmp dword [ebp*4 + 0x4faa6c]
cmp dword [eax + 0x28], 0x16
je 0x4f960c
test esi, esi
jne 0x4f9678
mov esi, dword [eax]
mov byte [eax + 0x30], 0x21
jmp 0x4f995a
cmp ecx, 0x7e
je 0x4f93fb
mov eax, 0x80
cmp cx, ax
je 0x4f93fb
xor eax, eax
jmp 0x4f9400
mov eax, 1
mov dword [ebp + 0x20], eax
mov dword [ebp + 4], esi
mov eax, dword [ebp]
mov ecx, dword [ebp + 4]
movzx eax, word [eax]
or eax, 0x30000
mov dword [esp + 0x20], eax
movzx eax, word [ecx]
movzx eax, byte [eax + 0x6bdc60]
mov byte [ebp + 0x30], 5
lea esi, [ecx + eax*2]
jmp 0x4f995a
mov eax, dword [esp + 0x10]
cmp cl, 0x7b
jne 0x4f9443
lea esi, [edx + 4]
mov byte [ebp + 0x30], 6
jmp 0x4f995e
mov byte [ebp + 0x30], 7
jmp 0x4f995e
lea esi, [esi + eax*2]
mov byte [ebp + 0x30], 1
jmp 0x4f995a
mov eax, dword [ebp + 8]
mov dword [ebp], eax
jmp 0x4f9730
mov eax, dword [esp + 0x58]
add eax, eax
add dword [ebp + 0x38], eax
mov esi, dword [ebp]
mov byte [ebp + 0x30], 0x14
jmp 0x4f995a
mov dword [ebp + 0x38], esi
mov edi, dword [ebp + 0x24]
dec edi
mov dword [ebp + 0x24], edi
mov ebx, dword [ebp + 0x20]
cmp ebx, edi
jae 0x4f94b7
nop dword [eax]
lea eax, [esp + 0x5c]
push eax
push dword [esp + 0x7c]
push ebp
push dword [ebp + 0x28]
push dword [ebp + 0x14]
call fcn.004faab0
mov eax, dword [esp + 0x70]
inc ebx
add esp, 0x14
lea esi, [esi + eax*2]
mov dword [ebp + 0x38], esi
cmp ebx, edi
jb 0x4f9490
mov esi, dword [ebp]
mov byte [ebp + 0x30], 0x16
jmp 0x4f995a
mov esi, dword [ebp]
mov byte [ebp + 0x30], 0x20
jmp 0x4f995a
cmp esi, dword [ebx + 0x54]
jae case.0x4f77f2.13
cmp word [esi], 0xa
jne case.0x4f77f2.13
lea eax, [esi + 2]
mov dword [ebp + 0x38], eax
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
mov byte [eax + 0x30], 0x21
jmp 0x4f995a
movzx eax, word [ebx + 0x3c]
mov edx, eax
test ax, ax
je case.0x4f77f2.13
cmp esi, dword [ebx + 0x54]
jb case.0x4f77f2.13
cmp dword [ebx + 0x88], 0
jne case.0x4f77f2.13
cmp dword [ebx + 0x8c], 2
jne case.0x4f77f2.13
movzx eax, word [ebx + 0x90]
cmp ecx, eax
jne case.0x4f77f2.13
mov dword [ebx + 0x1c], 1
cmp edx, 1
ja 0x4efdb9
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
mov byte [eax + 0x30], 0x21
jmp 0x4f995a
mov ax, word [edx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x4f1571
lea eax, [edx - 2]
mov dword [ebp + 0x38], eax
mov esi, dword [ebp]
mov byte [ebp + 0x30], 0xc9
jmp 0x4f995a
mov ecx, dword [esp + 0x10]
lea eax, [ebx + edi]
mov dword [ecx + 0x38], eax
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
mov byte [eax + 0x30], 0xca
jmp 0x4f995a
mov esi, dword [ebp]
mov byte [ebp + 0x30], 0xcf
jmp 0x4f995a
movzx edx, word [ecx]
add ecx, 2
mov dword [ebp + 0x38], ecx
mov esi, ecx
test edi, edi
je 0x4f95c7
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f95c7
movzx eax, word [ecx]
lea esi, [ecx + 2]
and edx, 0x3ff
mov dword [ebp + 0x38], esi
shl edx, 0xa
and eax, 0x3ff
or edx, eax
add edx, 0x10000
push 0
push edi
push dword [ebx + 0x54]
push dword [ebx + 0x4c]
push esi
push edx
call fcn.00521780
add esp, 0x18
mov dword [ebp + 0x38], eax
cmp eax, dword [ebx + 0x54]
jb 0x4f9608
movzx ecx, word [ebx + 0x3c]
mov edx, ecx
test cx, cx
je 0x4f9608
cmp eax, dword [ebx + 0x5c]
ja 0x4f95f8
cmp dword [ebx + 0x24], 0
je 0x4f9608
mov dword [ebx + 0x1c], 1
cmp edx, 1
ja 0x4efdb9
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
mov byte [eax + 0x30], 0xda
jmp 0x4f995a
cmp edx, dword [ebx + 0x54]
jae case.0x4f8aec.13
cmp word [edx], 0xa
jne case.0x4f8aec.13
lea eax, [edx + 2]
mov dword [ebp + 0x38], eax
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
mov byte [eax + 0x30], 0xdb
jmp 0x4f995a
movzx eax, word [ebx + 0x3c]
mov esi, eax
test ax, ax
je case.0x4f8aec.13
cmp edx, dword [ebx + 0x54]
jb case.0x4f8aec.13
cmp dword [ebx + 0x88], 0
jne case.0x4f8aec.13
cmp dword [ebx + 0x8c], 2
jne case.0x4f8aec.13
movzx eax, word [ebx + 0x90]
cmp ecx, eax
jne case.0x4f8aec.13
mov dword [ebx + 0x1c], 1
cmp esi, 1
ja 0x4efdb9
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
mov byte [eax + 0x30], 0xdb
jmp 0x4f995a
mov esi, dword [ebp]
mov byte [ebp + 0x30], 0xde
jmp 0x4f995a
mov byte [ebx + 0x30], 0x11
jmp 0x4f9955
mov eax, dword [esp + 0x10]
add esi, 2
mov dword [eax + 4], esi
mov byte [eax + 0x30], 9
jmp 0x4f995a
mov ecx, dword [esp + 0x10]
add esi, 2
mov dword [ecx + 4], esi
movzx eax, word [esi + 2]
lea eax, [esi + eax*2]
mov esi, eax
mov dword [ecx + 4], eax
cmp word [esi], 0x78
je 0x4f96b5
lea esi, [eax + 4]
mov byte [ecx + 0x30], 0xa
jmp 0x4f995a
mov ebp, dword [esp + 0x10]
add esi, 2
mov ecx, 0x89
mov dword [ebp + 0x28], 1
mov dword [ebp], esi
movzx eax, word [esi]
cmp ax, cx
je 0x4f971a
mov ecx, 0x8e
cmp ax, cx
jne 0x4f9708
jmp 0x4f971a
mov ebp, dword [esp + 0x10]
mov dword [ebp + 0x28], 0
mov eax, 0x20000
jmp 0x4f9723
mov ebp, dword [esp + 0x10]
mov dword [ebp + 0x28], 0
movzx eax, word [esi + 4]
or eax, 0x10000
mov dword [ebp + 0x20], eax
mov dword [ebp + 0x24], 0
mov dword [ebp + 8], esi
mov eax, dword [ebp + 0x38]
mov dword [ebp + 4], eax
mov ecx, dword [ebp]
mov eax, dword [ebp + 0x20]
mov dword [esp + 0x20], eax
movzx eax, word [ecx]
movzx eax, byte [eax + 0x6bdc60]
mov byte [ebp + 0x30], 8
lea esi, [ecx + eax*2]
jmp 0x4f995a
movzx ecx, word [esi + 4]
or ecx, 0x10000
jmp 0x4f9768
or ecx, 0x20000
mov ebp, dword [esp + 0x10]
mov dword [ebp + 0x20], ecx
mov eax, dword [ebp + 0x20]
mov dword [esp + 0x20], eax
movzx eax, word [esi]
movzx eax, byte [eax + 0x6bdc60]
mov byte [ebp + 0x30], 2
lea esi, [esi + eax*2]
jmp 0x4f995a
mov ecx, dword [ebp + 0x48]
movzx eax, word [esi + 2]
lea ebx, [ecx + eax*2]
cmp ebx, ecx
jne 0x4f979e
xor edi, edi
jmp 0x4f97a2
movzx edi, word [ebx + 4]
mov ebp, dword [esp + 0x10]
cmp dword [ebp + 0x44], 0xffffffff
je 0x4f97e6
mov eax, dword [ebp + 0x4c]
cmp eax, 0xffffffff
je 0x4f97e6
mov ecx, dword [esp + 0x74]
mov edx, edi
or edx, 0x40000
mov esi, dword [ecx + 0x18]
add eax, esi
mov ecx, eax
sub ecx, dword [esp + 0x70]
cmp dword [eax + 0x1c], edx
je 0x4f97da
mov eax, dword [ecx + 0x4c]
cmp eax, 0xffffffff
jne 0x4f97c3
jmp 0x4f97e6
mov eax, dword [ebp + 0x38]
cmp eax, dword [ecx + 0x38]
je 0x4f9b08
or edi, 0x40000
mov dword [ebp + 4], ebx
mov dword [ebp + 0x20], edi
mov ecx, dword [ebp + 4]
mov eax, dword [ebp + 0x20]
mov dword [esp + 0x20], eax
movzx eax, word [ecx]
movzx eax, byte [eax + 0x6bdc60]
mov byte [ebp + 0x30], 0xb
lea esi, [ecx + eax*2]
jmp 0x4f995a
mov ebp, dword [esp + 0x10]
or ecx, 0x20000
mov dword [ebp + 0x20], ecx
mov eax, dword [ebp + 0x20]
mov dword [esp + 0x20], eax
movzx eax, word [esi]
movzx eax, byte [eax + 0x6bdc60]
mov byte [ebp + 0x30], 3
lea esi, [esi + eax*2]
jmp 0x4f995a
mov ebp, dword [esp + 0x10]
or ecx, 0x20000
mov dword [ebp + 0x20], ecx
mov eax, dword [ebp + 0x20]
mov dword [esp + 0x20], eax
movzx eax, word [esi]
movzx eax, byte [eax + 0x6bdc60]
mov byte [ebp + 0x30], 4
lea esi, [esi + eax*2]
jmp 0x4f995a
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 + 0x6bdc60]
movzx eax, word [edx + 2]
mov byte [ebx + 0x30], 0xc
jmp 0x4f9955
movzx eax, word [esi]
movzx eax, byte [eax + 0x6bdc60]
lea esi, [esi + eax*2]
mov eax, dword [esp + 0x10]
mov byte [eax + 0x30], 0xd
jmp 0x4f995a
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 + 0x6bdc60]
movzx eax, word [edx + 2]
mov byte [ebx + 0x30], 0x24
jmp 0x4f9955
movzx eax, word [esi]
movzx eax, byte [eax + 0x6bdc60]
lea esi, [esi + eax*2]
mov eax, dword [esp + 0x10]
mov byte [eax + 0x30], 0xe
jmp 0x4f995a
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 + 0x6bdc60]
movzx eax, word [edx + 2]
mov byte [ebx + 0x30], 0xf
jmp 0x4f9955
movzx eax, word [esi]
movzx eax, byte [eax + 0x6bdc60]
lea esi, [esi + eax*2]
mov eax, dword [esp + 0x10]
mov byte [eax + 0x30], 0x10
jmp 0x4f995a
movzx eax, word [esi]
movzx eax, byte [eax + 0x6bdc60]
lea esi, [esi + eax*2]
mov eax, dword [esp + 0x10]
mov byte [eax + 0x30], 0x12
jmp 0x4f995a
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 + 0x6bdc60]
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 + 0x70]
add ebp, eax
mov dword [esp + 0x1c], ebp
cmp ebp, dword [esp + 0x40]
jb 0x4f9a13
mov ebp, dword [esp + 0x74]
mov eax, dword [esp + 0x78]
mov ebx, dword [ebp + 0x1c]
mov ecx, dword [eax + 0xc]
lea edi, [ebx + ebx]
cmp edi, ecx
jbe 0x4f999b
xor edx, edx
mov eax, ecx
div dword [esp + 0x70]
mov edi, ecx
sub edi, edx
cmp ebx, edi
jae 0x4f9b15
push dword [ebp + 8]
mov eax, dword [ebp]
push edi
call eax
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x4f9b22
push dword [esp + 0x3c]
push dword [ebp + 0x18]
push ebx
call fcn.00526450
mov ecx, dword [ebp + 0x18]
mov eax, ebx
mov edx, dword [esp + 0x1c]
sub eax, ecx
mov ebp, dword [esp + 0x7c]
add edx, eax
mov eax, dword [esp + 0x80]
add ebp, edx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x28], ebp
push dword [eax + 8]
mov eax, dword [eax + 4]
push ecx
call eax
mov eax, dword [esp + 0x88]
xor edx, edx
add esp, 0x14
mov dword [eax + 0x18], ebx
mov dword [eax + 0x1c], edi
mov eax, edi
div dword [esp + 0x70]
mov eax, edi
sub eax, edx
mov dword [esp + 0x3c], eax
add eax, ebx
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x10]
push dword [esp + 0x44]
add eax, 0x38
push eax
lea eax, [ebp + 0x38]
push eax
call fcn.00526450
mov eax, dword [esp + 0x1c]
add esp, 0xc
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x74]
mov edx, dword [esp + 0x20]
mov eax, dword [eax + 0x18]
inc eax
mov dword [esp + 0x10], ebp
mov dword [ebp + 0x18], eax
mov eax, ebp
mov ebp, dword [esp + 0x70]
jmp 0x4ef9e0
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x50
ret
mov eax, ecx
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x78]
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 0x4f9a7b
mov dword [ecx + 0x60], eax
mov eax, dword [ebx + 0x3c]
sub eax, dword [ecx + 0x4c]
mov edi, dword [esp + 0x74]
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 + 0x6c]
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.00526450
mov eax, dword [ebx + 0x50]
dec esi
add eax, 2
add esp, 0xc
cmp esi, eax
jb 0x4f9ae4
lea edx, [edi + 0x34]
lea edx, [edx + esi*4]
nop
mov dword [edx], 0xffffffff
lea edx, [edx - 4]
mov ecx, dword [ebx + 0x50]
dec esi
add ecx, 2
cmp esi, ecx
jae 0x4f9ad0
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x50
ret
pop edi
pop esi
pop ebp
mov eax, 0xffffffd4
pop ebx
add esp, 0x50
ret
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x50
ret
pop edi
pop esi
pop ebp
mov eax, 0xffffffcc
pop ebx
add esp, 0x50
ret
pop edi
pop esi
pop ebp
mov eax, 0xffffffc1
pop ebx
add esp, 0x50
ret
pop edi
pop esi
pop ebp
mov eax, 0xffffffd0
pop ebx
add esp, 0x50
ret
pop edi
pop esi
pop ebp
mov eax, 0xffffffd1
pop ebx
add esp, 0x50
ret