Function at 0x180009960
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1b0]
sub rsp, 0x2b0
mov rax, qword [0x180078040]
xor rax, rsp
mov qword [rbp + 0x1a0], rax
mov r12, rcx
mov qword [rbp + 0x18], rcx
xor r13d, r13d
mov rdx, rcx
lea rcx, [rsp + 0x48]
call fcn.18000bbb0
mov rdx, rax
lea rcx, [rbp + 0x40]
call fcn.18000aec0
nop
xorps xmm1, xmm1
movdqu xmmword [rbp + 0x28], xmm1
mov esi, r13d
mov qword [rbp + 0x38], r13
mov r8, qword [rbp + 0x50]
lea rax, [r8 + r8]
mov qword [rbp + 0x20], rax
test rax, rax
je 0x180009a04
movabs rcx, 0x7fffffffffffffff
cmp rax, rcx
ja 0x180009fce
lea rdx, [rbp + 0x20]
lea rcx, [rbp + 0x28]
call fcn.1800048c0
mov r8, qword [rbp + 0x50]
mov rsi, qword [rbp + 0x38]
lea rdi, [rbp + 0x40]
cmp qword [rbp + 0x58], 7
cmova rdi, qword [rbp + 0x40]
lea rax, [rbp + 0x40]
cmova rax, qword [rbp + 0x40]
lea r15, [rax + r8*2]
mov rbx, qword [rbp + 0x30]
cmp rdi, r15
je 0x180009a9d
nop dword [rax + rax]
movzx eax, byte [rdi]
movzx r14d, byte [rdi + 1]
mov byte [rsp + 0x40], al
cmp rbx, rsi
je 0x180009a4c
mov byte [rbx], al
inc rbx
mov qword [rbp + 0x30], rbx
jmp 0x180009a65
lea r8, [rsp + 0x40]
mov rdx, rbx
lea rcx, [rbp + 0x28]
call fcn.180005880
mov rsi, qword [rbp + 0x38]
mov rbx, qword [rbp + 0x30]
mov byte [rsp + 0x40], r14b
cmp rbx, rsi
je 0x180009a7b
mov byte [rbx], r14b
inc rbx
mov qword [rbp + 0x30], rbx
jmp 0x180009a94
lea r8, [rsp + 0x40]
mov rdx, rbx
lea rcx, [rbp + 0x28]
call fcn.180005880
mov rsi, qword [rbp + 0x38]
mov rbx, qword [rbp + 0x30]
add rdi, 2
cmp rdi, r15
jne 0x180009a30
cmp byte [0x18007b424], 0
je 0x180009ad3
mov eax, dword [0x18007b420]
test eax, eax
je 0x180009ad3
imul eax, eax, 0x69
mov dword [0x18007b420], eax
test eax, eax
je 0x180009ad3
sub eax, 0x70
mov dword [0x18007b420], eax
test eax, eax
je 0x180009ad3
add eax, 0x5c
mov dword [0x18007b420], eax
movdqa xmm0, xmmword [0x18006d950]
movdqu xmmword [rsp + 0x48], xmm0
mov dword [rsp + 0x58], 0x256b7e6b
mov word [rsp + 0x5c], 0x3f3e
xor eax, eax
mov byte [rsp + 0x5e], al
mov rcx, r13
nop dword [rax]
movzx eax, byte [rsp + 0x48]
xor byte [rsp + rcx + 0x49], al
inc rcx
cmp rcx, 0x15
jb 0x180009b00
mov byte [rsp + 0x5e], 0
xorps xmm0, xmm0
movups xmmword [rbp + 0x60], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp + 0x70], xmm1
lea rax, [rsp + 0x49]
mov rdi, 0xffffffffffffffff
mov r8, rdi
inc r8
cmp byte [rax + r8], 0
jne 0x180009b35
lea rdx, [rsp + 0x49]
lea rcx, [rbp + 0x60]
call fcn.180004c10
nop
lea rax, [rsp + 0x48]
mov qword [rbp - 0x60], rax
lea rax, [rbp - 0x48]
mov qword [rbp - 0x58], rax
lea rax, [rbp - 0x28]
mov qword [rbp - 0x50], rax
mov byte [rbp + 0x20], 0x19
mov al, 0x49
mov cl, 0x56
mov dl, 0x4a
mov r8b, 0x4d
xor r9d, r9d
xor al, 0x19
mov byte [rbp + 0x21], al
xor cl, 0x19
mov byte [rbp + 0x22], cl
xor dl, 0x19
mov byte [rbp + 0x23], dl
xor r8b, 0x19
mov byte [rbp + 0x24], r8b
mov byte [rbp + 0x25], r9b
xorps xmm0, xmm0
movups xmmword [rbp - 0x80], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x70], xmm1
lea rax, [rbp + 0x21]
mov r8, rdi
nop word [rax + rax]
inc r8
cmp byte [rax + r8], r9b
jne 0x180009bb0
lea rdx, [rbp + 0x21]
lea rcx, [rbp - 0x80]
call fcn.180004c10
nop
xorps xmm0, xmm0
movups xmmword [rsp + 0x60], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x70], xmm1
lea rdx, [0x18007b430]
nop
inc rdi
cmp byte [rdx + rdi], 0
jne 0x180009be0
mov r8, rdi
lea rcx, [rsp + 0x60]
call fcn.180004c10
nop
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x48], xmm0
mov qword [rsp + 0x58], r13
mov r14, qword [rbp + 0x28]
sub rbx, r14
je 0x180009c37
mov rdx, rbx
lea rcx, [rsp + 0x48]
call fcn.1800051e0
mov rdi, qword [rsp + 0x48]
mov r8, rbx
mov rdx, r14
mov rcx, rdi
call fcn.18005d920
lea rax, [rdi + rbx]
mov qword [rsp + 0x50], rax
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp + 0x80], xmm0
movups xmmword [rbp + 0x90], xmm0
movups xmmword [rbp + 0xa0], xmm0
movups xmmword [rbp + 0xb0], xmm0
movups xmmword [rbp + 0xc0], xmm0
movups xmmword [rbp + 0xd0], xmm0
movups xmmword [rbp + 0xe0], xmm0
mov qword [rbp + 0xf0], rax
lea rcx, [rbp + 0x80]
call fcn.18000e840
nop
lea r8, [rbp + 0x60]
cmp qword [rbp + 0x78], 0xf
cmova r8, qword [rbp + 0x60]
mov r9, qword [rbp + 0x70]
add r9, r8
lea rdx, [rbp - 0x48]
lea rcx, [rbp + 0x80]
call fcn.18000ec70
nop
lea rcx, [rbp + 0x80]
call fcn.18000e750
nop
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp + 0x120], xmm0
movups xmmword [rbp + 0x130], xmm0
movups xmmword [rbp + 0x140], xmm0
movups xmmword [rbp + 0x150], xmm0
movups xmmword [rbp + 0x160], xmm0
movups xmmword [rbp + 0x170], xmm0
movups xmmword [rbp + 0x180], xmm0
mov qword [rbp + 0x190], rax
lea rcx, [rbp + 0x120]
call fcn.18000e840
nop
lea r8, [rbp - 0x80]
cmp qword [rbp - 0x68], 0xf
cmova r8, qword [rbp - 0x80]
mov r9, qword [rbp - 0x70]
add r9, r8
lea rdx, [rbp - 0x28]
lea rcx, [rbp + 0x120]
call fcn.18000ec70
nop
lea rcx, [rbp + 0x120]
call fcn.18000e750
nop
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp + 0x80], xmm0
movups xmmword [rbp + 0x90], xmm0
movups xmmword [rbp + 0xa0], xmm0
movups xmmword [rbp + 0xb0], xmm0
movups xmmword [rbp + 0xc0], xmm0
movups xmmword [rbp + 0xd0], xmm0
movups xmmword [rbp + 0xe0], xmm0
mov qword [rbp + 0xf0], rax
lea rcx, [rbp + 0x80]
call fcn.18000e840
nop
lea r8, [rsp + 0x60]
cmp qword [rsp + 0x78], 0xf
cmova r8, qword [rsp + 0x60]
mov r9, qword [rsp + 0x70]
add r9, r8
lea rdx, [rbp - 8]
lea rcx, [rbp + 0x80]
call fcn.18000ec70
nop
lea rcx, [rbp + 0x80]
call fcn.18000e750
nop
mov dword [rsp + 0x30], r13d
lea rax, [rsp + 0x48]
mov qword [rsp + 0x28], rax
mov word [rsp + 0x20], 0x1bb
lea r9, [rbp - 0x48]
lea r8, [rbp - 0x28]
lea rdx, [rbp - 8]
lea rcx, [rbp + 0x100]
call fcn.180005dd0
nop
mov rdx, qword [rsp + 0x78]
cmp rdx, 0xf
jbe 0x180009e1e
inc rdx
mov rcx, qword [rsp + 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180009e19
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180009fd4
call fcn.180037fe0
movdqa xmm0, xmmword [0x18006d750]
movdqu xmmword [rsp + 0x70], xmm0
mov byte [rsp + 0x60], 0
mov rdx, qword [rbp - 0x68]
cmp rdx, 0xf
jbe 0x180009e6c
inc rdx
mov rcx, qword [rbp - 0x80]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180009e67
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180009fda
call fcn.180037fe0
mov rcx, qword [rbp + 0x108]
test rcx, rcx
je 0x180009ebe
mov rdx, qword [rbp + 0x118]
sub rdx, rcx
mov rax, rcx
cmp rdx, 0x1000
jb 0x180009ea7
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180009fe0
call fcn.180037fe0
mov qword [rbp + 0x108], r13
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x110], xmm0
mov rdx, qword [rbp + 0x78]
cmp rdx, 0xf
jbe 0x180009ef9
inc rdx
mov rcx, qword [rbp + 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180009ef4
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180009fe6
call fcn.180037fe0
movdqa xmm0, xmmword [0x18006d750]
movdqu xmmword [rbp + 0x70], xmm0
mov byte [rbp + 0x60], 0
test r14, r14
je 0x180009f43
sub rsi, r14
mov rax, r14
cmp rsi, 0x1000
jb 0x180009f37
add rsi, 0x27
mov r14, qword [r14 - 8]
sub rax, r14
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180009fec
mov rdx, rsi
mov rcx, r14
call fcn.180037fe0
nop
mov rdx, qword [rbp + 0x58]
cmp rdx, 7
jbe 0x180009f7f
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180009f7a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180009fc8
call fcn.180037fe0
mov qword [rbp + 0x50], r13
mov qword [rbp + 0x58], 7
mov word [rbp + 0x40], r13w
mov rcx, r12
call fcn.18000bb20
mov rcx, qword [rbp + 0x1a0]
xor rcx, rsp
call fcn.180037fc0
lea r11, [rsp + 0x2b0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
call fcn.18003ef50
nop
call fcn.180004460
nop
call fcn.18003ef50
nop
call fcn.18003ef50
int3
call fcn.18003ef50
nop
call fcn.18003ef50
nop
call fcn.18003ef50
int3