Function at 0x403043
Capabilities:
Get common file path

Disassembly:
mov eax, 0x412bc4
call fcn.00408b5c
sub esp, 0x438
push ebx
push esi
push edi
mov edi, ecx
mov esi, 0x41a5f8
lea ecx, [ebp - 0x1c]
push esi
mov dword [ebp - 0x10], edi
call fcn.0040102d
xor ebx, ebx
push esi
lea ecx, [ebp - 0x38]
mov dword [ebp - 4], ebx
call fcn.0040102d
push esi
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 1
call fcn.0040102d
push esi
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 2
call fcn.0040102d
lea eax, [edi + 0xcac]
mov byte [ebp - 4], 3
push eax
push 1
push ebx
call fcn.004018b3
lea eax, [ebp - 0x1c]
push eax
push 2
push ebx
call fcn.004018b3
add esp, 0x18
lea eax, [ebp - 0x1c]
lea ecx, [edi + 0xcb8]
push eax
call fcn.004011f5
push ebx
lea eax, [ebp - 0x444]
push 5
push eax
push ebx
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathA]
test eax, eax
je 0x4030f9
lea esi, [edi + 0xcc4]
lea eax, [ebp - 0x444]
push eax
mov ecx, esi
call fcn.00401165
push str.QQ_
mov ecx, esi
call fcn.00401266
jmp 0x40310b
add edi, 0xcc4
push edi
push 3
push ebx
call fcn.004018b3
add esp, 0xc
lea eax, [ebp - 0x38]
push eax
push 5
push ebx
call fcn.004018b3
mov esi, 0x400
lea eax, [ebp - 0x444]
push esi
push ebx
push eax
call fcn.00408bc0
mov edi, dword [sym.imp.USER32.dll_LoadStringA]
add esp, 0x18
lea eax, [ebp - 0x444]
push esi
push eax
push 6
push ebx
call edi
lea eax, [ebp - 0x444]
push eax
call fcn.004097a0
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x44]
push eax
push 7
push ebx
call fcn.004018b3
push esi
lea eax, [ebp - 0x444]
push ebx
push eax
call fcn.00408bc0
add esp, 0x1c
lea eax, [ebp - 0x444]
push esi
push eax
push 8
push ebx
call edi
lea eax, [ebp - 0x444]
push eax
call fcn.004097a0
pop ecx
push eax
lea ecx, [ebp - 0x44]
call fcn.004011cc
push eax
lea ecx, [ebp - 0x38]
push dword [ebp - 0x20]
call fcn.004011cc
push eax
mov eax, dword [ebp - 0x10]
lea ecx, [eax + 0x24]
call fcn.00402c24
lea eax, [ebp - 0x2c]
push eax
push 9
push ebx
call fcn.004018b3
push esi
lea eax, [ebp - 0x444]
push ebx
push eax
call fcn.00408bc0
add esp, 0x18
lea eax, [ebp - 0x444]
push esi
push eax
push 0xa
push ebx
call edi
lea eax, [ebp - 0x444]
push eax
call fcn.004097a0
pop ecx
push eax
lea ecx, [ebp - 0x2c]
call fcn.004011cc
push eax
mov eax, dword [ebp - 0x10]
lea ecx, [eax + 0x24]
call fcn.00402c90
mov eax, dword [ebp - 0x10]
add eax, 0xcd0
push eax
push 4
push ebx
call fcn.004018b3
add esp, 0xc
lea ecx, [ebp - 0x1c]
push 0x41a5f8
call fcn.00401165
lea eax, [ebp - 0x1c]
push eax
push 0xb
push ebx
call fcn.004018b3
add esp, 0xc
lea ecx, [ebp - 0x1c]
call fcn.004011cc
push eax
mov eax, dword [ebp - 0x10]
lea ecx, [eax + 0x24]
call fcn.00402ce3
push 0x41a5f8
lea ecx, [ebp - 0x1c]
call fcn.00401165
lea eax, [ebp - 0x1c]
push eax
push 0xf
push ebx
call fcn.004018b3
add esp, 0xc
lea ecx, [ebp - 0x1c]
call fcn.004011cc
push eax
mov eax, dword [ebp - 0x10]
lea ecx, [eax + 0x24]
call fcn.00402cd1
mov eax, dword [ebp - 0x10]
push 3
lea ecx, [eax + 0x24]
call fcn.00402d07
push esi
lea eax, [ebp - 0x444]
push ebx
push eax
call fcn.00408bc0
add esp, 0xc
lea eax, [ebp - 0x444]
push esi
push eax
push 0x2f
push ebx
call edi
lea eax, [ebp - 0x444]
push eax
call fcn.004097a0
mov ecx, dword [ebp - 0x10]
push esi
push ebx
mov dword [ecx + 0xd04], eax
lea eax, [ebp - 0x444]
push eax
call fcn.00408bc0
add esp, 0x10
lea eax, [ebp - 0x444]
push esi
push eax
push 0x30
push ebx
call edi
lea eax, [ebp - 0x444]
push eax
call fcn.004097a0
pop ecx
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x10]
mov dword [ecx + 0xd0c], eax
lea ecx, [ebp - 0x2c]
call fcn.0040110e
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 1
call fcn.0040110e
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], bl
call fcn.0040110e
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1c]
call fcn.0040110e
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret