Function at 0x10399cb
Capabilities:
Delete registry key
Query or enumerate registry key

Disassembly:
push ebp
lea ebp, [esp - 0x78]
sub esp, 0x294
mov eax, dword [0x1251b5c]
xor eax, dword [ebp + 0x7c]
push ebx
push esi
push edi
mov esi, ecx
mov dword [ebp + 0x74], eax
lea eax, [esi + 0xe8]
push eax
push 0x1007174
mov edi, 0x1007168
push edi
call sub.MFC42.DLL_CWinApp::WriteProfileStringA
lea eax, [esi + 0x1ec]
push eax
push 0x1007154
push edi
mov ecx, esi
call sub.MFC42.DLL_CWinApp::WriteProfileStringA
push dword [esi + 0x3f4]
mov ecx, esi
push 0x1007148
push edi
call sub.MFC42.DLL_CWinApp::WriteProfileInt
push dword [esi + 0x3f8]
mov ecx, esi
push 0x1007138
push edi
call sub.MFC42.DLL_CWinApp::WriteProfileInt
lea eax, [esi + 0x2f0]
push eax
push 0x1007128
push edi
mov ecx, esi
call sub.MFC42.DLL_CWinApp::WriteProfileStringA
push dword [esi + 0x3fc]
mov ecx, esi
push 0x100711c
push edi
call sub.MFC42.DLL_CWinApp::WriteProfileInt
lea eax, [esi + 0xc8]
push eax
push 0x1007114
push edi
mov ecx, esi
call sub.MFC42.DLL_CWinApp::WriteProfileStringA
push dword [esi + 0x42c]
mov ebx, 0x100206c
push dword [esi + 0x428]
lea eax, [ebp - 0x11c]
push ebx
push eax
call dword [sym.imp.msvcrt.dll_sprintf]
add esp, 0x10
lea eax, [ebp - 0x11c]
push eax
push 0x1007100
push edi
mov ecx, esi
call sub.MFC42.DLL_CWinApp::WriteProfileStringA
push dword [esi + 0x434]
lea eax, [ebp - 0x11c]
push dword [esi + 0x430]
push ebx
mov ebx, dword [sym.imp.msvcrt.dll_sprintf]
push eax
call ebx
add esp, 0x10
lea eax, [ebp - 0x11c]
push eax
push 0x10070f0
push edi
mov ecx, esi
call sub.MFC42.DLL_CWinApp::WriteProfileStringA
push dword [esi + 0x43c]
mov ecx, esi
push 0x10070e0
push edi
call sub.MFC42.DLL_CWinApp::WriteProfileInt
push dword [esi + 0x440]
push 0x10070d4
push edi
mov ecx, esi
call sub.MFC42.DLL_CWinApp::WriteProfileInt
push dword [esi + 0x878]
mov ecx, esi
push 0x10070c8
push edi
call sub.MFC42.DLL_CWinApp::WriteProfileInt
push dword [esi + 0x87c]
mov ecx, esi
push 0x10070b8
push edi
call sub.MFC42.DLL_CWinApp::WriteProfileInt
push dword [esi + 0x884]
mov ecx, esi
push 0x10070a8
push edi
call sub.MFC42.DLL_CWinApp::WriteProfileInt
push dword [esi + 0x880]
mov ecx, esi
push 0x1007098
push edi
call sub.MFC42.DLL_CWinApp::WriteProfileInt
lea eax, [esi + 0x56c]
push eax
push 0x100708c
push edi
mov ecx, esi
call sub.MFC42.DLL_CWinApp::WriteProfileStringA
lea eax, [esi + 0x670]
push eax
push 0x1007074
push edi
mov ecx, esi
call sub.MFC42.DLL_CWinApp::WriteProfileStringA
lea eax, [esi + 0x774]
push eax
push 0x1007064
push edi
mov ecx, esi
call sub.MFC42.DLL_CWinApp::WriteProfileStringA
push dword [esi + 0x438]
mov ecx, esi
push 0x100704c
push edi
call sub.MFC42.DLL_CWinApp::WriteProfileInt
mov esi, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
lea eax, [ebp + 0x68]
push eax
push 8
push 0
push 0x1007028
mov edi, 0x80000001
push edi
call esi
test eax, eax
je 0x1039bc2
xor eax, eax
jmp 0x1039c62
and dword [ebp + 0x70], 0
push 0x80
lea eax, [ebp - 0x1c]
push eax
push dword [ebp + 0x70]
push dword [ebp + 0x68]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyA]
test eax, eax
jne 0x1039c56
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x21c]
push 0x1007000
push eax
call ebx
add esp, 0xc
lea eax, [ebp + 0x64]
push eax
push 8
push 0
lea eax, [ebp - 0x21c]
push eax
push edi
call esi
test eax, eax
jne 0x1039c56
and dword [ebp + 0x6c], eax
push 0x100
lea eax, [ebp - 0x21c]
push eax
push dword [ebp + 0x6c]
push dword [ebp + 0x64]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyA]
test eax, eax
jne 0x1039c2e
inc dword [ebp + 0x6c]
jmp 0x1039c0d
push dword [ebp + 0x64]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [ebp + 0x6c], 0
jne 0x1039c4e
lea eax, [ebp - 0x1c]
push eax
push dword [ebp + 0x68]
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
and dword [ebp + 0x70], 0
inc dword [ebp + 0x70]
jmp 0x1039bc6
push dword [ebp + 0x68]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor eax, eax
inc eax
mov ecx, dword [ebp + 0x74]
xor ecx, dword [ebp + 0x7c]
pop edi
pop esi
pop ebx
call fcn.0105b9a4
add ebp, 0x78
leave
ret