Function at 0x180022c78
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 0x18], r8
mov qword [rax + 0x10], rdx
mov qword [rax + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x57]
sub rsp, 0xb8
mov qword [rbp - 1], 0xfffffffffffffffe
mov r14, r8
mov rdi, rdx
xor r13d, r13d
mov dword [rbp + 0x77], r13d
lea rax, [0x18019b150]
mov qword [rbp + 0x5f], rax
mov qword [0x18019b158], r13
xorps xmm0, xmm0
movups xmmword [0x18019b160], xmm0
mov qword [0x18019b170], r13
lea ebx, [r13 + 0xf]
mov qword [0x18019b178], rbx
mov byte [0x18019b160], r13b
movups xmmword [0x18019b180], xmm0
mov qword [0x18019b190], r13
mov qword [0x18019b198], rbx
xor r8d, r8d
lea rdx, [0x180164c88]
lea rcx, [0x18019b180]
call qword [sym.imp.VCRUNTIME140.dll_memcpy]
mov byte [0x18019b180], r13b
xorps xmm0, xmm0
movups xmmword [0x18019b1a0], xmm0
mov qword [0x18019b1b0], r13
mov qword [0x18019b1b8], rbx
mov byte [0x18019b1a0], r13b
lea r12d, [r13 + 1]
mov byte [0x18019b1c0], r12b
mov qword [0x18019b1c8], r13
cmp qword [rdi + 0x18], 0x10
jb 0x180022d5b
mov rsi, qword [rdi]
mov rcx, rsi
jmp 0x180022d61
mov rcx, rdi
mov rsi, rdi
mov r15, qword [rdi + 0x10]
add r15, rcx
mov rbx, rdi
cmp qword [rdi + 0x18], 0x10
jb 0x180022d75
mov rbx, qword [rdi]
cmp rbx, r15
je 0x180022d91
sub rsi, rbx
movzx ecx, byte [rbx]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_tolower]
mov byte [rbx + rsi], al
add rbx, r12
cmp rbx, r15
jne 0x180022d7d
mov rdx, rdi
lea rcx, [0x18019b160]
call fcn.1800154d4
mov rdx, r14
lea rcx, [0x18019b1a0]
call fcn.1800154d4
xorps xmm0, xmm0
movups xmmword [rbp - 0x21], xmm0
mov qword [rbp - 0x11], r12
mov esi, 0xf
mov qword [rbp - 9], rsi
mov r8, r12
lea rdx, [0x180164cb8]
lea rcx, [rbp - 0x21]
call qword [sym.imp.VCRUNTIME140.dll_memcpy]
mov byte [rbp - 0x20], r13b
lea r8, [rbp - 0x21]
mov rdx, rdi
lea rcx, [rbp - 0x41]
call fcn.18001d72c
nop
mov rdx, qword [rax + 8]
sub rdx, 0x20
lea rcx, [0x18019b180]
call fcn.1800154d4
nop
lea rcx, [rbp - 0x41]
call fcn.180015704
mov r8, r14
mov rdx, rdi
call fcn.18001bab0
test rax, rax
je 0x180022e26
mov qword [0x18019b150], rax
jmp 0x180023295
mov rdx, rdi
call fcn.18001b7a8
mov qword [0x18019b158], rax
lea rcx, [0x18019b150]
call fcn.1800299c0
mov dword [rbp - 0x59], 0x2e
mov eax, dword [rbp - 0x59]
xor al, 0x47
mov byte [rbp - 0x55], al
mov eax, dword [rbp - 0x59]
add al, r12b
xor al, 0x6c
mov byte [rbp - 0x54], al
mov eax, dword [rbp - 0x59]
add al, 2
xor al, 0x6f
mov byte [rbp - 0x53], al
mov eax, dword [rbp - 0x59]
add al, 3
xor al, 0x62
mov byte [rbp - 0x52], al
mov eax, dword [rbp - 0x59]
add al, 4
xor al, 0x61
mov byte [rbp - 0x51], al
mov eax, dword [rbp - 0x59]
add al, 5
xor al, 0x6c
mov byte [rbp - 0x50], al
mov eax, dword [rbp - 0x59]
add al, 6
xor al, 0x41
mov byte [rbp - 0x4f], al
mov eax, dword [rbp - 0x59]
add al, 7
xor al, 0x64
mov byte [rbp - 0x4e], al
mov eax, dword [rbp - 0x59]
add al, 8
xor al, 0x64
mov byte [rbp - 0x4d], al
mov eax, dword [rbp - 0x59]
add al, 9
xor al, 0x41
mov byte [rbp - 0x4c], al
mov eax, dword [rbp - 0x59]
add al, 0xa
xor al, 0x74
mov byte [rbp - 0x4b], al
mov eax, dword [rbp - 0x59]
add al, 0xb
xor al, 0x6f
mov byte [rbp - 0x4a], al
mov eax, dword [rbp - 0x59]
add al, 0xc
xor al, 0x6d
mov byte [rbp - 0x49], al
xor eax, eax
mov byte [rbp - 0x48], al
mov al, byte [rbp - 0x55]
mov r15d, r12d
mov rdx, r13
mov al, byte [rbp + rdx - 0x55]
mov ecx, dword [rbp - 0x59]
add cl, dl
xor cl, al
mov byte [rbp + rdx - 0x55], cl
add rdx, r12
cmp rdx, 0xd
jb 0x180022ed7
mov byte [rbp - 0x48], r13b
xor r8d, r8d
lea rdx, [rbp - 0x55]
mov rcx, r14
call fcn.18001bfe4
or rbx, 0xffffffffffffffff
test rax, rax
je 0x180023004
mov dword [rbp - 0x71], 0x38
mov eax, dword [rbp - 0x71]
xor al, 0x47
mov byte [rbp - 0x6d], al
mov eax, dword [rbp - 0x71]
add al, r12b
xor al, 0x6c
mov byte [rbp - 0x6c], al
mov eax, dword [rbp - 0x71]
add al, 2
xor al, 0x6f
mov byte [rbp - 0x6b], al
mov eax, dword [rbp - 0x71]
add al, 3
xor al, 0x62
mov byte [rbp - 0x6a], al
mov eax, dword [rbp - 0x71]
add al, 4
xor al, 0x61
mov byte [rbp - 0x69], al
mov eax, dword [rbp - 0x71]
add al, 5
xor al, 0x6c
mov byte [rbp - 0x68], al
mov eax, dword [rbp - 0x71]
add al, 6
xor al, 0x47
mov byte [rbp - 0x67], al
mov eax, dword [rbp - 0x71]
add al, 7
xor al, 0x65
mov byte [rbp - 0x66], al
mov eax, dword [rbp - 0x71]
add al, 8
xor al, 0x74
mov byte [rbp - 0x65], al
mov eax, dword [rbp - 0x71]
add al, 9
xor al, 0x41
mov byte [rbp - 0x64], al
mov eax, dword [rbp - 0x71]
add al, 0xa
xor al, 0x74
mov byte [rbp - 0x63], al
mov eax, dword [rbp - 0x71]
add al, 0xb
xor al, 0x6f
mov byte [rbp - 0x62], al
mov eax, dword [rbp - 0x71]
add al, 0xc
xor al, 0x6d
mov byte [rbp - 0x61], al
mov eax, dword [rbp - 0x71]
add al, 0xd
xor al, 0x4e
mov byte [rbp - 0x60], al
mov eax, dword [rbp - 0x71]
add al, 0xe
xor al, 0x61
mov byte [rbp - 0x5f], al
mov eax, dword [rbp - 0x71]
add al, sil
xor al, 0x6d
mov byte [rbp - 0x5e], al
mov eax, dword [rbp - 0x71]
add al, 0x10
xor al, 0x65
mov byte [rbp - 0x5d], al
xor eax, eax
mov byte [rbp - 0x5c], al
mov al, byte [rbp - 0x6d]
lea r15d, [rbx + 4]
mov rdx, r13
mov al, byte [rbp + rdx - 0x6d]
mov ecx, dword [rbp - 0x71]
add cl, dl
xor cl, al
mov byte [rbp + rdx - 0x6d], cl
add rdx, r12
cmp rdx, 0x11
jb 0x180022fcf
mov byte [rbp - 0x5c], r13b
mov r8, rbx
lea rdx, [rbp - 0x6d]
mov rcx, r14
call fcn.18001bfe4
test rax, rax
je 0x180023004
mov sil, r13b
jmp 0x18002300d
mov sil, r12b
test r15b, 2
je 0x18002301d
xor edx, edx
lea r8d, [rdx + 0x12]
lea rcx, [rbp - 0x6d]
call qword [sym.imp.VCRUNTIME140.dll_memset]
xor edx, edx
lea r8d, [rdx + 0xe]
lea rcx, [rbp - 0x55]
call qword [sym.imp.VCRUNTIME140.dll_memset]
test sil, sil
je 0x18002316f
mov dword [rsp + 0x20], 0x74
mov eax, dword [rsp + 0x20]
xor al, 0x75
mov byte [rbp - 0x7d], al
mov eax, dword [rsp + 0x20]
add al, r12b
xor al, 0x73
mov byte [rbp - 0x7c], al
mov eax, dword [rsp + 0x20]
add al, 2
xor al, 0x65
mov byte [rbp - 0x7b], al
mov eax, dword [rsp + 0x20]
add al, 3
xor al, 0x72
mov byte [rbp - 0x7a], al
mov eax, dword [rsp + 0x20]
add al, 4
xor al, 0x33
mov byte [rbp - 0x79], al
mov eax, dword [rsp + 0x20]
add al, 5
xor al, 0x32
mov byte [rbp - 0x78], al
mov eax, dword [rsp + 0x20]
add al, 6
xor al, 0x2e
mov byte [rbp - 0x77], al
mov eax, dword [rsp + 0x20]
add al, 7
xor al, 0x64
mov byte [rbp - 0x76], al
mov eax, dword [rsp + 0x20]
add al, 8
xor al, 0x6c
mov byte [rbp - 0x75], al
mov eax, dword [rsp + 0x20]
add al, 9
xor al, 0x6c
mov byte [rbp - 0x74], al
xor eax, eax
mov byte [rbp - 0x73], al
mov al, byte [rbp - 0x7d]
mov rdx, r13
mov al, byte [rbp + rdx - 0x7d]
mov ecx, dword [rsp + 0x20]
add cl, dl
xor cl, al
mov byte [rbp + rdx - 0x7d], cl
add rdx, r12
cmp rdx, 0xa
jb 0x1800230b6
mov byte [rbp - 0x73], r13b
xorps xmm0, xmm0
movups xmmword [rbp - 0x41], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x31], xmm1
lea rax, [rbp - 0x7d]
inc rbx
cmp byte [rax + rbx], r13b
jne 0x1800230e6
mov r8, rbx
lea rdx, [rbp - 0x7d]
lea rcx, [rbp - 0x41]
call fcn.18000c7ac
nop
xor edx, edx
lea r8d, [rdx + 0xb]
lea rcx, [rbp - 0x7d]
call qword [sym.imp.VCRUNTIME140.dll_memset]
lea rcx, [rbp - 0x41]
cmp qword [rbp - 0x29], 0x10
cmovae rcx, qword [rbp - 0x41]
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov r8, rax
lea rdx, [rbp - 0x41]
call fcn.1800150f8
nop
mov rdx, qword [rbp - 0x29]
cmp rdx, 0x10
jb 0x18002316f
inc rdx
mov rcx, qword [rbp - 0x41]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18002316a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x18002316a
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.180157a14
mov rcx, qword [0x18019b158]
test rcx, rcx
je 0x180023340
mov rdx, r14
cmp qword [r14 + 0x18], 0x10
jb 0x18002318c
mov rdx, qword [r14]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov r15, rax
cmp byte [0x18019b1c0], r13b
je 0x1800231d8
lea rcx, [0x18019b150]
call fcn.180028d70
mov rsi, rax
mov rbx, qword [0x18019b158]
mov r12, r15
sub r12, rbx
lea rcx, [0x18019b150]
call fcn.1800299c0
mov rax, qword [0x18019b158]
cmp rax, rbx
je 0x1800231db
lea rsi, [rax + r12]
jmp 0x1800231db
mov rsi, r15
test rsi, rsi
jne 0x180023245
mov rsi, r15
test r15, r15
jne 0x18002323e
mov rcx, rdi
cmp qword [rdi + 0x18], 0x10
jb 0x1800231f5
mov rcx, qword [rdi]
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
test rax, rax
jne 0x18002321c
mov rcx, rdi
cmp qword [rdi + 0x18], 0x10
jb 0x18002320d
mov rcx, qword [rdi]
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
test rax, rax
je 0x180023340
mov rdx, r14
cmp qword [r14 + 0x18], 0x10
jb 0x180023229
mov rdx, qword [r14]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rsi, rax
test rax, rax
je 0x180023340
mov byte [0x18019b1c0], r13b
cmp byte [0x18019b1c0], r13b
je 0x18002327b
mov rdx, rsi
call fcn.180029f48
test al, al
jne 0x180023266
mov rsi, r15
mov byte [0x18019b1c0], r13b
jmp 0x180023273
cmp rsi, r15
je 0x180023273
mov rdx, r15
call fcn.1800287ac
mov rdx, rsi
call fcn.1800287ac
mov r9, rsi
mov r8, r14
mov rdx, rdi
call fcn.18001b8ac
mov qword [0x18019b150], rsi
mov esi, 0xf
mov rdx, qword [rdi + 0x18]
cmp rdx, 0x10
jb 0x1800232cb
mov rcx, qword [rdi]
inc rdx
cmp rdx, 0x1000
jb 0x1800232c6
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x180023332
mov rcx, r8
call fcn.180157a14
mov qword [rdi + 0x10], r13
mov qword [rdi + 0x18], rsi
mov byte [rdi], r13b
mov rdx, qword [r14 + 0x18]
cmp rdx, 0x10
jb 0x18002330c
inc rdx
mov rcx, qword [r14]
cmp rdx, 0x1000
jb 0x180023307
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x180023339
mov rcx, r8
call fcn.180157a14
mov qword [r14 + 0x10], r13
mov qword [r14 + 0x18], rsi
mov byte [r14], r13b
lea rax, [0x18019b150]
add rsp, 0xb8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call fcn.1800a9ce8
int3