Function at 0x18001bec0
Capabilities:
Encode data using xor

Disassembly:
mov r11, rsp
push rbp
push rbx
push rsi
push r13
lea rbp, [r11 - 0xd8]
sub rsp, 0x1b8
mov rax, qword [0x1800f3188]
xor rax, rsp
mov qword [rbp + 0x90], rax
mov qword [r11 + 0x20], rdi
xor r13d, r13d
xor edi, edi
mov qword [r11 - 0x28], r12
xor r12d, r12d
mov qword [rsp + 0x40], r8
mov qword [rsp + 0x48], rdx
mov rsi, r8
mov qword [rsp + 0x38], rdi
mov rbx, rcx
test rcx, rcx
jne 0x18001bf19
lea ebx, [rcx - 0x16]
jmp 0x18001c63e
mov qword [rsp + 0x1a8], r14
xor eax, eax
mov qword [rsp + 0x1a0], r15
lea r14, [0x1800c3780]
mov r15d, 4
mov dword [rbp + 0x50], 0x9fec3661
mov ecx, r15d
mov dword [rbp + 0x54], 0xfcdfa1eb
mov dword [rbp + 0x58], 0xf85ea498
mov dword [rbp + 0x5c], 0xc5ebc1da
mov dword [rbp + 0x60], 0xbef4e7f3
mov dword [rbp + 0x64], 0x4ef9e2fb
mov dword [rbp + 0x68], 0xbebcddf1
mov dword [rbp + 0x6c], 0xe2fa7ddb
mov dword [rbp + 0x70], 0xfdf3fee9
mov dword [rbp + 0x74], 0x76f7cfa7
mov dword [rbp + 0x78], 0xddd9dbbf
mov dword [rbp + 0x7c], 0xc49f8a7d
mov dword [rbp + 0x80], 0x29923ff3
mov dword [rbp + 0x84], 0xc4e34af3
mov dword [rbp + 0x88], 0xbbc0848e
mov dword [rbp + 0x8c], 0xee3ebe8c
mov dword [rbp + 0x10], 0x91dd1772
mov dword [rbp + 0x14], 0x85828dcb
mov dword [rbp + 0x18], 0xb45399d3
mov dword [rbp + 0x1c], 0xc5ebc1da
mov dword [rbp + 0x20], 0xbef4e7f3
mov dword [rbp + 0x24], 0x4ef9e2fb
mov dword [rbp + 0x28], 0xbebcddf1
mov dword [rbp + 0x2c], 0xe2fa7ddb
mov dword [rbp + 0x30], 0xfdf3fee9
mov dword [rbp + 0x34], 0x76f7cfa7
mov dword [rbp + 0x38], 0xddd9dbbf
mov dword [rbp + 0x3c], 0xc49f8a7d
mov dword [rbp + 0x40], 0x29923ff3
mov dword [rbp + 0x44], 0xc4e34af3
mov dword [rbp + 0x48], 0xbbc0848e
mov dword [rbp + 0x4c], 0xee3ebe8c
nop word [rax + rax]
movdqu xmm1, xmmword [rax + r14]
movdqu xmm0, xmmword [rbp + rax + 0x10]
lea rax, [rax + 0x10]
pxor xmm0, xmm1
movdqu xmmword [rbp + rax], xmm0
movdqu xmm0, xmmword [rbp + rax + 0x40]
pxor xmm0, xmm1
movdqu xmmword [rbp + rax + 0x40], xmm0
sub rcx, 1
jne 0x18001c030
lea rcx, [rbp + 0x10]
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
test rax, rax
jne 0x18001c07e
lea rcx, [rbp + 0x10]
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
test rax, rax
je 0x18001c0ae
lea rdx, [rbp + 0x50]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x18001c0ae
lea r8, [rsp + 0x38]
mov rdx, rbx
mov rcx, 0xffffffff80000002
call rax
mov ebx, eax
test eax, eax
je 0x18001c0ae
neg ebx
jmp 0x18001c49e
mov dword [rbp + 0x50], 0x81ec3661
xor eax, eax
mov dword [rbp + 0x54], 0xcec3a1ee
mov rcx, r15
mov dword [rbp + 0x58], 0x8d73bcab
mov dword [rbp + 0x5c], 0x849384bf
mov dword [rbp + 0x60], 0xbef4e7f3
mov dword [rbp + 0x64], 0x4ef9e2fb
mov dword [rbp + 0x68], 0xbebcddf1
mov dword [rbp + 0x6c], 0xe2fa7ddb
mov dword [rbp + 0x70], 0xfdf3fee9
mov dword [rbp + 0x74], 0x76f7cfa7
mov dword [rbp + 0x78], 0xddd9dbbf
mov dword [rbp + 0x7c], 0xc49f8a7d
mov dword [rbp + 0x80], 0x29923ff3
mov dword [rbp + 0x84], 0xc4e34af3
mov dword [rbp + 0x88], 0xbbc0848e
mov dword [rbp + 0x8c], 0xee3ebe8c
mov dword [rbp + 0x10], 0x91dd1772
mov dword [rbp + 0x14], 0x85828dcb
mov dword [rbp + 0x18], 0xb45399d3
mov dword [rbp + 0x1c], 0xc5ebc1da
mov dword [rbp + 0x20], 0xbef4e7f3
mov dword [rbp + 0x24], 0x4ef9e2fb
mov dword [rbp + 0x28], 0xbebcddf1
mov dword [rbp + 0x2c], 0xe2fa7ddb
mov dword [rbp + 0x30], 0xfdf3fee9
mov dword [rbp + 0x34], 0x76f7cfa7
mov dword [rbp + 0x38], 0xddd9dbbf
mov dword [rbp + 0x3c], 0xc49f8a7d
mov dword [rbp + 0x40], 0x29923ff3
mov dword [rbp + 0x44], 0xc4e34af3
mov dword [rbp + 0x48], 0xbbc0848e
mov dword [rbp + 0x4c], 0xee3ebe8c
nop
movdqu xmm1, xmmword [rax + r14]
movdqu xmm0, xmmword [rbp + rax + 0x10]
lea rax, [rax + 0x10]
pxor xmm0, xmm1
movdqu xmmword [rbp + rax], xmm0
movdqu xmm0, xmmword [rbp + rax + 0x40]
pxor xmm1, xmm0
movdqu xmmword [rbp + rax + 0x40], xmm1
sub rcx, 1
jne 0x18001c1a0
lea rcx, [rbp + 0x10]
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
test rax, rax
jne 0x18001c1ee
lea rcx, [rbp + 0x10]
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
test rax, rax
je 0x18001c22b
lea rdx, [rbp + 0x50]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x18001c22b
lea rcx, [rsp + 0x30]
xor r9d, r9d
mov qword [rsp + 0x28], rcx
xor r8d, r8d
mov rcx, qword [rsp + 0x38]
xor edx, edx
mov qword [rsp + 0x20], rdi
call rax
mov ebx, eax
test eax, eax
je 0x18001c22b
neg ebx
jmp 0x18001c49e
mov ecx, dword [rsp + 0x30]
call fcn.1800a411c
mov r12, rax
test rax, rax
jne 0x18001c24a
call fcn.1800a41dc
mov ebx, dword [rax]
neg ebx
jmp 0x18001c49e
mov dword [rbp + 0x50], 0x81ec3661
xor eax, eax
mov dword [rbp + 0x54], 0xcec3a1ee
mov rcx, r15
mov dword [rbp + 0x58], 0x8d73bcab
mov dword [rbp + 0x5c], 0x849384bf
mov dword [rbp + 0x60], 0xbef4e7f3
mov dword [rbp + 0x64], 0x4ef9e2fb
mov dword [rbp + 0x68], 0xbebcddf1
mov dword [rbp + 0x6c], 0xe2fa7ddb
mov dword [rbp + 0x70], 0xfdf3fee9
mov dword [rbp + 0x74], 0x76f7cfa7
mov dword [rbp + 0x78], 0xddd9dbbf
mov dword [rbp + 0x7c], 0xc49f8a7d
mov dword [rbp + 0x80], 0x29923ff3
mov dword [rbp + 0x84], 0xc4e34af3
mov dword [rbp + 0x88], 0xbbc0848e
mov dword [rbp + 0x8c], 0xee3ebe8c
mov dword [rbp + 0x10], 0x91dd1772
mov dword [rbp + 0x14], 0x85828dcb
mov dword [rbp + 0x18], 0xb45399d3
mov dword [rbp + 0x1c], 0xc5ebc1da
mov dword [rbp + 0x20], 0xbef4e7f3
mov dword [rbp + 0x24], 0x4ef9e2fb
mov dword [rbp + 0x28], 0xbebcddf1
mov dword [rbp + 0x2c], 0xe2fa7ddb
mov dword [rbp + 0x30], 0xfdf3fee9
mov dword [rbp + 0x34], 0x76f7cfa7
mov dword [rbp + 0x38], 0xddd9dbbf
mov dword [rbp + 0x3c], 0xc49f8a7d
mov dword [rbp + 0x40], 0x29923ff3
mov dword [rbp + 0x44], 0xc4e34af3
mov dword [rbp + 0x48], 0xbbc0848e
mov dword [rbp + 0x4c], 0xee3ebe8c
nop dword [rax + rax]
movdqu xmm0, xmmword [rbp + rax + 0x10]
movdqu xmm2, xmmword [rax + r14]
lea rax, [rax + 0x10]
movdqa xmm1, xmm2
pxor xmm1, xmm0
movdqu xmm0, xmmword [rbp + rax + 0x40]
movdqu xmmword [rbp + rax], xmm1
pxor xmm2, xmm0
movdqu xmmword [rbp + rax + 0x40], xmm2
sub rcx, 1
jne 0x18001c340
lea rcx, [rbp + 0x10]
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
test rax, rax
jne 0x18001c392
lea rcx, [rbp + 0x10]
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
test rax, rax
je 0x18001c3cf
lea rdx, [rbp + 0x50]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x18001c3cf
lea rcx, [rsp + 0x30]
xor r9d, r9d
mov qword [rsp + 0x28], rcx
xor r8d, r8d
mov rcx, qword [rsp + 0x38]
xor edx, edx
mov qword [rsp + 0x20], r12
call rax
mov ebx, eax
test eax, eax
je 0x18001c3cf
neg ebx
jmp 0x18001c49e
mov ebx, dword [rsp + 0x30]
lea r14d, [rbx + 0x10]
mov ecx, r14d
call fcn.1800a411c
mov rsi, rax
lea rcx, [rsp + 0x50]
mov rax, qword [rsp + 0x48]
mov rdx, rax
lea r8, [rax + 0x10]
call fcn.18001cee0
test rsi, rsi
jne 0x18001c408
call fcn.1800a41dc
mov ebx, dword [rax]
neg ebx
jmp 0x18001c470
mov r9, rsi
mov dword [rsp + 0x20], r14d
mov r8d, ebx
lea rcx, [rsp + 0x50]
mov rdx, r12
call fcn.18001ccd0
mov ebx, eax
cmp eax, r15d
jl 0x18001c468
mov r14d, dword [rsi]
mov ecx, r14d
call fcn.1800a411c
mov rdi, rax
test rax, rax
jne 0x18001c445
call fcn.1800a41dc
mov ebx, dword [rax]
neg ebx
jmp 0x18001c468
lea r8d, [rbx - 4]
mov r9d, r14d
lea rcx, [rsi + 4]
mov rdx, rdi
call fcn.180094a10
mov ebx, eax
test eax, eax
jns 0x18001c468
mov rcx, rdi
call fcn.1800a4108
xor edi, edi
mov rcx, rsi
call fcn.1800a4108
test ebx, ebx
js 0x18001c492
mov rcx, rdi
call fcn.180090e40
cmp eax, ebx
je 0x18001c487
mov ebx, 0xfffffff2
jmp 0x18001c492
mov rcx, rdi
call fcn.180090de0
mov r13, rax
mov rsi, qword [rsp + 0x40]
lea r14, [0x1800c3780]
cmp qword [rsp + 0x38], 0
je 0x18001c614
mov dword [rbp + 0x50], 0x93ec3661
xor eax, eax
mov dword [rbp + 0x54], 0xd2c2abf7
mov dword [rbp + 0x58], 0xf866b8b6
mov dword [rbp + 0x5c], 0xc5ebc1da
mov dword [rbp + 0x60], 0xbef4e7f3
mov dword [rbp + 0x64], 0x4ef9e2fb
mov dword [rbp + 0x68], 0xbebcddf1
mov dword [rbp + 0x6c], 0xe2fa7ddb
mov dword [rbp + 0x70], 0xfdf3fee9
mov dword [rbp + 0x74], 0x76f7cfa7
mov dword [rbp + 0x78], 0xddd9dbbf
mov dword [rbp + 0x7c], 0xc49f8a7d
mov dword [rbp + 0x80], 0x29923ff3
mov dword [rbp + 0x84], 0xc4e34af3
mov dword [rbp + 0x88], 0xbbc0848e
mov dword [rbp + 0x8c], 0xee3ebe8c
mov dword [rbp + 0x10], 0x91dd1772
mov dword [rbp + 0x14], 0x85828dcb
mov dword [rbp + 0x18], 0xb45399d3
mov dword [rbp + 0x1c], 0xc5ebc1da
mov dword [rbp + 0x20], 0xbef4e7f3
mov dword [rbp + 0x24], 0x4ef9e2fb
mov dword [rbp + 0x28], 0xbebcddf1
mov dword [rbp + 0x2c], 0xe2fa7ddb
mov dword [rbp + 0x30], 0xfdf3fee9
mov dword [rbp + 0x34], 0x76f7cfa7
mov dword [rbp + 0x38], 0xddd9dbbf
mov dword [rbp + 0x3c], 0xc49f8a7d
mov dword [rbp + 0x40], 0x29923ff3
mov dword [rbp + 0x44], 0xc4e34af3
mov dword [rbp + 0x48], 0xbbc0848e
mov dword [rbp + 0x4c], 0xee3ebe8c
nop dword [rax + rax]
movdqu xmm0, xmmword [rbp + rax + 0x10]
movdqu xmm2, xmmword [rax + r14]
lea rax, [rax + 0x10]
movdqa xmm1, xmm2
pxor xmm1, xmm0
movdqu xmm0, xmmword [rbp + rax + 0x40]
movdqu xmmword [rbp + rax], xmm1
pxor xmm2, xmm0
movdqu xmmword [rbp + rax + 0x40], xmm2
sub r15, 1
jne 0x18001c5a0
lea rcx, [rbp + 0x10]
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
test rax, rax
jne 0x18001c5f2
lea rcx, [rbp + 0x10]
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
test rax, rax
je 0x18001c60b
lea rdx, [rbp + 0x50]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x18001c60b
mov rcx, qword [rsp + 0x38]
call rax
mov qword [rsp + 0x38], 0
mov r15, qword [rsp + 0x1a0]
mov r14, qword [rsp + 0x1a8]
test r12, r12
je 0x18001c631
mov rcx, r12
call fcn.1800a4108
test rdi, rdi
je 0x18001c63e
mov rcx, rdi
call fcn.1800a4108
mov r12, qword [rsp + 0x1b0]
mov rax, r13
mov rdi, qword [rsp + 0x1f8]
test rsi, rsi
je 0x18001c658
mov dword [rsi], ebx
mov rcx, qword [rbp + 0x90]
xor rcx, rsp
call fcn.1800a1bf0
add rsp, 0x1b8
pop r13
pop rsi
pop rbx
pop rbp
ret