Function at 0x7ff715084760
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 0x7ff715084ff6
movsxd r15, dword [rdx + 0x3c]
add r15, rdx
mov qword [rbp + 0x5f], r15
cmp dword [r15], 0x4550
jne 0x7ff715084ff6
test r15, r15
je 0x7ff715084ff6
mov eax, 0x20b
cmp word [r15 + 0x18], ax
jne 0x7ff715084ff6
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 0x7ff715084ff6
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 0x7ff715084834
mov edx, ebx
lea r8, [rbp + 0x57]
mov rcx, rsi
call fcn.7ff715084320
mov r13, rax
jmp 0x7ff715084a93
cmp eax, 2
jne 0x7ff715084972
mov qword [rbp + 0x4f], rdi
cmp qword [0x7ff7150c63e8], rdi
jne 0x7ff7150848aa
lea rax, [0x7ff7150a3628]
mov qword [rsp + 0x20], rax
lea r9, [0x7ff7150a3650]
mov r8, qword [0x7ff7150c62c8]
lea rdx, [0x7ff7150a3678]
mov rcx, rsi
call fcn.7ff7150811a0
mov qword [0x7ff7150c63e8], rax
test rax, rax
je 0x7ff71508496a
mov r9d, 5
mov r8d, 1
mov rdx, rax
mov rcx, rsi
call fcn.7ff7150806d0
mov qword [0x7ff7150c63e8], rax
test rax, rax
je 0x7ff71508496a
mov r9d, ebx
lea rdx, [rbp + 0x4f]
mov rcx, rsi
call fcn.7ff715082290
test al, al
je 0x7ff71508496a
mov r13, qword [rbp + 0x4f]
test r13, r13
je 0x7ff71508496a
cmp qword [0x7ff7150c63d8], rdi
jne 0x7ff715084937
lea rax, [0x7ff7150a36b0]
mov qword [rsp + 0x20], rax
lea r9, [0x7ff7150a36d0]
mov r8, qword [0x7ff7150c62c8]
lea rdx, [0x7ff7150a359c]
mov rcx, rsi
call fcn.7ff7150811a0
mov qword [0x7ff7150c63d8], rax
test rax, rax
je 0x7ff71508495c
lea rdx, [rax + 0xc]
mov qword [0x7ff7150c63d8], rdx
mov r9d, 5
mov r8d, 1
mov rcx, rsi
call fcn.7ff7150806d0
mov qword [0x7ff7150c63d8], rax
test rax, rax
je 0x7ff71508495c
mov byte [rbp + 0x67], dil
mov dword [rsp + 0x20], ebx
mov r9, r13
lea rdx, [rbp + 0x67]
mov rcx, rsi
call fcn.7ff715082710
test al, al
je 0x7ff71508495c
cmp byte [rbp + 0x67], dil
jne 0x7ff715084a93
mov r8d, ebx
mov rdx, r13
mov rcx, rsi
call fcn.7ff71507f990
mov r13, rdi
jmp 0x7ff715084a93
test rbx, rbx
jne 0x7ff71508497f
mov r13, rdi
jmp 0x7ff715084a93
mov edx, ecx
mov rax, qword gs:[0x58]
mov rcx, qword [rax]
mov eax, dword [rdx + rcx]
cmp dword [0x7ff7150c6438], eax
jle 0x7ff715084a65
lea rcx, [0x7ff7150c6438]
call fcn.7ff715093db0
cmp dword [0x7ff7150c6438], 0xffffffff
jne 0x7ff715084a65
xorps xmm0, xmm0
movups xmmword [rbp - 0x19], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 9], xmm1
mov ecx, 0x20
call fcn.7ff715093e28
mov qword [rbp - 0x19], rax
movdqa xmm0, xmmword [0x7ff7150a3cd0]
movdqu xmmword [rbp - 9], xmm0
movups xmm0, xmmword [0x7ff7150a3778]
movups xmmword [rax], xmm0
mov ecx, dword [0x7ff7150a3788]
mov dword [rax + 0x10], ecx
movzx ecx, byte [0x7ff7150a378c]
mov byte [rax + 0x14], cl
mov byte [rax + 0x15], 0
lea r8, [rbp - 0x19]
mov rdx, qword [0x7ff7150c62c8]
mov rcx, rsi
call fcn.7ff71507fe70
mov qword [0x7ff7150c6520], rax
mov rdx, qword [rbp - 1]
cmp rdx, 0xf
jbe 0x7ff715084a59
inc rdx
mov rcx, qword [rbp - 0x19]
mov rax, rcx
cmp rdx, 0x1000
jb 0x7ff715084a53
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x7ff715084a53
call qword [sym.imp.ucrtbase.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.7ff715093d00
nop
lea rcx, [0x7ff7150c6438]
call fcn.7ff715093d44
cmp qword [0x7ff7150c6520], 0
jne 0x7ff715084a74
mov r13, rdi
jmp 0x7ff715084a93
mov qword [rbp + 0x4f], rdi
mov qword [rsp + 0x20], rbx
lea rdx, [rbp + 0x4f]
mov rcx, rsi
call fcn.7ff7150834b0
mov r13, qword [rbp + 0x4f]
test al, al
cmove r13, rdi
mov rcx, r12
test r13, r13
jne 0x7ff715084aae
xor edx, edx
mov r8d, 0x8000
call qword [sym.imp.kernel32.dll_VirtualFree]
jmp 0x7ff715084ff6
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 0x7ff715084b05
add rbx, r15
mov rax, qword [rbp + 0x5f]
mov qword [rbp + 0x5f], rax
test dword [rbx + 0x18], 0x80
ja 0x7ff715084af4
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 0x7ff715084ad7
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 0x7ff715084bfc
movsxd rax, dword [r12 + 0x3c]
add rax, r12
cmp dword [rax], 0x4550
jne 0x7ff715084bfc
test rax, rax
je 0x7ff715084bfc
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 0x7ff715084b6f
mov rbx, rdx
jmp 0x7ff715084c02
lea rbx, [r12 + rcx]
mov edi, dword [rax + 0xb4]
add rdi, rbx
cmp rbx, rdi
jae 0x7ff715084bec
mov rdx, qword [rbp - 0x29]
mov ecx, dword [rbx + 4]
test ecx, ecx
je 0x7ff715084be7
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 0x7ff715084bc7
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 0x7ff715084bdc
lea r8, [rbp - 0x19]
lea rcx, [rbp - 0x31]
call fcn.7ff715085d20
mov r8, qword [rbp - 0x21]
mov rdx, qword [rbp - 0x29]
mov eax, dword [rbx + 4]
add rbx, rax
cmp rbx, rdi
jb 0x7ff715084b85
movdqu xmm1, xmmword [rbp - 0x31]
movsd xmm0, qword [rbp - 0x21]
movsd qword [rbp - 9], xmm0
mov rbx, qword [rbp - 9]
jmp 0x7ff715084c02
xorps xmm1, xmm1
mov rbx, rdx
movq r10, xmm1
psrldq xmm1, 8
movq r11, xmm1
cmp r10, r11
je 0x7ff715084c71
lea r8, [r10 + 0x10]
mov edi, 0xfff
xor r15d, r15d
mov edx, r15d
cmp dword [r8], edx
jbe 0x7ff715084c60
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 0x7ff715084c59
movzx ecx, r9w
mov rax, qword [r8 - 0x10]
add qword [rax + rcx], r14
inc edx
cmp edx, dword [r8]
jb 0x7ff715084c30
add r8, 0x18
lea rax, [r8 - 0x10]
cmp rax, r11
jne 0x7ff715084c22
mov r15, qword [rbp + 0x5f]
test r10, r10
je 0x7ff715084ccc
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 0x7ff715084cc4
add rdx, 0x27
mov r10, qword [r10 - 8]
sub rax, r10
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x7ff715084cc4
call qword [sym.imp.ucrtbase.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, r10
call fcn.7ff715093d00
mov eax, 0x5a4d
cmp word [r12], ax
jne 0x7ff715084ff6
movsxd rax, dword [r12 + 0x3c]
add rax, r12
cmp dword [rax], 0x4550
jne 0x7ff715084ff6
test rax, rax
je 0x7ff715084ff6
mov ecx, dword [rax + 0xd8]
test ecx, ecx
je 0x7ff715084d53
mov rdi, qword [rcx + r12 + 0x58]
test rdi, rdi
je 0x7ff715084d53
mov rax, r12
sub rax, r13
add rdi, rax
movabs r14, 0x2b992ddfa232
cmp qword [rdi], r14
jne 0x7ff715084ff6
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.7ff715085690
mov qword [rbp + 0x4f], rax
mov r14, qword [rax]
mov r13, qword [rax + 8]
cmp r14, r13
je 0x7ff715084deb
nop
mov rcx, r14
call fcn.7ff715086a10
mov rdi, rax
test rax, rax
je 0x7ff715084e94
mov rbx, qword [r14 + 0x20]
mov r15, qword [r14 + 0x28]
cmp rbx, r15
je 0x7ff715084dda
mov r8, rbx
mov rdx, rdi
mov rcx, rsi
call fcn.7ff71507fe70
mov rcx, rax
test rax, rax
jne 0x7ff715084dca
mov rdx, qword [0x7ff7150c62c8]
cmp rdi, rdx
je 0x7ff715084dca
mov r8, rbx
mov rcx, rsi
call fcn.7ff71507fe70
mov rcx, rax
test rax, rax
je 0x7ff715084e94
mov rax, qword [rbx + 0x20]
mov qword [rax], rcx
add rbx, 0x28
cmp rbx, r15
jne 0x7ff715084d91
add r14, 0x38
cmp r14, r13
jne 0x7ff715084d70
mov rax, qword [rbp + 0x4f]
mov r15, qword [rbp + 0x5f]
mov rcx, rax
call fcn.7ff715085020
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.7ff71507f760
test al, al
je 0x7ff715084ea8
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.7ff715085600
test al, al
je 0x7ff715084eac
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.7ff715085190
test al, al
je 0x7ff715084eac
mov rdx, qword [rbp + 0x8f]
test rdx, rdx
je 0x7ff715084e7b
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 0x7ff715084ff8
mov rcx, qword [rbp + 0x4f]
call fcn.7ff715085020
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 0x7ff715084fe2
mov r8, r15
call fcn.7ff71507fad0
test al, al
je 0x7ff715084ff6
mov rdx, r15
mov rcx, rsi
call fcn.7ff71507fc20
test al, al
je 0x7ff715084ff6
test r15, r15
je 0x7ff715084ff6
mov edx, 4
mov rax, qword gs:[0x58]
mov rcx, qword [rax]
mov eax, dword [rdx + rcx]
cmp dword [0x7ff7150c64d0], eax
jle 0x7ff715084fc9
lea rcx, [0x7ff7150c64d0]
call fcn.7ff715093db0
cmp dword [0x7ff7150c64d0], 0xffffffff
jne 0x7ff715084fc9
xorps xmm0, xmm0
movups xmmword [rbp - 0x19], xmm0
movdqa xmm1, xmmword [0x7ff7150a3c80]
movdqu xmmword [rbp - 9], xmm1
movsd xmm0, qword [0x7ff7150a3790]
movsd qword [rbp - 0x19], xmm0
movzx eax, word [0x7ff7150a3798]
mov word [rbp - 0x11], ax
mov byte [rbp - 0xf], 0
lea r8, [rbp - 0x19]
mov rdx, qword [0x7ff7150c62c8]
mov rcx, rsi
call fcn.7ff71507fe70
mov qword [0x7ff7150c6480], rax
mov rdx, qword [rbp - 1]
cmp rdx, 0xf
jbe 0x7ff715084fbd
inc rdx
mov rcx, qword [rbp - 0x19]
mov rax, rcx
cmp rdx, 0x1000
jb 0x7ff715084fb7
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x7ff715084fb7
call qword [sym.imp.ucrtbase.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.7ff715093d00
nop
lea rcx, [0x7ff7150c64d0]
call fcn.7ff715093d44
mov r8, qword [0x7ff7150c6480]
test r8, r8
je 0x7ff715084ff6
mov r9, r15
mov rcx, rsi
call fcn.7ff715082070
jmp 0x7ff715084ff6
cmp eax, 2
jne 0x7ff715084ff1
mov r8d, r13d
call fcn.7ff71507f990
jmp 0x7ff715084ff6
call fcn.7ff71507fd50
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