Function at 0x140257594
Capabilities:
Encode data using xor
Get session user name
Parse pe header

Disassembly:
mov rax, rsp
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x618]
sub rsp, 0x748
mov qword [rbp + 0x80], 0xfffffffffffffffe
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
xor ecx, ecx
call qword [sym.imp.api_ms_win_crt_time_l1_1_0.dll__time64]
mov qword [rbp + 0x50], rax
lea rdx, [rbp + 0x50]
lea rcx, [rbp + 0x58]
call qword [sym.imp.api_ms_win_crt_time_l1_1_0.dll__localtime64_s]
mov ebx, 0x200
mov r8d, ebx
xor edx, edx
lea rcx, [rbp + 0x380]
call sub.VCRUNTIME140.dll_memset
mov r8d, ebx
xor edx, edx
lea rcx, [rbp + 0x180]
call sub.VCRUNTIME140.dll_memset
mov dword [rbp - 0x28], pe_nt_image_headers64
mov edx, 4
mov rax, qword gs:[0x58]
mov rcx, qword [rax]
mov esi, 0x64
xor ebx, ebx
lea r13d, [rsi + 0xe]
lea r14d, [rsi - 0x63]
lea r12d, [rsi - 0x62]
lea r15d, [rsi - 0x60]
mov eax, dword [rdx + rcx]
cmp dword [0x1402d845c], eax
jle 0x1402578af
lea rcx, [0x1402d845c]
call fcn.14027b540
or rdi, 0xffffffffffffffff
cmp dword [0x1402d845c], edi
jne 0x1402578af
lea rax, [rbp + 0x30]
mov qword [rbp + 0x88], rax
mov byte [rbp - 0x70], 0x54
mov byte [rbp - 0x6f], r13b
mov byte [rbp - 0x6e], 0x81
mov byte [rbp - 0x6d], 0x50
mov byte [rbp - 0x6c], 0x7c
mov byte [rbp - 0x6b], 0x7a
mov byte [rbp - 0x6a], 0x7d
mov byte [rbp - 0x69], 0x82
mov byte [rbp - 0x68], 0x81
mov byte [rbp - 0x67], r13b
mov byte [rbp - 0x66], 0x7f
mov byte [rbp - 0x65], 0x5b
mov byte [rbp - 0x64], 0x6e
mov byte [rbp - 0x63], 0x7a
mov byte [rbp - 0x62], r13b
mov byte [rbp - 0x61], sil
mov byte [rbp - 0x60], bl
mov al, byte [rbp - 0x70]
mov ecx, ebx
mov al, byte [rbp + rcx - 0x70]
sub al, 0xd
mov byte [rbp + rcx - 0x70], al
add rcx, r14
cmp rcx, 0x10
jb 0x1402576c7
mov qword [rbp + 0x30], rbx
mov qword [rbp + 0x40], rbx
mov r15d, 0xf
mov qword [rbp + 0x48], r15
lea rax, [rbp - 0x70]
mov rsi, rdi
inc rsi
cmp byte [rax + rsi], bl
jne 0x1402576f3
lea rcx, [rbp + 0x30]
cmp rsi, r15
ja 0x14025771b
mov qword [rbp + 0x40], rsi
mov r8, rsi
lea rdx, [rbp - 0x70]
call qword [sym.imp.VCRUNTIME140.dll_memmove]
mov byte [rbp + rsi + 0x30], bl
jmp 0x140257728
lea r9, [rbp - 0x70]
mov rdx, rsi
call fcn.1400ada10
nop
mov dword [rbp - 0x80], 0x22
mov eax, dword [rbp - 0x80]
xor al, 0x6b
mov byte [rbp - 0x7c], al
mov eax, dword [rbp - 0x80]
add al, r14b
xor al, 0x65
mov byte [rbp - 0x7b], al
mov eax, dword [rbp - 0x80]
add al, r12b
xor al, r13b
mov byte [rbp - 0x7a], al
mov eax, dword [rbp - 0x80]
add al, 3
xor al, 0x6e
mov byte [rbp - 0x79], al
mov eax, dword [rbp - 0x80]
add al, 4
xor al, 0x65
mov byte [rbp - 0x78], al
mov eax, dword [rbp - 0x80]
add al, 5
xor al, 0x6c
mov byte [rbp - 0x77], al
mov eax, dword [rbp - 0x80]
add al, 6
xor al, 0x33
mov byte [rbp - 0x76], al
mov eax, dword [rbp - 0x80]
add al, 7
xor al, 0x32
mov byte [rbp - 0x75], al
xor eax, eax
mov byte [rbp - 0x74], al
mov al, byte [rbp - 0x7c]
mov rdx, rbx
mov r12d, 8
mov al, byte [rbp + rdx - 0x7c]
mov ecx, dword [rbp - 0x80]
add cl, dl
xor cl, al
mov byte [rbp + rdx - 0x7c], cl
add rdx, r14
cmp rdx, r12
jb 0x140257791
mov byte [rbp - 0x74], bl
mov qword [rbp + 0x10], rbx
mov qword [rbp + 0x20], rbx
mov qword [rbp + 0x28], r15
mov byte [rbp + 0x10], bl
lea rax, [rbp - 0x7c]
mov r12d, 2
inc rdi
cmp byte [rax + rdi], bl
jne 0x1402577c4
lea rcx, [rbp + 0x10]
cmp rdi, r15
ja 0x1402577ec
mov qword [rbp + 0x20], rdi
mov r8, rdi
lea rdx, [rbp - 0x7c]
call qword [sym.imp.VCRUNTIME140.dll_memmove]
mov byte [rbp + rdi + 0x10], bl
jmp 0x1402577f9
lea r9, [rbp - 0x7c]
mov rdx, rdi
call fcn.1400ada10
nop
lea rdx, [rbp + 0x10]
lea rcx, [rbp + 0x160]
call fcn.1401a82ac
nop
mov qword [rsp + 0x20], rbx
mov r9b, r14b
lea r8, [rbp + 0x30]
mov rdx, rax
lea rcx, [0x1402d8c60]
call fcn.14025eed8
nop
mov rdx, qword [rbp + 0x28]
cmp rdx, 0x10
jb 0x140257864
inc rdx
mov rcx, qword [rbp + 0x10]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14025785f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14025785f
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.14027b384
mov qword [rbp + 0x20], rbx
mov qword [rbp + 0x28], r15
mov byte [rbp + 0x10], bl
xor edx, edx
lea r8d, [rdx + 9]
lea rcx, [rbp - 0x7c]
call qword [sym.imp.VCRUNTIME140.dll_memset]
nop
xor edx, edx
lea r8d, [rdx + 0x11]
lea rcx, [rbp - 0x70]
call qword [sym.imp.VCRUNTIME140.dll_memset]
lea rcx, [0x14028f720]
call fcn.14027b36c
nop
lea rcx, [0x1402d845c]
call fcn.14027b4e0
mov r15d, 4
lea rdx, [rbp - 0x28]
lea rcx, [rbp + 0x380]
call qword [sym.imp.ADVAPI32.dll_GetUserNameW]
mov dword [rbp - 0x28], pe_nt_image_headers64
lea rdi, [0x1402d8c78]
mov rcx, rdi
cmp qword [0x1402d8c90], 0x10
cmovae rcx, qword [0x1402d8c78]
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
test rax, rax
jne 0x140257917
mov rcx, rdi
cmp qword [0x1402d8c90], 0x10
cmovae rcx, qword [0x1402d8c78]
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov qword [0x1402d8c70], rax
mov r8, rax
mov rdx, rdi
call fcn.1400bc1a0
lea rdx, [rbp - 0x28]
lea rcx, [rbp + 0x180]
call qword [0x1402d8c68]
cmp dword [rbp + 0x6c], ebx
jle 0x140257e7b
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov edi, eax
mov dword [rbp - 0x4c], 0xd
mov ecx, dword [rbp - 0x4c]
xor cx, 0x5d
mov word [rbp - 0x48], cx
mov ecx, dword [rbp - 0x4c]
add cx, r14w
mov si, 0x20
xor cx, si
mov word [rbp - 0x46], cx
mov ecx, dword [rbp - 0x4c]
add cx, r12w
xor cx, 0x2d
mov word [rbp - 0x44], cx
mov eax, dword [rbp - 0x4c]
add ax, 3
xor ax, si
mov word [rbp - 0x42], ax
mov eax, dword [rbp - 0x4c]
add ax, r15w
xor ax, 0x50
mov word [rbp - 0x40], ax
mov eax, dword [rbp - 0x4c]
add ax, 5
xor ax, 0x49
mov word [rbp - 0x3e], ax
mov eax, dword [rbp - 0x4c]
add ax, 6
xor ax, 0x44
mov word [rbp - 0x3c], ax
mov eax, dword [rbp - 0x4c]
add ax, 7
xor ax, 0x3a
mov word [rbp - 0x3a], ax
mov eax, dword [rbp - 0x4c]
add ax, 8
xor ax, si
mov word [rbp - 0x38], ax
xor eax, eax
mov word [rbp - 0x36], ax
movzx eax, word [rbp - 0x48]
mov rdx, rbx
movzx eax, word [rbp + rdx*2 - 0x48]
mov ecx, dword [rbp - 0x4c]
add cx, dx
xor cx, ax
mov word [rbp + rdx*2 - 0x48], cx
add rdx, r14
cmp rdx, 9
jb 0x1402579d1
mov word [rbp - 0x36], bx
mov rdx, r12
lea rcx, [rbp + 0x100]
call qword [sym.imp.MSVCP140.dll_struct_std::_Smanip_long_long___int64_____cdecl_std::setw_long_long___int64__]
movups xmm8, xmmword [rax]
mov eax, 0x46
mov word [rbp + 0x638], ax
mov word [rbp + 0x63a], bx
movzx eax, word [rbp + 0x638]
movzx eax, word [rbp + 0x638]
sub ax, 0xc
mov word [rbp + 0x638], ax
mov rdx, r12
lea rcx, [rbp + 0x110]
call qword [sym.imp.MSVCP140.dll_struct_std::_Smanip_long_long___int64_____cdecl_std::setw_long_long___int64__]
movups xmm9, xmmword [rax]
mov eax, 0x3c
mov word [rbp + 0x630], ax
mov word [rbp + 0x632], bx
movzx eax, word [rbp + 0x630]
movzx eax, word [rbp + 0x630]
sub ax, r12w
mov word [rbp + 0x630], ax
mov rdx, r12
lea rcx, [rbp + 0x120]
call qword [sym.imp.MSVCP140.dll_struct_std::_Smanip_long_long___int64_____cdecl_std::setw_long_long___int64__]
movups xmm10, xmmword [rax]
mov dword [rbp - 0x34], 0x5a
mov eax, dword [rbp - 0x34]
xor ax, 0x2c
mov word [rbp - 0x30], ax
mov eax, dword [rbp - 0x34]
add ax, r14w
xor ax, si
mov word [rbp - 0x2e], ax
xor eax, eax
mov word [rbp - 0x2c], ax
movzx eax, word [rbp - 0x30]
mov rdx, rbx
movzx eax, word [rbp + rdx*2 - 0x30]
mov ecx, dword [rbp - 0x34]
add cx, dx
xor cx, ax
mov word [rbp + rdx*2 - 0x30], cx
add rdx, r14
cmp rdx, r12
jb 0x140257ab2
mov word [rbp - 0x2c], bx
mov rdx, r12
lea rcx, [rbp + 0x130]
call qword [sym.imp.MSVCP140.dll_struct_std::_Smanip_long_long___int64_____cdecl_std::setw_long_long___int64__]
movups xmm6, xmmword [rax]
mov eax, 0x32
mov word [rbp + 0x628], ax
mov word [rbp + 0x62a], bx
movzx eax, word [rbp + 0x628]
movzx eax, word [rbp + 0x628]
sub ax, 5
mov word [rbp + 0x628], ax
mov rdx, r12
lea rcx, [rbp + 0x140]
call qword [sym.imp.MSVCP140.dll_struct_std::_Smanip_long_long___int64_____cdecl_std::setw_long_long___int64__]
movups xmm7, xmmword [rax]
mov esi, 0x34
mov word [rbp + 0x620], si
mov word [rbp + 0x622], bx
movzx eax, word [rbp + 0x620]
movzx eax, word [rbp + 0x620]
sub ax, 7
mov word [rbp + 0x620], ax
mov rdx, r15
lea rcx, [rbp + 0x150]
call qword [sym.imp.MSVCP140.dll_struct_std::_Smanip_long_long___int64_____cdecl_std::setw_long_long___int64__]
movups xmm0, xmmword [rax]
lea eax, [rsi - 0x10]
mov word [rbp - 0x54], ax
lea eax, [rsi + 0x2b]
mov word [rbp - 0x52], ax
mov word [rbp - 0x50], bx
movzx eax, word [rbp - 0x54]
mov rcx, rbx
movzx eax, word [rbp + rcx*2 - 0x54]
sub ax, r15w
mov word [rbp + rcx*2 - 0x54], ax
add rcx, r14
cmp rcx, r12
jb 0x140257b7b
mov dword [rbp - 0x5c], esi
mov eax, dword [rbp - 0x5c]
xor ax, 0x40
mov word [rbp - 0x58], ax
xor eax, eax
mov word [rbp - 0x56], ax
movzx eax, word [rbp - 0x58]
movzx eax, word [rbp - 0x58]
mov ecx, dword [rbp - 0x5c]
xor cx, ax
mov word [rbp - 0x58], cx
mov word [rbp - 0x56], bx
mov eax, 0x5e
mov word [rbp - 0x24], ax
mov eax, 0x31
mov word [rbp - 0x22], ax
mov eax, 0x60
mov word [rbp - 0x20], ax
lea edx, [rax - 0x3d]
mov word [rbp - 0x1e], dx
lea eax, [rdx + 0x30]
mov word [rbp - 0x1c], ax
mov word [rbp - 0x1a], r13w
lea eax, [rdx + 0x4c]
mov word [rbp - 0x18], ax
mov word [rbp - 0x16], r13w
lea eax, [rdx + 0x4e]
mov word [rbp - 0x14], ax
lea eax, [rdx + 0x49]
mov word [rbp - 0x12], ax
lea eax, [rdx + 0x55]
mov word [rbp - 0x10], ax
lea eax, [rdx + 0x4d]
mov word [rbp - 0xe], ax
mov word [rbp - 0xc], dx
lea eax, [rdx + 0x53]
mov word [rbp - 0xa], ax
lea ecx, [rdx + 0x54]
mov word [rbp - 8], cx
lea eax, [rdx + 0x41]
mov word [rbp - 6], ax
lea eax, [rdx + 0x52]
mov word [rbp - 4], ax
mov word [rbp - 2], cx
lea eax, [rdx + 0x45]
mov word [rbp], ax
lea eax, [rdx + 0x44]
mov word [rbp + 2], ax
lea eax, [rdx + 0x1a]
mov word [rbp + 4], ax
mov word [rbp + 6], dx
mov word [rbp + 8], bx
movzx eax, word [rbp - 0x24]
movzx eax, word [rbp + rbx*2 - 0x24]
sub ax, 3
mov word [rbp + rbx*2 - 0x24], ax
add rbx, r14
cmp rbx, 0x16
jb 0x140257c56
movdqu xmmword [rbp + 0xa0], xmm8
movdqu xmmword [rbp + 0xb0], xmm9
movdqu xmmword [rbp + 0xc0], xmm10
movdqu xmmword [rbp + 0xd0], xmm6
movdqu xmmword [rbp + 0xe0], xmm7
movdqu xmmword [rbp + 0xf0], xmm0
mov ecx, dword [rbp + 0x68]
inc ecx
mov edx, dword [rbp + 0x6c]
add edx, 0x76c
mov dword [rsp + 0xe8], edi
lea rax, [rbp - 0x48]
mov qword [rsp + 0xe0], rax
mov eax, dword [rbp + 0x58]
mov dword [rsp + 0xd8], eax
mov r8d, 0x30
mov word [rsp + 0xd0], r8w
lea rax, [rbp + 0xa0]
mov qword [rsp + 0xc8], rax
lea rax, [rbp + 0x638]
mov qword [rsp + 0xc0], rax
mov eax, dword [rbp + 0x5c]
mov dword [rsp + 0xb8], eax
mov word [rsp + 0xb0], r8w
lea rax, [rbp + 0xb0]
mov qword [rsp + 0xa8], rax
lea rax, [rbp + 0x630]
mov qword [rsp + 0xa0], rax
mov eax, dword [rbp + 0x60]
mov dword [rsp + 0x98], eax
mov word [rsp + 0x90], r8w
lea rax, [rbp + 0xc0]
mov qword [rsp + 0x88], rax
lea rax, [rbp - 0x30]
mov qword [rsp + 0x80], rax
mov eax, dword [rbp + 0x64]
mov dword [rsp + 0x78], eax
mov word [rsp + 0x70], r8w
lea rax, [rbp + 0xd0]
mov qword [rsp + 0x68], rax
lea rax, [rbp + 0x628]
mov qword [rsp + 0x60], rax
mov dword [rsp + 0x58], ecx
mov word [rsp + 0x50], r8w
lea rax, [rbp + 0xe0]
mov qword [rsp + 0x48], rax
lea rax, [rbp + 0x620]
mov qword [rsp + 0x40], rax
mov dword [rsp + 0x38], edx
mov word [rsp + 0x30], r8w
lea rax, [rbp + 0xf0]
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x54]
mov qword [rsp + 0x20], rax
lea r9, [rbp + 0x180]
lea r8, [rbp - 0x58]
lea rdx, [rbp + 0x380]
lea rcx, [rbp - 0x24]
call fcn.140279324
nop
xor edx, edx
lea r8d, [rdx + 0x2e]
lea rcx, [rbp - 0x24]
call qword [sym.imp.VCRUNTIME140.dll_memset]
nop
mov r8, r15
xor edx, edx
lea rcx, [rbp - 0x58]
call qword [sym.imp.VCRUNTIME140.dll_memset]
nop
mov ebx, 6
mov r8d, ebx
xor edx, edx
lea rcx, [rbp - 0x54]
call qword [sym.imp.VCRUNTIME140.dll_memset]
nop
mov r8, r15
xor edx, edx
lea rcx, [rbp + 0x620]
call qword [sym.imp.VCRUNTIME140.dll_memset]
nop
mov r8, r15
xor edx, edx
lea rcx, [rbp + 0x628]
call qword [sym.imp.VCRUNTIME140.dll_memset]
nop
mov r8d, ebx
xor edx, edx
lea rcx, [rbp - 0x30]
call qword [sym.imp.VCRUNTIME140.dll_memset]
nop
mov r8, r15
xor edx, edx
lea rcx, [rbp + 0x630]
call qword [sym.imp.VCRUNTIME140.dll_memset]
nop
mov r8, r15
xor edx, edx
lea rcx, [rbp + 0x638]
call qword [sym.imp.VCRUNTIME140.dll_memset]
nop
xor edx, edx
lea r8d, [rbx + 0xe]
lea rcx, [rbp - 0x48]
call qword [sym.imp.VCRUNTIME140.dll_memset]
lea r11, [rsp + 0x748]
movaps xmm6, xmmword [r11 - 0x18]
movaps xmm7, xmmword [r11 - 0x28]
movaps xmm8, xmmword [r11 - 0x38]
movaps xmm9, xmmword [r11 - 0x48]
movaps xmm10, xmmword [r11 - 0x58]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret