Function at 0x1400125d0
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 [0x140061018]
xor rax, rsp
mov qword [rsp + 0x200], rax
mov rdx, qword [rcx + 0x38]
test rdx, rdx
je 0x140013738
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 0x14001372a
cmp qword [rsp + 0x80], 0
je 0x140013738
cmp dword [rsp + 0xf0], 0
je 0x140013738
cmp dword [rsp + 0x100], 0x1000
jne 0x140013738
cmp dword [rsp + 0x104], 1
je 0x140013738
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, [0x1400533a0]
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.140017180
cmp qword [r15 + 0x50], 0
mov qword [rsp + 0x50], r13
je 0x140012d38
cmp qword [r15 + 0x20], 0
je 0x140012d38
mov rax, qword [r15 + 0x18]
test rax, rax
je 0x140012d38
movzx ecx, word [rax]
cmp ecx, 0x5a4d
jne 0x140012d38
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.140017180
cmp qword [r12 + 0x50], 0
je 0x140012d1e
cmp qword [r12 + 0x20], 0
je 0x140012d1e
mov rdi, qword [r12 + 0x18]
test rdi, rdi
je 0x140012d1e
cmp dword [rdi], 0x4550
jne 0x140012d1e
movzx eax, word [rdi + 0x18]
cmp eax, 0x20b
jne 0x140012d1e
cmp dword [rdi + 0x50], 0x147
jbe 0x140012d1e
cmp dword [rdi + 0x84], 0
je 0x140012d1e
mov ebp, dword [rdi + 0x88]
test rbp, rbp
je 0x140012d1e
cmp dword [rdi + 0x8c], 0
je 0x140012d1e
add rbp, r14
mov ecx, 0x58
call qword [sym.imp.mozglue.dll_moz_xmalloc]
mov rbx, rax
mov qword [rax + 8], rsi
lea rax, [0x1400533a0]
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.140017180
cmp qword [rbx + 0x50], 0
je 0x140012d52
cmp qword [rbx + 0x20], 0
je 0x140012d52
mov rbp, qword [rbx + 0x18]
test rbp, rbp
je 0x140012d52
mov r13d, dword [rbp + 0x14]
test r13, r13
je 0x140012d52
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, [0x1400533a0]
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.140013c20
shr eax, 2
cmp r13d, eax
ja 0x140012d6c
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, [0x1400533a0]
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.140013c20
shr eax, 2
cmp r13d, eax
ja 0x140012d7b
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, [0x1400533a0]
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.140013c20
shr eax, 1
cmp edi, eax
mov r13, rsi
ja 0x140012d8a
lock dec dword [rbx + 8]
mov rsi, qword [rsp + 0x60]
jne 0x140012a46
mov rax, qword [rbx]
mov rax, qword [rax]
mov rcx, rbx
call qword [case.0x14002eb7e.0]
lock dec dword [rbx + 0xc]
jne 0x140012a46
mov rax, qword [rbx]
mov rax, qword [rax + 8]
mov rcx, rbx
call qword [case.0x14002eb7e.0]
lock dec dword [r12 + 8]
jne 0x140012a77
mov rax, qword [r12]
mov rax, qword [rax]
mov rcx, r12
call qword [case.0x14002eb7e.0]
lock dec dword [r12 + 0xc]
jne 0x140012a77
mov rax, qword [r12]
mov rax, qword [rax + 8]
mov rcx, r12
call qword [case.0x14002eb7e.0]
lock dec dword [r15 + 8]
jne 0x140012aa4
mov rax, qword [r15]
mov rax, qword [rax]
mov rcx, r15
call qword [case.0x14002eb7e.0]
lock dec dword [r15 + 0xc]
jne 0x140012aa4
mov rax, qword [r15]
mov rax, qword [rax + 8]
mov rcx, r15
call qword [case.0x14002eb7e.0]
cmp rsi, 0xffff
jbe 0x140012d99
xor r14d, r14d
cmp qword [rsp + 0xe8], 0
je 0x140012dec
cmp dword [rsp + 0xf4], 0
je 0x140012dec
cmp dword [rsp + 0xf8], 0
je 0x140012dec
mov rax, qword [rsp + 0x100]
xor r14d, r14d
cmp qword [rax + 0x40], 0
je 0x140012dec
cmp qword [rsp + 0x110], 0
je 0x140012dec
mov rax, qword [rsp + 0x118]
xor r14d, r14d
cmp qword [rax + 0x40], 0
je 0x140012dec
mov rdx, qword [rsp + 0x128]
test rdx, rdx
je 0x140012dec
xor r14d, r14d
test rsi, rsi
je 0x140012dec
mov rcx, qword [rsp + 0x130]
cmp qword [rcx + 0x40], 0
je 0x140012dec
cmp qword [rsp + 0x140], 0
je 0x140012dec
cmp byte [rsi], 0
je 0x140012d13
mov ecx, 1
lea r12, [rcx + 1]
cmp byte [rsi + rcx], 0
mov rcx, r12
jne 0x140012b67
mov rcx, qword [rax + 0x10]
mov qword [rsp + 0x68], rcx
test rcx, rcx
je 0x140012b8b
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, [0x1400533a0]
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.140013c20
mov rax, qword [rbp + 0x20]
test rax, rax
je 0x140012c17
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 0x140012c33
inc rcx
cmp r14b, r15b
je 0x140012c1e
lock dec dword [rbp + 8]
jne 0x140012c60
mov rax, qword [rbp]
mov rax, qword [rax]
mov rcx, rbp
call qword [case.0x14002eb7e.0]
lock dec dword [rbp + 0xc]
jne 0x140012c60
mov rax, qword [rbp]
mov rax, qword [rax + 8]
mov rcx, rbp
call qword [case.0x14002eb7e.0]
cmp r14b, r15b
je 0x140012c87
cmp r14b, r15b
mov rdx, qword [rsp + 0x58]
cmovl rdx, rbx
lea rax, [rbx + 1]
cmovge r13, rax
cmp rdx, r13
jne 0x140012b8e
jmp 0x140013720
cmp qword [rsp + 0x140], rbx
jbe 0x14001373f
mov rax, qword [rsp + 0x130]
xor r14d, r14d
cmp qword [rax + 0x10], 0
mov r13, qword [rsp + 0x50]
je 0x140012dec
mov rax, qword [rax + 8]
test rax, rax
je 0x140012dec
movzx eax, word [rax + rbx*2]
cmp qword [rsp + 0x110], rax
jbe 0x140012d0b
mov rcx, qword [rsp + 0x100]
xor r14d, r14d
cmp qword [rcx + 0x10], 0
je 0x140012dec
mov rcx, qword [rcx + 8]
test rcx, rcx
je 0x140012dec
mov eax, dword [rcx + rax*4]
cmp eax, dword [rsp + 0xf4]
jb 0x140012de1
cmp eax, dword [rsp + 0xf8]
jae 0x140012de1
xor r14d, r14d
jmp 0x140012dec
mov r12d, 1
jmp 0x140012b74
lea rcx, [rsp + 0xe0]
mov rdx, r13
call fcn.1400351e0
mov rsi, qword [rsp + 0x60]
jmp 0x140012a46
lea rcx, [rsp + 0xe0]
mov rdx, r13
call fcn.1400351e0
mov rsi, qword [rsp + 0x60]
jmp 0x140012a77
lea rcx, [rsp + 0xe0]
mov r13, qword [rsp + 0x50]
mov rdx, r13
call fcn.1400351e0
jmp 0x140012a16
mov eax, eax
mov qword [rsp + 0x110], rax
jmp 0x140012917
mov eax, eax
mov qword [rsp + 0x128], rax
jmp 0x140012999
mov eax, eax
mov qword [rsp + 0x140], rax
jmp 0x140012a16
movzx eax, si
sub eax, dword [rsp + 0xf0]
jb 0x14001373f
cmp qword [rsp + 0x110], rax
jbe 0x14001373f
mov rcx, qword [rsp + 0x100]
cmp qword [rcx + 0x10], 0
je 0x140013720
mov rcx, qword [rcx + 8]
test rcx, rcx
mov r13, qword [rsp + 0x50]
mov r14d, 0
je 0x140012dec
mov eax, dword [rcx + rax*4]
mov r14d, eax
add r14, qword [rsp + 0xe8]
mov rsi, qword [rsp + 0x138]
test rsi, rsi
je 0x140012e24
lock dec dword [rsi + 8]
jne 0x140012e24
mov rax, qword [rsi]
mov rax, qword [rax]
mov rcx, rsi
call qword [case.0x14002eb7e.0]
lock dec dword [rsi + 0xc]
jne 0x140012e24
mov rax, qword [rsi]
mov rax, qword [rax + 8]
mov rcx, rsi
call qword [case.0x14002eb7e.0]
mov rsi, qword [rsp + 0x120]
test rsi, rsi
je 0x140012e5c
lock dec dword [rsi + 8]
jne 0x140012e5c
mov rax, qword [rsi]
mov rax, qword [rax]
mov rcx, rsi
call qword [case.0x14002eb7e.0]
lock dec dword [rsi + 0xc]
jne 0x140012e5c
mov rax, qword [rsi]
mov rax, qword [rax + 8]
mov rcx, rsi
call qword [case.0x14002eb7e.0]
mov rsi, qword [rsp + 0x108]
test rsi, rsi
je 0x140012e94
lock dec dword [rsi + 8]
jne 0x140012e94
mov rax, qword [rsi]
mov rax, qword [rax]
mov rcx, rsi
call qword [case.0x14002eb7e.0]
lock dec dword [rsi + 0xc]
jne 0x140012e94
mov rax, qword [rsi]
mov rax, qword [rax + 8]
mov rcx, rsi
call qword [case.0x14002eb7e.0]
test r14, r14
je 0x140013738
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 0x14001372a
cmp qword [rsp + 0x80], 0
je 0x140013738
cmp dword [rsp + 0xf0], 0
je 0x140013738
cmp dword [rsp + 0x100], 0x1000
jne 0x140013738
cmp dword [rsp + 0x104], 1
je 0x140013738
cmp byte [r13 + 0x34], 0
jne 0x140013147
mov r15, qword [r13 + 0x38]
lea rcx, [0x1400583ae]
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rsi, rax
mov eax, dword [0x140061cd0]
cmp eax, 0x601ffff
jbe 0x1400138c9
mov eax, dword [0x140061cd0]
cmp eax, 0x9ffffff
ja 0x140013974
mov eax, dword [0x14006103c]
mov bpl, 1
cmp eax, 0xa000001
jb 0x140013002
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, [0x14006103c]
lea rcx, [0x140061cd0]
cmove rcx, rax
mov eax, 0xa000000
xchg dword [rcx], eax
mov eax, dword [0x140061cd0]
cmp eax, 0x601ffff
jbe 0x14001397b
mov eax, dword [0x140061cd0]
cmp eax, 0x602ffff
ja 0x140013691
mov eax, dword [0x14006103c]
cmp eax, 0x6030001
jb 0x140013bb0
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, [0x14006103c]
lea rcx, [0x140061cd0]
cmove rcx, rax
mov eax, 0x6030000
xchg dword [rcx], eax
mov rbx, qword [r13 + 0x38]
lea rcx, [0x140058c36]
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
cmp byte [r13 + 0x34], 0
jne 0x140013147
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 0x14001314b
mov eax, dword [r13 + 0x30]
movabs rsi, 0x100000001
test al, 4
jne 0x14001374c
mov rax, qword [sym.imp.mozglue.dll_moz_xmalloc]
xor ebp, ebp
mov rbx, r14
cmp rbp, rbx
je 0x14001327c
mov rdi, rbx
mov ecx, 0x58
call rax
mov r15, rax
mov qword [rax + 8], rsi
lea rax, [0x1400533a0]
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.140017180
mov rax, qword [r15 + 0x18]
cmp byte [rax], 0xeb
je 0x14001376a
lea rcx, [rsp + 0xe0]
lea rdx, [rsp + 0x80]
call fcn.140013ff0
test al, al
jne 0x14001388b
mov rcx, rbp
xor edx, edx
call fcn.140017180
mov rax, qword [r15 + 0x18]
mov sil, 1
cmp byte [rax], 0xe9
mov rbx, rdi
je 0x1400137fc
mov rbp, qword [rsp + 0xe8]
test rbp, rbp
je 0x14001325d
lock dec dword [rbp + 8]
jne 0x14001325d
mov rax, qword [rbp]
mov rax, qword [rax]
mov rcx, rbp
call qword [case.0x14002eb7e.0]
lock dec dword [rbp + 0xc]
jne 0x14001325d
mov rax, qword [rbp]
mov rax, qword [rax + 8]
mov rcx, rbp
call qword [case.0x14002eb7e.0]
mov rbp, rdi
test sil, sil
movabs rsi, 0x100000001
mov rax, qword [sym.imp.mozglue.dll_moz_xmalloc]
jne 0x140013169
jmp 0x1400132dd
cmp rbp, r14
lea rdi, [0x1400533a0]
jne 0x14001389b
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 0x1400138b1
mov edi, dword [r13 + 0x30]
and edi, 1
shl rdi, 0x1e
mov eax, dword [0x140061d6c]
mov ecx, dword [0x1400614b0]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x140013698
mov esi, dword [0x140061d68]
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 0x1400138c2
cmp qword [r13], 0
je 0x1400138c2
cmp qword [r13 + 0x18], 0
jne 0x14001353e
mov eax, dword [0x140061d6c]
mov ecx, dword [0x1400614b0]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1400136dc
mov ecx, dword [0x140061d68]
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 0x1400138bc
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 0x1400138bc
lea rdi, [r13 + 0x20]
mov rsi, qword [r13]
mov r14, qword [r13 + 8]
cmp byte [rsp + 0x90], 0
je 0x140013abb
mov rbx, qword [rsp + 0x80]
test rbx, rbx
je 0x140013a26
mov r15d, dword [r13 + 0x20]
mov rbp, qword [rsp + 0x88]
mov eax, dword [0x140061d90]
mov ecx, dword [0x1400614b0]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jle 0x1400134c1
lea rcx, [0x140061d90]
call fcn.14002e2bc
cmp dword [0x140061d90], 0xffffffff
jne 0x1400134c1
lea rcx, str.kernelbase.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov qword [0x140061d80], rax
mov qword [0x140061d88], 0
test rax, rax
je 0x1400134b5
lea rdx, str.MapViewOfFile3
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140061d88], rax
test rax, rax
jne 0x1400134b5
mov rcx, qword [0x140061d80]
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov qword [0x140061d80], 0
lea rcx, [0x140061d90]
call fcn.14002e25c
mov rax, qword [0x140061d88]
test rax, rax
jne 0x140013a31
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 0x140013af5
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 0x140013ab2
mov r13, qword [rsp + 0x50]
mov qword [r13 + 0x18], rax
jmp 0x140013542
lea rdi, [r13 + 0x20]
cmp dword [rdi], 0
je 0x1400138c2
mov qword [rsp + 0xd0], r13
mov byte [rsp + 0xd8], 1
lea rsi, [rsp + 0xe0]
mov rcx, r13
mov rdx, rsi
call fcn.1400141e0
cmp byte [rsi + 0x38], 0
je 0x1400138c2
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.140014500
cmp qword [rsi], 0
setne sil
mov rcx, qword [rdi + 0x10]
test rcx, rcx
je 0x140013633
mov r8d, dword [rsp + 0x88]
test r8d, r8d
je 0x140013633
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 0x14001366b
lock dec dword [rdi + 8]
jne 0x14001366b
mov rax, qword [rdi]
mov rax, qword [rax]
mov rcx, rdi
call qword [case.0x14002eb7e.0]
lock dec dword [rdi + 0xc]
jne 0x14001366b
mov rax, qword [rdi]
mov rax, qword [rax + 8]
mov rcx, rdi
call qword [case.0x14002eb7e.0]
mov rcx, qword [rsp + 0x200]
xor rcx, rsp
call fcn.14002f4d0
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 0x1400130d1
lea rcx, [0x140061d6c]
call fcn.14002e2bc
cmp dword [0x140061d6c], 0xffffffff
jne 0x140013318
lea rsi, [rsp + 0xe0]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov eax, dword [rsi + 0x28]
mov dword [0x140061d68], eax
lea rcx, [0x140061d6c]
call fcn.14002e25c
jmp 0x140013318
lea rcx, [0x140061d6c]
call fcn.14002e2bc
cmp dword [0x140061d6c], 0xffffffff
jne 0x14001337b
lea rdi, [rsp + 0xe0]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov eax, dword [rdi + 0x28]
mov dword [0x140061d68], eax
lea rcx, [0x140061d6c]
call fcn.14002e25c
jmp 0x14001337b
mov r13, qword [rsp + 0x50]
jmp 0x140012d0b
mov ecx, eax
call sub.ntdll.dll_RtlNtStatusToDosError
mov ecx, eax
call sub.ntdll.dll_RtlSetLastWin32Error
xor esi, esi
jmp 0x14001366b
xor r14d, r14d
mov r13, qword [rsp + 0x50]
jmp 0x140012dec
mov ecx, 0x58
call qword [sym.imp.mozglue.dll_moz_xmalloc]
mov qword [rax + 8], rsi
lea rcx, [0x1400533a0]
mov qword [rax], rcx
jmp 0x14001329e
mov qword [rsp + 0x58], r14
mov rcx, rbp
mov edx, 1
call fcn.140017180
mov rax, qword [r15 + 0x20]
test rax, rax
je 0x140013789
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 0x140013b07
mov sil, 1
je 0x140013b96
xor r14d, r14d
lea edx, [r14 + 2]
mov rcx, rbp
mov r12, rdx
call fcn.140017180
mov rax, qword [r15 + 0x20]
test rax, rax
je 0x1400137e0
mov rax, qword [r15 + 0x18]
cmp byte [rax + r12], 0x90
jne 0x140013b96
inc r14b
movsx r14d, r14b
cmp r13d, r14d
jg 0x1400137c4
jmp 0x140013b99
mov ecx, 0x58
call qword [sym.imp.mozglue.dll_moz_xmalloc]
mov r15, rax
movabs rax, 0x100000001
mov qword [r15 + 8], rax
lea rax, [0x1400533a0]
mov qword [r15], rax
lea rsi, [r15 + 0x10]
mov rcx, rsi
mov rdx, rbp
mov r8d, 1
call fcn.140035530
mov rcx, rsi
mov edx, 4
call fcn.140017180
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 0x14001388b
mov rax, qword [r15]
mov rax, qword [rax]
mov rcx, r15
call qword [case.0x14002eb7e.0]
lock dec dword [r15 + 0xc]
jne 0x14001388b
mov rax, qword [r15]
mov rax, qword [rax + 8]
mov rcx, r15
call qword [case.0x14002eb7e.0]
mov sil, 1
mov rbx, qword [rsp + 0x80]
jmp 0x140013223
mov rcx, r13
mov rdx, rbp
call fcn.140035150
test al, al
cmovne r14, rbp
jmp 0x14001328c
int3
call qword [sym.imp.KERNEL32.dll_GetLastError]
xor esi, esi
jmp 0x140013633
mov eax, dword [0x14006103c]
cmp eax, 0x6020001
jb 0x140013bc3
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 0x140013bb8
mov eax, 0x6020000
xchg dword [0x140061cd0], eax
mov r13, qword [rsp + 0x50]
jmp 0x140012f41
xor ebp, ebp
jmp 0x140013002
mov eax, dword [0x14006103c]
cmp eax, 0x6020001
jb 0x140013bda
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 0x140013bcf
mov eax, 0x6020000
xchg dword [0x140061cd0], eax
mov r13, qword [rsp + 0x50]
jmp 0x140013013
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.0x14002eb7e.0]
mov r13, qword [rsp + 0x50]
mov qword [r13 + 0x18], rax
test rax, rax
jne 0x140013542
jmp 0x1400138c2
dec r12
jne 0x1400134e1
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 0x140013533
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rax, qword [rsp + 0x50]
mov qword [rax + 0x18], 0
jmp 0x1400138c2
add r13b, 2
mov rcx, rbp
mov edx, r13d
call fcn.1400353f0
mov sil, 1
test al, al
je 0x140013b96
mov ecx, 0x58
call qword [sym.imp.mozglue.dll_moz_xmalloc]
mov rbp, rax
movabs rax, 0x100000001
mov qword [rbp + 8], rax
lea rax, [0x1400533a0]
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.140013ff0
test al, al
je 0x140013be6
xor esi, esi
mov rbx, rdi
mov r13, qword [rsp + 0x50]
mov r14, qword [rsp + 0x58]
lea r12, [rsp + 0xe0]
jmp 0x140013223
mov dil, 1
jmp 0x1400130d1
mov eax, 0x6020000
xchg dword [0x14006103c], eax
xor ebp, ebp
mov r13, qword [rsp + 0x50]
jmp 0x140013002
mov eax, 0x6020000
xchg dword [0x14006103c], eax
xor edi, edi
mov r13, qword [rsp + 0x50]
jmp 0x1400130d1
lock dec dword [rbp + 8]
jne 0x140013b96
mov rax, qword [rbp]
mov rax, qword [rax]
mov rcx, rbp
call qword [case.0x14002eb7e.0]
lock dec dword [rbp + 0xc]
jne 0x140013b96
mov rax, qword [rbp]
mov rax, qword [rax + 8]
mov rcx, rbp
call qword [case.0x14002eb7e.0]
jmp 0x140013b96