Function at 0x453560
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x58502d
mov eax, dword fs:[0]
push eax
sub esp, 0x224
mov eax, dword [0x5e95e0]
xor eax, esp
mov dword [esp + 0x21c], eax
push esi
push edi
mov eax, dword [0x5e95e0]
xor eax, esp
push eax
lea eax, [esp + 0x230]
mov dword fs:[0], eax
cmp dword [ebx + 0x58], 0
jne 0x4538cd
push str._favorites3.txt
lea eax, [esp + 0x14]
push 0x5f287c
push eax
mov dword [ebx + 0x58], 1
call fcn.00401ba0
add esp, 0xc
mov dword [esp + 0x238], 0
mov ecx, dword [esp + 0x10]
call fcn.004600b0
test eax, eax
jne 0x453772
push ebx
call fcn.00454010
test eax, eax
je 0x45364f
call fcn.00530e1f
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x453607
push 0x80004005
call fcn.00401f70
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0xc], eax
push 0x5f23e0
lea edi, [esp + 0x10]
mov esi, 0x5a6adc
mov byte [esp + 0x23c], 1
call fcn.00413ca0
mov ecx, dword [ebx + 0x14]
push 0
push ecx
mov edx, edi
push edx
push ebx
call fcn.004539d0
mov byte [esp + 0x238], 0
mov eax, dword [esp + 0xc]
jmp 0x4536c8
push str.inittoolbarurls.txt
lea ecx, [esp + 0x1c]
push 0x5f2878
push ecx
call fcn.00401ba0
add esp, 0xc
mov byte [esp + 0x238], 2
mov ecx, dword [esp + 0x18]
call fcn.004600b0
test eax, eax
je 0x4536bc
lea ecx, [esp + 0xc]
call fcn.004026e0
lea edx, [esp + 0xc]
mov byte [esp + 0x238], 3
mov eax, dword [esp + 0x18]
push edx
push eax
call fcn.0045f9b0
add esp, 8
test eax, eax
je 0x4536b3
push 0
lea ecx, [ebx + 0x18]
push ecx
lea edx, [esp + 0x14]
push edx
push ebx
call fcn.004539d0
lea ecx, [esp + 0xc]
call fcn.004a4690
mov byte [esp + 0x238], 0
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4536e4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push str._favorites.txt
lea ecx, [esp + 0x18]
push 0x5f287c
push ecx
call fcn.00401ba0
add esp, 0xc
mov byte [esp + 0x238], 4
mov ecx, dword [esp + 0x14]
call fcn.004600b0
test eax, eax
je 0x45372e
push ebx
call fcn.00454410
mov edi, ebx
call fcn.00454870
mov byte [esp + 0x238], 0
mov eax, dword [esp + 0x14]
jmp 0x453886
push 0
push 6
lea edx, [esp + 0x24]
push edx
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
je 0x45375a
push 0
lea eax, [ebx + 0xc]
push eax
lea ecx, [esp + 0x24]
push ecx
lea edx, [ebx + 0x18]
push edx
call fcn.00452940
add esp, 0x10
mov edi, ebx
call fcn.00454870
mov byte [esp + 0x238], 0
mov eax, dword [esp + 0x14]
jmp 0x453886
call fcn.00530e1f
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x45378c
push 0x80004005
call fcn.00401f70
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0xc], eax
lea ecx, [esp + 0xc]
mov byte [esp + 0x238], 5
mov edx, dword [esp + 0x10]
push ecx
push edx
call fcn.0045f9b0
add esp, 8
test eax, eax
je 0x4537ff
cmp dword [0x5f21d4], 0x3010b0
jge 0x4537ec
push 0x5a6ab0
push 0x5a6b3c
lea eax, [esp + 0x14]
push eax
call fcn.0041cd10
mov edx, dword [esp + 0x10]
push 1
lea ecx, [esp + 0x10]
call fcn.0045fed0
add esp, 4
push 0
lea ecx, [ebx + 0x18]
push ecx
lea edx, [esp + 0x14]
push edx
push ebx
call fcn.004539d0
jmp 0x45387a
call fcn.00530e1f
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x453819
push 0x80004005
call fcn.00401f70
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x14], eax
mov byte [esp + 0x238], 6
mov ecx, dword [esp + 0x10]
push ecx
lea edx, [esp + 0x18]
push 0x5a6b44
push edx
call fcn.00405480
mov esi, dword [esp + 0x20]
add esp, 0xc
push 0
push 0
push esi
call fcn.00539414
lea eax, [esi - 0x10]
mov byte [esp + 0x238], 5
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x45387a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x238], 0
mov eax, dword [esp + 0xc]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4538a2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x238], 0xffffffff
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4538cd
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x230]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [esp + 0x21c]
xor ecx, esp
call fcn.00552101
mov esp, ebp
pop ebp
ret