Function at 0x14017d2f0
Capabilities:
Encode data using xor
Encrypt data using aes via x86 extensions
Query environment variable

Disassembly:
mov r11, rsp
push rbp
push rbx
push rsi
push rdi
lea rbp, [r11 - 0x2a8]
sub rsp, 0x388
mov rax, qword [0x140248318]
xor rax, rsp
mov qword [rbp + 0x1c0], rax
mov eax, dword [0x140247ae0]
mov rsi, rdx
mov qword [r11 + 0x20], r12
mov rdi, rcx
mov qword [r11 - 0x28], r13
xor r12d, r12d
mov qword [r11 - 0x30], r14
mov qword [r11 - 0x38], r15
movaps xmmword [r11 - 0x48], xmm6
movaps xmmword [r11 - 0x58], xmm7
movaps xmmword [r11 - 0x68], xmm8
movaps xmmword [r11 - 0x78], xmm9
movaps xmmword [r11 - 0x88], xmm10
movaps xmmword [r11 - 0x98], xmm11
movaps xmmword [r11 - 0xa8], xmm12
movaps xmmword [r11 - 0xb8], xmm13
mov qword [rsp + 0x60], r8
mov qword [rsp + 0x48], r12
cmp eax, 0xffffffff
jne 0x14017d3cd
lea rcx, str.MONERO_USE_SOFTWARE_AES
call qword [sym.imp.api_ms_win_crt_environment_l1_1_0.dll_getenv]
test rax, rax
jne 0x14017d396
mov dword [0x140247ae0], r12d
mov eax, r12d
jmp 0x14017d3cd
cmp byte [rax], 0x30
jne 0x14017d3a1
cmp byte [rax + 1], r12b
je 0x14017d3b2
cmp byte [rax], 0x6e
jne 0x14017d3be
cmp byte [rax + 1], 0x6f
jne 0x14017d3be
cmp byte [rax + 2], r12b
jne 0x14017d3be
mov dword [0x140247ae0], r12d
mov eax, r12d
jmp 0x14017d3cd
mov dword [0x140247ae0], 1
mov eax, 1
test eax, eax
jne 0x14017d406
mov ecx, dword [0x140247ae4]
test ecx, ecx
jns 0x14017d3fe
xor ecx, ecx
mov eax, 1
cpuid
and ecx, 0x2000000
mov dword [rsp + 0x70], eax
mov dword [0x140247ae4], ecx
test ecx, ecx
mov dword [rsp + 0x74], ebx
mov dword [rsp + 0x7c], edx
mov r14d, 1
jne 0x14017d409
mov r14d, r12d
mov rax, qword gs:[0x58]
mov ecx, dword [0x140256fa0]
mov r15d, 8
mov r13d, setsockopt
mov rbx, qword [rax + rcx*8]
mov qword [rsp + 0x40], rbx
mov rax, qword [r15 + rbx]
mov qword [rsp + 0x68], rax
test rax, rax
jne 0x14017d4fd
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
lea r8, [rsp + 0x30]
mov edx, 0x20
mov rcx, rax
call qword [sym.imp.ADVAPI32.dll_OpenProcessToken]
test eax, eax
je 0x14017d4bc
lea r8, [rsp + 0x74]
mov dword [rsp + 0x70], 1
lea rdx, str.SeLockMemoryPrivilege
mov dword [rsp + 0x7c], 2
xor ecx, ecx
call qword [sym.imp.ADVAPI32.dll_LookupPrivilegeValueA]
test eax, eax
je 0x14017d4bc
mov rcx, qword [rsp + 0x30]
lea r8, [rsp + 0x70]
mov qword [rsp + 0x28], r12
xor r9d, r9d
xor edx, edx
mov qword [rsp + 0x20], r12
call qword [sym.imp.ADVAPI32.dll_AdjustTokenPrivileges]
test eax, eax
je 0x14017d4bc
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x14017d4bc
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [r15 + rbx]
mov edx, 0x200000
mov r9d, 4
mov r8d, 0x20003000
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov qword [r15 + rbx], rax
mov dword [r13 + rbx], 1
test rax, rax
jne 0x14017d4fd
mov ecx, 0x200000
mov dword [r13 + rbx], r12d
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov qword [r15 + rbx], rax
movaps xmmword [rsp + 0x2e0], xmm14
lea rcx, [rbp - 0x80]
mov r8, rsi
movaps xmmword [rsp + 0x2d0], xmm15
mov rdx, rdi
call fcn.14016fe20
movups xmm6, xmmword [rbp - 0x40]
movups xmm7, xmmword [rbp - 0x30]
movups xmm8, xmmword [rbp - 0x20]
movups xmm9, xmmword [rbp - 0x10]
movups xmm10, xmmword [rbp]
movups xmm11, xmmword [rbp + 0x10]
movups xmm12, xmmword [rbp + 0x20]
movups xmm13, xmmword [rbp + 0x30]
movdqu xmmword [rbp + 0x50], xmm6
movdqu xmmword [rbp + 0x60], xmm7
movdqu xmmword [rbp + 0x70], xmm8
movdqu xmmword [rbp + 0x80], xmm9
movdqu xmmword [rbp + 0x90], xmm10
movdqu xmmword [rbp + 0xa0], xmm11
movdqu xmmword [rbp + 0xb0], xmm12
movdqu xmmword [rbp + 0xc0], xmm13
test r14d, r14d
je 0x14017d83b
lea rdx, [rbp + 0xd0]
lea rcx, [rbp - 0x80]
call fcn.14017c6b0
movdqa xmm0, xmmword [rbp + 0x160]
mov rcx, r12
movdqa xmm1, xmmword [rbp + 0x150]
movdqa xmm2, xmmword [rbp + 0x140]
movdqa xmm3, xmmword [rbp + 0x130]
movdqa xmm4, xmmword [rbp + 0x120]
movdqa xmm5, xmmword [rbp + 0x110]
movdqa xmm14, xmmword [rbp + 0x100]
movdqa xmm15, xmmword [rbp + 0xf0]
mov esi, 8
aesenc xmm6, xmmword [rbp + 0xd0]
aesenc xmm7, xmmword [rbp + 0xd0]
aesenc xmm8, xmmword [rbp + 0xd0]
aesenc xmm9, xmmword [rbp + 0xd0]
aesenc xmm10, xmmword [rbp + 0xd0]
aesenc xmm11, xmmword [rbp + 0xd0]
aesenc xmm12, xmmword [rbp + 0xd0]
aesenc xmm13, xmmword [rbp + 0xd0]
aesenc xmm6, xmmword [rbp + 0xe0]
aesenc xmm7, xmmword [rbp + 0xe0]
aesenc xmm8, xmmword [rbp + 0xe0]
aesenc xmm9, xmmword [rbp + 0xe0]
aesenc xmm10, xmmword [rbp + 0xe0]
aesenc xmm11, xmmword [rbp + 0xe0]
aesenc xmm12, xmmword [rbp + 0xe0]
aesenc xmm13, xmmword [rbp + 0xe0]
mov rax, qword [rsi + rbx]
aesenc xmm6, xmm15
aesenc xmm7, xmm15
aesenc xmm8, xmm15
aesenc xmm9, xmm15
aesenc xmm10, xmm15
aesenc xmm11, xmm15
aesenc xmm12, xmm15
aesenc xmm13, xmm15
aesenc xmm6, xmm14
aesenc xmm7, xmm14
aesenc xmm8, xmm14
aesenc xmm9, xmm14
aesenc xmm10, xmm14
aesenc xmm11, xmm14
aesenc xmm12, xmm14
aesenc xmm13, xmm14
aesenc xmm6, xmm5
aesenc xmm7, xmm5
aesenc xmm8, xmm5
aesenc xmm9, xmm5
aesenc xmm10, xmm5
aesenc xmm11, xmm5
aesenc xmm12, xmm5
aesenc xmm13, xmm5
aesenc xmm6, xmm4
aesenc xmm7, xmm4
aesenc xmm8, xmm4
aesenc xmm9, xmm4
aesenc xmm10, xmm4
aesenc xmm11, xmm4
aesenc xmm12, xmm4
aesenc xmm13, xmm4
aesenc xmm6, xmm3
aesenc xmm7, xmm3
aesenc xmm8, xmm3
aesenc xmm9, xmm3
aesenc xmm10, xmm3
aesenc xmm11, xmm3
aesenc xmm12, xmm3
aesenc xmm13, xmm3
aesenc xmm6, xmm2
aesenc xmm7, xmm2
aesenc xmm8, xmm2
aesenc xmm9, xmm2
aesenc xmm10, xmm2
aesenc xmm11, xmm2
aesenc xmm12, xmm2
aesenc xmm13, xmm2
aesenc xmm6, xmm1
aesenc xmm7, xmm1
aesenc xmm8, xmm1
aesenc xmm9, xmm1
aesenc xmm10, xmm1
aesenc xmm11, xmm1
aesenc xmm12, xmm1
aesenc xmm13, xmm1
aesenc xmm6, xmm0
aesenc xmm7, xmm0
aesenc xmm8, xmm0
aesenc xmm9, xmm0
aesenc xmm10, xmm0
aesenc xmm11, xmm0
aesenc xmm12, xmm0
aesenc xmm13, xmm0
movups xmmword [rax + rcx], xmm6
movups xmmword [rax + rcx + 0x10], xmm7
movups xmmword [rax + rcx + 0x20], xmm8
movups xmmword [rax + rcx + 0x30], xmm9
movups xmmword [rax + rcx + 0x40], xmm10
movups xmmword [rax + rcx + 0x50], xmm11
movups xmmword [rax + rcx + 0x60], xmm12
movups xmmword [rax + rcx + 0x70], xmm13
sub rcx, 0xffffffffffffff80
cmp rcx, 0x200000
jb 0x14017d5e4
jmp 0x14017d910
call fcn.14017f070
mov r8d, 0x20
mov qword [rsp + 0x48], rax
lea rdx, [rbp - 0x80]
mov rcx, rax
call fcn.14017f240
mov rsi, r12
nop word [rax + rax]
lea rbx, [rbp + 0x50]
mov edi, 8
nop dword [rax]
mov rax, qword [rsp + 0x48]
mov rdx, rbx
mov rcx, rbx
mov r8, qword [rax]
mov r8, qword [r8 + 0x18]
call fcn.14017c8e0
add rbx, 0x10
sub rdi, 1
jne 0x14017d870
movups xmm0, xmmword [rbp + 0x50]
movups xmm1, xmmword [rbp + 0x60]
mov rbx, qword [rsp + 0x40]
mov rax, qword [r15 + rbx]
movups xmmword [rax + rsi], xmm0
movups xmm0, xmmword [rbp + 0x70]
movups xmmword [rax + rsi + 0x10], xmm1
movups xmm1, xmmword [rbp + 0x80]
movups xmmword [rax + rsi + 0x20], xmm0
movups xmm0, xmmword [rbp + 0x90]
movups xmmword [rax + rsi + 0x30], xmm1
movups xmm1, xmmword [rbp + 0xa0]
movups xmmword [rax + rsi + 0x40], xmm0
movups xmm0, xmmword [rbp + 0xb0]
movups xmmword [rax + rsi + 0x50], xmm1
movups xmm1, xmmword [rbp + 0xc0]
movups xmmword [rax + rsi + 0x60], xmm0
movups xmmword [rax + rsi + 0x70], xmm1
sub rsi, 0xffffffffffffff80
cmp rsi, 0x200000
jb 0x14017d860
mov esi, 8
nop word [rax + rax]
mov rax, qword [rbp - 0x50]
mov r13d, 0x80000
xor rax, qword [rbp - 0x70]
mov r15, qword [rbp - 0x80]
xor r15, qword [rbp - 0x60]
mov r12, qword [rbp - 0x58]
xor r12, qword [rbp - 0x78]
mov qword [rsp + 0x50], rax
mov rax, qword [rbp - 0x68]
xor rax, qword [rbp - 0x48]
mov qword [rsp + 0x58], rax
movdqa xmm3, xmmword [rsp + 0x50]
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x38], r12
test r14d, r14d
je 0x14017dd06
movdqa xmm0, xmmword [rsp + 0x30]
nop
mov rax, qword [rsi + rbx]
mov rcx, r15
and ecx, 0x1ffff0
movdqu xmm1, xmmword [rax + rcx]
aesenc xmm1, xmm0
movq rdx, xmm1
movdqa xmm0, xmm1
pxor xmm0, xmm3
movdqa xmm3, xmm1
movdqu xmmword [rax + rcx], xmm0
mov rbx, qword [rsi + rbx]
mov rcx, rdx
and ecx, 0x1ffff0
add rbx, rcx
mov rax, qword [rbx]
mov rcx, qword [rbx + 8]
mov qword [rsp + 0x50], rax
mul rdx
mov qword [rsp + 0x58], rcx
add r15, rdx
add r12, rax
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x38], r12
movdqa xmm0, xmmword [rsp + 0x30]
pxor xmm0, xmmword [rsp + 0x50]
mov qword [rbx], r15
movdqa xmmword [rsp + 0x30], xmm0
mov qword [rbx + 8], r12
sub r13, 1
je 0x14017d9f4
mov r12, qword [rsp + 0x38]
mov r15, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x40]
jmp 0x14017d960
movups xmm6, xmmword [rbp - 0x40]
lea rdx, [rbp + 0xd0]
movups xmm7, xmmword [rbp - 0x30]
lea rcx, [rbp - 0x60]
movups xmm8, xmmword [rbp - 0x20]
movups xmm9, xmmword [rbp - 0x10]
movups xmm10, xmmword [rbp]
movups xmm11, xmmword [rbp + 0x10]
movups xmm12, xmmword [rbp + 0x20]
movups xmm13, xmmword [rbp + 0x30]
call fcn.14017c6b0
mov rdi, qword [rsp + 0x40]
mov r14d, 0x4000
movdqa xmm1, xmmword [rbp + 0x160]
movdqa xmm2, xmmword [rbp + 0x150]
movdqa xmm3, xmmword [rbp + 0x140]
mov rax, qword [rsi + rdi]
movdqa xmm4, xmmword [rbp + 0x130]
movdqa xmm5, xmmword [rbp + 0x120]
movdqa xmm14, xmmword [rbp + 0x110]
movdqa xmm15, xmmword [rbp + 0x100]
movdqu xmm0, xmmword [rax]
pxor xmm6, xmm0
aesenc xmm6, xmmword [rbp + 0xd0]
aesenc xmm6, xmmword [rbp + 0xe0]
aesenc xmm6, xmmword [rbp + 0xf0]
movdqu xmm0, xmmword [rax + 0x10]
aesenc xmm6, xmm15
pxor xmm7, xmm0
aesenc xmm7, xmmword [rbp + 0xd0]
aesenc xmm7, xmmword [rbp + 0xe0]
aesenc xmm7, xmmword [rbp + 0xf0]
movdqu xmm0, xmmword [rax + 0x20]
aesenc xmm7, xmm15
pxor xmm8, xmm0
aesenc xmm8, xmmword [rbp + 0xd0]
aesenc xmm8, xmmword [rbp + 0xe0]
aesenc xmm8, xmmword [rbp + 0xf0]
movdqu xmm0, xmmword [rax + 0x30]
aesenc xmm8, xmm15
pxor xmm9, xmm0
aesenc xmm9, xmmword [rbp + 0xd0]
aesenc xmm9, xmmword [rbp + 0xe0]
aesenc xmm9, xmmword [rbp + 0xf0]
movdqu xmm0, xmmword [rax + 0x40]
aesenc xmm9, xmm15
pxor xmm10, xmm0
aesenc xmm10, xmmword [rbp + 0xd0]
aesenc xmm10, xmmword [rbp + 0xe0]
aesenc xmm10, xmmword [rbp + 0xf0]
movdqu xmm0, xmmword [rax + 0x50]
aesenc xmm10, xmm15
pxor xmm11, xmm0
aesenc xmm11, xmmword [rbp + 0xd0]
aesenc xmm11, xmmword [rbp + 0xe0]
aesenc xmm11, xmmword [rbp + 0xf0]
movdqu xmm0, xmmword [rax + 0x60]
aesenc xmm11, xmm15
pxor xmm12, xmm0
aesenc xmm12, xmmword [rbp + 0xd0]
aesenc xmm12, xmmword [rbp + 0xe0]
aesenc xmm12, xmmword [rbp + 0xf0]
aesenc xmm11, xmm14
aesenc xmm6, xmm14
aesenc xmm7, xmm14
aesenc xmm8, xmm14
aesenc xmm9, xmm14
aesenc xmm10, xmm14
aesenc xmm11, xmm5
aesenc xmm6, xmm5
aesenc xmm7, xmm5
aesenc xmm8, xmm5
aesenc xmm9, xmm5
aesenc xmm10, xmm5
aesenc xmm11, xmm4
aesenc xmm6, xmm4
aesenc xmm7, xmm4
aesenc xmm8, xmm4
aesenc xmm9, xmm4
aesenc xmm10, xmm4
aesenc xmm12, xmm15
aesenc xmm11, xmm3
aesenc xmm6, xmm3
aesenc xmm7, xmm3
aesenc xmm8, xmm3
aesenc xmm9, xmm3
aesenc xmm10, xmm3
aesenc xmm12, xmm14
aesenc xmm11, xmm2
aesenc xmm6, xmm2
aesenc xmm7, xmm2
aesenc xmm8, xmm2
aesenc xmm9, xmm2
aesenc xmm10, xmm2
aesenc xmm12, xmm5
aesenc xmm11, xmm1
aesenc xmm6, xmm1
aesenc xmm7, xmm1
aesenc xmm8, xmm1
aesenc xmm9, xmm1
aesenc xmm10, xmm1
aesenc xmm12, xmm4
movdqu xmm0, xmmword [rax + 0x70]
lea rax, [rax + 0x80]
aesenc xmm12, xmm3
pxor xmm13, xmm0
aesenc xmm13, xmmword [rbp + 0xd0]
aesenc xmm13, xmmword [rbp + 0xe0]
aesenc xmm13, xmmword [rbp + 0xf0]
aesenc xmm13, xmm15
aesenc xmm13, xmm14
aesenc xmm13, xmm5
aesenc xmm13, xmm4
aesenc xmm13, xmm3
aesenc xmm13, xmm2
aesenc xmm12, xmm2
aesenc xmm13, xmm1
aesenc xmm12, xmm1
sub r14, 1
jne 0x14017da73
jmp 0x14017e054
movdqa xmm2, xmmword [rsp + 0x30]
nop dword [rax]
mov r14, qword [rsi + rbx]
mov rcx, r15
and ecx, 0x1ffff0
lea rbx, [0x140000000]
add r14, rcx
movdqu xmm1, xmmword [r14]
movd r8d, xmm1
movdqa xmm0, xmm1
psrldq xmm0, 0xc
movd edi, xmm0
movdqa xmm0, xmm1
psrldq xmm0, 8
movd r11d, xmm0
movdqa xmm0, xmm1
psrldq xmm0, 4
movd r10d, xmm0
movdqa xmm0, xmm2
mov eax, r11d
psrldq xmm0, 4
shr eax, 0x10
movzx ecx, al
mov eax, r10d
shr eax, 8
mov edx, edi
shr rdx, 0x18
movdqa xmmword [rsp + 0x70], xmm1
mov esi, dword [rbx + rdx*4 + 0x1f5ca0]
xor esi, dword [rbx + rcx*4 + 0x1f58a0]
movzx ecx, al
movq rax, xmm1
movzx edx, r10b
psrldq xmm1, 8
xor esi, dword [rbx + rcx*4 + 0x1f54a0]
mov r9d, dword [rbx + rdx*4 + 0x1f50a0]
movzx ecx, al
movd eax, xmm2
xor esi, dword [rbx + rcx*4 + 0x1f50a0]
xor esi, eax
mov eax, edi
shr eax, 0x10
movzx ecx, al
mov eax, r11d
shr eax, 8
xor r9d, dword [rbx + rcx*4 + 0x1f58a0]
movzx ecx, al
mov eax, r8d
shr rax, 0x18
xor r9d, dword [rbx + rcx*4 + 0x1f54a0]
xor r9d, dword [rbx + rax*4 + 0x1f5ca0]
movd eax, xmm0
movdqa xmm0, xmm2
psrldq xmm0, 8
xor r9d, eax
movq rax, xmm1
movzx edx, al
mov eax, edi
shr eax, 8
movzx ecx, al
mov eax, r10d
mov ebx, dword [rbx + rdx*4 + 0x1f50a0]
lea rdx, [0x140000000]
shr rax, 0x18
xor ebx, dword [rdx + rcx*4 + 0x1f54a0]
shr r10d, 0x10
xor ebx, dword [rdx + rax*4 + 0x1f5ca0]
mov eax, r8d
shr eax, 0x10
movzx ecx, al
movd eax, xmm0
xor ebx, dword [rdx + rcx*4 + 0x1f58a0]
xor ebx, eax
movzx ecx, dil
mov eax, r11d
shr rax, 0x18
mov edx, dword [rdx + rcx*4 + 0x1f50a0]
lea rcx, [0x140000000]
xor edx, dword [rcx + rax*4 + 0x1f5ca0]
movzx eax, r10b
xor edx, dword [rcx + rax*4 + 0x1f58a0]
shr r8d, 8
movzx eax, r8b
xor edx, dword [rcx + rax*4 + 0x1f54a0]
psrldq xmm2, 0xc
movd eax, xmm2
mov dword [rsp + 0x78], ebx
mov dword [rsp + 0x70], esi
xor edx, eax
mov dword [rsp + 0x74], r9d
mov rax, qword [rsp + 0x40]
mov dword [rsp + 0x7c], edx
movdqa xmm1, xmmword [rsp + 0x70]
movq rdx, xmm1
mov esi, 8
mov rcx, rdx
movdqa xmm0, xmm1
and ecx, 0x1ffff0
pxor xmm0, xmm3
movdqu xmmword [r14], xmm0
mov rbx, qword [rsi + rax]
add rbx, rcx
movdqa xmm3, xmm1
mov rax, qword [rbx]
mov rcx, qword [rbx + 8]
mov qword [rsp + 0x50], rax
mul rdx
mov qword [rsp + 0x58], rcx
add r15, rdx
add r12, rax
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x38], r12
movdqa xmm2, xmmword [rsp + 0x30]
pxor xmm2, xmmword [rsp + 0x50]
mov qword [rbx], r15
movdqa xmmword [rsp + 0x30], xmm2
mov qword [rbx + 8], r12
sub r13, 1
je 0x14017df2c
mov r12, qword [rsp + 0x38]
mov r15, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x40]
jmp 0x14017dd10
movups xmm0, xmmword [rbp - 0x40]
lea rdx, [rbp - 0x60]
movups xmm1, xmmword [rbp - 0x30]
mov r8d, 0x20
mov rcx, qword [rsp + 0x48]
movups xmmword [rbp + 0x50], xmm0
movups xmm0, xmmword [rbp - 0x20]
movups xmmword [rbp + 0x60], xmm1
movups xmm1, xmmword [rbp - 0x10]
movups xmmword [rbp + 0x70], xmm0
movups xmm0, xmmword [rbp]
movups xmmword [rbp + 0x80], xmm1
movups xmm1, xmmword [rbp + 0x10]
movups xmmword [rbp + 0x90], xmm0
movups xmm0, xmmword [rbp + 0x20]
movups xmmword [rbp + 0xa0], xmm1
movups xmm1, xmmword [rbp + 0x30]
movups xmmword [rbp + 0xb0], xmm0
movups xmmword [rbp + 0xc0], xmm1
call fcn.14017f240
lea rsi, [rbp + 0x58]
mov r15d, 8
mov r14d, 0x4000
neg rsi
mov qword [rsp + 0x30], r14
nop word [rax + rax]
mov r14, qword [rsp + 0x40]
lea rbx, [rbp + 0x50]
mov edi, 8
nop
mov rcx, qword [r15 + r14]
mov rdx, rbx
add rcx, rsi
mov rax, qword [rcx + rbx + 8]
xor qword [rbx], rax
mov rax, qword [rcx + rbx + 0x10]
mov rcx, rbx
xor qword [rbx + 8], rax
mov rax, qword [rsp + 0x48]
mov r8, qword [rax]
mov r8, qword [r8 + 0x18]
call fcn.14017c8e0
add rbx, 0x10
sub rdi, 1
jne 0x14017dfc0
sub rsi, 0xffffffffffffff80
sub qword [rsp + 0x30], 1
jne 0x14017dfb0
lea rcx, [rsp + 0x48]
call fcn.14017f170
movdqu xmm13, xmmword [rbp + 0xc0]
mov rdi, r14
movdqu xmm12, xmmword [rbp + 0xb0]
movdqu xmm11, xmmword [rbp + 0xa0]
movdqu xmm10, xmmword [rbp + 0x90]
movdqu xmm9, xmmword [rbp + 0x80]
movdqu xmm8, xmmword [rbp + 0x70]
movdqu xmm7, xmmword [rbp + 0x60]
movdqu xmm6, xmmword [rbp + 0x50]
mov esi, 8
lea rcx, [rbp - 0x80]
movups xmmword [rbp - 0x40], xmm6
movups xmmword [rbp - 0x30], xmm7
movups xmmword [rbp - 0x20], xmm8
movups xmmword [rbp - 0x10], xmm9
movups xmmword [rbp], xmm10
movups xmmword [rbp + 0x10], xmm11
movups xmmword [rbp + 0x20], xmm12
movups xmmword [rbp + 0x30], xmm13
call fcn.14016fe10
movzx eax, byte [rbp - 0x80]
lea rcx, [rbp - 0x80]
mov r8, qword [rsp + 0x60]
lea rbx, [0x140000000]
and eax, 3
mov edx, 0xc8
call qword [rbx + rax*8 + 0x1f60a0]
cmp qword [rsp + 0x68], 0
movaps xmm15, xmmword [rsp + 0x2d0]
movaps xmm14, xmmword [rsp + 0x2e0]
movaps xmm13, xmmword [rsp + 0x2f0]
movaps xmm12, xmmword [rsp + 0x300]
movaps xmm11, xmmword [rsp + 0x310]
movaps xmm10, xmmword [rsp + 0x320]
movaps xmm9, xmmword [rsp + 0x330]
movaps xmm8, xmmword [rsp + 0x340]
movaps xmm7, xmmword [rsp + 0x350]
movaps xmm6, xmmword [rsp + 0x360]
mov r15, qword [rsp + 0x370]
mov r14, qword [rsp + 0x378]
mov r13, qword [rsp + 0x380]
mov r12, qword [rsp + 0x3c8]
jne 0x14017e15b
mov rcx, qword [rsi + rdi]
test rcx, rcx
je 0x14017e15b
mov eax, 0x10
mov ebx, eax
cmp dword [rax + rdi], 0
jne 0x14017e144
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
jmp 0x14017e152
xor edx, edx
mov r8d, 0x8000
call qword [sym.imp.KERNEL32.dll_VirtualFree]
xor eax, eax
mov qword [rsi + rdi], rax
mov dword [rbx + rdi], eax
mov rcx, qword [rbp + 0x1c0]
xor rcx, rsp
call fcn.14018bc90
add rsp, 0x388
pop rdi
pop rsi
pop rbx
pop rbp
ret