Function at 0x140020f90
Capabilities:
Access pe header

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], r9
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x70
mov rbp, r8
mov r15d, edx
mov rbx, rcx
call fcn.140023e40
mov r8, rax
xor edx, edx
mov rcx, rbx
call fcn.1402406a0
mov rcx, rbp
call qword [sym.imp.ntdll.dll_RtlImageNtHeader]
mov r14, rax
test rax, rax
je case.default.0x1400210cc
xor r13b, r13b
mov byte [rsp + 0x30], r13b
xor r12d, r12d
lea ecx, [r12 + 1]
cmp dword [rax + 0xfc], r12d
je 0x140021010
mov eax, dword [rax + 0xf8]
test eax, eax
je 0x140021010
mov byte [rsp + 0x30], cl
test byte [rax + rbp + 0x10], cl
cmovne r12d, ecx
mov edx, SetErrorInfo
lea rcx, [rsp + 0x50]
call fcn.140011170
nop
mov rdx, qword [rax + 8]
lea rdi, [0x14024eca0]
mov rsi, rdi
test rdx, rdx
cmovne rsi, rdx
mov edx, 0xe9
lea rcx, [rsp + 0x38]
call fcn.140011170
mov r8, qword [rax + 8]
test r8, r8
cmovne rdi, r8
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rdx, rsi
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rsi, rax
mov edi, 0xffffffff
mov rdx, qword [rsp + 0x38]
test rdx, rdx
je 0x14002108c
mov ecx, edi
lock xadd dword [rdx], ecx
cmp ecx, 1
jne 0x14002108c
mov rcx, qword [rsp + 0x38]
call fcn.14021b810
nop
mov rax, qword [rsp + 0x50]
test rax, rax
je 0x1400210a9
lock xadd dword [rax], edi
cmp edi, 1
jne 0x1400210a9
mov rcx, qword [rsp + 0x50]
call fcn.14021b810
call fcn.1400241c0
dec eax
cmp eax, 7
ja case.default.0x1400210cc
cdqe
lea rdx, [0x140000000]
mov ecx, dword [rdx + rax*4 + 0x213f4]
add rcx, rdx
jmp rcx
mov r13d, 1
mov dword [rbx + 0x114], r13d
jmp 0x1400210e3
mov r13d, 1
mov edi, 0x58
mov rax, qword gs:[0x58]
add rdi, qword [rax]
mov eax, dword [rdi]
cmp dword [0x140389164], eax
jg 0x1400213bc
lea rcx, [rbx + 0x100]
call rsi
mov rax, qword [r14 + 0x30]
mov qword [rbx + 0xf8], rax
xor edx, edx
mov rcx, qword [rsp + 0xb8]
call fcn.1400238b0
mov dword [rbx + 0x108], eax
mov dword [rbx + 0x10c], 4
mov eax, dword [rdi]
cmp dword [0x140389148], eax
jg 0x140021386
mov rdi, qword [0x140389140]
test rdi, rdi
je case.default.0x1400210cc
add rdi, 0xffffffffffffff38
xor r8b, r8b
nop dword [rax]
cmp rbp, qword [rdi + 0x30]
jae 0x14002117e
lea rdx, [rdi + 0xc8]
mov rax, qword [rdx]
test rax, rax
je 0x14002119f
lea rdi, [rax - 0xc8]
jmp 0x140021160
jbe 0x1400211ad
mov rax, qword [rdi + 0xd0]
test rax, rax
je 0x140021195
lea rdi, [rax - 0xc8]
jmp 0x140021160
mov r8b, 1
lea rdx, [rdi + 0xc8]
lea r9, [rbx + 0xc8]
call fcn.140023530
jmp 0x1400211ce
mov rax, qword [rdi + 0x98]
inc dword [rax + 0x18]
xor r8d, r8d
xor edx, edx
lea ecx, [rdx + 0xa]
call fcn.140024100
test al, al
je 0x1400211ce
inc dword [rdi + 0x114]
mov ecx, 0x50
call fcn.140023a50
mov qword [rbx + 0x98], rax
test rax, rax
je case.default.0x1400210cc
lea rcx, [rbx + 0xa0]
mov qword [rcx], rax
mov qword [rbx + 0xa8], rax
mov qword [rax], rcx
mov rax, qword [rbx + 0x98]
mov qword [rax + 8], rcx
mov rax, qword [rbx + 0x98]
mov dword [rax + 0x38], 9
mov rax, qword [rbx + 0x98]
mov dword [rax + 0x18], r13d
cmp byte [0x140389150], 0
je 0x140021234
mov rax, qword [rbx + 0x98]
mov dword [rax + 0x1c], r13d
mov ecx, dword [rbx + 0x68]
or ecx, 0x840cc
movzx edi, byte [rsp + 0x30]
mov edx, edi
and edx, 0xfffffffb
lea eax, [r12*4]
or edx, eax
shl edx, 0x16
shl r15d, 9
not r15d
xor r15d, ecx
and r15d, 0x200
xor r15d, ecx
and r15d, 0xfebfffff
or edx, r15d
mov dword [rbx + 0x68], edx
mov r13b, 1
jmp 0x14002127f
movzx edi, byte [rsp + 0x30]
call fcn.140023e40
cmp rax, 0xe0
jne 0x1400212a7
mov rax, qword [r14 + 0x30]
mov qword [rbx + 0xd0], rax
lea rcx, [rbx + 0xd8]
call rsi
jmp 0x1400212a7
movzx edi, byte [rsp + 0x30]
call fcn.140023e40
cmp rax, 0xc8
je 0x1400212c1
call fcn.140023e40
cmp rax, 0xe0
jne 0x1400212fb
lea rax, [rbx + 0x98]
mov qword [rax], rax
mov qword [rbx + 0xa0], rax
lea rax, [rbx + 0xb8]
mov qword [rax], rax
mov qword [rbx + 0xc0], rax
lea rax, [rbx + 0xa8]
mov qword [rax], rax
mov qword [rbx + 0xb0], rax
jmp 0x1400212fb
movzx edi, byte [rsp + 0x30]
mov qword [rbx + 0x30], rbp
mov eax, dword [r14 + 0x50]
mov dword [rbx + 0x40], eax
mov eax, dword [r14 + 8]
mov dword [rbx + 0x80], eax
mov rax, qword [rsp + 0xb8]
movups xmm0, xmmword [rax]
movups xmmword [rbx + 0x58], xmm0
mov rax, qword [rsp + 0xc0]
movups xmm0, xmmword [rax]
movups xmmword [rbx + 0x48], xmm0
mov eax, dword [r14 + 0x28]
add rax, rbp
mov qword [rbx + 0x38], rax
mov word [rbx + 0x6c], 1
test r13b, r13b
jne 0x140021357
mov dword [rbx + 0x68], 0x8c004
test dil, dil
je 0x140021357
mov dword [rbx + 0x68], 0x48c004
lea rax, [rbx + 0x70]
mov qword [rax], rax
mov qword [rbx + 0x78], rax
mov al, 1
jmp 0x140021368
xor al, al
lea r11, [rsp + 0x70]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
lea rcx, [0x140389148]
call fcn.14021495c
cmp dword [0x140389148], 0xffffffff
jne 0x140021143
call fcn.140020a40
mov qword [0x140389140], rax
lea rcx, [0x140389148]
call fcn.1402148f0
jmp 0x140021143
lea rcx, [0x140389164]
call fcn.14021495c
cmp dword [0x140389164], 0xffffffff
jne 0x140021102
call fcn.140024180
mov byte [0x140389150], al
lea rcx, [0x140389164]
call fcn.1402148f0
jmp 0x140021102