Function at 0x1005d540
Capabilities:
Query environment variable
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x520
mov esi, edx
mov dword [esp + 0xc], ecx
mov edx, dword [ebp + 8]
mov eax, dword [0x1009a00c]
xor eax, ebp
mov dword [esp + 0x518], eax
xor eax, eax
mov dword [esp + 0x34], esi
mov dword [esi], eax
lea ebx, [esp + 0x488]
mov ecx, ebx
push eax
push eax
call fcn.1005e0c0
add esp, 8
lea esi, [esp + 0x498]
mov eax, dword [esp + 0x4a8]
mov ecx, dword [esp + 0x4ac]
xor ecx, dword [esp + 0x4ec]
xor eax, dword [esp + 0x4e8]
or eax, ecx
sete al
je 0x1005d5c9
cmp byte [esp + 0x488], 0x11
je 0x1005d5c9
mov ecx, esi
call fcn.1005ee10
mov ecx, ebx
call fcn.1005e3d0
test al, al
jne 0x1005d588
jmp 0x1005d5b5
test al, al
jne 0x1005dddd
mov edi, dword [esp + 0x489]
mov ecx, esi
call fcn.1005ee10
mov ecx, ebx
call fcn.1005e3d0
test al, al
je 0x1005d5d8
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
mov eax, dword [eax]
cmp edi, eax
je 0x1005d5fa
test eax, eax
jne 0x1005d588
movsd xmm0, qword [0x100882f8]
movapd xmm1, xmmword [esp + 0x40]
andpd xmm1, xmm0
movapd xmmword [esp + 0x40], xmm1
mov eax, dword [esp + 0x4ac]
xor eax, dword [esp + 0x4ec]
mov ecx, dword [esp + 0x4a8]
xor ecx, dword [esp + 0x4e8]
or ecx, eax
je 0x1005ddf7
cmp byte [esp + 0x488], 0x12
jne 0x1005ddf7
movsd xmm0, qword [esp + 0x489]
movsd qword [esp + 0x28], xmm0
mov ecx, esi
call fcn.1005ee10
mov ecx, ebx
call fcn.1005e3d0
test al, al
je 0x1005d653
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 4]
movsd xmm0, qword [eax]
ucomisd xmm0, qword [esp + 0x28]
ja 0x1005d588
jmp 0x1005de1a
movzx eax, byte [esp + 0x488]
cmp eax, 4
je 0x1005d7e7
cmp eax, 0xb
jne 0x1005de9d
mov dword [esp + 0x30], edx
mov eax, dword [esp + 0x489]
mov dword [esp + 4], eax
mov ecx, esi
call fcn.1005ee10
mov ecx, ebx
call fcn.1005e3d0
test al, al
je 0x1005d6aa
sub esp, 0x10
mov eax, dword [esp + 0x14]
mov dword [esp + 8], eax
lea eax, [esp + 0x398]
mov dword [esp], eax
mov dword [esp + 0xc], 0
call fcn.1005e200
add esp, 0x10
mov eax, dword [0x1009b4ec]
mov ecx, dword [0x1009a3c8]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x1005e072
cmp byte [0x1009b4e8], 0
mov eax, dword [esp + 0xc]
je 0x1005d761
lea eax, [esp + 0x78]
push eax
push dword [esp + 8]
call sym.mozglue.dll_MozDescribeCodeAddress
add esp, 8
test al, al
je 0x1005d75d
lea eax, [esp + 0x388]
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
lea ecx, [esp + eax]
add ecx, 0x389
mov byte [ecx - 1], 0x20
mov edx, 0xff
sub edx, eax
lea eax, [esp + 0x78]
push eax
push dword [esp + 8]
push 0
push edx
push ecx
call sym.mozglue.dll_MozFormatCodeAddressDetails
add esp, 0x14
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 8]
mov dword [esp + 4], eax
lea ecx, [esp + 0x78]
lea edx, [esp + 0x388]
call fcn.1005e170
mov ecx, dword [esp + 4]
lea edx, [esp + 0x78]
call fcn.1004f5a0
mov dword [esp + 8], eax
lea edx, [esp + 0x68]
mov ecx, dword [esp + 4]
call fcn.1004f7c0
mov ecx, dword [esp + 0x3c]
mov edx, 0xffffff00
and ecx, edx
mov dword [esp + 0x3c], ecx
xor edx, edx
inc edx
or ecx, edx
lea edx, [esp + 0x68]
mov dword [edx + 4], ecx
mov dword [edx], eax
mov eax, dword [esp + 0x20]
rol eax, 5
mov ecx, dword [esp + 8]
xor eax, ecx
mov dword [edx + 8], ecx
imul eax, eax, 0x9e3779b9
mov dword [esp + 0x20], eax
mov dword [edx + 0xc], eax
lea eax, [esp + 0x78]
cmp byte [eax + 0x40], 0
jne 0x1005e05a
lea ecx, [esp + 0x78]
jmp 0x1005dd8b
mov dword [esp + 0x30], edx
mov eax, dword [esp + 0x489]
mov dword [esp + 0x10], eax
mov ecx, esi
call fcn.1005ee10
mov ecx, ebx
call fcn.1005e3d0
test al, al
je 0x1005d7f6
mov eax, dword [esp + 0x4a8]
mov ecx, dword [esp + 0x4ac]
xor ecx, dword [esp + 0x4ec]
xor eax, dword [esp + 0x4e8]
xor edx, edx
or eax, ecx
mov eax, 0
je 0x1005d85c
cmp byte [esp + 0x488], 5
jne 0x1005d85c
mov eax, dword [esp + 0x489]
mov dword [esp + 0x1c], eax
mov ecx, esi
call fcn.1005ee10
mov ecx, ebx
call fcn.1005e3d0
test al, al
je 0x1005d844
mov eax, dword [esp + 0x1c]
xor edx, edx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov byte [eax], 0
mov eax, dword [esp + 0x4ac]
xor eax, dword [esp + 0x4ec]
mov ecx, dword [esp + 0x4a8]
xor ecx, dword [esp + 0x4e8]
or ecx, eax
je 0x1005d9f9
cmp byte [esp + 0x488], 6
jne 0x1005d9f9
xor eax, eax
cmp eax, 0x200
jb 0x1005d8f6
mov dword [esp + 4], eax
mov ecx, esi
call fcn.1005ee10
mov ecx, ebx
call fcn.1005e3d0
test al, al
je 0x1005d8ab
mov eax, dword [esp + 0x4ac]
xor eax, dword [esp + 0x4ec]
mov ecx, dword [esp + 0x4a8]
xor ecx, dword [esp + 0x4e8]
or ecx, eax
je 0x1005d9f5
cmp byte [esp + 0x488], 6
mov edx, dword [esp + 4]
mov eax, edx
je 0x1005d8a0
jmp 0x1005d9f9
mov edx, dword [esp + 0x489]
mov ecx, dword [esp + 0x48d]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0xc]
mov ecx, dword [ecx]
mov dword [esp + 8], edx
mov byte [ecx + eax], dl
mov dword [esp + 4], 0x200
cmp eax, 0x1ff
je 0x1005d8ab
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0xc]
mov ecx, dword [ecx]
mov edx, dword [esp + 8]
mov byte [eax + ecx + 1], dh
cmp eax, 0x1fd
ja 0x1005d8ab
mov ecx, edx
shr ecx, 0x10
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0xc]
mov ecx, dword [ecx]
mov edx, dword [esp + 0x18]
mov byte [eax + ecx + 2], dl
cmp eax, 0x1fd
je 0x1005d8ab
mov edx, dword [esp + 8]
shr edx, 0x18
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0xc]
mov ecx, dword [ecx]
mov byte [eax + ecx + 3], dl
cmp eax, 0x1fb
ja 0x1005d8ab
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0xc]
mov ecx, dword [ecx]
mov edx, dword [esp + 0x14]
mov byte [eax + ecx + 4], dl
je 0x1005d8ab
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0xc]
mov ecx, dword [ecx]
mov edx, dword [esp + 0x14]
mov byte [eax + ecx + 5], dh
mov ecx, dword [esp + 0x14]
cmp eax, 0x1f9
ja 0x1005d8ab
shr ecx, 0x10
mov edx, dword [esp + 0xc]
mov edx, dword [edx + 0xc]
mov edx, dword [edx]
mov byte [eax + edx + 6], cl
cmp eax, 0x1f9
je 0x1005d8ab
mov edx, dword [esp + 0x14]
shr edx, 0x18
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0xc]
mov ecx, dword [ecx]
mov byte [eax + ecx + 7], dl
add eax, 8
jmp 0x1005d8a7
mov edx, dword [esp + 4]
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
xor ecx, ecx
mov byte [eax + 0x1ff], cl
mov dword [esp + 0x398], 0
mov dword [esp + 0x39c], 0xf
mov byte [esp + 0x388], cl
mov eax, dword [esp + 0x10]
cmp byte [eax], cl
je 0x1005da4c
test edx, edx
je 0x1005da4c
mov eax, dword [esp + 0x1c]
test al, 0x10
jne 0x1005da7d
test al, 0x20
jne 0x1005da6a
test al, 0x40
je 0x1005df9c
jmp 0x1005dfc7
test edx, edx
jne 0x1005daa8
push dword [esp + 0x10]
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
lea ecx, [esp + 0x388]
push eax
push dword [esp + 0x14]
jmp 0x1005daca
lea ecx, [esp + 0x388]
push 4
push str.get
call fcn.10009d00
push dword [esp + 0x10]
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
lea ecx, [esp + 0x388]
push eax
push dword [esp + 0x14]
call fcn.10009d00
lea ecx, [esp + 0x388]
push 0x2e
call fcn.10017250
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov dword [esp + 4], eax
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
lea ecx, [esp + 0x388]
push eax
push dword [esp + 8]
call fcn.10009d00
mov edx, dword [esp + 0x4ac]
mov eax, dword [esp + 0x4a8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x4ec]
mov ecx, dword [esp + 0x4e8]
mov dword [esp + 8], ecx
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], eax
xor edx, eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
xor eax, ecx
mov dword [esp + 0x10], 0
or eax, edx
mov al, byte [esp + 0x488]
je 0x1005ddbe
mov dword [esp + 0x24], 0
cmp al, 8
jne 0x1005db81
mov eax, dword [esp + 0x489]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x48d]
mov dword [esp + 0x24], eax
mov ecx, esi
call fcn.1005ee10
mov ecx, ebx
call fcn.1005e3d0
test al, al
je 0x1005db40
mov eax, dword [esp + 0x4ac]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x4a8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x4ec]
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x4e8]
mov al, byte [esp + 0x488]
mov byte [esp + 8], al
mov eax, dword [esp + 4]
xor eax, ecx
mov edx, dword [esp + 0x18]
xor edx, dword [esp + 0x14]
or edx, eax
mov eax, 0
mov byte [esp + 0x60], al
mov byte [esp + 0x64], al
je 0x1005ddcb
mov al, byte [esp + 8]
cmp al, 9
jne 0x1005dc03
mov eax, dword [esp + 0x489]
mov dword [esp + 0x60], eax
xor eax, eax
inc eax
mov dword [esp + 0x64], eax
mov ecx, esi
call fcn.1005ee10
mov ecx, ebx
call fcn.1005e3d0
test al, al
je 0x1005dbc2
mov eax, dword [esp + 0x4ac]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x4a8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x4ec]
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x4e8]
mov al, byte [esp + 0x488]
mov byte [esp + 8], al
mov eax, dword [esp + 4]
xor eax, ecx
mov edx, dword [esp + 0x18]
xor edx, dword [esp + 0x14]
or edx, eax
mov eax, 0
mov byte [esp + 0x58], al
mov byte [esp + 0x5c], al
je 0x1005ddd4
mov al, byte [esp + 8]
cmp al, 0xa
jne 0x1005dc85
mov eax, dword [esp + 0x489]
mov dword [esp + 0x58], eax
xor eax, eax
inc eax
mov dword [esp + 0x5c], eax
mov ecx, esi
call fcn.1005ee10
mov ecx, ebx
call fcn.1005e3d0
test al, al
je 0x1005dc44
mov eax, dword [esp + 0x4ac]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x4a8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x4ec]
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x4e8]
mov al, byte [esp + 0x488]
mov byte [esp + 8], al
mov edx, dword [esp + 0x14]
xor edx, dword [esp + 0x18]
xor ecx, dword [esp + 4]
xor eax, eax
mov byte [esp + 0x50], al
mov byte [esp + 0x54], al
or ecx, edx
je 0x1005dcce
cmp byte [esp + 8], 1
jne 0x1005dcce
mov eax, dword [esp + 0x489]
mov dword [esp + 0x50], eax
xor eax, eax
inc eax
mov dword [esp + 0x54], eax
mov ecx, esi
call fcn.1005ee10
mov ecx, ebx
call fcn.1005e3d0
test al, al
je 0x1005dcbc
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x1c]
shr al, 7
movzx eax, al
mov dword [esp + 8], eax
lea ecx, [esp + 0x78]
lea edx, [esp + 0x388]
lea eax, [esp + 0x50]
push eax
lea eax, [esp + 0x5c]
push eax
lea eax, [esp + 0x68]
push eax
push dword [esp + 0x30]
push dword [esp + 0x20]
push dword [esp + 0x1c]
call fcn.1005e270
add esp, 0x18
mov ecx, dword [esp + 4]
lea edx, [esp + 0x78]
call fcn.1004f5a0
mov dword [esp + 8], eax
lea edx, [esp + 0x68]
mov ecx, dword [esp + 4]
call fcn.1004f7c0
mov ecx, dword [esp + 0x38]
mov edx, 0xffffff00
and ecx, edx
mov dword [esp + 0x38], ecx
xor edx, edx
inc edx
or ecx, edx
lea edx, [esp + 0x68]
mov dword [edx + 4], ecx
mov dword [edx], eax
mov eax, dword [esp + 0x20]
rol eax, 5
mov ecx, dword [esp + 8]
xor eax, ecx
mov dword [edx + 8], ecx
imul eax, eax, 0x9e3779b9
mov dword [esp + 0x20], eax
mov dword [edx + 0xc], eax
lea eax, [esp + 0x78]
cmp byte [eax + 0x40], 0
jne 0x1005e066
lea ecx, [esp + 0x78]
call fcn.100326c0
lea ecx, [esp + 0x388]
call fcn.100326c0
mov edx, dword [esp + 0x30]
inc edx
mov eax, dword [esp + 0x4ac]
xor eax, dword [esp + 0x4ec]
mov ecx, dword [esp + 0x4a8]
xor ecx, dword [esp + 0x4e8]
or ecx, eax
jne 0x1005d681
jmp 0x1005dea5
mov dword [esp + 0x24], 0
jmp 0x1005db81
mov al, byte [esp + 8]
jmp 0x1005dc03
mov al, byte [esp + 8]
jmp 0x1005dc85
mov ecx, dword [esp + 0x518]
xor ecx, ebp
call fcn.100468e0
mov eax, dword [esp + 0x34]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push 2
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
add esp, 4
push str.expected_a_Time_entry
push str.ProfileBuffer_parse_error:__s
push eax
call fcn.1005e120
add esp, 0xc
jmp 0x1005d588
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 8]
mov dword [esp + 4], eax
lea ecx, [esp + 0x78]
mov edx, str._root_
call fcn.1005e170
mov ecx, dword [esp + 4]
lea edx, [esp + 0x78]
call fcn.1004f5a0
xor ecx, ecx
mov byte [esp + 0x68], cl
mov byte [esp + 0x6c], cl
mov dword [esp + 0x70], eax
imul eax, eax, 0x9e3779b9
mov dword [esp + 0x20], eax
mov dword [esp + 0x74], eax
lea eax, [esp + 0x78]
cmp byte [eax + 0x40], cl
jne 0x1005e045
lea ecx, [esp + 0x78]
call fcn.100326c0
mov eax, dword [esp + 0x4ac]
xor eax, dword [esp + 0x4ec]
mov ecx, dword [esp + 0x4a8]
xor ecx, dword [esp + 0x4e8]
or ecx, eax
je 0x1005d588
xor edx, edx
jmp 0x1005d681
test edx, edx
je 0x1005d588
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 8]
lea edx, [esp + 0x68]
call fcn.1004f7c0
mov dword [esp + 4], eax
mov eax, dword [esp + 0x4a8]
mov ecx, dword [esp + 0x4ac]
xor ecx, dword [esp + 0x4ec]
xor eax, dword [esp + 0x4e8]
or eax, ecx
sete al
cmp byte [esp + 0x488], 0x10
setne cl
or cl, al
mov byte [esp + 8], cl
jne 0x1005df13
movsd xmm0, qword [esp + 0x489]
movapd xmmword [esp + 0x40], xmm0
mov ecx, esi
call fcn.1005ee10
lea ecx, [esp + 0x488]
call fcn.1005e3d0
test al, al
je 0x1005defc
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x78]
mov dword [eax], ecx
add ecx, 4
mov dword [esp + 0x14], ecx
xor eax, eax
mov edx, 0x10088748
push eax
push 0x10088750
call fcn.1000c950
add esp, 8
lea eax, [esp + 0x78]
mov dword [eax + 4], 1
mov ecx, dword [esp + 0x14]
mov edx, 0x10088748
xor eax, eax
push eax
push dword [esp + 8]
call fcn.1000cbd0
add esp, 8
xor edx, edx
inc edx
lea ecx, [esp + 0x78]
movsd xmm0, qword [esp + 0x28]
call fcn.1005ee80
cmp byte [esp + 8], 0
je 0x1005dfda
mov eax, dword [esp + 0x78]
mov dword [esp + 8], eax
mov ecx, dword [esp + 8]
add ecx, 4
mov edx, 0x100887a0
call fcn.10017480
mov eax, dword [esp + 0x34]
mov dword [eax], edi
jmp 0x1005d588
push dword [esp + 0x10]
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
lea ecx, [esp + 0x388]
push eax
push dword [esp + 0x14]
call fcn.10009d00
lea ecx, [esp + 0x388]
push 0x20
jmp 0x1005daa3
lea ecx, [esp + 0x388]
push 4
push str.set
jmp 0x1005da78
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x28], eax
cmp eax, 2
jne 0x1005dff1
mov eax, dword [esp + 0x78]
mov dword [esp + 8], eax
jmp 0x1005e021
mov eax, dword [esp + 0x78]
mov dword [esp + 8], eax
add eax, 4
mov dword [esp + 4], eax
add dword [esp + 0x28], 0xfffffffe
mov ecx, dword [esp + 4]
mov edx, 0x10088748
push 0x10088758
call fcn.10015ef0
add esp, 4
inc dword [esp + 0x28]
jne 0x1005e005
mov dword [esp + 0x7c], 3
mov eax, dword [esp + 8]
lea ecx, [eax + 4]
mov edx, 0x10088748
movapd xmm0, xmmword [esp + 0x40]
call fcn.1005d460
jmp 0x1005df80
mov dword [sym.mozglue.dll_gMozCrashReason], str.MOZ_RELEASE_ASSERT_is_N____
int3
mov dword [sym.mozglue.dll_gMozCrashReason], str.MOZ_RELEASE_ASSERT_is_N____
jmp 0x1005e04f
mov dword [sym.mozglue.dll_gMozCrashReason], str.MOZ_RELEASE_ASSERT_is_N____
jmp 0x1005e04f
push 0x1009b4ec
call fcn.10046148
add esp, 4
cmp dword [0x1009b4ec], 0xffffffff
jne 0x1005d702
push str.MOZ_PROFILER_SYMBOLICATE
call dword [sym.imp.api_ms_win_crt_environment_l1_1_0.dll_getenv]
add esp, 4
test eax, eax
jne 0x1005e0a2
xor eax, eax
jmp 0x1005e0a8
cmp byte [eax], 0
setne al
mov byte [0x1009b4e8], al
push 0x1009b4ec
call fcn.100460fe
add esp, 4
jmp 0x1005d702