Function at 0x40eaa0
Capabilities:
Check if file exists
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x59d58f
mov eax, dword fs:[0]
push eax
sub esp, 0x888
mov eax, dword [0x627a40]
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 esi, ecx
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x894], eax
mov eax, dword [ebp + 0x28]
mov dword [ebp - 0x890], eax
mov eax, dword [ebp + 0x2c]
mov dword [ebp - 0x88c], eax
xor ecx, ecx
mov dword [ebp - 4], 0
push 0xffffffffffffffff
push ecx
lea eax, [esi + 4]
mov word [ebp - 0x828], cx
push eax
lea ecx, [ebp - 0x828]
mov dword [ebp - 0x814], 7
mov dword [ebp - 0x818], 0
call fcn.00403e10
cmp dword [ebp + 8], 0
mov byte [ebp - 4], 1
je 0x40eb42
add bh, al
test eax, ebp
idiv edi
inc dword [eax]
add byte [eax], al
add al, ch
out dx, eax
push edx
invalid
lea eax, [esi + 0x1c]
lea ecx, [ebp - 0x828]
cmp ecx, eax
je 0x40eb42
push 0xffffffffffffffff
push 0
push eax
call fcn.00403e10
call fcn.00435f30
test al, al
je 0x40eb5c
insd dword es:[edi], dx
push ebp
dec eax
sub al, 0xde
inc eax
xlatb
lahf
sub eax, 0x373c0abd
aas
push ebx
rcl dword [ebx + 0x279efe8]
add byte [eax + eax*8 - 0x30aae08c], al
pushfd
in al, dx
dec ebx
pop ebp
mov byte [ebp + 0xa0351d0], al
jbe 0x40ebac
call fcn.00436550
test al, al
je 0x40eb84
push ebp
iretd
bound edx, qword [edi - 0x66488315]
xor al, 0x4f
jecxz 0x40ebc6
sub dl, byte [edi - 0x57274b75]
call fcn.004362b0
test al, al
je 0x40eba3
jns 0x40eb11
sub edi, 0x503c85bb
das
adc dword [edx], esp
xlatb
pop ecx
dec eax
xchg ebp, eax
push ds
jae 0x40eb8d
cmp eax, 0x4d8d8d2b
or al, 0xe8
movsd dword es:[edi], dword [esi]
cmpsb byte [esi], byte es:[edi]
add dword [eax], eax
lea ecx, [ebp + 0xc]
call fcn.00429250
lea edx, [ebp + 0xc]
lea ecx, [ebp - 0x840]
call fcn.0042a660
mov byte [ebp - 4], 2
call fcn.004360f0
test al, al
je 0x40ebd9
push ebp
or al, 0x8d
invalid
mov bl, 0xdc
dec esi
test eax, 0x8933b2b6
scasd eax, dword es:[edi]
sar bl, 0x74
inc ebx
wait
shr byte [ebx], 0xce
call fcn.00436010
call fcn.00436010
test al, al
je 0x40ebfd
pop ebp
in al, dx
inc esp
fst st(5)
jnp 0x40eb8b
dec esi
fsubrp st(4)
arpl di, si
mov edx, 0x90e3b0db
pushfd
pop edi
insb byte es:[edi], dx
mov ch, 0xdd
stosb byte es:[edi], al
jns 0x40ec41
mov al, byte [0x739ee831]
add al, byte [eax]
call fcn.00435fa0
test al, al
je 0x40ec1f
dec ebx
movsb byte es:[edi], byte [esi]
outsb dx, byte [esi]
salc
arpl si, dx
adc esi, dword [edx + 0x59]
or byte [edx + 0xe], ah
mov ebx, 0xce500e90
jo 0x40ec2c
ja 0x40ebe3
xor eax, edi
push edi
push 0x800
lea eax, [ebp - 0x810]
push 0
push eax
call fcn.00576f50
mov ebx, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [ebp - 0x828]
add esp, 0xc
lea ecx, [ebp - 0x840]
cmp dword [ebp - 0x814], 8
cmovae eax, dword [ebp - 0x828]
cmp dword [ebp - 0x82c], 8
push eax
cmovae ecx, dword [ebp - 0x840]
lea eax, [ebp - 0x810]
push 0x400
push eax
push 0x619488
push str.LastUpdTimeStamp
push ecx
call ebx
lea eax, [ebp - 0x810]
push eax
lea ecx, [ebp - 0x858]
call fcn.004039f0
mov byte [ebp - 4], 3
cmp dword [ebp - 0x848], 0
je 0x40ef09
or byte [eax + 0xf], dl
inc ebx
invalid
mov eax, dword [ebp - 0x894]
lea ecx, [ebp - 0x858]
cmp eax, ecx
je 0x40ecbc
push 0xffffffffffffffff
push 0
push ecx
mov ecx, eax
call fcn.00403e10
call fcn.00435fa0
test al, al
je 0x40ece7
enter 0xfffffffffffff490, 0xffffffffffffffeb
cld
mov bh, 0xcd
jge 0x40ec5b
push ss
mov eax, 0x65bb66d8
ja 0x40ed46
xor edx, dword [edx]
fist dword [edi]
jecxz 0x40ecc5
das
mov ebx, 0x8bd609f9
sbb eax, sym.imp.KERNEL32.dll_GetPrivateProfileStringW
cmp dword [ebp - 0x814], 8
lea eax, [ebp - 0x828]
lea ecx, [ebp - 0x840]
cmovae eax, dword [ebp - 0x828]
cmp dword [ebp - 0x82c], 8
push eax
cmovae ecx, dword [ebp - 0x840]
lea eax, [ebp - 0x810]
push 0x400
push eax
push 0x619488
push str.CacheTime
push ecx
call ebx
cmp word [ebp - 0x810], 0
jne 0x40ed37
xor ecx, ecx
jmp 0x40ed4f
lea ecx, [ebp - 0x810]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40ed40
sub ecx, edx
sar ecx, 1
push ecx
mov ecx, dword [ebp - 0x890]
lea eax, [ebp - 0x810]
push eax
call fcn.00403d10
cmp dword [ebp - 0x814], 8
lea eax, [ebp - 0x828]
lea ecx, [ebp - 0x840]
cmovae eax, dword [ebp - 0x828]
cmp dword [ebp - 0x82c], 8
push eax
cmovae ecx, dword [ebp - 0x840]
lea eax, [ebp - 0x810]
push 0x400
push eax
push 0x619488
push str.File
push ecx
call ebx
cmp word [ebp - 0x810], 0
jne 0x40edb2
xor ecx, ecx
jmp 0x40edcf
lea ecx, [ebp - 0x810]
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40edc0
sub ecx, edx
sar ecx, 1
mov ebx, dword [ebp - 0x88c]
lea eax, [ebp - 0x810]
push ecx
push eax
mov ecx, ebx
call fcn.00403d10
cmp dword [ebx + 0x14], 8
jb 0x40edee
mov eax, dword [ebx]
jmp 0x40edf0
mov eax, ebx
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x40ef09
call fcn.004360f0
test al, al
je 0x40ee29
or eax, 0xf6851e6
dec esp
dec ebx
xor eax, 0x571a4dc3
push edx
in al, 0x98
sbb al, 0xf6
add eax, 0x35c00cde
cli
salc
int1
push esi
mov ebx, dword [ebp - 0x88c]
cmp dword [ebp - 0x814], 8
lea eax, [ebp - 0x828]
lea ecx, [ebp - 0x840]
cmovae eax, dword [ebp - 0x828]
cmp dword [ebp - 0x82c], 8
push eax
cmovae ecx, dword [ebp - 0x840]
lea eax, [ebp - 0x810]
push 0x400
push eax
push 0x619488
push str.LastMD5
push ecx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [ebp - 0x810]
push eax
lea ecx, [ebp - 0x870]
call fcn.004039f0
mov byte [ebp - 4], 4
cmp dword [ebp - 0x860], 0
jne 0x40ee9d
lea ecx, [ebp - 0x870]
xor bl, bl
call fcn.00402d00
jmp 0x40ef0b
cmp dword [ebx + 0x14], 8
jb 0x40eea5
mov ebx, dword [ebx]
sub esp, 0x18
mov ecx, esp
push ebx
call fcn.004039f0
lea ecx, [ebp - 0x888]
call fcn.004205c0
add esp, 0x18
lea ecx, [ebp - 0x870]
mov byte [ebp - 4], 5
call fcn.00429250
lea ecx, [ebp - 0x888]
call fcn.00429250
lea eax, [ebp - 0x888]
push eax
lea ecx, [ebp - 0x870]
call fcn.00404a90
lea ecx, [ebp - 0x888]
mov esi, eax
call fcn.00402d00
test esi, esi
lea ecx, [ebp - 0x870]
sete bl
call fcn.00402d00
jmp 0x40ef0b
xor bl, bl
mov eax, dword [ebp - 0x844]
cmp eax, 8
jb 0x40ef29
inc eax
lea ecx, [ebp - 0x858]
push eax
push dword [ebp - 0x858]
call fcn.00404090
xor eax, eax
mov dword [ebp - 0x844], 7
mov word [ebp - 0x858], ax
mov eax, dword [ebp - 0x82c]
mov dword [ebp - 0x848], 0
cmp eax, 8
jb 0x40ef64
inc eax
lea ecx, [ebp - 0x840]
push eax
push dword [ebp - 0x840]
call fcn.00404090
xor eax, eax
mov dword [ebp - 0x82c], 7
mov word [ebp - 0x840], ax
mov eax, dword [ebp - 0x814]
mov dword [ebp - 0x830], 0
cmp eax, 8
jb 0x40ef9f
inc eax
lea ecx, [ebp - 0x828]
push eax
push dword [ebp - 0x828]
call fcn.00404090
mov ecx, dword [ebp + 0x20]
xor eax, eax
mov dword [ebp - 0x814], 7
mov dword [ebp - 0x818], 0
mov word [ebp - 0x828], ax
cmp ecx, 8
jb 0x40efd1
inc ecx
push ecx
push dword [ebp + 0xc]
lea ecx, [ebp + 0xc]
call fcn.00404090
mov al, bl
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.00570ea9
mov esp, ebp
pop ebp
ret 0x28