Function at 0x1400051d0
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rdi
push r13
push r15
sub rsp, 0x248
mov r13, rcx
lea rcx, [rsp + 0x130]
xor r15d, r15d
xor edx, edx
mov r8d, 0x100
mov dword [rsp + 0x270], r15d
call fcn.140025d70
mov rax, qword [str._alsC]
mov rdi, qword [r13 + 0x13a0]
mov rcx, qword [rdi - 0x18]
lea rdx, [rsp + 0x60]
mov qword [rdx], rax
mov rax, qword [0x140045c68]
mov qword [rdx + 8], rax
mov rax, qword [rcx]
call qword [rax + 0x20]
cmp dword [rdi - 8], r15d
mov rcx, rax
jl 0x140005246
cmp rax, qword [rdi - 0x18]
jne 0x140005246
lea rbx, [rdi - 0x18]
lock add dword [rdi - 8], 1
jmp 0x140005283
mov rax, qword [rax]
mov edx, dword [rdi - 0x10]
mov r8d, 2
call qword [rax]
test rax, rax
mov rbx, rax
jne 0x140005262
call fcn.1400020d0
int3
mov eax, dword [rdi - 0x10]
lea rcx, [rbx + 0x18]
mov r8, rdi
mov dword [rbx + 8], eax
mov eax, dword [rdi - 0x10]
add eax, 1
movsxd rdx, eax
add rdx, rdx
mov r9, rdx
call fcn.140024d40
add rbx, 0x18
mov qword [rsp + 0x278], rbp
mov qword [rsp + 0x240], rsi
lea rdi, [0x140045478]
mov ecx, 1
mov rsi, rbx
repe cmpsw word [rsi], word [rdi]
mov qword [rsp + 0xa0], rbx
jne 0x1400052db
lea rdx, [rbx - 0x18]
or rbp, 0xffffffffffffffff
lock xadd dword [rdx + 0x10], ebp
add ebp, 0xffffffff
test ebp, ebp
jg 0x1400053e1
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor eax, eax
jmp 0x1400057bd
xor r9d, r9d
mov qword [rsp + 0x30], r15
mov edx, 0xc0000000
lea r8d, [r9 + 3]
mov rcx, rbx
mov dword [rsp + 0x28], r15d
mov dword [rsp + 0x20], 3
call qword [sym.imp.KERNEL32.dll_CreateFileW]
cmp rax, 0xffffffffffffffff
mov rdi, rax
jne 0x140005331
lea rdx, [rbx - 0x18]
or rbp, rax
lock xadd dword [rdx + 0x10], ebp
add ebp, eax
test ebp, ebp
jg 0x1400053e1
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor eax, eax
jmp 0x1400057bd
lea rdx, [rsp + 0x88]
lea rcx, [rsp + 0x60]
mov qword [rsp + 0x38], r15
mov rax, qword [rcx]
lea r8, [rsp + 0x88]
mov r9d, 0x18
mov qword [rdx], rax
mov rax, qword [rcx + 8]
mov rcx, rdi
mov qword [rdx + 8], rax
lea rax, [rsp + 0x288]
mov edx, 0x2f0003
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x270]
mov dword [rsp + 0x28], 4
mov dword [rsp + 0x9c], 1
mov dword [rsp + 0x98], r15d
mov dword [rsp + 0x288], r15d
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov esi, eax
call qword [sym.imp.KERNEL32.dll_GetLastError]
test rdi, rdi
je 0x1400053c0
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test esi, esi
jne 0x1400053e8
lea rdx, [rbx - 0x18]
or rbp, 0xffffffffffffffff
lock xadd dword [rdx + 0x10], ebp
add ebp, 0xffffffff
test ebp, ebp
jg 0x1400053e1
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor eax, eax
jmp 0x1400057bd
or rbp, 0xffffffffffffffff
lea rdx, [rbx - 0x18]
mov ecx, ebp
lock xadd dword [rdx + 0x10], ecx
add ecx, ebp
test ecx, ecx
jg 0x140005406
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov ecx, dword [rsp + 0x270]
test ecx, ecx
jne 0x140005419
lea eax, [rcx + 1]
jmp 0x1400057bd
lea rdx, [rcx + rcx*2]
mov dword [r13], ecx
mov eax, 4
mov qword [rsp + 0x238], r12
mul rdx
cmovo rax, rbp
mov rcx, rax
call fcn.14000fa54
test rax, rax
mov r12, rax
je 0x1400057b5
mov eax, dword [rsp + 0x270]
mov rdi, qword [r13 + 0x13a0]
lea rcx, [rsp + 0x60]
mov qword [rsp + 0x230], r14
lea r14d, [rax + rax*2]
mov rax, qword [str._alsC]
mov qword [rcx], rax
mov rax, qword [0x140045c68]
shl r14d, 2
mov qword [rcx + 8], rax
mov rcx, qword [rdi - 0x18]
mov rax, qword [rcx]
call qword [rax + 0x20]
cmp dword [rdi - 8], r15d
mov rcx, rax
jl 0x1400054a5
cmp rax, qword [rdi - 0x18]
jne 0x1400054a5
lea rbx, [rdi - 0x18]
lock add dword [rdi - 8], 1
jmp 0x1400054e2
mov rax, qword [rax]
mov edx, dword [rdi - 0x10]
mov r8d, 2
call qword [rax]
test rax, rax
mov rbx, rax
jne 0x1400054c1
call fcn.1400020d0
int3
mov eax, dword [rdi - 0x10]
lea rcx, [rbx + 0x18]
mov r8, rdi
mov dword [rbx + 8], eax
mov eax, dword [rdi - 0x10]
add eax, 1
movsxd rdx, eax
add rdx, rdx
mov r9, rdx
call fcn.140024d40
add rbx, 0x18
lea rdi, [0x140045478]
mov ecx, 1
mov rsi, rbx
mov qword [rsp + 0x40], rbx
repe cmpsw word [rsi], word [rdi]
jne 0x14000552b
lea rdx, [rbx - 0x18]
lock xadd dword [rdx + 0x10], ebp
add ebp, 0xffffffff
test ebp, ebp
jg 0x14000561e
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rcx, r12
call fcn.14000fa5c
xor eax, eax
jmp 0x1400057ad
xor r9d, r9d
mov qword [rsp + 0x30], r15
mov edx, 0xc0000000
lea r8d, [r9 + 3]
mov rcx, rbx
mov dword [rsp + 0x28], r15d
mov dword [rsp + 0x20], 3
call qword [sym.imp.KERNEL32.dll_CreateFileW]
cmp rax, 0xffffffffffffffff
mov rdi, rax
jne 0x140005586
lea rdx, [rbx - 0x18]
lock xadd dword [rdx + 0x10], ebp
add ebp, eax
test ebp, ebp
jg 0x14000561e
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rcx, r12
call fcn.14000fa5c
xor eax, eax
jmp 0x1400057ad
lea rdx, [rsp + 0x70]
lea rcx, [rsp + 0x60]
mov qword [rsp + 0x38], r15
mov rax, qword [rcx]
lea r8, [rsp + 0x70]
mov r9d, 0x18
mov qword [rdx], rax
mov rax, qword [rcx + 8]
mov rcx, rdi
mov qword [rdx + 8], rax
lea rax, [rsp + 0x50]
mov edx, 0x2f0003
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], r14d
mov dword [rsp + 0x84], 1
mov qword [rsp + 0x20], r12
mov dword [rsp + 0x80], 1
mov dword [rsp + 0x50], r15d
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov esi, eax
call qword [sym.imp.KERNEL32.dll_GetLastError]
test rdi, rdi
je 0x140005601
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test esi, esi
jne 0x14000562d
lea rdx, [rbx - 0x18]
lock xadd dword [rdx + 0x10], ebp
add ebp, 0xffffffff
test ebp, ebp
jg 0x14000561e
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rcx, r12
call fcn.14000fa5c
xor eax, eax
jmp 0x1400057ad
lea rdx, [rbx - 0x18]
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x140005648
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov esi, dword [rsp + 0x270]
lea rcx, [rsp + 0x130]
mov rdx, r12
lea rdi, [rsi*8]
mov rbx, rsi
mov r8, rdi
call fcn.1400268f0
shr rdi, 2
lea r8, [rsi*4]
lea rdx, [r12 + rdi*4]
lea rcx, [rsp + 0xb0]
call fcn.1400268f0
test esi, esi
je 0x1400057a8
mov r12d, dword [rsp + 0x48]
mov esi, dword [rsp + 0x44]
mov r8d, dword [rsp + 0x40]
mov r9d, dword [rsp + 0x274]
mov r10d, dword [rsp + 0x270]
lea rdx, [r13 + 0x98]
add r13, 0xa4
lea r11, [rsp + 0xb0]
lea rdi, [rsp + 0x134]
nop
mov ecx, dword [rdi - 4]
mov eax, r8d
add rdx, 0x9c
xor eax, ecx
add r13, 0x9c
add rdi, 8
movzx eax, al
add r11, 4
xor r8d, eax
mov eax, ecx
shr ecx, 0xc
shr eax, 8
mov dword [rsp + 0x40], r8d
xor eax, esi
and eax, 0xf
xor esi, eax
mov eax, r12d
mov r12d, ecx
and eax, 0xfff00000
lea rcx, [rsp + 0x40]
mov dword [rsp + 0x44], esi
or r12d, eax
mov dword [rsp + 0x48], r12d
mov eax, dword [rcx]
mov dword [rdx - 0x11c], eax
mov eax, dword [rcx + 4]
mov dword [rdx - 0x118], eax
mov eax, dword [rcx + 8]
mov ecx, dword [rdi - 8]
mov dword [rdx - 0x114], eax
mov eax, r10d
xor eax, ecx
shr ecx, 8
movzx eax, al
xor ecx, r9d
xor r10d, eax
movzx eax, cx
xor r9d, eax
mov dword [rsp + 0x270], r10d
mov dword [rsp + 0x274], r9d
mov rax, qword [rsp + 0x270]
mov qword [rdx - 0x9c], rax
mov eax, dword [r11 - 4]
mov dword [rdx - 0x94], eax
xor eax, eax
sub rbx, 1
mov dword [r13 - 0x9c], eax
mov dword [r13 - 0x98], eax
mov dword [r13 - 0x94], eax
mov dword [rdx - 0x84], ebp
jne 0x1400056d0
mov eax, 1
mov r14, qword [rsp + 0x230]
mov r12, qword [rsp + 0x238]
mov rbp, qword [rsp + 0x278]
mov rsi, qword [rsp + 0x240]
add rsp, 0x248
pop r15
pop r13
pop rdi
pop rbx
ret