Function at 0x140001970
Capabilities:
Allocate or change rwx memory
Encode data using xor
Get file size
Read file on windows

Disassembly:
mov rax, rsp
push rbp
push rbx
push rsi
push rdi
push r14
lea rbp, [rax - 0x5f]
sub rsp, 0xc0
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
movaps xmmword [rax - 0x58], xmm8
mov rax, qword [0x14000b008]
xor rax, rsp
mov qword [rbp - 1], rax
mov rsi, r8
mov r14, rdx
xor ebx, ebx
xor r9d, r9d
mov qword [rsp + 0x30], rbx
xor r8d, r8d
mov dword [rsp + 0x28], 0x80
mov edx, 0x80000000
mov dword [rsp + 0x20], 3
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov rdi, rax
cmp rax, 0xffffffffffffffff
jne 0x140001d3d
mov esi, dword [0x14000b018]
lea edi, [rbx + 0x1f]
xor eax, eax
lea r11d, [rbx + 4]
mov word [rbp - 0x29], ax
xorps xmm0, xmm0
mov byte [rbp - 0x27], al
mov r8d, ebx
lea r10, [0x140000000]
movups xmmword [rbp - 0x49], xmm0
movups xmmword [rbp - 0x39], xmm0
cmp esi, 2
jl 0x140001b57
movdqa xmm0, xmmword [str.6666666666666666]
mov ecx, ebx
movdqa xmm5, xmmword [0x140009650]
movdqa xmm4, xmmword [0x1400096a0]
movdqa xmm7, xmmword [0x140009670]
movdqa xmmword [rbp - 0x19], xmm0
mov edx, dword [rbp - 0x19]
movd xmm6, r11d
movd xmm8, edi
movd xmm2, r8d
lea eax, [r8 + 4]
pshufd xmm2, xmm2, 0
lea rcx, [rcx + 8]
paddd xmm2, xmm5
movd xmm3, eax
movdqa xmm1, xmm2
pshufd xmm3, xmm3, 0
punpckldq xmm1, xmm2
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
paddd xmm3, xmm5
pmuldq xmm0, xmm4
add r8d, 8
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm6
movdqa xmm0, xmm1
psrld xmm0, xmm8
paddd xmm0, xmm1
pmulld xmm0, xmm7
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
movdqa xmm1, xmm3
pand xmm2, xmmword [0x140009680]
packuswb xmm2, xmm2
punpckldq xmm1, xmm3
pmuldq xmm1, xmm4
movd xmm0, edx
paddb xmm2, xmm0
movd xmm0, dword [rcx + r10 + 0x93a0]
pxor xmm2, xmm0
movdqa xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmm4
movd dword [rbp + rcx - 0x51], xmm2
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm6
movdqa xmm0, xmm1
psrld xmm0, xmm8
paddd xmm0, xmm1
pmulld xmm0, xmm7
psubd xmm3, xmm0
pshuflw xmm0, xmm3, 0xd8
pshufhw xmm1, xmm0, 0xd8
movd xmm0, edx
pshufd xmm2, xmm1, 0xd8
pand xmm2, xmmword [0x140009680]
packuswb xmm2, xmm2
paddb xmm2, xmm0
movd xmm0, dword [rcx + r10 + 0x93a4]
pxor xmm2, xmm0
movd dword [rbp + rcx - 0x4d], xmm2
cmp r8d, 0x20
jl 0x140001a42
cmp r8d, 0x23
jge 0x140001b9a
movsxd r9, r8d
nop word [rax + rax]
mov eax, 0x5397829d
lea r9, [r9 + 1]
imul r8d
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x31
movzx eax, r8b
inc r8d
sub al, cl
add al, 0x36
xor al, byte [r9 + r10 + 0x93a7]
mov byte [rbp + r9 - 0x4a], al
cmp r8d, 0x23
jl 0x140001b60
cmp byte [rbp - 0x27], bl
je 0x140001d2d
cmp esi, 2
jl 0x140001cf6
movdqa xmm0, xmmword [str.6666666666666666]
lea rcx, [rbp - 0x45]
movdqa xmm5, xmmword [0x140009650]
movdqa xmm4, xmmword [0x1400096a0]
movdqa xmm7, xmmword [0x140009670]
movdqa xmmword [rbp - 0x19], xmm0
mov edx, dword [rbp - 0x19]
movd xmm6, r11d
movd xmm8, edi
nop dword [rax]
nop word [rax + rax]
movd xmm2, ebx
lea eax, [rbx + 4]
pshufd xmm2, xmm2, 0
lea rcx, [rcx + 8]
paddd xmm2, xmm5
movd xmm3, eax
movdqa xmm1, xmm2
pshufd xmm3, xmm3, 0
punpckldq xmm1, xmm2
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
paddd xmm3, xmm5
pmuldq xmm0, xmm4
add ebx, 8
pmuldq xmm1, xmm4
mov eax, ebx
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm6
movdqa xmm0, xmm1
psrld xmm0, xmm8
paddd xmm0, xmm1
pmulld xmm0, xmm7
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
movdqa xmm1, xmm3
pand xmm2, xmmword [0x140009680]
packuswb xmm2, xmm2
punpckldq xmm1, xmm3
pmuldq xmm1, xmm4
movd xmm0, edx
paddb xmm2, xmm0
movd xmm0, dword [rcx - 0xc]
pxor xmm2, xmm0
movdqa xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmm4
movd dword [rcx - 0xc], xmm2
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm6
movdqa xmm0, xmm1
psrld xmm0, xmm8
paddd xmm0, xmm1
pmulld xmm0, xmm7
psubd xmm3, xmm0
pshuflw xmm0, xmm3, 0xd8
pshufhw xmm1, xmm0, 0xd8
movd xmm0, edx
pshufd xmm2, xmm1, 0xd8
pand xmm2, xmmword [0x140009680]
packuswb xmm2, xmm2
paddb xmm2, xmm0
movd xmm0, dword [rcx - 8]
pxor xmm2, xmm0
movd dword [rcx - 8], xmm2
cmp ebx, 0x20
jl 0x140001bf0
cmp eax, 0x23
jge 0x140001d2d
movsxd rax, ebx
lea r8, [rbp - 0x49]
add r8, rax
mov eax, 0x5397829d
lea r8, [r8 + 1]
imul ebx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x31
movzx eax, bl
inc ebx
sub al, cl
add al, 0x36
xor byte [r8 - 1], al
cmp ebx, 0x23
jl 0x140001d00
lea rcx, [rbp - 0x49]
call fcn.140001010
xor eax, eax
jmp 0x140002478
xor edx, edx
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetFileSize]
xor ecx, ecx
mov edx, eax
mov r8d, 0x3000
mov qword [rsi], rdx
lea r9d, [rcx + 0x40]
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov qword [r14], rax
test rax, rax
jne 0x1400020dd
mov esi, dword [0x14000b018]
lea edi, [rax + 0x1f]
mov qword [rbp - 0x29], rax
xorps xmm0, xmm0
mov dword [rbp - 0x21], eax
mov r8d, ebx
mov byte [rbp - 0x1d], al
lea r11d, [rax + 4]
lea r10, [0x140000000]
movups xmmword [rbp - 0x49], xmm0
movups xmmword [rbp - 0x39], xmm0
cmp esi, 2
jl 0x140001ef5
movdqa xmm0, xmmword [str.6666666666666666]
mov rcx, rbx
movdqa xmm5, xmmword [0x140009650]
movdqa xmm4, xmmword [0x1400096a0]
movdqa xmm7, xmmword [0x140009670]
movdqa xmmword [rbp - 0x19], xmm0
mov edx, dword [rbp - 0x19]
movd xmm6, r11d
movd xmm8, edi
nop word [rax + rax]
movd xmm2, r8d
lea eax, [r8 + 4]
pshufd xmm2, xmm2, 0
lea rcx, [rcx + 8]
paddd xmm2, xmm5
movd xmm3, eax
movdqa xmm1, xmm2
pshufd xmm3, xmm3, 0
punpckldq xmm1, xmm2
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
paddd xmm3, xmm5
pmuldq xmm0, xmm4
add r8d, 8
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm6
movdqa xmm0, xmm1
psrld xmm0, xmm8
paddd xmm0, xmm1
pmulld xmm0, xmm7
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
movdqa xmm1, xmm3
pand xmm2, xmmword [0x140009680]
packuswb xmm2, xmm2
punpckldq xmm1, xmm3
pmuldq xmm1, xmm4
movd xmm0, edx
paddb xmm2, xmm0
movd xmm0, dword [rcx + r10 + 0x93c8]
pxor xmm2, xmm0
movdqa xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmm4
movd dword [rbp + rcx - 0x51], xmm2
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm6
movdqa xmm0, xmm1
psrld xmm0, xmm8
paddd xmm0, xmm1
pmulld xmm0, xmm7
psubd xmm3, xmm0
pshuflw xmm0, xmm3, 0xd8
pshufhw xmm1, xmm0, 0xd8
movd xmm0, edx
pshufd xmm2, xmm1, 0xd8
pand xmm2, xmmword [0x140009680]
packuswb xmm2, xmm2
paddb xmm2, xmm0
movd xmm0, dword [rcx + r10 + 0x93cc]
pxor xmm2, xmm0
movd dword [rbp + rcx - 0x4d], xmm2
cmp r8d, 0x28
jl 0x140001de0
cmp r8d, 0x2d
jge 0x140001f3a
movsxd r9, r8d
nop dword [rax + rax]
mov eax, 0x5397829d
lea r9, [r9 + 1]
imul r8d
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x31
movzx eax, r8b
inc r8d
sub al, cl
add al, 0x36
xor al, byte [r9 + r10 + 0x93cf]
mov byte [rbp + r9 - 0x4a], al
cmp r8d, 0x2d
jl 0x140001f00
cmp byte [rbp - 0x1d], bl
je 0x1400020cd
cmp esi, 2
jl 0x140002096
movdqa xmm0, xmmword [str.6666666666666666]
lea rcx, [rbp - 0x45]
movdqa xmm5, xmmword [0x140009650]
movdqa xmm4, xmmword [0x1400096a0]
movdqa xmm7, xmmword [0x140009670]
movdqa xmmword [rbp - 0x19], xmm0
mov edx, dword [rbp - 0x19]
movd xmm6, r11d
movd xmm8, edi
nop dword [rax]
nop word [rax + rax]
movd xmm2, ebx
lea eax, [rbx + 4]
pshufd xmm2, xmm2, 0
lea rcx, [rcx + 8]
paddd xmm2, xmm5
movd xmm3, eax
movdqa xmm1, xmm2
pshufd xmm3, xmm3, 0
punpckldq xmm1, xmm2
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
paddd xmm3, xmm5
pmuldq xmm0, xmm4
add ebx, 8
pmuldq xmm1, xmm4
mov eax, ebx
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm6
movdqa xmm0, xmm1
psrld xmm0, xmm8
paddd xmm0, xmm1
pmulld xmm0, xmm7
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
movdqa xmm1, xmm3
pand xmm2, xmmword [0x140009680]
packuswb xmm2, xmm2
punpckldq xmm1, xmm3
pmuldq xmm1, xmm4
movd xmm0, edx
paddb xmm2, xmm0
movd xmm0, dword [rcx - 0xc]
pxor xmm2, xmm0
movdqa xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmm4
movd dword [rcx - 0xc], xmm2
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm6
movdqa xmm0, xmm1
psrld xmm0, xmm8
paddd xmm0, xmm1
pmulld xmm0, xmm7
psubd xmm3, xmm0
pshuflw xmm0, xmm3, 0xd8
pshufhw xmm1, xmm0, 0xd8
movd xmm0, edx
pshufd xmm2, xmm1, 0xd8
pand xmm2, xmmword [0x140009680]
packuswb xmm2, xmm2
paddb xmm2, xmm0
movd xmm0, dword [rcx - 8]
pxor xmm2, xmm0
movd dword [rcx - 8], xmm2
cmp ebx, 0x28
jl 0x140001f90
cmp eax, 0x2d
jge 0x1400020cd
movsxd rax, ebx
lea r8, [rbp - 0x49]
add r8, rax
mov eax, 0x5397829d
lea r8, [r8 + 1]
imul ebx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x31
movzx eax, bl
inc ebx
sub al, cl
add al, 0x36
xor byte [r8 - 1], al
cmp ebx, 0x2d
jl 0x1400020a0
lea rcx, [rbp - 0x49]
call fcn.140001010
xor eax, eax
jmp 0x140002478
mov r8d, dword [rsi]
lea r9, [rbp - 9]
mov rdx, rax
mov qword [rsp + 0x20], rbx
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x14000246a
mov esi, dword [0x14000b018]
lea r10, [0x140000000]
xor eax, eax
xorps xmm0, xmm0
mov word [rbp - 0x29], ax
mov r8d, ebx
mov byte [rbp - 0x27], al
movups xmmword [rbp - 0x49], xmm0
lea edi, [rax + 0x1f]
lea r11d, [rax + 4]
movups xmmword [rbp - 0x39], xmm0
cmp esi, 2
jl 0x140002285
movdqa xmm0, xmmword [str.6666666666666666]
mov rcx, rbx
movdqa xmm5, xmmword [0x140009650]
movdqa xmm4, xmmword [0x1400096a0]
movdqa xmm7, xmmword [0x140009670]
movdqa xmmword [rbp - 0x19], xmm0
mov edx, dword [rbp - 0x19]
movd xmm6, r11d
movd xmm8, edi
nop word [rax + rax]
movd xmm2, r8d
lea eax, [r8 + 4]
pshufd xmm2, xmm2, 0
lea rcx, [rcx + 8]
paddd xmm2, xmm5
movd xmm3, eax
movdqa xmm1, xmm2
pshufd xmm3, xmm3, 0
punpckldq xmm1, xmm2
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
paddd xmm3, xmm5
pmuldq xmm0, xmm4
add r8d, 8
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm6
movdqa xmm0, xmm1
psrld xmm0, xmm8
paddd xmm0, xmm1
pmulld xmm0, xmm7
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
movdqa xmm1, xmm3
pand xmm2, xmmword [0x140009680]
packuswb xmm2, xmm2
punpckldq xmm1, xmm3
pmuldq xmm1, xmm4
movd xmm0, edx
paddb xmm2, xmm0
movd xmm0, dword [rcx + r10 + 0x93f8]
pxor xmm2, xmm0
movdqa xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmm4
movd dword [rbp + rcx - 0x51], xmm2
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm6
movdqa xmm0, xmm1
psrld xmm0, xmm8
paddd xmm0, xmm1
pmulld xmm0, xmm7
psubd xmm3, xmm0
pshuflw xmm0, xmm3, 0xd8
pshufhw xmm1, xmm0, 0xd8
movd xmm0, edx
pshufd xmm2, xmm1, 0xd8
pand xmm2, xmmword [0x140009680]
packuswb xmm2, xmm2
paddb xmm2, xmm0
movd xmm0, dword [rcx + r10 + 0x93fc]
pxor xmm2, xmm0
movd dword [rbp + rcx - 0x4d], xmm2
cmp r8d, 0x20
jl 0x140002170
cmp r8d, 0x23
jge 0x1400022ca
movsxd r9, r8d
nop dword [rax + rax]
mov eax, 0x5397829d
lea r9, [r9 + 1]
imul r8d
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x31
movzx eax, r8b
inc r8d
sub al, cl
add al, 0x36
xor al, byte [r9 + r10 + 0x93ff]
mov byte [rbp + r9 - 0x4a], al
cmp r8d, 0x23
jl 0x140002290
cmp byte [rbp - 0x27], bl
je 0x14000245d
cmp esi, 2
jl 0x140002426
movdqa xmm0, xmmword [str.6666666666666666]
lea rcx, [rbp - 0x45]
movdqa xmm5, xmmword [0x140009650]
movdqa xmm4, xmmword [0x1400096a0]
movdqa xmm7, xmmword [0x140009670]
movdqa xmmword [rbp - 0x19], xmm0
mov edx, dword [rbp - 0x19]
movd xmm6, r11d
movd xmm8, edi
nop dword [rax]
nop word [rax + rax]
movd xmm2, ebx
lea eax, [rbx + 4]
pshufd xmm2, xmm2, 0
lea rcx, [rcx + 8]
paddd xmm2, xmm5
movd xmm3, eax
movdqa xmm1, xmm2
pshufd xmm3, xmm3, 0
punpckldq xmm1, xmm2
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
paddd xmm3, xmm5
pmuldq xmm0, xmm4
add ebx, 8
pmuldq xmm1, xmm4
mov eax, ebx
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm6
movdqa xmm0, xmm1
psrld xmm0, xmm8
paddd xmm0, xmm1
pmulld xmm0, xmm7
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
movdqa xmm1, xmm3
pand xmm2, xmmword [0x140009680]
packuswb xmm2, xmm2
punpckldq xmm1, xmm3
pmuldq xmm1, xmm4
movd xmm0, edx
paddb xmm2, xmm0
movd xmm0, dword [rcx - 0xc]
pxor xmm2, xmm0
movdqa xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmm4
movd dword [rcx - 0xc], xmm2
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm6
movdqa xmm0, xmm1
psrld xmm0, xmm8
paddd xmm0, xmm1
pmulld xmm0, xmm7
psubd xmm3, xmm0
pshuflw xmm0, xmm3, 0xd8
pshufhw xmm1, xmm0, 0xd8
movd xmm0, edx
pshufd xmm2, xmm1, 0xd8
pand xmm2, xmmword [0x140009680]
packuswb xmm2, xmm2
paddb xmm2, xmm0
movd xmm0, dword [rcx - 8]
pxor xmm2, xmm0
movd dword [rcx - 8], xmm2
cmp ebx, 0x20
jl 0x140002320
cmp eax, 0x23
jge 0x14000245d
movsxd rax, ebx
lea r8, [rbp - 0x49]
add r8, rax
mov eax, 0x5397829d
lea r8, [r8 + 1]
imul ebx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x31
movzx eax, bl
inc ebx
sub al, cl
add al, 0x36
xor byte [r8 - 1], al
cmp ebx, 0x23
jl 0x140002430
lea rcx, [rbp - 0x49]
call fcn.140001010
xor eax, eax
jmp 0x140002478
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 1
mov rcx, qword [rbp - 1]
xor rcx, rsp
call fcn.1400078d0
lea r11, [rsp + 0xc0]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
mov rsp, r11
pop r14
pop rdi
pop rsi
pop rbx
pop rbp
ret