Function at 0x7ff7b0823210
Capabilities:
Parse pe header

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 7]
sub rsp, 0x90
mov r14, rdx
mov rsi, rcx
xor edi, edi
mov qword [rbp - 0x49], rdi
mov qword [rbp - 0x41], rdi
mov eax, 0x5a4d
cmp word [rdx], ax
jne 0x7ff7b0823aa6
movsxd r15, dword [rdx + 0x3c]
add r15, rdx
mov qword [rbp + 0x5f], r15
cmp dword [r15], 0x4550
jne 0x7ff7b0823aa6
test r15, r15
je 0x7ff7b0823aa6
mov eax, 0x20b
cmp word [r15 + 0x18], ax
jne 0x7ff7b0823aa6
mov ebx, dword [r15 + 0x50]
mov edx, ebx
xor ecx, ecx
mov r9d, 4
mov r8d, 0x3000
call qword [sym.imp.kernel32.dll_VirtualAlloc]
mov r12, rax
test rax, rax
je 0x7ff7b0823aa6
movzx ecx, word [r15 + 0x14]
mov eax, dword [rcx + r15 + 0x24]
mov dword [rbp + 0x7f], eax
sub ebx, eax
mov dword [rbp + 0x6f], ebx
mov qword [rbp + 0x57], rdi
mov ecx, 4
mov eax, dword [rbp + 0x77]
cmp eax, 1
jne 0x7ff7b08232e4
mov edx, ebx
lea r8, [rbp + 0x57]
mov rcx, rsi
call fcn.7ff7b0822dd0
mov r13, rax
jmp 0x7ff7b0823543
cmp eax, 2
jne 0x7ff7b0823422
mov qword [rbp + 0x4f], rdi
cmp qword [0x7ff7b0864280], rdi
jne 0x7ff7b082335a
lea rax, [0x7ff7b08414f8]
mov qword [rsp + 0x20], rax
lea r9, [0x7ff7b0841520]
mov r8, qword [0x7ff7b0864178]
lea rdx, [0x7ff7b0841548]
mov rcx, rsi
call fcn.7ff7b081fc50
mov qword [0x7ff7b0864280], rax
test rax, rax
je 0x7ff7b082341a
mov r9d, 5
mov r8d, 1
mov rdx, rax
mov rcx, rsi
call fcn.7ff7b081f180
mov qword [0x7ff7b0864280], rax
test rax, rax
je 0x7ff7b082341a
mov r9d, ebx
lea rdx, [rbp + 0x4f]
mov rcx, rsi
call fcn.7ff7b0820d40
test al, al
je 0x7ff7b082341a
mov r13, qword [rbp + 0x4f]
test r13, r13
je 0x7ff7b082341a
cmp qword [0x7ff7b0864270], rdi
jne 0x7ff7b08233e7
lea rax, [0x7ff7b0841580]
mov qword [rsp + 0x20], rax
lea r9, [0x7ff7b08415a0]
mov r8, qword [0x7ff7b0864178]
lea rdx, [0x7ff7b084146c]
mov rcx, rsi
call fcn.7ff7b081fc50
mov qword [0x7ff7b0864270], rax
test rax, rax
je 0x7ff7b082340c
lea rdx, [rax + 0xc]
mov qword [0x7ff7b0864270], rdx
mov r9d, 5
mov r8d, 1
mov rcx, rsi
call fcn.7ff7b081f180
mov qword [0x7ff7b0864270], rax
test rax, rax
je 0x7ff7b082340c
mov byte [rbp + 0x67], dil
mov dword [rsp + 0x20], ebx
mov r9, r13
lea rdx, [rbp + 0x67]
mov rcx, rsi
call fcn.7ff7b08211c0
test al, al
je 0x7ff7b082340c
cmp byte [rbp + 0x67], dil
jne 0x7ff7b0823543
mov r8d, ebx
mov rdx, r13
mov rcx, rsi
call fcn.7ff7b081e440
mov r13, rdi
jmp 0x7ff7b0823543
test rbx, rbx
jne 0x7ff7b082342f
mov r13, rdi
jmp 0x7ff7b0823543
mov edx, ecx
mov rax, qword gs:[0x58]
mov rcx, qword [rax]
mov eax, dword [rdx + rcx]
cmp dword [0x7ff7b08642d0], eax
jle 0x7ff7b0823515
lea rcx, [0x7ff7b08642d0]
call fcn.7ff7b0832be0
cmp dword [0x7ff7b08642d0], 0xffffffff
jne 0x7ff7b0823515
xorps xmm0, xmm0
movups xmmword [rbp - 0x19], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 9], xmm1
mov ecx, 0x20
call fcn.7ff7b08327b8
mov qword [rbp - 0x19], rax
movdqa xmm0, xmmword [0x7ff7b0841ba0]
movdqu xmmword [rbp - 9], xmm0
movups xmm0, xmmword [0x7ff7b0841648]
movups xmmword [rax], xmm0
mov ecx, dword [0x7ff7b0841658]
mov dword [rax + 0x10], ecx
movzx ecx, byte [0x7ff7b084165c]
mov byte [rax + 0x14], cl
mov byte [rax + 0x15], 0
lea r8, [rbp - 0x19]
mov rdx, qword [0x7ff7b0864178]
mov rcx, rsi
call fcn.7ff7b081e920
mov qword [0x7ff7b08643b8], rax
mov rdx, qword [rbp - 1]
cmp rdx, 0xf
jbe 0x7ff7b0823509
inc rdx
mov rcx, qword [rbp - 0x19]
mov rax, rcx
cmp rdx, 0x1000
jb 0x7ff7b0823503
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x7ff7b0823503
call qword [sym.imp.ucrtbase.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.7ff7b08327b0
nop
lea rcx, [0x7ff7b08642d0]
call fcn.7ff7b0832b74
cmp qword [0x7ff7b08643b8], 0
jne 0x7ff7b0823524
mov r13, rdi
jmp 0x7ff7b0823543
mov qword [rbp + 0x4f], rdi
mov qword [rsp + 0x20], rbx
lea rdx, [rbp + 0x4f]
mov rcx, rsi
call fcn.7ff7b0821f60
mov r13, qword [rbp + 0x4f]
test al, al
cmove r13, rdi
mov rcx, r12
test r13, r13
jne 0x7ff7b082355e
xor edx, edx
mov r8d, 0x8000
call qword [sym.imp.kernel32.dll_VirtualFree]
jmp 0x7ff7b0823aa6
mov r8d, dword [r15 + 0x54]
mov rdx, r14
call sub.VCRUNTIME140.dll_memcpy
movzx ebx, word [r15 + 0x14]
add rbx, 0x24
xor edx, edx
cmp dx, word [r15 + 6]
jae 0x7ff7b08235b5
add rbx, r15
mov rax, qword [rbp + 0x5f]
mov qword [rbp + 0x5f], rax
test dword [rbx + 0x18], 0x80
ja 0x7ff7b08235a4
mov ecx, dword [rbx]
add rcx, r12
mov r8d, dword [rbx + 4]
mov edx, dword [rbx + 8]
add rdx, r14
call sub.VCRUNTIME140.dll_memcpy
inc edi
add rbx, 0x28
movzx eax, word [r15 + 6]
cmp edi, eax
jl 0x7ff7b0823587
xor edx, edx
mov qword [rbp + 0x87], r13
mov eax, dword [rbp + 0x7f]
sub r13, rax
mov qword [rbp - 0x39], r13
mov r14, r13
mov r15, qword [rbp + 0x5f]
sub r14, qword [r15 + 0x30]
mov eax, 0x5a4d
cmp word [r12], ax
jne 0x7ff7b08236ac
movsxd rax, dword [r12 + 0x3c]
add rax, r12
cmp dword [rax], 0x4550
jne 0x7ff7b08236ac
test rax, rax
je 0x7ff7b08236ac
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x31], xmm1
mov r8, rdx
mov qword [rbp - 0x21], rdx
mov ecx, dword [rax + 0xb0]
test ecx, ecx
jne 0x7ff7b082361f
mov rbx, rdx
jmp 0x7ff7b08236b2
lea rbx, [r12 + rcx]
mov edi, dword [rax + 0xb4]
add rdi, rbx
cmp rbx, rdi
jae 0x7ff7b082369c
mov rdx, qword [rbp - 0x29]
mov ecx, dword [rbx + 4]
test ecx, ecx
je 0x7ff7b0823697
mov eax, dword [rbx]
add rax, r12
mov qword [rbp - 0x19], rax
lea rax, [rbx + 8]
mov qword [rbp - 0x11], rax
lea rax, [rcx - 8]
shr rax, 1
mov dword [rbp - 9], eax
cmp rdx, r8
je 0x7ff7b0823677
movups xmm0, xmmword [rbp - 0x19]
movups xmmword [rdx], xmm0
movsd xmm1, qword [rbp - 9]
movsd qword [rdx + 0x10], xmm1
add rdx, 0x18
mov qword [rbp - 0x29], rdx
jmp 0x7ff7b082368c
lea r8, [rbp - 0x19]
lea rcx, [rbp - 0x31]
call fcn.7ff7b08247d0
mov r8, qword [rbp - 0x21]
mov rdx, qword [rbp - 0x29]
mov eax, dword [rbx + 4]
add rbx, rax
cmp rbx, rdi
jb 0x7ff7b0823635
movdqu xmm1, xmmword [rbp - 0x31]
movsd xmm0, qword [rbp - 0x21]
movsd qword [rbp - 9], xmm0
mov rbx, qword [rbp - 9]
jmp 0x7ff7b08236b2
xorps xmm1, xmm1
mov rbx, rdx
movq r10, xmm1
psrldq xmm1, 8
movq r11, xmm1
cmp r10, r11
je 0x7ff7b0823721
lea r8, [r10 + 0x10]
mov edi, 0xfff
xor r15d, r15d
mov edx, r15d
cmp dword [r8], edx
jbe 0x7ff7b0823710
nop word [rax + rax]
mov ecx, edx
mov rax, qword [r8 - 8]
movzx r9d, word [rax + rcx*2]
movzx eax, r9w
shr ax, 0xc
and r9w, di
cmp ax, 0xa
jne 0x7ff7b0823709
movzx ecx, r9w
mov rax, qword [r8 - 0x10]
add qword [rax + rcx], r14
inc edx
cmp edx, dword [r8]
jb 0x7ff7b08236e0
add r8, 0x18
lea rax, [r8 - 0x10]
cmp rax, r11
jne 0x7ff7b08236d2
mov r15, qword [rbp + 0x5f]
test r10, r10
je 0x7ff7b082377c
sub rbx, r10
movabs rax, 0x2aaaaaaaaaaaaaab
imul rbx
sar rdx, 2
mov rax, rdx
shr rax, 0x3f
add rdx, rax
lea rdx, [rdx + rdx*2]
shl rdx, 3
mov rax, r10
cmp rdx, 0x1000
jb 0x7ff7b0823774
add rdx, 0x27
mov r10, qword [r10 - 8]
sub rax, r10
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x7ff7b0823774
call qword [sym.imp.ucrtbase.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, r10
call fcn.7ff7b08327b0
mov eax, 0x5a4d
cmp word [r12], ax
jne 0x7ff7b0823aa6
movsxd rax, dword [r12 + 0x3c]
add rax, r12
cmp dword [rax], 0x4550
jne 0x7ff7b0823aa6
test rax, rax
je 0x7ff7b0823aa6
mov ecx, dword [rax + 0xd8]
test ecx, ecx
je 0x7ff7b0823803
mov rdi, qword [rcx + r12 + 0x58]
test rdi, rdi
je 0x7ff7b0823803
mov rax, r12
sub rax, r13
add rdi, rax
movabs r14, 0x2b992ddfa232
cmp qword [rdi], r14
jne 0x7ff7b0823aa6
call qword [sym.imp.kernel32.dll_GetCurrentThreadId]
mov ebx, eax
call qword [sym.imp.kernel32.dll_GetCurrentProcessId]
mov ecx, eax
xor rcx, rbx
xor rcx, r14
movabs rax, 0x2b992ddfa233
cmp rcx, r14
cmove rcx, rax
mov qword [rdi], rcx
mov rdx, r12
lea rcx, [rbp - 0x19]
call fcn.7ff7b0824140
mov qword [rbp + 0x4f], rax
mov r14, qword [rax]
mov r13, qword [rax + 8]
cmp r14, r13
je 0x7ff7b082389b
nop
mov rcx, r14
call fcn.7ff7b08254c0
mov rdi, rax
test rax, rax
je 0x7ff7b0823944
mov rbx, qword [r14 + 0x20]
mov r15, qword [r14 + 0x28]
cmp rbx, r15
je 0x7ff7b082388a
mov r8, rbx
mov rdx, rdi
mov rcx, rsi
call fcn.7ff7b081e920
mov rcx, rax
test rax, rax
jne 0x7ff7b082387a
mov rdx, qword [0x7ff7b0864178]
cmp rdi, rdx
je 0x7ff7b082387a
mov r8, rbx
mov rcx, rsi
call fcn.7ff7b081e920
mov rcx, rax
test rax, rax
je 0x7ff7b0823944
mov rax, qword [rbx + 0x20]
mov qword [rax], rcx
add rbx, 0x28
cmp rbx, r15
jne 0x7ff7b0823841
add r14, 0x38
cmp r14, r13
jne 0x7ff7b0823820
mov rax, qword [rbp + 0x4f]
mov r15, qword [rbp + 0x5f]
mov rcx, rax
call fcn.7ff7b0823ad0
mov r13d, dword [rbp + 0x6f]
mov r8d, dword [rbp + 0x7f]
add r8, r12
mov r9d, r13d
mov r14, qword [rbp + 0x87]
mov rdx, r14
mov rcx, rsi
call fcn.7ff7b081e210
test al, al
je 0x7ff7b0823958
mov ebx, dword [r15 + 0x28]
add rbx, qword [rbp - 0x39]
mov r15, qword [rbp + 0x57]
mov qword [rsp + 0x20], r15
mov r9d, r13d
mov r8, r14
lea rdx, [rbp - 0x49]
lea rcx, [rbp - 0x41]
call fcn.7ff7b08240b0
test al, al
je 0x7ff7b082395c
mov dword [rbp + 0x67], 0
mov rax, qword [rbp - 0x49]
mov qword [rsp + 0x20], rax
mov r9, qword [rbp - 0x41]
mov r8, rbx
lea rdx, [rbp + 0x67]
mov rcx, rsi
call fcn.7ff7b0823c40
test al, al
je 0x7ff7b082395c
mov rdx, qword [rbp + 0x8f]
test rdx, rdx
je 0x7ff7b082392b
mov ecx, dword [rbp + 0x67]
mov dword [rdx], ecx
xor edx, edx
mov r8d, 0x8000
mov rcx, r12
call qword [sym.imp.kernel32.dll_VirtualFree]
mov rax, r14
jmp 0x7ff7b0823aa8
mov rcx, qword [rbp + 0x4f]
call fcn.7ff7b0823ad0
mov r14, qword [rbp + 0x87]
mov r13d, dword [rbp + 0x6f]
mov r15, qword [rbp + 0x57]
xor edx, edx
mov r8d, 0x8000
mov rcx, r12
call qword [sym.imp.kernel32.dll_VirtualFree]
mov eax, dword [rbp + 0x77]
mov rdx, r14
mov rcx, rsi
cmp eax, 1
jne 0x7ff7b0823a92
mov r8, r15
call fcn.7ff7b081e580
test al, al
je 0x7ff7b0823aa6
mov rdx, r15
mov rcx, rsi
call fcn.7ff7b081e6d0
test al, al
je 0x7ff7b0823aa6
test r15, r15
je 0x7ff7b0823aa6
mov edx, 4
mov rax, qword gs:[0x58]
mov rcx, qword [rax]
mov eax, dword [rdx + rcx]
cmp dword [0x7ff7b0864368], eax
jle 0x7ff7b0823a79
lea rcx, [0x7ff7b0864368]
call fcn.7ff7b0832be0
cmp dword [0x7ff7b0864368], 0xffffffff
jne 0x7ff7b0823a79
xorps xmm0, xmm0
movups xmmword [rbp - 0x19], xmm0
movdqa xmm1, xmmword [0x7ff7b0841b50]
movdqu xmmword [rbp - 9], xmm1
movsd xmm0, qword [0x7ff7b0841660]
movsd qword [rbp - 0x19], xmm0
movzx eax, word [0x7ff7b0841668]
mov word [rbp - 0x11], ax
mov byte [rbp - 0xf], 0
lea r8, [rbp - 0x19]
mov rdx, qword [0x7ff7b0864178]
mov rcx, rsi
call fcn.7ff7b081e920
mov qword [0x7ff7b0864318], rax
mov rdx, qword [rbp - 1]
cmp rdx, 0xf
jbe 0x7ff7b0823a6d
inc rdx
mov rcx, qword [rbp - 0x19]
mov rax, rcx
cmp rdx, 0x1000
jb 0x7ff7b0823a67
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x7ff7b0823a67
call qword [sym.imp.ucrtbase.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.7ff7b08327b0
nop
lea rcx, [0x7ff7b0864368]
call fcn.7ff7b0832b74
mov r8, qword [0x7ff7b0864318]
test r8, r8
je 0x7ff7b0823aa6
mov r9, r15
mov rcx, rsi
call fcn.7ff7b0820b20
jmp 0x7ff7b0823aa6
cmp eax, 2
jne 0x7ff7b0823aa1
mov r8d, r13d
call fcn.7ff7b081e440
jmp 0x7ff7b0823aa6
call fcn.7ff7b081e800
xor eax, eax
mov rbx, qword [rsp + 0xd0]
add rsp, 0x90
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret