Function at 0x408ec7
Capabilities:
Check if file exists
Get file attributes
Read .ini file

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x3474
call fcn.0041cd70
push ebx
push esi
push edi
call fcn.0040b39a
call fcn.0040ba46
mov esi, 0x428ca8
mov ecx, esi
call fcn.00409cc6
lea ecx, [ebp - 0x118]
mov byte [ebp - 0xd], al
call fcn.00409d71
push dword [ebp + 8]
lea ecx, [ebp - 0x78]
call fcn.00409a71
xor ebx, ebx
lea eax, [ebp - 0x64]
push ebx
push ebx
push eax
push 0x4256b4
lea ecx, [ebp - 0x78]
call fcn.00409ac4
test al, al
je 0x408f66
push dword [ebp - 0x64]
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x48], 0x422420
call fcn.00401876
mov edi, dword [ebp - 0x44]
mov ecx, esi
call fcn.00401876
push dword [0x428cac]
push 0x4256b0
push edi
push 0x4256a8
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
lea ecx, [ebp - 0x48]
jmp 0x408fc0
push ebx
lea eax, [ebp - 0x64]
push ebx
push eax
push 0x425698
lea ecx, [ebp - 0x78]
call fcn.00409ac4
test al, al
je 0x408fca
push dword [ebp - 0x64]
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
lea ecx, [ebp - 0x34]
mov dword [ebp - 0x28], eax
call fcn.004058fe
lea ecx, [ebp - 0x34]
mov dword [ebp - 0x34], 0x422420
call fcn.00401876
mov edi, dword [ebp - 0x30]
mov ecx, esi
call fcn.00401876
push dword [0x428cac]
push ebx
push edi
push 0x4256a8
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
lea ecx, [ebp - 0x34]
call fcn.004016fd
jmp 0x409174
lea eax, [ebp - 0x78]
push eax
call fcn.0040bcf8
test al, al
pop ecx
je 0x408ffc
call fcn.0040b4d9
call fcn.0040b635
push 1
push 1
push ebx
push 0x425684
lea ecx, [ebp - 0x78]
call fcn.00409ac4
test al, al
jne 0x409174
push 1
lea ecx, [ebp - 0x78]
pop edi
push edi
push edi
push ebx
push 0x425674
call fcn.00409ac4
test al, al
je 0x40901d
call fcn.0040b635
jmp 0x409174
call fcn.0040a54d
cmp eax, 0xffffffff
mov dword [ebp - 0xc], eax
jne 0x40918e
mov eax, dword [0x428cd4]
cmp eax, ebx
je 0x40915e
mov edi, dword [sym.imp.OLEAUT32.dll_VariantInit]
push eax
call edi
test eax, eax
je 0x40915e
lea ecx, [ebp - 0x24]
call fcn.004016e9
mov esi, 0x422414
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x24], esi
call fcn.004016e9
lea ecx, [ebp - 0x4c]
mov dword [ebp - 0x60], esi
call fcn.004016e9
push dword [0x428be0]
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x4c], esi
push 0x62
call fcn.00401d27
push dword [0x428be0]
lea ecx, [ebp - 0x4c]
push 0x49
call fcn.00401d27
push dword [0x428be0]
lea ecx, [ebp - 0x24]
push 0x4b
call fcn.00401d27
push 0x26
lea eax, [ebp + 0xc]
pop esi
lea ecx, [ebp - 0x24]
push 1
push ebx
push 1
push eax
mov dword [ebp + 0xc], esi
call fcn.004053d8
push eax
lea ecx, [ebp - 0x24]
call fcn.00401ec0
push 1
push ebx
lea eax, [ebp + 0xc]
push 1
push eax
lea ecx, [ebp - 0x24]
mov dword [ebp + 0xc], esi
call fcn.004053d8
push eax
lea ecx, [ebp - 0x24]
call fcn.00401ec0
push 0x42566c
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
lea ecx, [ebp - 0x34]
mov dword [ebp - 0x28], eax
call fcn.004058fe
mov esi, dword [ebp - 0x28]
mov dword [ebp - 0x34], 0x422420
push esi
call edi
push eax
push esi
lea ecx, [ebp - 0x40]
call fcn.00405cf3
lea ecx, [ebp - 0x34]
call fcn.004016fd
mov esi, dword [ebp - 0x18]
push esi
call edi
push eax
push esi
lea ecx, [ebp - 0x40]
call fcn.00405cf3
lea ecx, [ebp - 0x60]
call fcn.00401876
mov esi, dword [ebp - 0x5c]
lea ecx, [ebp - 0x4c]
call fcn.00401876
push 0x30
push esi
push dword [ebp - 0x48]
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
lea ecx, [ebp - 0x4c]
call fcn.004016fd
lea ecx, [ebp - 0x60]
call fcn.004016fd
lea ecx, [ebp - 0x24]
call fcn.004016fd
jmp 0x409171
push 0x30
push 0x42564c
push 0x42563c
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
or ebx, 0xffffffff
lea ecx, [ebp - 0x78]
call fcn.00409a9b
lea ecx, [ebp - 0x118]
call fcn.0040a50c
mov eax, ebx
jmp 0x409a6c
call fcn.0040a610
cmp eax, 5
jge 0x4092d4
lea ecx, [ebp - 0x4c]
call fcn.004016e9
mov esi, 0x422414
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x4c], esi
call fcn.004016e9
lea ecx, [ebp - 0x24]
mov dword [ebp - 0x60], esi
call fcn.004016e9
push dword [0x428be0]
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x24], esi
push 0x62
call fcn.00401d27
push 0x4255dc
lea ecx, [ebp - 0x38]
call fcn.0040c621
lea eax, [ebp - 0x38]
lea ecx, [ebp - 0x24]
push eax
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x28], 0x409
call fcn.004021cc
mov eax, dword [ebp - 0x28]
lea ecx, [ebp - 0x38]
mov dword [ebp - 0x14], eax
call fcn.004016fd
push dword [0x428be0]
lea ecx, [ebp - 0x4c]
push 0x4b
call fcn.00401d27
push 0x26
lea eax, [ebp + 0xc]
pop esi
lea ecx, [ebp - 0x4c]
push edi
push ebx
push edi
push eax
mov dword [ebp + 0xc], esi
call fcn.004053d8
push eax
lea ecx, [ebp - 0x4c]
call fcn.00401ec0
push edi
push ebx
lea eax, [ebp + 0xc]
push edi
push eax
lea ecx, [ebp - 0x4c]
mov dword [ebp + 0xc], esi
call fcn.004053d8
push eax
lea ecx, [ebp - 0x4c]
call fcn.00401ec0
push 0x42566c
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
lea ecx, [ebp - 0x34]
mov dword [ebp - 0x28], eax
call fcn.004058fe
mov edi, dword [ebp - 0x28]
mov esi, dword [sym.imp.OLEAUT32.dll_VariantInit]
push edi
mov dword [ebp - 0x34], 0x422420
call esi
push eax
push edi
lea ecx, [ebp - 0x18]
call fcn.00405cf3
lea ecx, [ebp - 0x34]
call fcn.004016fd
mov edi, dword [ebp - 0x40]
push edi
call esi
push eax
push edi
lea ecx, [ebp - 0x18]
call fcn.00405cf3
lea ecx, [ebp - 0x60]
call fcn.00401876
mov esi, dword [ebp - 0x5c]
lea ecx, [ebp - 0x24]
call fcn.00401876
push 0x30
push esi
push dword [ebp - 0x20]
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
lea ecx, [ebp - 0x24]
call fcn.004016fd
lea ecx, [ebp - 0x60]
call fcn.004016fd
lea ecx, [ebp - 0x4c]
call fcn.004016fd
jmp 0x409a56
lea ecx, [ebp - 0xd4]
call fcn.0040bf60
lea ecx, [ebp - 0xc8]
call fcn.0040bf60
lea eax, [ebp - 0xd8]
mov ecx, 0x428c18
push eax
mov dword [ebp - 0xd8], 0x422540
call fcn.0040c1ab
push 0x4030
call fcn.0041cd9f
cmp eax, ebx
pop ecx
je 0x409320
mov ecx, eax
call fcn.00403f70
mov dword [ebp + 8], eax
jmp 0x409323
mov dword [ebp + 8], ebx
push edi
lea eax, [ebp - 0x7c]
push ebx
push eax
push 0x4255cc
lea ecx, [ebp - 0x78]
call fcn.00409ac4
test al, al
je 0x4094f9
push dword [ebp - 0x7c]
lea ecx, [ebp - 0x5c]
call fcn.004048c9
mov esi, 0x422424
lea ecx, [ebp - 0x5c]
mov dword [ebp - 0x5c], esi
call fcn.0040c4b3
lea eax, [ebp - 8]
lea ecx, [ebp - 0x5c]
push eax
call fcn.0040c422
push dword [ebp - 8]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
lea ecx, [ebp - 0x5c]
call fcn.00401876
push dword [ebp - 0x58]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x4094dc
lea ecx, [ebp - 0x34]
call fcn.004021b8
lea ecx, [ebp - 0x5c]
mov dword [ebp - 0x34], esi
call fcn.00401876
mov edi, dword [ebp - 0x58]
mov esi, 0x104
push esi
push 0x428bf8
lea ecx, [ebp - 0x20]
call fcn.0040cd38
push edi
push esi
lea ecx, [ebp - 0x20]
call fcn.004016d3
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push eax
push ebx
push 0x4255c0
push 0x4255b8
call edi
lea ecx, [ebp - 0x20]
call fcn.004016ac
lea ecx, [ebp - 0x5c]
call fcn.00401876
mov eax, dword [ebp - 0x58]
push esi
mov dword [ebp - 8], eax
lea eax, [ebp - 0x34]
push eax
lea ecx, [ebp - 0x20]
call fcn.0040cd38
push dword [ebp - 8]
lea ecx, [ebp - 0x20]
push esi
call fcn.004016d3
push eax
push ebx
push 0x4255a8
push 0x4255b8
call edi
lea ecx, [ebp - 0x20]
call fcn.004016ac
cmp dword [ebp - 0x28], ebx
je 0x40944a
push dword [ebp - 0x28]
call dword [sym.imp.OLEAUT32.dll_VariantInit]
test eax, eax
jbe 0x40944a
lea eax, [ebp - 0x34]
mov esi, 0x428c08
push eax
mov ecx, esi
call fcn.004021cc
lea eax, [ebp - 8]
mov ecx, esi
push eax
call fcn.0040c422
push dword [ebp - 8]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x3c], ebx
call fcn.004058fe
lea ecx, [ebp - 0x5c]
mov dword [ebp - 0x48], 0x422420
call fcn.00401876
mov eax, dword [ebp - 0x58]
mov esi, 0x5dc
mov dword [ebp - 8], eax
lea eax, [ebp - 0x48]
push esi
push eax
lea ecx, [ebp - 0x20]
call fcn.0040cd38
push dword [ebp - 8]
lea ecx, [ebp - 0x20]
push esi
call fcn.004016d3
push eax
push ebx
push 0x42559c
push 0x4255b8
call edi
lea ecx, [ebp - 0x20]
call fcn.0040665c
cmp dword [ebp - 0x3c], ebx
je 0x4094ca
push dword [ebp - 0x3c]
call dword [sym.imp.OLEAUT32.dll_VariantInit]
test eax, eax
jbe 0x4094ca
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x48]
push eax
call fcn.004047ae
lea eax, [ebp - 0x48]
mov ecx, 0x428be8
push eax
call fcn.004021cc
lea ecx, [ebp - 0x48]
call fcn.004016fd
lea ecx, [ebp - 0x34]
call fcn.0040166e
jmp 0x4094ee
push ebx
push 0x425594
push 0x425574
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
lea ecx, [ebp - 0x5c]
call fcn.0040166e
push 1
pop edi
lea eax, [ebp - 0xa0]
push 5
push eax
call fcn.0041063a
pop ecx
pop ecx
lea ecx, [ebp - 0x90]
call fcn.004016e9
push dword [0x428be0]
mov esi, 0x422414
lea ecx, [ebp - 0x90]
mov dword [ebp - 0x90], esi
push 0x60
call fcn.00401d27
cmp dword [ebp - 0x84], ebx
je 0x40954a
push dword [ebp - 0x84]
call dword [sym.imp.OLEAUT32.dll_VariantInit]
test eax, eax
jne 0x40957e
push 0x42553c
lea ecx, [ebp - 0x24]
call fcn.0040c621
lea eax, [ebp - 0x24]
lea ecx, [ebp - 0x90]
push eax
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x14], 0x409
call fcn.004021cc
mov eax, dword [ebp - 0x14]
lea ecx, [ebp - 0x24]
mov dword [ebp - 0x80], eax
call fcn.004016fd
push dword [ebp - 0x84]
lea ecx, [ebp - 0xa0]
call fcn.004028cc
push 0x428bd4
lea ecx, [ebp - 0xa0]
call fcn.004028cc
mov esi, dword [ebp + 8]
lea eax, [ebp - 0xa0]
push eax
lea ecx, [esi + 8]
call fcn.004021cc
push edi
push edi
push ebx
push 0x425528
lea ecx, [ebp - 0x78]
call fcn.00409ac4
test al, al
je 0x409a05
cmp byte [ebp - 0xd], bl
jne 0x4099aa
mov edi, 0x1000
lea eax, [ebp - 0x3474]
push edi
push ebx
push eax
mov dword [ebp - 0x2474], ebx
call fcn.0041cd10
push edi
lea eax, [ebp - 0x2470]
push ebx
push eax
mov dword [ebp - 0x1470], ebx
call fcn.0041cd10
lea eax, [ebp - 0x2470]
push eax
call fcn.0040b8df
add esp, 0x1c
lea eax, [ebp - 0x2470]
mov ecx, esi
push eax
lea eax, [ebp - 0x3474]
push eax
call fcn.004045d5
cmp eax, 0xfffffffe
jne 0x409667
push 0x425520
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
lea ecx, [ebp - 0x34]
mov dword [ebp - 0x28], eax
call fcn.004058fe
lea eax, [ebp - 0x34]
push 0xa
push eax
lea eax, [ebp - 0xf8]
push eax
lea ecx, [ebp - 0x118]
mov dword [ebp - 0x34], 0x422420
call fcn.00409ef8
lea ecx, [ebp - 0x34]
call fcn.004016fd
jmp 0x409679
lea eax, [ebp - 0xf8]
lea ecx, [ebp - 0x118]
push eax
call fcn.0040a1b3
lea eax, [ebp - 0x20]
push eax
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
lea eax, [ebp - 0x20]
mov ecx, 0x428ca8
push eax
call fcn.00409d15
cmp dword [ebp - 0x2474], ebx
jle 0x4098db
push ebx
lea ecx, [ebp - 0x194]
call fcn.00418696
push ebx
push ebx
push ebx
push ebx
lea ecx, [ebp - 0x194]
call fcn.0040c754
test eax, eax
je 0x4098cb
push 0x80000
lea ecx, [ebp - 0x194]
push dword [ebp + 0xc]
call fcn.00418da6
lea ecx, [ebp - 0xd8]
call fcn.0040bec5
push 1
cmp eax, 3
mov dword [ebp - 0xc], eax
mov byte [ebp - 4], bl
pop edi
jne 0x4096f0
push 5
jmp 0x4096f6
cmp eax, edi
je 0x4096f7
push 2
pop edi
xor esi, esi
cmp edi, ebx
je 0x4098cb
jle 0x4098c3
cmp edi, 2
jle 0x409833
cmp edi, 3
je 0x409813
cmp edi, 4
je 0x409801
cmp edi, 5
jne 0x4098c3
push 0x1000
lea eax, [ebp - 0x146c]
push ebx
push eax
mov dword [ebp - 0x46c], ebx
call fcn.0041cd10
mov ecx, dword [ebp + 8]
add esp, 0xc
lea eax, [ebp - 0x2470]
push eax
lea eax, [ebp - 0x146c]
push eax
call fcn.004040f3
lea eax, [ebp - 0x146c]
push 1
push eax
lea ecx, [ebp - 0x468]
call fcn.00411e8c
push ebx
push ebx
push ebx
call dword [sym.imp.USER32.dll_GetActiveWindow]
push eax
lea ecx, [ebp - 0x468]
call fcn.0040ca3e
xor edi, edi
cmp dword [ebp - 0x46c], ebx
mov dword [ebp - 0xc], ebx
jle 0x4097c9
lea eax, [ebp - 0x146c]
mov dword [ebp + 0xc], eax
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
cmp eax, ebx
mov dword [ebp - 8], eax
je 0x4097b7
mov ecx, eax
call fcn.0040396e
push dword [ebp - 8]
call fcn.0041ccfb
pop ecx
inc dword [ebp - 0xc]
add dword [ebp + 0xc], 4
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 0x46c]
jl 0x40979b
push 0x1000
lea eax, [ebp - 0x146c]
push ebx
push eax
call fcn.0041cd10
push 0x1000
lea eax, [ebp - 0x146c]
push ebx
push eax
mov dword [ebp - 0x46c], ebx
call fcn.0041cd10
add esp, 0x18
mov dword [ebp - 0x46c], ebx
jmp 0x4098c3
push dword [ebp + 8]
push ebx
call fcn.0040a8be
pop ecx
xor edi, edi
pop ecx
jmp 0x4098c3
cmp esi, ebx
jne 0x40981f
push 1
pop edi
jmp 0x4098c3
push ebx
push esi
push dword [ebp - 4]
call fcn.0040ab33
add esp, 0xc
mov edi, eax
jmp 0x4098c3
lea eax, [ebp - 0x3474]
lea ecx, [ebp - 0x388]
push eax
call fcn.00418e23
push ebx
push ebx
push ebx
push ebx
lea ecx, [ebp - 0x388]
call fcn.0040c87d
cmp edi, 1
jne 0x409869
push 5
push dword [ebp - 0x384]
call dword [sym.imp.USER32.dll_ShowWindow]
jmp 0x409874
lea ecx, [ebp - 0x388]
call fcn.0041b278
lea ecx, [ebp - 0xd8]
call fcn.0040bec5
cmp eax, 1
jne 0x409888
xor edi, edi
jmp 0x4098b8
cmp eax, 2
jne 0x4098a4
push 3
mov byte [ebp - 4], bl
pop edi
mov esi, dword [ebp - 0x248]
lea eax, [esi - 0x2c]
neg esi
sbb esi, esi
and esi, eax
jmp 0x4098b8
cmp eax, 3
jne 0x4098b1
push eax
mov byte [ebp - 4], 1
pop edi
jmp 0x409893
cmp eax, 4
jne 0x4098b8
push eax
pop edi
lea ecx, [ebp - 0x388]
call fcn.00419268
mov dword [ebp - 0xc], ebx
jmp 0x4096f9
lea ecx, [ebp - 0x194]
call fcn.00418864
mov edi, 0x1000
cmp dword [ebp - 0x2474], ebx
mov dword [ebp + 0xc], ebx
jle 0x409918
lea eax, [ebp - 0x3474]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
mov esi, dword [eax]
cmp esi, ebx
je 0x409906
mov ecx, esi
call fcn.0040396e
push esi
call fcn.0041ccfb
pop ecx
inc dword [ebp + 0xc]
mov eax, dword [ebp + 0xc]
add dword [ebp - 4], 4
cmp eax, dword [ebp - 0x2474]
jl 0x4098ef
push edi
lea eax, [ebp - 0x3474]
push ebx
push eax
call fcn.0041cd10
add esp, 0xc
cmp dword [ebp - 0x1470], ebx
mov dword [ebp - 0x2474], ebx
mov dword [ebp + 0xc], ebx
jle 0x40996c
lea eax, [ebp - 0x2470]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
mov esi, dword [eax]
cmp esi, ebx
je 0x40995a
mov ecx, esi
call fcn.0040396e
push esi
call fcn.0041ccfb
pop ecx
inc dword [ebp + 0xc]
mov eax, dword [ebp + 0xc]
add dword [ebp - 4], 4
cmp eax, dword [ebp - 0x1470]
jl 0x409943
push edi
lea eax, [ebp - 0x2470]
push ebx
push eax
call fcn.0041cd10
push edi
lea eax, [ebp - 0x2470]
push ebx
push eax
mov dword [ebp - 0x1470], ebx
call fcn.0041cd10
push edi
lea eax, [ebp - 0x3474]
push ebx
push eax
mov dword [ebp - 0x1470], ebx
call fcn.0041cd10
mov esi, dword [ebp + 8]
add esp, 0x24
jmp 0x409a0e
push edi
lea ecx, [ebp - 0x194]
call fcn.00418696
push ebx
push ebx
push ebx
push ebx
lea ecx, [ebp - 0x194]
call fcn.0040c754
test eax, eax
je 0x4099f8
push 0x80000
lea ecx, [ebp - 0x194]
push dword [ebp + 0xc]
call fcn.00418da6
lea ecx, [ebp - 0xd8]
call fcn.0040bec5
cmp eax, edi
mov dword [ebp - 0xc], eax
setne al
push esi
push eax
call fcn.0040a8be
pop ecx
pop ecx
lea ecx, [ebp - 0x194]
call fcn.00418864
jmp 0x409a0e
push esi
push ebx
call fcn.0040a8be
pop ecx
pop ecx
mov ecx, 0x428c18
call fcn.0040c252
cmp esi, ebx
je 0x409a2a
mov ecx, esi
call fcn.0040a530
push esi
call fcn.0041ccfb
pop ecx
lea ecx, [ebp - 0x90]
call fcn.004016fd
lea ecx, [ebp - 0xa0]
call fcn.0040166e
lea ecx, [ebp - 0xc8]
call fcn.004087ac
lea ecx, [ebp - 0xd4]
call fcn.004087ac
lea ecx, [ebp - 0x78]
call fcn.00409a9b
lea ecx, [ebp - 0x118]
call fcn.0040a50c
mov eax, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
leave
ret