Function at 0x14000e530
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call
Generate random numbers via rtlgenrandom

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x258
movaps xmmword [rsp + 0x240], xmm6
mov rax, qword [0x140062018]
xor rax, rsp
mov qword [rsp + 0x238], rax
cmp qword [rcx + 0x10], 0
je 0x14000ee32
mov r13, rcx
mov qword [rsp + 0xa8], 0
mov ecx, 0x40
call sub.mozglue.dll_void____ptr64___cdecl_operator_new_unsigned_long_long_unsigned___int64__
mov qword [rax], rax
mov qword [rax + 8], rax
mov qword [rax + 0x10], rax
mov word [rax + 0x18], 0x101
mov qword [rsp + 0xa0], rax
mov rbx, qword [r13 + 8]
mov rbp, qword [rbx]
cmp rbp, rbx
mov qword [rsp + 0x60], r13
je 0x14000ec5b
xor edi, edi
mov eax, dword [rbp + 0x10]
cmp eax, 2
jb 0x14000e5c2
cmp eax, 5
jle 0x14000ecfc
mov rbp, qword [rbp]
cmp rbp, rbx
jne 0x14000e5b1
mov rsi, qword [rsp + 0xa0]
mov rdx, qword [rsi + 8]
test rdi, rdi
je 0x14000ec61
add rdi, 0xc
lea rbx, [rsp + 0xa0]
mov rcx, rbx
call fcn.14001ceb0
mov rax, qword [rbx]
mov qword [rax + 8], rsi
mov qword [rax], rsi
mov rcx, qword [rbx]
mov qword [rbx + 8], 0
mov edx, 0x40
call sub.mozglue.dll_void___cdecl_operator_delete_void____ptr64__unsigned_long_long_unsigned___int64__
mov rcx, rdi
call sub.mozglue.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__
mov r15, rax
test rdi, rdi
mov qword [rsp + 0x58], rax
jne 0x14000ee39
mov rax, qword [r13]
mov rcx, qword [rax]
lea r9, [rsp + 0x90]
mov rdx, r15
mov r8, rdi
call fcn.14000f650
test al, al
je 0x14000f01f
cmp qword [r13 + 0x10], 0
je 0x14000ebf7
mov rax, qword [r13]
mov r12, qword [rax]
mov dword [rsp + 0x20], 1
mov r8d, 0x10000
mov rcx, r12
xor edx, edx
mov r9d, 0x2000
call qword [sym.imp.KERNEL32.dll_VirtualAllocEx]
mov r14, rax
mov rbx, qword [r13 + 0x10]
shl rbx, 6
lea rax, [rbx + 0x60]
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0x70], rax
cmp rax, 0x10001
jae 0x14000f029
lea rbp, [rsp + 0x100]
mov rcx, rbp
mov edx, 4
call sub.ADVAPI32.dll_SystemFunction036
movzx ecx, word [rsp + 0x100]
mov dword [rsp + 0x100], ecx
mov rax, qword [rsp + 0xa0]
mov edx, 0x10000
sub rdx, rax
cmp rdx, rcx
jb 0x14000e6af
mov edi, ecx
mov ebp, 0x800
mov ecx, 0x1000
mov edx, 0x800
mov rsi, rcx
shr rdx, 1
mov rcx, rbp
cmp rbp, rax
mov rbp, rdx
jae 0x14000e6f1
neg esi
and edi, esi
mov eax, edi
and eax, 0xf000
add r14, rax
add rbx, 0x105f
and rbx, 0xfffffffffffff000
mov dword [rsp + 0x20], 0x40
mov rcx, r12
mov rdx, r14
mov r8, rbx
mov r9d, 0x1000
call qword [sym.imp.KERNEL32.dll_VirtualAllocEx]
mov qword [rsp + 0x68], rax
test rax, rax
je 0x14000f07a
mov qword [rsp + 0x78], r12
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0xa0], rax
mov dword [rsp + 0xb8], 0
mov qword [rsp + 0xa8], 0x20
lea rcx, [sym.firefox.exe_g_originals]
xor r14d, r14d
mov r8d, 0x150
xor edx, edx
call sub.ntdll.dll_memset
lea rcx, [0x140055d00]
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov qword [rsp + 0x80], rax
test rax, rax
je 0x14000f0ab
and edi, 0xfff
add qword [rsp + 0x68], rdi
mov rax, qword [r13]
mov r15, qword [rax + 0x48]
mov rcx, qword [rax + 0x50]
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov rsi, rax
mov ecx, 0x30
call sub.mozglue.dll_void____ptr64___cdecl_operator_new_unsigned_long_long_unsigned___int64__
mov r12, rax
mov al, byte [r13 + 0x19]
mov rcx, qword [r13]
mov rcx, qword [rcx]
lea rdx, [0x140055d20]
mov qword [r12], rdx
mov qword [r12 + 0x18], 0
mov qword [r12 + 0x20], rcx
mov byte [r12 + 0x28], al
mov dword [r12 + 0x2c], 0
mov rdi, qword [r13 + 8]
mov r13d, 0x20
mov qword [rsp + 0x88], rdi
mov rdi, qword [rdi]
cmp rdi, qword [rsp + 0x88]
je 0x14000eb2a
lea rdx, [rdi + 0x10]
lea rcx, [rsp + 0x100]
call fcn.1400092f0
mov qword [rsp + 0x228], 0
mov qword [rsp + 0x230], 7
mov word [rsp + 0x218], 0
mov edx, 9
lea rcx, [rsp + 0x218]
lea r9, [0x140055d00]
call fcn.14000c9d0
mov rax, qword [rsp + 0x228]
cmp qword [rsp + 0x118], rax
jne 0x14000ecb6
test rax, rax
je 0x14000e8de
cmp qword [rsp + 0x230], 8
lea rcx, [rsp + 0x218]
jb 0x14000e8ab
mov rcx, qword [rsp + 0x218]
cmp qword [rsp + 0x120], 8
lea rdx, [rsp + 0x108]
jb 0x14000e8c6
mov rdx, qword [rsp + 0x108]
xor ebp, ebp
movzx ebx, word [rdx + rbp*2]
cmp bx, word [rcx + rbp*2]
jne 0x14000ecb6
inc rbp
cmp rax, rbp
jne 0x14000e8c8
cmp dword [rsp + 0x100], 1
jne 0x14000ecb6
mov rcx, qword [rsp + 0x168]
test rcx, rcx
jne 0x14000e94e
cmp qword [rsp + 0x160], 0x10
lea r8, [rsp + 0x148]
jb 0x14000e914
mov r8, qword [rsp + 0x148]
mov rax, qword [r12]
mov rax, qword [rax + 0x10]
mov rcx, r12
mov rdx, rsi
lea r9, [rsp + 0x98]
call qword [case.0x14002f18e.0]
test eax, eax
js 0x14000ecc5
mov rcx, qword [rsp + 0x98]
sub rcx, rsi
add rcx, r15
mov qword [rsp + 0x168], rcx
cmp qword [rsp + 0x160], 0x10
lea rdx, [rsp + 0x148]
jb 0x14000e969
mov rdx, qword [rsp + 0x148]
movsxd rax, r14d
shl rax, 6
mov rbp, qword [rsp + 0x70]
sub rbp, r13
cmp qword [rsp + 0x140], 0x10
lea r9, [rsp + 0x128]
jb 0x14000e993
mov r9, qword [rsp + 0x128]
mov rbx, qword [rsp + 0x68]
add rbx, rax
add rbx, 0x20
mov rax, qword [r12]
mov rax, qword [rax + 8]
mov qword [rsp + 0x38], rbp
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rdx
mov qword [rsp + 0x40], 0
mov rcx, r12
mov rdx, qword [rsp + 0x80]
mov r8, r15
call qword [case.0x14002f18e.0]
test eax, eax
js 0x14000ecde
movsxd rax, dword [rsp + 0x104]
lea rcx, [sym.firefox.exe_g_originals]
mov qword [rcx + rax*8], rbx
inc r14d
mov dword [rsp + 0xb8], r14d
add r13, 0x40
mov qword [rsp + 0xa8], r13
mov bl, 1
mov rax, qword [rsp + 0x230]
cmp rax, 8
jae 0x14000ea99
mov rax, qword [rsp + 0x160]
cmp rax, 0x10
jae 0x14000eae4
mov qword [rsp + 0x158], 0
mov qword [rsp + 0x160], 0xf
mov byte [rsp + 0x148], 0
mov rax, qword [rsp + 0x140]
cmp rax, 0x10
jae 0x14000eb07
mov qword [rsp + 0x138], 0
mov qword [rsp + 0x140], 0xf
mov byte [rsp + 0x128], 0
mov rax, qword [rsp + 0x120]
cmp rax, 8
jae 0x14000eac0
test bl, bl
jne 0x14000e818
jmp 0x14000eb32
mov rcx, qword [rsp + 0x218]
lea rdx, [rax + rax]
add rdx, 2
cmp rdx, 0x1000
jae 0x14000ec68
call sub.mozglue.dll_void___cdecl_operator_delete_void____ptr64__unsigned_long_long_unsigned___int64__
jmp 0x14000ea1a
mov rcx, qword [rsp + 0x108]
lea rdx, [rax + rax]
add rdx, 2
cmp rdx, 0x1000
jae 0x14000ec8f
call sub.mozglue.dll_void___cdecl_operator_delete_void____ptr64__unsigned_long_long_unsigned___int64__
jmp 0x14000ea8c
mov rcx, qword [rsp + 0x148]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jae 0x14000edec
call sub.mozglue.dll_void___cdecl_operator_delete_void____ptr64__unsigned_long_long_unsigned___int64__
jmp 0x14000ea2c
mov rcx, qword [rsp + 0x128]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jae 0x14000ee0c
call sub.mozglue.dll_void___cdecl_operator_delete_void____ptr64__unsigned_long_long_unsigned___int64__
jmp 0x14000ea5e
mov dword [rsp + 0x54], 0
mov rax, qword [r12]
mov rax, qword [rax]
mov rcx, r12
mov edx, 1
call qword [case.0x14002f18e.0]
test rsi, rsi
je 0x14000eb55
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov edi, dword [rsp + 0x54]
test edi, edi
mov r13, qword [rsp + 0x60]
mov r15, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x78]
jne 0x14000ec25
lea rax, [rsp + 0x100]
mov qword [rsp + 0x20], rax
lea r8, [rsp + 0xa0]
mov r9d, 0x20
mov rcx, rsi
mov rdx, qword [rsp + 0x68]
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
je 0x14000ed5b
cmp qword [rsp + 0x100], 0x20
jne 0x14000ed5b
lea rax, [rsp + 0x218]
mov qword [rsp + 0x20], rax
mov rcx, rsi
mov rdx, qword [rsp + 0x68]
mov r8, qword [rsp + 0x70]
mov r9d, 0x20
call qword [sym.imp.KERNEL32.dll_VirtualProtectEx]
mov rcx, qword [r13]
lea rdx, str.g_originals
lea r8, [sym.firefox.exe_g_originals]
mov r9d, 0x150
call fcn.140008c10
test eax, eax
jne 0x14000ec23
mov rax, qword [rsp + 0x90]
mov qword [sym.firefox.exe_g_interceptions], rax
lea r8, [sym.firefox.exe_g_interceptions]
mov rcx, qword [r13]
lea rdx, str.g_interceptions
mov r9d, 8
call fcn.140008c10
mov edi, eax
mov rcx, r15
call sub.mozglue.dll_void___cdecl_operator_delete___void____ptr64_
mov rcx, qword [rsp + 0x238]
xor rcx, rsp
call fcn.14002fae0
mov eax, edi
movaps xmm6, xmmword [rsp + 0x240]
add rsp, 0x258
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rsi, rax
mov rdx, rax
xor edi, edi
jmp 0x14000e5e4
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x14000ee2c
add rax, rax
add rax, 0x29
mov rdx, rax
mov rcx, r8
jmp 0x14000eab6
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x14000ee2c
add rax, rax
add rax, 0x29
mov rdx, rax
mov rcx, r8
jmp 0x14000eadd
xor ebx, ebx
mov dword [rsp + 0x54], 2
jmp 0x14000ea0c
mov ecx, eax
call fcn.1400515c0
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov dword [rsp + 0x54], 0x29
jmp 0x14000ecf5
mov ecx, eax
call fcn.1400515c0
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov dword [rsp + 0x54], 0x28
xor ebx, ebx
jmp 0x14000ea0c
lea r14, [rsp + 0x100]
mov qword [r14 + 0x10], 0
mov qword [r14 + 0x18], 7
mov word [r14], 0
lea rdx, [0x140055d00]
mov rcx, r14
call fcn.14000c960
mov r8, qword [rbp + 0x28]
cmp qword [r14 + 0x10], r8
jne 0x14000f163
test r8, r8
je 0x14000ed49
cmp qword [rbp + 0x30], 8
jb 0x14000ed65
mov rcx, qword [rbp + 0x18]
jmp 0x14000ed69
lea rcx, [rsp + 0x100]
call fcn.14001eb50
jmp 0x14000ede2
mov edi, 0x2a
jmp 0x14000ec25
lea rcx, [rbp + 0x18]
cmp qword [rsp + 0x118], 8
jb 0x14000ed7c
mov r14, qword [rsp + 0x100]
dec r8
xor edx, edx
movzx r15d, word [r14 + rdx*2]
movzx esi, word [rcx + rdx*2]
cmp r15w, si
jne 0x14000ed9c
lea rax, [rdx + 1]
cmp r8, rdx
mov rdx, rax
jne 0x14000ed81
lea rcx, [rsp + 0x100]
call fcn.14001eb50
cmp r15w, si
je 0x14000ede2
lea rsi, [rbp + 0x18]
lea rcx, [rsp + 0xa0]
mov rdx, rsi
call fcn.140043630
test rax, rax
je 0x14000f18c
mov rax, qword [rbp + 0x48]
mov rcx, qword [rbp + 0x68]
add rax, rcx
add rax, 0x21
and rax, 0xfffffffffffffff8
add rdi, rax
mov r13, qword [rsp + 0x60]
jmp 0x14000e5c2
mov rbp, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, rbp
cmp rcx, 0x20
jae 0x14000ee2c
add rax, 0x28
mov rdx, rax
mov rcx, rbp
jmp 0x14000eafd
mov rbp, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, rbp
cmp rcx, 0x20
jae 0x14000ee2c
add rax, 0x28
mov rdx, rax
mov rcx, rbp
jmp 0x14000eb20
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
xor edi, edi
jmp 0x14000ec2d
mov rax, r13
add r13, 8
add r15, 0xc
xor r12d, r12d
cmp byte [rax + 0x18], 0
je 0x14000f15c
mov rax, qword [rsp + 0x60]
mov rax, qword [rax]
mov rax, qword [rax + 0x48]
mov rcx, qword [rsp + 0x58]
mov qword [rcx + 4], rax
lea rax, [rdi - 0xc]
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0x218], r15
mov rax, qword [r13]
mov rbp, qword [rax]
cmp rbp, rax
je 0x14000f0ba
xor r12d, r12d
xorps xmm6, xmm6
lea rcx, [rbp + 0x10]
call fcn.140044a20
test al, al
jne 0x14000eeac
mov rbp, qword [rbp]
cmp rbp, qword [r13]
jne 0x14000ee90
jmp 0x14000f0ba
lea rbx, [rbp + 0x18]
movups xmmword [rsp + 0x110], xmm6
lea rcx, [rsp + 0x100]
mov rdx, rbx
call fcn.14002c280
mov rax, qword [rbp + 0x28]
add rax, rax
add rax, 0x1f
and rax, 0xfffffffffffffff8
mov rcx, qword [rsp + 0xa0]
sub rcx, rax
jb 0x14000f175
mov qword [rsp + 0xa0], rcx
lea r14, [r15 + rax]
mov qword [rsp + 0x218], r14
cmp dword [rbp + 0x10], 5
sete byte [r15 + 0x14]
mov qword [r15], rax
mov qword [r15 + 8], rax
mov dword [r15 + 0x10], 0
lea rcx, [r15 + 0x16]
cmp qword [rbp + 0x30], 8
jb 0x14000ef23
mov rbx, qword [rbp + 0x18]
mov r8, qword [rbp + 0x28]
add r8, r8
mov rdx, rbx
call sub.ntdll.dll_memcpy
mov rax, qword [rbp + 0x28]
mov word [r15 + rax*2 + 0x16], 0
mov r8, qword [r13]
cmp rbp, r8
je 0x14000f007
mov r14, rbp
mov rcx, qword [rsp + 0x110]
cmp qword [r14 + 0x28], rcx
jne 0x14000eff3
test rcx, rcx
je 0x14000efa5
cmp qword [rsp + 0x118], 8
lea rdx, [rsp + 0x100]
jb 0x14000ef80
mov rdx, qword [rsp + 0x100]
cmp qword [r14 + 0x30], 8
jb 0x14000ef8d
mov rbx, qword [r14 + 0x18]
jmp 0x14000ef91
lea rbx, [r14 + 0x18]
xor eax, eax
movzx esi, word [rbx + rax*2]
cmp si, word [rdx + rax*2]
jne 0x14000eff3
inc rax
cmp rcx, rax
jne 0x14000ef93
lea rcx, [r14 + 0x10]
lea rdx, [rsp + 0x218]
lea r8, [rsp + 0xa0]
mov r9, r15
call fcn.140044af0
test al, al
je 0x14000f175
cmp rbp, r14
jne 0x14000efd2
mov rbp, qword [rbp]
mov rcx, r13
lea rdx, [rsp + 0x98]
mov r8, r14
call fcn.140044c00
mov r14, qword [rsp + 0x98]
mov r8, qword [r13]
jmp 0x14000eff6
mov r14, qword [r14]
cmp r14, r8
jne 0x14000ef4e
mov r14, qword [rsp + 0x218]
inc r12d
lea rcx, [rsp + 0x100]
call fcn.14001eb50
mov r15, r14
jmp 0x14000eea1
mov edi, 0x27
jmp 0x14000ec25
lea rdx, [0x140055ce8]
lea r8, str.size___kAllocGranularity
lea rcx, [rsp + 0xa0]
call fcn.14003ae90
test rax, rax
je 0x14000e6a7
lea rdx, str._builds_worker_checkouts_gecko_security_sandbox_chromium_sandbox_win_src_interception.cc
lea rbp, [rsp + 0x100]
mov rcx, rbp
mov r8d, 0x2b
mov r9, rax
call fcn.140039e30
mov rcx, rbp
call fcn.140039ea0
jmp 0x14000e6a7
lea rdx, str._builds_worker_checkouts_gecko_security_sandbox_chromium_sandbox_win_src_interception.cc
lea r9, str.thunk_base
lea rsi, [rsp + 0x100]
mov rcx, rsi
mov r8d, 0x188
call fcn.140039de0
mov rcx, rsi
call fcn.140039ea0
jmp 0x14000e749
mov edi, 7
mov r15, qword [rsp + 0x58]
jmp 0x14000ec25
mov rdx, qword [rsp + 0x58]
mov dword [rdx], r12d
mov rax, qword [rsp + 0x60]
mov rax, qword [rax]
mov rcx, qword [rax]
lea r9, [rsp + 0x90]
mov r8, rdi
call fcn.14000f650
test al, al
je 0x14000f1be
test rdi, rdi
mov r13, qword [rsp + 0x60]
mov r15, qword [rsp + 0x58]
je 0x14000e64e
lea rax, str.TargetNtMapViewOfSection64
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x28], 0
lea rsi, [0x140055d00]
lea r8, [0x1400570f8]
mov rcx, r13
mov rdx, rsi
mov r9d, 1
call fcn.140008fd0
lea rax, str.TargetNtUnmapViewOfSection64
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x28], 1
lea r8, [0x1400570e3]
mov rcx, r13
mov rdx, rsi
mov r9d, 1
call fcn.140008fd0
jmp 0x14000e659
xor eax, eax
jmp 0x14000ee5d
lea rcx, [rsp + 0x100]
call fcn.14001eb50
jmp 0x14000edaf
lea rcx, [rsp + 0x100]
call fcn.14001eb50
mov edi, 0x26
jmp 0x14000f0b0
mov rax, qword [rbp + 0x28]
add rax, rax
add rax, 0x1f
and rax, 0xfffffffffffffff8
add rdi, rax
lea rcx, [rsp + 0xa0]
lea rdx, [rsp + 0x100]
xor r8d, r8d
mov r9, rsi
call fcn.140042bb0
jmp 0x14000edcc
mov edi, 0x27
jmp 0x14000f0b0