Function at 0x4add30
Capabilities:
Delete registry key

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x24
mov eax, dword [ebp + 0xc]
test eax, eax
push ebx
push esi
mov esi, eax
push edi
mov dword [esp + 0xc], esi
je 0x4add4c
add dword [eax], 1
lea eax, [esp + 0x1c]
push eax
lea eax, [ebp + 0xc]
mov dword [esp + 0x14], 0
call fcn.004adaf0
test al, al
jne 0x4add85
test esi, esi
je 0x4add6e
call fcn.004ab850
mov esi, dword [ebp + 0xc]
test esi, esi
je 0x4add7a
call fcn.004ab850
xor al, al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov edi, dword [ebp + 0xc]
test edi, edi
je 0x4add94
mov eax, dword [edi + 4]
add eax, 1
jmp 0x4add99
mov eax, 0x57e81c
mov ebx, dword [esp + 0x1c]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x1c]
push edx
push 0
push 0xf003f
push 0
push 0
push 0
push eax
push ebx
call esi
test eax, eax
je 0x4ade15
test edi, edi
je 0x4addce
mov eax, dword [edi + 4]
add eax, 1
jmp 0x4addd3
mov eax, 0x57e81c
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x1c]
push edx
push 0
push 0x20019
push 0
push 0
push 0
push eax
push ebx
call esi
test eax, eax
je 0x4ade15
mov esi, dword [esp + 0xc]
test esi, esi
je 0x4addff
call fcn.004ab850
test edi, edi
je 0x4ade0a
mov esi, edi
call fcn.004ab850
xor al, al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
cmp dword [esp + 0x10], 1
jne 0x4ade69
cmp byte [ebp + 0x10], 0
jne 0x4ade69
test edi, edi
je 0x4ade2e
mov eax, dword [edi + 4]
add eax, 1
jmp 0x4ade33
mov eax, 0x57e81c
push eax
push ebx
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
mov eax, dword [esp + 0x18]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov esi, dword [esp + 0xc]
test esi, esi
je 0x4ade53
call fcn.004ab850
test edi, edi
je 0x4ade0a
mov esi, edi
call fcn.004ab850
xor al, al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
xor edi, edi
mov esi, 0x57e81c
lea eax, [esp + 0x14]
mov dword [esp + 0x14], 0
call fcn.004ab970
mov esi, dword [esp + 0x14]
test esi, esi
je 0x4ade90
mov dword [esi + 0x10], 0x600
mov edi, dword [ebp + 8]
add edi, 4
lea ebx, [esp + 0x14]
mov dword [esp + 0x1c], edi
call fcn.004abdf0
xor ebx, ebx
cmp esi, ebx
je 0x4adeae
call fcn.004ab850
mov eax, dword [esp + 0xc]
cmp eax, ebx
lea ecx, [esp + 0x20]
push 0x5c
push ecx
mov edx, esp
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
mov dword [edx], eax
je 0x4aded4
add dword [eax], 1
call fcn.00519080
mov eax, dword [esp + 0x30]
add esp, 8
cmp eax, 1
jle 0x4adf2c
lea esi, [eax - 1]
cmp esi, ebx
jle 0x4adf2c
mov edi, dword [esp + 0x24]
jmp 0x4adef6
mov eax, dword [esp + 0x28]
cmp ebx, eax
jb 0x4adf01
lea ecx, [ebx + 1]
mov dword [esp + 0x28], ecx
mov edx, dword [esp + 0x1c]
push edi
push edx
call fcn.004abfa0
lea eax, [esi - 1]
cmp ebx, eax
jge 0x4adf22
mov eax, dword [esp + 0x1c]
push 0x583870
push eax
call fcn.004abe40
add ebx, 1
add edi, 4
cmp ebx, esi
jl 0x4adef2
mov esi, dword [ebp + 8]
lea edi, [esi + 8]
lea ebx, [esp + 0xc]
call fcn.004abdf0
mov eax, dword [esp + 0x24]
test eax, eax
mov ecx, dword [esp + 0x18]
mov dword [esi], ecx
je 0x4adf4e
call fcn.00401e20
mov esi, dword [esp + 0xc]
test esi, esi
je 0x4adf5b
call fcn.004ab850
mov esi, dword [ebp + 0xc]
test esi, esi
je 0x4adf67
call fcn.004ab850
pop edi
pop esi
mov al, 1
pop ebx
mov esp, ebp
pop ebp
ret 0xc