Function at 0x402c07
Capabilities:
Query environment variable

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x144
mov eax, dword [0x414018]
xor eax, esp
mov dword [esp + 0x140], eax
push ebx
push esi
push edi
mov edi, ecx
mov esi, edx
xor ebx, ebx
mov dword [esp + 0x10], ebx
mov dword [0x4148b8], edi
mov dword [0x4148b4], esi
call fcn.00401b46
test al, al
jne 0x402c6b
push str.Couldnt_read_configuration.
lea ecx, [esp + 0x28]
call fcn.004035b0
lea ecx, [esp + 0x24]
call fcn.00401648
push ebx
push 1
lea ecx, [esp + 0x2c]
call fcn.00404a2b
jmp 0x4034f5
call fcn.0040a262
test al, al
je 0x4034f5
cmp edi, 1
jle 0x402c8a
push dword [esi + 4]
mov ecx, 0x414168
call fcn.00404591
cmp dword [0x41417c], ebx
jne 0x402c9c
call fcn.0040a2ac
jmp 0x4034f5
lea ebx, [esp + 0xdc]
call fcn.00401c2f
push 0xffffffffffffffff
xor esi, esi
push esi
mov ebx, 0x414184
push eax
mov ecx, ebx
call fcn.004044ff
push esi
push 1
lea ecx, [esp + 0xe4]
call fcn.00404a2b
cmp dword [0x414198], esi
jne 0x402cfb
push str.ErrorBadArguments
lea ecx, [esp + 0x28]
call fcn.004035b0
lea eax, [esp + 0x24]
push eax
push 0x4148c4
call fcn.00403b00
mov ecx, eax
call fcn.00401648
push esi
jmp 0x402c5b
call fcn.0040a962
test al, al
jne 0x402d2f
push str.ErrorExtraFileExists
lea ecx, [esp + 0x28]
call fcn.004035b0
lea eax, [esp + 0x24]
push eax
push 0x4148c4
call fcn.00403b00
mov ecx, eax
call fcn.00401648
push 0
jmp 0x402c5b
lea esi, [esp + 0x18]
call fcn.00403add
mov eax, esi
push eax
mov eax, ebx
call fcn.004019ac
test al, al
pop ecx
lea ecx, [esp + 0x24]
jne 0x402d78
push str.ErrorExtraFileRead
call fcn.004035b0
lea eax, [esp + 0x24]
push eax
push 0x4148c4
call fcn.00403b00
mov ecx, eax
call fcn.00401648
push 0
push 1
lea ecx, [esp + 0x2c]
jmp 0x4034e7
push 0x4106c8
call fcn.004035b0
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x18]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x44]
push eax
lea eax, [esp + 0x20]
push eax
call fcn.00403cad
lea edi, [esp + 0x10]
mov esi, eax
call fcn.00403d8a
xor ebx, ebx
push ebx
push 1
lea ecx, [esp + 0x2c]
mov byte [esp + 0x17], al
call fcn.00404a2b
cmp byte [esp + 0xf], bl
je 0x402df3
push str.ErrorNoProductName
lea ecx, [esp + 0x28]
call fcn.004035b0
lea eax, [esp + 0x24]
push eax
push 0x4148c4
call fcn.00403b00
mov ecx, eax
call fcn.00401648
push ebx
jmp 0x402d6d
lea ecx, [esp + 0x18]
call fcn.00402554
push str.ServerURL
lea ecx, [esp + 0x28]
call fcn.004035b0
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x18]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x44]
push eax
lea eax, [esp + 0x20]
push eax
call fcn.00403cad
lea edi, [esp + 0x10]
mov esi, eax
call fcn.00403d8a
xor esi, esi
push ebx
inc esi
push esi
lea ecx, [esp + 0x2c]
mov byte [esp + 0x17], al
call fcn.00404a2b
cmp byte [esp + 0xf], bl
je 0x402e7e
push str.ErrorNoServerURL
lea ecx, [esp + 0x28]
call fcn.004035b0
lea eax, [esp + 0x24]
push eax
push 0x4148c4
call fcn.00403b00
mov ecx, eax
call fcn.00401648
lea ecx, [esp + 0x24]
jmp 0x4034e5
push str.MOZ_CRASHREPORTER_DATA_DIRECTORY
call dword [sym.imp.MOZCRT19.dll__wgetenv]
cmp eax, ebx
pop ecx
je 0x402ee1
cmp word [eax], bx
je 0x402ee1
lea ecx, [esp + 0x24]
call fcn.0040424e
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0xe0]
push eax
call fcn.0040a197
pop ecx
pop ecx
push 0xffffffffffffffff
push ebx
mov edi, 0x41414c
push eax
mov ecx, edi
call fcn.004044ff
push ebx
push esi
lea ecx, [esp + 0xe4]
call fcn.00404a2b
push ebx
push esi
lea esi, [esp + 0x2c]
call fcn.0040516c
xor esi, esi
inc esi
jmp 0x402f8c
push 0x4106c8
lea ecx, [esp + 0x28]
call fcn.004035b0
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x1c]
push eax
call fcn.00403b00
push eax
lea ecx, [esp + 0xe0]
call fcn.004035d2
push ebx
push esi
lea ecx, [esp + 0x2c]
call fcn.00404a2b
push 0x4106d4
lea ecx, [esp + 0x28]
call fcn.004035b0
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x1c]
push eax
call fcn.00403b00
push eax
lea ecx, [esp + 0xfc]
call fcn.004035d2
push ebx
push esi
lea ecx, [esp + 0x2c]
call fcn.00404a2b
lea eax, [esp + 0xdc]
push eax
lea ecx, [esp + 0xfc]
call fcn.0040a7a1
test al, al
pop ecx
mov edi, 0x41414c
jne 0x402f70
mov eax, edi
call fcn.00403602
push ebx
push esi
lea ecx, [esp + 0x100]
call fcn.00404a2b
push ebx
push esi
lea ecx, [esp + 0xe4]
call fcn.00404a2b
cmp dword [0x414160], ebx
je 0x4034b4
mov ecx, edi
call fcn.0040a908
test al, al
je 0x4034b4
call fcn.00401a98
mov ebx, 0x414168
call fcn.0040a962
test al, al
jne 0x402ff4
push str.ErrorDumpFileExists
lea ecx, [esp + 0xe0]
call fcn.004035b0
lea eax, [esp + 0xdc]
push eax
push 0x4148c4
call fcn.00403b00
mov ecx, eax
call fcn.00401648
push 0
push 1
lea ecx, [esp + 0xe4]
jmp 0x4034e7
push str.pending
push 0x4105d8
lea eax, [esp + 0xe4]
push edi
push eax
call fcn.00407769
add esp, 0xc
push eax
lea eax, [esp + 0x11c]
push eax
call fcn.00407769
add esp, 0xc
xor ebx, ebx
xor edi, edi
push ebx
inc edi
push edi
lea ecx, [esp + 0xe4]
call fcn.00404a2b
lea ecx, [esp + 0x114]
call fcn.00401cf1
test al, al
jne 0x403051
push ebx
push edi
lea ecx, [esp + 0x11c]
jmp 0x4034e7
mov esi, str.ServerURL
push esi
lea ecx, [esp + 0xe0]
call fcn.004035b0
lea eax, [esp + 0xdc]
push eax
lea eax, [esp + 0x1c]
push eax
call fcn.00403b00
push eax
lea ecx, [esp + 0x134]
call fcn.004035d2
push ebx
push edi
lea ecx, [esp + 0xe4]
call fcn.00404a2b
push esi
lea ecx, [esp + 0xe0]
call fcn.004035b0
lea eax, [esp + 0xdc]
push eax
lea eax, [esp + 0x1c]
push eax
call fcn.00403c10
push ebx
push edi
lea ecx, [esp + 0xe4]
call fcn.00404a2b
push str.Throttleable
lea ecx, [esp + 0xe0]
call fcn.004035b0
lea eax, [esp + 0xdc]
push eax
lea eax, [esp + 0x1c]
push eax
call fcn.00403b00
push 0x4108a4
mov ecx, eax
call fcn.00404591
push ebx
push edi
lea ecx, [esp + 0xe4]
call fcn.00404a2b
push str.MOZ_CRASHREPORTER_RESTART_XUL_APP_FILE
call dword [sym.imp.MOZCRT19.dll_getenv]
cmp eax, ebx
pop ecx
mov dword [esp + 0x10], eax
je 0x4031bf
cmp byte [eax], bl
je 0x4031bf
mov esi, str.XUL_APP_FILE
lea edi, [esp + 0xf8]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push eax
movsw word es:[edi], word [esi]
call sub.MOZCRT19.dll_strlen
mov esi, eax
pop ecx
lea eax, [esp + 0xf8]
push eax
call sub.MOZCRT19.dll_strlen
pop ecx
add esi, eax
push esi
call dword [sym.imp.MOZCRT19.dll_malloc]
mov esi, eax
cmp esi, ebx
pop ecx
jne 0x403195
push str.Out_of_memory
lea ecx, [esp + 0xe0]
call fcn.004035b0
lea ecx, [esp + 0xdc]
call fcn.00401648
push ebx
push 1
lea ecx, [esp + 0xe4]
call fcn.00404a2b
push ebx
push 1
lea ecx, [esp + 0x138]
call fcn.00404a2b
push ebx
push 1
jmp 0x403045
lea eax, [esp + 0xf8]
push eax
push esi
call sub.MOZCRT19.dll_strcpy
push dword [esp + 0x18]
push esi
call sub.MOZCRT19.dll_strcat
push esi
call dword [sym.imp.MOZCRT19.dll__putenv]
add esp, 0x14
push esi
call dword [sym.imp.MOZCRT19.dll_free]
pop ecx
lea eax, [esp + 0x58]
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], ebx
call fcn.004042ef
push ebx
push ecx
mov edi, str.MOZ_CRASHREPORTER_RESTART_ARG_
lea eax, [esp + 0x60]
push edi
push eax
call fcn.004074da
add esp, 0xc
push eax
call fcn.004036d5
lea eax, [esp + 0x5c]
push eax
lea ecx, [esp + 0x28]
mov dword [esp + 0x14], 1
call fcn.00404fed
cmp dword [esp + 0x3c], 0x10
mov eax, dword [esp + 0x28]
jae 0x403214
lea eax, [esp + 0x28]
push eax
call dword [sym.imp.MOZCRT19.dll_getenv]
pop ecx
push ebx
push 1
lea ecx, [esp + 0x2c]
mov esi, eax
call fcn.00404a2b
cmp esi, ebx
je 0x403329
cmp byte [esi], bl
je 0x403329
push esi
lea ecx, [esp + 0xe0]
call fcn.004035b0
lea eax, [esp + 0xdc]
push eax
lea esi, [esp + 0x4c]
call fcn.0040428f
push ebx
push 1
lea ecx, [esp + 0xe4]
call fcn.00404a2b
push 0x4105ff
lea ecx, [esp + 0xfc]
call fcn.004035b0
lea esi, [esp + 0x5c]
call fcn.004050c6
cmp dword [esp + 0x110], 0x10
mov eax, dword [esp + 0xfc]
jae 0x403299
lea eax, [esp + 0xfc]
mov ebx, dword [esp + 0x10c]
push eax
mov eax, dword [esp + 0xa0]
lea esi, [esp + 0x60]
call fcn.0040626c
push 0
push 1
lea ecx, [esp + 0x100]
call fcn.00404a2b
push dword [esp + 0x10]
lea eax, [esp + 0x5c]
push ecx
push edi
push eax
call fcn.004074da
add esp, 0xc
push eax
call fcn.004036d5
inc dword [esp + 0x10]
mov eax, esi
push eax
lea ecx, [esp + 0xfc]
call fcn.00404fed
cmp dword [esp + 0x110], 0x10
mov eax, dword [esp + 0xfc]
jae 0x403305
lea eax, [esp + 0xfc]
push eax
call dword [sym.imp.MOZCRT19.dll_getenv]
pop ecx
push 0
push 1
lea ecx, [esp + 0x100]
mov esi, eax
call fcn.00404a2b
xor ebx, ebx
test esi, esi
jne 0x403232
push str.MOZ_CRASHREPORTER_URL
call dword [sym.imp.MOZCRT19.dll_getenv]
cmp eax, ebx
pop ecx
je 0x40334a
cmp byte [eax], bl
je 0x40334a
push eax
lea ecx, [esp + 0x134]
call fcn.00404591
push str.Version
lea ecx, [esp + 0x28]
call fcn.004035b0
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x44], eax
lea eax, [esp + 0x18]
mov dword [esp + 0x40], eax
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0xfc]
push eax
lea eax, [esp + 0x20]
push eax
mov dword [esp + 0x1c], 1
call fcn.00403cad
lea edi, [esp + 0x40]
mov esi, eax
call fcn.00403d8a
test al, al
jne 0x4033dd
push str.Version
lea ecx, [esp + 0xe0]
call fcn.004035b0
lea eax, [esp + 0xdc]
push eax
lea eax, [esp + 0x1c]
push eax
mov dword [esp + 0x18], 3
call fcn.00403b00
sub esp, 0x1c
mov ecx, esp
push eax
call fcn.004035d2
call fcn.00402b74
add esp, 0x1c
test al, al
mov byte [esp + 0xf], 1
jne 0x4033e1
mov byte [esp + 0xf], bl
xor edi, edi
inc edi
test byte [esp + 0x10], 2
je 0x4033fe
and dword [esp + 0x10], 0xfffffffd
push ebx
push edi
lea ecx, [esp + 0xe4]
call fcn.00404a2b
test byte [esp + 0x10], 1
je 0x403410
push ebx
push edi
lea ecx, [esp + 0x2c]
call fcn.00404a2b
cmp byte [esp + 0xf], bl
je 0x403494
push str.ErrorEndOfLife
lea ecx, [esp + 0xe0]
call fcn.004035b0
lea eax, [esp + 0xdc]
push eax
push 0x4148c4
call fcn.00403b00
mov ecx, eax
call fcn.00401648
push ebx
push edi
lea ecx, [esp + 0xe4]
call fcn.00404a2b
call fcn.00402518
lea ecx, [esp + 0xa4]
call fcn.00404339
lea eax, [esp + 0xa4]
push eax
mov dword [esp + 0xa8], 0x41099c
call fcn.0040ed56
pop ecx
lea esi, [esp + 0x48]
call fcn.0040426a
push ebx
push edi
lea ecx, [esp + 0x138]
call fcn.00404a2b
jmp 0x403043
lea eax, [esp + 0x48]
push eax
lea eax, [esp + 0x134]
push eax
lea eax, [esp + 0x20]
push eax
call fcn.0040a2f0
add esp, 0xc
test al, al
jne 0x403453
jmp 0x40344e
push str.ErrorNoSettingsPath
lea ecx, [esp + 0xe0]
call fcn.004035b0
lea eax, [esp + 0xdc]
push eax
push 0x4148c4
call fcn.00403b00
mov ecx, eax
call fcn.00401648
lea ecx, [esp + 0xdc]
push ebx
push esi
call fcn.00404a2b
lea eax, [esp + 0x18]
call fcn.00403bdb
mov ecx, dword [esp + 0x14c]
pop edi
pop esi
pop ebx
xor ecx, esp
xor eax, eax
call fcn.0040e380
mov esp, ebp
pop ebp
ret