Function at 0x1400055a0
Capabilities:
Parse pe header
Query environment variable

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x5b8
movaps xmmword [rsp + 0x5a0], xmm6
mov rax, qword [0x140062040]
xor rax, rsp
mov qword [rsp + 0x598], rax
cmp qword [0x140062a80], 0
jne 0x140005eba
mov r13d, ecx
cmp byte [0x140062a88], 0
je 0x140005d7a
lea r8, [0x140062a90]
lea rcx, [rsp + 0x2a0]
mov edx, 0x104
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcscpy_s]
test eax, eax
jne 0x140005ea4
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
lea r15, [rsp + 0x190]
mov qword [rsp + 0x20], r15
mov dword [rsp + 0x28], 0x104
lea r8, [rsp + 0x2a0]
mov ecx, 0xfde9
xor edx, edx
mov r9d, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov rcx, r15
call qword [sym.imp.mozglue.dll_strdup]
test rax, rax
je 0x140005ea4
mov r14, rax
mov rcx, rax
mov edx, 0x5c
call sub.VCRUNTIME140.dll_strrchr
test rax, rax
je 0x140005e8e
mov rsi, rax
sub rsi, r14
lea rdi, [rsi + 1]
lea rcx, [rsi + 9]
call qword [sym.imp.mozglue.dll_malloc]
mov rbx, rax
mov rcx, rax
mov rdx, r14
mov r8, rdi
call sub.ntdll.dll_memcpy
movabs rax, 0x6c6c642e6c7578
mov qword [rbx + rsi + 1], rax
mov al, byte [rbx]
test al, al
lea rdi, [rsp + 0x2a0]
mov qword [rsp + 0x50], rbx
je 0x140005e20
xor esi, esi
mov rcx, rbx
cmp al, 0x2f
cmove rsi, rcx
cmp al, 0x5c
cmove rsi, rcx
mov al, byte [rcx + 1]
inc rcx
test al, al
jne 0x1400056c0
test rsi, rsi
je 0x140005e20
sub rsi, rbx
cmp rsi, 0xf0
ja 0x140005e83
lea rcx, [rsp + 0x190]
mov rdx, rbx
mov r8, rsi
call sub.ntdll.dll_memcpy
movups xmm0, xmmword [str.dependentlibs.list]
lea r15, [rsp + rsi]
add r15, 0x191
movups xmmword [r15 - 1], xmm0
mov dword [r15 + 0xf], 0x747369
lea rcx, str.MOZ_RUN_GTEST
call qword [sym.imp.api_ms_win_crt_environment_l1_1_0.dll_getenv]
test rax, rax
jne 0x140005ec1
mov qword [rsp + 0x20], rdi
mov dword [rsp + 0x28], 0x104
lea rsi, [rsp + 0x190]
mov ecx, 0xfde9
xor edx, edx
mov r8, rsi
mov r9d, 0xffffffff
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea rdx, [0x140057f28]
mov rcx, rdi
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__wfopen]
test rax, rax
je 0x140005e83
mov r12, rax
mov byte [r15], 0
mov rax, r15
sub rax, rsi
mov qword [rsp + 0x60], rax
lea rbp, [rsp + 0x80]
xorps xmm6, xmm6
mov rbx, rsi
mov rcx, rbp
mov edx, 0x104
mov r8, r12
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fgets]
test rax, rax
je 0x140005cc2
mov rcx, rbp
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
test eax, eax
je 0x14000579b
cmp byte [rsp + 0x80], 0x23
je 0x14000579b
shl rax, 0x20
movabs rcx, 0xffffffff00000000
add rcx, rax
sar rcx, 0x20
cmp byte [rsp + rcx + 0x80], 0xa
jne 0x1400057f2
mov byte [rsp + rcx + 0x80], 0
sar rax, 0x20
add rax, qword [rsp + 0x60]
cmp rax, 0x104
ja 0x140005e7a
mov rcx, r15
mov rdx, rbp
call sub.api_ms_win_crt_string_l1_1_0.dll_strcpy
mov qword [rsp + 0x20], rdi
mov dword [rsp + 0x28], 0x104
mov ecx, 0xfde9
xor edx, edx
mov r8, rbx
mov r9d, 0xffffffff
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
cmp r13d, 1
je 0x140005883
mov rcx, rdi
xor edx, edx
mov r8d, 8
call qword [sym.imp.KERNEL32.dll_LoadLibraryExW]
test rax, rax
je 0x140005e3f
mov rsi, rax
mov ecx, 0x10
call qword [sym.imp.mozglue.dll_moz_xmalloc]
mov rcx, qword [0x140062ca8]
mov qword [rax + 8], rcx
mov qword [rax], rsi
mov qword [0x140062ca8], rax
call qword [sym.imp.mozglue.dll_void___cdecl_mozilla::PollPreXULSkeletonUIEvents_void_]
jmp 0x14000579b
xor eax, eax
mov qword [rsp + 0x4f0], rax
movaps xmmword [rsp + 0x4e0], xmm6
mov qword [rsp + 0x4f8], 0xf
movups xmmword [rsp + 0x30], xmm6
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x28], 0
mov ecx, 0xfde9
xor edx, edx
mov r8, rdi
mov r9d, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
test eax, eax
lea rbx, [rsp + 0x4e0]
je 0x140005938
mov esi, eax
movsxd rdi, eax
cmp eax, 0xf
jbe 0x140005f0d
mov rcx, rbx
mov rdx, rdi
mov r8, rdi
call fcn.140014ab0
cmp qword [rsp + 0x4f8], 0x10
mov rax, rbx
lea r8, [rsp + 0x2a0]
jb 0x14000590f
mov rax, qword [rsp + 0x4e0]
movups xmmword [rsp + 0x30], xmm6
mov dword [rsp + 0x28], esi
mov qword [rsp + 0x20], rax
mov ecx, 0xfde9
xor edx, edx
mov r9d, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
cmp eax, esi
jne 0x140005f30
movups xmmword [rsp + 0x4d0], xmm6
movups xmmword [rsp + 0x4bc], xmm6
lea rax, str.ReadAheadLib
mov qword [rsp + 0x508], rax
mov dword [rsp + 0x510], 1
xor ecx, ecx
mov dword [rsp + 0x518], ecx
movups xmm0, xmmword [rsp + 0x4cc]
movups xmmword [rsp + 0x51c], xmm0
mov eax, dword [rsp + 0x4dc]
mov dword [rsp + 0x52c], eax
mov dx, 0x101
mov word [rsp + 0x530], dx
movups xmm0, xmmword [rsp + 0x4b6]
movups xmmword [rsp + 0x532], xmm0
mov rax, qword [rsp + 0x4c4]
mov qword [rsp + 0x540], rax
mov word [rsp + 0x548], dx
mov byte [rsp + 0x550], 0
mov dword [rsp + 0x558], ecx
lea rax, [rsp + 0x510]
movups xmmword [rax + 0x50], xmm6
mov rsi, qword [rsp + 0x4f0]
cmp qword [rsp + 0x4f8], 0x10
jb 0x1400059f3
mov rbx, qword [rsp + 0x4e0]
movups xmmword [rsp + 0x570], xmm6
movups xmmword [rsp + 0x580], xmm6
mov qword [rsp + 0x590], 0
test rsi, rsi
js 0x140005ee9
cmp rsi, 0xf
jbe 0x140005f58
mov rdi, rsi
or rdi, 0xf
cmp rdi, 0x17
mov eax, 0x16
cmovb rdi, rax
cmp rdi, 0xfff
jae 0x140005f7f
lea rcx, [rdi + 1]
call qword [sym.imp.mozglue.dll_moz_xmalloc]
mov qword [rsp + 0x578], rax
mov qword [rsp + 0x588], rsi
mov qword [rsp + 0x590], rdi
inc rsi
mov rcx, rax
mov rdx, rbx
mov r8, rsi
call sub.ntdll.dll_memcpy
call qword [sym.imp.mozglue.dll_public:_static_bool___cdecl_mozilla::baseprofiler::detail::RacyFeatures::IsActiveAndUnpaused_void_]
test al, al
lea rbx, [rsp + 0x190]
jne 0x140005f9d
mov rax, qword [rsp + 0x4f8]
cmp rax, 0x10
lea rdi, [rsp + 0x2a0]
jb 0x140005ac2
mov rcx, qword [rsp + 0x4e0]
add rax, 0xfffffffffffff001
cmp rax, 0xffffffffffffefff
jbe 0x140005fff
call qword [sym.imp.mozglue.dll_free]
cmp byte [0x140062ca0], 1
jne 0x140005da3
mov rax, qword [0x140062c98]
mov dword [rsp + 0x4c], r13d
test rax, rax
je 0x140006024
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0x8000000
mov dword [rsp + 0x20], 3
mov rcx, rdi
mov edx, 0xa0000000
mov r8d, 1
xor r9d, r9d
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rsi, rax
inc rax
cmp rax, 2
jb 0x140005c34
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
mov rcx, rsi
xor edx, edx
mov r8d, 0x1000020
xor r9d, r9d
call qword [sym.imp.KERNEL32.dll_CreateFileMappingA]
mov r13, rax
inc rax
cmp rax, 2
jb 0x140005c23
mov qword [rsp + 0x58], r14
mov qword [rsp + 0x20], 0
mov rcx, r13
mov edx, 0x1000024
xor r8d, r8d
xor r9d, r9d
call qword [sym.imp.KERNEL32.dll_MapViewOfFile]
test rax, rax
je 0x140005c0d
mov rbx, rax
movzx eax, word [rax]
cmp eax, 0x5a4d
jne 0x140005c04
movsxd rax, dword [rbx + 0x3c]
cmp dword [rbx + rax], 0x4550
jne 0x140005c04
movzx ecx, word [rbx + rax + 0x18]
cmp ecx, 0x20b
jne 0x140005c04
mov r14d, dword [rbx + rax + 0x50]
cmp r14, 0x148
jb 0x140005c04
cmp byte [0x140062ca0], 0
je 0x140005de0
mov rdi, qword [0x140062c98]
test rdi, rdi
je 0x140005c04
mov qword [rsp + 0x4e0], rbx
mov qword [rsp + 0x4e8], r14
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov edx, 1
mov rcx, rax
lea r8, [rsp + 0x4e0]
xor r9d, r9d
mov rax, rdi
call qword [0x140068010]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov r14, qword [rsp + 0x58]
lea rdi, [rsp + 0x2a0]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea rbx, [rsp + 0x190]
call qword [sym.imp.mozglue.dll_public:_static_bool___cdecl_mozilla::baseprofiler::detail::RacyFeatures::IsActiveAndUnpaused_void_]
test al, al
jne 0x140006036
mov rax, qword [rsp + 0x590]
cmp rax, 0x10
mov r13d, dword [rsp + 0x4c]
jb 0x140005c75
mov rcx, qword [rsp + 0x578]
add rax, 0xfffffffffffff001
cmp rax, 0xffffffffffffefff
jbe 0x1400060f5
call qword [sym.imp.mozglue.dll_free]
xor eax, eax
mov qword [rsp + 0x588], rax
mov qword [rsp + 0x590], 0xf
mov byte [rsp + 0x578], 0
mov rsi, qword [rsp + 0x560]
mov qword [rsp + 0x560], rax
test rsi, rsi
je 0x14000583b
mov rcx, rsi
call fcn.140033cf0
mov rcx, rsi
call qword [sym.imp.mozglue.dll_free]
jmp 0x14000583b
mov rcx, r12
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
mov rax, qword [0x140062ca8]
test rax, rax
je 0x140005e83
mov rcx, qword [rax]
lea rdx, str.XRE_GetBootstrap
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x140005e83
lea rsi, [rsp + 0x2a0]
mov qword [rsi], 0
mov rcx, rsi
call qword [0x140068010]
mov rsi, qword [rsi]
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.mozglue.dll_free]
mov rcx, qword [0x140062a80]
mov qword [0x140062a80], rsi
test rcx, rcx
jne 0x140005eee
mov rax, qword [rsi]
mov rax, qword [rax + 0x10]
mov rcx, rsi
call qword [0x140068010]
xor esi, esi
mov rcx, r14
call qword [sym.imp.mozglue.dll_free]
mov rcx, qword [rsp + 0x598]
xor rcx, rsp
call fcn.14002ba50
mov eax, esi
movaps xmm6, xmmword [rsp + 0x5a0]
add rsp, 0x5b8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rdx, [0x140062a90]
xor ecx, ecx
mov r8d, 0x104
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
je 0x140005ea4
mov byte [0x140062a88], 1
jmp 0x1400055eb
lea rcx, str.kernel32.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rcx, rax
lea rdx, str.PrefetchVirtualMemory
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
cmp byte [0x140062ca0], 1
je 0x140005f07
mov qword [0x140062c98], rax
mov byte [0x140062ca0], 1
jmp 0x140005ad6
lea rcx, str.kernel32.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rcx, rax
lea rdx, str.PrefetchVirtualMemory
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
cmp byte [0x140062ca0], 1
je 0x140005f07
mov rdi, rax
mov qword [0x140062c98], rax
mov byte [0x140062ca0], 1
jmp 0x140005bcd
movups xmm0, xmmword [0x1400560c9]
movaps xmmword [rsp + 0x190], xmm0
mov dword [rsp + 0x19f], 0x747369
jmp 0x140005721
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rdi, qword [0x140062ca8]
test rdi, rdi
je 0x140005e7a
mov rsi, qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov rcx, qword [rdi]
call rsi
mov rcx, qword [0x140062ca8]
mov rdi, qword [rcx + 8]
mov qword [0x140062ca8], rdi
call qword [sym.imp.mozglue.dll_free]
test rdi, rdi
jne 0x140005e58
mov rcx, r12
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.mozglue.dll_free]
lea rcx, str.Couldnt_load_XPCOM._n
call fcn.140033af0
mov esi, 0x80004005
jmp 0x140005d43
lea rcx, str.Couldnt_find_the_application_directory._n
call fcn.140033af0
mov esi, 0x80004005
jmp 0x140005d4c
xor esi, esi
jmp 0x140005d4c
lea rcx, [rsp + 0x190]
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
mov dword [rsp + rax + 0x190], 0x6574672e
mov dword [rsp + rax + 0x193], 0x747365
jmp 0x140005737
call fcn.140034030
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [0x140068010]
mov rsi, qword [0x140062a80]
jmp 0x140005d31
int3
lea rcx, [rsp + 0x4e0]
mov qword [rcx + 0x10], rdi
xor edx, edx
mov r8, rdi
call sub.ntdll.dll_memset
mov byte [rsp + rdi + 0x4e0], 0
jmp 0x1400058f1
mov qword [rsp + 0x4f0], 0
cmp qword [rsp + 0x4f8], 0x10
jb 0x140006129
mov rax, qword [rsp + 0x4e0]
jmp 0x140006131
mov qword [rsp + 0x588], rsi
mov qword [rsp + 0x590], 0xf
movups xmm0, xmmword [rbx]
lea rax, [rsp + 0x578]
movups xmmword [rax], xmm0
jmp 0x140005a76
lea rcx, [rdi + 0x28]
call qword [sym.imp.mozglue.dll_moz_xmalloc]
mov rcx, rax
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
jmp 0x140005a4d
lea rdi, [rsp + 0x520]
lea rax, [rsp + 0x528]
cmp byte [rax + 9], 0
cmove rax, rdi
cmp qword [rax], 0
jne 0x140005a8c
lea rsi, [rsp + 0x68]
mov rcx, rsi
mov dl, 1
call qword [sym.imp.mozglue.dll_private:_static_class_mozilla::TimeStamp___cdecl_mozilla::TimeStamp::Now_bool_]
mov rax, qword [rsi + 0x10]
mov qword [rdi + 0x10], rax
movups xmm0, xmmword [rsi]
movups xmmword [rdi], xmm0
xorps xmm0, xmm0
movups xmmword [rsp + 0x538], xmm0
mov word [rsp + 0x548], 0x101
mov byte [rsp + 0x550], 0
jmp 0x140005a8c
mov rax, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, rax
cmp rcx, 0x20
jae 0x140006123
mov rcx, rax
lea rbx, [rsp + 0x190]
jmp 0x140005abc
lea rcx, [rsp + 0x2a0]
call int.140033900
jmp 0x140005c34
lea rsi, [rsp + 0x4e0]
mov rcx, rsi
mov dl, 1
call qword [sym.imp.mozglue.dll_private:_static_class_mozilla::TimeStamp___cdecl_mozilla::TimeStamp::Now_bool_]
mov rax, qword [rsi + 0x10]
mov qword [rsp + 0x548], rax
movups xmm0, xmmword [rsi]
movups xmmword [rsp + 0x538], xmm0
movzx eax, byte [rsp + 0x531]
cmp qword [rsp + rax*8 + 0x520], 0
sete al
add al, al
or al, 1
mov byte [rsp + 0x550], al
mov rsi, qword [rsp + 0x508]
test rsi, rsi
je 0x140006141
mov rcx, rsi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
mov ecx, 1
lea rdi, [rsp + 0x4e0]
mov qword [rdi], rsi
mov qword [rdi + 8], rax
mov dword [rdi + 0x10], ecx
lea rax, [rsp + 0x578]
mov qword [rsp + 0x28], rax
lea rcx, [rsp + 0x68]
mov rdx, rdi
lea r8, [rsp + 0x510]
lea r9, [rsp + 0x518]
call qword [sym.imp.mozglue.dll____AddMarker_UTextMarker_markers_baseprofiler_mozilla__V__basic_string_DU__char_traits_D_std__V__allocator_D_2]
cmp dword [rdi + 0x10], 2
je 0x140006151
lea rdi, [rsp + 0x2a0]
lea rbx, [rsp + 0x190]
jmp 0x140005c42
mov rax, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, rax
cmp rcx, 0x20
jae 0x140006123
mov rcx, rax
mov r13d, dword [rsp + 0x4c]
lea rdi, [rsp + 0x2a0]
lea rbx, [rsp + 0x190]
jmp 0x140005c6f
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
lea rax, [rsp + 0x4e0]
mov byte [rax], 0
lea rbx, [rsp + 0x4e0]
jmp 0x140005938
xor eax, eax
lea rsi, [0x140057e22]
xor ecx, ecx
jmp 0x14000609d
mov rcx, qword [rsp + 0x4e0]
test rcx, rcx
je 0x1400060e0
call qword [sym.imp.mozglue.dll_free]
jmp 0x1400060e0