Function at 0x412050
Capabilities:
Check if file exists
Create directory

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x509f1e
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0xa8
mov eax, dword [0x546330]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0xa8], edi
xorps xmm0, xmm0
mov dword [ebp - 0x64], 0
xor eax, eax
mov dword [ebp - 0x60], 7
movups xmmword [ebp - 0x74], xmm0
mov word [ebp - 0x74], ax
lea edx, [ebp - 0x74]
mov dword [ebp - 4], eax
lea ecx, [eax + 0x10]
call fcn.00414010
test al, al
jne 0x41210f
mov ecx, dword [ebp - 0x60]
cmp ecx, 8
jb 0x412355
mov edx, dword [ebp - 0x74]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x41234b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4127f6
push ecx
push edx
call fcn.004bd6ef
add esp, 8
xor al, al
jmp 0x4127d3
mov ecx, dword [edi + 0x2c]
lea esi, [edi + 0x1c]
mov eax, SysReAllocString
sub eax, ecx
cmp eax, 4
jb 0x4127f1
cmp dword [esi + 0x14], 8
mov eax, esi
jb 0x41212f
mov eax, dword [esi]
push 4
push str..lnk
push ecx
push eax
push ecx
push dword [ebp - 0xa8]
lea ecx, [ebp - 0x8c]
call fcn.00414940
lea eax, [ebp - 0x8c]
mov byte [ebp - 4], 1
push eax
lea edx, [ebp - 0x74]
lea ecx, [ebp - 0x2c]
call fcn.004140d0
add esp, 4
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x78]
cmp ecx, 8
jb 0x4121a4
mov edx, dword [ebp - 0x8c]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x41219a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4127f6
push ecx
push edx
call fcn.004bd6ef
add esp, 8
push 0x11
xorps xmm0, xmm0
mov dword [ebp - 0x4c], 0
push str.___sourcedesktop
lea ecx, [ebp - 0x5c]
mov dword [ebp - 0x48], 0
movups xmmword [ebp - 0x5c], xmm0
call fcn.00405590
lea ecx, [edi + 0x15c]
mov byte [ebp - 4], 4
lea edx, [ebp - 0x5c]
mov dword [ebp - 0xb4], ecx
push edx
push ecx
push esi
push ecx
lea eax, [edi + 0x34]
mov edx, ecx
push eax
mov dword [ebp - 0xac], eax
add edi, 0xcc
lea eax, [ebp - 0x2c]
mov dword [ebp - 0xb0], edi
push eax
push ecx
mov ecx, edi
call fcn.0041aa90
mov byte [ebp - 4], 3
add esp, 0x1c
mov ecx, dword [ebp - 0x48]
cmp ecx, 8
jb 0x412244
mov edx, dword [ebp - 0x5c]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x41223a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4127f6
push ecx
push edx
call fcn.004bd6ef
add esp, 8
xor eax, eax
mov dword [ebp - 0x4c], 0
mov byte [ebp - 4], al
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x48], 7
mov word [ebp - 0x5c], ax
cmp ecx, 8
jb 0x412295
mov edx, dword [ebp - 0x2c]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x41228b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4127f6
push ecx
push edx
call fcn.004bd6ef
add esp, 8
xor eax, eax
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x60]
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 7
mov word [ebp - 0x2c], ax
cmp ecx, 8
jb 0x4122ea
mov edx, dword [ebp - 0x74]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4122e0
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4127f6
push ecx
push edx
call fcn.004bd6ef
add esp, 8
xorps xmm0, xmm0
mov dword [ebp - 0x34], 0
xor eax, eax
mov dword [ebp - 0x30], 7
movups xmmword [ebp - 0x44], xmm0
mov word [ebp - 0x44], ax
lea edx, [ebp - 0x44]
mov dword [ebp - 4], 5
lea ecx, [eax + 2]
call fcn.00414010
test al, al
jne 0x41235c
mov ecx, dword [ebp - 0x30]
cmp ecx, 8
jb 0x412355
mov edx, dword [ebp - 0x44]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x41234b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x412814
push ecx
push edx
call fcn.004bd6ef
add esp, 8
xor al, al
jmp 0x4127d3
push esi
lea edx, [ebp - 0x44]
lea ecx, [ebp - 0x2c]
call fcn.004140d0
mov edi, eax
add esp, 4
lea eax, [ebp - 0x44]
cmp eax, edi
je 0x4123e0
mov ecx, dword [ebp - 0x30]
cmp ecx, 8
jb 0x4123ae
mov edx, dword [ebp - 0x44]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4123a4
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4127fb
push ecx
push edx
call fcn.004bd6ef
add esp, 8
mov dword [ebp - 0x34], 0
xor eax, eax
mov dword [ebp - 0x30], 7
mov word [ebp - 0x44], ax
movups xmm0, xmmword [edi]
movups xmmword [ebp - 0x44], xmm0
movq xmm0, qword [edi + 0x10]
movq qword [ebp - 0x34], xmm0
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], 7
mov word [edi], ax
mov ecx, dword [ebp - 0x18]
cmp ecx, 8
jb 0x41241a
mov edx, dword [ebp - 0x2c]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x412410
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4127fb
push ecx
push edx
call fcn.004bd6ef
add esp, 8
cmp dword [ebp - 0x34], 0
je 0x41244c
cmp dword [ebp - 0x30], 8
lea eax, [ebp - 0x44]
cmovae eax, dword [ebp - 0x44]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x41244c
cmp dword [ebp - 0x30], 8
lea eax, [ebp - 0x44]
push 0
cmovae eax, dword [ebp - 0x44]
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHCreateDirectoryExW]
mov ecx, dword [esi + 0x10]
mov edi, SysReAllocString
mov eax, edi
sub eax, ecx
cmp eax, 4
jb 0x412800
cmp dword [esi + 0x14], 8
mov eax, esi
jb 0x41246b
mov eax, dword [esi]
push 4
push str..lnk
push ecx
push eax
push ecx
push dword [ebp - 0xa8]
lea ecx, [ebp - 0x2c]
call fcn.00414940
lea eax, [ebp - 0x2c]
mov byte [ebp - 4], 6
push eax
lea edx, [ebp - 0x44]
lea ecx, [ebp - 0x8c]
call fcn.004140d0
add esp, 4
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x18]
cmp ecx, 8
jb 0x4124da
mov edx, dword [ebp - 0x2c]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4124d0
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x412814
push ecx
push edx
call fcn.004bd6ef
add esp, 8
push 0x13
xorps xmm0, xmm0
mov dword [ebp - 0x4c], 0
push str.___sourcestartmenu
lea ecx, [ebp - 0x5c]
mov dword [ebp - 0x48], 0
movups xmmword [ebp - 0x5c], xmm0
call fcn.00405590
mov edx, dword [ebp - 0xb4]
lea eax, [ebp - 0x5c]
push eax
push ecx
push esi
push ecx
push dword [ebp - 0xac]
lea eax, [ebp - 0x8c]
mov byte [ebp - 4], 9
push eax
push ecx
mov ecx, dword [ebp - 0xb0]
call fcn.0041aa90
mov ecx, dword [esi + 0x10]
add esp, 0x1c
sub edi, ecx
cmp edi, 2
jb 0x412805
cmp dword [esi + 0x14], 8
mov eax, esi
jb 0x412543
mov eax, dword [esi]
push ecx
push eax
push 2
push 0x5345b8
push ecx
push dword [ebp - 0xa8]
lea ecx, [ebp - 0x2c]
call fcn.00414940
push str..lnk
lea edx, [ebp - 0x2c]
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0xa4]
call fcn.00413f40
add esp, 4
mov byte [ebp - 4], 0xc
mov ecx, dword [ebp - 0x18]
cmp ecx, 8
jb 0x4125b3
mov edx, dword [ebp - 0x2c]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4125a9
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41280a
push ecx
push edx
call fcn.004bd6ef
add esp, 8
xor eax, eax
mov dword [ebp - 0x1c], 0
mov word [ebp - 0x2c], ax
lea edx, [ebp - 0x44]
lea eax, [ebp - 0xa4]
mov dword [ebp - 0x18], 7
push eax
lea ecx, [ebp - 0x74]
call fcn.004140d0
add esp, 4
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x2c]
push 0
xorps xmm0, xmm0
mov dword [ebp - 0x1c], 0
push 0x5339bc
movups xmmword [ebp - 0x2c], xmm0
mov dword [ebp - 0x18], 0
call fcn.00405590
mov edx, dword [ebp - 0xa8]
lea eax, [ebp - 0x5c]
push eax
push ecx
push esi
push ecx
push dword [ebp - 0xac]
lea eax, [ebp - 0x74]
mov byte [ebp - 4], 0xe
push eax
push ecx
add edx, 0x174
lea ecx, [ebp - 0x2c]
call fcn.0041aa90
mov ecx, dword [ebp - 0x18]
add esp, 0x1c
cmp ecx, 8
jb 0x41266b
mov edx, dword [ebp - 0x2c]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x412661
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41280f
push ecx
push edx
call fcn.004bd6ef
add esp, 8
mov ecx, dword [ebp - 0x60]
cmp ecx, 8
jb 0x4126a5
mov edx, dword [ebp - 0x74]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x41269b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x412814
push ecx
push edx
call fcn.004bd6ef
add esp, 8
mov ecx, dword [ebp - 0x90]
xor eax, eax
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x60], 7
mov word [ebp - 0x74], ax
cmp ecx, 8
jb 0x4126f9
mov edx, dword [ebp - 0xa4]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4126ef
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x412814
push ecx
push edx
call fcn.004bd6ef
add esp, 8
mov ecx, dword [ebp - 0x48]
cmp ecx, 8
jb 0x412733
mov edx, dword [ebp - 0x5c]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x412729
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x412814
push ecx
push edx
call fcn.004bd6ef
add esp, 8
mov ecx, dword [ebp - 0x78]
xor eax, eax
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 7
mov word [ebp - 0x5c], ax
cmp ecx, 8
jb 0x412784
mov edx, dword [ebp - 0x8c]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x41277a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x412814
push ecx
push edx
call fcn.004bd6ef
add esp, 8
mov ecx, dword [ebp - 0x30]
xor eax, eax
mov dword [ebp - 0x7c], 0
mov dword [ebp - 0x78], 7
mov word [ebp - 0x8c], ax
cmp ecx, 8
jb 0x4127d1
mov edx, dword [ebp - 0x44]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4127c7
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x412814
push ecx
push edx
call fcn.004bd6ef
add esp, 8
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004bd6ac
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
call fcn.00404850
call fcn.004e61e1
call fcn.004e61e1
call fcn.00404850
call fcn.00404850
call fcn.004e61e1
call fcn.004e61e1
call fcn.004e61e1
int3