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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x42c80e
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x350
mov eax, dword [0x43b3f0]
push ebx
push esi
push edi
mov dword [esp + 0x354], eax
mov dword [esp + 0x10], ecx
xor eax, eax
mov byte [esp + 0x120], 0
mov ecx, 0x8b
lea edi, [esp + 0x121]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
push 0x43d820
stosb byte es:[edi], al
lea eax, [esp + 0x124]
push str._supdate2_
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
mov esi, dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
add esp, 0xc
lea ecx, [esp + 0x120]
push ecx
call esi
test eax, eax
jne 0x40549d
push eax
lea edx, [esp + 0x124]
push edx
call dword [sym.imp.KERNEL32.DLL_CreateDirectoryA]
push 0x14
call fcn.0041de2d
add esp, 4
mov dword [esp + 0xc], eax
xor ecx, ecx
cmp eax, ecx
mov dword [esp + 0x364], ecx
je 0x4054c5
mov ecx, eax
call fcn.00402130
mov dword [esp + 0xc], eax
jmp 0x4054c9
mov dword [esp + 0xc], ecx
mov ecx, dword [0x43ef20]
push 7
mov dword [esp + 0x368], 0xffffffff
mov dword [0x43c894], 7
call fcn.004037d0
mov ecx, dword [0x43ef20]
push 0x15
mov dword [0x43c894], 0x15
call fcn.004037d0
push 0x43e55c
call esi
test eax, eax
mov esi, dword [sym.imp.KERNEL32.DLL_lstrcpyA]
mov ebx, dword [sym.imp.KERNEL32.DLL_lstrcmpA]
je 0x40552a
mov eax, dword [0x43d4f8]
cmp eax, dword [0x43c898]
je 0x4055d7
mov ecx, dword [esp + 0xc]
push 0x43e044
push 0x43da2c
call fcn.00402300
cmp al, 1
jne 0x4055d7
mov ecx, dword [0x43c898]
mov dword [0x43d4f8], ecx
xor eax, eax
mov ecx, 0x41
lea edi, [esp + 0x18]
rep stosd dword es:[edi], eax
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 0x43e044
call fcn.00401990
mov ecx, dword [esp + 0x14]
call fcn.004050b0
push eax
lea edx, [esp + 0x1c]
push edx
call esi
push 0x43c9cc
xor eax, eax
mov ecx, 0x41
mov edi, 0x43c790
push 0x43c8c8
rep stosd dword es:[edi], eax
call ebx
test eax, eax
jne 0x4055a5
push 0x43c9cc
jmp 0x4055aa
push 0x43c8c8
push 0x43c790
call esi
push 0x43c790
push 0x43d0e8
call esi
push 0x43d0e8
lea eax, [esp + 0x1c]
push eax
call ebx
test eax, eax
je 0x4055d7
mov dword [0x43c788], 1
mov ecx, dword [0x43ef20]
push 0x1c
mov dword [0x43c894], 0x1c
call fcn.004037d0
push 0x43e458
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
je 0x40560f
mov ecx, dword [0x43d504]
cmp ecx, dword [0x43c8a4]
je 0x4056bc
mov ecx, dword [esp + 0xc]
push 0x43df40
push 0x43d928
call fcn.00402300
cmp al, 1
jne 0x4056bc
mov edx, dword [0x43c8a4]
xor eax, eax
mov ecx, 0x41
lea edi, [esp + 0x18]
rep stosd dword es:[edi], eax
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 0x43df40
mov dword [0x43d504], edx
call fcn.00401990
mov ecx, dword [esp + 0x14]
call fcn.004050b0
push eax
lea eax, [esp + 0x1c]
push eax
call esi
push 0x43cfe4
xor eax, eax
mov ecx, 0x41
mov edi, 0x43c790
push 0x43cee0
rep stosd dword es:[edi], eax
call ebx
test eax, eax
jne 0x40568a
push 0x43cfe4
jmp 0x40568f
push 0x43cee0
push 0x43c790
call esi
push 0x43c790
push 0x43d3f4
call esi
push 0x43d3f4
lea ecx, [esp + 0x1c]
push ecx
call ebx
test eax, eax
je 0x4056bc
mov dword [0x43c788], 1
mov ecx, dword [0x43ef20]
push 0x28
mov dword [0x43c894], 0x28
call fcn.004037d0
push 0x43e660
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
je 0x4056f4
mov edx, dword [0x43d4fc]
cmp edx, dword [0x43c89c]
je 0x40579f
mov ecx, dword [esp + 0xc]
push 0x43e24c
push 0x43dc34
call fcn.00402300
cmp al, 1
jne 0x40579f
mov eax, dword [0x43c89c]
mov dword [0x43d4fc], eax
xor eax, eax
mov ecx, 0x41
lea edi, [esp + 0x18]
rep stosd dword es:[edi], eax
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 0x43e24c
call fcn.00401990
mov ecx, dword [esp + 0x14]
call fcn.004050b0
push eax
lea ecx, [esp + 0x1c]
push ecx
call esi
push 0x43cbd4
xor eax, eax
mov ecx, 0x41
mov edi, 0x43c790
push 0x43cad0
rep stosd dword es:[edi], eax
call ebx
test eax, eax
jne 0x40576d
push 0x43cbd4
jmp 0x405772
push 0x43cad0
push 0x43c790
call esi
push 0x43c790
push 0x43d1ec
call esi
push 0x43d1ec
lea edx, [esp + 0x1c]
push edx
call ebx
test eax, eax
je 0x40579f
mov dword [0x43c788], 1
mov esi, dword [esp + 0xc]
test esi, esi
je 0x4057b7
mov ecx, esi
call fcn.00402140
push esi
call fcn.0041de58
add esp, 4
mov ecx, dword [esp + 0x10]
call fcn.00404ca0
mov ecx, dword [esp + 0x35c]
mov dword fs:[0], ecx
mov ecx, dword [esp + 0x354]
mov eax, 1
call fcn.0040fed5
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret