Function at 0x446573
Capabilities:
Get common file path

Disassembly:
sub esp, 0x86c
lea eax, [esp + 0x660]
push ebx
push ebp
push esi
push edi
push 0x208
xor ebx, ebx
mov esi, ecx
push ebx
push eax
call fcn.004183a0
mov eax, dword [esi + 4]
add esp, 0xc
mov dword [esi + 8], ebx
test eax, eax
je 0x4465a6
xor ecx, ecx
mov word [eax], cx
lea eax, [esp + 0x670]
push eax
push ebx
push ebx
push 0x1a
push ebx
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
jns 0x4465c4
xor al, al
jmp 0x44684f
lea eax, [esp + 0x670]
mov dword [esp + 0x10], ebx
push eax
push 0x463a40
mov ebp, 0x103
mov dword [esp + 0x1c], ebx
lea eax, [esp + 0x258]
mov dword [esp + 0x20], ebx
push ebp
push eax
mov dword [esp + 0x2c], 0x10000
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], ebx
mov byte [esp + 0x44], bl
call fcn.0041144b
add esp, 0x10
lea eax, [esp + 0x250]
lea ecx, [esp + 0x10]
push eax
call fcn.004146b1
test al, al
jne 0x44662f
xor esi, esi
jmp 0x44681e
lea ecx, [esp + 0x38]
call fcn.0040b6e3
lea ecx, [esp + 0x458]
call fcn.0040b6e3
jmp 0x44666c
push str.Path
lea ecx, [esp + 0x3c]
call fcn.00411d77
test eax, eax
jne 0x44666c
mov eax, dword [esp + 0x3c]
lea ecx, [esp + 0x458]
add eax, 0xa
push eax
call fcn.0040c54b
push ecx
lea eax, [esp + 0x3c]
push eax
lea ecx, [esp + 0x18]
call fcn.0041463b
test eax, eax
jne 0x446646
lea ecx, [esp + 0x10]
call fcn.00414771
push dword [esp + 0x45c]
lea eax, [esp + 0x674]
mov edi, ebx
push eax
push str._sMozillaFirefox_sprefs.js
lea eax, [esp + 0x25c]
push ebp
push eax
call fcn.0041144b
add esp, 0x14
lea eax, [esp + 0x250]
lea ecx, [esp + 0x10]
push eax
call fcn.004146b1
test al, al
je 0x4467db
push ecx
lea eax, [esp + 0x3c]
push eax
lea ecx, [esp + 0x18]
call fcn.0041463b
test eax, eax
je 0x4467cd
push 0x20
pop ebp
push str._network.proxy.http__
push dword [esp + 0x40]
call fcn.0041779d
pop ecx
pop ecx
test eax, eax
je 0x44672e
add eax, 0x28
push 0x463af8
push eax
call fcn.0041779d
pop ecx
pop ecx
test eax, eax
je 0x44672e
add eax, 2
mov ecx, esi
push eax
call fcn.0040c54b
push 0x463af8
mov ecx, esi
call fcn.00411d77
push eax
mov ecx, esi
call fcn.0040778e
jmp 0x4467b6
push 0x463afc
push dword [esp + 0x40]
call fcn.0041779d
mov edx, eax
pop ecx
pop ecx
test edx, edx
je 0x44678c
add edx, 0x34
jmp 0x44674c
add edx, 2
cmp word [edx], bp
je 0x446749
mov ecx, esi
call fcn.00401782
test al, al
jne 0x44678c
push edx
call fcn.00425442
push eax
push 0x463b34
lea eax, [esp + 0x25c]
push 0x103
push eax
call fcn.0041144b
add esp, 0x14
lea eax, [esp + 0x250]
mov ecx, esi
push eax
call fcn.0040c7b8
push str._network.proxy.type__
push dword [esp + 0x40]
call fcn.0041779d
pop ecx
pop ecx
test eax, eax
je 0x4467b6
add eax, 0x2a
jmp 0x4467a8
add eax, 2
cmp word [eax], bp
je 0x4467a5
push eax
call fcn.00425442
pop ecx
mov edi, eax
push ecx
lea eax, [esp + 0x3c]
push eax
lea ecx, [esp + 0x18]
call fcn.0041463b
test eax, eax
jne 0x4466e2
lea ecx, [esp + 0x10]
call fcn.00414771
cmp edi, 1
je 0x4467ea
mov eax, dword [esi + 4]
mov dword [esi + 8], ebx
test eax, eax
je 0x4467ea
xor ecx, ecx
mov word [eax], cx
mov ecx, esi
call fcn.00401782
mov bl, al
mov eax, 0x45bcb8
xor bl, 1
mov dword [esp + 0x458], eax
xor esi, esi
mov dword [esp + 0x38], eax
mov dword [esp + 0x45c], esi
mov dword [esp + 0x460], esi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x40], esi
lea ecx, [esp + 0x10]
call fcn.00414771
cmp dword [esp + 0x18], 0
je 0x44683c
push dword [esp + 0x18]
call fcn.004166cf
pop ecx
mov dword [esp + 0x18], esi
cmp dword [esp + 0x2c], 0
je 0x44684d
push dword [esp + 0x2c]
call fcn.004166cf
pop ecx
mov al, bl
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x86c
ret