Function at 0x402a4e
Capabilities:
Delete registry key
Delete registry value

Disassembly:
mov eax, 0x404882
call fcn.004043e0
sub esp, 0x224
and dword [ebp - 0x14], 0
push esi
push edi
mov dword [ebp - 0x10], ecx
mov eax, dword [ebp + 0x14]
mov edi, dword [ebp + 8]
and dword [ebp - 4], 0
push edi
mov dword [ebp - 0x24], eax
call fcn.00402606
mov esi, eax
test esi, esi
jl 0x402f16
push ebx
jmp 0x402ed3
mov esi, dword [0x4050a0]
push 0x405318
push edi
mov dword [ebp - 0x1c], 1
call esi
mov ebx, eax
neg ebx
push 0x4052f8
sbb ebx, ebx
push edi
inc ebx
call esi
test eax, eax
je 0x402aba
test ebx, ebx
je 0x402b69
mov ecx, dword [ebp - 0x10]
push edi
call fcn.00402606
mov esi, eax
test esi, esi
jl 0x402f15
cmp dword [ebp + 0x10], 0
je 0x402b69
and dword [ebp + 8], 0
mov cl, byte [edi]
mov byte [ebp - 4], 1
mov eax, edi
jmp 0x402af3
cmp cl, 0x5c
je 0x402af9
push eax
call dword [sym.imp.USER32.dll_CharNextA]
mov cl, byte [eax]
test cl, cl
jne 0x402ae5
jmp 0x402b01
test eax, eax
jne 0x402ede
mov esi, 0x4051ac
push dword [esi]
push edi
call dword [0x4050a0]
test eax, eax
je 0x402b31
add esi, 4
cmp esi, 0x4051dc
jl 0x402b06
mov eax, dword [ebp + 0xc]
push edi
lea ecx, [ebp + 8]
mov dword [ebp + 8], eax
call fcn.00402fc8
and dword [ebp + 8], 0
test ebx, ebx
je 0x402b5d
mov ecx, dword [ebp - 0x10]
push edi
call fcn.00402606
mov esi, eax
test esi, esi
jl 0x402eed
mov ecx, dword [ebp - 0x10]
push edi
call fcn.00402f78
mov esi, eax
lea ecx, [ebp + 8]
test esi, esi
jmp 0x402c09
lea ecx, [ebp + 8]
mov byte [ebp - 4], 0
call fcn.00401104
push 0x405308
push edi
call dword [0x4050a0]
test eax, eax
jne 0x402b8f
mov ecx, dword [ebp - 0x10]
and dword [ebp - 0x1c], eax
push edi
call fcn.00402606
mov esi, eax
test esi, esi
jl 0x402f15
push 0x4052f0
push edi
xor esi, esi
call dword [0x4050a0]
test eax, eax
jne 0x402c75
mov ecx, dword [ebp - 0x10]
lea eax, [ebp - 0x230]
push eax
call fcn.00402606
mov esi, eax
xor ebx, ebx
cmp esi, ebx
jl 0x402f15
mov ecx, dword [ebp - 0x10]
push edi
call fcn.00402606
mov esi, eax
cmp esi, ebx
jl 0x402f15
cmp byte [edi], 0x3d
jne 0x402ee6
cmp dword [ebp + 0x10], ebx
je 0x402c18
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x20], eax
push edi
lea eax, [ebp - 0x230]
push eax
lea eax, [ebp - 0x20]
push eax
mov byte [ebp - 4], 2
call fcn.00403052
mov esi, eax
mov dword [ebp - 0x20], ebx
lea ecx, [ebp - 0x20]
cmp esi, ebx
jl 0x402f10
mov byte [ebp - 4], 0
jmp 0x402e91
cmp dword [ebp + 0x14], ebx
jne 0x402c63
cmp dword [ebp - 0x1c], ebx
je 0x402c63
push 0x20006
push ebx
push dword [ebp + 0xc]
lea ecx, [ebp - 0x18]
mov dword [ebp - 0x18], ebx
call fcn.0040111b
cmp eax, ebx
jne 0x402ef2
lea eax, [ebp - 0x230]
push eax
push dword [ebp - 0x18]
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueA]
cmp eax, ebx
je 0x402c5b
cmp eax, 2
jne 0x402ef2
lea ecx, [ebp - 0x18]
call fcn.00401104
mov ecx, dword [ebp - 0x10]
push edi
call fcn.00402f78
mov esi, eax
cmp esi, ebx
jmp 0x402ed1
mov cl, byte [edi]
mov eax, edi
jmp 0x402c89
cmp cl, 0x5c
je 0x402c8f
push eax
call dword [sym.imp.USER32.dll_CharNextA]
mov cl, byte [eax]
test cl, cl
jne 0x402c7b
jmp 0x402c97
cmp eax, esi
jne 0x402ee6
cmp dword [ebp + 0x10], esi
je 0x402d3d
mov ebx, 0x2001f
push ebx
push edi
push dword [ebp + 0xc]
lea ecx, [ebp - 0x14]
call fcn.0040111b
test eax, eax
je 0x402d03
push 0x20019
push edi
push dword [ebp + 0xc]
lea ecx, [ebp - 0x14]
call fcn.0040111b
test eax, eax
je 0x402d03
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x1c]
push eax
push esi
push ebx
push esi
push esi
push esi
push edi
push dword [ebp + 0xc]
mov dword [ebp - 0x1c], esi
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
cmp eax, esi
jne 0x402efe
lea ecx, [ebp - 0x14]
call fcn.00401104
cmp eax, esi
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x14], ecx
jne 0x402efe
mov ecx, dword [ebp - 0x10]
push edi
call fcn.00402606
mov esi, eax
test esi, esi
jl 0x402f15
cmp byte [edi], 0x3d
jne 0x402e96
mov ecx, dword [ebp - 0x10]
push edi
push 0
lea eax, [ebp - 0x14]
push eax
call fcn.00403052
mov esi, eax
test esi, esi
jl 0x402f15
jmp 0x402e96
cmp dword [ebp + 0x14], esi
jne 0x402d58
push 0x20019
push edi
push dword [ebp + 0xc]
lea ecx, [ebp - 0x14]
call fcn.0040111b
mov dword [ebp - 0x18], eax
jmp 0x402d5f
mov dword [ebp - 0x18], 2
cmp dword [ebp - 0x18], esi
je 0x402d6b
mov dword [ebp + 0x14], 1
push 0x104
push edi
lea eax, [ebp - 0x12c]
push eax
call dword [0x4050a4]
mov ebx, dword [ebp - 0x10]
push edi
mov ecx, ebx
call fcn.00402606
mov esi, eax
test esi, esi
jl 0x402f15
push edi
mov ecx, ebx
call fcn.00402f78
mov esi, eax
test esi, esi
jl 0x402f15
cmp byte [edi], 0x7b
jne 0x402ddc
push dword [ebp + 0x14]
mov ecx, ebx
push 0
push dword [ebp - 0x14]
push edi
call fcn.00402a4e
mov esi, eax
test esi, esi
jge 0x402dca
cmp dword [ebp + 0x14], 0
je 0x402f15
push edi
mov ecx, ebx
call fcn.00402606
mov esi, eax
test esi, esi
jl 0x402f15
cmp dword [ebp - 0x18], 2
mov eax, dword [ebp - 0x24]
mov dword [ebp + 0x14], eax
je 0x402ed3
xor ebx, ebx
cmp dword [ebp - 0x18], ebx
je 0x402e0b
cmp eax, ebx
jne 0x402ed3
push dword [ebp - 0x18]
call fcn.00402f30
pop ecx
mov esi, eax
jmp 0x402f15
cmp dword [ebp - 0x24], ebx
je 0x402e61
push dword [ebp - 0x14]
mov ecx, dword [ebp - 0x10]
call fcn.00402f43
test eax, eax
je 0x402e61
mov ebx, 0x4051ac
push dword [ebx]
lea eax, [ebp - 0x12c]
push eax
call dword [0x4050a0]
test eax, eax
je 0x402ed3
add ebx, 4
cmp ebx, 0x4051dc
jl 0x402e24
cmp dword [ebp - 0x1c], 0
je 0x402ed3
lea eax, [ebp - 0x12c]
push eax
lea ecx, [ebp - 0x14]
call fcn.00402fc8
jmp 0x402ed3
lea ecx, [ebp - 0x14]
call fcn.00401104
cmp eax, ebx
jne 0x402efe
cmp dword [ebp - 0x1c], ebx
je 0x402ed3
lea eax, [ebp - 0x12c]
push eax
push dword [ebp + 0xc]
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
and dword [ebp - 0x1c], 0
test eax, eax
jne 0x402f04
lea ecx, [ebp - 0x1c]
call fcn.00401104
cmp dword [ebp + 0x10], 0
je 0x402ed3
cmp byte [edi], 0x7b
jne 0x402ed3
push edi
call dword [0x405078]
cmp eax, 1
jne 0x402ed3
mov ecx, dword [ebp - 0x10]
push 0
push dword [ebp + 0x10]
push dword [ebp - 0x14]
push edi
call fcn.00402a4e
mov esi, eax
test esi, esi
jl 0x402f15
mov ecx, dword [ebp - 0x10]
push edi
call fcn.00402606
mov esi, eax
test esi, esi
jl 0x402f15
cmp byte [edi], 0x7d
jne 0x402a8a
jmp 0x402f15
lea ecx, [ebp + 8]
call fcn.00401104
mov esi, 0x80020009
jmp 0x402f15
lea ecx, [ebp + 8]
jmp 0x402f10
push eax
call fcn.00402f30
pop ecx
lea ecx, [ebp - 0x18]
jmp 0x402f0e
push eax
jmp 0x402dfe
push eax
call fcn.00402f30
pop ecx
lea ecx, [ebp - 0x1c]
mov esi, eax
call fcn.00401104
pop ebx
lea ecx, [ebp - 0x14]
call fcn.00401104
mov ecx, dword [ebp - 0xc]
pop edi
mov eax, esi
pop esi
mov dword fs:[0], ecx
leave
ret 0x10