Function at 0x4043a3
Capabilities:
Delete registry key
Query or enumerate registry key
Query or enumerate registry value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x65c
mov eax, dword [0x40f014]
push ebx
xor ebx, ebx
push edi
mov edi, dword [ebp + 0xc]
push 0x4017c8
mov dword [ebp - 4], eax
mov dword [ebp - 0x620], ebx
mov dword [ebp - 0x624], ebx
mov dword [ebp - 0x62c], ebx
mov dword [ebp - 0x628], ebx
call fcn.004061e0
pop ecx
call fcn.00405e04
test eax, eax
jne 0x40440e
push 0x401788
push ebx
push ebx
push 0x401768
push 0x675
push 0x401240
call fcn.004062d4
add esp, 0x18
xor eax, eax
jmp 0x404788
cmp edi, ebx
push esi
jne 0x40442f
push 0x401744
push ebx
push ebx
mov edi, 0x401768
push edi
push 0x67e
mov esi, 0x401240
jmp 0x404660
lea eax, [ebp - 0x620]
push eax
push 0xf003f
push ebx
push 0x401718
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
cmp eax, ebx
je 0x404464
push ebx
push eax
push 0x401340
mov edi, 0x401768
push edi
push 0x68c
jmp 0x404425
mov esi, 0x104
push esi
lea eax, [ebp - 0x61c]
push eax
push edi
call dword [sym.imp.ole32.dll_StringFromGUID2]
cmp eax, ebx
push ebx
push ebx
jne 0x404490
push 0x401704
mov edi, 0x401768
push edi
push 0x697
jmp 0x404425
push esi
lea ecx, [ebp - 0x20c]
push ecx
push eax
lea eax, [ebp - 0x61c]
push eax
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
test eax, eax
jne 0x4044cd
push 0x4016d4
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x4016bc
mov edi, 0x401768
push edi
push 0x6a0
jmp 0x404425
lea eax, [ebp - 0x658]
push eax
lea eax, [ebp - 0x640]
push eax
lea eax, [ebp - 0x64c]
push eax
lea eax, [ebp - 0x63c]
push eax
lea eax, [ebp - 0x648]
push eax
lea eax, [ebp - 0x650]
push eax
lea eax, [ebp - 0x65c]
push eax
lea eax, [ebp - 0x634]
push eax
push ebx
lea eax, [ebp - 0x644]
push eax
lea eax, [ebp - 0x414]
push eax
push dword [ebp - 0x620]
call dword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyA]
cmp eax, ebx
mov esi, 0x401240
mov edi, 0x401768
je 0x404540
push ebx
push eax
push 0x4016a8
push edi
push 0x6b6
jmp 0x404660
mov eax, dword [ebp - 0x628]
cmp eax, dword [ebp - 0x634]
jae 0x40464b
lea ecx, [ebp - 0x658]
push ecx
push ebx
push ebx
push ebx
lea ecx, [ebp - 0x630]
push ecx
lea ecx, [ebp - 0x108]
push ecx
push eax
push dword [ebp - 0x620]
mov dword [ebp - 0x630], 0x104
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExA]
cmp eax, ebx
jne 0x40466b
lea eax, [ebp - 0x624]
push eax
push 1
push ebx
lea eax, [ebp - 0x108]
push eax
push dword [ebp - 0x620]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
cmp eax, ebx
jne 0x404684
lea eax, [ebp - 0x630]
push eax
lea eax, [ebp - 0x310]
push eax
lea eax, [ebp - 0x638]
push eax
push ebx
push 0x4016a0
push dword [ebp - 0x624]
mov dword [ebp - 0x638], 1
mov dword [ebp - 0x630], 0x104
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
cmp eax, ebx
jne 0x40469e
push dword [ebp - 0x624]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp eax, ebx
je 0x404617
push ebx
push eax
push 0x4012dc
push edi
push 0x6f8
push esi
call fcn.004062d4
add esp, 0x18
lea eax, [ebp - 0x310]
push eax
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
test eax, eax
jne 0x404639
mov dword [ebp - 0x62c], 1
inc dword [ebp - 0x628]
cmp dword [ebp - 0x62c], ebx
je 0x404540
cmp dword [ebp - 0x62c], ebx
jne 0x4046ad
push 0x401688
push ebx
push ebx
push edi
push 0x70a
push esi
call fcn.004062d4
add esp, 0x18
jmp 0x4046e9
push dword [ebp - 0x628]
push 0x40167c
push eax
push 0x40166c
push edi
push 0x6d2
jmp 0x4046e0
lea ecx, [ebp - 0x108]
push ecx
push 0x401664
push eax
push 0x401340
push edi
push 0x6e1
jmp 0x4046e0
push ebx
push eax
push 0x4012ec
push edi
push 0x6f3
jmp 0x404660
lea eax, [ebp - 0x108]
push eax
push dword [ebp - 0x620]
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
cmp eax, ebx
je 0x404753
lea ecx, [ebp - 0x108]
push ecx
push 0x401648
push eax
push 0x401638
push edi
push 0x714
push esi
call fcn.004062d4
add esp, 0x1c
cmp dword [ebp - 0x620], ebx
je 0x404717
push dword [ebp - 0x620]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp eax, ebx
je 0x404717
push ebx
push eax
push 0x4012dc
push edi
push 0x728
push esi
call fcn.004062d4
add esp, 0x18
cmp dword [ebp - 0x624], ebx
je 0x404745
push dword [ebp - 0x624]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp eax, ebx
je 0x404745
push ebx
push eax
push 0x4012dc
push edi
push 0x72e
push esi
call fcn.004062d4
add esp, 0x18
push 0x401610
call fcn.004061e0
xor eax, eax
jmp 0x404786
push dword [ebp - 0x620]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp eax, ebx
je 0x404779
push ebx
push eax
push 0x4012dc
push edi
push 0x71c
push esi
call fcn.004062d4
add esp, 0x18
push 0x4015e4
call fcn.004061e0
xor eax, eax
inc eax
pop ecx
pop esi
mov ecx, dword [ebp - 4]
pop edi
pop ebx
call fcn.004065c9
leave
ret 8