Function at 0x403783
Capabilities:
Delete file
Get common file path
Query or enumerate registry value
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x41dcc4
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x324
mov dword [ebp - 0x330], ecx
mov eax, dword [ebp + 8]
push eax
push 0x66
mov ecx, dword [ebp - 0x330]
call sub.MFC42.DLL_CDialog::CDialog
mov dword [ebp - 4], 0
mov ecx, dword [ebp - 0x330]
add ecx, 0x60
call fcn.004135b0
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x330]
add ecx, 0xa0
call fcn.00413fe0
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x330]
add ecx, 0x124
call fcn.00413fe0
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x330]
add ecx, 0x1a8
call fcn.00413fe0
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x330]
add ecx, 0x22c
call fcn.00413fe0
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0x330]
add ecx, 0x2b0
call fcn.004135b0
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x330]
add ecx, 0x2f0
call fcn.004133c0
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x330]
add ecx, 0x330
call fcn.00413da0
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x330]
add ecx, 0x348
call sub.MFC42.DLL_CString::CString_3
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x330]
add ecx, 0x34c
call sub.MFC42.DLL_CString::CString_3
mov byte [ebp - 4], 0xa
mov ecx, dword [ebp - 0x330]
add ecx, 0x350
call sub.MFC42.DLL_CString::CString_3
mov byte [ebp - 4], 0xb
mov ecx, dword [ebp - 0x330]
add ecx, 0x354
call sub.MFC42.DLL_CString::CString_3
mov byte [ebp - 4], 0xc
mov ecx, dword [ebp - 0x330]
add ecx, 0x358
call sub.MFC42.DLL_CString::CString_3
mov byte [ebp - 4], 0xd
mov ecx, dword [ebp - 0x330]
add ecx, 0x35c
call sub.MFC42.DLL_CString::CString_3
mov byte [ebp - 4], 0xe
push 0xa
mov ecx, dword [ebp - 0x330]
add ecx, 0x58c
call fcn.00413870
mov byte [ebp - 4], 0xf
push 0xa
mov ecx, dword [ebp - 0x330]
add ecx, 0x5a8
call fcn.00413920
mov byte [ebp - 4], 0x10
mov ecx, dword [ebp - 0x330]
add ecx, 0x5c4
call sub.MFC42.DLL_CString::CString_3
mov byte [ebp - 4], 0x11
mov ecx, dword [ebp - 0x330]
add ecx, 0x5c8
call sub.MFC42.DLL_CString::CString_3
mov byte [ebp - 4], 0x12
mov ecx, dword [ebp - 0x330]
mov dword [ecx], 0x421af0
push 0x80
call fcn.00412dc0
mov ecx, eax
call fcn.004136d0
mov edx, dword [ebp - 0x330]
mov dword [edx + 0x33c], eax
mov eax, dword [ebp - 0x330]
mov dword [eax + 0x580], 0
mov ecx, dword [ebp - 0x330]
mov dword [ecx + 0x584], 0
mov edx, dword [ebp - 0x330]
mov dword [edx + 0x5cc], 0
mov eax, dword [ebp - 0x330]
mov dword [eax + 0x5d0], 0
mov ecx, 0x42a988
call fcn.00401ec0
push eax
push 0x104
lea ecx, [ebp - 0x110]
push ecx
push 0x4274f4
push 0x4274f8
push 0x427504
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov ecx, 0x42a978
call fcn.00401ea0
test eax, eax
jne 0x4039ff
mov ecx, 0x42a978
call fcn.00401ec0
push eax
call dword [sym.imp.MSVCRT.dll_atoi]
add esp, 4
mov edx, dword [ebp - 0x330]
mov dword [edx + 0x344], eax
jmp 0x403a1b
lea eax, [ebp - 0x110]
push eax
call dword [sym.imp.MSVCRT.dll_atoi]
add esp, 4
mov ecx, dword [ebp - 0x330]
mov dword [ecx + 0x344], eax
mov edx, dword [ebp - 0x330]
cmp dword [edx + 0x344], 0
jle 0x403a3c
mov eax, dword [ebp - 0x330]
cmp dword [eax + 0x344], 0x3e7
jle 0x403a4c
mov ecx, dword [ebp - 0x330]
mov dword [ecx + 0x344], 1
mov ecx, 0x42a988
call fcn.00401ec0
push eax
push 0x104
lea edx, [ebp - 0x110]
push edx
push 0x42750c
push 0x427510
push 0x42751c
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov ecx, 0x42a974
call fcn.00401ea0
test eax, eax
jne 0x403aa1
push 0x42a974
mov ecx, dword [ebp - 0x330]
add ecx, 0x354
call sub.MFC42.DLL_CString::operator_1
jmp 0x403b2b
lea ecx, [ebp - 0x118]
call sub.MFC42.DLL_CString::CString_3
mov byte [ebp - 4], 0x13
lea eax, [ebp - 0x110]
push eax
push 0x427524
lea ecx, [ebp - 0x118]
push ecx
call sub.MFC42.DLL_CString::Format
add esp, 0xc
lea ecx, [ebp - 0x118]
call fcn.00401ea0
test eax, eax
je 0x403afb
push 0x427528
push 0x42752c
mov edx, dword [ebp - 0x330]
add edx, 0x354
push edx
call sub.MFC42.DLL_CString::Format
add esp, 0xc
jmp 0x403b1c
lea eax, [ebp - 0x110]
push eax
push 0x427530
mov ecx, dword [ebp - 0x330]
add ecx, 0x354
push ecx
call sub.MFC42.DLL_CString::Format
add esp, 0xc
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0x118]
call sub.MFC42.DLL_CString::CString
mov ecx, 0x42a988
call fcn.00401ec0
push eax
push 0x104
lea edx, [ebp - 0x110]
push edx
push 0x42acf8
push 0x427534
push 0x427540
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov ecx, 0x42a970
call fcn.00401ea0
test eax, eax
jne 0x403b80
push 0x42a970
mov ecx, dword [ebp - 0x330]
add ecx, 0x358
call sub.MFC42.DLL_CString::operator_1
jmp 0x403d11
lea eax, [ebp - 0x110]
push eax
push 0x427548
mov ecx, dword [ebp - 0x330]
add ecx, 0x358
push ecx
call sub.MFC42.DLL_CString::Format
add esp, 0xc
mov ecx, dword [ebp - 0x330]
add ecx, 0x358
call fcn.00401ea0
test eax, eax
je 0x403d11
push 0x42754c
push 0x427590
lea edx, [ebp - 0x320]
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea eax, [ebp - 0x324]
push eax
lea ecx, [ebp - 0x320]
push ecx
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyA]
test eax, eax
jne 0x403c95
mov dword [ebp - 0x32c], 1
mov dword [ebp - 0x328], 0x104
lea edx, [ebp - 0x328]
push edx
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x32c]
push ecx
push 0
push 0x427594
mov edx, dword [ebp - 0x324]
push edx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
je 0x403c95
mov dword [ebp - 0x328], 0x104
lea eax, [ebp - 0x328]
push eax
lea ecx, [ebp - 0x21c]
push ecx
lea edx, [ebp - 0x32c]
push edx
push 0
push 0x4275a0
mov eax, dword [ebp - 0x324]
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
je 0x403c74
mov byte [ebp - 0x21c], 0
push 0x4275ac
lea ecx, [ebp - 0x21c]
push ecx
push 0x4275bc
lea edx, [ebp - 0x21c]
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
mov eax, dword [ebp - 0x324]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea ecx, [ebp - 0x21c]
push ecx
push 0x4275c4
mov edx, dword [ebp - 0x330]
add edx, 0x358
push edx
call sub.MFC42.DLL_CString::Format
add esp, 0xc
mov ecx, dword [ebp - 0x330]
add ecx, 0x358
call fcn.00401ea0
test eax, eax
je 0x403d11
push 1
push 5
lea eax, [ebp - 0x21c]
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathA]
push 0x4275c8
lea ecx, [ebp - 0x21c]
push ecx
push 0x4275d8
mov edx, dword [ebp - 0x330]
add edx, 0x358
push edx
call sub.MFC42.DLL_CString::Format
add esp, 0x10
mov ecx, 0x42a988
call fcn.00401ec0
push eax
push 0x104
lea eax, [ebp - 0x110]
push eax
push 0x42acfc
push 0x4275e0
push 0x4275e8
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
cmp dword [0x42a9b4], 0
jne 0x403d5f
lea ecx, [ebp - 0x110]
push ecx
push 0x4275f0
push 0x42a9c0
call sub.MFC42.DLL_CString::Format
add esp, 0xc
push 0x4275f4
mov ecx, dword [ebp - 0x330]
add ecx, 0x348
call fcn.0041ced6
mov edx, dword [ebp - 0x330]
add edx, 0x354
push edx
mov ecx, dword [ebp - 0x330]
add ecx, 0x34c
call sub.MFC42.DLL_CString::operator_1
mov eax, dword [ebp - 0x330]
add eax, 0x358
push eax
mov ecx, dword [ebp - 0x330]
add ecx, 0x350
call sub.MFC42.DLL_CString::operator_1
mov ecx, dword [ebp - 0x330]
add ecx, 0x358
push ecx
mov ecx, dword [ebp - 0x330]
add ecx, 0x5c8
call sub.MFC42.DLL_CString::operator_1
mov edx, dword [ebp - 0x330]
mov dword [edx + 0x360], 0
mov eax, dword [ebp - 0x330]
mov dword [eax + 0x57c], 0x4b
mov ecx, dword [ebp - 0x330]
mov dword [ecx + 0x574], 0
mov edx, dword [ebp - 0x330]
mov dword [edx + 0x570], 0
lea ecx, [ebp - 0x114]
call sub.MFC42.DLL_CString::CString_3
mov byte [ebp - 4], 0x14
push 0x4275fc
push 0x42aac8
push 0x42760c
lea eax, [ebp - 0x114]
push eax
call sub.MFC42.DLL_CString::Format
add esp, 0x10
lea ecx, [ebp - 0x114]
call fcn.00401ec0
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0x114]
call sub.MFC42.DLL_CString::CString
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x330]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 4