Function at 0x402040
Capabilities:
Delete registry key

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x5bc
push edi
mov dword [ebp - 0x50c], 0x46
mov eax, 0x80000002
sub eax, 0x118
mov dword [ebp - 0x528], eax
mov ecx, dword [ebp - 0x528]
mov dword [ebp - 0x510], ecx
mov edx, dword [0x42ead8]
mov dword [ebp - 0x524], edx
mov eax, dword [0x42eadc]
mov dword [ebp - 0x520], eax
mov ecx, dword [0x42eae0]
mov dword [ebp - 0x51c], ecx
mov dx, word [0x42ead4]
mov word [ebp - 0x508], dx
lea eax, [ebp - 0x524]
push eax
call fcn.004047e0
add esp, 4
push 0x20
mov ecx, dword [ebp + 0x18]
push ecx
call fcn.00401820
add esp, 8
test eax, eax
jne 0x4020c9
mov byte [ebp - 0x508], 0
lea edx, [ebp - 0x508]
push edx
mov eax, dword [ebp + 0x18]
push eax
lea ecx, [ebp - 0x508]
push ecx
lea edx, [ebp - 0x524]
push edx
push 0x42eac8
push 0x42eaa8
lea eax, [ebp - 0x504]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x1c
mov byte [ebp - 0x400], 0
mov ecx, 0xff
xor eax, eax
lea edi, [ebp - 0x3ff]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, dword [0x42e93c]
push ecx
lea edx, [ebp - 0x400]
push edx
call fcn.00402560
add esp, 8
mov eax, dword [ebp + 8]
push eax
lea ecx, [ebp - 0x400]
push ecx
call fcn.00402510
add esp, 8
mov edx, dword [ebp - 0x510]
add edx, 0x118
mov dword [ebp - 0x510], edx
push 0xf003f
push 0
push 0
call dword [0x42ecac]
mov dword [ebp - 0x518], eax
push 0
push 0
push 0
push 0
push 0
lea eax, [ebp - 0x504]
push eax
push 0
push 2
mov ecx, dword [ebp + 0x1c]
push ecx
push 0xf01ff
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp - 0x518]
push ecx
call dword [0x42ecc4]
mov dword [ebp - 0x514], eax
push 0xf01ff
mov edx, dword [ebp + 8]
push edx
mov eax, dword [ebp - 0x518]
push eax
call dword [0x42ecf4]
mov dword [ebp - 0x514], eax
cmp dword [ebp - 0x514], 0
je 0x40248d
push 0
push 0
mov ecx, dword [ebp + 0x10]
push ecx
push 1
push 0x42ea9c
lea edx, [ebp - 0x400]
push edx
mov eax, dword [ebp - 0x510]
push eax
call fcn.00402e20
push 0x42ea90
call fcn.00401870
add esp, 4
add eax, 1
push eax
push 0x42ea90
lea ecx, [ebp - 0x400]
push ecx
call fcn.00401870
add esp, 4
lea edx, [ebp + eax - 0x400]
push edx
call fcn.00401660
add esp, 0xc
mov dword [ebp - 0x594], 0x42ea38
mov dword [ebp - 0x590], 0x42ea4c
push 1
mov eax, dword [ebp - 0x594]
push eax
call fcn.00401780
push 1
mov ecx, dword [ebp - 0x590]
push ecx
call fcn.00401780
push 0
push 0
push 0
push 0
push 0
lea edx, [ebp - 0x400]
push edx
mov eax, dword [ebp - 0x510]
push eax
call fcn.00402e20
mov ecx, dword [0x42ea84]
mov dword [ebp - 0x58c], ecx
mov edx, dword [0x42ea88]
mov dword [ebp - 0x588], edx
mov ax, word [0x42ea8c]
mov word [ebp - 0x584], ax
mov ecx, 0x16
xor eax, eax
lea edi, [ebp - 0x582]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea ecx, [ebp - 0x58c]
push ecx
call fcn.00401870
add esp, 4
lea edx, [ebp + eax - 0x58c]
mov dword [ebp - 0x5a4], edx
push 0xa
mov eax, dword [ebp - 0x5a4]
push eax
call fcn.00401ed0
add esp, 8
mov ecx, dword [ebp - 0x5a4]
mov byte [ecx + 0xa], 0
mov edx, dword [0x42ea78]
mov dword [ebp - 0x5a0], edx
mov eax, dword [0x42ea7c]
mov dword [ebp - 0x59c], eax
mov ecx, dword [0x42ea80]
mov dword [ebp - 0x598], ecx
push 0
push 0
call fcn.00402580
push eax
push 1
lea edx, [ebp - 0x5a0]
push edx
call fcn.004047e0
add esp, 4
push eax
lea eax, [ebp - 0x58c]
push eax
mov ecx, dword [ebp - 0x510]
push ecx
call fcn.00402e20
mov edx, dword [0x42ea74]
mov dword [ebp - 0x599], edx
push 0
mov eax, dword [ebp + 0x14]
push eax
call fcn.00401870
add esp, 4
push eax
mov ecx, dword [ebp + 0x14]
push ecx
push 2
lea edx, [ebp - 0x5a0]
push edx
lea eax, [ebp - 0x58c]
push eax
mov ecx, dword [ebp - 0x510]
push ecx
call fcn.00402e20
mov edx, dword [0x42ea6c]
mov dword [ebp - 0x5b0], edx
mov ax, word [0x42ea70]
mov word [ebp - 0x5ac], ax
mov cl, byte [0x42ea72]
mov byte [ebp - 0x5aa], cl
push 0
push 0
push 0x42f340
push 1
lea edx, [ebp - 0x5b0]
push edx
call fcn.004047e0
add esp, 4
push eax
lea eax, [ebp - 0x58c]
push eax
mov ecx, dword [ebp - 0x510]
push ecx
call fcn.00402e20
cmp dword [ebp + 0x20], 0
je 0x402423
mov edx, dword [ebp + 0x20]
movsx eax, byte [edx]
test eax, eax
je 0x402423
mov ecx, dword [0x42ea60]
mov dword [ebp - 0x5bc], ecx
mov edx, dword [0x42ea64]
mov dword [ebp - 0x5b8], edx
mov ax, word [0x42ea68]
mov word [ebp - 0x5b4], ax
mov byte [ebp - 0x5bc], 0x55
push 1
mov ecx, dword [ebp + 0x20]
push ecx
call fcn.00401870
add esp, 4
push eax
mov edx, dword [ebp + 0x20]
push edx
push 1
lea eax, [ebp - 0x5bc]
push eax
lea ecx, [ebp - 0x58c]
push ecx
mov edx, dword [ebp - 0x510]
push edx
call fcn.00402e20
lea eax, [ebp - 0x400]
push eax
push 0x80000002
lea ecx, [ebp - 0x58c]
push ecx
mov edx, dword [ebp - 0x510]
push edx
call fcn.00403220
add esp, 0x10
lea eax, [ebp - 0x58c]
push eax
push 0x80000002
call dword [sym.imp.SHLWAPI.dll_SHDeleteKeyA]
mov ecx, dword [ebp - 0x514]
push ecx
call fcn.004031a0
add esp, 4
mov edx, dword [ebp + 0x14]
push edx
call fcn.004027b0
add esp, 4
test eax, eax
jne 0x40248d
mov eax, dword [ebp - 0x514]
push eax
call dword [0x42ecc0]
mov dword [ebp - 0x514], 0
mov ecx, dword [ebp - 0x518]
push ecx
call dword [0x42ecbc]
mov eax, dword [ebp - 0x514]
pop edi
mov esp, ebp
pop ebp
ret