Function at 0x407b60
Capabilities:
Check if file exists
Delete registry value
Print debug messages
Read .ini file

Disassembly:
sub esp, 0x818
push ebx
push ebp
push esi
push edi
mov ebp, ecx
call fcn.00403a60
xor ebx, ebx
mov ecx, 0xf
xor eax, eax
lea edi, [esp + 0x4d]
mov byte [esp + 0x4c], bl
mov byte [esp + 0x8c], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0xf
xor eax, eax
lea edi, [esp + 0x8d]
mov byte [esp + 0x418], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x103
xor eax, eax
lea edi, [esp + 0x419]
mov byte [esp + 0x314], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x315]
lea esi, [ebp + 0x14]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
push esi
push 0x420a20
lea eax, [esp + 0x31c]
push 0x104
push eax
mov dword [esp + 0x24], ebx
call dword [sym.imp.SHLWAPI.dll_wnsprintfA]
add esp, 0x10
lea ecx, [esp + 0x314]
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push esi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
jne 0x407d68
mov ecx, 0xf
lea edi, [esp + 0xcd]
mov byte [esp + 0xcc], bl
lea edx, [esp + 0xcc]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
push 0x40
push edx
stosb byte es:[edi], al
call fcn.00411cd0
xor eax, eax
mov ecx, 8
mov dword [esp + 0x21], eax
lea edi, [esp + 0x31]
mov dword [esp + 0x25], eax
mov byte [esp + 0x30], bl
mov dword [esp + 0x29], eax
mov byte [esp + 0x20], bl
mov word [esp + 0x2d], ax
lea edx, [esp + 0x20]
rep stosd dword es:[edi], eax
xor ecx, ecx
push 0x10
mov dword [esp + 0x24], ecx
mov byte [esp + 0x33], al
mov dword [esp + 0x28], ecx
push edx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], ecx
call fcn.00411e90
add esp, 0x10
test eax, eax
je 0x407cbf
lea eax, [esp + 0x28]
xor edi, edi
mov dword [esp + 0x10], eax
mov edx, dword [esp + 0x10]
xor ecx, ecx
mov cl, byte [esp + edi + 0x18]
push ecx
push 0x420a18
push edx
call sub.MSVCRT.dll_sprintf
mov ecx, dword [esp + 0x1c]
add esp, 0xc
inc edi
add ecx, 2
cmp edi, 0x10
mov dword [esp + 0x10], ecx
jl 0x407c95
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x211]
mov byte [esp + 0x210], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [esp + 0x210]
push 0x104
push eax
call fcn.00411f70
push ebx
call sub.MSVCRT.dll_time
lea ecx, [esp + 0xd8]
push eax
lea edx, [esp + 0x38]
push ecx
lea eax, [esp + 0x224]
push edx
push eax
push 0x4209b8
lea ecx, [esp + 0x438]
push 0x40f
push ecx
call sub.MSVCRT.dll__snprintf
push 0x4209ac
lea edx, [ebp + 0x118]
push 0x42038c
push edx
push 0x4209a4
push 0x103
push esi
call sub.MSVCRT.dll__snprintf
add esp, 0x40
lea eax, [ebp + 8]
lea ecx, [esp + 0x418]
push eax
push 0xa
push esi
push ecx
call fcn.00407200
add esp, 0x10
test eax, eax
jne 0x407d68
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x818
ret
push ebx
push ebx
push 3
push ebx
push 1
push 0x80000000
push esi
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp + 0x21c], eax
mov eax, dword [ebp + 0x220]
cmp eax, ebx
je 0x407e5d
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x211]
mov byte [esp + 0x210], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea edx, [esp + 0x210]
push 0x104
push edx
push ebx
stosb byte es:[edi], al
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
je 0x407e4c
lea eax, [esp + 0x210]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecA]
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x10d]
mov byte [esp + 0x10c], bl
rep stosd dword es:[edi], eax
push 0x4209a0
push 0x420258
stosw word es:[edi], ax
push 0x420694
lea ecx, [esp + 0x118]
push 0x104
push ecx
stosb byte es:[edi], al
call dword [sym.imp.SHLWAPI.dll_wnsprintfA]
add esp, 0x14
lea edx, [esp + 0x10c]
lea eax, [esp + 0x210]
push edx
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendA]
lea ecx, [esp + 0x210]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
je 0x407e4c
lea edx, [esp + 0x210]
push 1
push edx
call fcn.00402410
add esp, 8
lea eax, [esp + 0x14]
mov ecx, ebp
push eax
call fcn.00408330
cmp dword [ebp + 4], ebx
jne 0x407e63
cmp dword [esp + 0x14], ebx
je 0x407e70
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x818
ret
push esi
lea ecx, [esp + 0x50]
push 0x40
push ecx
push ebx
push 0x420998
push 0x420990
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
test eax, eax
je 0x407fa2
lea edx, [esp + 0x8c]
push 0x40
push edx
mov ecx, ebp
call fcn.004076e0
test eax, eax
je 0x407fa2
lea eax, [esp + 0x8c]
push 1
lea ecx, [esp + 0x50]
push eax
push ecx
call fcn.0040a6e0
mov esi, eax
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x119]
mov byte [esp + 0x118], bl
lea edx, [esp + 0x98]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
push 0x42038c
lea eax, [esp + 0x5c]
push edx
push eax
push 0x420958
lea ecx, [esp + 0x128]
push 0x104
push ecx
call dword [sym.imp.SHLWAPI.dll_wnsprintfA]
add esp, 0x24
lea edx, [esp + 0x10c]
push edx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
cmp esi, ebx
jle 0x407fa2
mov ecx, ebp
call fcn.00407fc0
test eax, eax
jne 0x407f33
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x818
ret
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x10d]
mov byte [esp + 0x10c], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
push 0x42038c
push 0x420934
lea eax, [esp + 0x114]
push 0x104
push eax
call dword [sym.imp.SHLWAPI.dll_wnsprintfA]
add esp, 0x10
lea ecx, [esp + 0x10c]
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push 0x420920
push 0x4208fc
push 0x80000002
call dword [sym.imp.SHLWAPI.dll_SHDeleteValueA]
cmp dword [ebp + 4], ebx
je 0x407fa2
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x818
ret
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x818
ret