Function at 0x404220
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5a23d0
mov eax, dword fs:[0]
push eax
sub esp, 0x68
mov eax, dword [0x62e10c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [0], eax
mov esi, ecx
xor ecx, ecx
mov dword [ebp - 4], 2
push 0xffffffffffffffff
push ecx
lea eax, [esi + 4]
mov word [ebp - 0x28], cx
push eax
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x14], 7
mov dword [ebp - 0x18], 0
call fcn.00401bc0
cmp dword [ebp + 8], 0
mov byte [ebp - 4], 3
je 0x404295
lea eax, [esi + 0x1c]
lea ecx, [ebp - 0x28]
cmp ecx, eax
je 0x404295
push 0xffffffffffffffff
push 0
push eax
call fcn.00401bc0
call fcn.00425045
test al, al
je 0x4042ba
int 0xb3
pop edx
push cs
sal byte [0xaaadb177], 1
or byte [esi + 0x32], bl
push edi
jge 0x4042fe
sbb eax, 0x6642e25
push 0xd4f6276d
jg 0x404246
cmp dword [ebp + 0x50], 8
lea eax, [ebp + 0x3c]
cmovae eax, dword [ebp + 0x3c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4044d2
lea eax, [ebp + 0xc]
push eax
call fcn.004216ec
lea eax, [ebp + 0xc]
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.00427df1
add esp, 0xc
mov byte [ebp - 4], 4
lea edx, [ebp - 0x28]
cmp dword [ebp - 0x14], 8
lea ecx, [ebp + 0x24]
mov ebx, dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
lea eax, [ebp - 0x40]
cmovae edx, dword [ebp - 0x28]
cmp dword [ebp + 0x38], 8
push edx
jae 0x40435a
add byte [ebp + 0x430fc045], cl
push ebp
fadd dword [ebx + 0x5208387d]
cmovae ecx, dword [ebp + 0x24]
cmp dword [ebp - 0x2c], 8
push ecx
cmovae eax, dword [ebp - 0x40]
push 0x6230f8
push eax
call ebx
cmp dword [ebp - 0x14], 8
lea edx, [ebp - 0x28]
lea ecx, [ebp + 0x3c]
cmovae edx, dword [ebp - 0x28]
lea eax, [ebp - 0x40]
cmp dword [ebp + 0x50], 8
push edx
cmovae ecx, dword [ebp + 0x3c]
cmp dword [ebp - 0x2c], 8
push ecx
cmovae eax, dword [ebp - 0x40]
push str.File
push eax
call ebx
call fcn.00424b6b
test al, al
je 0x404376
add eax, 0xf5c50b25
cmc
bound esi, qword cs:[eax]
out dx, eax
fdivr dword [0x92089c06]
sahf
or edi, ebp
popal
inc ebx
in eax, 0x2d
test eax, 0xa81f07bc
and eax, 0xa9e626cc
int3
call fcn.00425000
test al, al
je 0x40439b
jp 0x404372
call 0x1ad8c077
inc ebp
int1
in al, 0x91
lodsd eax, dword [esi]
pop ds
sahf
test dword [edx], edi
inc edi
pop edi
jl 0x404411
fmul qword [edx - 0x4a]
push ss
test al, 0xfd
in eax, dx
cmp dword [ebp + 0x50], 8
lea esi, [ebp + 0x3c]
cmovae esi, dword [ebp + 0x3c]
sub esp, 0x18
mov edx, esp
mov dword [edx + 0x14], 7
mov dword [edx + 0x10], 0
cmp dword [edx + 0x14], 8
jb 0x4043c3
mov eax, dword [edx]
jmp 0x4043c5
mov eax, edx
xor ecx, ecx
mov word [eax], cx
cmp word [esi], cx
je 0x4043e3
mov ecx, esi
lea edi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4043d4
sub ecx, edi
sar ecx, 1
push ecx
push esi
mov ecx, edx
call fcn.00401ac0
lea eax, [ebp - 0x58]
push eax
call fcn.004230d3
add esp, 0x1c
mov byte [ebp - 4], 5
lea edx, [ebp - 0x28]
cmp dword [ebp - 0x14], 8
lea ecx, [ebp - 0x58]
mov esi, dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
lea eax, [ebp - 0x40]
cmovae edx, dword [ebp - 0x28]
cmp dword [ebp - 0x44], 8
push edx
push ebp
fadd dword [ebx + 0x5208bc7d]
cmovae ecx, dword [ebp - 0x58]
cmp dword [ebp - 0x2c], 8
push ecx
cmovae eax, dword [ebp - 0x40]
push str.LastMD5
push eax
call esi
push 0
call fcn.00449e5c
push eax
lea eax, [ebp - 0x70]
push eax
call fcn.00403980
add esp, 0xc
lea edx, [ebp - 0x28]
cmp dword [ebp - 0x14], 8
mov ecx, eax
cmovae edx, dword [ebp - 0x28]
cmp dword [ecx + 0x14], 8
jb 0x404456
mov ecx, dword [ecx]
cmp dword [ebp - 0x2c], 8
lea eax, [ebp - 0x40]
push edx
cmovae eax, dword [ebp - 0x40]
push ecx
push str.CacheTime
push eax
call esi
mov eax, dword [ebp - 0x5c]
cmp eax, 8
jb 0x404480
inc eax
lea ecx, [ebp - 0x70]
push eax
push dword [ebp - 0x70]
call fcn.00401fa0
mov eax, dword [ebp - 0x44]
cmp eax, 8
jb 0x404495
inc eax
lea ecx, [ebp - 0x58]
push eax
push dword [ebp - 0x58]
call fcn.00401fa0
xor eax, eax
mov dword [ebp - 0x44], 7
mov word [ebp - 0x58], ax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x48], 0
cmp eax, 8
jb 0x4044be
inc eax
lea ecx, [ebp - 0x40]
push eax
push dword [ebp - 0x40]
call fcn.00401fa0
xor eax, eax
mov dword [ebp - 0x2c], 7
mov dword [ebp - 0x30], 0
mov word [ebp - 0x40], ax
mov eax, dword [ebp - 0x14]
cmp eax, 8
jb 0x4044e7
inc eax
lea ecx, [ebp - 0x28]
push eax
push dword [ebp - 0x28]
call fcn.00401fa0
xor eax, eax
mov dword [ebp - 0x14], 7
mov word [ebp - 0x28], ax
mov dword [ebp - 0x18], eax
mov eax, dword [ebp + 0x20]
cmp eax, 8
jb 0x40450c
inc eax
lea ecx, [ebp + 0xc]
push eax
push dword [ebp + 0xc]
call fcn.00401fa0
xor eax, eax
mov dword [ebp + 0x20], 7
mov word [ebp + 0xc], ax
mov eax, dword [ebp + 0x38]
mov dword [ebp + 0x1c], 0
cmp eax, 8
jb 0x404535
inc eax
lea ecx, [ebp + 0x24]
push eax
push dword [ebp + 0x24]
call fcn.00401fa0
xor eax, eax
mov dword [ebp + 0x38], 7
mov word [ebp + 0x24], ax
mov eax, dword [ebp + 0x50]
mov dword [ebp + 0x34], 0
cmp eax, 8
jb 0x40455e
inc eax
lea ecx, [ebp + 0x3c]
push eax
push dword [ebp + 0x3c]
call fcn.00401fa0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0043671f
mov esp, ebp
pop ebp
ret 0x4c