Function at 0x411230
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
mov esi, ecx
mov ecx, 0x439e68
push edi
call fcn.00407bb0
test eax, eax
je 0x411647
push dword [ebp + 0x10]
lea ecx, [esi + 0x200]
call fcn.00405a90
mov eax, dword [ebp + 0xc]
mov dword [esi + 0x1fc], eax
test eax, eax
jne 0x41126f
mov ecx, 0x43a14c
call fcn.0040d2b0
mov ecx, esi
call fcn.00411b60
cmp dword [esi + 0xd8], 6
lea edi, [esi + 0x24]
mov ebx, dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
jae 0x411312
mov edx, dword [edi]
mov ecx, 1
mov eax, dword [edx - 8]
sub ecx, dword [edx - 4]
sub eax, 0x104
or ecx, eax
jge 0x4112b0
push 0x104
mov ecx, edi
call fcn.00404280
mov edx, dword [edi]
push edx
push 0
push 0
push 0x8026
push 0
call ebx
mov edx, eax
mov eax, dword [edi]
mov dword [ebp + 0x10], edx
test eax, eax
jne 0x4112cd
xor ecx, ecx
jmp 0x4112e6
push dword [eax - 8]
push eax
call fcn.004182cf
mov ecx, eax
add esp, 8
test ecx, ecx
js 0x411650
mov edx, dword [ebp + 0x10]
mov eax, dword [edi]
cmp ecx, dword [eax - 8]
jg 0x411650
mov dword [eax - 0xc], ecx
xor ebx, ebx
mov eax, dword [edi]
mov word [eax + ecx*2], bx
mov ebx, dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test edx, edx
js 0x411647
mov eax, dword [edi]
cmp dword [eax - 0xc], 0
jmp 0x411321
push edi
push 0x4344e8
mov ecx, esi
call fcn.00410aa0
test eax, eax
je 0x411647
cmp dword [esi + 0xd8], 6
lea edi, [esi + 0x1c]
jae 0x4113c8
mov edx, dword [edi]
mov ecx, 1
mov eax, dword [edx - 8]
sub ecx, dword [edx - 4]
sub eax, 0x104
or ecx, eax
jge 0x41135b
push 0x104
mov ecx, edi
call fcn.00404280
mov edx, dword [edi]
push edx
push 0
push 0
push 0x801c
push 0
call ebx
mov ebx, eax
mov eax, dword [edi]
test eax, eax
jne 0x411375
xor ecx, ecx
jmp 0x41138b
push dword [eax - 8]
push eax
call fcn.004182cf
mov ecx, eax
add esp, 8
test ecx, ecx
js 0x411650
mov eax, dword [edi]
cmp ecx, dword [eax - 8]
jg 0x411650
mov dword [eax - 0xc], ecx
xor edx, edx
mov eax, dword [edi]
mov word [eax + ecx*2], dx
test ebx, ebx
js 0x411647
mov eax, dword [edi]
cmp dword [eax - 0xc], edx
je 0x411647
push edi
lea ecx, [esi + 0x18]
call fcn.00405a90
push edi
lea ecx, [esi + 0x20]
call fcn.00405a90
jmp 0x41140d
push edi
push 0x4344d8
mov ecx, esi
call fcn.00410aa0
test eax, eax
je 0x411647
lea eax, [esi + 0x18]
mov ecx, esi
push eax
push 0x4344c8
call fcn.00410aa0
test eax, eax
je 0x411647
lea eax, [esi + 0x20]
mov ecx, esi
push eax
push 0x4344f8
call fcn.00410aa0
test eax, eax
je 0x411647
mov edx, dword [esi + 0x28]
lea edi, [esi + 0x28]
mov ecx, 1
mov eax, dword [edx - 8]
sub ecx, dword [edx - 4]
sub eax, 0x104
or ecx, eax
jge 0x411435
push 0x104
mov ecx, edi
call fcn.00404280
mov edx, dword [edi]
push edx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
je 0x411647
mov eax, dword [edi]
test eax, eax
jne 0x411453
xor ecx, ecx
jmp 0x411469
push dword [eax - 8]
push eax
call fcn.004182cf
mov ecx, eax
add esp, 8
test ecx, ecx
js 0x411650
mov eax, dword [edi]
cmp ecx, dword [eax - 8]
jg 0x411650
mov dword [eax - 0xc], ecx
xor edx, edx
mov eax, dword [edi]
push edi
mov word [eax + ecx*2], dx
mov ecx, 0x43a16c
call fcn.0040b430
mov ecx, esi
call fcn.00412550
test eax, eax
je 0x411647
lea ebx, [esi + 4]
mov ecx, 0x439e68
push ebx
call fcn.00407bb0
push eax
mov ecx, 0x43a16c
call fcn.0040aec0
test eax, eax
je 0x411647
lea eax, [esi + 8]
mov ecx, 0x43a16c
push eax
push ebx
call fcn.0040a7b0
test eax, eax
je 0x411647
lea eax, [esi + 0xc]
mov ecx, 0x43a16c
push eax
push ebx
call fcn.0040aa50
test eax, eax
je 0x411647
lea edi, [esi + 0x10]
mov ecx, edi
call fcn.00404220
mov edx, dword [edi]
mov ecx, 1
mov eax, dword [edx - 8]
sub ecx, dword [edx - 4]
sub eax, 0x64
or ecx, eax
jge 0x411511
push 0x64
mov ecx, edi
call fcn.00404280
mov edx, dword [edi]
push 0x64
push edx
push 0x68
mov ecx, 0x439e68
call fcn.00407bb0
push eax
call dword [sym.imp.USER32.dll_LoadStringW]
push 0xffffffffffffffff
mov ecx, edi
call fcn.0040b350
mov eax, dword [edi]
cmp dword [eax - 0xc], 0
jne 0x41154c
push edi
push ebx
mov ecx, 0x43a16c
call fcn.0040a8a0
test eax, eax
je 0x411647
push ebx
lea ecx, [esi + 0x9c]
call fcn.00413c00
test eax, eax
je 0x411647
mov edi, dword [ebp + 8]
mov ecx, esi
push edi
call fcn.00411f50
test eax, eax
je 0x411647
mov ecx, esi
call fcn.00411660
test eax, eax
je 0x411647
test edi, edi
je 0x4115ab
mov ecx, esi
call fcn.004118b0
test eax, eax
je 0x411647
push dword [ebp + 0x14]
mov ecx, esi
call fcn.00412190
pop edi
pop esi
mov eax, 1
pop ebx
pop ebp
ret 0x10
lea eax, [esi + 0x38]
push eax
lea ecx, [esi + 0x64]
call fcn.00405a90
lea eax, [esi + 0x3c]
push eax
lea ecx, [esi + 0x68]
call fcn.00405a90
lea eax, [esi + 0x40]
push eax
lea ecx, [esi + 0x6c]
call fcn.00405a90
lea eax, [esi + 0x44]
push eax
lea ecx, [esi + 0x70]
call fcn.00405a90
lea eax, [esi + 0x48]
push eax
lea ecx, [esi + 0x74]
call fcn.00405a90
lea eax, [esi + 0x4c]
push eax
lea ecx, [esi + 0x78]
call fcn.00405a90
lea eax, [esi + 0x50]
push eax
lea ecx, [esi + 0x7c]
call fcn.00405a90
lea eax, [esi + 0x54]
push eax
lea ecx, [esi + 0x80]
call fcn.00405a90
lea eax, [esi + 0x58]
push eax
lea ecx, [esi + 0x84]
call fcn.00405a90
lea eax, [esi + 0x5c]
push eax
lea ecx, [esi + 0x88]
call fcn.00405a90
lea ecx, [esi + 0x60]
push ecx
lea ecx, [esi + 0x8c]
call fcn.00405a90
pop edi
pop esi
mov eax, 1
pop ebx
pop ebp
ret 0x10
pop edi
pop esi
xor eax, eax
pop ebx
pop ebp
ret 0x10
push 0x80070057
call fcn.004037a0
int3