Function at 0x14000b970
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, 0x248
movaps xmmword [rsp + 0x230], xmm6
mov rax, qword [0x140064030]
xor rax, rsp
mov qword [rsp + 0x228], rax
cmp qword [rcx + 0x10], 0
je 0x14000c062
mov r15, rcx
mov qword [rsp + 0x98], 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 + 0x90], rax
mov rdi, qword [r15 + 8]
mov r14, qword [rdi]
cmp r14, rdi
mov qword [rsp + 0x50], r15
je 0x14000bfa5
xor ebx, ebx
lea rcx, [r14 + 0x10]
call fcn.14000c810
test al, al
jne 0x14000bfbc
mov r14, qword [r14]
cmp r14, rdi
jne 0x14000b9f1
mov rax, qword [rsp + 0x90]
mov rax, qword [rax + 8]
test rbx, rbx
je 0x14000bfa5
add rbx, 0xc
lea rsi, [rsp + 0x90]
mov rcx, rsi
mov rdx, rsi
mov r8, rax
call fcn.14000ca60
mov rcx, qword [rsi]
mov edx, 0x40
call sub.mozglue.dll_void___cdecl_operator_delete_void____ptr64__unsigned_long_long_unsigned___int64__
mov rcx, rbx
call sub.mozglue.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__
mov r14, rax
test rbx, rbx
jne 0x14000c069
mov rax, qword [r15]
mov rcx, qword [rax]
lea r9, [rsp + 0x80]
mov rdx, r14
mov r8, rbx
call fcn.14000cab0
test al, al
je 0x14000c380
cmp qword [r15 + 0x10], 0
je 0x14000bf42
mov rax, qword [r15]
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 rsi, rax
mov rdi, qword [r15 + 0x10]
shl rdi, 6
lea rax, [rdi + 0x60]
mov qword [rsp + 0x90], rax
mov qword [rsp + 0x60], rax
cmp rax, 0x10001
jae 0x14000c38a
lea rbx, [rsp + 0xf0]
mov rcx, rbx
mov edx, 4
call sub.ADVAPI32.dll_SystemFunction036
movzx ecx, word [rsp + 0xf0]
mov dword [rsp + 0xf0], ecx
mov rax, qword [rsp + 0x90]
mov edx, 0x10000
sub rdx, rax
cmp rdx, rcx
jb 0x14000badb
mov ebx, ecx
mov edx, 0x800
mov r9d, 0x1000
mov r8d, 0x800
mov rcx, r9
shr r8, 1
mov r9, rdx
cmp rdx, rax
mov rdx, r8
jae 0x14000bb1f
mov qword [rsp + 0x68], r14
neg ecx
and ebx, ecx
mov eax, ebx
and eax, 0xf000
add rsi, rax
add rdi, 0x105f
and rdi, 0xfffffffffffff000
mov dword [rsp + 0x20], 0x40
mov rcx, r12
mov rdx, rsi
mov r8, rdi
mov r9d, 0x1000
call qword [sym.imp.KERNEL32.dll_VirtualAllocEx]
mov qword [rsp + 0x58], rax
test rax, rax
je 0x14000c3db
mov qword [rsp + 0x70], r12
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x90], rax
mov dword [rsp + 0xa8], 0
mov qword [rsp + 0x98], 0x20
lea rcx, [sym.firefox.exe_g_originals]
xor r14d, r14d
mov r8d, 0x150
xor edx, edx
call sub.ntdll.dll_memset
lea rcx, [0x1400571a0]
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov qword [rsp + 0x78], rax
test rax, rax
je 0x14000c40c
and ebx, 0xfff
add qword [rsp + 0x58], rbx
mov rax, qword [r15]
mov rsi, qword [rax + 0x48]
mov rcx, qword [rax + 0x50]
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov r13, rax
mov ecx, 0x30
call sub.mozglue.dll_void____ptr64___cdecl_operator_new_unsigned_long_long_unsigned___int64__
mov rbx, rax
mov al, byte [r15 + 0x19]
mov rcx, qword [r15]
mov rcx, qword [rcx]
lea rdx, [0x1400571c0]
mov qword [rbx], rdx
mov qword [rbx + 0x18], 0
mov qword [rbx + 0x20], rcx
mov byte [rbx + 0x28], al
mov dword [rbx + 0x2c], 0
mov r12, qword [r15 + 8]
mov ebp, 0x20
mov rdi, r12
mov rdi, qword [rdi]
cmp rdi, r12
je 0x14000be77
lea rdx, [rdi + 0x10]
lea rcx, [rsp + 0xf0]
call fcn.140007150
xor r15d, r15d
mov qword [rsp + 0x208], r15
mov qword [rsp + 0x218], r15
mov qword [rsp + 0x220], 7
mov word [rsp + 0x208], 0
mov edx, 9
lea rcx, [rsp + 0x208]
lea r9, [0x1400571a0]
call fcn.140008b30
mov rax, qword [rsp + 0x218]
cmp qword [rsp + 0x108], rax
jne 0x14000bfaf
test rax, rax
je 0x14000bd04
cmp qword [rsp + 0x220], 8
lea rcx, [rsp + 0x208]
jb 0x14000bcce
mov rcx, qword [rsp + 0x208]
cmp qword [rsp + 0x110], 8
lea rdx, [rsp + 0xf8]
jb 0x14000bce9
mov rdx, qword [rsp + 0xf8]
xor r8d, r8d
movzx r9d, word [rdx + r8*2]
cmp r9w, word [rcx + r8*2]
jne 0x14000bfac
inc r8
cmp rax, r8
jne 0x14000bcec
cmp dword [rsp + 0xf0], 1
jne 0x14000bfac
mov rcx, qword [rsp + 0x158]
test rcx, rcx
jne 0x14000bd73
cmp qword [rsp + 0x150], 0x10
lea r8, [rsp + 0x138]
jb 0x14000bd3a
mov r8, qword [rsp + 0x138]
mov rax, qword [rbx]
mov rax, qword [rax + 0x10]
mov rcx, rbx
mov rdx, r13
lea r9, [rsp + 0x88]
call qword [0x14006a010]
test eax, eax
js 0x14000c020
mov rcx, qword [rsp + 0x88]
sub rcx, r13
add rcx, rsi
mov qword [rsp + 0x158], rcx
cmp qword [rsp + 0x150], 0x10
lea rdx, [rsp + 0x138]
jb 0x14000bd8e
mov rdx, qword [rsp + 0x138]
movsxd rax, r14d
shl rax, 6
mov r8, qword [rsp + 0x60]
sub r8, rbp
cmp qword [rsp + 0x130], 0x10
lea r9, [rsp + 0x118]
jb 0x14000bdb8
mov r9, qword [rsp + 0x118]
mov r10, qword [rsp + 0x58]
lea r15, [r10 + rax]
add r15, 0x20
mov rax, qword [rbx]
mov rax, qword [rax + 8]
mov qword [rsp + 0x38], r8
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rdx
mov qword [rsp + 0x40], 0
mov rcx, rbx
mov rdx, qword [rsp + 0x78]
mov r8, rsi
call qword [0x14006a010]
test eax, eax
js 0x14000c039
movsxd rax, dword [rsp + 0xf4]
lea rcx, [sym.firefox.exe_g_originals]
mov qword [rcx + rax*8], r15
inc r14d
mov dword [rsp + 0xa8], r14d
add rbp, 0x40
mov qword [rsp + 0x98], rbp
mov r15b, 1
mov rax, qword [rsp + 0x220]
cmp rax, 8
jb 0x14000be5f
mov rcx, qword [rsp + 0x208]
lea rdx, [rax + rax]
add rdx, 2
cmp rdx, 0x1000
jae 0x14000bff9
call sub.mozglue.dll_void___cdecl_operator_delete_void____ptr64__unsigned_long_long_unsigned___int64__
lea rcx, [rsp + 0xf0]
call fcn.140006a90
test r15b, r15b
jne 0x14000bc39
jmp 0x14000be7f
mov dword [rsp + 0x4c], 0
mov rax, qword [rbx]
mov rax, qword [rax]
mov rcx, rbx
mov edx, 1
call qword [0x14006a010]
test r13, r13
je 0x14000bea1
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov esi, dword [rsp + 0x4c]
test esi, esi
mov r15, qword [rsp + 0x50]
mov r14, qword [rsp + 0x68]
jne 0x14000bf6f
lea rax, [rsp + 0xf0]
mov qword [rsp + 0x20], rax
lea r8, [rsp + 0x90]
mov r9d, 0x20
mov rsi, qword [rsp + 0x70]
mov rcx, rsi
mov rdx, qword [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
je 0x14000c058
cmp qword [rsp + 0xf0], 0x20
jne 0x14000c058
lea rax, [rsp + 0x208]
mov qword [rsp + 0x20], rax
mov rcx, rsi
mov rdx, qword [rsp + 0x58]
mov r8, qword [rsp + 0x60]
mov r9d, 0x20
call qword [sym.imp.KERNEL32.dll_VirtualProtectEx]
mov rcx, qword [r15]
lea rdx, str.g_originals
lea r8, [sym.firefox.exe_g_originals]
mov r9d, 0x150
call fcn.14000ce80
test eax, eax
jne 0x14000bf6d
mov rax, qword [rsp + 0x80]
mov qword [sym.firefox.exe_g_interceptions], rax
lea r8, [sym.firefox.exe_g_interceptions]
mov rcx, qword [r15]
lea rdx, str.g_interceptions
mov r9d, 8
call fcn.14000ce80
mov esi, eax
mov rcx, r14
call sub.mozglue.dll_void___cdecl_operator_delete___void____ptr64_
mov rcx, qword [rsp + 0x228]
xor rcx, rsp
call fcn.1400300f0
mov eax, esi
movaps xmm6, xmmword [rsp + 0x230]
add rsp, 0x248
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
xor ebx, ebx
jmp 0x14000ba23
xor r15d, r15d
mov dword [rsp + 0x4c], 2
jmp 0x14000be2f
lea rsi, [r14 + 0x18]
lea rcx, [rsp + 0x90]
mov rdx, rsi
call fcn.140044950
test rax, rax
je 0x14000c4bf
mov rax, qword [r14 + 0x48]
mov rcx, qword [r14 + 0x68]
add rax, rcx
add rax, 0x21
and rax, 0xfffffffffffffff8
add rbx, rax
mov r15, qword [rsp + 0x50]
jmp 0x14000ba02
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x14000c37a
add rax, rax
add rax, 0x29
mov rdx, rax
mov rcx, r8
jmp 0x14000be5a
mov ecx, eax
call fcn.140053120
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov dword [rsp + 0x4c], 0x29
jmp 0x14000c050
mov ecx, eax
call fcn.140053120
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov dword [rsp + 0x4c], 0x28
xor r15d, r15d
jmp 0x14000be2f
mov esi, 0x2a
jmp 0x14000bf6f
xor esi, esi
jmp 0x14000bf77
mov r13, r14
add r14, 0xc
xor eax, eax
mov qword [rsp + 0x58], rax
cmp byte [r15 + 0x18], 0
je 0x14000c4ee
mov rax, qword [rsp + 0x50]
mov rax, qword [rax]
mov rax, qword [rax + 0x48]
mov qword [r13 + 4], rax
lea rax, [rbx - 0xc]
lea rcx, [rsp + 0x90]
mov qword [rcx], rax
lea rax, [rsp + 0x208]
mov qword [rax], r14
mov rax, qword [rsp + 0x50]
mov rax, qword [rax + 8]
mov rbp, qword [rax]
xorps xmm6, xmm6
mov rax, qword [rsp + 0x50]
cmp rbp, qword [rax + 8]
je 0x14000c41b
lea rcx, [rbp + 0x10]
call fcn.14000c810
test al, al
jne 0x14000c0dd
mov rbp, qword [rbp]
jmp 0x14000c0bb
lea rsi, [rbp + 0x18]
movups xmmword [rsp + 0x100], xmm6
cmp qword [rbp + 0x30], 8
mov rdi, rsi
jb 0x14000c0f7
mov rdi, qword [rbp + 0x18]
mov r15, qword [rbp + 0x28]
cmp r15, 7
ja 0x14000c117
movups xmm0, xmmword [rdi]
movaps xmmword [rsp + 0xf0], xmm0
mov r12d, 7
mov rax, r15
jmp 0x14000c18e
mov r12, r15
or r12, 7
movabs rax, 0x7ffffffffffffffe
cmp r12, rax
cmovae r12, rax
lea rcx, [r12 + r12]
cmp r12, 0x7ff
jb 0x14000c166
movabs rax, 0x7fffffffffffffec
cmp r12, rax
jae 0x14000c502
add rcx, 0x29
call sub.mozglue.dll_void____ptr64___cdecl_operator_new_unsigned_long_long_unsigned___int64__
lea rcx, [rax + 0x27]
and rcx, 0xffffffffffffffe0
mov qword [rcx - 8], rax
jmp 0x14000c172
add rcx, 2
call sub.mozglue.dll_void____ptr64___cdecl_operator_new_unsigned_long_long_unsigned___int64__
mov rcx, rax
mov qword [rsp + 0xf0], rcx
lea r8, [r15 + r15]
add r8, 2
mov rdx, rdi
call sub.ntdll.dll_memcpy
mov rax, qword [rbp + 0x28]
mov qword [rsp + 0x100], r15
mov qword [rsp + 0x108], r12
add rax, rax
add rax, 0x1f
and rax, 0xfffffffffffffff8
mov rcx, qword [rsp + 0x90]
sub rcx, rax
jae 0x14000c214
xor esi, esi
mov rax, qword [rsp + 0x108]
cmp rax, 8
jb 0x14000c206
mov rcx, qword [rsp + 0xf0]
lea rdx, [rax + rax]
add rdx, 2
cmp rdx, 0x1000
jb 0x14000c201
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x14000c37a
add rax, rax
add rax, 0x29
mov rdx, rax
mov rcx, r8
call sub.mozglue.dll_void___cdecl_operator_delete_void____ptr64__unsigned_long_long_unsigned___int64__
test sil, sil
jne 0x14000c0bb
jmp 0x14000c4f5
mov r15, qword [rsp + 0x208]
mov qword [rsp + 0x90], rcx
lea rdi, [r15 + rax]
mov qword [rsp + 0x208], rdi
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 0x14000c257
mov rsi, qword [rbp + 0x18]
mov r8, qword [rbp + 0x28]
add r8, r8
mov rdx, rsi
call sub.ntdll.dll_memcpy
mov rax, qword [rbp + 0x28]
mov word [r15 + rax*2 + 0x16], 0
mov rax, qword [rsp + 0x50]
mov rax, qword [rax + 8]
cmp rbp, rax
je 0x14000c363
mov rsi, rbp
mov rcx, qword [rsp + 0x100]
cmp qword [rsi + 0x28], rcx
jne 0x14000c34f
test rcx, rcx
je 0x14000c2e1
cmp qword [rsp + 0x108], 8
lea rdx, [rsp + 0xf0]
jb 0x14000c2b9
mov rdx, qword [rsp + 0xf0]
cmp qword [rsi + 0x30], 8
jb 0x14000c2c6
mov r8, qword [rsi + 0x18]
jmp 0x14000c2ca
lea r8, [rsi + 0x18]
xor r9d, r9d
movzx r10d, word [r8 + r9*2]
cmp r10w, word [rdx + r9*2]
jne 0x14000c34f
inc r9
cmp rcx, r9
jne 0x14000c2cd
lea rdi, [rsi + 0x10]
mov rcx, rdi
lea rdx, [rsp + 0x208]
lea r8, [rsp + 0x90]
mov r9, r14
call fcn.1400456a0
test al, al
je 0x14000c1b6
cmp rbp, rsi
jne 0x14000c311
mov rbp, qword [rbp]
mov r15, qword [rsi]
mov rax, qword [rsi + 8]
mov qword [rax], r15
mov rax, qword [rsi]
mov rcx, qword [rsi + 8]
mov qword [rax + 8], rcx
mov r12, qword [rsp + 0x50]
dec qword [r12 + 0x10]
mov rcx, rdi
call fcn.140006a90
mov edx, 0x80
mov rcx, rsi
call sub.mozglue.dll_void___cdecl_operator_delete_void____ptr64__unsigned_long_long_unsigned___int64__
mov rax, qword [r12 + 8]
mov rsi, r15
jmp 0x14000c352
mov rsi, qword [rsi]
cmp rsi, rax
jne 0x14000c287
mov rdi, qword [rsp + 0x208]
mov rax, qword [rsp + 0x58]
inc eax
mov qword [rsp + 0x58], rax
mov sil, 1
mov r14, rdi
jmp 0x14000c1b8
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
mov esi, 0x27
jmp 0x14000bf6f
lea rdx, [0x140057198]
lea r8, str.size___kAllocGranularity
lea rcx, [rsp + 0x90]
call fcn.14003c2c0
test rax, rax
je 0x14000bad3
lea rdx, str._builds_worker_checkouts_gecko_security_sandbox_chromium_sandbox_win_src_interception.cc
lea rbx, [rsp + 0xf0]
mov rcx, rbx
mov r8d, 0x2b
mov r9, rax
call fcn.14003afd0
mov rcx, rbx
call fcn.14003b070
jmp 0x14000bad3
lea rdx, str._builds_worker_checkouts_gecko_security_sandbox_chromium_sandbox_win_src_interception.cc
lea r9, str.thunk_base
lea rsi, [rsp + 0xf0]
mov rcx, rsi
mov r8d, 0x188
call fcn.14003af80
mov rcx, rsi
call fcn.14003b070
jmp 0x14000bb7c
mov esi, 7
mov r14, qword [rsp + 0x68]
jmp 0x14000bf6f
mov rdx, r13
mov rax, qword [rsp + 0x58]
mov dword [r13], eax
mov rax, qword [rsp + 0x50]
mov rax, qword [rax]
mov rcx, qword [rax]
lea r9, [rsp + 0x80]
mov r8, rbx
call fcn.14000cab0
test al, al
je 0x14000c507
test rbx, rbx
mov r15, qword [rsp + 0x50]
mov r14, r13
je 0x14000ba7b
lea rax, str.TargetNtMapViewOfSection64
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x28], 0
lea rsi, [0x1400571a0]
lea r8, [0x1400585b4]
mov rcx, r15
mov rdx, rsi
mov r9d, 1
call fcn.140006d80
lea rax, str.TargetNtUnmapViewOfSection64
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x28], 1
lea r8, [0x14005859f]
mov rcx, r15
mov rdx, rsi
mov r9d, 1
call fcn.140006d80
jmp 0x14000ba86
mov rax, qword [r14 + 0x28]
add rax, rax
add rax, 0x1f
and rax, 0xfffffffffffffff8
add rbx, rax
lea rcx, [rsp + 0x90]
lea rdx, [rsp + 0xf0]
mov r8, rsi
call fcn.140043c20
jmp 0x14000bfd9
xor eax, eax
jmp 0x14000c08e
mov esi, 0x26
mov r14, r13
jmp 0x14000bf6f
call fcn.1400344a0
mov esi, 0x27
jmp 0x14000c4fa