Function at 0x140066fa0
Capabilities:
Encode data using xor
Get common file path
Link many functions at runtime

Disassembly:
mov rax, rsp
mov qword [rax + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0xae8]
sub rsp, 0xba8
movaps xmmword [rax - 0x58], xmm6
movaps xmmword [rax - 0x68], xmm7
movaps xmmword [rax - 0x78], xmm8
movaps xmmword [rax - 0x88], xmm9
movaps xmmword [rax - 0x98], xmm10
movaps xmmword [rax - 0xa8], xmm11
movaps xmmword [rax - 0xb8], xmm12
movaps xmmword [rax - 0xc8], xmm13
movaps xmmword [rax - 0xd8], xmm14
movsxd rax, dword [rcx + 0x3c]
add rcx, rax
mov qword [rsp + 0x68], rcx
lea rax, [rcx + 0x108]
je 0x14006c456
test rax, rax
je 0x14006c456
mov edi, 0x2dd7
xor ebx, ebx
nop word [rax + rax]
mov ecx, 0xea60
call fcn.1400740cc
mov ecx, ebx
mov rdx, rax
nop
cmp ecx, 0x1c
je 0x140067059
mov dword [rdx], 0x2036
inc ecx
add rdx, 4
cmp ecx, 0x3273
jb 0x140067040
mov rcx, rax
call fcn.1400740c4
sub rdi, 1
jne 0x140067030
lea rdx, [rbp + 0x810]
mov ecx, pe_nt_image_headers64
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
xor ecx, ecx
call fcn.14007bdf8
mov rcx, rax
call fcn.14007aab4
xor edx, edx
lea rcx, [rbp + 0x220]
mov r8d, 0x104
call fcn.140076590
mov byte [rbp - 0x5b], bl
lea rsi, [0x140000000]
mov edi, 5
nop dword [rax + rax]
call fcn.14007aa88
and eax, 0xf
lea rcx, [rbp + 0x220]
dec rcx
movzx eax, byte [rax + rsi + 0x496560]
mov byte [rbp - 0x5c], al
nop dword [rax]
cmp byte [rcx + 1], bl
lea rcx, [rcx + 1]
jne 0x1400670d0
lea r8, [rbp - 0x5c]
xor edx, edx
nop
movzx eax, byte [r8 + rdx]
mov byte [rcx + rdx], al
lea rdx, [rdx + 1]
test al, al
jne 0x1400670e0
sub rdi, 1
jne 0x1400670b0
mov edi, 0x2cc5
nop dword [rax + rax]
mov ecx, 0xea60
call fcn.1400740cc
mov ecx, ebx
mov rdx, rax
nop
cmp ecx, 0x5b
je 0x140067129
mov dword [rdx], 0x1da5
inc ecx
add rdx, 4
cmp ecx, 0x3284
jb 0x140067110
mov rcx, rax
call fcn.1400740c4
sub rdi, 1
jne 0x140067100
mov rcx, rbx
nop word [rax + rax]
movzx eax, word [rbp + rcx + 0x810]
mov word [rbp + rcx + 0x330], ax
lea rcx, [rcx + 2]
test ax, ax
jne 0x140067140
lea rcx, [rbp + 0x330]
sub rcx, 2
cmp word [rcx + 2], bx
lea rcx, [rcx + 2]
jne 0x140067164
lea rdi, [rbp + 0x220]
xor edx, edx
nop word [rax + rax]
movzx eax, word [rdi + rdx*2]
mov word [rcx + rdx*2], ax
lea rdx, [rdx + 1]
test ax, ax
jne 0x140067180
lea r8, [0x140422dd0]
mov word [rbp + 0x536], bx
lea rdx, [rbp + 0x330]
mov qword [rbp - 0x20], rbx
lea rcx, [rbp - 0x20]
call fcn.14007b7d0
mov r14d, dword [0x1404991fc]
mov r15, qword gs:[0x58]
mov edx, 0x20
mov r8d, 0x18
mov rax, qword [r15 + r14*8]
mov ecx, dword [rdx + rax]
test cl, 1
jne 0x140067224
or ecx, 1
lea rdi, [rbp + 0x160]
mov dword [rdx + rax], ecx
mov edx, ebx
mov ecx, r8d
add rcx, rax
mov rax, qword [0x140422c00]
mov qword [rbp + 0x160], rax
sub rdi, rcx
mov byte [rcx + 4], bl
nop dword [rax]
nop word [rax + rax]
mov eax, dword [rdi + rcx]
inc edx
mov dword [rcx], eax
lea rcx, [rcx + 4]
cmp edx, 1
jb 0x140067210
mov rax, qword [r15 + r14*8]
movsd xmm10, qword [0x140425c20]
xorps xmm9, xmm9
movsd xmm11, qword [0x140425c18]
movsd xmm12, qword [0x140425c10]
mov r12d, r8d
add r12, rax
mov qword [rbp + 0xb08], r12
cmp byte [r12 + 4], bl
jne 0x1400679ad
mov r13d, ebx
mov dword [rsp + 0x78], ebx
call fcn.1400660a0
movsx edi, al
call fcn.140066100
movsx ebx, al
call fcn.1400660d0
movsx esi, al
call fcn.140066070
movsx r14d, al
call fcn.140066090
movsx r15d, al
imul r15d, r14d
call fcn.1400660e0
movsd xmm8, qword [0x140425c28]
movsx r9d, al
lea eax, [r15 + r15*2]
mov dword [rbp + 0xaf8], r9d
mov qword [rbp - 0x70], r12
lea r10d, [r9 + rax*2]
mov dword [rbp + 0xb00], r10d
nop dword [rax]
movsx ecx, byte [0x140498d80]
imul ecx, edi
lea edx, [rcx + rcx*8]
movsx ecx, byte [0x140496592]
sub edx, ebx
add edx, esi
add ecx, edx
je 0x1400673dc
movsx edx, byte [0x140496592]
lea r8d, [r9 + r15*2]
movsx ecx, byte [0x140496596]
add edx, edx
sub ecx, edx
add r8d, r15d
xor edx, edx
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm8
movsd qword [rsp + 0x60], xmm0
movsx eax, byte [0x140496598]
movsx ecx, byte [0x140496597]
add eax, r8d
div ecx
movsx ecx, byte [0x140496590]
cmp eax, ecx
je 0x1400673a1
nop dword [rax]
movsx edx, byte [0x140498d80]
movsx ecx, byte [0x140496592]
imul edx, edi
shl edx, 3
sub edx, ebx
add edx, esi
add ecx, edx
je 0x1400673a1
movsd xmm1, qword [rsp + 0x60]
movd xmm0, r14d
addsd xmm1, xmm9
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
jp 0x14006b424
jne 0x14006b424
movsd xmm0, qword [rsp + 0x60]
addsd xmm0, xmm9
movsd qword [rsp + 0x60], xmm0
movsx eax, byte [0x140496598]
xor edx, edx
movsx ecx, byte [0x140496597]
add eax, r8d
div ecx
movsx ecx, byte [0x140496590]
cmp eax, ecx
jne 0x140067330
movsx ecx, byte [0x140496598]
lea edx, [r15 + r9]
lea eax, [rdx + r15*8]
xorps xmm0, xmm0
add eax, ecx
xor edx, edx
movsx ecx, byte [0x140496597]
div ecx
movsx ecx, byte [0x140496590]
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x60]
cvttsd2si eax, xmm0
xor dword [r12], eax
movsx eax, byte [0x140496598]
xor edx, edx
movsx ecx, byte [0x140496597]
add eax, r10d
div ecx
movsx ecx, byte [0x140496590]
cmp eax, ecx
je 0x14006784e
movsx ecx, byte [0x140498d80]
imul ecx, edi
lea eax, [rcx + rcx*4]
movsx ecx, byte [0x140496592]
lea edx, [rax + rax]
sub edx, ebx
add edx, esi
add ecx, edx
je 0x14006751c
movsx edx, byte [0x140496592]
lea r8d, [r9 + r15*2]
movsx ecx, byte [0x140496596]
add edx, edx
sub ecx, edx
add r8d, r15d
xor edx, edx
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm10
movsd qword [rsp + 0x60], xmm0
movsx eax, byte [0x140496598]
movsx ecx, byte [0x140496597]
add eax, r8d
div ecx
movsx ecx, byte [0x140496590]
cmp eax, ecx
je 0x1400674e1
nop
movsx edx, byte [0x140498d80]
movsx ecx, byte [0x140496592]
imul edx, edi
shl edx, 3
sub edx, ebx
add edx, esi
add ecx, edx
je 0x1400674e1
movsd xmm1, qword [rsp + 0x60]
movd xmm0, r14d
addsd xmm1, xmm9
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
jp 0x14006b492
jne 0x14006b492
movsd xmm0, qword [rsp + 0x60]
addsd xmm0, xmm9
movsd qword [rsp + 0x60], xmm0
movsx eax, byte [0x140496598]
xor edx, edx
movsx ecx, byte [0x140496597]
add eax, r8d
div ecx
movsx ecx, byte [0x140496590]
cmp eax, ecx
jne 0x140067470
movsx ecx, byte [0x140496598]
lea edx, [r15 + r9]
lea eax, [rdx + r15*8]
xorps xmm0, xmm0
add eax, ecx
xor edx, edx
movsx ecx, byte [0x140496597]
div ecx
movsx ecx, byte [0x140496590]
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x60]
cvttsd2si eax, xmm0
xor dword [r12], eax
movsx ecx, byte [0x140498d80]
imul ecx, edi
lea edx, [rcx + rcx*4]
movsx ecx, byte [0x140496592]
sub edx, ebx
add edx, esi
add ecx, edx
je 0x14006763c
movsx edx, byte [0x140496592]
lea r8d, [r9 + r15*2]
movsx ecx, byte [0x140496596]
add edx, edx
sub ecx, edx
add r8d, r15d
xor edx, edx
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm11
movsd qword [rsp + 0x60], xmm0
movsx eax, byte [0x140496598]
movsx ecx, byte [0x140496597]
add eax, r8d
div ecx
movsx ecx, byte [0x140496590]
cmp eax, ecx
je 0x140067601
nop dword [rax + rax]
movsx edx, byte [0x140498d80]
movsx ecx, byte [0x140496592]
imul edx, edi
shl edx, 3
sub edx, ebx
add edx, esi
add ecx, edx
je 0x140067601
movsd xmm1, qword [rsp + 0x60]
movd xmm0, r14d
addsd xmm1, xmm9
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
jp 0x14006b4f2
jne 0x14006b4f2
movsd xmm0, qword [rsp + 0x60]
addsd xmm0, xmm9
movsd qword [rsp + 0x60], xmm0
movsx eax, byte [0x140496598]
xor edx, edx
movsx ecx, byte [0x140496597]
add eax, r8d
div ecx
movsx ecx, byte [0x140496590]
cmp eax, ecx
jne 0x140067590
movsx ecx, byte [0x140496598]
lea edx, [r15 + r9]
lea eax, [rdx + r15*8]
xorps xmm0, xmm0
add eax, ecx
xor edx, edx
movsx ecx, byte [0x140496597]
div ecx
movsx ecx, byte [0x140496590]
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x60]
cvttsd2si eax, xmm0
xor dword [r12], eax
movsx edx, byte [0x140496592]
lea eax, [r13 - 0x78]
movsx ecx, byte [0x140496596]
lea r12d, [r9 + r15*2]
add edx, edx
movd xmm7, eax
sub ecx, edx
add r12d, r15d
xor edx, edx
cvtdq2pd xmm7, xmm7
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm7
movsd qword [rsp + 0x60], xmm0
movsx eax, byte [0x140496598]
movsx ecx, byte [0x140496597]
add eax, r12d
div ecx
movsx ecx, byte [0x140496590]
cmp eax, ecx
je 0x140067711
nop dword [rax]
nop word [rax + rax]
movsx edx, byte [0x140498d80]
movsx ecx, byte [0x140496592]
imul edx, edi
shl edx, 3
sub edx, ebx
add edx, esi
add ecx, edx
je 0x140067711
movsd xmm1, qword [rsp + 0x60]
movd xmm0, r14d
addsd xmm1, xmm9
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
jp 0x14006b552
jne 0x14006b552
movsd xmm0, qword [rsp + 0x60]
addsd xmm0, xmm9
movsd qword [rsp + 0x60], xmm0
movsx eax, byte [0x140496598]
xor edx, edx
movsx ecx, byte [0x140496597]
add eax, r12d
div ecx
movsx ecx, byte [0x140496590]
cmp eax, ecx
jne 0x1400676a0
movsx ecx, byte [0x140496598]
lea edx, [r15 + r9]
lea eax, [rdx + r15*8]
xorps xmm0, xmm0
add eax, ecx
xor edx, edx
movsx ecx, byte [0x140496597]
div ecx
movsx ecx, byte [0x140496590]
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x60]
cvttsd2si r13d, xmm0
movsx edx, byte [0x140496592]
movsx ecx, byte [0x140496596]
add edx, edx
sub ecx, edx
xor edx, edx
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm7
movsd qword [rsp + 0x60], xmm0
movsx eax, byte [0x140496598]
movsx ecx, byte [0x140496597]
add eax, r12d
div ecx
movsx ecx, byte [0x140496590]
cmp eax, ecx
je 0x140067801
nop dword [rax]
movsx edx, byte [0x140498d80]
movsx ecx, byte [0x140496592]
imul edx, edi
shl edx, 3
sub edx, ebx
add edx, esi
add ecx, edx
je 0x140067801
movsd xmm1, qword [rsp + 0x60]
movd xmm0, r14d
addsd xmm1, xmm9
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
jp 0x14006b5b4
jne 0x14006b5b4
movsd xmm0, qword [rsp + 0x60]
addsd xmm0, xmm9
movsd qword [rsp + 0x60], xmm0
movsx eax, byte [0x140496598]
xor edx, edx
movsx ecx, byte [0x140496597]
add eax, r12d
div ecx
movsx ecx, byte [0x140496590]
cmp eax, ecx
jne 0x140067790
movsx ecx, byte [0x140496598]
lea edx, [r15 + r9]
lea eax, [rdx + r15*8]
xorps xmm0, xmm0
add eax, ecx
xor edx, edx
movsx ecx, byte [0x140496597]
div ecx
movsx ecx, byte [0x140496590]
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x60]
cvttsd2si ecx, xmm0
mov r12, qword [rbp - 0x70]
and ecx, dword [r12]
add ecx, ecx
sub r13d, ecx
add dword [r12], r13d
mov r13d, dword [rsp + 0x78]
movsx edx, byte [0x140498d80]
movsx ecx, byte [0x140496592]
imul edx, edi
sub edx, ebx
add edx, esi
add ecx, edx
je 0x14006796c
movsx edx, byte [0x140496592]
lea r8d, [r9 + r15*2]
movsx ecx, byte [0x140496596]
add edx, edx
sub ecx, edx
add r8d, r15d
xor edx, edx
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm12
movsd qword [rsp + 0x60], xmm0
movsx eax, byte [0x140496598]
movsx ecx, byte [0x140496597]
add eax, r8d
div ecx
movsx ecx, byte [0x140496590]
cmp eax, ecx
je 0x140067931
nop word [rax + rax]
movsx edx, byte [0x140498d80]
movsx ecx, byte [0x140496592]
imul edx, edi
shl edx, 3
sub edx, ebx
add edx, esi
add ecx, edx
je 0x140067931
movsd xmm1, qword [rsp + 0x60]
movd xmm0, r14d
addsd xmm1, xmm9
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
jp 0x14006b614
jne 0x14006b614
movsd xmm0, qword [rsp + 0x60]
addsd xmm0, xmm9
movsd qword [rsp + 0x60], xmm0
movsx eax, byte [0x140496598]
xor edx, edx
movsx ecx, byte [0x140496597]
add eax, r8d
div ecx
movsx ecx, byte [0x140496590]
cmp eax, ecx
jne 0x1400678c0
movsx ecx, byte [0x140496598]
lea edx, [r15 + r9]
lea eax, [rdx + r15*8]
xorps xmm0, xmm0
add eax, ecx
xor edx, edx
movsx ecx, byte [0x140496597]
div ecx
movsx ecx, byte [0x140496590]
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x60]
cvttsd2si eax, xmm0
xor dword [r12], eax
mov r10d, dword [rbp + 0xb00]
inc r13d
add r12, 4
mov dword [rsp + 0x78], r13d
mov qword [rbp - 0x70], r12
cmp r13d, 1
jb 0x1400672c0
mov r12, qword [rbp + 0xb08]
lea rsi, [0x140000000]
mov r14d, dword [0x1404991fc]
xor ebx, ebx
mov r15, qword gs:[0x58]
mov byte [r12 + 4], 1
lea rdx, [0x1404965b0]
mov eax, dword [r12]
lea rcx, [0x140498da0]
fist dword [rbx]
add byte [r9 - 0x48], al
add byte [rdx], dl
add byte [rax], al
movsd xmm6, qword [rsp + 0x60]
addsd xmm6, xmm9
call fcn.140066080
movsx ecx, al
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
ucomisd xmm6, xmm0
jp 0x14006b47a
jne 0x14006b47a
movsd xmm0, qword [rsp + 0x60]
mov r9d, dword [rbp + 0xaf8]
addsd xmm0, xmm9
movsd qword [rsp + 0x60], xmm0
movsd xmm1, qword [rsp + 0x60]
mov r10d, dword [rbp + 0xb00]
addsd xmm1, xmm9
cvttsd2si eax, xmm1
jmp 0x1400673d8
mov r9d, dword [rbp + 0xaf8]
mov eax, 4
mov r10d, dword [rbp + 0xb00]
jmp 0x1400673d8
movsd xmm6, qword [rsp + 0x60]
addsd xmm6, xmm9
call fcn.140066080
movsx ecx, al
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
ucomisd xmm6, xmm0
jp 0x14006b4e1
jne 0x14006b4e1
movsd xmm0, qword [rsp + 0x60]
mov r9d, dword [rbp + 0xaf8]
addsd xmm0, xmm9
movsd qword [rsp + 0x60], xmm0
movsd xmm1, qword [rsp + 0x60]
addsd xmm1, xmm9
cvttsd2si eax, xmm1
jmp 0x140067518
mov r9d, dword [rbp + 0xaf8]
mov eax, 4
jmp 0x140067518
movsd xmm6, qword [rsp + 0x60]
addsd xmm6, xmm9
call fcn.140066080
movsx ecx, al
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
ucomisd xmm6, xmm0
jp 0x14006b541
jne 0x14006b541
movsd xmm0, qword [rsp + 0x60]
mov r9d, dword [rbp + 0xaf8]
addsd xmm0, xmm9
movsd qword [rsp + 0x60], xmm0
movsd xmm1, qword [rsp + 0x60]
addsd xmm1, xmm9
cvttsd2si eax, xmm1
jmp 0x140067638
mov r9d, dword [rbp + 0xaf8]
mov eax, 4
jmp 0x140067638
movsd xmm6, qword [rsp + 0x60]
addsd xmm6, xmm9
call fcn.140066080
movsx ecx, al
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
ucomisd xmm6, xmm0
jp 0x14006b5a2
jne 0x14006b5a2
movsd xmm0, qword [rsp + 0x60]
mov r9d, dword [rbp + 0xaf8]
addsd xmm0, xmm9
movsd qword [rsp + 0x60], xmm0
movsd xmm1, qword [rsp + 0x60]
addsd xmm1, xmm9
cvttsd2si r13d, xmm1
jmp 0x140067749
mov r9d, dword [rbp + 0xaf8]
mov r13d, 4
jmp 0x140067749
movsd xmm6, qword [rsp + 0x60]
addsd xmm6, xmm9
call fcn.140066080
movsx ecx, al
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
ucomisd xmm6, xmm0
jp 0x14006b603
jne 0x14006b603
movsd xmm0, qword [rsp + 0x60]
mov r9d, dword [rbp + 0xaf8]
addsd xmm0, xmm9
movsd qword [rsp + 0x60], xmm0
movsd xmm1, qword [rsp + 0x60]
addsd xmm1, xmm9
cvttsd2si ecx, xmm1
jmp 0x140067838
mov r9d, dword [rbp + 0xaf8]
mov ecx, 4
jmp 0x140067838
movsd xmm6, qword [rsp + 0x60]
addsd xmm6, xmm9
call fcn.140066080
movsx ecx, al
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
ucomisd xmm6, xmm0
jp 0x14006b663
jne 0x14006b663
movsd xmm0, qword [rsp + 0x60]
mov r9d, dword [rbp + 0xaf8]
addsd xmm0, xmm9
movsd qword [rsp + 0x60], xmm0
movsd xmm1, qword [rsp + 0x60]
addsd xmm1, xmm9
cvttsd2si eax, xmm1
jmp 0x140067968
mov r9d, dword [rbp + 0xaf8]
mov eax, 4
jmp 0x140067968