Function at 0x140013734
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
sub rsp, 0x178
mov ecx, 0xd0
call fcn.140001bc8
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x30], 0
cmp qword [0x140063230], 0
jne 0x1400137cd
mov ecx, 0x48
call fcn.140001bc8
mov qword [0x140063230], rax
mov rax, qword [0x140063230]
mov qword [rax], 0
mov rax, qword [0x140063230]
mov qword [rax + 8], 0
mov rax, qword [0x140063230]
mov qword [rax + 0x10], 0
mov rcx, qword [0x140063230]
lea rax, [0x1400611f0]
mov qword [rcx + 0x40], rax
mov rcx, qword [0x140063230]
add rcx, 0x18
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
xor eax, eax
test eax, eax
jne 0x1400137c7
mov edx, 0x5c
mov rcx, qword [rsp + 0x180]
call fcn.1400022b0
mov qword [rsp + 0x30], rax
cmp qword [rsp + 0x30], 0
je 0x1400137fa
mov rax, qword [rsp + 0x30]
add rax, 1
mov qword [rsp + 0x30], rax
cmp qword [rsp + 0x30], 0
je 0x14001380e
mov rax, qword [rsp + 0x30]
movsx eax, byte [rax]
test eax, eax
jne 0x14001383b
mov edx, 0x2f
mov rcx, qword [rsp + 0x180]
call fcn.1400022b0
mov qword [rsp + 0x30], rax
cmp qword [rsp + 0x30], 0
je 0x14001383b
mov rax, qword [rsp + 0x30]
add rax, 1
mov qword [rsp + 0x30], rax
cmp qword [rsp + 0x30], 0
je 0x14001384f
mov rax, qword [rsp + 0x30]
movsx eax, byte [rax]
test eax, eax
jne 0x14001385c
mov rax, qword [rsp + 0x180]
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x28]
mov dword [rax + 0x20], 1
mov rax, qword [rsp + 0x28]
mov dword [rax + 0x24], 0
mov rcx, qword [rsp + 0x30]
call fcn.140007e6c
mov r11, rax
mov rax, qword [rsp + 0x28]
mov qword [rax], r11
mov rcx, qword [rsp + 0x180]
call fcn.140007e6c
mov r11, rax
mov rax, qword [rsp + 0x28]
mov qword [rax + 8], r11
mov rcx, qword [rsp + 0x28]
mov rax, qword [rsp + 0x188]
mov qword [rcx + 0x18], rax
mov rax, qword [rsp + 0x28]
mov qword [rax + 0x10], 0
mov rcx, qword [rsp + 0x28]
mov rcx, qword [rcx]
call fcn.140002178
mov rcx, qword [rsp + 0x28]
mov rcx, qword [rcx + 8]
call fcn.140002178
mov edx, 0x2e
mov rcx, qword [rsp + 0x28]
mov rcx, qword [rcx]
call fcn.140001e58
mov qword [rsp + 0x20], rax
cmp qword [rsp + 0x20], 0
je 0x140013917
lea rdx, str..DLL
mov rcx, qword [rsp + 0x20]
call fcn.140002200
test eax, eax
jne 0x140013917
mov rax, qword [rsp + 0x20]
mov byte [rax], 0
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 8]
mov qword [rsp + 0x20], rax
jmp 0x140013935
mov rax, qword [rsp + 0x20]
add rax, 1
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x20]
movsx eax, byte [rax]
test eax, eax
je 0x140013958
mov rax, qword [rsp + 0x20]
movsx eax, byte [rax]
cmp eax, 0x2f
jne 0x140013956
mov rax, qword [rsp + 0x20]
mov byte [rax], 0x5c
jmp 0x140013927
mov rcx, qword [0x140063230]
add rcx, 0x18
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov rax, qword [rsp + 0x28]
add rax, 0x18
mov qword [rsp + 0x40], rax
mov dword [rsp + 0x38], 0xfeedbeef
mov dword [rsp + 0x4c], 0x9e3779b9
mov eax, dword [rsp + 0x4c]
mov dword [rsp + 0x48], eax
mov dword [rsp + 0x3c], 8
cmp dword [rsp + 0x3c], 0xc
jb 0x140013c0f
mov rax, qword [rsp + 0x40]
movzx ecx, byte [rax]
mov rax, qword [rsp + 0x40]
movzx eax, byte [rax + 1]
shl eax, 8
add ecx, eax
mov rax, qword [rsp + 0x40]
movzx eax, byte [rax + 2]
shl eax, 0x10
add ecx, eax
mov rax, qword [rsp + 0x40]
movzx eax, byte [rax + 3]
shl eax, 0x18
add eax, dword [rsp + 0x48]
add eax, ecx
mov dword [rsp + 0x48], eax
mov rax, qword [rsp + 0x40]
movzx ecx, byte [rax + 4]
mov rax, qword [rsp + 0x40]
movzx eax, byte [rax + 5]
shl eax, 8
add ecx, eax
mov rax, qword [rsp + 0x40]
movzx eax, byte [rax + 6]
shl eax, 0x10
add ecx, eax
mov rax, qword [rsp + 0x40]
movzx eax, byte [rax + 7]
shl eax, 0x18
add eax, dword [rsp + 0x4c]
add eax, ecx
mov dword [rsp + 0x4c], eax
mov rax, qword [rsp + 0x40]
movzx ecx, byte [rax + 8]
mov rax, qword [rsp + 0x40]
movzx eax, byte [rax + 9]
shl eax, 8
add ecx, eax
mov rax, qword [rsp + 0x40]
movzx eax, byte [rax + 0xa]
shl eax, 0x10
add ecx, eax
mov rax, qword [rsp + 0x40]
movzx eax, byte [rax + 0xb]
shl eax, 0x18
add eax, dword [rsp + 0x38]
add eax, ecx
mov dword [rsp + 0x38], eax
mov ecx, dword [rsp + 0x4c]
mov eax, dword [rsp + 0x48]
sub eax, ecx
mov dword [rsp + 0x48], eax
mov ecx, dword [rsp + 0x38]
mov eax, dword [rsp + 0x48]
sub eax, ecx
mov dword [rsp + 0x48], eax
mov ecx, dword [rsp + 0x38]
shr ecx, 0xd
mov eax, dword [rsp + 0x48]
xor eax, ecx
mov dword [rsp + 0x48], eax
mov ecx, dword [rsp + 0x38]
mov eax, dword [rsp + 0x4c]
sub eax, ecx
mov dword [rsp + 0x4c], eax
mov ecx, dword [rsp + 0x48]
mov eax, dword [rsp + 0x4c]
sub eax, ecx
mov dword [rsp + 0x4c], eax
mov ecx, dword [rsp + 0x48]
shl ecx, 8
mov eax, dword [rsp + 0x4c]
xor eax, ecx
mov dword [rsp + 0x4c], eax
mov ecx, dword [rsp + 0x48]
mov eax, dword [rsp + 0x38]
sub eax, ecx
mov dword [rsp + 0x38], eax
mov ecx, dword [rsp + 0x4c]
mov eax, dword [rsp + 0x38]
sub eax, ecx
mov dword [rsp + 0x38], eax
mov ecx, dword [rsp + 0x4c]
shr ecx, 0xd
mov eax, dword [rsp + 0x38]
xor eax, ecx
mov dword [rsp + 0x38], eax
mov ecx, dword [rsp + 0x4c]
mov eax, dword [rsp + 0x48]
sub eax, ecx
mov dword [rsp + 0x48], eax
mov ecx, dword [rsp + 0x38]
mov eax, dword [rsp + 0x48]
sub eax, ecx
mov dword [rsp + 0x48], eax
mov ecx, dword [rsp + 0x38]
shr ecx, 0xc
mov eax, dword [rsp + 0x48]
xor eax, ecx
mov dword [rsp + 0x48], eax
mov ecx, dword [rsp + 0x38]
mov eax, dword [rsp + 0x4c]
sub eax, ecx
mov dword [rsp + 0x4c], eax
mov ecx, dword [rsp + 0x48]
mov eax, dword [rsp + 0x4c]
sub eax, ecx
mov dword [rsp + 0x4c], eax
mov ecx, dword [rsp + 0x48]
shl ecx, 0x10
mov eax, dword [rsp + 0x4c]
xor eax, ecx
mov dword [rsp + 0x4c], eax
mov ecx, dword [rsp + 0x48]
mov eax, dword [rsp + 0x38]
sub eax, ecx
mov dword [rsp + 0x38], eax
mov ecx, dword [rsp + 0x4c]
mov eax, dword [rsp + 0x38]
sub eax, ecx
mov dword [rsp + 0x38], eax
mov ecx, dword [rsp + 0x4c]
shr ecx, 5
mov eax, dword [rsp + 0x38]
xor eax, ecx
mov dword [rsp + 0x38], eax
mov ecx, dword [rsp + 0x4c]
mov eax, dword [rsp + 0x48]
sub eax, ecx
mov dword [rsp + 0x48], eax
mov ecx, dword [rsp + 0x38]
mov eax, dword [rsp + 0x48]
sub eax, ecx
mov dword [rsp + 0x48], eax
mov ecx, dword [rsp + 0x38]
shr ecx, 3
mov eax, dword [rsp + 0x48]
xor eax, ecx
mov dword [rsp + 0x48], eax
mov ecx, dword [rsp + 0x38]
mov eax, dword [rsp + 0x4c]
sub eax, ecx
mov dword [rsp + 0x4c], eax
mov ecx, dword [rsp + 0x48]
mov eax, dword [rsp + 0x4c]
sub eax, ecx
mov dword [rsp + 0x4c], eax
mov ecx, dword [rsp + 0x48]
shl ecx, 0xa
mov eax, dword [rsp + 0x4c]
xor eax, ecx
mov dword [rsp + 0x4c], eax
mov ecx, dword [rsp + 0x48]
mov eax, dword [rsp + 0x38]
sub eax, ecx
mov dword [rsp + 0x38], eax
mov ecx, dword [rsp + 0x4c]
mov eax, dword [rsp + 0x38]
sub eax, ecx
mov dword [rsp + 0x38], eax
mov ecx, dword [rsp + 0x4c]
shr ecx, 0xf
mov eax, dword [rsp + 0x38]
xor eax, ecx
mov dword [rsp + 0x38], eax
xor eax, eax
test eax, eax
jne 0x140013a52
mov rax, qword [rsp + 0x40]
add rax, 0xc
mov qword [rsp + 0x40], rax
mov eax, dword [rsp + 0x3c]
sub eax, 0xc
mov dword [rsp + 0x3c], eax
jmp 0x140013997
mov eax, dword [rsp + 0x38]
add eax, 8
mov dword [rsp + 0x38], eax
mov eax, dword [rsp + 0x3c]
mov dword [rsp + 0x140], eax
cmp dword [rsp + 0x140], 6
ja 0x140013c88
cmp dword [rsp + 0x140], 6
je 0x140013d31
cmp dword [rsp + 0x140], 1
je 0x140013d9c
cmp dword [rsp + 0x140], 2
je 0x140013d86
cmp dword [rsp + 0x140], 3
je 0x140013d70
cmp dword [rsp + 0x140], 4
je 0x140013d5a
cmp dword [rsp + 0x140], 5
je 0x140013d47
jmp 0x140013dae
cmp dword [rsp + 0x140], 7
je 0x140013d1b
cmp dword [rsp + 0x140], 8
je 0x140013d05
cmp dword [rsp + 0x140], 9
je 0x140013cef
cmp dword [rsp + 0x140], 0xa
je 0x140013cd9
cmp dword [rsp + 0x140], 0xb
je 0x140013cc3
jmp 0x140013dae
mov rax, qword [rsp + 0x40]
movzx ecx, byte [rax + 0xa]
shl ecx, 0x18
mov eax, dword [rsp + 0x38]
add eax, ecx
mov dword [rsp + 0x38], eax
mov rax, qword [rsp + 0x40]
movzx ecx, byte [rax + 9]
shl ecx, 0x10
mov eax, dword [rsp + 0x38]
add eax, ecx
mov dword [rsp + 0x38], eax
mov rax, qword [rsp + 0x40]
movzx ecx, byte [rax + 8]
shl ecx, 8
mov eax, dword [rsp + 0x38]
add eax, ecx
mov dword [rsp + 0x38], eax
mov rax, qword [rsp + 0x40]
movzx ecx, byte [rax + 7]
shl ecx, 0x18
mov eax, dword [rsp + 0x4c]
add eax, ecx
mov dword [rsp + 0x4c], eax
mov rax, qword [rsp + 0x40]
movzx ecx, byte [rax + 6]
shl ecx, 0x10
mov eax, dword [rsp + 0x4c]
add eax, ecx
mov dword [rsp + 0x4c], eax
mov rax, qword [rsp + 0x40]
movzx ecx, byte [rax + 5]
shl ecx, 8
mov eax, dword [rsp + 0x4c]
add eax, ecx
mov dword [rsp + 0x4c], eax
mov rax, qword [rsp + 0x40]
movzx ecx, byte [rax + 4]
mov eax, dword [rsp + 0x4c]
add eax, ecx
mov dword [rsp + 0x4c], eax
mov rax, qword [rsp + 0x40]
movzx ecx, byte [rax + 3]
shl ecx, 0x18
mov eax, dword [rsp + 0x48]
add eax, ecx
mov dword [rsp + 0x48], eax
mov rax, qword [rsp + 0x40]
movzx ecx, byte [rax + 2]
shl ecx, 0x10
mov eax, dword [rsp + 0x48]
add eax, ecx
mov dword [rsp + 0x48], eax
mov rax, qword [rsp + 0x40]
movzx ecx, byte [rax + 1]
shl ecx, 8
mov eax, dword [rsp + 0x48]
add eax, ecx
mov dword [rsp + 0x48], eax
mov rax, qword [rsp + 0x40]
movzx ecx, byte [rax]
mov eax, dword [rsp + 0x48]
add eax, ecx
mov dword [rsp + 0x48], eax
mov ecx, dword [rsp + 0x4c]
mov eax, dword [rsp + 0x48]
sub eax, ecx
mov dword [rsp + 0x48], eax
mov ecx, dword [rsp + 0x38]
mov eax, dword [rsp + 0x48]
sub eax, ecx
mov dword [rsp + 0x48], eax
mov ecx, dword [rsp + 0x38]
shr ecx, 0xd
mov eax, dword [rsp + 0x48]
xor eax, ecx
mov dword [rsp + 0x48], eax
mov ecx, dword [rsp + 0x38]
mov eax, dword [rsp + 0x4c]
sub eax, ecx
mov dword [rsp + 0x4c], eax
mov ecx, dword [rsp + 0x48]
mov eax, dword [rsp + 0x4c]
sub eax, ecx
mov dword [rsp + 0x4c], eax
mov ecx, dword [rsp + 0x48]
shl ecx, 8
mov eax, dword [rsp + 0x4c]
xor eax, ecx
mov dword [rsp + 0x4c], eax
mov ecx, dword [rsp + 0x48]
mov eax, dword [rsp + 0x38]
sub eax, ecx
mov dword [rsp + 0x38], eax
mov ecx, dword [rsp + 0x4c]
mov eax, dword [rsp + 0x38]
sub eax, ecx
mov dword [rsp + 0x38], eax
mov ecx, dword [rsp + 0x4c]
shr ecx, 0xd
mov eax, dword [rsp + 0x38]
xor eax, ecx
mov dword [rsp + 0x38], eax
mov ecx, dword [rsp + 0x4c]
mov eax, dword [rsp + 0x48]
sub eax, ecx
mov dword [rsp + 0x48], eax
mov ecx, dword [rsp + 0x38]
mov eax, dword [rsp + 0x48]
sub eax, ecx
mov dword [rsp + 0x48], eax
mov ecx, dword [rsp + 0x38]
shr ecx, 0xc
mov eax, dword [rsp + 0x48]
xor eax, ecx
mov dword [rsp + 0x48], eax
mov ecx, dword [rsp + 0x38]
mov eax, dword [rsp + 0x4c]
sub eax, ecx
mov dword [rsp + 0x4c], eax
mov ecx, dword [rsp + 0x48]
mov eax, dword [rsp + 0x4c]
sub eax, ecx
mov dword [rsp + 0x4c], eax
mov ecx, dword [rsp + 0x48]
shl ecx, 0x10
mov eax, dword [rsp + 0x4c]
xor eax, ecx
mov dword [rsp + 0x4c], eax
mov ecx, dword [rsp + 0x48]
mov eax, dword [rsp + 0x38]
sub eax, ecx
mov dword [rsp + 0x38], eax
mov ecx, dword [rsp + 0x4c]
mov eax, dword [rsp + 0x38]
sub eax, ecx
mov dword [rsp + 0x38], eax
mov ecx, dword [rsp + 0x4c]
shr ecx, 5
mov eax, dword [rsp + 0x38]
xor eax, ecx
mov dword [rsp + 0x38], eax
mov ecx, dword [rsp + 0x4c]
mov eax, dword [rsp + 0x48]
sub eax, ecx
mov dword [rsp + 0x48], eax
mov ecx, dword [rsp + 0x38]
mov eax, dword [rsp + 0x48]
sub eax, ecx
mov dword [rsp + 0x48], eax
mov ecx, dword [rsp + 0x38]
shr ecx, 3
mov eax, dword [rsp + 0x48]
xor eax, ecx
mov dword [rsp + 0x48], eax
mov ecx, dword [rsp + 0x38]
mov eax, dword [rsp + 0x4c]
sub eax, ecx
mov dword [rsp + 0x4c], eax
mov ecx, dword [rsp + 0x48]
mov eax, dword [rsp + 0x4c]
sub eax, ecx
mov dword [rsp + 0x4c], eax
mov ecx, dword [rsp + 0x48]
shl ecx, 0xa
mov eax, dword [rsp + 0x4c]
xor eax, ecx
mov dword [rsp + 0x4c], eax
mov ecx, dword [rsp + 0x48]
mov eax, dword [rsp + 0x38]
sub eax, ecx
mov dword [rsp + 0x38], eax
mov ecx, dword [rsp + 0x4c]
mov eax, dword [rsp + 0x38]
sub eax, ecx
mov dword [rsp + 0x38], eax
mov ecx, dword [rsp + 0x4c]
shr ecx, 0xf
mov eax, dword [rsp + 0x38]
xor eax, ecx
mov dword [rsp + 0x38], eax
xor eax, eax
test eax, eax
jne 0x140013dae
xor eax, eax
test eax, eax
jne 0x140013969
xor eax, eax
test eax, eax
jne 0x140013969
mov rcx, qword [rsp + 0x28]
mov eax, dword [rsp + 0x38]
mov dword [rcx + 0xcc], eax
mov rcx, qword [rsp + 0x28]
add rcx, 0x18
mov rax, qword [rsp + 0x28]
mov qword [rax + 0xc0], rcx
mov rax, qword [rsp + 0x28]
mov dword [rax + 0xc8], 8
mov rax, qword [0x140063230]
cmp qword [rax], 0
jne 0x140014110
mov rax, qword [rsp + 0x28]
mov qword [rax + 0xa8], 0
mov rax, qword [rsp + 0x28]
mov qword [rax + 0xa0], 0
mov ecx, 0x40
call fcn.140001bc8
mov r11, rax
mov rax, qword [rsp + 0x28]
mov qword [rax + 0x98], r11
mov rax, qword [rsp + 0x28]
cmp qword [rax + 0x98], 0
jne 0x140013ffc
mov ecx, 0xffffffff
call fcn.140002620
jmp 0x1400140f2
mov r8d, 0x40
xor edx, edx
mov rcx, qword [rsp + 0x28]
mov rcx, qword [rcx + 0x98]
call fcn.140001c90
mov rcx, qword [rsp + 0x28]
add rcx, 0x98
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x98]
mov qword [rax + 0x18], rcx
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x98]
mov dword [rax + 8], 0x20
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x98]
mov dword [rax + 0xc], 5
mov rcx, qword [rsp + 0x28]
add rcx, 0x98
sub rcx, qword [rsp + 0x28]
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x98]
mov qword [rax + 0x20], rcx
mov ecx, 0x200
call fcn.140001bc8
mov r11, rax
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x98]
mov qword [rax], r11
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x98]
mov dword [rax + 0x38], 0xa0111fe1
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x98]
cmp qword [rax], 0
jne 0x1400140d6
mov ecx, 0xffffffff
call fcn.140002620
mov rcx, qword [rsp + 0x28]
mov rcx, qword [rcx + 0x98]
call fcn.140001b88
jmp 0x1400140f2
mov rcx, qword [rsp + 0x28]
mov rcx, qword [rcx + 0x98]
mov r8d, 0x200
xor edx, edx
mov rcx, qword [rcx]
call fcn.140001c90
xor eax, eax
test eax, eax
jne 0x140013fc5
mov rcx, qword [0x140063230]
mov rax, qword [rsp + 0x28]
mov qword [rcx], rax
jmp 0x1400141bf
mov rax, qword [0x140063230]
mov rax, qword [rax]
mov rcx, qword [rsp + 0x28]
mov rax, qword [rax + 0x98]
mov qword [rcx + 0x98], rax
mov rax, qword [rsp + 0x28]
mov qword [rax + 0xa8], 0
mov rcx, qword [0x140063230]
mov rcx, qword [rcx]
mov rcx, qword [rcx + 0x98]
mov rax, qword [0x140063230]
mov rax, qword [rax]
mov rax, qword [rax + 0x98]
mov rax, qword [rax + 0x20]
mov rcx, qword [rcx + 0x18]
sub rcx, rax
mov rax, qword [rsp + 0x28]
mov qword [rax + 0xa0], rcx
mov rcx, qword [0x140063230]
mov rcx, qword [rcx]
mov rcx, qword [rcx + 0x98]
mov rcx, qword [rcx + 0x18]
mov rax, qword [rsp + 0x28]
mov qword [rcx + 0x10], rax
mov rcx, qword [rsp + 0x28]
add rcx, 0x98
mov rax, qword [0x140063230]
mov rax, qword [rax]
mov rax, qword [rax + 0x98]
mov qword [rax + 0x18], rcx
xor eax, eax
test eax, eax
jne 0x14001412d
mov rax, qword [0x140063230]
mov rax, qword [rax]
mov rax, qword [rax + 0x98]
mov ecx, dword [rax + 0x10]
add ecx, 1
mov rax, qword [0x140063230]
mov rax, qword [rax]
mov rax, qword [rax + 0x98]
mov dword [rax + 0x10], ecx
mov rax, qword [0x140063230]
mov rax, qword [rax]
mov rax, qword [rax + 0x98]
mov ecx, dword [rax + 8]
sub ecx, 1
mov eax, dword [rsp + 0x38]
and eax, ecx
mov dword [rsp + 0x50], eax
xor eax, eax
test eax, eax
jne 0x1400141ea
mov rcx, qword [0x140063230]
mov rcx, qword [rcx]
mov rcx, qword [rcx + 0x98]
mov eax, dword [rsp + 0x50]
imul rax, rax, 0x10
add rax, qword [rcx]
mov qword [rsp + 0x58], rax
mov rax, qword [rsp + 0x58]
mov ecx, dword [rax + 8]
add ecx, 1
mov rax, qword [rsp + 0x58]
mov dword [rax + 8], ecx
mov rcx, qword [rsp + 0x28]
mov rax, qword [rsp + 0x58]
mov rax, qword [rax]
mov qword [rcx + 0xb8], rax
mov rax, qword [rsp + 0x28]
mov qword [rax + 0xb0], 0
mov rax, qword [rsp + 0x58]
cmp qword [rax], 0
je 0x14001428c
mov rcx, qword [rsp + 0x28]
add rcx, 0x98
mov rax, qword [rsp + 0x58]
mov rax, qword [rax]
mov qword [rax + 0x18], rcx
mov rcx, qword [rsp + 0x28]
add rcx, 0x98
mov rax, qword [rsp + 0x58]
mov qword [rax], rcx
mov rax, qword [rsp + 0x58]
mov ecx, dword [rax + 0xc]
add ecx, 1
imul ecx, ecx, 0xa
mov rax, qword [rsp + 0x58]
cmp dword [rax + 8], ecx
jb 0x140014674
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x98]
cmp dword [rax + 0x34], 0
jne 0x140014674
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x98]
mov eax, dword [rax + 8]
shl eax, 1
mov ecx, eax
imul rcx, rcx, 0x10
call fcn.140001bc8
mov qword [rsp + 0x78], rax
cmp qword [rsp + 0x78], 0
jne 0x14001430a
mov ecx, 0xffffffff
call fcn.140002620
jmp 0x14001466a
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x98]
mov eax, dword [rax + 8]
shl eax, 1
mov r8d, eax
imul r8, r8, 0x10
xor edx, edx
mov rcx, qword [rsp + 0x78]
call fcn.140001c90
mov rdx, qword [rsp + 0x28]
mov rdx, qword [rdx + 0x98]
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x98]
mov ecx, dword [rax + 8]
lea ecx, [rcx + rcx - 1]
mov eax, dword [rdx + 0x10]
and eax, ecx
test eax, eax
je 0x140014363
mov dword [rsp + 0x144], 1
jmp 0x14001436e
mov dword [rsp + 0x144], 0
mov rdx, qword [rsp + 0x28]
mov rdx, qword [rdx + 0x98]
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x98]
mov eax, dword [rax + 0xc]
add eax, 1
mov cl, al
mov eax, dword [rdx + 0x10]
shr eax, cl
mov ecx, eax
add ecx, dword [rsp + 0x144]
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x98]
mov dword [rax + 0x28], ecx
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x98]
mov dword [rax + 0x2c], 0
mov dword [rsp + 0x70], 0
jmp 0x1400143d3
mov eax, dword [rsp + 0x70]
add eax, 1
mov dword [rsp + 0x70], eax
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x98]
mov eax, dword [rax + 8]
cmp dword [rsp + 0x70], eax
jae 0x14001457e
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x98]
mov ecx, dword [rsp + 0x70]
imul rcx, rcx, 0x10
mov rax, qword [rax]
mov rax, qword [rcx + rax]
mov qword [rsp + 0x80], rax
cmp qword [rsp + 0x80], 0
je 0x140014579
mov rax, qword [rsp + 0x80]
mov rax, qword [rax + 0x20]
mov qword [rsp + 0x68], rax
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x98]
mov ecx, dword [rax + 8]
lea ecx, [rcx + rcx - 1]
mov rax, qword [rsp + 0x80]
mov eax, dword [rax + 0x34]
and eax, ecx
mov dword [rsp + 0x60], eax
xor eax, eax
test eax, eax
jne 0x14001442f
mov ecx, dword [rsp + 0x60]
imul rcx, rcx, 0x10
mov rax, qword [rsp + 0x78]
add rax, rcx
mov qword [rsp + 0x88], rax
mov rax, qword [rsp + 0x88]
mov ecx, dword [rax + 8]
add ecx, 1
mov rax, qword [rsp + 0x88]
mov dword [rax + 8], ecx
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x98]
mov rcx, qword [rsp + 0x88]
mov eax, dword [rax + 0x28]
cmp dword [rcx + 8], eax
jbe 0x140014508
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x98]
mov ecx, dword [rax + 0x2c]
add ecx, 1
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x98]
mov dword [rax + 0x2c], ecx
mov rdx, qword [rsp + 0x28]
mov rdx, qword [rdx + 0x98]
mov rax, qword [rsp + 0x88]
mov ecx, dword [rax + 0xc]
imul ecx, dword [rdx + 0x28]
mov rax, qword [rsp + 0x88]
cmp dword [rax + 8], ecx
jbe 0x140014508
mov rax, qword [rsp + 0x88]
mov ecx, dword [rax + 0xc]
add ecx, 1
mov rax, qword [rsp + 0x88]
mov dword [rax + 0xc], ecx
mov rax, qword [rsp + 0x80]
mov qword [rax + 0x18], 0
mov rcx, qword [rsp + 0x80]
mov rax, qword [rsp + 0x88]
mov rax, qword [rax]
mov qword [rcx + 0x20], rax
mov rax, qword [rsp + 0x88]
cmp qword [rax], 0
je 0x140014554
mov rcx, qword [rsp + 0x88]
mov rcx, qword [rcx]
mov rax, qword [rsp + 0x80]
mov qword [rcx + 0x18], rax
mov rcx, qword [rsp + 0x88]
mov rax, qword [rsp + 0x80]
mov qword [rcx], rax
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0x80], rax
jmp 0x14001440f
jmp 0x1400143c8
mov rcx, qword [rsp + 0x28]
mov rcx, qword [rcx + 0x98]
mov rcx, qword [rcx]
call fcn.140001b88
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x98]
mov ecx, dword [rax + 8]
shl ecx, 1
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x98]
mov dword [rax + 8], ecx
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x98]
mov ecx, dword [rax + 0xc]
add ecx, 1
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x98]
mov dword [rax + 0xc], ecx
mov rcx, qword [rsp + 0x28]
mov rcx, qword [rcx + 0x98]
mov rax, qword [rsp + 0x78]
mov qword [rcx], rax
mov rcx, qword [rsp + 0x28]
mov rcx, qword [rcx + 0x98]
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x98]
mov eax, dword [rax + 0x10]
shr eax, 1
cmp dword [rcx + 0x2c], eax
jbe 0x140014624
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x98]
mov eax, dword [rax + 0x30]
add eax, 1
mov dword [rsp + 0x148], eax
jmp 0x14001462f
mov dword [rsp + 0x148], 0
mov rcx, qword [rsp + 0x28]
mov rcx, qword [rcx + 0x98]
mov eax, dword [rsp + 0x148]
mov dword [rcx + 0x30], eax
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x98]
cmp dword [rax + 0x30], 1
jbe 0x14001466a
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x98]
mov dword [rax + 0x34], 1
xor eax, eax
test eax, eax
jne 0x1400142d2
xor eax, eax
test eax, eax
jne 0x140014211
xor eax, eax
test eax, eax
jne 0x1400141bf
xor eax, eax
test eax, eax
jne 0x140013f61
xor eax, eax
test eax, eax
jne 0x140013969
xor eax, eax
test eax, eax
jne 0x14001469c
mov rax, qword [rsp + 0x28]
mov rax, qword [rax]
mov qword [rsp + 0x98], rax
mov dword [rsp + 0x90], 0xfeedbeef
mov dword [rsp + 0xa4], 0x9e3779b9
mov eax, dword [rsp + 0xa4]
mov dword [rsp + 0xa0], eax
mov rcx, qword [rsp + 0x28]
mov rcx, qword [rcx]
call fcn.140001ae0
mov dword [rsp + 0x94], eax
cmp dword [rsp + 0x94], 0xc
jb 0x140014a9a
mov rax, qword [rsp + 0x98]
movzx ecx, byte [rax]
mov rax, qword [rsp + 0x98]
movzx eax, byte [rax + 1]
shl eax, 8
add ecx, eax
mov rax, qword [rsp + 0x98]
movzx eax, byte [rax + 2]
shl eax, 0x10
add ecx, eax
mov rax, qword [rsp + 0x98]
movzx eax, byte [rax + 3]
shl eax, 0x18
add eax, dword [rsp + 0xa0]
add eax, ecx
mov dword [rsp + 0xa0], eax
mov rax, qword [rsp + 0x98]
movzx ecx, byte [rax + 4]
mov rax, qword [rsp + 0x98]
movzx eax, byte [rax + 5]
shl eax, 8
add ecx, eax
mov rax, qword [rsp + 0x98]
movzx eax, byte [rax + 6]
shl eax, 0x10
add ecx, eax
mov rax, qword [rsp + 0x98]
movzx eax, byte [rax + 7]
shl eax, 0x18
add eax, dword [rsp + 0xa4]
add eax, ecx
mov dword [rsp + 0xa4], eax
mov rax, qword [rsp + 0x98]
movzx ecx, byte [rax + 8]
mov rax, qword [rsp + 0x98]
movzx eax, byte [rax + 9]
shl eax, 8
add ecx, eax
mov rax, qword [rsp + 0x98]
movzx eax, byte [rax + 0xa]
shl eax, 0x10
add ecx, eax
mov rax, qword [rsp + 0x98]
movzx eax, byte [rax + 0xb]
shl eax, 0x18
add eax, dword [rsp + 0x90]
add eax, ecx
mov dword [rsp + 0x90], eax
mov ecx, dword [rsp + 0xa4]
mov eax, dword [rsp + 0xa0]
sub eax, ecx
mov dword [rsp + 0xa0], eax
mov ecx, dword [rsp + 0x90]
mov eax, dword [rsp + 0xa0]
sub eax, ecx
mov dword [rsp + 0xa0], eax
mov ecx, dword [rsp + 0x90]
shr ecx, 0xd
mov eax, dword [rsp + 0xa0]
xor eax, ecx
mov dword [rsp + 0xa0], eax
mov ecx, dword [rsp + 0x90]
mov eax, dword [rsp + 0xa4]
sub eax, ecx
mov dword [rsp + 0xa4], eax
mov ecx, dword [rsp + 0xa0]
mov eax, dword [rsp + 0xa4]
sub eax, ecx
mov dword [rsp + 0xa4], eax
mov ecx, dword [rsp + 0xa0]
shl ecx, 8
mov eax, dword [rsp + 0xa4]
xor eax, ecx
mov dword [rsp + 0xa4], eax
mov ecx, dword [rsp + 0xa0]
mov eax, dword [rsp + 0x90]
sub eax, ecx
mov dword [rsp + 0x90], eax
mov ecx, dword [rsp + 0xa4]
mov eax, dword [rsp + 0x90]
sub eax, ecx
mov dword [rsp + 0x90], eax
mov ecx, dword [rsp + 0xa4]
shr ecx, 0xd
mov eax, dword [rsp + 0x90]
xor eax, ecx
mov dword [rsp + 0x90], eax
mov ecx, dword [rsp + 0xa4]
mov eax, dword [rsp + 0xa0]
sub eax, ecx
mov dword [rsp + 0xa0], eax
mov ecx, dword [rsp + 0x90]
mov eax, dword [rsp + 0xa0]
sub eax, ecx
mov dword [rsp + 0xa0], eax
mov ecx, dword [rsp + 0x90]
shr ecx, 0xc
mov eax, dword [rsp + 0xa0]
xor eax, ecx
mov dword [rsp + 0xa0], eax
mov ecx, dword [rsp + 0x90]
mov eax, dword [rsp + 0xa4]
sub eax, ecx
mov dword [rsp + 0xa4], eax
mov ecx, dword [rsp + 0xa0]
mov eax, dword [rsp + 0xa4]
sub eax, ecx
mov dword [rsp + 0xa4], eax
mov ecx, dword [rsp + 0xa0]
shl ecx, 0x10
mov eax, dword [rsp + 0xa4]
xor eax, ecx
mov dword [rsp + 0xa4], eax
mov ecx, dword [rsp + 0xa0]
mov eax, dword [rsp + 0x90]
sub eax, ecx
mov dword [rsp + 0x90], eax
mov ecx, dword [rsp + 0xa4]
mov eax, dword [rsp + 0x90]
sub eax, ecx
mov dword [rsp + 0x90], eax
mov ecx, dword [rsp + 0xa4]
shr ecx, 5
mov eax, dword [rsp + 0x90]
xor eax, ecx
mov dword [rsp + 0x90], eax
mov ecx, dword [rsp + 0xa4]
mov eax, dword [rsp + 0xa0]
sub eax, ecx
mov dword [rsp + 0xa0], eax
mov ecx, dword [rsp + 0x90]
mov eax, dword [rsp + 0xa0]
sub eax, ecx
mov dword [rsp + 0xa0], eax
mov ecx, dword [rsp + 0x90]
shr ecx, 3
mov eax, dword [rsp + 0xa0]
xor eax, ecx
mov dword [rsp + 0xa0], eax
mov ecx, dword [rsp + 0x90]
mov eax, dword [rsp + 0xa4]
sub eax, ecx
mov dword [rsp + 0xa4], eax
mov ecx, dword [rsp + 0xa0]
mov eax, dword [rsp + 0xa4]
sub eax, ecx
mov dword [rsp + 0xa4], eax
mov ecx, dword [rsp + 0xa0]
shl ecx, 0xa
mov eax, dword [rsp + 0xa4]
xor eax, ecx
mov dword [rsp + 0xa4], eax
mov ecx, dword [rsp + 0xa0]
mov eax, dword [rsp + 0x90]
sub eax, ecx
mov dword [rsp + 0x90], eax
mov ecx, dword [rsp + 0xa4]
mov eax, dword [rsp + 0x90]
sub eax, ecx
mov dword [rsp + 0x90], eax
mov ecx, dword [rsp + 0xa4]
shr ecx, 0xf
mov eax, dword [rsp + 0x90]
xor eax, ecx
mov dword [rsp + 0x90], eax
xor eax, eax
test eax, eax
jne 0x1400147de
mov rax, qword [rsp + 0x98]
add rax, 0xc
mov qword [rsp + 0x98], rax
mov eax, dword [rsp + 0x94]
sub eax, 0xc
mov dword [rsp + 0x94], eax
jmp 0x1400146ea
mov rcx, qword [rsp + 0x28]
mov rcx, qword [rcx]
call fcn.140001ae0
mov r11, rax
mov eax, dword [rsp + 0x90]
add eax, r11d
mov dword [rsp + 0x90], eax
mov eax, dword [rsp + 0x94]
mov dword [rsp + 0x14c], eax
cmp dword [rsp + 0x14c], 6
ja 0x140014b2c
cmp dword [rsp + 0x14c], 6
je 0x140014c06
cmp dword [rsp + 0x14c], 1
je 0x140014c9e
cmp dword [rsp + 0x14c], 2
je 0x140014c7f
cmp dword [rsp + 0x14c], 3
je 0x140014c60
cmp dword [rsp + 0x14c], 4
je 0x140014c41
cmp dword [rsp + 0x14c], 5
je 0x140014c25
jmp 0x140014cb9
cmp dword [rsp + 0x14c], 7
je 0x140014be7
cmp dword [rsp + 0x14c], 8
je 0x140014bc8
cmp dword [rsp + 0x14c], 9
je 0x140014ba9
cmp dword [rsp + 0x14c], 0xa
je 0x140014b8a
cmp dword [rsp + 0x14c], 0xb
je 0x140014b6b
jmp 0x140014cb9
mov rax, qword [rsp + 0x98]
movzx ecx, byte [rax + 0xa]
shl ecx, 0x18
mov eax, dword [rsp + 0x90]
add eax, ecx
mov dword [rsp + 0x90], eax
mov rax, qword [rsp + 0x98]
movzx ecx, byte [rax + 9]
shl ecx, 0x10
mov eax, dword [rsp + 0x90]
add eax, ecx
mov dword [rsp + 0x90], eax
mov rax, qword [rsp + 0x98]
movzx ecx, byte [rax + 8]
shl ecx, 8
mov eax, dword [rsp + 0x90]
add eax, ecx
mov dword [rsp + 0x90], eax
mov rax, qword [rsp + 0x98]
movzx ecx, byte [rax + 7]
shl ecx, 0x18
mov eax, dword [rsp + 0xa4]
add eax, ecx
mov dword [rsp + 0xa4], eax
mov rax, qword [rsp + 0x98]
movzx ecx, byte [rax + 6]
shl ecx, 0x10
mov eax, dword [rsp + 0xa4]
add eax, ecx
mov dword [rsp + 0xa4], eax
mov rax, qword [rsp + 0x98]
movzx ecx, byte [rax + 5]
shl ecx, 8
mov eax, dword [rsp + 0xa4]
add eax, ecx
mov dword [rsp + 0xa4], eax
mov rax, qword [rsp + 0x98]
movzx ecx, byte [rax + 4]
mov eax, dword [rsp + 0xa4]
add eax, ecx
mov dword [rsp + 0xa4], eax
mov rax, qword [rsp + 0x98]
movzx ecx, byte [rax + 3]
shl ecx, 0x18
mov eax, dword [rsp + 0xa0]
add eax, ecx
mov dword [rsp + 0xa0], eax
mov rax, qword [rsp + 0x98]
movzx ecx, byte [rax + 2]
shl ecx, 0x10
mov eax, dword [rsp + 0xa0]
add eax, ecx
mov dword [rsp + 0xa0], eax
mov rax, qword [rsp + 0x98]
movzx ecx, byte [rax + 1]
shl ecx, 8
mov eax, dword [rsp + 0xa0]
add eax, ecx
mov dword [rsp + 0xa0], eax
mov rax, qword [rsp + 0x98]
movzx ecx, byte [rax]
mov eax, dword [rsp + 0xa0]
add eax, ecx
mov dword [rsp + 0xa0], eax
mov ecx, dword [rsp + 0xa4]
mov eax, dword [rsp + 0xa0]
sub eax, ecx
mov dword [rsp + 0xa0], eax
mov ecx, dword [rsp + 0x90]
mov eax, dword [rsp + 0xa0]
sub eax, ecx
mov dword [rsp + 0xa0], eax
mov ecx, dword [rsp + 0x90]
shr ecx, 0xd
mov eax, dword [rsp + 0xa0]
xor eax, ecx
mov dword [rsp + 0xa0], eax
mov ecx, dword [rsp + 0x90]
mov eax, dword [rsp + 0xa4]
sub eax, ecx
mov dword [rsp + 0xa4], eax
mov ecx, dword [rsp + 0xa0]
mov eax, dword [rsp + 0xa4]
sub eax, ecx
mov dword [rsp + 0xa4], eax
mov ecx, dword [rsp + 0xa0]
shl ecx, 8
mov eax, dword [rsp + 0xa4]
xor eax, ecx
mov dword [rsp + 0xa4], eax
mov ecx, dword [rsp + 0xa0]
mov eax, dword [rsp + 0x90]
sub eax, ecx
mov dword [rsp + 0x90], eax
mov ecx, dword [rsp + 0xa4]
mov eax, dword [rsp + 0x90]
sub eax, ecx
mov dword [rsp + 0x90], eax
mov ecx, dword [rsp + 0xa4]
shr ecx, 0xd
mov eax, dword [rsp + 0x90]
xor eax, ecx
mov dword [rsp + 0x90], eax
mov ecx, dword [rsp + 0xa4]
mov eax, dword [rsp + 0xa0]
sub eax, ecx
mov dword [rsp + 0xa0], eax
mov ecx, dword [rsp + 0x90]
mov eax, dword [rsp + 0xa0]
sub eax, ecx
mov dword [rsp + 0xa0], eax
mov ecx, dword [rsp + 0x90]
shr ecx, 0xc
mov eax, dword [rsp + 0xa0]
xor eax, ecx
mov dword [rsp + 0xa0], eax
mov ecx, dword [rsp + 0x90]
mov eax, dword [rsp + 0xa4]
sub eax, ecx
mov dword [rsp + 0xa4], eax
mov ecx, dword [rsp + 0xa0]
mov eax, dword [rsp + 0xa4]
sub eax, ecx
mov dword [rsp + 0xa4], eax
mov ecx, dword [rsp + 0xa0]
shl ecx, 0x10
mov eax, dword [rsp + 0xa4]
xor eax, ecx
mov dword [rsp + 0xa4], eax
mov ecx, dword [rsp + 0xa0]
mov eax, dword [rsp + 0x90]
sub eax, ecx
mov dword [rsp + 0x90], eax
mov ecx, dword [rsp + 0xa4]
mov eax, dword [rsp + 0x90]
sub eax, ecx
mov dword [rsp + 0x90], eax
mov ecx, dword [rsp + 0xa4]
shr ecx, 5
mov eax, dword [rsp + 0x90]
xor eax, ecx
mov dword [rsp + 0x90], eax
mov ecx, dword [rsp + 0xa4]
mov eax, dword [rsp + 0xa0]
sub eax, ecx
mov dword [rsp + 0xa0], eax
mov ecx, dword [rsp + 0x90]
mov eax, dword [rsp + 0xa0]
sub eax, ecx
mov dword [rsp + 0xa0], eax
mov ecx, dword [rsp + 0x90]
shr ecx, 3
mov eax, dword [rsp + 0xa0]
xor eax, ecx
mov dword [rsp + 0xa0], eax
mov ecx, dword [rsp + 0x90]
mov eax, dword [rsp + 0xa4]
sub eax, ecx
mov dword [rsp + 0xa4], eax
mov ecx, dword [rsp + 0xa0]
mov eax, dword [rsp + 0xa4]
sub eax, ecx
mov dword [rsp + 0xa4], eax
mov ecx, dword [rsp + 0xa0]
shl ecx, 0xa
mov eax, dword [rsp + 0xa4]
xor eax, ecx
mov dword [rsp + 0xa4], eax
mov ecx, dword [rsp + 0xa0]
mov eax, dword [rsp + 0x90]
sub eax, ecx
mov dword [rsp + 0x90], eax
mov ecx, dword [rsp + 0xa4]
mov eax, dword [rsp + 0x90]
sub eax, ecx
mov dword [rsp + 0x90], eax
mov ecx, dword [rsp + 0xa4]
shr ecx, 0xf
mov eax, dword [rsp + 0x90]
xor eax, ecx
mov dword [rsp + 0x90], eax
xor eax, eax
test eax, eax
jne 0x140014cb9
xor eax, eax
test eax, eax
jne 0x1400146a2
xor eax, eax
test eax, eax
jne 0x1400146a2
mov rcx, qword [rsp + 0x28]
mov eax, dword [rsp + 0x90]
mov dword [rcx + 0x5c], eax
mov rcx, qword [rsp + 0x28]
mov rax, qword [rsp + 0x28]
mov rax, qword [rax]
mov qword [rcx + 0x50], rax
mov rcx, qword [rsp + 0x28]
mov rcx, qword [rcx]
call fcn.140001ae0
mov r11, rax
mov rax, qword [rsp + 0x28]
mov dword [rax + 0x58], r11d
mov rax, qword [0x140063230]
cmp qword [rax + 8], 0
jne 0x1400150e6
mov rax, qword [rsp + 0x28]
mov qword [rax + 0x38], 0
mov rax, qword [rsp + 0x28]
mov qword [rax + 0x30], 0
mov ecx, 0x40
call fcn.140001bc8
mov r11, rax
mov rax, qword [rsp + 0x28]
mov qword [rax + 0x28], r11
mov rax, qword [rsp + 0x28]
cmp qword [rax + 0x28], 0
jne 0x140014ff5
mov ecx, 0xffffffff
call fcn.140002620
jmp 0x1400150c7
mov r8d, 0x40
xor edx, edx
mov rcx, qword [rsp + 0x28]
mov rcx, qword [rcx + 0x28]
call fcn.140001c90
mov rcx, qword [rsp + 0x28]
add rcx, 0x28
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x28]
mov qword [rax + 0x18], rcx
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x28]
mov dword [rax + 8], 0x20
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x28]
mov dword [rax + 0xc], 5
mov rcx, qword [rsp + 0x28]
add rcx, 0x28
sub rcx, qword [rsp + 0x28]
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x28]
mov qword [rax + 0x20], rcx
mov ecx, 0x200
call fcn.140001bc8
mov r11, rax
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x28]
mov qword [rax], r11
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x28]
mov dword [rax + 0x38], 0xa0111fe1
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x28]
cmp qword [rax], 0
jne 0x1400150ae
mov ecx, 0xffffffff
call fcn.140002620
mov rcx, qword [rsp + 0x28]
mov rcx, qword [rcx + 0x28]
call fcn.140001b88
jmp 0x1400150c7
mov rcx, qword [rsp + 0x28]
mov rcx, qword [rcx + 0x28]
mov r8d, 0x200
xor edx, edx
mov rcx, qword [rcx]
call fcn.140001c90
xor eax, eax
test eax, eax
jne 0x140014fc4
mov rcx, qword [0x140063230]
mov rax, qword [rsp + 0x28]
mov qword [rcx + 8], rax
jmp 0x14001517b
mov rax, qword [0x140063230]
mov rax, qword [rax + 8]
mov rcx, qword [rsp + 0x28]
mov rax, qword [rax + 0x28]
mov qword [rcx + 0x28], rax
mov rax, qword [rsp + 0x28]
mov qword [rax + 0x38], 0
mov rcx, qword [0x140063230]
mov rcx, qword [rcx + 8]
mov rcx, qword [rcx + 0x28]
mov rax, qword [0x140063230]
mov rax, qword [rax + 8]
mov rax, qword [rax + 0x28]
mov rax, qword [rax + 0x20]
mov rcx, qword [rcx + 0x18]
sub rcx, rax
mov rax, qword [rsp + 0x28]
mov qword [rax + 0x30], rcx
mov rcx, qword [0x140063230]
mov rcx, qword [rcx + 8]
mov rcx, qword [rcx + 0x28]
mov rcx, qword [rcx + 0x18]
mov rax, qword [rsp + 0x28]
mov qword [rcx + 0x10], rax
mov rcx, qword [rsp + 0x28]
add rcx, 0x28
mov rax, qword [0x140063230]
mov rax, qword [rax + 8]
mov rax, qword [rax + 0x28]
mov qword [rax + 0x18], rcx
xor eax, eax
test eax, eax
jne 0x1400150fe
mov rax, qword [0x140063230]
mov rax, qword [rax + 8]
mov rax, qword [rax + 0x28]
mov ecx, dword [rax + 0x10]
add ecx, 1
mov rax, qword [0x140063230]
mov rax, qword [rax + 8]
mov rax, qword [rax + 0x28]
mov dword [rax + 0x10], ecx
mov rax, qword [0x140063230]
mov rax, qword [rax + 8]
mov rax, qword [rax + 0x28]
mov ecx, dword [rax + 8]
sub ecx, 1
mov eax, dword [rsp + 0x90]
and eax, ecx
mov dword [rsp + 0xa8], eax
xor eax, eax
test eax, eax
jne 0x1400151a2
mov rcx, qword [0x140063230]
mov rcx, qword [rcx + 8]
mov rcx, qword [rcx + 0x28]
mov eax, dword [rsp + 0xa8]
imul rax, rax, 0x10
add rax, qword [rcx]
mov qword [rsp + 0xb0], rax
mov rax, qword [rsp + 0xb0]
mov ecx, dword [rax + 8]
add ecx, 1
mov rax, qword [rsp + 0xb0]
mov dword [rax + 8], ecx
mov rcx, qword [rsp + 0x28]
mov rax, qword [rsp + 0xb0]
mov rax, qword [rax]
mov qword [rcx + 0x48], rax
mov rax, qword [rsp + 0x28]
mov qword [rax + 0x40], 0
mov rax, qword [rsp + 0xb0]
cmp qword [rax], 0
je 0x140015252
mov rcx, qword [rsp + 0x28]
add rcx, 0x28
mov rax, qword [rsp + 0xb0]
mov rax, qword [rax]
mov qword [rax + 0x18], rcx
mov rcx, qword [rsp + 0x28]
add rcx, 0x28
mov rax, qword [rsp + 0xb0]
mov qword [rax], rcx
mov rax, qword [rsp + 0xb0]
mov ecx, dword [rax + 0xc]
add ecx, 1
imul ecx, ecx, 0xa
mov rax, qword [rsp + 0xb0]
cmp dword [rax + 8], ecx
jb 0x140015616
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x28]
cmp dword [rax + 0x34], 0
jne 0x140015616
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x28]
mov eax, dword [rax + 8]
shl eax, 1
mov ecx, eax
imul rcx, rcx, 0x10
call fcn.140001bc8
mov qword [rsp + 0xd0], rax
cmp qword [rsp + 0xd0], 0
jne 0x1400152d6
mov ecx, 0xffffffff
call fcn.140002620
jmp 0x14001560c
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x28]
mov eax, dword [rax + 8]
shl eax, 1
mov r8d, eax
imul r8, r8, 0x10
xor edx, edx
mov rcx, qword [rsp + 0xd0]
call fcn.140001c90
mov rdx, qword [rsp + 0x28]
mov rdx, qword [rdx + 0x28]
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x28]
mov ecx, dword [rax + 8]
lea ecx, [rcx + rcx - 1]
mov eax, dword [rdx + 0x10]
and eax, ecx
test eax, eax
je 0x140015329
mov dword [rsp + 0x150], 1
jmp 0x140015334
mov dword [rsp + 0x150], 0
mov rdx, qword [rsp + 0x28]
mov rdx, qword [rdx + 0x28]
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x28]
mov eax, dword [rax + 0xc]
add eax, 1
mov cl, al
mov eax, dword [rdx + 0x10]
shr eax, cl
mov ecx, eax
add ecx, dword [rsp + 0x150]
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x28]
mov dword [rax + 0x28], ecx
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x28]
mov dword [rax + 0x2c], 0
mov dword [rsp + 0xc8], 0
jmp 0x140015396
mov eax, dword [rsp + 0xc8]
add eax, 1
mov dword [rsp + 0xc8], eax
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x28]
mov eax, dword [rax + 8]
cmp dword [rsp + 0xc8], eax
jae 0x140015541
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x28]
mov ecx, dword [rsp + 0xc8]
imul rcx, rcx, 0x10
mov rax, qword [rax]
mov rax, qword [rcx + rax]
mov qword [rsp + 0xd8], rax
cmp qword [rsp + 0xd8], 0
je 0x14001553c
mov rax, qword [rsp + 0xd8]
mov rax, qword [rax + 0x20]
mov qword [rsp + 0xc0], rax
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x28]
mov ecx, dword [rax + 8]
lea ecx, [rcx + rcx - 1]
mov rax, qword [rsp + 0xd8]
mov eax, dword [rax + 0x34]
and eax, ecx
mov dword [rsp + 0xb8], eax
xor eax, eax
test eax, eax
jne 0x1400153f5
mov ecx, dword [rsp + 0xb8]
imul rcx, rcx, 0x10
mov rax, qword [rsp + 0xd0]
add rax, rcx
mov qword [rsp + 0xe0], rax
mov rax, qword [rsp + 0xe0]
mov ecx, dword [rax + 8]
add ecx, 1
mov rax, qword [rsp + 0xe0]
mov dword [rax + 8], ecx
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x28]
mov rcx, qword [rsp + 0xe0]
mov eax, dword [rax + 0x28]
cmp dword [rcx + 8], eax
jbe 0x1400154c8
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x28]
mov ecx, dword [rax + 0x2c]
add ecx, 1
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x28]
mov dword [rax + 0x2c], ecx
mov rdx, qword [rsp + 0x28]
mov rdx, qword [rdx + 0x28]
mov rax, qword [rsp + 0xe0]
mov ecx, dword [rax + 0xc]
imul ecx, dword [rdx + 0x28]
mov rax, qword [rsp + 0xe0]
cmp dword [rax + 8], ecx
jbe 0x1400154c8
mov rax, qword [rsp + 0xe0]
mov ecx, dword [rax + 0xc]
add ecx, 1
mov rax, qword [rsp + 0xe0]
mov dword [rax + 0xc], ecx
mov rax, qword [rsp + 0xd8]
mov qword [rax + 0x18], 0
mov rcx, qword [rsp + 0xd8]
mov rax, qword [rsp + 0xe0]
mov rax, qword [rax]
mov qword [rcx + 0x20], rax
mov rax, qword [rsp + 0xe0]
cmp qword [rax], 0
je 0x140015514
mov rcx, qword [rsp + 0xe0]
mov rcx, qword [rcx]
mov rax, qword [rsp + 0xd8]
mov qword [rcx + 0x18], rax
mov rcx, qword [rsp + 0xe0]
mov rax, qword [rsp + 0xd8]
mov qword [rcx], rax
mov rax, qword [rsp + 0xc0]
mov qword [rsp + 0xd8], rax
jmp 0x1400153d2
jmp 0x140015385
mov rcx, qword [rsp + 0x28]
mov rcx, qword [rcx + 0x28]
mov rcx, qword [rcx]
call fcn.140001b88
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x28]
mov ecx, dword [rax + 8]
shl ecx, 1
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x28]
mov dword [rax + 8], ecx
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x28]
mov ecx, dword [rax + 0xc]
add ecx, 1
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x28]
mov dword [rax + 0xc], ecx
mov rcx, qword [rsp + 0x28]
mov rcx, qword [rcx + 0x28]
mov rax, qword [rsp + 0xd0]
mov qword [rcx], rax
mov rcx, qword [rsp + 0x28]
mov rcx, qword [rcx + 0x28]
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x28]
mov eax, dword [rax + 0x10]
shr eax, 1
cmp dword [rcx + 0x2c], eax
jbe 0x1400155cf
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x28]
mov eax, dword [rax + 0x30]
add eax, 1
mov dword [rsp + 0x154], eax
jmp 0x1400155da
mov dword [rsp + 0x154], 0
mov rcx, qword [rsp + 0x28]
mov rcx, qword [rcx + 0x28]
mov eax, dword [rsp + 0x154]
mov dword [rcx + 0x30], eax
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x28]
cmp dword [rax + 0x30], 1
jbe 0x14001560c
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x28]
mov dword [rax + 0x34], 1
xor eax, eax
test eax, eax
jne 0x14001529b
xor eax, eax
test eax, eax
jne 0x1400151cd
xor eax, eax
test eax, eax
jne 0x14001517b
xor eax, eax
test eax, eax
jne 0x140014f5f
xor eax, eax
test eax, eax
jne 0x1400146a2
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 8]
mov qword [rsp + 0xf0], rax
mov dword [rsp + 0xe8], 0xfeedbeef
mov dword [rsp + 0xfc], 0x9e3779b9
mov eax, dword [rsp + 0xfc]
mov dword [rsp + 0xf8], eax
mov rcx, qword [rsp + 0x28]
mov rcx, qword [rcx + 8]
call fcn.140001ae0
mov dword [rsp + 0xec], eax
cmp dword [rsp + 0xec], 0xc
jb 0x140015a38
mov rax, qword [rsp + 0xf0]
movzx ecx, byte [rax]
mov rax, qword [rsp + 0xf0]
movzx eax, byte [rax + 1]
shl eax, 8
add ecx, eax
mov rax, qword [rsp + 0xf0]
movzx eax, byte [rax + 2]
shl eax, 0x10
add ecx, eax
mov rax, qword [rsp + 0xf0]
movzx eax, byte [rax + 3]
shl eax, 0x18
add eax, dword [rsp + 0xf8]
add eax, ecx
mov dword [rsp + 0xf8], eax
mov rax, qword [rsp + 0xf0]
movzx ecx, byte [rax + 4]
mov rax, qword [rsp + 0xf0]
movzx eax, byte [rax + 5]
shl eax, 8
add ecx, eax
mov rax, qword [rsp + 0xf0]
movzx eax, byte [rax + 6]
shl eax, 0x10
add ecx, eax
mov rax, qword [rsp + 0xf0]
movzx eax, byte [rax + 7]
shl eax, 0x18
add eax, dword [rsp + 0xfc]
add eax, ecx
mov dword [rsp + 0xfc], eax
mov rax, qword [rsp + 0xf0]
movzx ecx, byte [rax + 8]
mov rax, qword [rsp + 0xf0]
movzx eax, byte [rax + 9]
shl eax, 8
add ecx, eax
mov rax, qword [rsp + 0xf0]
movzx eax, byte [rax + 0xa]
shl eax, 0x10
add ecx, eax
mov rax, qword [rsp + 0xf0]
movzx eax, byte [rax + 0xb]
shl eax, 0x18
add eax, dword [rsp + 0xe8]
add eax, ecx
mov dword [rsp + 0xe8], eax
mov ecx, dword [rsp + 0xfc]
mov eax, dword [rsp + 0xf8]
sub eax, ecx
mov dword [rsp + 0xf8], eax
mov ecx, dword [rsp + 0xe8]
mov eax, dword [rsp + 0xf8]
sub eax, ecx
mov dword [rsp + 0xf8], eax
mov ecx, dword [rsp + 0xe8]
shr ecx, 0xd
mov eax, dword [rsp + 0xf8]
xor eax, ecx
mov dword [rsp + 0xf8], eax
mov ecx, dword [rsp + 0xe8]
mov eax, dword [rsp + 0xfc]
sub eax, ecx
mov dword [rsp + 0xfc], eax
mov ecx, dword [rsp + 0xf8]
mov eax, dword [rsp + 0xfc]
sub eax, ecx
mov dword [rsp + 0xfc], eax
mov ecx, dword [rsp + 0xf8]
shl ecx, 8
mov eax, dword [rsp + 0xfc]
xor eax, ecx
mov dword [rsp + 0xfc], eax
mov ecx, dword [rsp + 0xf8]
mov eax, dword [rsp + 0xe8]
sub eax, ecx
mov dword [rsp + 0xe8], eax
mov ecx, dword [rsp + 0xfc]
mov eax, dword [rsp + 0xe8]
sub eax, ecx
mov dword [rsp + 0xe8], eax
mov ecx, dword [rsp + 0xfc]
shr ecx, 0xd
mov eax, dword [rsp + 0xe8]
xor eax, ecx
mov dword [rsp + 0xe8], eax
mov ecx, dword [rsp + 0xfc]
mov eax, dword [rsp + 0xf8]
sub eax, ecx
mov dword [rsp + 0xf8], eax
mov ecx, dword [rsp + 0xe8]
mov eax, dword [rsp + 0xf8]
sub eax, ecx
mov dword [rsp + 0xf8], eax
mov ecx, dword [rsp + 0xe8]
shr ecx, 0xc
mov eax, dword [rsp + 0xf8]
xor eax, ecx
mov dword [rsp + 0xf8], eax
mov ecx, dword [rsp + 0xe8]
mov eax, dword [rsp + 0xfc]
sub eax, ecx
mov dword [rsp + 0xfc], eax
mov ecx, dword [rsp + 0xf8]
mov eax, dword [rsp + 0xfc]
sub eax, ecx
mov dword [rsp + 0xfc], eax
mov ecx, dword [rsp + 0xf8]
shl ecx, 0x10
mov eax, dword [rsp + 0xfc]
xor eax, ecx
mov dword [rsp + 0xfc], eax
mov ecx, dword [rsp + 0xf8]
mov eax, dword [rsp + 0xe8]
sub eax, ecx
mov dword [rsp + 0xe8], eax
mov ecx, dword [rsp + 0xfc]
mov eax, dword [rsp + 0xe8]
sub eax, ecx
mov dword [rsp + 0xe8], eax
mov ecx, dword [rsp + 0xfc]
shr ecx, 5
mov eax, dword [rsp + 0xe8]
xor eax, ecx
mov dword [rsp + 0xe8], eax
mov ecx, dword [rsp + 0xfc]
mov eax, dword [rsp + 0xf8]
sub eax, ecx
mov dword [rsp + 0xf8], eax
mov ecx, dword [rsp + 0xe8]
mov eax, dword [rsp + 0xf8]
sub eax, ecx
mov dword [rsp + 0xf8], eax
mov ecx, dword [rsp + 0xe8]
shr ecx, 3
mov eax, dword [rsp + 0xf8]
xor eax, ecx
mov dword [rsp + 0xf8], eax
mov ecx, dword [rsp + 0xe8]
mov eax, dword [rsp + 0xfc]
sub eax, ecx
mov dword [rsp + 0xfc], eax
mov ecx, dword [rsp + 0xf8]
mov eax, dword [rsp + 0xfc]
sub eax, ecx
mov dword [rsp + 0xfc], eax
mov ecx, dword [rsp + 0xf8]
shl ecx, 0xa
mov eax, dword [rsp + 0xfc]
xor eax, ecx
mov dword [rsp + 0xfc], eax
mov ecx, dword [rsp + 0xf8]
mov eax, dword [rsp + 0xe8]
sub eax, ecx
mov dword [rsp + 0xe8], eax
mov ecx, dword [rsp + 0xfc]
mov eax, dword [rsp + 0xe8]
sub eax, ecx
mov dword [rsp + 0xe8], eax
mov ecx, dword [rsp + 0xfc]
shr ecx, 0xf
mov eax, dword [rsp + 0xe8]
xor eax, ecx
mov dword [rsp + 0xe8], eax
xor eax, eax
test eax, eax
jne 0x14001577c
mov rax, qword [rsp + 0xf0]
add rax, 0xc
mov qword [rsp + 0xf0], rax
mov eax, dword [rsp + 0xec]
sub eax, 0xc
mov dword [rsp + 0xec], eax
jmp 0x140015688
mov rcx, qword [rsp + 0x28]
mov rcx, qword [rcx + 8]
call fcn.140001ae0
mov r11, rax
mov eax, dword [rsp + 0xe8]
add eax, r11d
mov dword [rsp + 0xe8], eax
mov eax, dword [rsp + 0xec]
mov dword [rsp + 0x158], eax
cmp dword [rsp + 0x158], 6
ja 0x140015acb
cmp dword [rsp + 0x158], 6
je 0x140015ba5
cmp dword [rsp + 0x158], 1
je 0x140015c3d
cmp dword [rsp + 0x158], 2
je 0x140015c1e
cmp dword [rsp + 0x158], 3
je 0x140015bff
cmp dword [rsp + 0x158], 4
je 0x140015be0
cmp dword [rsp + 0x158], 5
je 0x140015bc4
jmp 0x140015c58
cmp dword [rsp + 0x158], 7
je 0x140015b86
cmp dword [rsp + 0x158], 8
je 0x140015b67
cmp dword [rsp + 0x158], 9
je 0x140015b48
cmp dword [rsp + 0x158], 0xa
je 0x140015b29
cmp dword [rsp + 0x158], 0xb
je 0x140015b0a
jmp 0x140015c58
mov rax, qword [rsp + 0xf0]
movzx ecx, byte [rax + 0xa]
shl ecx, 0x18
mov eax, dword [rsp + 0xe8]
add eax, ecx
mov dword [rsp + 0xe8], eax
mov rax, qword [rsp + 0xf0]
movzx ecx, byte [rax + 9]
shl ecx, 0x10
mov eax, dword [rsp + 0xe8]
add eax, ecx
mov dword [rsp + 0xe8], eax
mov rax, qword [rsp + 0xf0]
movzx ecx, byte [rax + 8]
shl ecx, 8
mov eax, dword [rsp + 0xe8]
add eax, ecx
mov dword [rsp + 0xe8], eax
mov rax, qword [rsp + 0xf0]
movzx ecx, byte [rax + 7]
shl ecx, 0x18
mov eax, dword [rsp + 0xfc]
add eax, ecx
mov dword [rsp + 0xfc], eax
mov rax, qword [rsp + 0xf0]
movzx ecx, byte [rax + 6]
shl ecx, 0x10
mov eax, dword [rsp + 0xfc]
add eax, ecx
mov dword [rsp + 0xfc], eax
mov rax, qword [rsp + 0xf0]
movzx ecx, byte [rax + 5]
shl ecx, 8
mov eax, dword [rsp + 0xfc]
add eax, ecx
mov dword [rsp + 0xfc], eax
mov rax, qword [rsp + 0xf0]
movzx ecx, byte [rax + 4]
mov eax, dword [rsp + 0xfc]
add eax, ecx
mov dword [rsp + 0xfc], eax
mov rax, qword [rsp + 0xf0]
movzx ecx, byte [rax + 3]
shl ecx, 0x18
mov eax, dword [rsp + 0xf8]
add eax, ecx
mov dword [rsp + 0xf8], eax
mov rax, qword [rsp + 0xf0]
movzx ecx, byte [rax + 2]
shl ecx, 0x10
mov eax, dword [rsp + 0xf8]
add eax, ecx
mov dword [rsp + 0xf8], eax
mov rax, qword [rsp + 0xf0]
movzx ecx, byte [rax + 1]
shl ecx, 8
mov eax, dword [rsp + 0xf8]
add eax, ecx
mov dword [rsp + 0xf8], eax
mov rax, qword [rsp + 0xf0]
movzx ecx, byte [rax]
mov eax, dword [rsp + 0xf8]
add eax, ecx
mov dword [rsp + 0xf8], eax
mov ecx, dword [rsp + 0xfc]
mov eax, dword [rsp + 0xf8]
sub eax, ecx
mov dword [rsp + 0xf8], eax
mov ecx, dword [rsp + 0xe8]
mov eax, dword [rsp + 0xf8]
sub eax, ecx
mov dword [rsp + 0xf8], eax
mov ecx, dword [rsp + 0xe8]
shr ecx, 0xd
mov eax, dword [rsp + 0xf8]
xor eax, ecx
mov dword [rsp + 0xf8], eax
mov ecx, dword [rsp + 0xe8]
mov eax, dword [rsp + 0xfc]
sub eax, ecx
mov dword [rsp + 0xfc], eax
mov ecx, dword [rsp + 0xf8]
mov eax, dword [rsp + 0xfc]
sub eax, ecx
mov dword [rsp + 0xfc], eax
mov ecx, dword [rsp + 0xf8]
shl ecx, 8
mov eax, dword [rsp + 0xfc]
xor eax, ecx
mov dword [rsp + 0xfc], eax
mov ecx, dword [rsp + 0xf8]
mov eax, dword [rsp + 0xe8]
sub eax, ecx
mov dword [rsp + 0xe8], eax
mov ecx, dword [rsp + 0xfc]
mov eax, dword [rsp + 0xe8]
sub eax, ecx
mov dword [rsp + 0xe8], eax
mov ecx, dword [rsp + 0xfc]
shr ecx, 0xd
mov eax, dword [rsp + 0xe8]
xor eax, ecx
mov dword [rsp + 0xe8], eax
mov ecx, dword [rsp + 0xfc]
mov eax, dword [rsp + 0xf8]
sub eax, ecx
mov dword [rsp + 0xf8], eax
mov ecx, dword [rsp + 0xe8]
mov eax, dword [rsp + 0xf8]
sub eax, ecx
mov dword [rsp + 0xf8], eax
mov ecx, dword [rsp + 0xe8]
shr ecx, 0xc
mov eax, dword [rsp + 0xf8]
xor eax, ecx
mov dword [rsp + 0xf8], eax
mov ecx, dword [rsp + 0xe8]
mov eax, dword [rsp + 0xfc]
sub eax, ecx
mov dword [rsp + 0xfc], eax
mov ecx, dword [rsp + 0xf8]
mov eax, dword [rsp + 0xfc]
sub eax, ecx
mov dword [rsp + 0xfc], eax
mov ecx, dword [rsp + 0xf8]
shl ecx, 0x10
mov eax, dword [rsp + 0xfc]
xor eax, ecx
mov dword [rsp + 0xfc], eax
mov ecx, dword [rsp + 0xf8]
mov eax, dword [rsp + 0xe8]
sub eax, ecx
mov dword [rsp + 0xe8], eax
mov ecx, dword [rsp + 0xfc]
mov eax, dword [rsp + 0xe8]
sub eax, ecx
mov dword [rsp + 0xe8], eax
mov ecx, dword [rsp + 0xfc]
shr ecx, 5
mov eax, dword [rsp + 0xe8]
xor eax, ecx
mov dword [rsp + 0xe8], eax
mov ecx, dword [rsp + 0xfc]
mov eax, dword [rsp + 0xf8]
sub eax, ecx
mov dword [rsp + 0xf8], eax
mov ecx, dword [rsp + 0xe8]
mov eax, dword [rsp + 0xf8]
sub eax, ecx
mov dword [rsp + 0xf8], eax
mov ecx, dword [rsp + 0xe8]
shr ecx, 3
mov eax, dword [rsp + 0xf8]
xor eax, ecx
mov dword [rsp + 0xf8], eax
mov ecx, dword [rsp + 0xe8]
mov eax, dword [rsp + 0xfc]
sub eax, ecx
mov dword [rsp + 0xfc], eax
mov ecx, dword [rsp + 0xf8]
mov eax, dword [rsp + 0xfc]
sub eax, ecx
mov dword [rsp + 0xfc], eax
mov ecx, dword [rsp + 0xf8]
shl ecx, 0xa
mov eax, dword [rsp + 0xfc]
xor eax, ecx
mov dword [rsp + 0xfc], eax
mov ecx, dword [rsp + 0xf8]
mov eax, dword [rsp + 0xe8]
sub eax, ecx
mov dword [rsp + 0xe8], eax
mov ecx, dword [rsp + 0xfc]
mov eax, dword [rsp + 0xe8]
sub eax, ecx
mov dword [rsp + 0xe8], eax
mov ecx, dword [rsp + 0xfc]
shr ecx, 0xf
mov eax, dword [rsp + 0xe8]
xor eax, ecx
mov dword [rsp + 0xe8], eax
xor eax, eax
test eax, eax
jne 0x140015c58
xor eax, eax
test eax, eax
jne 0x14001563e
xor eax, eax
test eax, eax
jne 0x14001563e
mov rcx, qword [rsp + 0x28]
mov eax, dword [rsp + 0xe8]
mov dword [rcx + 0x94], eax
mov rcx, qword [rsp + 0x28]
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 8]
mov qword [rcx + 0x88], rax
mov rcx, qword [rsp + 0x28]
mov rcx, qword [rcx + 8]
call fcn.140001ae0
mov r11, rax
mov rax, qword [rsp + 0x28]
mov dword [rax + 0x90], r11d
mov rax, qword [0x140063230]
cmp qword [rax + 0x10], 0
jne 0x140016090
mov rax, qword [rsp + 0x28]
mov qword [rax + 0x70], 0
mov rax, qword [rsp + 0x28]
mov qword [rax + 0x68], 0
mov ecx, 0x40
call fcn.140001bc8
mov r11, rax
mov rax, qword [rsp + 0x28]
mov qword [rax + 0x60], r11
mov rax, qword [rsp + 0x28]
cmp qword [rax + 0x60], 0
jne 0x140015f9f
mov ecx, 0xffffffff
call fcn.140002620
jmp 0x140016071
mov r8d, 0x40
xor edx, edx
mov rcx, qword [rsp + 0x28]
mov rcx, qword [rcx + 0x60]
call fcn.140001c90
mov rcx, qword [rsp + 0x28]
add rcx, 0x60
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x60]
mov qword [rax + 0x18], rcx
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x60]
mov dword [rax + 8], 0x20
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x60]
mov dword [rax + 0xc], 5
mov rcx, qword [rsp + 0x28]
add rcx, 0x60
sub rcx, qword [rsp + 0x28]
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x60]
mov qword [rax + 0x20], rcx
mov ecx, 0x200
call fcn.140001bc8
mov r11, rax
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x60]
mov qword [rax], r11
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x60]
mov dword [rax + 0x38], 0xa0111fe1
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x60]
cmp qword [rax], 0
jne 0x140016058
mov ecx, 0xffffffff
call fcn.140002620
mov rcx, qword [rsp + 0x28]
mov rcx, qword [rcx + 0x60]
call fcn.140001b88
jmp 0x140016071
mov rcx, qword [rsp + 0x28]
mov rcx, qword [rcx + 0x60]
mov r8d, 0x200
xor edx, edx
mov rcx, qword [rcx]
call fcn.140001c90
xor eax, eax
test eax, eax
jne 0x140015f6e
mov rcx, qword [0x140063230]
mov rax, qword [rsp + 0x28]
mov qword [rcx + 0x10], rax
jmp 0x140016125
mov rax, qword [0x140063230]
mov rax, qword [rax + 0x10]
mov rcx, qword [rsp + 0x28]
mov rax, qword [rax + 0x60]
mov qword [rcx + 0x60], rax
mov rax, qword [rsp + 0x28]
mov qword [rax + 0x70], 0
mov rcx, qword [0x140063230]
mov rcx, qword [rcx + 0x10]
mov rcx, qword [rcx + 0x60]
mov rax, qword [0x140063230]
mov rax, qword [rax + 0x10]
mov rax, qword [rax + 0x60]
mov rax, qword [rax + 0x20]
mov rcx, qword [rcx + 0x18]
sub rcx, rax
mov rax, qword [rsp + 0x28]
mov qword [rax + 0x68], rcx
mov rcx, qword [0x140063230]
mov rcx, qword [rcx + 0x10]
mov rcx, qword [rcx + 0x60]
mov rcx, qword [rcx + 0x18]
mov rax, qword [rsp + 0x28]
mov qword [rcx + 0x10], rax
mov rcx, qword [rsp + 0x28]
add rcx, 0x60
mov rax, qword [0x140063230]
mov rax, qword [rax + 0x10]
mov rax, qword [rax + 0x60]
mov qword [rax + 0x18], rcx
xor eax, eax
test eax, eax
jne 0x1400160a8
mov rax, qword [0x140063230]
mov rax, qword [rax + 0x10]
mov rax, qword [rax + 0x60]
mov ecx, dword [rax + 0x10]
add ecx, 1
mov rax, qword [0x140063230]
mov rax, qword [rax + 0x10]
mov rax, qword [rax + 0x60]
mov dword [rax + 0x10], ecx
mov rax, qword [0x140063230]
mov rax, qword [rax + 0x10]
mov rax, qword [rax + 0x60]
mov ecx, dword [rax + 8]
sub ecx, 1
mov eax, dword [rsp + 0xe8]
and eax, ecx
mov dword [rsp + 0x100], eax
xor eax, eax
test eax, eax
jne 0x14001614c
mov rcx, qword [0x140063230]
mov rcx, qword [rcx + 0x10]
mov rcx, qword [rcx + 0x60]
mov eax, dword [rsp + 0x100]
imul rax, rax, 0x10
add rax, qword [rcx]
mov qword [rsp + 0x108], rax
mov rax, qword [rsp + 0x108]
mov ecx, dword [rax + 8]
add ecx, 1
mov rax, qword [rsp + 0x108]
mov dword [rax + 8], ecx
mov rcx, qword [rsp + 0x28]
mov rax, qword [rsp + 0x108]
mov rax, qword [rax]
mov qword [rcx + 0x80], rax
mov rax, qword [rsp + 0x28]
mov qword [rax + 0x78], 0
mov rax, qword [rsp + 0x108]
cmp qword [rax], 0
je 0x1400161ff
mov rcx, qword [rsp + 0x28]
add rcx, 0x60
mov rax, qword [rsp + 0x108]
mov rax, qword [rax]
mov qword [rax + 0x18], rcx
mov rcx, qword [rsp + 0x28]
add rcx, 0x60
mov rax, qword [rsp + 0x108]
mov qword [rax], rcx
mov rax, qword [rsp + 0x108]
mov ecx, dword [rax + 0xc]
add ecx, 1
imul ecx, ecx, 0xa
mov rax, qword [rsp + 0x108]
cmp dword [rax + 8], ecx
jb 0x1400165c3
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x60]
cmp dword [rax + 0x34], 0
jne 0x1400165c3
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x60]
mov eax, dword [rax + 8]
shl eax, 1
mov ecx, eax
imul rcx, rcx, 0x10
call fcn.140001bc8
mov qword [rsp + 0x128], rax
cmp qword [rsp + 0x128], 0
jne 0x140016283
mov ecx, 0xffffffff
call fcn.140002620
jmp 0x1400165b9
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x60]
mov eax, dword [rax + 8]
shl eax, 1
mov r8d, eax
imul r8, r8, 0x10
xor edx, edx
mov rcx, qword [rsp + 0x128]
call fcn.140001c90
mov rdx, qword [rsp + 0x28]
mov rdx, qword [rdx + 0x60]
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x60]
mov ecx, dword [rax + 8]
lea ecx, [rcx + rcx - 1]
mov eax, dword [rdx + 0x10]
and eax, ecx
test eax, eax
je 0x1400162d6
mov dword [rsp + 0x15c], 1
jmp 0x1400162e1
mov dword [rsp + 0x15c], 0
mov rdx, qword [rsp + 0x28]
mov rdx, qword [rdx + 0x60]
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x60]
mov eax, dword [rax + 0xc]
add eax, 1
mov cl, al
mov eax, dword [rdx + 0x10]
shr eax, cl
mov ecx, eax
add ecx, dword [rsp + 0x15c]
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x60]
mov dword [rax + 0x28], ecx
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x60]
mov dword [rax + 0x2c], 0
mov dword [rsp + 0x120], 0
jmp 0x140016343
mov eax, dword [rsp + 0x120]
add eax, 1
mov dword [rsp + 0x120], eax
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x60]
mov eax, dword [rax + 8]
cmp dword [rsp + 0x120], eax
jae 0x1400164ee
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x60]
mov ecx, dword [rsp + 0x120]
imul rcx, rcx, 0x10
mov rax, qword [rax]
mov rax, qword [rcx + rax]
mov qword [rsp + 0x130], rax
cmp qword [rsp + 0x130], 0
je 0x1400164e9
mov rax, qword [rsp + 0x130]
mov rax, qword [rax + 0x20]
mov qword [rsp + 0x118], rax
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x60]
mov ecx, dword [rax + 8]
lea ecx, [rcx + rcx - 1]
mov rax, qword [rsp + 0x130]
mov eax, dword [rax + 0x34]
and eax, ecx
mov dword [rsp + 0x110], eax
xor eax, eax
test eax, eax
jne 0x1400163a2
mov ecx, dword [rsp + 0x110]
imul rcx, rcx, 0x10
mov rax, qword [rsp + 0x128]
add rax, rcx
mov qword [rsp + 0x138], rax
mov rax, qword [rsp + 0x138]
mov ecx, dword [rax + 8]
add ecx, 1
mov rax, qword [rsp + 0x138]
mov dword [rax + 8], ecx
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x60]
mov rcx, qword [rsp + 0x138]
mov eax, dword [rax + 0x28]
cmp dword [rcx + 8], eax
jbe 0x140016475
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x60]
mov ecx, dword [rax + 0x2c]
add ecx, 1
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x60]
mov dword [rax + 0x2c], ecx
mov rdx, qword [rsp + 0x28]
mov rdx, qword [rdx + 0x60]
mov rax, qword [rsp + 0x138]
mov ecx, dword [rax + 0xc]
imul ecx, dword [rdx + 0x28]
mov rax, qword [rsp + 0x138]
cmp dword [rax + 8], ecx
jbe 0x140016475
mov rax, qword [rsp + 0x138]
mov ecx, dword [rax + 0xc]
add ecx, 1
mov rax, qword [rsp + 0x138]
mov dword [rax + 0xc], ecx
mov rax, qword [rsp + 0x130]
mov qword [rax + 0x18], 0
mov rcx, qword [rsp + 0x130]
mov rax, qword [rsp + 0x138]
mov rax, qword [rax]
mov qword [rcx + 0x20], rax
mov rax, qword [rsp + 0x138]
cmp qword [rax], 0
je 0x1400164c1
mov rcx, qword [rsp + 0x138]
mov rcx, qword [rcx]
mov rax, qword [rsp + 0x130]
mov qword [rcx + 0x18], rax
mov rcx, qword [rsp + 0x138]
mov rax, qword [rsp + 0x130]
mov qword [rcx], rax
mov rax, qword [rsp + 0x118]
mov qword [rsp + 0x130], rax
jmp 0x14001637f
jmp 0x140016332
mov rcx, qword [rsp + 0x28]
mov rcx, qword [rcx + 0x60]
mov rcx, qword [rcx]
call fcn.140001b88
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x60]
mov ecx, dword [rax + 8]
shl ecx, 1
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x60]
mov dword [rax + 8], ecx
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x60]
mov ecx, dword [rax + 0xc]
add ecx, 1
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x60]
mov dword [rax + 0xc], ecx
mov rcx, qword [rsp + 0x28]
mov rcx, qword [rcx + 0x60]
mov rax, qword [rsp + 0x128]
mov qword [rcx], rax
mov rcx, qword [rsp + 0x28]
mov rcx, qword [rcx + 0x60]
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x60]
mov eax, dword [rax + 0x10]
shr eax, 1
cmp dword [rcx + 0x2c], eax
jbe 0x14001657c
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x60]
mov eax, dword [rax + 0x30]
add eax, 1
mov dword [rsp + 0x160], eax
jmp 0x140016587
mov dword [rsp + 0x160], 0
mov rcx, qword [rsp + 0x28]
mov rcx, qword [rcx + 0x60]
mov eax, dword [rsp + 0x160]
mov dword [rcx + 0x30], eax
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x60]
cmp dword [rax + 0x30], 1
jbe 0x1400165b9
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x60]
mov dword [rax + 0x34], 1
xor eax, eax
test eax, eax
jne 0x140016248
xor eax, eax
test eax, eax
jne 0x140016177
xor eax, eax
test eax, eax
jne 0x140016125
xor eax, eax
test eax, eax
jne 0x140015efe
xor eax, eax
test eax, eax
jne 0x14001563e
mov rcx, qword [0x140063230]
add rcx, 0x18
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor eax, eax
test eax, eax
jne 0x1400165fc
mov rax, qword [rsp + 0x28]
add rsp, 0x178
ret