Function at 0x180004990
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x300]
sub rsp, 0x400
mov rax, qword [0x180087020]
xor rax, rsp
mov qword [rbp + 0x2f0], rax
mov r14, rdx
mov r12, rcx
mov qword [rsp + 0x70], rcx
mov qword [rsp + 0x20], rcx
mov qword [rbp + 0x38], rdx
cmp qword [rdx + 0x10], 0
jne 0x180004a27
call fcn.1800045a0
nop
mov rdx, qword [r14 + 0x18]
cmp rdx, 8
jb 0x180004a20
lea rdx, [rdx*2 + 2]
mov rcx, qword [r14]
cmp rdx, 0x1000
jb 0x180004a1b
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x1800053e1
mov rcx, r8
call fcn.18003f0cc
xor ebx, ebx
jmp 0x18000539e
call fcn.180045878
cmp eax, 0x1e
jne 0x180004a37
add dword [0x180087be8], eax
call fcn.180045878
cmp eax, 4
jne 0x180004a47
add dword [0x180087be8], eax
mov r8d, 2
lea rdx, [0x18007989c]
mov rcx, r14
call fcn.180009330
mov dword [rbp + 0x40], 0x5de938a5
mov dword [rbp + 0x44], 0xe2ffd0a7
mov dword [rbp + 0x48], 0x55ee1797
mov word [rbp + 0x4c], 0xee84
mov ecx, dword [0x180089430]
mov rax, qword gs:[0x58]
mov r15, qword [rax + rcx*8]
mov ecx, 0x634
mov eax, dword [rcx + r15]
test al, 1
jne 0x180004add
or eax, 1
mov dword [rcx + r15], eax
mov eax, 0x3a0
mov ebx, eax
mov byte [rax + r15 + 0xf], 1
movsd xmm0, qword [rbp + 0x40]
movsd qword [rax + r15], xmm0
mov eax, dword [rbp + 0x48]
mov dword [rbx + r15 + 8], eax
movzx eax, word [rbp + 0x4c]
mov word [rbx + r15 + 0xc], ax
mov byte [rbx + r15 + 0xe], 0x8d
lea rcx, [0x180068a60]
call fcn.18003f1a4
nop
jmp 0x180004ae2
mov ebx, 0x3a0
lea r9, [r15 + rbx]
xor ebx, ebx
cmp byte [r9 + 0xf], bl
je 0x180004b20
mov edx, ebx
movabs r8, 0x918db9e1398751e3
nop word [rax + rax]
movzx ecx, dl
and cl, 7
shl cl, 3
mov rax, r8
shr rax, cl
xor byte [rdx + r9], al
inc rdx
cmp rdx, 0xf
jb 0x180004b00
mov byte [r9 + 0xf], bl
mov qword [rbp - 0x48], rbx
mov qword [rbp - 0x38], rbx
mov qword [rbp - 0x30], 0xf
mov rsi, 0xffffffffffffffff
mov r8, rsi
nop word [rax + rax]
inc r8
cmp byte [r9 + r8], bl
jne 0x180004b40
mov rdx, r9
lea rcx, [rbp - 0x48]
call fcn.180002e80
mov rdi, r14
cmp qword [r14 + 0x18], 8
jb 0x180004b62
mov rdi, qword [r14]
lea rdx, [rbp - 0x48]
mov ecx, 1
call fcn.1800122a0
lea rdx, [rbp + 0x70]
mov rcx, rdi
call rax
mov r13, rax
call fcn.180045878
cmp eax, 0xa
jne 0x180004b8c
add dword [0x180087be8], eax
mov qword [rbp + 0x50], rbx
mov qword [rbp + 0x60], rbx
mov qword [rbp + 0x68], 7
mov word [rbp + 0x50], bx
cmp r13, 0xffffffffffffffff
jne 0x180004c4f
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
mov rcx, r12
call fcn.180011b20
nop
mov rdx, qword [rbp + 0x68]
cmp rdx, 8
jb 0x180004bfb
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180004bf6
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800053ed
call fcn.18003f0cc
mov qword [rbp + 0x60], rbx
mov qword [rbp + 0x68], 7
mov word [rbp + 0x50], bx
mov rdx, qword [r14 + 0x18]
cmp rdx, 8
jb 0x18000539e
lea rdx, [rdx*2 + 2]
mov rcx, qword [r14]
cmp rdx, 0x1000
jb 0x180005399
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x1800053e1
jmp 0x180005396
movabs rdi, 0xcccccccccccccccd
test byte [rbp + 0x70], 0x10
je 0x180004da4
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x40], 7
mov word [rsp + 0x28], bx
mov r8d, 3
lea rdx, [0x1800798a8]
lea rcx, [rsp + 0x28]
call fcn.180002ce0
nop
lea rax, [rbp + 0x9c]
mov r9, rsi
nop dword [rax]
inc r9
cmp word [rax + r9*2], 0
jne 0x180004ca0
lea r8, [rbp + 0x9c]
lea rcx, [rsp + 0x28]
call fcn.180009bd0
movups xmm0, xmmword [rax]
movups xmmword [rbp - 8], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 8], xmm1
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], 7
mov word [rax], bx
lea rdx, [rbp - 8]
movq rcx, xmm0
movdqa xmm0, xmm1
psrldq xmm0, 8
movq rax, xmm0
cmp rax, 8
cmovae rdx, rcx
movq r8, xmm1
lea rcx, [rbp + 0x50]
call fcn.180009330
nop
mov rdx, qword [rbp + 0x10]
cmp rdx, 8
jb 0x180004d49
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180004d43
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800053f3
call fcn.18003f0cc
nop
mov rdx, qword [rsp + 0x40]
cmp rdx, 8
jb 0x180004d8b
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180004d86
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800053f9
call fcn.18003f0cc
call fcn.180045878
cmp eax, 0x49
jne 0x18000511c
add dword [0x180087be8], eax
jmp 0x18000511c
mov eax, dword [rbp + 0x90]
mov dword [rsp + 0x20], eax
call fcn.180045878
cmp eax, 0x2e
jne 0x180004dbe
add dword [0x180087be8], eax
mov eax, dword [rbp + 0x8c]
mov dword [rsp + 0x24], eax
mov qword [rbp - 0x68], rbx
mov qword [rbp - 0x58], rbx
mov qword [rbp - 0x50], 7
mov word [rbp - 0x68], bx
mov r8d, 1
lea rdx, [0x1800798b0]
lea rcx, [rbp - 0x68]
call fcn.180002ce0
nop
mov rcx, qword [rsp + 0x20]
lea r9, [rbp + 0x2ea]
test rcx, rcx
jns 0x180004e50
neg rcx
nop word [rax + rax]
sub r9, 2
mov rax, rdi
mul rcx
shr rdx, 3
movzx eax, dx
shl ax, 2
lea r8d, [rax + rdx]
add r8w, r8w
sub cx, r8w
add cx, 0x30
mov word [r9], cx
mov rcx, rdx
test rdx, rdx
jne 0x180004e10
add r9, 0xfffffffffffffffe
mov eax, 0x2d
mov word [r9], ax
jmp 0x180004e81
sub r9, 2
mov rax, rdi
mul rcx
shr rdx, 3
movzx eax, dx
shl ax, 2
lea r8d, [rax + rdx]
add r8w, r8w
sub cx, r8w
add cx, 0x30
mov word [r9], cx
mov rcx, rdx
test rdx, rdx
jne 0x180004e50
mov qword [rsp + 0x78], rbx
mov qword [rbp - 0x78], rbx
mov qword [rbp - 0x70], 7
mov word [rsp + 0x78], bx
lea rax, [rbp + 0x2ea]
cmp r9, rax
je 0x180004ebe
lea r8, [rbp + 0x2ea]
sub r8, r9
sar r8, 1
mov rdx, r9
lea rcx, [rsp + 0x78]
call fcn.180002ce0
nop
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x40], 7
mov word [rsp + 0x28], bx
mov r8d, 3
lea rdx, [0x1800798b8]
lea rcx, [rsp + 0x28]
call fcn.180002ce0
nop
lea rax, [rbp + 0x9c]
mov r9, rsi
nop dword [rax + rax]
inc r9
cmp word [rax + r9*2], 0
jne 0x180004f00
lea r8, [rbp + 0x9c]
lea rcx, [rsp + 0x28]
call fcn.180009bd0
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0x18], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0x28], xmm1
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], 7
mov word [rax], bx
lea r9, [rsp + 0x78]
lea r8, [rbp + 0x18]
lea rcx, [rbp - 0x28]
call fcn.180009880
nop
lea r9, [rbp - 0x68]
lea r8, [rbp - 0x28]
lea rcx, [rsp + 0x48]
call fcn.180009880
nop
lea rdx, [rsp + 0x48]
cmp qword [rsp + 0x60], 8
cmovae rdx, qword [rsp + 0x48]
mov r8, qword [rsp + 0x58]
lea rcx, [rbp + 0x50]
call fcn.180009330
nop
mov rdx, qword [rsp + 0x60]
cmp rdx, 8
jb 0x180004fc3
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180004fbd
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800053ff
call fcn.18003f0cc
nop
mov rdx, qword [rbp - 0x10]
cmp rdx, 8
jb 0x180005004
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180004ffe
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180005405
call fcn.18003f0cc
nop
mov rdx, qword [rbp + 0x30]
cmp rdx, 8
jb 0x180005045
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x18]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18000503f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18000540b
call fcn.18003f0cc
nop
mov rdx, qword [rsp + 0x40]
cmp rdx, 8
jb 0x180005087
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180005082
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180005411
call fcn.18003f0cc
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x40], 7
mov word [rsp + 0x28], bx
mov rdx, qword [rbp - 0x70]
cmp rdx, 8
jb 0x1800050dc
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800050d6
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180005417
call fcn.18003f0cc
nop
mov rdx, qword [rbp - 0x50]
cmp rdx, 8
jb 0x18000511c
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180005117
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18000541d
call fcn.18003f0cc
mov dword [rbp + 0x40], 0x23e5d44d
mov dword [rbp + 0x44], 0xaf1392e3
mov dword [rbp + 0x48], 0x22e7d44d
mov word [rbp + 0x4c], 0xf7fa
mov eax, 0x3b0
mov ecx, eax
mov eax, dword [rax + r15]
test al, 1
jne 0x180005186
or eax, 1
mov dword [rcx + r15], eax
mov eax, 0x5a0
mov edi, eax
mov byte [rax + r15 + 0xe], 1
movsd xmm0, qword [rbp + 0x40]
movsd qword [rax + r15], xmm0
mov eax, dword [rbp + 0x48]
mov dword [rdi + r15 + 8], eax
movzx eax, word [rbp + 0x4c]
mov word [rdi + r15 + 0xc], ax
lea rcx, [0x180068a30]
call fcn.18003f1a4
nop
jmp 0x18000518b
mov edi, 0x5a0
lea r9, [rdi + r15]
cmp byte [r9 + 0xe], 0
je 0x1800051d6
mov rdx, rbx
movabs r12, 0xdb6bf7ad478bbd0b
nop dword [rax]
nop word [rax + rax]
movzx ecx, dl
and cl, 7
shl cl, 3
mov rax, r12
shr rax, cl
xor byte [rdx + r9], al
inc rdx
cmp rdx, 0xe
jb 0x1800051b0
mov r12, qword [rsp + 0x70]
mov byte [r9 + 0xe], 0
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0x58], rbx
mov qword [rsp + 0x60], 0xf
mov r8, rsi
nop dword [rax]
inc r8
cmp byte [r9 + r8], 0
jne 0x1800051f0
mov rdx, r9
lea rcx, [rsp + 0x48]
call fcn.180002e80
lea rdx, [rsp + 0x48]
mov ecx, 1
call fcn.1800122a0
lea rdx, [rbp + 0x70]
mov rcx, r13
call rax
test eax, eax
jne 0x180004c4f
call fcn.180045878
cmp eax, 0x38
jne 0x180005237
add dword [0x180087be8], eax
mov ecx, 0x444
mov eax, dword [rcx + r15]
test al, 1
jne 0x180005280
or eax, 1
mov dword [rcx + r15], eax
mov eax, 0x438
mov edi, eax
mov word [rax + r15 + 9], 0x10f
mov dword [rax + r15], 0x23df662d
mov dword [rax + r15 + 4], 0x684431a
mov byte [rax + r15 + 8], 0xe
lea rcx, [0x180068a00]
call fcn.18003f1a4
nop
jmp 0x180005285
mov edi, 0x438
lea rdx, [rdi + r15]
cmp byte [rdx + 0xa], 0
je 0x1800052ba
xor byte [rdx], 0x6b
xor byte [rdx + 1], 0xf
xor byte [rdx + 2], 0xb1
xor byte [rdx + 3], 0x47
xor byte [rdx + 4], 0x59
xor byte [rdx + 5], 0x2f
xor byte [rdx + 6], 0xeb
xor byte [rdx + 7], 0x75
xor byte [rdx + 8], 0x6b
xor byte [rdx + 9], 0xf
mov byte [rdx + 0xa], 0
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0x58], rbx
mov qword [rsp + 0x60], 0xf
nop dword [rax]
inc rsi
cmp byte [rdx + rsi], 0
jne 0x1800052d0
mov r8, rsi
lea rcx, [rsp + 0x48]
call fcn.180002e80
lea rdx, [rsp + 0x48]
mov ecx, 1
call fcn.1800122a0
mov rcx, r13
call rax
lea rdx, [rbp + 0x50]
lea rcx, [rbp - 0x28]
call fcn.180008f90
mov rdx, rax
mov rcx, r12
call fcn.180011de0
nop
mov rdx, qword [rbp + 0x68]
cmp rdx, 8
jb 0x180005353
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18000534e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800053db
call fcn.18003f0cc
mov qword [rbp + 0x60], rbx
mov qword [rbp + 0x68], 7
mov word [rbp + 0x50], bx
mov rdx, qword [r14 + 0x18]
cmp rdx, 8
jb 0x18000539e
lea rdx, [rdx*2 + 2]
mov rcx, qword [r14]
cmp rdx, 0x1000
jb 0x180005399
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x1800053e7
mov rcx, r8
call fcn.18003f0cc
mov qword [r14 + 0x10], rbx
mov qword [r14 + 0x18], 7
mov rax, r12
mov word [r14], bx
mov rcx, qword [rbp + 0x2f0]
xor rcx, rsp
call fcn.18003f070
mov rbx, qword [rsp + 0x450]
add rsp, 0x400
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.180045aec
nop
call fcn.180045aec
int3
call fcn.180045aec
nop
call fcn.180045aec
nop
call fcn.180045aec
nop
call fcn.180045aec
nop
call fcn.180045aec
nop
call fcn.180045aec
nop
call fcn.180045aec
nop
call fcn.180045aec
nop
call fcn.180045aec
nop
call fcn.180045aec
int3