Function at 0x18003631c
Capabilities:
Encode data using xor

Disassembly:
mov r11, rsp
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xf0
mov qword [rsp + 0xa0], 0xfffffffffffffffe
mov qword [r11 + 0x18], rbx
mov rax, qword [0x1800a1628]
xor rax, rsp
mov qword [rsp + 0xe8], rax
mov r14, r9
mov qword [rsp + 0x80], r9
mov qword [rsp + 0x98], r8
mov rbx, rdx
mov r13, rcx
mov rsi, qword [rsp + 0x150]
mov qword [r11 - 0x48], rsi
mov rax, qword [rsp + 0x158]
mov qword [rsp + 0x90], rax
xor edx, edx
mov r8d, 0x1000
call fcn.180059f80
movabs r11, 0x706c646f70bfbbef
mov qword [r13], r11
mov dword [r13 + 8], 3
lea rcx, [r13 + 0xc]
mov r8d, 0x80
lea rdx, [0x1800a3710]
call qword [sym.imp.KERNEL32.dll_lstrcpynA]
lea rcx, [r13 + 0x8c]
mov r8d, 0x80
lea rdx, str._r_n_r_n_r_n
call qword [sym.imp.KERNEL32.dll_lstrcpynA]
lea rcx, [r13 + 0x10c]
mov r8d, 0x64
lea rdx, str._r_nN_A_r_n
call qword [sym.imp.KERNEL32.dll_lstrcpynA]
call fcn.1800349c0
mov dword [r13 + 0x184], eax
mov dword [rsp + 0x20], 6
lea r9, str.prehdr
mov r8d, 0x188
mov rdx, r13
lea rcx, [rsp + 0x38]
call fcn.18003a2fc
cmp qword [rax + 0x20], 0x10
jb 0x180036431
mov rax, qword [rax + 8]
jmp 0x180036435
add rax, 8
mov eax, dword [rax]
mov dword [r13 + 0x188], eax
cmp qword [rsp + 0x58], 0x10
jb 0x180036450
mov rcx, qword [rsp + 0x40]
call fcn.1800018ec
lea r15, [r13 + 0x190]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_GetLocalTime]
mov rcx, qword [rbx + 0x20]
sub rcx, qword [rbx + 0x18]
movabs r8, 0x2aaaaaaaaaaaaaab
mov rax, r8
imul rcx
sar rdx, 3
mov rax, rdx
shr rax, 0x3f
add rdx, rax
mov dword [r15 + 0x10], edx
xor r12d, r12d
mov rcx, qword [rbx + 0x20]
sub rcx, qword [rbx + 0x18]
mov rax, r8
imul rcx
sar rdx, 3
mov rax, rdx
shr rax, 0x3f
add rdx, rax
test edx, edx
jle 0x18003653c
lea rdi, [r15 + 0x14]
mov r15, r8
movsxd rbp, r12d
cmp rbp, rdx
jb 0x1800364c5
call fcn.1800590d8
lea rcx, [rbp + rbp*2]
shl rcx, 4
add rcx, qword [rbx + 0x18]
lea rdx, [rsp + 0x38]
call fcn.18003b0c8
cmp qword [rax + 0x20], 0x10
jb 0x1800364e9
mov rcx, qword [rax + 8]
jmp 0x1800364ed
lea rcx, [rax + 8]
mov rax, qword [rcx]
mov qword [rdi], rax
movzx eax, word [rcx + 8]
mov word [rdi + 8], ax
cmp qword [rsp + 0x58], 0x10
jb 0x18003650d
mov rcx, qword [rsp + 0x40]
call fcn.1800018ec
inc r12d
add rdi, 0xa
mov rcx, qword [rbx + 0x20]
sub rcx, qword [rbx + 0x18]
mov rax, r15
imul rcx
sar rdx, 3
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp r12d, edx
jl 0x1800364b8
lea r15, [r13 + 0x190]
lea rdx, [rsp + 0x38]
mov rcx, rbx
call fcn.180038504
nop
xor r12d, r12d
mov byte [rsp + 0x30], r12b
mov rdi, qword [rsp + 0x58]
mov rax, rdi
mov rbx, qword [rsp + 0x50]
sub rax, rbx
cmp rax, 0x40
jae 0x1800365cc
mov rbp, rdi
cmp rbx, rdi
jbe 0x18003657f
call fcn.1800590d8
mov rdi, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x50]
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x88], rbp
movaps xmm0, xmmword [rsp + 0x80]
movdqa xmmword [rsp + 0x70], xmm0
sub rbx, rdi
lea r9, [rsp + 0x30]
lea r8, [rbx + 0x40]
lea rdx, [rsp + 0x70]
lea rcx, [rsp + 0x38]
call fcn.180038c38
mov rdi, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x50]
jmp 0x1800366cc
cmp rax, 0x40
jbe 0x1800366cc
mov rbp, rdi
cmp rbx, rdi
jbe 0x1800365ed
call fcn.1800590d8
mov rdi, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x50]
cmp rbx, rdi
jbe 0x1800365f7
call fcn.1800590d8
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], rbx
mov r8d, 0x40
lea rdx, [rsp + 0xa8]
lea rcx, [rsp + 0x70]
call fcn.180038aa0
movdqu xmm0, xmmword [rax]
movdqu xmmword [rsp + 0x70], xmm0
mov rbx, qword [rsp + 0x50]
mov r12, qword [rsp + 0x78]
cmp rbx, r12
ja 0x180036641
mov rdi, qword [rsp + 0x58]
cmp r12, rdi
jbe 0x180036650
call fcn.1800590d8
mov rdi, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x50]
mov r14, qword [rsp + 0x38]
cmp rbx, rbp
ja 0x18003665f
cmp rbp, rdi
jbe 0x18003666e
call fcn.1800590d8
mov rdi, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x50]
test r14, r14
je 0x18003667a
cmp r14, qword [rsp + 0x38]
je 0x180036689
call fcn.1800590d8
mov rdi, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x50]
cmp r12, rbp
je 0x1800366c1
sub rdi, rbp
mov rdx, rdi
add rdi, r12
test rdx, rdx
jle 0x1800366af
mov r9, rdx
mov r8, rbp
mov rcx, r12
call fcn.180058db0
mov rbx, qword [rsp + 0x50]
mov qword [rsp + 0x58], rdi
mov r14, qword [rsp + 0x80]
xor r12d, r12d
jmp 0x1800366cc
mov r14, qword [rsp + 0x80]
xor r12d, r12d
mov rbp, rbx
cmp rbx, rdi
jbe 0x1800366de
call fcn.1800590d8
mov rbx, qword [rsp + 0x50]
cmp qword [rsp + 0x38], r12
jne 0x1800366f4
call fcn.1800590d8
mov r11, r12
mov rbx, qword [rsp + 0x50]
jmp 0x1800366fc
mov rax, qword [rsp + 0x38]
mov r11, qword [rax]
cmp rbp, qword [r11 + 0x20]
jb 0x18003670c
call fcn.1800590d8
mov rbx, qword [rsp + 0x50]
lea rcx, [r15 + 0x72c]
mov rdx, rbp
mov r8d, 0x40
call fcn.1800599f0
mov dword [r15 + 0x728], 0x63636573
cmp rbx, r12
je 0x180036739
mov rcx, rbx
call fcn.1800018ec
mov qword [rsp + 0x50], r12
mov qword [rsp + 0x58], r12
mov qword [rsp + 0x60], r12
mov rcx, qword [rsp + 0x38]
call fcn.1800018ec
mov rdx, qword [rsp + 0x90]
lea rcx, [rsp + 0xb8]
call fcn.180034a14
nop
mov ebp, 0x80
mov r8, rbp
xor edx, edx
lea rcx, [r15 + 0x294]
call fcn.180059f80
mov r8, qword [rsp + 0xd0]
lea eax, [rbp - 1]
cmp r8, rax
cmova r8, rax
lea rdx, [rsp + 0xc0]
lea edi, [rbp - 0x70]
cmp qword [rsp + 0xd8], rdi
cmovae rdx, qword [rsp + 0xc0]
lea rcx, [r15 + 0x294]
call fcn.1800599f0
mov r11, qword [rsp + 0x98]
mov qword [r15 + 0x318], r11
mov qword [r15 + 0x320], r14
lea rcx, [r15 + 0x328]
mov r8d, ebp
lea rdx, [0x1800a71f0]
call qword [sym.imp.KERNEL32.dll_lstrcpynW]
lea rcx, [r15 + 0x428]
mov r8d, ebp
lea rdx, [0x1800a72f0]
call qword [sym.imp.KERNEL32.dll_lstrcpynW]
lea rcx, [r15 + 0x528]
mov r8d, ebp
lea rdx, [0x1800a73f0]
call qword [sym.imp.KERNEL32.dll_lstrcpynW]
lea rcx, [r15 + 0x628]
lea r8d, [rbp - 0x6c]
lea rdx, [0x1800a74f0]
call qword [sym.imp.KERNEL32.dll_lstrcpynA]
cmp qword [rsi + 0x18], rdi
jae 0x180036849
mov r8, rdi
lea rdx, [0x180084448]
mov rcx, rsi
call fcn.18001fb64
cmp qword [rsi + 0x18], rdi
jb 0x180036831
cmp qword [rsi + 0x20], rdi
jb 0x180036858
lea rbx, [rsi + 8]
mov rax, qword [rbx]
jmp 0x18003685f
lea rbx, [rsi + 8]
mov rax, rbx
movdqu xmm0, xmmword [rax]
movdqu xmmword [r15 + 0x63c], xmm0
call fcn.1800349c0
mov dword [r13 + 0x18c], eax
mov edx, 0x190
imul eax, eax, 0x343fd
add eax, 0x269ec3
mov ecx, eax
shr ecx, 0x10
xor byte [rdx + r13], cl
inc rdx
cmp rdx, 0x1000
jl 0x18003687d
cmp qword [rsp + 0xd8], rdi
jb 0x1800368b4
mov rcx, qword [rsp + 0xc0]
call fcn.1800018ec
mov ebp, 0xf
mov qword [rsp + 0xd8], rbp
mov qword [rsp + 0xd0], r12
mov byte [rsp + 0xc0], r12b
cmp qword [rsi + 0x20], rdi
jb 0x1800368df
mov rcx, qword [rbx]
call fcn.1800018ec
mov qword [rsi + 0x20], rbp
mov qword [rsi + 0x18], r12
mov byte [rbx], r12b
mov rcx, qword [rsp + 0xe8]
xor rcx, rsp
call fcn.180059930
mov rbx, qword [rsp + 0x140]
add rsp, 0xf0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret