Function at 0x6363d8
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x9e8
lea rbx, [rcx + 0x108]
mov r13, rcx
xor r12d, r12d
mov rcx, rbx
mov rbp, rdx
mov dword [rsp + 0xa38], r12d
call fcn.00404198
cmp byte [rbp + 0x88], r12b
je 0x6368df
mov rcx, qword [0x00862df0]
lea rdx, [rbp + 0x70]
xor r8d, r8d
call fcn.005f7ae4
lea esi, [r12 + 1]
movsxd r15, eax
test eax, eax
jne 0x636462
mov eax, esi
xchg dword [rbx + 0x14], eax
cmp eax, esi
jne 0x636c8a
mov ecx, esi
call qword [sym.imp.KERNEL32.dll_Sleep]
mov r11d, esi
xchg dword [rbx + 0x14], r11d
cmp r11d, esi
je 0x636449
jmp 0x636c8a
mov rcx, qword [r13 + 0x170]
xor edx, edx
mov rax, r15
sub rcx, qword [r13 + 0x168]
mov r8, r15
sar rcx, 3
sub rcx, rsi
div rcx
mov rcx, qword [r13 + 0x168]
mov rax, qword [rcx + rdx*8]
mov rcx, qword [rcx + rdx*8 + 8]
jmp 0x63649d
cmp dword [rax + 8], r15d
je 0x6364a7
mov rax, qword [rax]
mov qword [rsp + 0x68], rcx
cmp rax, rcx
jne 0x636494
xor edi, edi
cmp rax, rcx
mov qword [rsp + 0x98], rcx
cmovne rdi, rax
and qword [rsp + 0xa8], r12
and qword [rsp + 0xb8], r12
and qword [rsp + 0xc8], r12
mov qword [rsp + 0xa0], rdi
mov r14d, 0x100
test rdi, rdi
je 0x63668e
call fcn.0057f770
mov r13, rax
test rax, rax
je 0x63652b
mov rcx, qword [rdi + 0x10]
mov r12d, esi
mov rdx, qword [rcx + 0x10]
mov rdi, qword [rdx + 0x18]
lea rdx, [rsp + 0xe8]
call fcn.00635008
mov r8, rdi
xor edx, edx
mov r9, rax
lea rax, [rbp + 0x70]
mov rcx, r13
mov qword [rsp + 0x20], rax
call fcn.005dde6c
jmp 0x63652d
xor eax, eax
test rax, rax
je 0x636538
lea rdi, [rax + 0x10]
jmp 0x63653a
xor edi, edi
mov qword [rsp + 0x40], rdi
test rdi, rdi
je 0x63654d
lock add dword [rdi + 8], esi
mov rdi, qword [rsp + 0x40]
test sil, r12b
je 0x63658c
mov rcx, qword [rsp + 0x110]
lea rax, [rsp + 0xe8]
and r12d, 0xfffffffe
cmp rcx, rax
je 0x63658c
test rcx, rcx
je 0x63658c
mov rdx, qword [rsp + 0xe8]
sub rdx, rcx
cmp rdx, r14
jbe 0x636587
call fcn.006a4944
jmp 0x63658c
call fcn.006a3610
cmp byte [rbp + 0x8a], 0
je 0x636606
test rdi, rdi
je 0x6365a0
lea r13, [rdi - 0x10]
jmp 0x6365a3
xor r13d, r13d
mov rcx, qword [0x00862df0]
lea rdx, [rsp + 0x178]
mov r8d, r15d
call fcn.005faa44
lea rcx, [r13 + 0x20]
cmp rax, rcx
je 0x6365d0
mov r8, qword [rax + 0x20]
mov rdx, qword [rax + 0x28]
call fcn.0040289c
mov rcx, qword [rsp + 0x1a0]
lea rax, [rsp + 0x178]
cmp rcx, rax
je 0x636606
test rcx, rcx
je 0x636606
mov rdx, qword [rsp + 0x178]
sub rdx, rcx
cmp rdx, r14
jbe 0x636601
call fcn.006a4944
jmp 0x636606
call fcn.006a3610
lea rcx, [rbp + 0x100]
xor eax, eax
mov rdx, qword [rcx + 8]
cmp rdx, qword [rcx + 0x10]
je 0x63663e
mov byte [rsp + 0x35], al
mov byte [rsp + 0x36], al
test rdx, rdx
je 0x636637
mov qword [rdx], rdi
test rdi, rdi
je 0x636637
lock add dword [rdi + 8], esi
mov rdi, qword [rsp + 0x40]
add qword [rcx + 8], 8
jmp 0x636665
lea r9, [rsp + 0xa38]
lea r8, [rsp + 0x40]
mov byte [rsp + 0x28], sil
mov byte [rsp + 0x38], al
mov byte [rsp + 0xa38], al
mov qword [rsp + 0x20], rsi
call fcn.0059db6c
test rdi, rdi
je 0x636683
or eax, 0xffffffff
lock xadd dword [rdi + 8], eax
add eax, 0xffffffff
jne 0x636683
mov rcx, qword [rsp + 0x40]
mov edx, esi
mov rax, qword [rcx]
call qword [rax]
mov r13, qword [rsp + 0xa30]
mov r8, r15
cmp byte [rbp + 0x8b], 0
je 0x6368b9
mov rcx, qword [r13 + 0x1a8]
xor edx, edx
mov rax, r8
sub rcx, qword [r13 + 0x1a0]
sar rcx, 3
sub rcx, rsi
div rcx
mov rcx, qword [r13 + 0x1a0]
mov rax, qword [rcx + rdx*8]
mov rcx, qword [rcx + rdx*8 + 8]
jmp 0x6366d3
cmp dword [rax + 8], r15d
je 0x6366e0
mov rax, qword [rax]
mov qword [rsp + 0x80], rcx
cmp rax, rcx
jne 0x6366ca
xor edi, edi
cmp rax, rcx
mov qword [rsp + 0xb0], rcx
cmovne rdi, rax
and qword [rsp + 0xc0], 0
and qword [rsp + 0xe0], 0
and qword [rsp + 0xd8], 0
mov qword [rsp + 0xd0], rdi
test rdi, rdi
je 0x6368b9
call fcn.0057f770
mov r13, rax
test rax, rax
je 0x636763
mov rcx, qword [rdi + 0x10]
lea rdx, [rsp + 0x118]
or r12d, 2
call fcn.006394b8
mov rcx, qword [rdi + 0x10]
mov r9, rax
call fcn.006395bc
mov edx, esi
mov r8, rax
lea rax, [rbp + 0x70]
mov rcx, r13
mov qword [rsp + 0x20], rax
call fcn.005dde6c
jmp 0x636765
xor eax, eax
test rax, rax
je 0x636770
lea rdi, [rax + 0x10]
jmp 0x636772
xor edi, edi
mov qword [rsp + 0x48], rdi
test rdi, rdi
je 0x636785
lock add dword [rdi + 8], esi
mov rdi, qword [rsp + 0x48]
test r12b, 2
je 0x6367c1
mov rcx, qword [rsp + 0x140]
lea rax, [rsp + 0x118]
cmp rcx, rax
je 0x6367c1
test rcx, rcx
je 0x6367c1
mov rdx, qword [rsp + 0x118]
sub rdx, rcx
cmp rdx, r14
jbe 0x6367bc
call fcn.006a4944
jmp 0x6367c1
call fcn.006a3610
cmp byte [rbp + 0x8a], 0
je 0x63683c
test rdi, rdi
je 0x6367d5
lea r12, [rdi - 0x10]
jmp 0x6367d8
xor r12d, r12d
mov rcx, qword [0x00862df0]
lea rdx, [rsp + 0x148]
mov r8d, r15d
call fcn.005faa44
lea rcx, [r12 + 0x20]
cmp rax, rcx
je 0x636806
mov r8, qword [rax + 0x20]
mov rdx, qword [rax + 0x28]
call fcn.0040289c
mov rcx, qword [rsp + 0x170]
lea rax, [rsp + 0x148]
cmp rcx, rax
je 0x63683c
test rcx, rcx
je 0x63683c
mov rdx, qword [rsp + 0x148]
sub rdx, rcx
cmp rdx, r14
jbe 0x636837
call fcn.006a4944
jmp 0x63683c
call fcn.006a3610
lea rcx, [rbp + 0x100]
xor eax, eax
mov rdx, qword [rcx + 8]
cmp rdx, qword [rcx + 0x10]
je 0x636874
mov byte [rsp + 0x39], al
mov byte [rsp + 0x37], al
test rdx, rdx
je 0x63686d
mov qword [rdx], rdi
test rdi, rdi
je 0x63686d
lock add dword [rdi + 8], esi
mov rdi, qword [rsp + 0x48]
add qword [rcx + 8], 8
jmp 0x63689b
lea r9, [rsp + 0xa40]
lea r8, [rsp + 0x48]
mov byte [rsp + 0x28], sil
mov byte [rsp + 0x3a], al
mov byte [rsp + 0xa40], al
mov qword [rsp + 0x20], rsi
call fcn.0059db6c
test rdi, rdi
je 0x6368b9
or eax, 0xffffffff
lock xadd dword [rdi + 8], eax
add eax, 0xffffffff
jne 0x6368b9
mov rcx, qword [rsp + 0x48]
mov edx, esi
mov rax, qword [rcx]
call qword [rax]
mov eax, esi
xchg dword [rbx + 0x14], eax
cmp eax, esi
jne 0x636c8a
mov ecx, esi
call qword [sym.imp.KERNEL32.dll_Sleep]
mov r11d, esi
xchg dword [rbx + 0x14], r11d
cmp r11d, esi
je 0x6368c6
jmp 0x636c8a
mov rcx, qword [rbp + 0x20]
movabs r12, 0x3e88cb3c9484e2b
mov esi, 1
sub rcx, qword [rbp + 0x18]
mov rax, r12
imul rcx
sar rdx, 5
mov rax, rdx
shr rax, 0x3f
add rdx, rax
jne 0x636932
mov eax, esi
xchg dword [rbx + 0x14], eax
cmp eax, esi
jne 0x636c8a
mov ecx, esi
call qword [sym.imp.KERNEL32.dll_Sleep]
mov r11d, esi
xchg dword [rbx + 0x14], r11d
cmp r11d, esi
je 0x636919
jmp 0x636c8a
mov r9, qword [rbp + 0x18]
cmp r9, qword [rbp + 0x20]
je 0x636a92
mov r15, qword [rsp + 0xa30]
lea r11, [r9 + 0x828]
mov r10, qword [r11]
mov rax, qword [r11 - 8]
sub rax, r10
cmp rax, 5
jb 0x636a68
movdqu xmm1, xmmword [r15 + 0x1d8]
movdqu xmm0, xmmword [r15 + 0x1c8]
add rax, 0xfffffffffffffffb
mov qword [rsp + 0xa40], rax
xor r13d, r13d
movdqu xmmword [rsp + 0x88], xmm1
movdqu xmmword [rsp + 0x58], xmm0
mov eax, dword [rsp + 0x60]
mov rcx, qword [rsp + 0x88]
sub rcx, qword [rsp + 0x58]
sar rcx, 2
shl rcx, 5
sub rcx, rax
mov eax, dword [rsp + 0x90]
add rax, rcx
mov qword [rsp + 0xa38], rax
lea r14, [r10 + 5]
xor r12d, r12d
mov r8, r10
cmp r10, r14
jae 0x6369f9
movsx edx, byte [r8]
mov rax, r12
mov rcx, r12
add edx, 0x9e3779b9
shl rax, 6
shr rcx, 2
add rdx, rax
add r8, rsi
add rdx, rcx
xor r12, rdx
cmp r8, r14
jb 0x6369d0
movdqu xmm0, xmmword [r15 + 0x1c8]
xor edx, edx
mov rax, r12
div qword [rsp + 0xa38]
movdqu xmmword [rsp + 0x70], xmm0
mov eax, dword [rsp + 0x78]
mov rcx, qword [rsp + 0x70]
add rax, rdx
cqo
and edx, 0x1f
add rax, rdx
mov r8, rax
and eax, 0x1f
sub rax, rdx
sar r8, 5
lea rdx, [rcx + r8*4]
test rax, rax
jns 0x636a46
add eax, 0x20
sub rdx, 4
mov ecx, eax
mov eax, esi
shl eax, cl
test dword [rdx], eax
je 0x636b5f
add r13, rsi
add r10, rsi
cmp r13, qword [rsp + 0xa40]
jbe 0x6369c1
add r9, 0x830
add r11, 0x830
cmp r9, qword [rbp + 0x20]
jne 0x63694f
mov r13, qword [rsp + 0xa30]
movabs r12, 0x3e88cb3c9484e2b
mov rcx, qword [rbp + 0x20]
mov rax, r12
mov r8d, 0x1e
sub rcx, qword [rbp + 0x18]
imul rcx
sar rdx, 5
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp rdx, r8
jbe 0x636c33
mov r10, qword [rbp + 0x20]
mov r9, qword [rbp + 0x18]
or qword [rsp + 0x88], 0xffffffffffffffff
or qword [rsp + 0x58], 0xffffffffffffffff
lea rax, [rsp + 0x9a8]
mov rcx, r10
mov qword [rsp + 0x9c8], rax
lea rax, [rsp + 0x9a8]
sub rcx, r9
mov qword [rsp + 0x9d0], rax
xor eax, eax
mov qword [rsp + 0x70], 0x20
mov byte [rsp + 0x34], al
mov byte [rsp + 0x32], al
mov byte [rsp + 0x9a8], al
mov rax, r12
imul rcx
sar rdx, 5
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp rdx, r8
jbe 0x636b85
lea rdx, [r9 + 0xf5a0]
cmp rdx, r10
je 0x636c33
xor eax, eax
lea r9, [rsp + 0xa48]
lea rcx, [rbp + 0x18]
mov r8, r10
mov byte [rsp + 0xa48], al
call fcn.00462408
jmp 0x636bf7
mov eax, esi
xchg dword [rbx + 0x14], eax
cmp eax, esi
jne 0x636c8a
mov ecx, esi
call qword [sym.imp.KERNEL32.dll_Sleep]
mov r11d, esi
xchg dword [rbx + 0x14], r11d
cmp r11d, esi
je 0x636b6c
jmp 0x636c8a
sub r8, rdx
je 0x636c33
mov rcx, qword [rbp + 0x28]
mov rax, r12
sub rcx, r10
imul rcx
lea rcx, [rbp + 0x18]
sar rdx, 5
mov rax, rdx
shr rax, 0x3f
add rdx, rax
xor eax, eax
cmp rdx, r8
mov rdx, r10
jb 0x636bd4
mov byte [rsp + 0x30], al
lea rax, [rsp + 0x30]
lea r9, [rsp + 0x1a8]
mov qword [rsp + 0x20], rax
call fcn.00636ee8
jmp 0x636bf7
mov byte [rsp + 0x28], al
mov qword [rsp + 0x20], r8
lea r9, [rsp + 0x31]
lea r8, [rsp + 0x1a8]
mov byte [rsp + 0x33], al
mov byte [rsp + 0x31], al
call fcn.004637e4
mov rcx, qword [rsp + 0x9d0]
lea rax, [rsp + 0x9a8]
cmp rcx, rax
je 0x636c33
test rcx, rcx
je 0x636c33
mov rdx, qword [rsp + 0x9a8]
mov r14d, 0x100
sub rdx, rcx
cmp rdx, r14
jbe 0x636c2e
call fcn.006a4944
jmp 0x636c33
call fcn.006a3610
mov rcx, qword [rbp + 0x20]
mov rax, r12
xor r8d, r8d
sub rcx, qword [rbp + 0x18]
imul rcx
mov eax, esi
sar rdx, 5
mov rcx, rdx
shr rcx, 0x3f
add rcx, rdx
mov rdx, rbp
shl eax, cl
sub eax, esi
mov dword [rbp + 0xf8], eax
mov rcx, qword [r13 + 0x150]
call fcn.00635df4
mov eax, esi
xchg dword [rbx + 0x14], eax
cmp eax, esi
jne 0x636c8a
mov ecx, esi
call qword [sym.imp.KERNEL32.dll_Sleep]
mov r11d, esi
xchg dword [rbx + 0x14], r11d
cmp r11d, esi
je 0x636c76
dec dword [rbx]
mov ecx, dword [rbx + 4]
mov eax, dword [rbx]
add ecx, eax
jne 0x636cab
mov ecx, dword [rbx + 0xc]
mov eax, dword [rbx + 8]
add ecx, eax
test ecx, ecx
jle 0x636cab
mov rcx, qword [rbx + 0x18]
call qword [sym.imp.KERNEL32.dll_SetEvent]
lock add dword [rbx + 0x14], 0xffffffff
add rsp, 0x9e8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret