Function at 0x437d70
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4d0da6
mov eax, dword fs:[0]
push eax
mov eax, 0x10b0
call fcn.0047bc80
mov eax, dword [0x4fe080]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov byte [ebp - 0x10b5], 0
call fcn.004367d0
mov ecx, edi
call fcn.00436880
lea eax, [ebp - 0x1010]
push eax
push 0
push 0
push 2
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
lea eax, [ebp - 0x10b4]
push eax
call fcn.00413ac0
mov ecx, eax
call fcn.00413b70
cmp dword [eax + 0x14], 8
mov dword [ebp - 4], 0
jb 0x437ded
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x1010]
push eax
call fcn.00409d10
push eax
lea eax, [ebp - 0x810]
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x10a0], 8
jb 0x437e29
push dword [ebp - 0x10b4]
call fcn.0047a557
add esp, 4
xor eax, eax
mov dword [ebp - 0x1014], 7
lea esi, [edi + 0x1010]
mov dword [ebp - 0x1018], 0
mov word [ebp - 0x1028], ax
cmp word [esi], ax
je 0x437e65
mov eax, esi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x437e56
sub eax, edx
sar eax, 1
push eax
push esi
lea ecx, [ebp - 0x1028]
call fcn.004116f0
mov dword [ebp - 4], 1
call fcn.0040d780
mov edx, eax
cmp word [edx], 0
jne 0x437e8a
xor ecx, ecx
jmp 0x437ea8
mov ecx, edx
lea eax, [ecx + 2]
mov dword [ebp - 0x10bc], eax
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x437e95
sub ecx, dword [ebp - 0x10bc]
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x1028]
call fcn.00411400
cmp dword [ebp - 0x1014], 8
lea eax, [ebp - 0x1028]
push 0x4d96e4
cmovae eax, dword [ebp - 0x1028]
push eax
call fcn.0047f649
add esp, 8
mov dword [ebp - 0x10bc], eax
test eax, eax
je 0x438023
cmp dword [ebp - 0x1014], 8
lea eax, [ebp - 0x1028]
cmovae eax, dword [ebp - 0x1028]
push eax
push esi
lea eax, [ebp - 0x810]
push eax
lea eax, [edi + 0x1628]
push eax
call fcn.0040d7d0
mov esi, dword [ebp - 0x10bc]
push eax
push esi
call fcn.0047f5b5
push esi
call fcn.0047bd17
push 0x44
lea eax, [ebp - 0x106c]
push 0
push eax
call fcn.0047bb20
add esp, 0x28
mov dword [ebp - 0x106c], 0x44
lea eax, [ebp - 0x106c]
xorps xmm0, xmm0
movdqu xmmword [ebp - 0x10ac], xmm0
push eax
call dword [sym.imp.KERNEL32.dll_GetStartupInfoW]
or dword [ebp - 0x1040], 1
xor eax, eax
mov word [ebp - 0x103c], ax
xor ecx, ecx
mov eax, dword [ebp - 0x1018]
mov edx, 2
inc eax
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004780a0
add esp, 4
mov edi, eax
cmp dword [ebp - 0x1014], 8
lea eax, [ebp - 0x1028]
cmovae eax, dword [ebp - 0x1028]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
push 0x30
lea eax, [ebp - 0x109c]
push 0
push eax
call fcn.0047bb20
add esp, 0xc
lea ecx, [ebp - 0x109c]
push 1
call fcn.0042c650
lea eax, [ebp - 0x10ac]
push eax
lea eax, [ebp - 0x106c]
push eax
push edi
lea ecx, [ebp - 0x109c]
call fcn.0042c6a0
test eax, eax
jne 0x437ffd
push eax
call fcn.0040dac0
push eax
call fcn.00404240
push eax
call fcn.0043ff60
mov ecx, eax
call fcn.004401d0
jmp 0x43801a
push dword [ebp - 0x10a8]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call esi
push dword [ebp - 0x10ac]
call esi
mov byte [ebp - 0x10b5], 1
push edi
call fcn.0047b041
add esp, 4
cmp dword [ebp - 0x1014], 8
jb 0x43803a
push dword [ebp - 0x1028]
call fcn.0047a557
add esp, 4
mov al, byte [ebp - 0x10b5]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0047b06c
mov esp, ebp
pop ebp
ret