Function at 0x140012600
Capabilities:
Get system information on windows
Parse pe header
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x1f8
mov qword [rsp + 0x58], rdx
mov rax, qword [0x14005e018]
xor rax, rsp
mov qword [rsp + 0x1f0], rax
mov rdx, qword [rcx + 0x38]
test rdx, rdx
je 0x14001376a
mov rdi, r9
mov rsi, r8
mov r12, rcx
and rdx, 0xfffffffffffffffc
mov rcx, qword [rcx]
lea rax, [rsp + 0x78]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 0x30
lea r9, [rsp + 0xd0]
xor r8d, r8d
call sub.ntdll.dll_NtQueryVirtualMemory
test eax, eax
js 0x14001375c
cmp qword [rsp + 0x78], 0
je 0x14001376a
cmp dword [rsp + 0xe0], 0
je 0x14001376a
cmp dword [rsp + 0xf0], 0x1000
jne 0x14001376a
cmp dword [rsp + 0xf4], 1
je 0x14001376a
mov qword [rsp + 0x68], rsi
mov r14, qword [r12 + 0x38]
and r14, 0xfffffffffffffffc
mov ecx, 0x58
call qword [sym.imp.mozglue.dll_moz_xmalloc]
mov r15, rax
movabs rbx, 0x100000001
mov qword [rax + 8], rbx
lea rax, [0x140050370]
mov qword [r15], rax
lea rcx, [r15 + 0x10]
mov qword [r15 + 0x10], r12
mov qword [r15 + 0x20], 0
mov qword [r15 + 0x28], 0x20
lea rax, [r15 + 0x30]
mov qword [r15 + 0x18], rax
mov qword [r15 + 0x50], r14
mov edx, 0x40
call fcn.140016f80
cmp qword [r15 + 0x50], 0
mov qword [rsp + 0x70], rdi
je 0x140012d7b
cmp qword [r15 + 0x20], 0
je 0x140012d7b
mov rax, qword [r15 + 0x18]
test rax, rax
je 0x140012d7b
movzx ecx, word [rax]
cmp ecx, 0x5a4d
jne 0x140012d7b
movsxd rsi, dword [rax + 0x3c]
add rsi, r14
mov ecx, 0x58
call qword [sym.imp.mozglue.dll_moz_xmalloc]
mov r13, rax
mov qword [rax + 8], rbx
lea rax, [0x140050370]
mov qword [r13], rax
lea rcx, [r13 + 0x10]
mov qword [r13 + 0x10], r12
mov qword [r13 + 0x20], 0
mov qword [r13 + 0x28], 0x20
lea rax, [r13 + 0x30]
mov qword [r13 + 0x18], rax
mov qword [r13 + 0x50], rsi
mov edx, 0x108
call fcn.140016f80
cmp qword [r13 + 0x50], 0
je 0x140012d5a
cmp qword [r13 + 0x20], 0
je 0x140012d5a
mov rbp, qword [r13 + 0x18]
test rbp, rbp
je 0x140012d5a
cmp dword [rbp], 0x4550
jne 0x140012d5a
movzx eax, word [rbp + 0x18]
cmp eax, 0x20b
jne 0x140012d5a
cmp dword [rbp + 0x50], 0x147
jbe 0x140012d5a
cmp dword [rbp + 0x84], 0
je 0x140012d5a
mov esi, dword [rbp + 0x88]
test rsi, rsi
je 0x140012d5a
cmp dword [rbp + 0x8c], 0
je 0x140012d5a
add rsi, r14
mov ecx, 0x58
call qword [sym.imp.mozglue.dll_moz_xmalloc]
mov rbx, rax
movabs rax, 0x100000001
mov qword [rbx + 8], rax
lea rax, [0x140050370]
mov qword [rbx], rax
lea rcx, [rbx + 0x10]
mov qword [rbx + 0x10], r12
mov qword [rbx + 0x20], 0
mov qword [rbx + 0x28], 0x20
lea rax, [rbx + 0x30]
mov qword [rbx + 0x18], rax
mov qword [rbx + 0x50], rsi
mov edx, 0x28
call fcn.140016f80
cmp qword [rbx + 0x50], 0
je 0x140012d9c
cmp qword [rbx + 0x20], 0
je 0x140012d9c
mov rsi, qword [rbx + 0x18]
test rsi, rsi
je 0x140012d9c
mov edi, dword [rsi + 0x14]
test rdi, rdi
je 0x140012d9c
mov eax, dword [rbp + 0x88]
mov ecx, dword [rbp + 0x8c]
add ecx, eax
mov qword [rsp + 0xd0], r12
mov qword [rsp + 0xd8], r14
mov edx, dword [rsi + 0x10]
mov dword [rsp + 0xe0], edx
mov dword [rsp + 0xe4], eax
mov dword [rsp + 0xe8], ecx
mov ebp, dword [rsi + 0x1c]
add rbp, r14
mov ecx, 0x58
call qword [sym.imp.mozglue.dll_moz_xmalloc]
movabs rcx, 0x100000001
mov qword [rax + 8], rcx
lea rcx, [0x140050370]
mov qword [rax], rcx
lea rcx, [rax + 0x10]
mov qword [rax + 0x10], r12
mov qword [rax + 0x20], 0
mov qword [rax + 0x28], 0x20
lea rdx, [rax + 0x30]
mov qword [rax + 0x18], rdx
mov qword [rax + 0x50], rbp
mov qword [rsp + 0xf0], rcx
mov qword [rsp + 0xf8], rax
mov qword [rsp + 0x100], rdi
lea edx, [rdi*4]
call fcn.140013c80
shr eax, 2
cmp edi, eax
ja 0x140012db1
mov edi, dword [rsi + 0x18]
mov ebp, dword [rsi + 0x20]
add rbp, r14
mov ecx, 0x58
call qword [sym.imp.mozglue.dll_moz_xmalloc]
movabs rcx, 0x100000001
mov qword [rax + 8], rcx
lea rcx, [0x140050370]
mov qword [rax], rcx
lea rcx, [rax + 0x10]
mov qword [rax + 0x10], r12
mov qword [rax + 0x20], 0
mov qword [rax + 0x28], 0x20
lea rdx, [rax + 0x30]
mov qword [rax + 0x18], rdx
mov qword [rax + 0x50], rbp
mov qword [rsp + 0x108], rcx
mov qword [rsp + 0x110], rax
mov qword [rsp + 0x118], rdi
lea edx, [rdi*4]
call fcn.140013c80
shr eax, 2
cmp edi, eax
ja 0x140012dc0
mov edi, dword [rsi + 0x18]
mov eax, dword [rsi + 0x24]
add r14, rax
mov ecx, 0x58
call qword [sym.imp.mozglue.dll_moz_xmalloc]
movabs rcx, 0x100000001
mov qword [rax + 8], rcx
lea rcx, [0x140050370]
mov qword [rax], rcx
lea rcx, [rax + 0x10]
mov qword [rax + 0x10], r12
mov qword [rax + 0x20], 0
mov qword [rax + 0x28], 0x20
lea rdx, [rax + 0x30]
mov qword [rax + 0x18], rdx
mov qword [rax + 0x50], r14
mov qword [rsp + 0x120], rcx
mov qword [rsp + 0x128], rax
mov qword [rsp + 0x130], rdi
lea edx, [rdi + rdi]
call fcn.140013c80
shr eax, 1
cmp edi, eax
ja 0x140012dcf
lock dec dword [rbx + 8]
lea r14, [0x140050370]
mov rsi, qword [rsp + 0x58]
jne 0x140012a73
mov rax, qword [rbx]
mov rax, qword [rax]
mov rcx, rbx
call qword [case.0x14002bdde.0]
lock dec dword [rbx + 0xc]
jne 0x140012a73
mov rax, qword [rbx]
mov rax, qword [rax + 8]
mov rcx, rbx
call qword [case.0x14002bdde.0]
lock dec dword [r13 + 8]
jne 0x140012aa2
mov rax, qword [r13]
mov rax, qword [rax]
mov rcx, r13
call qword [case.0x14002bdde.0]
lock dec dword [r13 + 0xc]
jne 0x140012aa2
mov rax, qword [r13]
mov rax, qword [rax + 8]
mov rcx, r13
call qword [case.0x14002bdde.0]
lock dec dword [r15 + 8]
jne 0x140012acf
mov rax, qword [r15]
mov rax, qword [rax]
mov rcx, r15
call qword [case.0x14002bdde.0]
lock dec dword [r15 + 0xc]
jne 0x140012acf
mov rax, qword [r15]
mov rax, qword [rax + 8]
mov rcx, r15
call qword [case.0x14002bdde.0]
cmp rsi, 0xffff
mov qword [rsp + 0x48], r12
jbe 0x140012dde
xor r13d, r13d
cmp qword [rsp + 0xd8], 0
je 0x140012e38
cmp dword [rsp + 0xe4], 0
je 0x140012e38
cmp dword [rsp + 0xe8], 0
je 0x140012e38
mov rax, qword [rsp + 0xf0]
xor r13d, r13d
cmp qword [rax + 0x40], 0
je 0x140012e38
cmp qword [rsp + 0x100], 0
je 0x140012e38
mov rax, qword [rsp + 0x108]
xor r13d, r13d
cmp qword [rax + 0x40], 0
je 0x140012e38
mov rdx, qword [rsp + 0x118]
test rdx, rdx
je 0x140012e38
xor r13d, r13d
test rsi, rsi
je 0x140012e38
mov rcx, qword [rsp + 0x120]
cmp qword [rcx + 0x40], 0
je 0x140012e38
cmp qword [rsp + 0x130], 0
je 0x140012e38
cmp byte [rsi], 0
je 0x140012d4f
mov ecx, 1
lea r15, [rcx + 1]
cmp byte [rsi + rcx], 0
mov rcx, r15
jne 0x140012b97
mov rcx, qword [rax + 0x10]
mov qword [rsp + 0x60], rcx
test rcx, rcx
je 0x140012bbb
mov rax, qword [rax + 8]
mov qword [rsp + 0x60], rax
xor r13d, r13d
mov qword [rsp + 0x50], rdx
mov rbx, rdx
sub rbx, r13
shr rbx, 1
add rbx, r13
mov rax, qword [rsp + 0x60]
mov esi, dword [rax + rbx*4]
add rsi, qword [rsp + 0xd8]
mov rdi, qword [rsp + 0xd0]
mov ecx, 0x58
call qword [sym.imp.mozglue.dll_moz_xmalloc]
mov rbp, rax
movabs rax, 0x100000001
mov qword [rbp + 8], rax
mov qword [rbp], r14
lea rcx, [rbp + 0x10]
mov qword [rbp + 0x10], rdi
mov qword [rbp + 0x20], 0
mov qword [rbp + 0x28], 0x20
lea rax, [rbp + 0x30]
mov qword [rbp + 0x18], rax
mov qword [rbp + 0x50], rsi
mov edx, r15d
call fcn.140013c80
mov rax, qword [rbp + 0x20]
test rax, rax
je 0x140012c40
mov rax, qword [rbp + 0x18]
xor ecx, ecx
mov rdx, qword [rsp + 0x58]
mov r14b, byte [rdx + rcx]
mov r12b, byte [rax + rcx]
test r14b, r14b
je 0x140012c5c
inc rcx
cmp r14b, r12b
je 0x140012c47
lock dec dword [rbp + 8]
jne 0x140012c89
mov rax, qword [rbp]
mov rax, qword [rax]
mov rcx, rbp
call qword [case.0x14002bdde.0]
lock dec dword [rbp + 0xc]
jne 0x140012c89
mov rax, qword [rbp]
mov rax, qword [rax + 8]
mov rcx, rbp
call qword [case.0x14002bdde.0]
cmp r14b, r12b
je 0x140012cbc
cmp r14b, r12b
mov rdx, qword [rsp + 0x50]
cmovl rdx, rbx
lea rax, [rbx + 1]
cmovge r13, rax
cmp rdx, r13
lea r14, [0x140050370]
jne 0x140012bbe
mov r12, qword [rsp + 0x48]
jmp 0x140012d47
cmp qword [rsp + 0x130], rbx
jbe 0x140013771
mov rax, qword [rsp + 0x120]
xor r13d, r13d
cmp qword [rax + 0x10], 0
mov r12, qword [rsp + 0x48]
lea r14, [0x140050370]
je 0x140012e38
mov rax, qword [rax + 8]
test rax, rax
je 0x140012e38
movzx eax, word [rax + rbx*2]
cmp qword [rsp + 0x100], rax
jbe 0x140012d47
mov rcx, qword [rsp + 0xf0]
xor r13d, r13d
cmp qword [rcx + 0x10], 0
je 0x140012e38
mov rcx, qword [rcx + 8]
test rcx, rcx
je 0x140012e38
mov eax, dword [rcx + rax*4]
cmp eax, dword [rsp + 0xe4]
jb 0x140012e2d
cmp eax, dword [rsp + 0xe8]
jae 0x140012e2d
xor r13d, r13d
jmp 0x140012e38
mov r15d, 1
jmp 0x140012ba4
lea rcx, [rsp + 0xd0]
mov rdx, r12
call fcn.1400320d0
lea r14, [0x140050370]
mov rsi, qword [rsp + 0x58]
jmp 0x140012a73
lea rcx, [rsp + 0xd0]
mov rdx, r12
call fcn.1400320d0
lea r14, [0x140050370]
mov rsi, qword [rsp + 0x58]
jmp 0x140012aa2
lea rcx, [rsp + 0xd0]
mov rdx, r12
call fcn.1400320d0
jmp 0x140012a3c
mov eax, eax
mov qword [rsp + 0x100], rax
jmp 0x140012943
mov eax, eax
mov qword [rsp + 0x118], rax
jmp 0x1400129c2
mov eax, eax
mov qword [rsp + 0x130], rax
jmp 0x140012a3c
movzx eax, si
sub eax, dword [rsp + 0xe0]
jb 0x140013771
cmp qword [rsp + 0x100], rax
jbe 0x140013771
mov rcx, qword [rsp + 0xf0]
cmp qword [rcx + 0x10], 0
je 0x140013c62
mov rcx, qword [rcx + 8]
test rcx, rcx
mov r12, qword [rsp + 0x48]
lea r14, [0x140050370]
mov r13d, 0
je 0x140012e38
mov eax, dword [rcx + rax*4]
mov r13d, eax
add r13, qword [rsp + 0xd8]
mov rsi, qword [rsp + 0x128]
test rsi, rsi
je 0x140012e70
lock dec dword [rsi + 8]
jne 0x140012e70
mov rax, qword [rsi]
mov rax, qword [rax]
mov rcx, rsi
call qword [case.0x14002bdde.0]
lock dec dword [rsi + 0xc]
jne 0x140012e70
mov rax, qword [rsi]
mov rax, qword [rax + 8]
mov rcx, rsi
call qword [case.0x14002bdde.0]
mov rsi, qword [rsp + 0x110]
test rsi, rsi
je 0x140012ea8
lock dec dword [rsi + 8]
jne 0x140012ea8
mov rax, qword [rsi]
mov rax, qword [rax]
mov rcx, rsi
call qword [case.0x14002bdde.0]
lock dec dword [rsi + 0xc]
jne 0x140012ea8
mov rax, qword [rsi]
mov rax, qword [rax + 8]
mov rcx, rsi
call qword [case.0x14002bdde.0]
mov rsi, qword [rsp + 0xf8]
test rsi, rsi
je 0x140012ee0
lock dec dword [rsi + 8]
jne 0x140012ee0
mov rax, qword [rsi]
mov rax, qword [rax]
mov rcx, rsi
call qword [case.0x14002bdde.0]
lock dec dword [rsi + 0xc]
jne 0x140012ee0
mov rax, qword [rsi]
mov rax, qword [rax + 8]
mov rcx, rsi
call qword [case.0x14002bdde.0]
test r13, r13
je 0x14001376a
mov rcx, qword [r12]
lea rax, [rsp + 0x78]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 0x30
lea r9, [rsp + 0xd0]
mov rdx, r13
xor r8d, r8d
call sub.ntdll.dll_NtQueryVirtualMemory
test eax, eax
js 0x14001375c
cmp qword [rsp + 0x78], 0
je 0x14001376a
cmp dword [rsp + 0xe0], 0
je 0x14001376a
cmp dword [rsp + 0xf0], 0x1000
jne 0x14001376a
cmp dword [rsp + 0xf4], 1
je 0x14001376a
cmp byte [r12 + 0x34], 0
jne 0x14001318f
mov r15, qword [r12 + 0x38]
lea rcx, [0x1400552ba]
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rsi, rax
mov eax, dword [0x14005eca8]
cmp eax, 0x601ffff
jbe 0x1400138f2
mov eax, dword [0x14005eca8]
cmp eax, 0x9ffffff
ja 0x1400139a4
mov eax, dword [0x14005e03c]
mov bpl, 1
cmp eax, 0xa000001
jb 0x140013047
lea rdi, [rsp + 0xdc]
mov r8d, 0x110
mov rcx, rdi
xor edx, edx
call sub.ntdll.dll_memset
movabs rax, 0xa0000011c
mov qword [rdi - 0xc], rax
mov dword [rdi - 4], 0
mov rdi, qword [sym.imp.ntdll.dll_VerSetConditionMask]
xor ecx, ecx
mov edx, 2
mov r8b, 3
call rdi
mov rcx, rax
mov edx, 1
mov r8b, 3
call rdi
mov rcx, rax
mov edx, 0x20
mov r8b, 3
call rdi
mov rcx, rax
mov edx, 0x10
mov r8b, 3
call rdi
lea rcx, [rsp + 0xd0]
mov edx, 0x33
mov r8, rax
call qword [sym.imp.KERNEL32.dll_VerifyVersionInfoW]
test eax, eax
sete bpl
lea rax, [0x14005e03c]
lea rcx, [0x14005eca8]
cmove rcx, rax
mov eax, 0xa000000
xchg dword [rcx], eax
mov eax, dword [0x14005eca8]
cmp eax, 0x601ffff
jbe 0x1400139ab
mov eax, dword [0x14005eca8]
cmp eax, 0x602ffff
ja 0x1400136cd
mov eax, dword [0x14005e03c]
cmp eax, 0x6030001
jb 0x140013bec
lea rdi, [rsp + 0xdc]
mov r8d, 0x110
mov rcx, rdi
xor edx, edx
call sub.ntdll.dll_memset
movabs rax, 0x60000011c
mov qword [rdi - 0xc], rax
mov dword [rdi - 4], 3
mov rdi, qword [sym.imp.ntdll.dll_VerSetConditionMask]
xor ecx, ecx
mov edx, 2
mov r8b, 3
call rdi
mov rcx, rax
mov edx, 1
mov r8b, 3
call rdi
mov rcx, rax
mov edx, 0x20
mov r8b, 3
call rdi
mov rcx, rax
mov edx, 0x10
mov r8b, 3
call rdi
lea rcx, [rsp + 0xd0]
mov edx, 0x33
mov r8, rax
call qword [sym.imp.KERNEL32.dll_VerifyVersionInfoW]
test eax, eax
sete dil
lea rax, [0x14005e03c]
lea rcx, [0x14005eca8]
cmove rcx, rax
mov eax, 0x6030000
xchg dword [rcx], eax
mov rbx, qword [r12 + 0x38]
lea rcx, [0x140055b2a]
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
cmp byte [r12 + 0x34], 0
jne 0x14001318f
cmp r15, rsi
sete cl
cmp rbx, rax
sete al
and bpl, al
cmp r13, qword [sym.imp.KERNEL32.dll_CloseHandle]
sete dl
and dl, bpl
or dl, cl
and al, dil
cmp r13, qword [sym.imp.KERNEL32.dll_CreateFileA]
sete cl
mov rbp, qword [sym.imp.KERNEL32.dll_DuplicateHandle]
cmp r13, rbp
sete bl
or bl, cl
and bl, al
or bl, dl
movzx ecx, bl
lea eax, [rcx + 4]
test dil, dil
cmove eax, ecx
cmp r13, rbp
cmovne eax, ecx
mov rcx, rax
bts rcx, 0x20
mov qword [r12 + 0x30], rcx
jmp 0x140013194
mov eax, dword [r12 + 0x30]
test al, 4
jne 0x140013785
xor esi, esi
mov rax, qword [sym.imp.mozglue.dll_moz_xmalloc]
xor ebp, ebp
mov rbx, r13
cmp rbp, rbx
je 0x1400132b3
mov rdi, rbx
mov ecx, 0x58
call rax
mov r15, rax
movabs rax, 0x100000001
mov qword [r15 + 8], rax
mov qword [r15], r14
lea rbp, [r15 + 0x10]
mov qword [r15 + 0x10], r12
mov qword [r15 + 0x20], rsi
mov qword [r15 + 0x28], 0x20
lea rax, [r15 + 0x30]
mov qword [r15 + 0x18], rax
mov qword [r15 + 0x50], rbx
mov qword [rsp + 0xd0], rbp
mov qword [rsp + 0xd8], r15
mov dword [rsp + 0xe0], 0
mov qword [rsp + 0x78], rsi
mov rcx, rbp
xor edx, edx
call fcn.140016f80
mov rax, qword [r15 + 0x18]
cmp byte [rax], 0xeb
je 0x1400137a3
lea rcx, [rsp + 0xd0]
lea rdx, [rsp + 0x78]
call fcn.140014050
test al, al
jne 0x1400138b7
mov rcx, rbp
xor edx, edx
call fcn.140016f80
mov rax, qword [r15 + 0x18]
mov sil, 1
cmp byte [rax], 0xe9
mov rbx, rdi
je 0x140013832
mov rbp, qword [rsp + 0xd8]
test rbp, rbp
je 0x140013299
lock dec dword [rbp + 8]
jne 0x140013299
mov rax, qword [rbp]
mov rax, qword [rax]
mov rcx, rbp
call qword [case.0x14002bdde.0]
lock dec dword [rbp + 0xc]
jne 0x140013299
mov rax, qword [rbp]
mov rax, qword [rax + 8]
mov rcx, rbp
call qword [case.0x14002bdde.0]
mov rbp, rdi
test sil, sil
mov esi, 0
mov rax, qword [sym.imp.mozglue.dll_moz_xmalloc]
jne 0x1400131aa
jmp 0x140013317
cmp rbp, r13
movabs rsi, 0x100000001
jne 0x1400138c4
mov ecx, 0x58
call qword [sym.imp.mozglue.dll_moz_xmalloc]
mov qword [rax + 8], rsi
mov qword [rax], r14
lea rcx, [rax + 0x10]
mov qword [rax + 0x10], r12
mov qword [rax + 0x20], 0
mov qword [rax + 0x28], 0x20
lea rdx, [rax + 0x30]
mov qword [rax + 0x18], rdx
mov qword [rax + 0x50], r13
mov qword [rsp + 0xa8], rcx
mov qword [rsp + 0xb0], rax
mov dword [rsp + 0xb8], 0
cmp byte [r12 + 0x34], 0
je 0x1400138da
mov edi, dword [r12 + 0x30]
and edi, 1
shl rdi, 0x1e
mov eax, dword [0x14005ed44]
mov ecx, dword [0x14005e488]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1400136d4
mov esi, dword [0x14005ed40]
mov dword [rsp + 0x20], edi
lea rdx, [rsp + 0x78]
mov rcx, r12
mov r8d, esi
mov r9, rdi
call fcn.14001acf0
test esi, esi
je 0x1400138eb
cmp qword [r12], 0
je 0x1400138eb
cmp qword [r12 + 0x18], 0
jne 0x14001357c
mov eax, dword [0x14005ed44]
mov ecx, dword [0x14005e488]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x140013718
mov ecx, dword [0x14005ed40]
mov eax, esi
xor edx, edx
div ecx
sub ecx, edx
test edx, edx
cmove ecx, edx
add ecx, esi
mov dword [r12 + 0x20], ecx
mov dword [rsp + 0x20], ecx
mov qword [rsp + 0x28], 0
mov rcx, 0xffffffffffffffff
xor edx, edx
mov r8d, 0x4000040
xor r9d, r9d
call qword [sym.imp.KERNEL32.dll_CreateFileMappingW]
mov qword [r12 + 8], rax
test rax, rax
je 0x1400138e5
mov qword [rsp + 0x20], 0
mov rcx, rax
mov edx, 2
xor r8d, r8d
xor r9d, r9d
call qword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov qword [r12 + 0x10], rax
test rax, rax
je 0x1400138e5
lea rdi, [r12 + 0x20]
mov rsi, qword [r12]
mov r14, qword [r12 + 8]
cmp byte [rsp + 0x88], 0
je 0x140013afb
mov rbx, qword [rsp + 0x78]
test rbx, rbx
je 0x140013a5d
mov r15d, dword [r12 + 0x20]
mov rbp, qword [rsp + 0x80]
mov eax, dword [0x14005ed68]
mov ecx, dword [0x14005e488]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jle 0x1400134fe
lea rcx, [0x14005ed68]
call fcn.14002b51c
cmp dword [0x14005ed68], 0xffffffff
jne 0x1400134fe
lea rcx, str.kernelbase.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov qword [0x14005ed58], rax
mov qword [0x14005ed60], 0
test rax, rax
je 0x1400134f2
lea rdx, str.MapViewOfFile3
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x14005ed60], rax
test rax, rax
jne 0x1400134f2
mov rcx, qword [0x14005ed58]
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov qword [0x14005ed58], 0
lea rcx, [0x14005ed68]
call fcn.14002b4bc
mov rax, qword [0x14005ed60]
test rax, rax
jne 0x140013a68
add rbx, rbp
mov r12d, 8
mov r13, qword [sym.imp.mozglue.dll_void____ptr64___cdecl_mozilla::MapRemoteViewOfFile_void____ptr64__void____ptr64__unsigned_long_long_unsigned___int64___void____ptr64__unsigned_long_long_unsigned___int64___unsigned_long_int__unsigned_long_int_]
mov qword [rsp + 0x20], rbx
mov rcx, qword [rsp + 0x48]
mov rdx, rsi
mov r8, r15
mov r9, rbp
call fcn.14001b480
test rax, rax
je 0x140013b35
mov dword [rsp + 0x30], 0x20
mov dword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
mov rcx, r14
mov rdx, rsi
xor r8d, r8d
mov r9, rax
call r13
test rax, rax
je 0x140013af2
mov r12, qword [rsp + 0x48]
mov qword [r12 + 0x18], rax
jmp 0x140013581
lea rdi, [r12 + 0x20]
cmp dword [rdi], 0
je 0x1400138eb
mov qword [rsp + 0xc0], r12
mov byte [rsp + 0xc8], 1
lea rsi, [rsp + 0xd0]
mov rcx, r12
mov rdx, rsi
call fcn.140014240
cmp byte [rsi + 0x30], 0
je 0x1400138eb
mov rax, qword [rsp + 0xd0]
lea rdi, [rsp + 0x78]
mov qword [rdi], rax
mov eax, dword [rsp + 0xd8]
mov dword [rdi + 8], eax
movups xmm0, xmmword [rsp + 0xe0]
movups xmmword [rdi + 0x10], xmm0
mov eax, dword [rsp + 0xf0]
mov dword [rdi + 0x20], eax
mov rax, qword [rsp + 0xf4]
mov qword [rdi + 0x24], rax
mov al, byte [rsp + 0xfc]
mov byte [rdi + 0x2c], al
mov dword [rsp + 0xd8], 0
mov byte [rsp + 0xfc], 0
mov rsi, qword [rsp + 0x70]
mov qword [rsp + 0x28], rsi
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0x20], rax
lea rdx, [rsp + 0xa8]
lea r8, [rsp + 0xc0]
mov rcx, r12
mov r9, rdi
call fcn.140014550
cmp qword [rsi], 0
setne sil
mov rcx, qword [rdi + 0x10]
test rcx, rcx
je 0x14001366f
mov r8d, dword [rsp + 0x80]
test r8d, r8d
je 0x14001366f
lea r9, [rsp + 0x80]
mov edx, dword [r9 + 0x20]
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
mov rdi, qword [rsp + 0xb0]
test rdi, rdi
je 0x1400136a7
lock dec dword [rdi + 8]
jne 0x1400136a7
mov rax, qword [rdi]
mov rax, qword [rax]
mov rcx, rdi
call qword [case.0x14002bdde.0]
lock dec dword [rdi + 0xc]
jne 0x1400136a7
mov rax, qword [rdi]
mov rax, qword [rax + 8]
mov rcx, rdi
call qword [case.0x14002bdde.0]
mov rcx, qword [rsp + 0x1f0]
xor rcx, rsp
call fcn.14002c730
mov eax, esi
add rsp, 0x1f8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
xor edi, edi
jmp 0x140013116
lea rcx, [0x14005ed44]
call fcn.14002b51c
cmp dword [0x14005ed44], 0xffffffff
jne 0x140013354
lea rsi, [rsp + 0xd0]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov eax, dword [rsi + 0x28]
mov dword [0x14005ed40], eax
lea rcx, [0x14005ed44]
call fcn.14002b4bc
jmp 0x140013354
lea rcx, [0x14005ed44]
call fcn.14002b51c
cmp dword [0x14005ed44], 0xffffffff
jne 0x1400133b5
lea rdi, [rsp + 0xd0]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov eax, dword [rdi + 0x28]
mov dword [0x14005ed40], eax
lea rcx, [0x14005ed44]
call fcn.14002b4bc
jmp 0x1400133b5
mov ecx, eax
call sub.ntdll.dll_RtlNtStatusToDosError
mov ecx, eax
call sub.ntdll.dll_RtlSetLastWin32Error
xor esi, esi
jmp 0x1400136a7
xor r13d, r13d
mov r12, qword [rsp + 0x48]
lea r14, [0x140050370]
jmp 0x140012e38
mov ecx, 0x58
call qword [sym.imp.mozglue.dll_moz_xmalloc]
movabs rcx, 0x100000001
mov qword [rax + 8], rcx
jmp 0x1400132d5
mov qword [rsp + 0x50], r13
mov rcx, rbp
mov edx, 1
call fcn.140016f80
mov rax, qword [r15 + 0x20]
test rax, rax
je 0x1400137c2
mov rax, qword [r15 + 0x18]
movsx rax, byte [rax + 1]
add rax, 2
mov rbx, qword [r15 + 0x50]
add rbx, rax
mov qword [rsp + 0x78], rbx
shl eax, 0x18
add eax, 0xfe000000
mov r13d, eax
sar r13d, 0x18
test eax, eax
js 0x140013b47
mov sil, 1
je 0x140013bd3
xor r14d, r14d
lea edx, [r14 + 2]
mov rcx, rbp
mov r12, rdx
call fcn.140016f80
mov rax, qword [r15 + 0x20]
test rax, rax
je 0x140013816
mov rax, qword [r15 + 0x18]
cmp byte [rax + r12], 0x90
jne 0x140013bd3
inc r14b
movsx r14d, r14b
cmp r13d, r14d
jg 0x1400137fa
jmp 0x140013bd6
mov ecx, 0x58
call qword [sym.imp.mozglue.dll_moz_xmalloc]
mov r15, rax
movabs rax, 0x100000001
mov qword [r15 + 8], rax
mov qword [r15], r14
lea rsi, [r15 + 0x10]
mov rcx, rsi
mov rdx, rbp
mov r8d, 1
call fcn.140032420
mov rcx, rsi
mov edx, 4
call fcn.140016f80
mov rax, qword [r15 + 0x18]
mov rcx, qword [r15 + 0x50]
movsxd rax, dword [rax]
add rax, rcx
add rax, 4
mov qword [rsp + 0x78], rax
lock dec dword [r15 + 8]
jne 0x1400138b7
mov rax, qword [r15]
mov rax, qword [rax]
mov rcx, r15
call qword [case.0x14002bdde.0]
lock dec dword [r15 + 0xc]
jne 0x1400138b7
mov rax, qword [r15]
mov rax, qword [rax + 8]
mov rcx, r15
call qword [case.0x14002bdde.0]
mov sil, 1
mov rbx, qword [rsp + 0x78]
jmp 0x14001325f
mov rcx, r12
mov rdx, rbp
call fcn.140032040
test al, al
cmovne r13, rbp
jmp 0x1400132c6
int3
call qword [sym.imp.KERNEL32.dll_GetLastError]
xor esi, esi
jmp 0x14001366f
mov eax, dword [0x14005e03c]
cmp eax, 0x6020001
jb 0x140013bff
lea rdi, [rsp + 0xdc]
mov r8d, 0x110
mov rcx, rdi
xor edx, edx
call sub.ntdll.dll_memset
movabs rax, 0x60000011c
mov qword [rdi - 0xc], rax
mov dword [rdi - 4], 2
mov rdi, qword [sym.imp.ntdll.dll_VerSetConditionMask]
xor ecx, ecx
mov edx, 2
mov r8b, 3
call rdi
mov rcx, rax
mov edx, 1
mov r8b, 3
call rdi
mov rcx, rax
mov edx, 0x20
mov r8b, 3
call rdi
mov rcx, rax
mov edx, 0x10
mov r8b, 3
call rdi
lea rcx, [rsp + 0xd0]
mov edx, 0x33
mov r8, rax
call qword [sym.imp.KERNEL32.dll_VerifyVersionInfoW]
test eax, eax
je 0x140013bf4
mov eax, 0x6020000
xchg dword [0x14005eca8], eax
mov r12, qword [rsp + 0x48]
lea r14, [0x140050370]
jmp 0x140012f86
xor ebp, ebp
jmp 0x140013047
mov eax, dword [0x14005e03c]
cmp eax, 0x6020001
jb 0x140013c1d
lea rdi, [rsp + 0xdc]
mov r8d, 0x110
mov rcx, rdi
xor edx, edx
call sub.ntdll.dll_memset
movabs rax, 0x60000011c
mov qword [rdi - 0xc], rax
mov dword [rdi - 4], 2
mov rdi, qword [sym.imp.ntdll.dll_VerSetConditionMask]
xor ecx, ecx
mov edx, 2
mov r8b, 3
call rdi
mov rcx, rax
mov edx, 1
mov r8b, 3
call rdi
mov rcx, rax
mov edx, 0x20
mov r8b, 3
call rdi
mov rcx, rax
mov edx, 0x10
mov r8b, 3
call rdi
lea rcx, [rsp + 0xd0]
mov edx, 0x33
mov r8, rax
call qword [sym.imp.KERNEL32.dll_VerifyVersionInfoW]
test eax, eax
je 0x140013c12
mov eax, 0x6020000
xchg dword [0x14005eca8], eax
mov r12, qword [rsp + 0x48]
lea r14, [0x140050370]
jmp 0x140013058
int3
lea rcx, [rbx + rbp]
dec rcx
mov qword [rsp + 0xd0], rbp
mov qword [rsp + 0xd8], rcx
mov qword [rsp + 0xe0], 0
lea rcx, [rsp + 0xc0]
mov qword [rcx], 1
lea rdx, [rsp + 0xd0]
mov qword [rcx + 8], rdx
mov qword [rsp + 0x38], rcx
mov qword [rsp + 0x20], r15
mov dword [rsp + 0x40], 1
mov dword [rsp + 0x30], 0x20
mov dword [rsp + 0x28], 0
mov rcx, r14
mov rdx, rsi
xor r8d, r8d
xor r9d, r9d
call qword [case.0x14002bdde.0]
mov r12, qword [rsp + 0x48]
mov qword [r12 + 0x18], rax
test rax, rax
jne 0x140013581
jmp 0x1400138eb
dec r12
jne 0x14001351e
mov dword [rsp + 0x30], 0x20
mov dword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
mov rcx, r14
mov rdx, rsi
xor r8d, r8d
xor r9d, r9d
call qword [sym.imp.mozglue.dll_void____ptr64___cdecl_mozilla::MapRemoteViewOfFile_void____ptr64__void____ptr64__unsigned_long_long_unsigned___int64___void____ptr64__unsigned_long_long_unsigned___int64___unsigned_long_int__unsigned_long_int_]
test rax, rax
jne 0x140013570
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rax, qword [rsp + 0x48]
mov qword [rax + 0x18], 0
jmp 0x1400138eb
add r13b, 2
mov rcx, rbp
mov edx, r13d
call fcn.1400322e0
mov sil, 1
test al, al
je 0x140013bd3
mov ecx, 0x58
call qword [sym.imp.mozglue.dll_moz_xmalloc]
mov rbp, rax
movabs rax, 0x100000001
mov qword [rbp + 8], rax
lea rax, [0x140050370]
mov qword [rbp], rax
lea rax, [rbp + 0x10]
mov rcx, qword [rsp + 0x48]
mov qword [rbp + 0x10], rcx
mov qword [rbp + 0x20], 0
mov qword [rbp + 0x28], 0x20
lea rcx, [rbp + 0x30]
mov qword [rbp + 0x18], rcx
mov qword [rbp + 0x50], rbx
lea rcx, [rsp + 0xa8]
mov qword [rcx], rax
mov qword [rcx + 8], rbp
mov dword [rcx + 0x10], 0
lea rdx, [rsp + 0x78]
call fcn.140014050
test al, al
je 0x140013c30
xor esi, esi
mov rbx, rdi
mov r12, qword [rsp + 0x48]
lea r14, [0x140050370]
mov r13, qword [rsp + 0x50]
jmp 0x14001325f
mov dil, 1
jmp 0x140013116
mov eax, 0x6020000
xchg dword [0x14005e03c], eax
xor ebp, ebp
mov r12, qword [rsp + 0x48]
lea r14, [0x140050370]
jmp 0x140013047
mov eax, 0x6020000
xchg dword [0x14005e03c], eax
xor edi, edi
mov r12, qword [rsp + 0x48]
lea r14, [0x140050370]
jmp 0x140013116
lock dec dword [rbp + 8]
jne 0x140013bd3
mov rax, qword [rbp]
mov rax, qword [rax]
mov rcx, rbp
call qword [case.0x14002bdde.0]
lock dec dword [rbp + 0xc]
jne 0x140013bd3
mov rax, qword [rbp]
mov rax, qword [rax + 8]
mov rcx, rbp
call qword [case.0x14002bdde.0]
jmp 0x140013bd3
mov r12, qword [rsp + 0x48]
lea r14, [0x140050370]
jmp 0x140012d47