Function at 0x402615
Capabilities:
Copy file
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x41d944
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x260
mov dword [ebp - 0x268], ecx
push 0x42abcc
push 0x427220
call fcn.00416912
add esp, 8
push 0x427228
push 0x42abcc
push 0x427248
push 0x42aac8
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
push ecx
mov ecx, esp
mov dword [ebp - 0x264], esp
push 0x42aac8
call sub.MFC42.DLL_CString::CString_2
mov dword [ebp - 0x26c], eax
call fcn.00416afd
add esp, 4
push 0x427250
push 0x42aac8
push 0x427260
push 0x42a98c
call sub.MFC42.DLL_CString::Format
add esp, 0x10
push 0x427268
push 0x42aac8
push 0x427274
push 0x42a988
call sub.MFC42.DLL_CString::Format
add esp, 0x10
push 0x42727c
push 0x42aac8
push 0x427288
push 0x42a984
call sub.MFC42.DLL_CString::Format
add esp, 0x10
lea ecx, [ebp - 0x258]
call sub.MFC42.DLL_CString::CString_3
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x234]
call sub.MFC42.DLL_CFileFind::CFileFind
mov byte [ebp - 4], 1
push 0x427290
push 0x42a9c4
push 0x42729c
lea eax, [ebp - 0x258]
push eax
call sub.MFC42.DLL_CString::Format
add esp, 0x10
push 0
mov ecx, 0x42a984
call fcn.00401ec0
push eax
lea ecx, [ebp - 0x234]
call sub.MFC42.DLL_CFileFind::FindFile
test eax, eax
jne 0x402757
push 0
mov ecx, 0x42a984
call fcn.00401ec0
push eax
lea ecx, [ebp - 0x258]
call fcn.00401ec0
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileA]
lea ecx, [ebp - 0x218]
call sub.MFC42.DLL_CString::CString_3
mov byte [ebp - 4], 2
push 0x4272a4
push 0x4272e8
lea ecx, [ebp - 0x214]
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea edx, [ebp - 0x254]
push edx
lea eax, [ebp - 0x214]
push eax
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyA]
test eax, eax
jne 0x402841
mov dword [ebp - 0x260], 1
mov dword [ebp - 0x25c], 0x104
lea ecx, [ebp - 0x25c]
push ecx
lea edx, [ebp - 0x110]
push edx
lea eax, [ebp - 0x260]
push eax
push 0
push 0x4272ec
mov ecx, dword [ebp - 0x254]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
je 0x402841
mov dword [ebp - 0x25c], 0x104
lea edx, [ebp - 0x25c]
push edx
lea eax, [ebp - 0x110]
push eax
lea ecx, [ebp - 0x260]
push ecx
push 0
push 0x4272f8
mov edx, dword [ebp - 0x254]
push edx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
je 0x402820
mov byte [ebp - 0x110], 0
push 0x427304
lea eax, [ebp - 0x110]
push eax
push 0x427314
lea ecx, [ebp - 0x110]
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
mov edx, dword [ebp - 0x254]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea eax, [ebp - 0x110]
push eax
push 0x42731c
lea ecx, [ebp - 0x218]
push ecx
call sub.MFC42.DLL_CString::Format
add esp, 0xc
lea ecx, [ebp - 0x250]
call sub.MFC42.DLL_CFileFind::CFileFind
mov byte [ebp - 4], 3
push 0
mov ecx, 0x42a988
call fcn.00401ec0
push eax
lea ecx, [ebp - 0x250]
call sub.MFC42.DLL_CFileFind::FindFile
test eax, eax
jne 0x40291f
mov ecx, 0x42a988
call fcn.00401ec0
push eax
push 0x427320
push 0x427324
push 0x427330
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
mov ecx, 0x42a988
call fcn.00401ec0
push eax
push 0x427338
push 0x42733c
push 0x427348
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
mov ecx, 0x42a988
call fcn.00401ec0
push eax
lea ecx, [ebp - 0x218]
call fcn.00401ec0
push eax
push 0x427350
push 0x42735c
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
mov ecx, 0x42a988
call fcn.00401ec0
push eax
push 0x427364
push 0x427368
push 0x427374
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x250]
call fcn.0041cebe
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x218]
call sub.MFC42.DLL_CString::CString
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x234]
call fcn.0041cebe
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x258]
call sub.MFC42.DLL_CString::CString
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret