Function at 0x14005c870
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x4b0]
sub rsp, 0x5b0
mov rax, qword [0x14016d4c0]
xor rax, rsp
mov qword [rbp + 0x4a0], rax
xor ebx, ebx
mov ecx, reloc.WLDAP32.dll_Ordinal_32
call qword [sym.imp.d3d9.dll_Direct3DCreate9]
mov rdi, rax
test rax, rax
je 0x14005c8df
mov rax, qword [rax]
lea r9, [rbp + 0x50]
xor r8d, r8d
xor edx, edx
mov rcx, rdi
call qword [rax + Ordinal_41]
mov rcx, qword [rdi]
mov rdx, qword [rcx + 0x10]
mov rcx, rdi
test eax, eax
jns 0x14005c8e7
call rdx
mov rax, rbx
jmp 0x14005cfff
call rdx
mov r8, qword [0x14017a328]
lea rcx, [r8 + 0x20]
mov rdx, qword [r8 + 0x10]
mov r10, qword [rcx + 0x10]
movabs r15, 0x7fffffffffffffff
mov rax, r15
sub rax, rdx
cmp rax, r10
jb 0x14005d035
mov r9, r8
cmp qword [r8 + 0x18], 0xf
jbe 0x14005c922
mov r9, qword [r8]
cmp qword [rcx + 0x18], 0xf
jbe 0x14005c92c
mov rcx, qword [rcx]
mov qword [rsp + 0x30], r10
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rdx
movzx edx, byte [rsp + 0x40]
lea rcx, [rbp + 0x28]
call fcn.140009380
nop
lea r9, [rbp + 0x28]
mov r12, qword [rbp + 0x28]
cmp qword [rbp + 0x40], 0xf
cmova r9, r12
mov rcx, rbx
mov rdx, rbx
mov r8, qword [rbp + 0x38]
test r8, r8
je 0x14005c991
nop word [rax + rax]
movsx rax, byte [r9 + rdx]
add rax, rcx
imul rcx, rax, 0x401
mov rax, rcx
shr rax, 6
xor rcx, rax
inc rdx
cmp rdx, r8
jb 0x14005c970
lea rax, [rcx + rcx*8]
mov rcx, rax
shr rcx, 0xb
xor rcx, rax
imul rax, rcx, 0x8001
movabs r13, 0x5851f42d4c957f2d
test rax, rax
jne 0x14005c9be
imul r8, r13
inc r8
jmp 0x14005c9c1
mov r8, rax
mov rax, qword [0x14017a328]
sub r8, qword [rax + 0x40]
cmp byte [rax + 0x48], 0
sete al
lea rcx, [0x14014f28c]
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x58], 5
mov byte [rbp - 0x70], al
movabs rax, 0x5000000000000000
mov qword [rbp - 0x80], rax
mov qword [rbp - 0x6f], r8
movabs rax, 0x4000000000000001
mov qword [rbp - 0x78], rax
mov qword [rsp + 0x70], 2
lea rax, [rbp - 0x80]
mov qword [rsp + 0x78], rax
movaps xmm0, xmmword [rsp + 0x70]
movdqa xmmword [rsp + 0x60], xmm0
movaps xmm1, xmmword [rsp + 0x50]
movdqa xmmword [rsp + 0x50], xmm1
lea r8, [rsp + 0x60]
lea rdx, [rsp + 0x50]
lea rcx, [rbp - 0x40]
call fcn.140008620
nop
mov r8, qword [0x14017a328]
lea rcx, [r8 + 0x20]
mov rdx, qword [r8 + 0x10]
mov r10, qword [rcx + 0x10]
mov rax, r15
sub rax, rdx
cmp rax, r10
jb 0x14005d03b
mov r9, r8
cmp qword [r8 + 0x18], 0xf
jbe 0x14005ca76
mov r9, qword [r8]
cmp qword [rcx + 0x18], 0xf
jbe 0x14005ca80
mov rcx, qword [rcx]
mov qword [rsp + 0x30], r10
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rdx
movzx edx, byte [rsp + 0x40]
lea rcx, [rbp - 0x60]
call fcn.140009380
nop
lea r9, [rbp - 0x40]
cmp qword [rbp - 0x28], 0xf
cmova r9, qword [rbp - 0x40]
mov rcx, rbx
mov rdx, rbx
mov r8, qword [rbp - 0x30]
test r8, r8
je 0x14005cae1
nop dword [rax + rax]
movsx rax, byte [rdx + r9]
add rax, rcx
imul rcx, rax, 0x401
mov rax, rcx
shr rax, 6
xor rcx, rax
inc rdx
cmp rdx, r8
jb 0x14005cac0
lea rax, [rcx + rcx*8]
mov rcx, rax
shr rcx, 0xb
xor rcx, rax
imul rax, rcx, 0x8001
test rax, rax
jne 0x14005cb04
imul r8, r13
inc r8
jmp 0x14005cb07
mov r8, rax
lea r10, [rbp - 0x60]
mov rsi, qword [rbp - 0x60]
mov r14, qword [rbp - 0x48]
cmp r14, 0xf
cmova r10, rsi
mov rcx, rbx
mov rdx, rbx
mov r9, qword [rbp - 0x50]
test r9, r9
je 0x14005cb51
nop word [rax + rax]
movsx rax, byte [rdx + r10]
add rax, rcx
imul rcx, rax, 0x401
mov rax, rcx
shr rax, 6
xor rcx, rax
inc rdx
cmp rdx, r9
jb 0x14005cb30
lea rax, [rcx + rcx*8]
mov rcx, rax
shr rcx, 0xb
xor rcx, rax
imul rax, rcx, 0x8001
test rax, rax
jne 0x14005cb74
imul r9, r13
inc r9
jmp 0x14005cb77
mov r9, rax
imul r9, r8
mov rcx, qword [0x14017a328]
mov r8, qword [rcx + 0x40]
inc r8
xor edx, edx
mov rax, r9
div r8
lea rcx, [0x14014c488]
mov qword [rsp + 0x60], rcx
mov qword [rsp + 0x68], 2
mov qword [rsp + 0x58], rax
movabs rax, 0x4000000000000000
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x70], 1
lea rax, [rsp + 0x50]
mov qword [rsp + 0x78], rax
movaps xmm0, xmmword [rsp + 0x70]
movdqa xmmword [rsp + 0x70], xmm0
movaps xmm1, xmmword [rsp + 0x60]
movdqa xmmword [rsp + 0x60], xmm1
lea r8, [rsp + 0x70]
lea rdx, [rsp + 0x60]
lea rcx, [rbp - 0x18]
call fcn.140008620
lea r8, [rbp - 0x18]
mov r9, qword [rbp - 0x18]
mov r10, qword [rbp]
cmp r10, 0xf
cmova r8, r9
mov rcx, rbx
mov rdx, rbx
mov rdi, qword [rbp - 8]
test rdi, rdi
je 0x14005cc41
nop dword [rax]
movsx rax, byte [r8 + rdx]
add rax, rcx
imul rcx, rax, 0x401
mov rax, rcx
shr rax, 6
xor rcx, rax
inc rdx
cmp rdx, rdi
jb 0x14005cc20
lea rax, [rcx + rcx*8]
mov rcx, rax
shr rcx, 0xb
xor rcx, rax
imul rax, rcx, 0x8001
test rax, rax
jne 0x14005cc64
imul rdi, r13
inc rdi
jmp 0x14005cc67
mov rdi, rax
mov rax, qword [0x14017a248]
mov r13, qword [rax + 0x10]
cmp r10, 0xf
jbe 0x14005cca9
lea rdx, [r10 + 1]
mov rax, r9
cmp rdx, 0x1000
jb 0x14005cca1
add rdx, 0x27
mov r9, qword [r9 - 8]
sub rax, r9
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14005d041
mov rcx, r9
call fcn.1400c4e5c
movdqa xmm0, xmmword [0x140150640]
movdqu xmmword [rbp - 8], xmm0
mov byte [rbp - 0x18], 0
cmp r14, 0xf
jbe 0x14005ccf9
lea rdx, [r14 + 1]
mov rax, rsi
cmp rdx, 0x1000
jb 0x14005cce9
add rdx, 0x27
mov rsi, qword [rsi - 8]
sub rax, rsi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14005d047
mov rcx, rsi
call fcn.1400c4e5c
movdqa xmm0, xmmword [0x140150640]
mov rdx, qword [rbp - 0x28]
cmp rdx, 0xf
jbe 0x14005cd3c
inc rdx
mov rcx, qword [rbp - 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14005cd2f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14005d04d
call fcn.1400c4e5c
movdqa xmm0, xmmword [0x140150640]
movdqu xmmword [rbp - 0x30], xmm0
mov byte [rbp - 0x40], 0
mov rax, qword [rbp + 0x40]
cmp rax, 0xf
jbe 0x14005cd81
lea rdx, [rax + 1]
mov rax, r12
cmp rdx, 0x1000
jb 0x14005cd79
add rdx, 0x27
mov r12, qword [r12 - 8]
sub rax, r12
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14005d053
mov rcx, r12
call fcn.1400c4e5c
cmp r13, rdi
je 0x14005cd8c
inc dword [rbp + 0x478]
mov r8, qword [0x14017a328]
lea rax, [r8 + 0x20]
mov rcx, qword [r8 + 0x10]
mov rdx, qword [rax + 0x10]
sub r15, rcx
cmp r15, rdx
jb 0x14005d059
mov r9, r8
cmp qword [r8 + 0x18], 0xf
jbe 0x14005cdb8
mov r9, qword [r8]
cmp qword [rax + 0x18], 0xf
jbe 0x14005cdc2
mov rax, qword [rax]
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rcx
movzx edx, byte [rsp + 0x40]
lea rcx, [rbp - 0x60]
call fcn.140009380
nop
lea r9, [rbp - 0x60]
mov rsi, qword [rbp - 0x60]
mov r14, qword [rbp - 0x48]
cmp r14, 0xf
cmova r9, rsi
mov rcx, rbx
mov rdx, rbx
mov r8, qword [rbp - 0x50]
test r8, r8
je 0x14005ce31
nop dword [rax]
nop word [rax + rax]
movsx rax, byte [r9 + rdx]
add rax, rcx
imul rcx, rax, 0x401
mov rax, rcx
shr rax, 6
xor rcx, rax
inc rdx
cmp rdx, r8
jb 0x14005ce10
lea rax, [rcx + rcx*8]
mov rcx, rax
shr rcx, 0xb
xor rcx, rax
imul rax, rcx, 0x8001
movabs r15, 0x5851f42d4c957f2d
test rax, rax
jne 0x14005ce5e
imul r8, r15
inc r8
jmp 0x14005ce61
mov r8, rax
mov rax, qword [0x14017a328]
sub r8, qword [rax + 0x40]
cmp byte [rax + 0x48], 0
sete al
lea rcx, [0x14014f28c]
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x58], 5
mov byte [rbp - 0x70], al
movabs rax, 0x5000000000000000
mov qword [rbp - 0x80], rax
mov qword [rbp - 0x6f], r8
movabs rax, 0x4000000000000001
mov qword [rbp - 0x78], rax
mov qword [rsp + 0x60], 2
lea rax, [rbp - 0x80]
mov qword [rsp + 0x68], rax
movaps xmm0, xmmword [rsp + 0x60]
movdqa xmmword [rsp + 0x60], xmm0
movaps xmm1, xmmword [rsp + 0x50]
movdqa xmmword [rsp + 0x50], xmm1
lea r8, [rsp + 0x60]
lea rdx, [rsp + 0x50]
lea rcx, [rbp + 8]
call fcn.140008620
lea rdx, [rbp + 8]
mov r8, qword [rbp + 8]
mov r9, qword [rbp + 0x20]
cmp r9, 0xf
cmova rdx, r8
mov rcx, rbx
mov rdi, qword [rbp + 0x18]
test rdi, rdi
je 0x14005cf31
nop word [rax + rax]
movsx rax, byte [rdx + rcx]
add rax, rbx
imul rbx, rax, 0x401
mov rax, rbx
shr rax, 6
xor rbx, rax
inc rcx
cmp rcx, rdi
jb 0x14005cf10
lea rax, [rbx + rbx*8]
mov rcx, rax
shr rcx, 0xb
xor rcx, rax
imul rax, rcx, 0x8001
test rax, rax
jne 0x14005cf54
imul rdi, r15
inc rdi
jmp 0x14005cf57
mov rdi, rax
mov rax, qword [0x14017a248]
mov rbx, qword [rax + 8]
cmp r9, 0xf
jbe 0x14005cf99
lea rdx, [r9 + 1]
mov rax, r8
cmp rdx, 0x1000
jb 0x14005cf91
add rdx, 0x27
mov r8, qword [r8 - 8]
sub rax, r8
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14005d05f
mov rcx, r8
call fcn.1400c4e5c
movdqa xmm0, xmmword [0x140150640]
movdqu xmmword [rbp + 0x18], xmm0
mov byte [rbp + 8], 0
cmp r14, 0xf
jbe 0x14005cfdd
lea rdx, [r14 + 1]
mov rax, rsi
cmp rdx, 0x1000
jb 0x14005cfd5
add rdx, 0x27
mov rsi, qword [rsi - 8]
sub rax, rsi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14005d02f
mov rcx, rsi
call fcn.1400c4e5c
cmp rbx, rdi
je 0x14005cfec
mov eax, dword [rbp + 0x47c]
dec eax
jmp 0x14005cff2
mov eax, dword [rbp + 0x47c]
shl rax, 0x20
mov ecx, dword [rbp + 0x478]
or rax, rcx
mov rcx, qword [rbp + 0x4a0]
xor rcx, rsp
call fcn.1400c4df0
lea r11, [rsp + 0x5b0]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
call fcn.1400d3b88
int3
call fcn.140001a20
nop
call fcn.140001a20
nop
call fcn.1400d3b88
nop
call fcn.1400d3b88
nop
call fcn.1400d3b88
nop
call fcn.1400d3b88
int3
call fcn.140001a20
nop
call fcn.1400d3b88
int3