Function at 0x403470
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4656db
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x100bc
call fcn.0045f290
mov eax, dword [0x47f5dc]
xor eax, ebp
mov dword [ebp - 0x18], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov ebx, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
cmp dword [ebx + 0x14], 8
jb 0x4034b6
mov eax, dword [ebx]
jmp 0x4034b8
mov eax, ebx
cmp dword [esi + 0x14], 8
jb 0x4034c2
mov ecx, dword [esi]
jmp 0x4034c4
mov ecx, esi
push eax
push ecx
push str.SaveCompleteConfig_strFileName_s_strConfigFile_s
push 0xda
push str.UpgradeWindow.cpp
call fcn.0040a560
add esp, 0x14
cmp dword [ebx + 0x14], 8
jb 0x4034e7
mov eax, dword [ebx]
jmp 0x4034e9
mov eax, ebx
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x4034f9
test al, 0x10
je 0x403510
push str.SaveCompleteConfig_FAILED_File_Can_not_Find__s
push 0xda
push str.UpgradeWindow.cpp
call fcn.0040a560
add esp, 0xc
mov dword [ebp - 0x1c], 0xf
mov dword [ebp - 0x20], 0
mov byte [ebp - 0x30], 0
mov dword [ebp - 4], 0
lea eax, [ebp - 0x10088]
mov dword [ebp - 0x10094], eax
neg eax
and eax, 3
mov dword [ebp - 0x100c4], 0
mov dword [ebp - 0x100c0], 0
mov dword [ebp - 0x100b4], 0
mov dword [ebp - 0x100b0], 0
lea eax, [ebp + eax - 0x10088]
mov dword [ebp - 0x100ac], 0
mov dword [ebp - 0x10090], eax
lea eax, [ebp - 0x88]
mov dword [ebp - 0x100a4], 0
mov dword [ebp - 0x88], 0
mov dword [ebp - 0x84], 0
mov dword [ebp - 0x1008c], eax
mov byte [ebp - 4], 2
cmp dword [ebx + 0x14], 8
mov dword [ebp - 0x100c8], 0
jb 0x4035bb
mov ecx, dword [ebx]
jmp 0x4035bd
mov ecx, ebx
lea edx, [ebp - 0x100c8]
call fcn.00413f40
mov edi, eax
test edi, edi
je 0x4035fc
cmp byte [edi], 0
jne 0x4035d7
xor ecx, ecx
jmp 0x4035e9
mov ecx, edi
lea edx, [ecx + 1]
lea esp, [esp]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4035e0
sub ecx, edx
push ecx
push edi
lea ecx, [ebp - 0x30]
call fcn.004018c0
push edi
call fcn.0044add4
add esp, 4
cmp dword [ebp - 0x1c], 0x10
lea eax, [ebp - 0x30]
lea ecx, [ebp - 0x100c4]
cmovae eax, dword [ebp - 0x30]
push eax
call fcn.00406350
mov dword [ebp - 4], 1
mov ecx, dword [ebp - 0x100ac]
test ecx, ecx
jne 0x403664
push str.SaveCompleteConfig_FAILED_pRootNode__NULL
push 0xda
push str.UpgradeWindow.cpp
call fcn.0040a560
add esp, 0xc
lea ecx, [ebp - 0x10094]
mov byte [ebp - 4], 0
call fcn.00405850
cmp dword [ebp - 0x1c], 0x10
jb 0x403819
push dword [ebp - 0x30]
call fcn.0044a77c
add esp, 4
jmp 0x403819
push str.cloud
call fcn.00405690
test eax, eax
jne 0x403679
push str.SaveCompleteConfig_FAILED_pUpgradeRootNode__NULL
jmp 0x403629
push str.item
mov ecx, eax
call fcn.00405690
mov edi, eax
test edi, edi
je 0x40376c
push str.file
mov ecx, edi
call fcn.00406590
test eax, eax
je 0x40372d
mov eax, dword [eax + 4]
mov ecx, 0x48209d
test eax, eax
cmovne ecx, eax
cmp byte [ecx], 0
je 0x40372d
push ecx
lea ecx, [ebp - 0x48]
call fcn.00401700
push ecx
lea edx, [ebp - 0x48]
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x60]
call fcn.00413690
add esp, 4
mov byte [ebp - 4], 6
cmp dword [ebp - 0x34], 0x10
jb 0x4036e6
push dword [ebp - 0x48]
call fcn.0044a77c
add esp, 4
cmp dword [esi + 0x14], 8
mov dword [ebp - 0x34], 0xf
mov dword [ebp - 0x38], 0
mov byte [ebp - 0x48], 0
jb 0x403702
mov eax, dword [esi]
jmp 0x403704
mov eax, esi
push dword [esi + 0x10]
push eax
push dword [ebp - 0x50]
push ecx
lea ecx, [ebp - 0x60]
call fcn.00406510
test eax, eax
je 0x403745
mov byte [ebp - 4], 1
cmp dword [ebp - 0x4c], 8
jb 0x40372d
push dword [ebp - 0x60]
call fcn.0044a77c
add esp, 4
push str.item
mov ecx, edi
call fcn.00405700
mov edi, eax
test edi, edi
jne 0x40368f
jmp 0x40376c
push str.true
push ecx
mov edx, edi
lea ecx, [ebp - 0x100c4]
call fcn.00413ea0
add esp, 8
cmp dword [ebp - 0x4c], 8
jb 0x40376c
push dword [ebp - 0x60]
call fcn.0044a77c
add esp, 4
mov dword [ebp - 0x64], 0xf
mov dword [ebp - 0x68], 0
mov byte [ebp - 0x78], 0
push 0
lea eax, [ebp - 0x78]
mov byte [ebp - 4], 7
push 0
push eax
lea edx, [ebp - 0x100c4]
lea ecx, [ebp - 0x100c8]
call fcn.00406780
add esp, 0xc
lea edx, [ebp - 0x78]
mov ecx, ebx
call fcn.00413fd0
cmp dword [esi + 0x14], 8
jb 0x4037b0
mov esi, dword [esi]
push esi
push str.SaveCompleteConfig_strFileName_s_Complete
push 0xda
push str.UpgradeWindow.cpp
call fcn.0040a560
add esp, 0x10
cmp dword [ebp - 0x64], 0x10
jb 0x40363b
push dword [ebp - 0x78]
call fcn.0044a77c
add esp, 4
jmp 0x40363b
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x18]
xor ecx, ebp
call fcn.0044a781
mov esp, ebp
pop ebp
ret 0xc