Function at 0x180009820
Capabilities:
Access peb ldr_data
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x38]
sub rsp, 0x110
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
movaps xmmword [rax - 0x58], xmm8
movaps xmmword [rax - 0x68], xmm9
movaps xmmword [rax - 0x78], xmm10
mov rax, qword [0x1800ff020]
xor rax, rsp
mov qword [rbp - 0x48], rax
xor r15d, r15d
lea r11, [0x18009d4f6]
mov r9d, r15d
lea r10, str.zr3803
mov rdi, rcx
nop
movzx r8d, byte [r10]
movzx eax, r8b
or al, 0x20
movzx ecx, al
lea edx, [r8 - 0x41]
cmp dl, 0x19
cmova ecx, r8d
inc r10
movsx eax, cl
add eax, r9d
imul r9d, eax, 0x401
mov eax, r9d
shr eax, 6
xor r9d, eax
cmp r10, r11
jne 0x180009880
lea eax, [r9 + r9*8]
mov ecx, eax
shr ecx, 0xb
xor ecx, eax
imul esi, ecx, 0x8001
call fcn.180005620
mov dword [rax + 8], r15d
mov dword [rax + 0x18], r15d
call fcn.180005620
mov edx, dword [rax + 8]
mov rcx, qword [rax + 0x10]
mov dword [rcx + rdx*8], esi
inc dword [rax + 8]
call fcn.180005620
movabs rbx, 0x98a4eb5d89a0c952
mov rcx, rax
mov rdx, rbx
call fcn.18004cf90
call fcn.180005620
mov rcx, qword [rax]
cmp dword [rcx], r15d
jne 0x1800099ae
movabs r14, 0x963d27a58df860ac
nop dword [rax + rax]
call fcn.180005620
mov dword [rax + 8], r15d
mov dword [rax + 0x18], r15d
call fcn.180005620
mov edx, dword [rax + 8]
mov rcx, qword [rax + 0x10]
mov dword [rcx + rdx*8], esi
inc dword [rax + 8]
call fcn.180005620
mov rdx, r14
mov rcx, rax
call fcn.18004cf90
call fcn.180005620
mov rax, qword gs:[0x20]
mov rcx, qword [rax]
mov byte [rcx + 0x20], r15b
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_SwitchToFiber]
call fcn.180005620
mov dword [rax + 8], r15d
mov dword [rax + 0x18], r15d
call fcn.180005620
mov edx, dword [rax + 8]
mov rcx, qword [rax + 0x10]
mov dword [rcx + rdx*8], esi
inc dword [rax + 8]
call fcn.180005620
mov rdx, rbx
mov rcx, rax
call fcn.18004cf90
call fcn.180005620
mov rcx, qword [rax]
cmp dword [rcx], r15d
je 0x180009920
mov dword [rbp - 0x60], r15d
mov dword [rbp - 0x58], r15d
mov dword [rbp - 0x50], r15d
mov dword [rbp - 0x78], r15d
mov dword [rbp - 0x70], r15d
mov dword [rbp - 0x68], r15d
call fcn.180005620
mov dword [rax + 8], r15d
mov dword [rax + 0x18], r15d
call fcn.180005620
mov edx, dword [rax + 8]
mov rcx, qword [rax + 0x10]
mov dword [rcx + rdx*8], esi
inc dword [rax + 8]
call fcn.180005620
lea r8, [rbp - 0x60]
mov edx, dword [rax + 8]
mov rcx, qword [rax + 0x10]
mov qword [rcx + rdx*8], r8
inc dword [rax + 8]
call fcn.180005620
lea r8, [rbp - 0x78]
mov edx, dword [rax + 8]
mov rcx, qword [rax + 0x10]
mov qword [rcx + rdx*8], r8
inc dword [rax + 8]
call fcn.180005620
movabs rdx, 0x3e8d3d5f549087a
mov rcx, rax
call fcn.18004cf90
call fcn.180005620
movss xmm10, dword [rbp - 0x70]
mulss xmm10, dword [0x1800e2f38]
mov ebx, dword [rdi]
call fcn.180005620
mov dword [rax + 8], r15d
mov dword [rax + 0x18], r15d
call fcn.180005620
mov edx, dword [rax + 8]
mov rcx, qword [rax + 0x10]
mov dword [rcx + rdx*8], ebx
inc dword [rax + 8]
call fcn.180005620
movabs r14, 0x50fac3a3e030a6e1
mov rcx, rax
mov rdx, r14
call fcn.18004cf90
call fcn.180005620
mov rcx, qword [rax]
mov ebx, dword [rcx]
call fcn.180005620
mov dword [rax + 8], r15d
mov dword [rax + 0x18], r15d
call fcn.180005620
mov edx, dword [rax + 8]
mov rcx, qword [rax + 0x10]
mov dword [rcx + rdx*8], ebx
inc dword [rax + 8]
call fcn.180005620
movabs rdx, 0xa794a5a57f8df91
mov rcx, rax
call fcn.18004cf90
call fcn.180005620
mov ebx, dword [rdi]
mov rcx, qword [rax]
movups xmm9, xmmword [rcx]
call fcn.180005620
mov dword [rax + 8], r15d
mov dword [rax + 0x18], r15d
call fcn.180005620
mov edx, dword [rax + 8]
mov rcx, qword [rax + 0x10]
mov dword [rcx + rdx*8], ebx
inc dword [rax + 8]
call fcn.180005620
mov rdx, r14
mov rcx, rax
call fcn.18004cf90
call fcn.180005620
mov rcx, qword [rax]
mov ebx, dword [rcx]
call fcn.180005620
mov dword [rax + 8], r15d
mov dword [rax + 0x18], r15d
call fcn.180005620
mov edx, dword [rax + 8]
mov rcx, qword [rax + 0x10]
mov dword [rcx + rdx*8], ebx
inc dword [rax + 8]
call fcn.180005620
mov edx, dword [rax + 8]
mov rcx, qword [rax + 0x10]
mov dword [rcx + rdx*8], r15d
inc dword [rax + 8]
call fcn.180005620
movabs rdx, 0xafbd61cc738d9eb9
mov rcx, rax
call fcn.18004cf90
call fcn.180005620
mov ebx, dword [rdi]
mov rcx, qword [rax]
movsd xmm8, qword [rcx + 0x10]
call fcn.180005620
mov dword [rax + 8], r15d
mov dword [rax + 0x18], r15d
call fcn.180005620
mov r8d, dword [rax + 8]
mov rcx, qword [rax + 0x10]
mov dword [rcx + r8*8], ebx
inc dword [rax + 8]
call fcn.180005620
mov rdx, r14
mov rcx, rax
call fcn.18004cf90
call fcn.180005620
mov rcx, qword [rax]
mov ebx, dword [rcx]
call fcn.180005620
mov dword [rax + 8], r15d
mov dword [rax + 0x18], r15d
call fcn.180005620
mov edx, dword [rax + 8]
mov rcx, qword [rax + 0x10]
mov dword [rcx + rdx*8], ebx
inc dword [rax + 8]
call fcn.180005620
mov edx, dword [rax + 8]
mov rcx, qword [rax + 0x10]
mov dword [rcx + rdx*8], r15d
inc dword [rax + 8]
call fcn.180005620
mov edx, dword [rax + 8]
mov rcx, qword [rax + 0x10]
mov dword [rcx + rdx*8], 0xc2140000
inc dword [rax + 8]
call fcn.180005620
mov edx, dword [rax + 8]
mov rcx, qword [rax + 0x10]
mov dword [rcx + rdx*8], r15d
inc dword [rax + 8]
call fcn.180005620
movabs rdx, 0x1899f328b0e12848
mov rcx, rax
call fcn.18004cf90
call fcn.180005620
mov rcx, qword [rax]
movups xmm6, xmmword [rcx]
movsd xmm7, qword [rcx + 0x10]
call fcn.180005620
mov dword [rax + 8], r15d
mov dword [rax + 0x18], r15d
call fcn.180005620
mov edx, dword [rax + 8]
mov rcx, qword [rax + 0x10]
mov dword [rcx + rdx*8], esi
inc dword [rax + 8]
call fcn.180005620
movaps xmm0, xmm9
mulss xmm0, xmm10
mov edx, dword [rax + 8]
mov rcx, qword [rax + 0x10]
addss xmm0, xmm6
movss dword [rcx + rdx*8], xmm0
inc dword [rax + 8]
call fcn.180005620
shufps xmm9, xmm9, 0xaa
mulss xmm9, xmm10
mov edx, dword [rax + 8]
mov rcx, qword [rax + 0x10]
shufps xmm6, xmm6, 0xaa
addss xmm9, xmm6
movss dword [rcx + rdx*8], xmm9
inc dword [rax + 8]
call fcn.180005620
mov edx, dword [rax + 8]
mov rcx, qword [rax + 0x10]
movss dword [rcx + rdx*8], xmm7
inc dword [rax + 8]
call fcn.180005620
mov edx, dword [rax + 8]
mov rcx, qword [rax + 0x10]
movss dword [rcx + rdx*8], xmm8
inc dword [rax + 8]
call fcn.180005620
mov edx, dword [rax + 8]
mov rcx, qword [rax + 0x10]
mov dword [rcx + rdx*8], 1
inc dword [rax + 8]
call fcn.180005620
mov edx, dword [rax + 8]
mov rcx, qword [rax + 0x10]
mov dword [rcx + rdx*8], r15d
inc dword [rax + 8]
call fcn.180005620
mov edx, dword [rax + 8]
mov rcx, qword [rax + 0x10]
mov dword [rcx + rdx*8], r15d
inc dword [rax + 8]
call fcn.180005620
movabs rdx, 0xaf35d0d2583051b0
mov rcx, rax
call fcn.18004cf90
call fcn.180005620
mov rcx, qword [rax]
mov rax, qword gs:[0x20]
mov edi, dword [rcx]
mov rcx, qword [rax]
mov byte [rcx + 0x20], r15b
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_SwitchToFiber]
call fcn.180005620
mov dword [rax + 8], r15d
mov dword [rax + 0x18], r15d
call fcn.180005620
mov edx, dword [rax + 8]
mov rcx, qword [rax + 0x10]
mov dword [rcx + rdx*8], esi
inc dword [rax + 8]
call fcn.180005620
movabs rdx, 0xe532f5d78798daab
mov rcx, rax
call fcn.18004cf90
call fcn.180005620
mov rax, qword [0x18011bac0]
mov rcx, qword [rax + 0x110]
cmp byte [rcx], r15b
je 0x180009d73
mov ecx, edi
call fcn.1800077b0
xorps xmm1, xmm1
mov ecx, edi
call fcn.180006d90
call fcn.180005620
mov dword [rax + 8], r15d
mov dword [rax + 0x18], r15d
call fcn.180005620
mov edx, dword [rax + 8]
mov rcx, qword [rax + 0x10]
mov dword [rcx + rdx*8], edi
inc dword [rax + 8]
call fcn.180005620
mov edx, dword [rax + 8]
mov rcx, qword [rax + 0x10]
mov dword [rcx + rdx*8], r15d
inc dword [rax + 8]
call fcn.180005620
mov edx, dword [rax + 8]
mov rcx, qword [rax + 0x10]
mov dword [rcx + rdx*8], r15d
inc dword [rax + 8]
call fcn.180005620
movabs rdx, 0xea1c610a04db6bbb
mov rcx, rax
call fcn.18004cf90
call fcn.180005620
call fcn.180005620
mov dword [rax + 8], r15d
mov dword [rax + 0x18], r15d
call fcn.180005620
mov edx, dword [rax + 8]
mov rcx, qword [rax + 0x10]
mov dword [rcx + rdx*8], edi
inc dword [rax + 8]
call fcn.180005620
mov edx, dword [rax + 8]
mov rcx, qword [rax + 0x10]
mov dword [rcx + rdx*8], 0x42c80000
inc dword [rax + 8]
call fcn.180005620
movabs rdx, 0xab54a438726d25d5
mov rcx, rax
call fcn.18004cf90
call fcn.180005620
mov rcx, qword [0x18011bac8]
lea rax, vtable.std::_Func_impl_no_alloc_class__void___cdecl_Base::MaxTuning_int_::_2::_lambda_1___void___.0
mov qword [rsp + 0x28], rax
lea rdx, [rsp + 0x28]
lea rax, [rsp + 0x28]
mov dword [rsp + 0x30], edi
mov qword [rsp + 0x60], rax
call fcn.18000c8e0
mov r14d, 2
lea rbx, vtable.std::_Func_impl_no_alloc_class__bool___cdecl_Base::TakeControlOff_int__int_::_2::_lambda_1___void___.0
movabs r13, 0x7239b21a38f536ba
movabs rsi, 0xad738c3085fe7e11
mov r12d, 0xb2d05e00
call fcn.180005620
mov dword [rax + 8], r15d
mov dword [rax + 0x18], r15d
call fcn.180005620
mov edx, dword [rax + 8]
mov rcx, qword [rax + 0x10]
mov dword [rcx + rdx*8], edi
inc dword [rax + 8]
call fcn.180005620
mov rdx, r13
mov rcx, rax
call fcn.18004cf90
call fcn.180005620
mov rcx, qword [rax]
cmp dword [rcx], r15d
je 0x180009fd3
mov rcx, qword [0x18011bac8]
lea rdx, [rsp + 0x28]
mov dword [rsp + 0x20], edi
mov dword [rsp + 0x24], 0x708
mov rax, qword [rsp + 0x20]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x28]
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x28], rbx
call fcn.18000c8e0
call fcn.180005620
mov dword [rax + 8], r15d
mov dword [rax + 0x18], r15d
call fcn.180005620
mov edx, dword [rax + 8]
mov rcx, qword [rax + 0x10]
mov dword [rcx + rdx*8], edi
inc dword [rax + 8]
call fcn.180005620
mov edx, dword [rax + 8]
mov rcx, qword [rax + 0x10]
mov dword [rcx + rdx*8], 1
inc dword [rax + 8]
call fcn.180005620
mov edx, dword [rax + 8]
mov rcx, qword [rax + 0x10]
mov dword [rcx + rdx*8], 1
inc dword [rax + 8]
call fcn.180005620
mov rdx, rsi
mov rcx, rax
call fcn.18004cf90
call fcn.180005620
mov rax, qword gs:[0x20]
mov rbx, qword [rax]
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rsi, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
cmp rsi, 0x989680
jne 0x180009f81
imul rax, rax, 0x64
jmp 0x180009f9f
cqo
idiv rsi
mov rcx, rax
imul rax, rdx, 0x3b9aca00
imul rcx, rcx, 0x3b9aca00
cqo
idiv rsi
add rax, rcx
lea rcx, [rax + r12]
cmp byte [rbx + 0x20], r15b
jne 0x180009fad
mov byte [rbx + 0x20], 1
mov qword [rbx + 0x18], rcx
mov rcx, qword [rbx + 8]
call qword [sym.imp.KERNEL32.dll_SwitchToFiber]
mov ecx, edi
call fcn.1800074d0
lea rbx, vtable.std::_Func_impl_no_alloc_class__bool___cdecl_Base::TakeControlOff_int__int_::_2::_lambda_1___void___.0
movabs rsi, 0xad738c3085fe7e11
sub r14, 1
jne 0x180009e81
mov rcx, qword [rbp - 0x48]
xor rcx, rsp
call fcn.18008fcd0
lea r11, [rsp + 0x110]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
add rcx, 8
jmp 0x180009820