Function at 0x1800178a8
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x80
mov edx, dword [rsp + 0x130]
lea edi, [r8 - 0x625]
mov r15d, dword [rsp + 0x100]
lea ebp, [rcx + 0x5aa]
mov r13d, dword [rsp + 0x128]
lea eax, [rbp + 0x132]
mov r10d, dword [rsp + 0x120]
lea r9d, [rcx - 0x2f79]
mov rbx, qword [rsp + 0xf8]
lea r14d, [rdx - 0x2b0]
add edx, 0xfffffde9
mov dword [rsp + 0xc0], r14d
add r15d, 0x40e
mov dword [rsp + 0x130], r9d
add r13d, 0x293
mov dword [rsp + 0xd0], r15d
add r10d, 0xffffc84f
mov dword [rsp + 0x74], edi
mov dword [rsp + 0x70], r13d
lea r8d, [rcx + 0x6dc]
mov dword [rsp + 0x128], r10d
mov dword [rsp + 0x100], edx
cmp edi, eax
jg 0x1800180ec
mov rax, qword [rbx + 0x118]
mov esi, 0x338c
mov r8d, esi
mov ecx, dword [rax + 0x168]
mov rax, qword [rbx + 0x358]
add ecx, 0x657232d7
mov dword [rax + 8], ecx
xor qword [rbx + 0x340], 0x8b0
mov r9, qword [rbx + 0xe8]
imul eax, dword [r9 + 0x168], 0x4b8f10bc
cmp eax, esi
jb 0x1800179d8
mov rdx, qword [rbx + 0x90]
inc r8d
mov rax, 0xfffffffffffffea0
sub rax, rbx
add rdx, rax
movsxd rax, r8d
mov qword [rbx + 0x90], rdx
imul ecx, dword [r9 + 0x168], 0x4b8f10bc
cmp rax, rcx
jbe 0x1800179ae
mov rax, qword [rbx + 0x190]
mov edi, 0x3a05
mov edx, edi
mov ecx, dword [rax + 0x4f8]
mov rax, qword [rbx + 0x358]
add ecx, 0x396e
mov dword [rax + 0xc], ecx
mov rax, 0xffffffffffffc876
mov rcx, qword [rbx + 0x510]
sub rax, qword [rbx + 0xd8]
add qword [rcx + 0xc0], rax
mov rcx, rbx
call fcn.180003348
mov qword [rbx + 0x2f8], rax
mov r8d, 0xaf0
mov rax, qword [rbx + 0x118]
mov edx, 0x30f3
mov ecx, dword [rax + 0x4f8]
xor ecx, r8d
cmp ecx, edx
je 0x180017a78
mov rcx, qword [rbx + 0x118]
inc edx
mov rax, qword [rcx + 0x2c0]
or rax, rdi
mov qword [rcx + 0xd8], rax
mov rax, qword [rbx + 0x118]
mov ecx, dword [rax + 0x4f8]
xor rcx, r8
movsxd rax, edx
cmp rax, rcx
jne 0x180017a46
mov rax, qword [rbx + 0x128]
mov r8d, 0x3053
imul eax, dword [rax + 0x290], 0xd6c7476b
cmp rax, qword [rbx + 0x70]
jae 0x180017aad
mov rax, qword [rbx + 0x4b8]
xor rax, qword [rbx + 0x2a8]
xor rax, r8
mov qword [rbx + 0x2a8], rax
mov rax, qword [rbx + 0xe8]
imul ecx, dword [rax + 0x168], 0xaa41eb7c
mov rax, qword [rbx + 0x358]
mov dword [rax], ecx
mov rax, qword [rbx + 0x190]
mov ecx, dword [rax + 0x290]
mov eax, 0x38e3
add ecx, 0x890
cmp ecx, eax
je 0x180017b05
sub eax, ecx
mov edx, eax
mov rcx, qword [rbx + 0x118]
mov rax, r8
sub rax, qword [rbx + 0x128]
add qword [rcx + 0x498], rax
sub rdx, 1
jne 0x180017ae7
mov rax, qword [rbx + 0x270]
lea r12, [rbx + 0x210]
mov ebp, 0x318c
lea r15, [rbx + 0x138]
xor rax, rbp
mov rdx, r15
or qword [rbx + 0x28], rax
mov rax, qword [rbx + 0x510]
mov ecx, dword [rax + 0x4f8]
mov rax, qword [rbx + 0x358]
xor ecx, 0x72625349
mov dword [rax + 4], ecx
imul ecx, dword [rbx + 0x290], 0xdf1f8bfb
mov rax, qword [rbx + 0x358]
mov dword [rax + 8], ecx
mov rcx, qword [rbx + 0x118]
mov rax, qword [rcx + 0x4b0]
imul rax, r12
mov qword [rcx + 0x4b0], rax
mov rax, qword [rbx + 0x358]
and dword [rax + 0xc], 0
imul rax, qword [rbx], 0x3a05
mov rcx, qword [rbx + 0x4c8]
mov qword [rbx + 0x28], rax
call qword [rbx + 0x2f8]
mov qword [rbx + 0x78], 0xfffffffffffff942
lea rdi, [rbx + 0x30]
or qword [rbx + 0x260], rdi
mov qword [rbx + 0x300], rax
mov rax, qword [rbx + 0xe8]
mov ecx, dword [rax + 0x280]
mov rax, qword [rbx + 0x358]
add ecx, 0x6c64441b
mov dword [rax], ecx
mov rax, qword [rbx + 0x118]
imul ecx, dword [rax + 0x290], 0xf57ba64
mov rax, qword [rbx + 0x358]
mov dword [rax + 4], ecx
cmp qword [rbx + 0x250], 0x3c32
ja 0x180017c14
mov rax, qword [rbx + 0xe8]
mov rdx, qword [rbx + 0x190]
imul rcx, qword [rax + 0x280], 0x3c32
or qword [rdx + 0x2a0], rcx
imul ecx, dword [rbx + 0x280], 0xb93a6064
add qword [rbx + 0x2a0], 0x3a7b
mov rax, qword [rbx + 0x358]
mov dword [rax + 8], ecx
cmp qword [rdi], 0x3c12
jne 0x180017c50
mov rax, qword [rbx + 0x260]
sub rax, 0x33a3
xor qword [rbx + 0xf8], rax
mov rax, qword [rbx + 0x510]
imul rcx, qword [rax + 0x4f0], 0x30f3
mov qword [rbx + 0x530], rcx
mov rcx, r15
call qword [rbx + 0x300]
mov ecx, dword [rbx + 0x168]
lea r14, [rbx + 0x2a8]
mov qword [rbx + 0x378], rax
add ecx, 0x704f42c1
mov rax, qword [rbx + 0x250]
add rax, rsi
or qword [rbx + 0x78], rax
lea rax, [rbx + 0x280]
xor qword [r14], rax
mov rax, qword [rbx + 0x358]
mov dword [rax], ecx
mov eax, 0x2f79
mov rcx, qword [rbx + 0x190]
sub rax, qword [rcx + 0xf8]
add qword [rdi], rax
mov rax, qword [rbx + 0x118]
mov rcx, qword [rbx + 0x70]
sub rcx, rsi
mov qword [rax + 0x260], rcx
mov rax, qword [rbx + 0x510]
mov ecx, dword [rax + 0x290]
mov rax, qword [rbx + 0x358]
add ecx, 0x69463e12
mov dword [rax + 4], ecx
mov rax, qword [rbx + 0x510]
mov ecx, dword [rax + 0x280]
xor rcx, 0x1f2a
cmp rcx, qword [rbx]
jbe 0x180017d12
xor qword [r12], r14
mov rax, qword [rbx + 0x118]
mov rdx, qword [rbx + 0xe8]
mov rcx, qword [rax + 0x498]
or qword [rdx + 0x360], rcx
mov rax, qword [rbx + 0x118]
inc qword [rax + 0x498]
mov rax, qword [rbx + 0xe8]
imul ecx, dword [rax + 0x280], 0x348fc764
mov rax, qword [rbx + 0x358]
mov dword [rax + 8], ecx
mov rax, qword [rbx + 0x128]
mov r9, qword [rbx + 0xe8]
mov edx, dword [rax + 0x168]
imul ecx, dword [r9 + 0x290], 0x5f163edf
add edx, 0xbe
movsxd rax, edx
cmp rax, rcx
jae 0x180017db1
mov r8, qword [rbx + 0x380]
lea r10, [rbx + 0x170]
or r8, r10
inc edx
mov qword [rbx + 0x380], r8
imul ecx, dword [r9 + 0x290], 0x5f163edf
movsxd rax, edx
cmp rax, rcx
jb 0x180017d92
mov rcx, qword [rbx + 0x378]
mov rdx, r15
call qword [rbx + 0x2f8]
mov qword [rbx + 0x218], rax
mov rax, qword [rbx + 0x190]
mov ecx, dword [rax + 0x328]
mov rax, qword [rbx + 0x358]
add ecx, 0x72433f2b
mov dword [rax], ecx
cmp qword [rbx + 0xd8], 0x3c32
ja 0x180017dfc
add qword [rbx + 0x550], 0x3415
mov rdx, qword [rbx + 0xe8]
mov eax, dword [rdx + 0x168]
inc eax
cmp eax, ebp
je 0x180017e39
imul r9, qword [rbx], 0x3c32
mov r8, qword [rbx + 0x2d8]
or r8, r9
inc ebp
mov qword [rbx + 0x2d8], r8
mov ecx, dword [rdx + 0x168]
inc ecx
movsxd rax, ebp
cmp rax, rcx
jne 0x180017e1d
mov ecx, dword [rdx + 0x4f8]
mov rax, qword [rbx + 0x358]
xor ecx, 0x65745b60
mov dword [rax + 4], ecx
cmp qword [rdi], rsi
ja 0x180017e66
mov rax, qword [rbx + 0xe8]
or qword [rax + 0x380], 0x779
mov rax, qword [r12]
mov esi, 0x32ec
xor rax, rsi
mov rdx, r15
sub qword [rbx], rax
mov rax, qword [rbx + 0x510]
imul ecx, dword [rax + 0x4f8], 0xd8594977
mov rax, qword [rbx + 0x358]
mov dword [rax + 8], ecx
mov rax, qword [rbx + 0x510]
mov ecx, dword [rax + 0x328]
mov rax, qword [rbx + 0x358]
add ecx, 0x6e3a46
mov dword [rax + 0xc], ecx
mov rcx, qword [rbx + 0x378]
call qword [rbx + 0x2f8]
mov qword [rbx + 0x220], rax
imul rax, qword [rdi], 0x3415
sub qword [rbx + 0x4e0], rax
mov rax, qword [rbx + 0x510]
mov ecx, dword [rax + 0x4f8]
mov rax, qword [rbx + 0x358]
xor ecx, 0x614d4e4b
mov dword [rax], ecx
mov rax, qword [rbx + 0x360]
cmp qword [rbx + 0x250], rax
jae 0x180017f09
lea rax, [rbx + 0x30]
add qword [rbx + 0x170], rax
mov rax, qword [rbx + 0x190]
mov ecx, dword [rax + 0x290]
mov rax, qword [rbx + 0x358]
xor ecx, 0x65696623
mov dword [rax + 4], ecx
imul ecx, dword [rbx + 0x328], 0x6eed739d
mov rax, qword [rbx + 0xe0]
xor rax, 0x3053
add qword [r14], rax
mov rax, qword [rbx + 0xb0]
or rax, 0x3523
or qword [rbx + 0x2a0], rax
mov rax, qword [rbx + 0x358]
mov dword [rax + 8], ecx
mov rdx, qword [rbx + 0x118]
imul ecx, dword [rdx + 0x290], 0xf055c10e
cmp qword [rbx + 0x280], rcx
je 0x180017f86
imul rax, qword [rbx + 0x170], 0x2f79
mov qword [rbx], rax
imul ecx, dword [rdx + 0x280], 0x5ae50667
mov rax, qword [rbx + 0x358]
mov dword [rax + 0xc], ecx
mov rax, qword [rbx + 0x108]
xor rax, qword [rbx + 0x180]
xor rax, rsi
mov qword [rbx + 0x180], rax
mov rax, qword [rbx + 0x510]
mov ecx, dword [rax + 0x328]
cmp rcx, qword [rbx + 0x360]
je 0x180017fe3
mov rax, qword [rbx + 0x290]
mov rcx, qword [rbx + 0x118]
xor rax, 0x3c12
or qword [rcx + 0x340], rax
mov rax, qword [rbx + 0x510]
mov rdx, r15
imul ecx, dword [rax + 0x168], 0x3e3d3aeb
mov rax, qword [rbx + 0x358]
mov dword [rax + 0x10], ecx
mov rax, 0xffffffffffffcbeb
sub rax, qword [rbx + 0x270]
add qword [rbx + 0xf8], rax
mov rax, qword [rbx + 0xa0]
mov rcx, qword [rbx + 0x378]
sub rax, 0x378a
mov qword [rbx + 0x2a0], rax
call qword [rbx + 0x2f8]
mov qword [rbx + 0x228], rax
add r13d, 0x10e
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov rcx, qword [rbx + 0xe8]
mov dword [rbx + 0x178], eax
mov rax, qword [rcx + 0x280]
add rax, 0x2f79
mov qword [rbx + 0x160], rax
lea rax, [rcx + 0x250]
mov rcx, qword [rbx + 0x2b0]
imul rcx, rax
imul rax, qword [rbx + 0x360], 0x37b1
mov qword [rbx + 0x2b0], rcx
mov rcx, qword [rbx + 0x128]
sub qword [rcx + 0x250], rax
mov rax, qword [rbx + 0x128]
mov ecx, dword [rax + 0x168]
mov rax, qword [rbx + 0x358]
xor ecx, 0x747258db
mov dword [rax], ecx
mov rax, 0xffffffffffffff88
mov rcx, qword [rbx + 0x290]
sub rax, rbx
add qword [rbx + 0x270], rax
mov rax, qword [rbx + 0x118]
xor rcx, 0x3a6b
mov qword [rax + 0x340], rcx
jmp 0x180018436
mov rcx, qword [rbx + 0x250]
mov rax, qword [rbx + 0x538]
mov rdx, qword [rbx + 0x380]
and rax, rcx
add rax, 0x3182
cmp rdx, rax
jne 0x18001841b
movsxd r8, r14d
lea rax, [rcx + 0x30f3]
cmp r8, rax
jbe 0x180018405
imul rcx, qword [rbx + 0x328], 0x37b1
movsxd r13, r9d
mov rax, r8
mov r8, qword [rbx + 0x280]
sub rax, rdx
mov r9d, dword [rbx + 0x2c0]
add r8, rdx
mov rdx, qword [rbx + 0x90]
sub r9d, r10d
add rdx, r13
mov esi, 0x32ec
sub rax, rsi
or rdx, 0x3655
add qword [rbx + 0x340], rax
and r9d, dword [rbx + 0x340]
movsxd rax, edi
add rcx, rax
call qword [sym.imp.KERNEL32.dll_CreateFiber]
mov rcx, qword [rbx + 0xb8]
movsxd rax, ebp
imul rcx, rax
mov rax, qword [rbx + 0x260]
or qword [rbx + 0x290], rcx
mov rcx, qword [rbx + 0x290]
xor rax, qword [rbx + 0x280]
or qword [rbx + 0x30], rax
movsxd r12, r15d
add rcx, r12
or rcx, qword [rbx + 0x28]
call qword [sym.imp.KERNEL32.dll_FindNextFileA]
mov edx, dword [rsp + 0x74]
mov ecx, r14d
mov r15d, dword [rbx + 0x108]
mov r10d, edx
mov r14d, dword [rbx + 0x30]
sub r15d, ecx
mov esi, dword [rbx + 0x210]
mov r9d, edx
or r15d, dword [rbx + 0x340]
and r9d, ecx
mov r8d, dword [rbx + 0x230]
xor esi, edi
mov ebp, dword [rbx + 0x548]
mov eax, 0x318c
mov ebx, dword [rbx + 0x328]
imul r8d, dword [rsp + 0x100]
sub r14d, dword [rsp + 0x130]
or ebp, dword [rsp + 0x70]
or r14d, edi
sub r9d, dword [rsp + 0x130]
imul edi, ebx, 0xfffff2ec
or ebx, 0x362a
imul r8d, dword [rsp + 0x100]
and edi, eax
mov rax, qword [rsp + 0xf8]
mov r11d, dword [rax + 0x90]
sub r10d, dword [rax + 0xa0]
and r11d, 0x3a05
imul eax, ecx, 0x318c
or r10d, edx
mov dword [rsp + 0x68], r10d
lea edx, [rcx - 0x30f3]
imul r11d, ecx
mov ecx, dword [rsp + 0x128]
and ecx, dword [rsp + 0xd0]
mov dword [rsp + 0x60], eax
and ecx, 0x362a
mov dword [rsp + 0x58], ebx
mov dword [rsp + 0x50], r11d
mov dword [rsp + 0x48], edi
mov rdi, qword [rsp + 0xf8]
mov dword [rsp + 0x40], esi
mov qword [rsp + 0x38], rdi
mov dword [rsp + 0x30], ebp
mov dword [rsp + 0x28], r14d
mov dword [rsp + 0x20], r15d
call fcn.180016e5c
mov r10d, dword [rdi + 0x1d0]
mov ebx, eax
xor r10d, dword [rdi + 0x118]
mov rcx, qword [rdi + 0x380]
imul rcx, qword [rdi + 0xf8]
imul rdx, qword [rdi + 0x4a8], 0x338c
imul r8, rcx, 0x3182
movsxd r14, dword [rsp + 0xc0]
mov r9, r12
mov rcx, r14
mov dword [rsp + 0x20], r10d
and ecx, 0x2f79
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rax, qword [rdi + 0x360]
mov esi, 0x338c
xor rax, r14
sub qword [rdi + 0x90], rax
mov eax, dword [rsp + 0x100]
movzx edx, word [rdi + 0x90]
or eax, ebx
or dx, word [rdi]
imul eax, eax, 0x3c12
and dx, si
movsxd rcx, eax
add qword [rdi + 0x128], rcx
mov ecx, dword [rdi + 0x270]
sub ecx, esi
and ecx, r14d
call qword [sym.imp.KERNEL32.dll_SetFileTime]
call qword [sym.imp.KERNEL32.dll_SwitchToFiber]
mov eax, dword [rdi + 0x340]
xor r13, r14
xor r13, qword [rdi + 0x280]
or eax, 0x37b1
imul eax, dword [rdi + 0x180]
mov r9d, 0x362a
add qword [rdi + 0xf8], r13
mov r8d, dword [rsp + 0xd0]
mov r13d, dword [rsp + 0x70]
mov edx, dword [rsp + 0x130]
mov rcx, qword [rdi + 0xe8]
sub r8d, eax
movsxd rax, dword [rsp + 0x128]
and rcx, rax
imul rax, rcx, 0x338c
mov rcx, qword [rdi + 0x28]
imul rcx, rax
mov eax, dword [rdi + 0x2c0]
xor eax, r13d
mov qword [rdi + 0x28], rcx
xor eax, r9d
imul r13d, eax
lea eax, [r8 + rdx]
movsxd rcx, eax
and edx, r9d
or edx, dword [rdi + 0x28]
xor edx, dword [rsp + 0x74]
sub ebx, edx
mov qword [rdi + 0x128], rcx
mov rcx, qword [rdi + 0x380]
lea eax, [r8 + rbx]
cdqe
imul rcx, rax
mov qword [rdi + 0x380], rcx
jmp 0x180018436
mov rcx, qword [rbx + 0x280]
movsxd rax, r13d
and rcx, rax
add qword [rbx + 0x260], rcx
jmp 0x180018436
mov rcx, qword [rbx + 0x108]
movsxd rax, r8d
add rcx, rax
or rcx, qword [rbx + 0x30]
xor rcx, rdx
mov qword [rbx + 0x380], rcx
lea eax, [r13 - 0x5aa]
mov rbx, qword [rsp + 0xc8]
add rsp, 0x80
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret