Function at 0x14000ed70
Capabilities:
Parse pe header

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x48
mov rbx, r8
mov r15, rdx
mov rsi, rcx
mov r12, qword [0x1400f74a8]
mov rax, qword [r12]
xor rax, rsp
mov qword [rsp + 0x40], rax
mov ecx, 0x58
call qword [sym.imp.mozglue.dll_moz_xmalloc]
mov rdi, rax
mov qword [rax + 8], 0
lea r13, [0x1400f7a98]
mov qword [rax], r13
lea rcx, [rax + 0x10]
mov qword [rax + 0x10], rbx
mov qword [rax + 0x20], 0
mov qword [rax + 0x28], 0x20
add rax, 0x30
mov qword [rdi + 0x18], rax
mov qword [rdi + 0x50], r15
mov edx, 0x40
call fcn.14000f540
cmp qword [rdi + 0x50], 0
je 0x14000ef4e
cmp qword [rdi + 0x20], 0
je 0x14000ef4e
mov rax, qword [rdi + 0x18]
test rax, rax
je 0x14000ef4e
movzx ecx, word [rax]
cmp ecx, 0x5a4d
jne 0x14000ef4e
movsxd rbp, dword [rax + 0x3c]
add rbp, r15
mov ecx, 0x58
call qword [sym.imp.mozglue.dll_moz_xmalloc]
mov r14, rax
mov qword [rax + 8], 0
mov qword [rax], r13
lea rcx, [rax + 0x10]
mov qword [rax + 0x10], rbx
mov qword [rax + 0x20], 0
mov qword [rax + 0x28], 0x20
add rax, 0x30
mov qword [r14 + 0x18], rax
mov qword [r14 + 0x50], rbp
mov edx, 0x108
call fcn.14000f540
cmp qword [r14 + 0x50], 0
je 0x14000f08f
cmp qword [r14 + 0x20], 0
je 0x14000f08f
mov rbp, qword [r14 + 0x18]
test rbp, rbp
je 0x14000f08f
cmp dword [rbp], 0x4550
jne 0x14000f08f
movzx eax, word [rbp + 0x18]
cmp eax, 0x20b
jne 0x14000f08f
cmp dword [rbp + 0x50], 0x147
jbe 0x14000f1b1
cmp dword [rbp + 0x84], 0
je 0x14000f1b1
mov r8d, dword [rbp + 0x88]
test r8, r8
je 0x14000f1b1
cmp dword [rbp + 0x8c], 0
je 0x14000f1b1
add r8, r15
lea rcx, [rsp + 0x30]
mov rdx, rbx
call fcn.14000f300
mov rax, qword [rsp + 0x30]
cmp qword [rax + 0x40], 0
je 0x14000f1be
cmp qword [rax + 0x10], 0
je 0x14000f1be
mov rax, qword [rax + 8]
test rax, rax
je 0x14000f1be
cmp dword [rax + 0x14], 0
je 0x14000f1be
mov r9d, dword [rbp + 0x88]
mov ecx, dword [rbp + 0x8c]
add ecx, r9d
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], ecx
mov rcx, rsi
mov rdx, rbx
mov r8, r15
call fcn.14000f370
jmp 0x14000f1c9
mov qword [rsi], rbx
xorps xmm0, xmm0
movups xmmword [rsi + 8], xmm0
mov dword [rsi + 0x18], 0
mov r14, qword [sym.imp.mozglue.dll_moz_xmalloc]
mov ecx, 0x58
call r14
mov qword [rax + 8], 0
mov qword [rax], r13
lea rcx, [rax + 0x10]
mov qword [rax + 0x10], rbx
mov qword [rax + 0x20], 0
mov qword [rax + 0x28], 0x20
lea rdx, [rax + 0x30]
mov qword [rax + 0x18], rdx
mov qword [rax + 0x50], 0
mov qword [rsi + 0x20], rcx
mov qword [rsi + 0x28], rax
mov qword [rsi + 0x30], 0
mov ecx, 0x58
call r14
mov qword [rax + 8], 0
mov qword [rax], r13
lea rcx, [rax + 0x10]
mov qword [rax + 0x10], rbx
mov qword [rax + 0x20], 0
mov qword [rax + 0x28], 0x20
lea rdx, [rax + 0x30]
mov qword [rax + 0x18], rdx
mov qword [rax + 0x50], 0
mov qword [rsi + 0x38], rcx
mov qword [rsi + 0x40], rax
mov qword [rsi + 0x48], 0
mov ecx, 0x58
call r14
mov qword [rax + 8], 0
mov qword [rax], r13
lea rcx, [rax + 0x10]
mov qword [rax + 0x10], rbx
mov qword [rax + 0x20], 0
mov qword [rax + 0x28], 0x20
lea rdx, [rax + 0x30]
mov qword [rax + 0x18], rdx
mov qword [rax + 0x50], 0
mov qword [rsi + 0x50], rcx
mov qword [rsi + 0x58], rax
mov qword [rsi + 0x60], 0
mov eax, 0xffffffff
lock xadd dword [rdi + 8], eax
test eax, eax
jne 0x14000f066
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x10]
mov rcx, rdi
call fcn.14007a130
mov rax, qword [rsp + 0x40]
xor rax, rsp
mov rcx, qword [r12]
cmp rcx, rax
jne 0x14000f1d5
mov rax, rsi
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov qword [rsi], rbx
xorps xmm0, xmm0
movups xmmword [rsi + 8], xmm0
mov dword [rsi + 0x18], 0
mov r15, qword [sym.imp.mozglue.dll_moz_xmalloc]
mov ecx, 0x58
call r15
mov qword [rax + 8], 0
mov qword [rax], r13
lea rcx, [rax + 0x10]
mov qword [rax + 0x10], rbx
mov qword [rax + 0x20], 0
mov qword [rax + 0x28], 0x20
lea rdx, [rax + 0x30]
mov qword [rax + 0x18], rdx
mov qword [rax + 0x50], 0
mov qword [rsi + 0x20], rcx
mov qword [rsi + 0x28], rax
mov qword [rsi + 0x30], 0
mov ecx, 0x58
call r15
mov qword [rax + 8], 0
mov qword [rax], r13
lea rcx, [rax + 0x10]
mov qword [rax + 0x10], rbx
mov qword [rax + 0x20], 0
mov qword [rax + 0x28], 0x20
lea rdx, [rax + 0x30]
mov qword [rax + 0x18], rdx
mov qword [rax + 0x50], 0
mov qword [rsi + 0x38], rcx
mov qword [rsi + 0x40], rax
mov qword [rsi + 0x48], 0
mov ecx, 0x58
call r15
mov qword [rax + 8], 0
mov qword [rax], r13
lea rcx, [rax + 0x10]
mov qword [rax + 0x10], rbx
mov qword [rax + 0x20], 0
mov qword [rax + 0x28], 0x20
lea rdx, [rax + 0x30]
mov qword [rax + 0x18], rdx
mov qword [rax + 0x50], 0
mov qword [rsi + 0x50], rcx
mov qword [rsi + 0x58], rax
mov qword [rsi + 0x60], 0
mov eax, 0xffffffff
lock xadd dword [r14 + 8], eax
test eax, eax
jne 0x14000f047
mov rax, qword [r14]
mov rcx, r14
call qword [rax + 0x10]
mov rcx, r14
call fcn.14007a130
jmp 0x14000f047
mov rcx, rsi
mov rdx, rbx
call fcn.14000f1e0
jmp 0x14000f188
mov rcx, rsi
mov rdx, rbx
call fcn.14000f1e0
lea rcx, [rsp + 0x30]
call fcn.14000f500
jmp 0x14000f188
call fcn.1400c8850
int3