Function at 0x180009110
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r15
lea rbp, [rsp - 0x37]
sub rsp, 0xd0
movdqa xmm0, xmmword [0x18038f9a0]
xor r15d, r15d
mov dword [rbp + 0x67], r15d
movdqu xmmword [rbp - 6], xmm0
mov word [rbp + 0xa], 0x85
mov qword [rbp + 0x6f], r15
mov rax, qword [rbp + 0x6f]
nop word [rax + rax]
mov rcx, qword [rbp + 0x6f]
mov rax, qword [rbp + 0x6f]
sub cl, 0x24
xor cl, byte [rbp + rax - 5]
mov rax, qword [rbp + 0x6f]
mov byte [rbp + rax - 5], cl
mov rax, qword [rbp + 0x6f]
inc rax
mov qword [rbp + 0x6f], rax
mov rax, qword [rbp + 0x6f]
cmp rax, 0x10
jb 0x180009150
mov byte [rbp + 0xb], r15b
call fcn.180001690
mov rcx, qword gs:[0x58]
mov rbx, rax
mov edx, dword [0x18039b468]
mov eax, 4
mov rdi, qword [rcx + rdx*8]
add rdi, rax
mov ecx, dword [rdi]
cmp dword [0x18039d510], ecx
jle 0x1800091dc
lea rcx, [0x18039d510]
call fcn.180360f8c
cmp dword [0x18039d510], 0xffffffff
jne 0x1800091dc
mov rax, qword [sym.imp.KERNEL32.dll_LoadLibraryA]
lea rcx, [0x18039d510]
mov qword [0x1803a15b8], rax
call fcn.180360f2c
mov eax, dword [rdi]
cmp dword [0x1803a1558], eax
jle 0x180009215
lea rcx, [0x1803a1558]
call fcn.180360f8c
cmp dword [0x1803a1558], 0xffffffff
jne 0x180009215
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rcx, [0x1803a1558]
mov qword [0x1803a1560], rax
call fcn.180360f2c
mov rcx, rbx
mov qword [rsp + 0xc8], r14
call qword [0x1803a15b8]
mov rcx, rax
lea rdx, [rbp - 5]
call qword [0x1803a1560]
mov rsi, rax
test rax, rax
je 0x18000989e
movdqa xmm0, xmmword [0x18038f810]
xor eax, eax
movdqu xmmword [rbp - 0x19], xmm0
mov byte [rbp - 7], al
mov word [rbp - 9], 0x7879
mov qword [rbp + 0x6f], r15
mov rcx, qword [rbp + 0x6f]
nop
mov rcx, qword [rbp + 0x6f]
mov rax, qword [rbp + 0x6f]
sub cl, 5
xor cl, byte [rbp + rax - 0x18]
mov rax, qword [rbp + 0x6f]
mov byte [rbp + rax - 0x18], cl
mov rax, qword [rbp + 0x6f]
inc rax
mov qword [rbp + 0x6f], rax
mov rax, qword [rbp + 0x6f]
cmp rax, 0x11
jb 0x180009260
mov byte [rbp - 7], r15b
call fcn.1800015d0
mov ecx, dword [rdi]
mov rbx, rax
cmp dword [0x18039d510], ecx
jle 0x1800092d1
lea rcx, [0x18039d510]
call fcn.180360f8c
cmp dword [0x18039d510], 0xffffffff
jne 0x1800092d1
mov rcx, qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov qword [0x1803a15b8], rcx
lea rcx, [0x18039d510]
call fcn.180360f2c
mov eax, dword [rdi]
cmp dword [0x1803a1558], eax
jle 0x18000930a
lea rcx, [0x1803a1558]
call fcn.180360f8c
cmp dword [0x1803a1558], 0xffffffff
jne 0x18000930a
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rcx, [0x1803a1558]
mov qword [0x1803a1560], rax
call fcn.180360f2c
mov rcx, rbx
call qword [0x1803a15b8]
mov rcx, rax
lea rdx, [rbp - 0x18]
call qword [0x1803a1560]
test rax, rax
je 0x18000989e
call rax
lea r8, [rbp + 0x77]
mov edx, 8
mov rcx, rax
call rsi
test eax, eax
je 0x18000989e
movdqa xmm0, xmmword [0x18038fb20]
xor eax, eax
mov byte [rbp - 0x1a], al
movdqu xmmword [rbp - 0x2e], xmm0
mov dword [rbp - 0x1e], 0xc5c5c0dc
mov qword [rbp + 0x6f], r15
mov rax, qword [rbp + 0x6f]
nop dword [rax]
nop word [rax + rax]
mov rcx, qword [rbp + 0x6f]
mov rax, qword [rbp + 0x6f]
sub cl, 0x67
xor cl, byte [rbp + rax - 0x2d]
mov rax, qword [rbp + 0x6f]
mov byte [rbp + rax - 0x2d], cl
mov rax, qword [rbp + 0x6f]
inc rax
mov qword [rbp + 0x6f], rax
mov rax, qword [rbp + 0x6f]
cmp rax, 0x13
jb 0x180009370
mov byte [rbp - 0x1a], r15b
call fcn.180001690
mov ecx, dword [rdi]
mov rbx, rax
cmp dword [0x18039d510], ecx
jle 0x1800093e1
lea rcx, [0x18039d510]
call fcn.180360f8c
cmp dword [0x18039d510], 0xffffffff
jne 0x1800093e1
mov rcx, qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov qword [0x1803a15b8], rcx
lea rcx, [0x18039d510]
call fcn.180360f2c
mov eax, dword [rdi]
cmp dword [0x1803a1558], eax
jle 0x18000941a
lea rcx, [0x1803a1558]
call fcn.180360f8c
cmp dword [0x1803a1558], 0xffffffff
jne 0x18000941a
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rcx, [0x1803a1558]
mov qword [0x1803a1560], rax
call fcn.180360f2c
mov rcx, rbx
call qword [0x1803a15b8]
mov rcx, rax
lea rdx, [rbp - 0x2d]
call qword [0x1803a1560]
mov rsi, rax
test rax, rax
je 0x18000989e
xor eax, eax
mov dword [rbp - 0x5f], 0xfff4d627
mov byte [rbp - 0x55], al
mov dword [rbp - 0x5b], 0xd2d9f2fc
mov word [rbp - 0x57], 0xc7c4
mov qword [rbp + 0x6f], r15
mov rax, qword [rbp + 0x6f]
nop dword [rax]
mov rcx, qword [rbp + 0x6f]
mov rax, qword [rbp + 0x6f]
sub cl, 0x66
xor cl, byte [rbp + rax - 0x5e]
mov rax, qword [rbp + 0x6f]
mov byte [rbp + rax - 0x5e], cl
mov rax, qword [rbp + 0x6f]
inc rax
mov qword [rbp + 0x6f], rax
mov rax, qword [rbp + 0x6f]
cmp rax, 9
jb 0x180009460
mov byte [rbp - 0x55], r15b
call fcn.1800015d0
mov ecx, dword [rdi]
mov rbx, rax
cmp dword [0x18039d510], ecx
jle 0x1800094d1
lea rcx, [0x18039d510]
call fcn.180360f8c
cmp dword [0x18039d510], 0xffffffff
jne 0x1800094d1
mov rcx, qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov qword [0x1803a15b8], rcx
lea rcx, [0x18039d510]
call fcn.180360f2c
mov eax, dword [rdi]
cmp dword [0x1803a1558], eax
jle 0x18000950a
lea rcx, [0x1803a1558]
call fcn.180360f8c
cmp dword [0x1803a1558], 0xffffffff
jne 0x18000950a
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rcx, [0x1803a1558]
mov qword [0x1803a1560], rax
call fcn.180360f2c
mov rcx, rbx
call qword [0x1803a15b8]
mov rcx, rax
lea rdx, [rbp - 0x5e]
call qword [0x1803a1560]
mov r14, rax
test rax, rax
je 0x18000989e
mov rcx, qword [rbp + 0x77]
lea rax, [rbp + 0x67]
xor r9d, r9d
mov qword [rsp + 0x20], rax
xor r8d, r8d
lea edx, [r9 + 1]
call rsi
test eax, eax
jne 0x18000963b
mov dword [rbp - 0x54], 0xa4aa8959
mov dword [rbp - 0x50], 0xa0a0b39d
mov dword [rbp - 0x4c], 0xb7a5a490
mov word [rbp - 0x48], 0xab
mov qword [rbp + 0x6f], r15
mov rax, qword [rbp + 0x6f]
mov rcx, qword [rbp + 0x6f]
mov rax, qword [rbp + 0x6f]
sub cl, 0x32
xor cl, byte [rbp + rax - 0x53]
mov rax, qword [rbp + 0x6f]
mov byte [rbp + rax - 0x53], cl
mov rax, qword [rbp + 0x6f]
inc rax
mov qword [rbp + 0x6f], rax
mov rax, qword [rbp + 0x6f]
cmp rax, 0xc
jb 0x180009570
mov byte [rbp - 0x47], r15b
call fcn.1800015d0
mov ecx, dword [rdi]
mov rbx, rax
cmp dword [0x18039d510], ecx
jle 0x1800095e1
lea rcx, [0x18039d510]
call fcn.180360f8c
cmp dword [0x18039d510], 0xffffffff
jne 0x1800095e1
mov rcx, qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov qword [0x1803a15b8], rcx
lea rcx, [0x18039d510]
call fcn.180360f2c
mov eax, dword [rdi]
cmp dword [0x1803a1558], eax
jle 0x18000961a
lea rcx, [0x1803a1558]
call fcn.180360f8c
cmp dword [0x1803a1558], 0xffffffff
jne 0x18000961a
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rcx, [0x1803a1558]
mov qword [0x1803a1560], rax
call fcn.180360f2c
mov rcx, rbx
call qword [0x1803a15b8]
mov rcx, rax
lea rdx, [rbp - 0x53]
call qword [0x1803a1560]
call rax
cmp eax, 0x7a
jne 0x18000989e
mov edx, dword [rbp + 0x67]
lea rcx, [rbp + 0xf]
call fcn.180351c70
mov rbx, qword [rbp + 0xf]
lea rax, [rbp + 0x67]
mov r9d, dword [rbp + 0x67]
mov r8, rbx
mov rcx, qword [rbp + 0x77]
mov edx, 1
mov qword [rsp + 0x20], rax
call rsi
test eax, eax
je 0x180009860
movdqa xmm0, xmmword [0x18038f770]
movdqu xmmword [rbp - 0x46], xmm0
mov qword [rbp + 0x7f], r15
mov dword [rbp - 0x36], 0x45727a7a
mov dword [rbp - 0x32], 0x587c7e
mov qword [rbp + 0x6f], r15
mov rax, qword [rbp + 0x6f]
nop word [rax + rax]
mov rcx, qword [rbp + 0x6f]
mov rax, qword [rbp + 0x6f]
add cl, 4
xor cl, byte [rbp + rax - 0x45]
mov rax, qword [rbp + 0x6f]
mov byte [rbp + rax - 0x45], cl
mov rax, qword [rbp + 0x6f]
inc rax
mov qword [rbp + 0x6f], rax
mov rax, qword [rbp + 0x6f]
cmp rax, 0x16
jb 0x1800096a0
mov byte [rbp - 0x2f], r15b
call fcn.180001690
mov edx, dword [rdi]
mov rbx, rax
cmp dword [0x18039d510], edx
jle 0x180009711
lea rcx, [0x18039d510]
call fcn.180360f8c
cmp dword [0x18039d510], 0xffffffff
jne 0x180009711
mov rdx, qword [sym.imp.KERNEL32.dll_LoadLibraryA]
lea rcx, [0x18039d510]
mov qword [0x1803a15b8], rdx
call fcn.180360f2c
mov eax, dword [rdi]
cmp dword [0x1803a1558], eax
jle 0x18000974a
lea rcx, [0x1803a1558]
call fcn.180360f8c
cmp dword [0x1803a1558], 0xffffffff
jne 0x18000974a
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rcx, [0x1803a1558]
mov qword [0x1803a1560], rax
call fcn.180360f2c
mov rcx, rbx
call qword [0x1803a15b8]
mov rcx, rax
lea rdx, [rbp - 0x45]
call qword [0x1803a1560]
mov rbx, qword [rbp + 0xf]
test rax, rax
je 0x180009860
mov rcx, qword [rbx]
lea rdx, [rbp + 0x7f]
call rax
test eax, eax
je 0x180009860
mov dword [rbp - 0x69], 0xb5aed1a8
mov dword [rbp - 0x65], 0xb9aab3a8
mov word [rbp - 0x61], 0xb1
mov qword [rbp + 0x6f], r15
mov rax, qword [rbp + 0x6f]
nop word [rax + rax]
mov rcx, qword [rbp + 0x6f]
mov rax, qword [rbp + 0x6f]
sub cl, 0x7e
xor cl, byte [rbp + rax - 0x68]
mov rax, qword [rbp + 0x6f]
mov byte [rbp + rax - 0x68], cl
mov rax, qword [rbp + 0x6f]
inc rax
mov qword [rbp + 0x6f], rax
mov rax, qword [rbp + 0x6f]
cmp rax, 8
jb 0x1800097a0
mov rsi, qword [rbp + 0x7f]
lea r8, [rbp - 0x68]
mov rbx, rsi
mov byte [rbp - 0x60], r15b
nop dword [rax + rax]
movsx eax, byte [rbx]
lea rbx, [rbx + 1]
movsx r9d, byte [r8]
mov edx, eax
sub al, 0x41
mov edi, r9d
cmp al, 0x19
lea ecx, [rdx + 0x20]
cmova ecx, edx
lea r10d, [r9 - 0x41]
cmp r10b, 0x19
lea r11d, [r9 + 0x20]
mov eax, r11d
cmova eax, r9d
cmp eax, ecx
jne 0x180009828
inc r8
test r9b, r9b
jne 0x1800097e0
mov rcx, rsi
call r14
mov rbx, qword [rbp + 0xf]
mov dil, 1
jmp 0x180009863
movsx eax, byte [rbx - 1]
mov edx, eax
sub al, 0x41
cmp al, 0x19
lea r8d, [rdx + 0x20]
cmova r8d, edx
cmp r10b, 0x19
cmova r11d, r9d
sub r11d, r8d
jne 0x180009856
mov rcx, rsi
call r14
mov rbx, qword [rbp + 0xf]
mov dil, 1
jmp 0x180009863
mov rcx, rsi
call r14
mov rbx, qword [rbp + 0xf]
xor dil, dil
test rbx, rbx
je 0x180009898
mov rdx, qword [rbp + 0x1f]
mov rax, rbx
sub rdx, rbx
cmp rdx, 0x1000
jb 0x180009890
mov rbx, qword [rbx - 8]
add rdx, 0x27
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800098b6
mov rcx, rbx
call fcn.180360d9c
movzx eax, dil
jmp 0x1800098a0
xor al, al
mov r14, qword [rsp + 0xc8]
add rsp, 0xd0
pop r15
pop rdi
pop rsi
pop rbx
pop rbp
ret
call fcn.1803687c0
int3