Function at 0x180058650
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x12e0]
mov eax, 0x13e0
call fcn.1800796d0
sub rsp, rax
mov rax, qword [0x180087e88]
xor rax, rsp
mov qword [rbp + 0x12d0], rax
mov r15d, r9d
mov dword [rbp - 0x64], r9d
mov rsi, r8
mov qword [rsp + 0x78], r8
mov qword [rbp - 0x80], rdx
mov r10, rcx
mov qword [rsp + 0x58], rcx
mov r11, qword [rbp + 0x1340]
mov qword [rsp + 0x68], r11
lea edi, [r9 + 0xb]
lea rcx, [0x180000000]
mov r14d, dword [rsp + 0x48]
mov r8d, dword [rsp + 0x48]
mov r13, qword [rsp + 0x78]
mov dword [rsp + 0x70], r14d
mov dword [rsp + 0x34], r8d
cmp r9d, edi
jae 0x180058968
lea ebx, [r9 - 0xd]
mov r12d, 0x6577
mov r9d, 0x5772
mov eax, dword [rsp + 0x48]
mov dword [rsp + 0x50], eax
mov rcx, qword [rsp + 0x78]
mov qword [rbp - 0x58], rcx
nop dword [rax + rax]
cmp ebx, 0x10
ja case.0x18005871b.6
lea r10, [0x180000000]
mov ecx, dword [r10 + rbx*4 + 0x58e08]
add rcx, r10
jmp rcx
mov byte [rbp + 0x2aa], 0
mov r8d, 4
lea rdx, [0x18007e380]
lea rcx, [rbp + 0x2b0]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcsncpy]
mov r11, qword [rsp + 0x68]
mov r8d, dword [rsp + 0x34]
mov rdx, qword [rbp - 0x80]
mov r9d, 0x5772
jmp case.0x18005871b.6
xor eax, eax
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rax
xor r9d, r9d
mov r8, r11
mov edx, 0x84
xor ecx, ecx
call fcn.180071c50
mov r14d, eax
mov dword [rsp + 0x70], eax
jmp 0x18005873e
movzx eax, word [0x18007e39a]
mov word [rbp + 0x2a3], ax
movzx eax, byte [0x18007e39c]
mov byte [rbp + 0x2a5], al
mov byte [rbp + 0x2a6], 0
jmp case.0x18005871b.6
mov dword [rbp - 0x50], 3
mov dword [rsp + 0x48], r14d
lea r8, [rbp - 0x50]
lea rdx, [rsp + 0x48]
mov ecx, 0xdc
call fcn.18006cdb0
mov dword [rsp + 0x50], eax
mov r11, qword [rsp + 0x68]
mov ecx, dword [r11 + 0x1c]
and ecx, 7
lea rdx, [rcx + rcx*2]
lea rax, [0x180000000]
cmp dword [rax + rdx*4 + 0x7b6b4], 0
jne 0x180058818
mov ecx, dword [r11 + 0x38]
cmp ecx, 1
jb 0x18005895e
dec ecx
and ecx, 1
mov rcx, qword [r11 + rcx*8 + 0x48]
mov qword [rbp - 0x58], rcx
mov r8d, dword [rsp + 0x34]
mov rdx, qword [rbp - 0x80]
mov r9d, 0x5772
jmp case.0x18005871b.6
mov eax, dword [r11]
and eax, 1
mov rcx, qword [r11 + rax*8 + 0x48]
mov qword [rbp - 0x58], rcx
mov r8d, dword [rsp + 0x34]
mov rdx, qword [rbp - 0x80]
mov r9d, 0x5772
jmp case.0x18005871b.6
mov word [rbp + 0x2a6], r12w
mov byte [rbp + 0x2a8], 0
jmp case.0x18005871b.6
mov word [rbp + 0x2a8], r9w
jmp case.0x18005871b.6
mov eax, dword [0x18007e3f4]
mov dword [rbp + 0x2b6], eax
movzx eax, word [0x18007e3f8]
mov word [rbp + 0x2ba], ax
jmp case.0x18005871b.6
mov dword [rsp + 0x20], 0x37
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, r11
call fcn.18006df20
mov r8d, eax
mov dword [rsp + 0x34], eax
test r14d, r14d
je 0x18005895e
test eax, eax
je 0x18005895e
mov r11, qword [rsp + 0x68]
mov rdx, qword [rbp - 0x80]
mov r9d, 0x5772
jmp case.0x18005871b.6
xor eax, eax
cmp dword [rdx], eax
setne al
mov dword [rdx], eax
jmp case.0x18005871b.6
lea r13, [rbp + 0x2d0]
jmp case.0x18005871b.6
movzx eax, word [0x18007e405]
mov word [rbp + 0x2a0], ax
movzx eax, byte [0x18007e407]
mov byte [rbp + 0x2a2], al
mov byte [rbp + 0x2a3], 0
inc ebx
lea eax, [rbx + 0xd]
cmp eax, edi
jb 0x180058700
mov r10, qword [rsp + 0x58]
mov edx, dword [rsp + 0x50]
lea rcx, [0x180000000]
lea r9d, [r15 + 0xc]
mov dword [rsp + 0x38], r9d
movzx ebx, byte [rsp + 0x30]
cmp r15d, r9d
jae case.0x18005895c.9
lea r12d, [r15 - 0xd]
mov dword [rbp - 0x60], r12d
movabs rdi, 0x6c006c0064
mov byte [rsp + 0x30], bl
nop dword [rax]
cmp r12d, 0xd
ja case.0x18005895c.5
mov ecx, dword [rcx + r12*4 + 0x58e4c]
lea rax, [0x180000000]
add rcx, rax
jmp rcx
movzx eax, byte [rsp + 0x30]
jmp 0x180058ddd
mov edx, dword [rsp + 0x48]
mov dword [rsp + 0x50], edx
mov rax, qword [rsp + 0x78]
mov qword [rbp - 0x58], rax
jmp 0x18005890c
xor edi, edi
mov eax, edi
mov dword [rbp - 0x68], eax
test r8d, r8d
je 0x180058b81
mov ebx, dword [rsp + 0x60]
nop
mov r8d, edi
mov dword [rsp + 0x40], edi
test r14d, r14d
je 0x180058b52
mov r9d, eax
imul r9d, edx
mov dword [rbp - 0x74], r9d
mov eax, edi
mov dword [rbp - 0x6c], eax
mov edx, edi
mov dword [rbp - 0x70], edx
add eax, edx
cmp eax, r14d
jae 0x180058b2e
mov ecx, 7
mov r14d, ILFree
sub cl, dl
mov dword [rbp - 0x78], ecx
cmp r14d, 0x97
je 0x180058af6
cmp r14d, 0x13e
jne 0x180058afc
mov r15d, edi
mov r12, rdi
cmp dword [r11 + 0x10], 0
jle 0x180058afc
nop dword [rax + rax]
mov esi, 0x12d
mov eax, esi
sub eax, 0x12c
je 0x180058a6e
cmp eax, 1
jne 0x180058ad5
add r9d, r8d
movzx r10d, cl
mov r8d, dword [r11 + 0x10]
sub r8d, r15d
mov edi, dword [rsp + 0x60]
nop dword [rax]
mov rax, qword [rbp - 0x58]
mov rax, qword [rax + r12*8]
movzx edx, byte [rax + r9]
movzx ecx, r10b
shr edx, cl
and edx, 1
mov rax, qword [rbp - 0x80]
mov eax, dword [rax]
and eax, edi
xor edx, eax
lea eax, [rdi + rdi]
mov edi, edx
or edi, eax
inc r15d
dec r8d
inc r12
test r8b, 7
jne 0x180058a30
mov dword [rsp + 0x60], edi
mov ebx, edi
jmp 0x180058ac9
mov byte [r13], bl
inc r13
lea rdx, [rbp + 0x2d0]
mov rax, r13
sub rax, rdx
cmp rax, 0x1000
jne 0x180058ad5
mov edi, 0x1e
nop
mov eax, edi
sub eax, 0x1e
je 0x180058aa5
cmp eax, 1
jne 0x180058ab8
lea r13, [rbp + 0x2d0]
jmp 0x180058ab8
mov r8, r10
mov edx, 0x1000
lea rcx, [rbp + 0x2d0]
call qword [rsp + 0x78]
inc edi
cmp edi, 0x20
mov r10, qword [rsp + 0x58]
jb 0x180058a90
mov r11, qword [rsp + 0x68]
mov r9d, dword [rbp - 0x74]
mov r8d, dword [rsp + 0x40]
mov ecx, dword [rbp - 0x78]
dec esi
cmp esi, 0x12b
mov r10, qword [rsp + 0x58]
ja 0x180058a05
cmp r15d, dword [r11 + 0x10]
jl 0x180058a00
xor edi, edi
jmp 0x180058afc
mov ebx, edi
mov dword [rsp + 0x60], ebx
add r14d, 0xa7
cmp r14d, 0x1e5
mov r10, qword [rsp + 0x58]
jb 0x1800589d0
mov edx, dword [rbp - 0x70]
inc edx
mov dword [rbp - 0x70], edx
cmp edx, 8
mov eax, dword [rbp - 0x6c]
mov r14d, dword [rsp + 0x70]
jb 0x1800589b5
inc r8d
mov dword [rsp + 0x40], r8d
lea eax, [r8*8]
mov dword [rbp - 0x6c], eax
cmp eax, r14d
mov r10, qword [rsp + 0x58]
jb 0x1800589b0
mov eax, dword [rbp - 0x68]
inc eax
mov dword [rbp - 0x68], eax
cmp eax, dword [rsp + 0x34]
mov r10, qword [rsp + 0x58]
mov edx, dword [rsp + 0x50]
jb 0x180058990
movzx ebx, byte [rsp + 0x30]
mov rsi, qword [rsp + 0x78]
mov r15d, dword [rbp - 0x64]
mov r12d, dword [rbp - 0x60]
mov r9d, dword [rsp + 0x38]
lea rax, [rbp + 0x2d0]
mov rdx, r13
sub rdx, rax
test rdx, rdx
jle 0x180058d92
mov r8, qword [rsp + 0x58]
lea rcx, [rbp + 0x2d0]
call rsi
mov r9d, dword [rsp + 0x38]
jmp 0x180058d92
mov qword [rbp + 0x2be], rdi
jmp case.0x18005895c.5
mov r8d, SHSetFolderPathW
lea rdx, [rbp + 0x2a0]
lea rcx, [rbp + 0x2b0]
call fcn.18004bdc0
mov qword [rbp - 0x48], rax
mov r9d, dword [rsp + 0x38]
jmp case.0x18005895c.5
xor r8d, r8d
mov edx, 0xe2
lea rcx, [rbp + 0x10]
call fcn.18004ae70
xor eax, eax
mov dword [rsp + 0x40], eax
lea r9, [rsp + 0x40]
lea r8, [rbp + 0x10]
lea edx, [rax + 0x5d]
lea rcx, [rbp - 0x40]
call fcn.1800579a0
test al, al
je 0x180058bd8
mov rsi, qword [rsp + 0x68]
nop word [rax + rax]
mov edi, 0x72
cmp edi, 0x72
jne 0x180058cdd
mov rcx, qword [rbp - 0x40]
call qword [rbp - 0x48]
xor eax, eax
mov qword [rbp - 8], rax
mov qword [rbp], 7
mov word [rbp - 0x18], ax
mov rdx, qword [rbp - 0x40]
mov r8, 0xffffffffffffffff
inc r8
cmp word [rdx + r8*2], ax
jne 0x180058c52
lea rcx, [rbp - 0x18]
call fcn.1800637b0
nop
mov rdx, qword [rsi + 8]
cmp rdx, qword [rsi + 0x10]
je 0x180058c91
movups xmm0, xmmword [rbp - 0x18]
movups xmmword [rdx], xmm0
movups xmm1, xmmword [rbp - 8]
movups xmmword [rdx + 0x10], xmm1
mov edx, 7
xor eax, eax
mov word [rbp - 0x18], ax
add qword [rsi + 8], 0x20
jmp 0x180058ca1
lea r8, [rbp - 0x18]
mov rcx, rsi
call fcn.180044580
mov rdx, qword [rbp]
cmp rdx, 8
jb 0x180058cdd
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x18]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180058cd8
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180058dd3
call fcn.180079234
add edi, 0x99
cmp edi, 0x10b
jb 0x180058c25
xor eax, eax
mov dword [rsp + 0x40], eax
lea r9, [rsp + 0x40]
lea r8, [rbp + 0x10]
lea edx, [rax + 0x5d]
lea rcx, [rbp - 0x40]
call fcn.1800579a0
test al, al
jne 0x180058c20
mov r9d, dword [rsp + 0x38]
jmp 0x180058d92
mov eax, dword [0x18007e418]
mov dword [rbp + 0x2ba], eax
movzx eax, word [0x18007e41c]
mov word [rbp + 0x2be], ax
jmp case.0x18005895c.5
mov rax, qword [r11 + 8]
cmp qword [r11], rax
setne bl
mov byte [rsp + 0x30], bl
jmp case.0x18005895c.5
mov r8d, 0x109
lea rdx, [rbp + 0x10]
xor ecx, ecx
call fcn.180057750
mov r9d, dword [rsp + 0x38]
jmp case.0x18005895c.5
mov rsi, qword [r11 + 8]
mov rdi, qword [r11]
cmp rdi, rsi
je 0x180058d8e
nop dword [rax]
mov rcx, rdi
call fcn.180060ea0
add rdi, 0x20
cmp rdi, rsi
jne 0x180058d70
mov r11, qword [rsp + 0x68]
mov rdi, qword [r11]
mov r9d, dword [rsp + 0x38]
mov qword [r11 + 8], rdi
movabs rdi, 0x6c006c0064
inc r15d
mov dword [rbp - 0x64], r15d
inc r12d
mov dword [rbp - 0x60], r12d
cmp r15d, r9d
jae case.0x18005895c.9
mov r11, qword [rsp + 0x68]
mov r10, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x78]
mov r8d, dword [rsp + 0x34]
mov edx, dword [rsp + 0x50]
lea rcx, [0x180000000]
jmp 0x180058940
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
movzx eax, bl
mov rcx, qword [rbp + 0x12d0]
xor rcx, rsp
call fcn.180079740
mov rbx, qword [rsp + 0x1438]
add rsp, 0x13e0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret