Function at 0x140020f60
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.140023e10
mov r8, rax
xor edx, edx
mov rcx, rbx
call fcn.140240680
mov rcx, rbp
call qword [sym.imp.ntdll.dll_RtlImageNtHeader]
mov r14, rax
test rax, rax
je case.default.0x14002109c
xor r13b, r13b
mov byte [rsp + 0x30], r13b
xor r12d, r12d
lea ecx, [r12 + 1]
cmp dword [rax + 0xfc], r12d
je 0x140020fe0
mov eax, dword [rax + 0xf8]
test eax, eax
je 0x140020fe0
mov byte [rsp + 0x30], cl
test byte [rax + rbp + 0x10], cl
cmovne r12d, ecx
mov edx, SetErrorInfo
lea rcx, [rsp + 0x50]
call fcn.140011160
nop
mov rdx, qword [rax + 8]
lea rdi, [0x14024ecc0]
mov rsi, rdi
test rdx, rdx
cmovne rsi, rdx
mov edx, 0xe9
lea rcx, [rsp + 0x38]
call fcn.140011160
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 0x14002105c
mov ecx, edi
lock xadd dword [rdx], ecx
cmp ecx, 1
jne 0x14002105c
mov rcx, qword [rsp + 0x38]
call fcn.14021b7f0
nop
mov rax, qword [rsp + 0x50]
test rax, rax
je 0x140021079
lock xadd dword [rax], edi
cmp edi, 1
jne 0x140021079
mov rcx, qword [rsp + 0x50]
call fcn.14021b7f0
call fcn.140024190
dec eax
cmp eax, 7
ja case.default.0x14002109c
cdqe
lea rdx, [0x140000000]
mov ecx, dword [rdx + rax*4 + 0x213c4]
add rcx, rdx
jmp rcx
mov r13d, 1
mov dword [rbx + 0x114], r13d
jmp 0x1400210b3
mov r13d, 1
mov edi, 0x58
mov rax, qword gs:[0x58]
add rdi, qword [rax]
mov eax, dword [rdi]
cmp dword [0x14038915c], eax
jg 0x14002138c
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.140023880
mov dword [rbx + 0x108], eax
mov dword [rbx + 0x10c], 4
mov eax, dword [rdi]
cmp dword [0x140389140], eax
jg 0x140021356
mov rdi, qword [0x140389138]
test rdi, rdi
je case.default.0x14002109c
add rdi, 0xffffffffffffff38
xor r8b, r8b
nop dword [rax]
cmp rbp, qword [rdi + 0x30]
jae 0x14002114e
lea rdx, [rdi + 0xc8]
mov rax, qword [rdx]
test rax, rax
je 0x14002116f
lea rdi, [rax - 0xc8]
jmp 0x140021130
jbe 0x14002117d
mov rax, qword [rdi + 0xd0]
test rax, rax
je 0x140021165
lea rdi, [rax - 0xc8]
jmp 0x140021130
mov r8b, 1
lea rdx, [rdi + 0xc8]
lea r9, [rbx + 0xc8]
call fcn.140023500
jmp 0x14002119e
mov rax, qword [rdi + 0x98]
inc dword [rax + 0x18]
xor r8d, r8d
xor edx, edx
lea ecx, [rdx + 0xa]
call fcn.1400240d0
test al, al
je 0x14002119e
inc dword [rdi + 0x114]
mov ecx, 0x50
call fcn.140023a20
mov qword [rbx + 0x98], rax
test rax, rax
je case.default.0x14002109c
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 [0x140389148], 0
je 0x140021204
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 0x14002124f
movzx edi, byte [rsp + 0x30]
call fcn.140023e10
cmp rax, 0xe0
jne 0x140021277
mov rax, qword [r14 + 0x30]
mov qword [rbx + 0xd0], rax
lea rcx, [rbx + 0xd8]
call rsi
jmp 0x140021277
movzx edi, byte [rsp + 0x30]
call fcn.140023e10
cmp rax, 0xc8
je 0x140021291
call fcn.140023e10
cmp rax, 0xe0
jne 0x1400212cb
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 0x1400212cb
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 0x140021327
mov dword [rbx + 0x68], 0x8c004
test dil, dil
je 0x140021327
mov dword [rbx + 0x68], 0x48c004
lea rax, [rbx + 0x70]
mov qword [rax], rax
mov qword [rbx + 0x78], rax
mov al, 1
jmp 0x140021338
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, [0x140389140]
call fcn.14021492c
cmp dword [0x140389140], 0xffffffff
jne 0x140021113
call fcn.140020a10
mov qword [0x140389138], rax
lea rcx, [0x140389140]
call fcn.1402148c0
jmp 0x140021113
lea rcx, [0x14038915c]
call fcn.14021492c
cmp dword [0x14038915c], 0xffffffff
jne 0x1400210d2
call fcn.140024150
mov byte [0x140389148], al
lea rcx, [0x14038915c]
call fcn.1402148c0
jmp 0x1400210d2