Function at 0x1800129c0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x380
mov qword [rsp + 0x60], 0xfffffffffffffffe
mov qword [rsp + 0x3d8], rbx
mov rax, qword [0x180065480]
xor rax, rsp
mov qword [rsp + 0x370], rax
mov rbp, r8
mov qword [rsp + 0x38], r8
movsxd rsi, edx
mov r12, rcx
mov qword [rsp + 0x58], rcx
mov qword [rsp + 0x68], rcx
call fcn.180019554
mov rcx, rax
xor r14d, r14d
mov r8d, r14d
test rax, rax
setne r8b
test r8d, r8d
jne 0x180012a33
mov ecx, 0x80004005
call fcn.180002660
int3
mov rax, qword [rax]
call qword [rax + 0x18]
lea rdi, [rax + 0x18]
mov qword [rsp + 0x20], rdi
call fcn.180019554
mov r11, rax
mov ecx, r14d
test rax, rax
setne cl
test ecx, ecx
jne 0x180012a62
mov ecx, 0x80004005
call fcn.180002660
int3
mov rax, qword [rax]
mov rcx, r11
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x30], rbx
mov byte [rsp + 0x70], 0
xor edx, edx
mov r8d, 0xff
lea rcx, [rsp + 0x71]
call fcn.18002de40
mov r11, qword [r12]
test esi, esi
js 0x180013003
cmp esi, dword [r11 - 0x10]
jg 0x180013003
lea rcx, [r11 + rsi]
lea rdx, [0x180056f18]
call fcn.18002d308
test rax, rax
je 0x180013003
sub eax, dword [r12]
cmp eax, 0xffffffff
je 0x180013003
sub eax, esi
lea r8d, [rsi + 2]
lea r9d, [rax - 2]
lea rdx, [rsp + 0x50]
mov rcx, r12
call fcn.180015d10
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
add rdi, 0xffffffffffffffe8
or r15d, 0xffffffff
cmp rcx, rdi
je 0x180012b3e
cmp dword [rdi + 0x10], 0
jl 0x180012b2f
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x180012b2f
call fcn.1800165c0
mov rbx, rax
mov ecx, r15d
lock xadd dword [rdi + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x180012b24
mov rcx, qword [rdi]
mov r8, qword [rcx]
mov rdx, rdi
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
lea rax, [rbx + 0x18]
mov qword [rsp + 0x20], rax
jmp 0x180012b3e
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x20]
call fcn.180016470
nop
mov rdx, qword [rsp + 0x50]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x180012b5e
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [rsp + 0x20]
lea rdx, [rsp + 0x170]
sub rdx, rax
nop
movzx ecx, byte [rax]
mov byte [rdx + rax], cl
inc rax
test cl, cl
jne 0x180012b70
lea r8, [0x180054f3c]
lea rdx, [0x180053c54]
lea rcx, [rsp + 0x20]
call fcn.180015830
mov r13d, r14d
mov dword [rsp + 0x28], r14d
mov rdi, qword [rsp + 0x30]
nop word [rax + rax]
mov rbx, qword [rsp + 0x20]
cmp dword [rbx - 0x10], 0
jl 0x180012e63
lea rdx, [0x180056f1c]
mov rcx, rbx
call fcn.18002d308
mov rsi, rax
test rax, rax
je 0x180012e63
sub esi, ebx
cmp esi, 0xffffffff
je 0x180012e63
mov r8d, esi
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x20]
call fcn.180015de0
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
add rdi, 0xffffffffffffffe8
cmp rcx, rdi
je 0x180012c53
cmp dword [rdi + 0x10], 0
jl 0x180012c44
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x180012c44
call fcn.1800165c0
mov rbx, rax
mov ecx, r15d
lock xadd dword [rdi + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x180012c39
mov rcx, qword [rdi]
mov r8, qword [rcx]
mov rdx, rdi
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
lea rax, [rbx + 0x18]
mov qword [rsp + 0x30], rax
jmp 0x180012c53
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x30]
call fcn.180016470
nop
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x180012c73
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea r8d, [rsi + 1]
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x20]
call fcn.180015ce0
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
mov rbx, qword [rsp + 0x20]
add rbx, 0xffffffffffffffe8
cmp rcx, rbx
je 0x180012ce7
cmp dword [rbx + 0x10], 0
jl 0x180012cd8
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x180012cd8
call fcn.1800165c0
mov rdi, rax
mov ecx, r15d
lock xadd dword [rbx + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x180012ccd
mov rcx, qword [rbx]
mov r8, qword [rcx]
mov rdx, rbx
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
lea rax, [rdi + 0x18]
mov qword [rsp + 0x20], rax
jmp 0x180012ce7
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x20]
call fcn.180016470
nop
mov rdx, qword [rsp + 0x48]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x180012d07
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rdi, qword [rsp + 0x30]
mov r12d, dword [rdi - 0x10]
cmp dword [rdi - 8], 1
jle 0x180012d28
mov edx, r12d
lea rcx, [rsp + 0x30]
call fcn.1800163c0
mov rdi, qword [rsp + 0x30]
mov esi, r14d
mov rbx, r14
mov ecx, r14d
mov eax, r12d
cdq
and edx, 3
add eax, edx
and eax, 3
cmp eax, edx
jne 0x180012d8f
test r12d, r12d
je 0x180012d8f
nop word [rax + rax]
lea ebp, [rcx + 3]
cmp ebp, 0x100
jg 0x180012d8a
movsxd rax, ecx
lea rdx, [rsp + rax + 0x70]
movsxd rcx, esi
add rcx, rdi
call fcn.180007260
cmp byte [rbx + rdi + 2], 0x3d
je 0x180012d8a
cmp byte [rbx + rdi + 3], 0x3d
je 0x180012d8a
mov ecx, ebp
add esi, 4
add rbx, 4
cmp esi, r12d
jne 0x180012d50
mov rbp, qword [rsp + 0x38]
movsxd rdx, dword [rdi - 0xc]
mov rcx, rdi
call fcn.18002d310
test eax, eax
js 0x180012e58
cmp eax, dword [rdi - 0xc]
jg 0x180012e58
mov dword [rdi - 0x10], eax
cdqe
mov byte [rax + rdi], 0
mov ecx, r14d
cmp byte [rsp + 0x70], cl
je 0x180012dcd
lea rax, [rsp + 0x70]
inc ecx
inc rax
cmp byte [rax], 0
jne 0x180012dc3
mov rax, r14
movsxd rdx, ecx
test ecx, ecx
jle 0x180012ded
nop word [rax + rax]
xor byte [rsp + rax + 0x70], 0xef
inc rax
cmp rax, rdx
jl 0x180012de0
lea rcx, [rsp + 0x70]
movsxd rdx, r13d
imul rdx, rdx, 0x102
add rdx, rbp
lea rax, [rsp + 0x70]
mov r8, rdx
sub r8, rax
nop word [rax + rax]
movzx eax, byte [rcx]
mov byte [r8 + rcx], al
inc rcx
test al, al
jne 0x180012e10
mov rcx, rdi
sub rdx, rdi
nop word [rax + rax]
movzx eax, byte [rcx]
mov byte [rdx + rcx + 0x82], al
inc rcx
test al, al
jne 0x180012e30
inc r13d
mov dword [rsp + 0x28], r13d
cmp r13d, 5
jge 0x180012f91
jmp 0x180012bb0
mov ecx, 0x80070057
call fcn.180002660
int3
movsxd rbp, dword [rbx - 0x10]
cmp dword [rbx - 8], 1
jle 0x180012e7f
mov edx, dword [rbx - 0x10]
lea rcx, [rsp + 0x20]
call fcn.1800163c0
mov rbx, qword [rsp + 0x20]
mov r12d, r14d
mov ecx, r14d
mov eax, ebp
cdq
and edx, 3
add eax, edx
and eax, 3
cmp eax, edx
jne 0x180012ee7
mov rsi, r14
mov r13, rbp
test ebp, ebp
je 0x180012ee2
nop
lea ebp, [rcx + 3]
cmp ebp, 0x100
jg 0x180012edb
movsxd rax, ecx
lea rdx, [rsp + rax + 0x70]
movsxd rcx, r12d
add rcx, rbx
call fcn.180007260
cmp byte [rsi + rbx + 2], 0x3d
je 0x180012edb
cmp byte [rsi + rbx + 3], 0x3d
je 0x180012edb
mov ecx, ebp
add r12d, 4
add rsi, 4
cmp rsi, r13
jne 0x180012ea0
mov r13d, dword [rsp + 0x28]
jmp 0x180012ee7
mov r13d, dword [rsp + 0x28]
movsxd rdx, dword [rbx - 0xc]
mov rcx, rbx
call fcn.18002d310
test eax, eax
js 0x180012ff8
cmp eax, dword [rbx - 0xc]
jg 0x180012ff8
mov dword [rbx - 0x10], eax
cdqe
mov byte [rax + rbx], 0
mov ecx, r14d
cmp byte [rsp + 0x70], cl
je 0x180012f2a
lea rax, [rsp + 0x70]
nop dword [rax + rax]
inc ecx
inc rax
cmp byte [rax], 0
jne 0x180012f20
movsxd rax, ecx
test ecx, ecx
jle 0x180012f3f
xor byte [rsp + r14 + 0x70], 0xef
inc r14
cmp r14, rax
jl 0x180012f31
lea rcx, [rsp + 0x70]
movsxd rax, r13d
imul rax, rax, 0x102
mov rdx, qword [rsp + 0x38]
add rdx, rax
lea rax, [rsp + 0x70]
mov r8, rdx
sub r8, rax
movzx eax, byte [rcx]
mov byte [r8 + rcx], al
inc rcx
test al, al
jne 0x180012f61
sub rdx, rbx
nop word [rax + rax]
movzx eax, byte [rbx]
mov byte [rdx + rbx + 0x82], al
inc rbx
test al, al
jne 0x180012f80
lea rdx, [rdi - 0x18]
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x180012fad
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x20]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x180012fce
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x58]
mov rdx, qword [rdx]
sub rdx, 0x18
lock xadd dword [rdx + 0x10], r15d
dec r15d
test r15d, r15d
jg 0x180012ff1
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov eax, 1
jmp 0x180013065
mov ecx, 0x80070057
call fcn.180002660
nop
lea rdx, [rbx - 0x18]
or r15d, 0xffffffff
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x180013023
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x20]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x180013044
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [r12]
sub rdx, 0x18
lock xadd dword [rdx + 0x10], r15d
dec r15d
test r15d, r15d
jg 0x180013063
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor eax, eax
mov rcx, qword [rsp + 0x370]
xor rcx, rsp
call fcn.18002bd00
mov rbx, qword [rsp + 0x3d8]
add rsp, 0x380
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret