Function at 0x140012490
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, 0x208
mov qword [rsp + 0x60], rdx
mov rax, qword [0x140062018]
xor rax, rsp
mov qword [rsp + 0x200], rax
mov rdx, qword [rcx + 0x38]
test rdx, rdx
je 0x1400135f8
mov rsi, r9
mov rdi, r8
mov r13, rcx
and rdx, 0xfffffffffffffffc
mov rcx, qword [rcx]
lea rax, [rsp + 0x80]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 0x30
lea r9, [rsp + 0xe0]
xor r8d, r8d
call sub.ntdll.dll_NtQueryVirtualMemory
test eax, eax
js 0x1400135ea
cmp qword [rsp + 0x80], 0
je 0x1400135f8
cmp dword [rsp + 0xf0], 0
je 0x1400135f8
cmp dword [rsp + 0x100], 0x1000
jne 0x1400135f8
cmp dword [rsp + 0x104], 1
je 0x1400135f8
mov qword [rsp + 0x70], rdi
mov qword [rsp + 0x78], rsi
mov r14, qword [r13 + 0x38]
and r14, 0xfffffffffffffffc
mov ecx, 0x58
call qword [sym.imp.mozglue.dll_moz_xmalloc]
mov r15, rax
movabs rsi, 0x100000001
mov qword [rax + 8], rsi
lea rbx, [0x1400543a0]
mov qword [rax], rbx
lea rcx, [rax + 0x10]
mov qword [rax + 0x10], r13
mov qword [rax + 0x20], 0
mov qword [rax + 0x28], 0x20
add rax, 0x30
mov qword [r15 + 0x18], rax
mov qword [r15 + 0x50], r14
mov edx, 0x40
call fcn.1400170d0
cmp qword [r15 + 0x50], 0
mov qword [rsp + 0x50], r13
je 0x140012bf8
cmp qword [r15 + 0x20], 0
je 0x140012bf8
mov rax, qword [r15 + 0x18]
test rax, rax
je 0x140012bf8
movzx ecx, word [rax]
cmp ecx, 0x5a4d
jne 0x140012bf8
movsxd rdi, dword [rax + 0x3c]
add rdi, r14
mov ecx, 0x58
call qword [sym.imp.mozglue.dll_moz_xmalloc]
mov r12, rax
mov qword [rax + 8], rsi
mov qword [rax], rbx
lea rcx, [rax + 0x10]
mov qword [rax + 0x10], r13
mov qword [rax + 0x20], 0
mov qword [rax + 0x28], 0x20
add rax, 0x30
mov qword [r12 + 0x18], rax
mov qword [r12 + 0x50], rdi
mov edx, 0x108
call fcn.1400170d0
cmp qword [r12 + 0x50], 0
je 0x140012bde
cmp qword [r12 + 0x20], 0
je 0x140012bde
mov rdi, qword [r12 + 0x18]
test rdi, rdi
je 0x140012bde
cmp dword [rdi], 0x4550
jne 0x140012bde
movzx eax, word [rdi + 0x18]
cmp eax, 0x20b
jne 0x140012bde
cmp dword [rdi + 0x50], 0x147
jbe 0x140012bde
cmp dword [rdi + 0x84], 0
je 0x140012bde
mov ebp, dword [rdi + 0x88]
test rbp, rbp
je 0x140012bde
cmp dword [rdi + 0x8c], 0
je 0x140012bde
add rbp, r14
mov ecx, 0x58
call qword [sym.imp.mozglue.dll_moz_xmalloc]
mov rbx, rax
mov qword [rax + 8], rsi
lea rax, [0x1400543a0]
mov qword [rbx], rax
lea rcx, [rbx + 0x10]
mov qword [rbx + 0x10], r13
mov qword [rbx + 0x20], 0
mov qword [rbx + 0x28], 0x20
lea rax, [rbx + 0x30]
mov qword [rbx + 0x18], rax
mov qword [rbx + 0x50], rbp
mov edx, 0x28
call fcn.1400170d0
cmp qword [rbx + 0x50], 0
je 0x140012c12
cmp qword [rbx + 0x20], 0
je 0x140012c12
mov rbp, qword [rbx + 0x18]
test rbp, rbp
je 0x140012c12
mov r13d, dword [rbp + 0x14]
test r13, r13
je 0x140012c12
mov eax, dword [rdi + 0x88]
mov ecx, dword [rdi + 0x8c]
add ecx, eax
mov rsi, qword [rsp + 0x50]
mov qword [rsp + 0xe0], rsi
mov qword [rsp + 0xe8], r14
mov edx, dword [rbp + 0x10]
mov dword [rsp + 0xf0], edx
mov dword [rsp + 0xf4], eax
mov dword [rsp + 0xf8], ecx
mov edi, dword [rbp + 0x1c]
add rdi, r14
mov ecx, 0x58
call qword [sym.imp.mozglue.dll_moz_xmalloc]
movabs rcx, 0x100000001
mov qword [rax + 8], rcx
lea rcx, [0x1400543a0]
mov qword [rax], rcx
lea rcx, [rax + 0x10]
mov qword [rax + 0x10], rsi
mov qword [rax + 0x20], 0
mov qword [rax + 0x28], 0x20
lea rdx, [rax + 0x30]
mov qword [rax + 0x18], rdx
mov qword [rax + 0x50], rdi
mov qword [rsp + 0x100], rcx
mov qword [rsp + 0x108], rax
mov qword [rsp + 0x110], r13
lea edx, [r13*4]
call fcn.140013ae0
shr eax, 2
cmp r13d, eax
ja 0x140012c2c
mov r13d, dword [rbp + 0x18]
mov edi, dword [rbp + 0x20]
add rdi, r14
mov ecx, 0x58
call qword [sym.imp.mozglue.dll_moz_xmalloc]
movabs rcx, 0x100000001
mov qword [rax + 8], rcx
lea rcx, [0x1400543a0]
mov qword [rax], rcx
lea rcx, [rax + 0x10]
mov qword [rax + 0x10], rsi
mov qword [rax + 0x20], 0
mov qword [rax + 0x28], 0x20
lea rdx, [rax + 0x30]
mov qword [rax + 0x18], rdx
mov qword [rax + 0x50], rdi
mov qword [rsp + 0x118], rcx
mov qword [rsp + 0x120], rax
mov qword [rsp + 0x128], r13
lea edx, [r13*4]
call fcn.140013ae0
shr eax, 2
cmp r13d, eax
ja 0x140012c3b
mov edi, dword [rbp + 0x18]
mov eax, dword [rbp + 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, [0x1400543a0]
mov qword [rax], rcx
lea rcx, [rax + 0x10]
mov qword [rax + 0x10], rsi
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 + 0x130], rcx
mov qword [rsp + 0x138], rax
mov qword [rsp + 0x140], rdi
lea edx, [rdi + rdi]
call fcn.140013ae0
shr eax, 1
cmp edi, eax
mov r13, rsi
ja 0x140012c4a
lock dec dword [rbx + 8]
mov rsi, qword [rsp + 0x60]
jne 0x140012906
mov rax, qword [rbx]
mov rax, qword [rax]
mov rcx, rbx
call qword [case.0x14002f18e.0]
lock dec dword [rbx + 0xc]
jne 0x140012906
mov rax, qword [rbx]
mov rax, qword [rax + 8]
mov rcx, rbx
call qword [case.0x14002f18e.0]
lock dec dword [r12 + 8]
jne 0x140012937
mov rax, qword [r12]
mov rax, qword [rax]
mov rcx, r12
call qword [case.0x14002f18e.0]
lock dec dword [r12 + 0xc]
jne 0x140012937
mov rax, qword [r12]
mov rax, qword [rax + 8]
mov rcx, r12
call qword [case.0x14002f18e.0]
lock dec dword [r15 + 8]
jne 0x140012964
mov rax, qword [r15]
mov rax, qword [rax]
mov rcx, r15
call qword [case.0x14002f18e.0]
lock dec dword [r15 + 0xc]
jne 0x140012964
mov rax, qword [r15]
mov rax, qword [rax + 8]
mov rcx, r15
call qword [case.0x14002f18e.0]
cmp rsi, 0xffff
jbe 0x140012c59
xor r14d, r14d
cmp qword [rsp + 0xe8], 0
je 0x140012cac
cmp dword [rsp + 0xf4], 0
je 0x140012cac
cmp dword [rsp + 0xf8], 0
je 0x140012cac
mov rax, qword [rsp + 0x100]
xor r14d, r14d
cmp qword [rax + 0x40], 0
je 0x140012cac
cmp qword [rsp + 0x110], 0
je 0x140012cac
mov rax, qword [rsp + 0x118]
xor r14d, r14d
cmp qword [rax + 0x40], 0
je 0x140012cac
mov rdx, qword [rsp + 0x128]
test rdx, rdx
je 0x140012cac
xor r14d, r14d
test rsi, rsi
je 0x140012cac
mov rcx, qword [rsp + 0x130]
cmp qword [rcx + 0x40], 0
je 0x140012cac
cmp qword [rsp + 0x140], 0
je 0x140012cac
cmp byte [rsi], 0
je 0x140012bd3
mov ecx, 1
lea r12, [rcx + 1]
cmp byte [rsi + rcx], 0
mov rcx, r12
jne 0x140012a27
mov rcx, qword [rax + 0x10]
mov qword [rsp + 0x68], rcx
test rcx, rcx
je 0x140012a4b
mov rax, qword [rax + 8]
mov qword [rsp + 0x68], rax
xor r13d, r13d
mov qword [rsp + 0x58], rdx
mov rbx, rdx
sub rbx, r13
shr rbx, 1
add rbx, r13
mov rax, qword [rsp + 0x68]
mov esi, dword [rax + rbx*4]
add rsi, qword [rsp + 0xe8]
mov rdi, qword [rsp + 0xe0]
mov ecx, 0x58
call qword [sym.imp.mozglue.dll_moz_xmalloc]
mov rbp, rax
movabs rax, 0x100000001
mov qword [rbp + 8], rax
lea rax, [0x1400543a0]
mov qword [rbp], rax
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, r12d
call fcn.140013ae0
mov rax, qword [rbp + 0x20]
test rax, rax
je 0x140012ad7
mov rax, qword [rbp + 0x18]
xor ecx, ecx
mov rdx, qword [rsp + 0x60]
mov r14b, byte [rdx + rcx]
mov r15b, byte [rax + rcx]
test r14b, r14b
je 0x140012af3
inc rcx
cmp r14b, r15b
je 0x140012ade
lock dec dword [rbp + 8]
jne 0x140012b20
mov rax, qword [rbp]
mov rax, qword [rax]
mov rcx, rbp
call qword [case.0x14002f18e.0]
lock dec dword [rbp + 0xc]
jne 0x140012b20
mov rax, qword [rbp]
mov rax, qword [rax + 8]
mov rcx, rbp
call qword [case.0x14002f18e.0]
cmp r14b, r15b
je 0x140012b47
cmp r14b, r15b
mov rdx, qword [rsp + 0x58]
cmovl rdx, rbx
lea rax, [rbx + 1]
cmovge r13, rax
cmp rdx, r13
jne 0x140012a4e
jmp 0x1400135e0
cmp qword [rsp + 0x140], rbx
jbe 0x1400135ff
mov rax, qword [rsp + 0x130]
xor r14d, r14d
cmp qword [rax + 0x10], 0
mov r13, qword [rsp + 0x50]
je 0x140012cac
mov rax, qword [rax + 8]
test rax, rax
je 0x140012cac
movzx eax, word [rax + rbx*2]
cmp qword [rsp + 0x110], rax
jbe 0x140012bcb
mov rcx, qword [rsp + 0x100]
xor r14d, r14d
cmp qword [rcx + 0x10], 0
je 0x140012cac
mov rcx, qword [rcx + 8]
test rcx, rcx
je 0x140012cac
mov eax, dword [rcx + rax*4]
cmp eax, dword [rsp + 0xf4]
jb 0x140012ca1
cmp eax, dword [rsp + 0xf8]
jae 0x140012ca1
xor r14d, r14d
jmp 0x140012cac
mov r12d, 1
jmp 0x140012a34
lea rcx, [rsp + 0xe0]
mov rdx, r13
call fcn.140035810
mov rsi, qword [rsp + 0x60]
jmp 0x140012906
lea rcx, [rsp + 0xe0]
mov rdx, r13
call fcn.140035810
mov rsi, qword [rsp + 0x60]
jmp 0x140012937
lea rcx, [rsp + 0xe0]
mov r13, qword [rsp + 0x50]
mov rdx, r13
call fcn.140035810
jmp 0x1400128d6
mov eax, eax
mov qword [rsp + 0x110], rax
jmp 0x1400127d7
mov eax, eax
mov qword [rsp + 0x128], rax
jmp 0x140012859
mov eax, eax
mov qword [rsp + 0x140], rax
jmp 0x1400128d6
movzx eax, si
sub eax, dword [rsp + 0xf0]
jb 0x1400135ff
cmp qword [rsp + 0x110], rax
jbe 0x1400135ff
mov rcx, qword [rsp + 0x100]
cmp qword [rcx + 0x10], 0
je 0x1400135e0
mov rcx, qword [rcx + 8]
test rcx, rcx
mov r13, qword [rsp + 0x50]
mov r14d, 0
je 0x140012cac
mov eax, dword [rcx + rax*4]
mov r14d, eax
add r14, qword [rsp + 0xe8]
mov rsi, qword [rsp + 0x138]
test rsi, rsi
je 0x140012ce4
lock dec dword [rsi + 8]
jne 0x140012ce4
mov rax, qword [rsi]
mov rax, qword [rax]
mov rcx, rsi
call qword [case.0x14002f18e.0]
lock dec dword [rsi + 0xc]
jne 0x140012ce4
mov rax, qword [rsi]
mov rax, qword [rax + 8]
mov rcx, rsi
call qword [case.0x14002f18e.0]
mov rsi, qword [rsp + 0x120]
test rsi, rsi
je 0x140012d1c
lock dec dword [rsi + 8]
jne 0x140012d1c
mov rax, qword [rsi]
mov rax, qword [rax]
mov rcx, rsi
call qword [case.0x14002f18e.0]
lock dec dword [rsi + 0xc]
jne 0x140012d1c
mov rax, qword [rsi]
mov rax, qword [rax + 8]
mov rcx, rsi
call qword [case.0x14002f18e.0]
mov rsi, qword [rsp + 0x108]
test rsi, rsi
je 0x140012d54
lock dec dword [rsi + 8]
jne 0x140012d54
mov rax, qword [rsi]
mov rax, qword [rax]
mov rcx, rsi
call qword [case.0x14002f18e.0]
lock dec dword [rsi + 0xc]
jne 0x140012d54
mov rax, qword [rsi]
mov rax, qword [rax + 8]
mov rcx, rsi
call qword [case.0x14002f18e.0]
test r14, r14
je 0x1400135f8
mov rcx, qword [r13]
lea rax, [rsp + 0x80]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 0x30
lea r12, [rsp + 0xe0]
mov rdx, r14
xor r8d, r8d
mov r9, r12
call sub.ntdll.dll_NtQueryVirtualMemory
test eax, eax
js 0x1400135ea
cmp qword [rsp + 0x80], 0
je 0x1400135f8
cmp dword [rsp + 0xf0], 0
je 0x1400135f8
cmp dword [rsp + 0x100], 0x1000
jne 0x1400135f8
cmp dword [rsp + 0x104], 1
je 0x1400135f8
cmp byte [r13 + 0x34], 0
jne 0x140013007
mov r15, qword [r13 + 0x38]
lea rcx, [0x140059456]
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rsi, rax
mov eax, dword [0x140062cd0]
cmp eax, 0x601ffff
jbe 0x140013789
mov eax, dword [0x140062cd0]
cmp eax, 0x9ffffff
ja 0x140013834
mov eax, dword [0x14006203c]
mov bpl, 1
cmp eax, 0xa000001
jb 0x140012ec2
lea rdi, [rsp + 0xec]
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 + 0xe0]
mov edx, 0x33
mov r8, rax
call qword [sym.imp.KERNEL32.dll_VerifyVersionInfoW]
test eax, eax
sete bpl
lea rax, [0x14006203c]
lea rcx, [0x140062cd0]
cmove rcx, rax
mov eax, 0xa000000
xchg dword [rcx], eax
mov eax, dword [0x140062cd0]
cmp eax, 0x601ffff
jbe 0x14001383b
mov eax, dword [0x140062cd0]
cmp eax, 0x602ffff
ja 0x140013551
mov eax, dword [0x14006203c]
cmp eax, 0x6030001
jb 0x140013a70
lea rdi, [rsp + 0xec]
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 + 0xe0]
mov edx, 0x33
mov r8, rax
call qword [sym.imp.KERNEL32.dll_VerifyVersionInfoW]
test eax, eax
sete dil
lea rax, [0x14006203c]
lea rcx, [0x140062cd0]
cmove rcx, rax
mov eax, 0x6030000
xchg dword [rcx], eax
mov rbx, qword [r13 + 0x38]
lea rcx, [0x140059cfc]
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
cmp byte [r13 + 0x34], 0
jne 0x140013007
cmp r15, rsi
sete cl
cmp rbx, rax
sete al
and bpl, al
cmp r14, qword [sym.imp.KERNEL32.dll_CloseHandle]
sete dl
and dl, bpl
or dl, cl
and al, dil
cmp r14, qword [sym.imp.KERNEL32.dll_CreateFileA]
sete cl
mov rbp, qword [sym.imp.KERNEL32.dll_DuplicateHandle]
cmp r14, 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 r14, rbp
cmovne eax, ecx
mov rcx, rax
bts rcx, 0x20
mov qword [r13 + 0x30], rcx
jmp 0x14001300b
mov eax, dword [r13 + 0x30]
movabs rsi, 0x100000001
test al, 4
jne 0x14001360c
mov rax, qword [sym.imp.mozglue.dll_moz_xmalloc]
xor ebp, ebp
mov rbx, r14
cmp rbp, rbx
je 0x14001313c
mov rdi, rbx
mov ecx, 0x58
call rax
mov r15, rax
mov qword [rax + 8], rsi
lea rax, [0x1400543a0]
mov qword [r15], rax
lea rbp, [r15 + 0x10]
mov qword [r15 + 0x10], r13
xor ecx, ecx
mov qword [r15 + 0x20], rcx
mov qword [r15 + 0x28], 0x20
lea rax, [r15 + 0x30]
mov qword [r15 + 0x18], rax
mov qword [r15 + 0x50], rbx
mov qword [rsp + 0xe0], rbp
mov qword [rsp + 0xe8], r15
mov dword [rsp + 0xf0], 0
mov qword [rsp + 0x80], rcx
mov rcx, rbp
xor edx, edx
call fcn.1400170d0
mov rax, qword [r15 + 0x18]
cmp byte [rax], 0xeb
je 0x14001362a
lea rcx, [rsp + 0xe0]
lea rdx, [rsp + 0x80]
call fcn.140013eb0
test al, al
jne 0x14001374b
mov rcx, rbp
xor edx, edx
call fcn.1400170d0
mov rax, qword [r15 + 0x18]
mov sil, 1
cmp byte [rax], 0xe9
mov rbx, rdi
je 0x1400136bc
mov rbp, qword [rsp + 0xe8]
test rbp, rbp
je 0x14001311d
lock dec dword [rbp + 8]
jne 0x14001311d
mov rax, qword [rbp]
mov rax, qword [rax]
mov rcx, rbp
call qword [case.0x14002f18e.0]
lock dec dword [rbp + 0xc]
jne 0x14001311d
mov rax, qword [rbp]
mov rax, qword [rax + 8]
mov rcx, rbp
call qword [case.0x14002f18e.0]
mov rbp, rdi
test sil, sil
movabs rsi, 0x100000001
mov rax, qword [sym.imp.mozglue.dll_moz_xmalloc]
jne 0x140013029
jmp 0x14001319d
cmp rbp, r14
lea rdi, [0x1400543a0]
jne 0x14001375b
mov ecx, 0x58
call qword [sym.imp.mozglue.dll_moz_xmalloc]
mov qword [rax + 8], rsi
mov qword [rax], rdi
lea rcx, [rax + 0x10]
mov qword [rax + 0x10], r13
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 + 0xb8], rcx
mov qword [rsp + 0xc0], rax
mov dword [rsp + 0xc8], 0
cmp byte [r13 + 0x34], 0
je 0x140013771
mov edi, dword [r13 + 0x30]
and edi, 1
shl rdi, 0x1e
mov eax, dword [0x140062d6c]
mov ecx, dword [0x1400624b0]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x140013558
mov esi, dword [0x140062d68]
mov dword [rsp + 0x20], edi
lea rdx, [rsp + 0x80]
mov rcx, r13
mov r8d, esi
mov r9, rdi
call fcn.14001b510
test esi, esi
je 0x140013782
cmp qword [r13], 0
je 0x140013782
cmp qword [r13 + 0x18], 0
jne 0x1400133fe
mov eax, dword [0x140062d6c]
mov ecx, dword [0x1400624b0]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14001359c
mov ecx, dword [0x140062d68]
mov eax, esi
xor edx, edx
div ecx
sub ecx, edx
test edx, edx
cmove ecx, edx
add ecx, esi
mov dword [r13 + 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 [r13 + 8], rax
test rax, rax
je 0x14001377c
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 [r13 + 0x10], rax
test rax, rax
je 0x14001377c
lea rdi, [r13 + 0x20]
mov rsi, qword [r13]
mov r14, qword [r13 + 8]
cmp byte [rsp + 0x90], 0
je 0x14001397b
mov rbx, qword [rsp + 0x80]
test rbx, rbx
je 0x1400138e6
mov r15d, dword [r13 + 0x20]
mov rbp, qword [rsp + 0x88]
mov eax, dword [0x140062d90]
mov ecx, dword [0x1400624b0]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jle 0x140013381
lea rcx, [0x140062d90]
call fcn.14002e8cc
cmp dword [0x140062d90], 0xffffffff
jne 0x140013381
lea rcx, str.kernelbase.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov qword [0x140062d80], rax
mov qword [0x140062d88], 0
test rax, rax
je 0x140013375
lea rdx, str.MapViewOfFile3
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140062d88], rax
test rax, rax
jne 0x140013375
mov rcx, qword [0x140062d80]
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov qword [0x140062d80], 0
lea rcx, [0x140062d90]
call fcn.14002e86c
mov rax, qword [0x140062d88]
test rax, rax
jne 0x1400138f1
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 + 0x50]
mov rdx, rsi
mov r8, r15
mov r9, rbp
call fcn.14001bcb0
test rax, rax
je 0x1400139b5
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 0x140013972
mov r13, qword [rsp + 0x50]
mov qword [r13 + 0x18], rax
jmp 0x140013402
lea rdi, [r13 + 0x20]
cmp dword [rdi], 0
je 0x140013782
mov qword [rsp + 0xd0], r13
mov byte [rsp + 0xd8], 1
lea rsi, [rsp + 0xe0]
mov rcx, r13
mov rdx, rsi
call fcn.1400140a0
cmp byte [rsi + 0x38], 0
je 0x140013782
mov rax, qword [rsp + 0xe0]
lea rdi, [rsp + 0x80]
mov qword [rdi], rax
mov eax, dword [rsp + 0xe8]
mov dword [rdi + 8], eax
movups xmm0, xmmword [rsp + 0xf0]
movups xmmword [rdi + 0x10], xmm0
mov eax, dword [rsp + 0x100]
mov dword [rdi + 0x20], eax
movups xmm0, xmmword [rsp + 0x104]
movups xmmword [rdi + 0x24], xmm0
mov al, byte [rsp + 0x114]
mov byte [rdi + 0x34], al
mov dword [rsp + 0xe8], 0
mov byte [rsp + 0x114], 0
mov rsi, qword [rsp + 0x78]
mov qword [rsp + 0x28], rsi
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0x20], rax
lea rdx, [rsp + 0xb8]
lea r8, [rsp + 0xd0]
mov rcx, r13
mov r9, rdi
call fcn.1400143c0
cmp qword [rsi], 0
setne sil
mov rcx, qword [rdi + 0x10]
test rcx, rcx
je 0x1400134f3
mov r8d, dword [rsp + 0x88]
test r8d, r8d
je 0x1400134f3
lea r9, [rsp + 0x88]
mov edx, dword [r9 + 0x28]
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
mov rdi, qword [rsp + 0xc0]
test rdi, rdi
je 0x14001352b
lock dec dword [rdi + 8]
jne 0x14001352b
mov rax, qword [rdi]
mov rax, qword [rax]
mov rcx, rdi
call qword [case.0x14002f18e.0]
lock dec dword [rdi + 0xc]
jne 0x14001352b
mov rax, qword [rdi]
mov rax, qword [rax + 8]
mov rcx, rdi
call qword [case.0x14002f18e.0]
mov rcx, qword [rsp + 0x200]
xor rcx, rsp
call fcn.14002fae0
mov eax, esi
add rsp, 0x208
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
xor edi, edi
jmp 0x140012f91
lea rcx, [0x140062d6c]
call fcn.14002e8cc
cmp dword [0x140062d6c], 0xffffffff
jne 0x1400131d8
lea rsi, [rsp + 0xe0]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov eax, dword [rsi + 0x28]
mov dword [0x140062d68], eax
lea rcx, [0x140062d6c]
call fcn.14002e86c
jmp 0x1400131d8
lea rcx, [0x140062d6c]
call fcn.14002e8cc
cmp dword [0x140062d6c], 0xffffffff
jne 0x14001323b
lea rdi, [rsp + 0xe0]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov eax, dword [rdi + 0x28]
mov dword [0x140062d68], eax
lea rcx, [0x140062d6c]
call fcn.14002e86c
jmp 0x14001323b
mov r13, qword [rsp + 0x50]
jmp 0x140012bcb
mov ecx, eax
call sub.ntdll.dll_RtlNtStatusToDosError
mov ecx, eax
call sub.ntdll.dll_RtlSetLastWin32Error
xor esi, esi
jmp 0x14001352b
xor r14d, r14d
mov r13, qword [rsp + 0x50]
jmp 0x140012cac
mov ecx, 0x58
call qword [sym.imp.mozglue.dll_moz_xmalloc]
mov qword [rax + 8], rsi
lea rcx, [0x1400543a0]
mov qword [rax], rcx
jmp 0x14001315e
mov qword [rsp + 0x58], r14
mov rcx, rbp
mov edx, 1
call fcn.1400170d0
mov rax, qword [r15 + 0x20]
test rax, rax
je 0x140013649
mov rax, qword [r15 + 0x18]
movsx rax, byte [rax + 1]
add rax, 2
mov rbx, qword [r15 + 0x50]
add rbx, rax
mov qword [rsp + 0x80], rbx
shl eax, 0x18
add eax, 0xfe000000
mov r13d, eax
sar r13d, 0x18
test eax, eax
js 0x1400139c7
mov sil, 1
je 0x140013a56
xor r14d, r14d
lea edx, [r14 + 2]
mov rcx, rbp
mov r12, rdx
call fcn.1400170d0
mov rax, qword [r15 + 0x20]
test rax, rax
je 0x1400136a0
mov rax, qword [r15 + 0x18]
cmp byte [rax + r12], 0x90
jne 0x140013a56
inc r14b
movsx r14d, r14b
cmp r13d, r14d
jg 0x140013684
jmp 0x140013a59
mov ecx, 0x58
call qword [sym.imp.mozglue.dll_moz_xmalloc]
mov r15, rax
movabs rax, 0x100000001
mov qword [r15 + 8], rax
lea rax, [0x1400543a0]
mov qword [r15], rax
lea rsi, [r15 + 0x10]
mov rcx, rsi
mov rdx, rbp
mov r8d, 1
call fcn.140035b60
mov rcx, rsi
mov edx, 4
call fcn.1400170d0
mov rax, qword [r15 + 0x18]
mov rcx, qword [r15 + 0x50]
movsxd rax, dword [rax]
add rax, rcx
add rax, 4
mov qword [rsp + 0x80], rax
lock dec dword [r15 + 8]
jne 0x14001374b
mov rax, qword [r15]
mov rax, qword [rax]
mov rcx, r15
call qword [case.0x14002f18e.0]
lock dec dword [r15 + 0xc]
jne 0x14001374b
mov rax, qword [r15]
mov rax, qword [rax + 8]
mov rcx, r15
call qword [case.0x14002f18e.0]
mov sil, 1
mov rbx, qword [rsp + 0x80]
jmp 0x1400130e3
mov rcx, r13
mov rdx, rbp
call fcn.140035780
test al, al
cmovne r14, rbp
jmp 0x14001314c
int3
call qword [sym.imp.KERNEL32.dll_GetLastError]
xor esi, esi
jmp 0x1400134f3
mov eax, dword [0x14006203c]
cmp eax, 0x6020001
jb 0x140013a83
lea rdi, [rsp + 0xec]
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 + 0xe0]
mov edx, 0x33
mov r8, rax
call qword [sym.imp.KERNEL32.dll_VerifyVersionInfoW]
test eax, eax
je 0x140013a78
mov eax, 0x6020000
xchg dword [0x140062cd0], eax
mov r13, qword [rsp + 0x50]
jmp 0x140012e01
xor ebp, ebp
jmp 0x140012ec2
mov eax, dword [0x14006203c]
cmp eax, 0x6020001
jb 0x140013a9a
lea rdi, [rsp + 0xec]
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 + 0xe0]
mov edx, 0x33
mov r8, rax
call qword [sym.imp.KERNEL32.dll_VerifyVersionInfoW]
test eax, eax
je 0x140013a8f
mov eax, 0x6020000
xchg dword [0x140062cd0], eax
mov r13, qword [rsp + 0x50]
jmp 0x140012ed3
int3
lea rcx, [rbx + rbp]
dec rcx
mov qword [rsp + 0xe0], rbp
mov qword [rsp + 0xe8], rcx
mov qword [rsp + 0xf0], 0
lea rcx, [rsp + 0xd0]
mov qword [rcx], 1
mov qword [rcx + 8], r12
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.0x14002f18e.0]
mov r13, qword [rsp + 0x50]
mov qword [r13 + 0x18], rax
test rax, rax
jne 0x140013402
jmp 0x140013782
dec r12
jne 0x1400133a1
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 0x1400133f3
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rax, qword [rsp + 0x50]
mov qword [rax + 0x18], 0
jmp 0x140013782
add r13b, 2
mov rcx, rbp
mov edx, r13d
call fcn.140035a20
mov sil, 1
test al, al
je 0x140013a56
mov ecx, 0x58
call qword [sym.imp.mozglue.dll_moz_xmalloc]
mov rbp, rax
movabs rax, 0x100000001
mov qword [rbp + 8], rax
lea rax, [0x1400543a0]
mov qword [rbp], rax
lea rax, [rbp + 0x10]
mov rcx, qword [rsp + 0x50]
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 + 0xb8]
mov qword [rcx], rax
mov qword [rcx + 8], rbp
mov dword [rcx + 0x10], 0
lea rdx, [rsp + 0x80]
call fcn.140013eb0
test al, al
je 0x140013aa6
xor esi, esi
mov rbx, rdi
mov r13, qword [rsp + 0x50]
mov r14, qword [rsp + 0x58]
lea r12, [rsp + 0xe0]
jmp 0x1400130e3
mov dil, 1
jmp 0x140012f91
mov eax, 0x6020000
xchg dword [0x14006203c], eax
xor ebp, ebp
mov r13, qword [rsp + 0x50]
jmp 0x140012ec2
mov eax, 0x6020000
xchg dword [0x14006203c], eax
xor edi, edi
mov r13, qword [rsp + 0x50]
jmp 0x140012f91
lock dec dword [rbp + 8]
jne 0x140013a56
mov rax, qword [rbp]
mov rax, qword [rax]
mov rcx, rbp
call qword [case.0x14002f18e.0]
lock dec dword [rbp + 0xc]
jne 0x140013a56
mov rax, qword [rbp]
mov rax, qword [rax + 8]
mov rcx, rbp
call qword [case.0x14002f18e.0]
jmp 0x140013a56