Function at 0x10040360
Capabilities:
Delete registry value

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x225c
call fcn.1004b8e0
mov eax, dword [0x100751e0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push ebx
mov dword [ebp - 0x2214], eax
mov ebx, ecx
xor eax, eax
push esi
mov dword [ebp - 0x2240], eax
mov dword [ebp - 0x2230], eax
mov dword [ebp - 0x222c], eax
mov dword [ebp - 0x2228], eax
mov eax, dword [ebp + 0x14]
push edi
mov edi, dword [ebp + 8]
mov dword [ebp - 0x225c], eax
push edi
call fcn.1003fafd
mov esi, eax
test esi, esi
js 0x10040906
push 0x7d
pop eax
cmp word [edi], ax
je 0x10040906
xor eax, eax
push str.Delete
inc eax
push edi
mov dword [ebp - 0x2224], eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
neg eax
push 0x100670cc
sbb esi, esi
inc esi
push edi
mov dword [ebp - 0x2210], esi
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x100403ff
test esi, esi
je 0x100404cb
push edi
mov ecx, ebx
call fcn.1003fafd
mov esi, eax
test esi, esi
js 0x10040906
xor esi, esi
cmp dword [ebp + 0x10], esi
je 0x100404cd
push 0x5c
push edi
mov dword [ebp - 0x2220], esi
mov dword [ebp - 0x221c], esi
mov dword [ebp - 0x2218], esi
call fcn.10040b41
pop ecx
pop ecx
test eax, eax
jne 0x100408f6
push edi
mov ecx, ebx
call fcn.1003f508
test eax, eax
je 0x10040482
mov eax, dword [ebp - 0x2214]
lea ecx, [ebp - 0x2220]
push edi
mov dword [ebp - 0x2220], eax
mov dword [ebp - 0x221c], esi
mov dword [ebp - 0x2218], esi
call fcn.1003ff1d
mov dword [ebp - 0x2220], esi
mov dword [ebp - 0x221c], esi
mov dword [ebp - 0x2218], esi
cmp dword [ebp - 0x2210], esi
je 0x100404be
push edi
mov ecx, ebx
call fcn.1003fafd
mov esi, eax
test esi, esi
js 0x100408ee
push edi
mov ecx, ebx
call fcn.10040ab8
mov esi, eax
lea ecx, [ebp - 0x2220]
call fcn.1003f5d7
test esi, esi
js 0x10040906
jmp 0x10040894
lea ecx, [ebp - 0x2220]
call fcn.1003f5d7
jmp 0x100404cd
xor esi, esi
push str.NoRemove
push edi
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x100404f5
push edi
mov ecx, ebx
mov dword [ebp - 0x2224], esi
call fcn.1003fafd
mov esi, eax
test esi, esi
js 0x10040906
push 0x100670c4
push edi
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x10040610
lea eax, [ebp - 0x220c]
mov ecx, ebx
push eax
call fcn.1003fafd
mov esi, eax
test esi, esi
js 0x10040906
push edi
mov ecx, ebx
call fcn.1003fafd
mov esi, eax
test esi, esi
js 0x10040906
push 0x3d
pop eax
cmp word [edi], ax
jne 0x10040901
cmp dword [ebp + 0x10], 0
je 0x10040596
mov eax, dword [ebp - 0x2214]
mov ecx, ebx
mov dword [ebp - 0x224c], eax
xor eax, eax
mov dword [ebp - 0x2248], eax
mov dword [ebp - 0x2244], eax
lea eax, [ebp - 0x220c]
push edi
push eax
lea eax, [ebp - 0x224c]
push eax
call fcn.1003eead
mov esi, eax
lea ecx, [ebp - 0x224c]
xor eax, eax
mov dword [ebp - 0x224c], eax
mov dword [ebp - 0x2248], eax
mov dword [ebp - 0x2244], eax
jmp 0x100404ac
cmp dword [ebp + 0x14], 0
jne 0x10040603
cmp dword [ebp - 0x2224], 0
je 0x10040603
xor eax, eax
lea ecx, [ebp - 0x2258]
push 0x20006
push eax
push dword [ebp - 0x2214]
mov dword [ebp - 0x2258], eax
mov dword [ebp - 0x2254], eax
mov dword [ebp - 0x2250], eax
call fcn.1003fc38
test eax, eax
jne 0x10040926
lea eax, [ebp - 0x220c]
push eax
push dword [ebp - 0x2258]
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
test eax, eax
je 0x100405f8
cmp eax, 2
jne 0x10040926
lea ecx, [ebp - 0x2258]
call fcn.1003f5d7
push edi
mov ecx, ebx
call fcn.10040ab8
jmp 0x100403b1
push 0x5c
push edi
call fcn.10040b41
pop ecx
pop ecx
test eax, eax
jne 0x10040901
cmp dword [ebp + 0x10], eax
je 0x100406b4
mov esi, dword [ebp - 0x2214]
lea ecx, [ebp - 0x2230]
push 0x2001f
push edi
push esi
call fcn.1003fc38
test eax, eax
je 0x1004067d
push 0x20019
push edi
push esi
lea ecx, [ebp - 0x2230]
call fcn.1003fc38
test eax, eax
je 0x1004067d
xor eax, eax
lea ecx, [ebp - 0x2230]
push eax
push eax
push 0x2001f
push eax
push eax
push edi
push esi
call fcn.1003f5f1
test eax, eax
jne 0x100407aa
push edi
mov ecx, ebx
call fcn.1003fafd
mov esi, eax
test esi, esi
js 0x10040906
push 0x3d
pop eax
cmp word [edi], ax
jne 0x10040894
push edi
xor eax, eax
mov ecx, ebx
push eax
lea eax, [ebp - 0x2230]
push eax
call fcn.1003eead
mov esi, eax
jmp 0x100404b1
mov esi, dword [ebp + 0x14]
test esi, esi
jne 0x100406d4
push 0x20019
push edi
push dword [ebp - 0x2214]
lea ecx, [ebp - 0x2230]
call fcn.1003fc38
jmp 0x100406d7
push 2
pop eax
push 1
test eax, eax
mov dword [ebp - 0x2210], eax
pop eax
push 0xffffffffffffffff
cmovne esi, eax
lea eax, [ebp - 0x20c]
push edi
push 0x104
push eax
mov dword [ebp + 0x14], esi
call fcn.1004b480
push eax
call fcn.1003f3c0
add esp, 0x14
mov ecx, ebx
push edi
call fcn.1003fafd
mov esi, eax
test esi, esi
js 0x10040906
push edi
mov ecx, ebx
call fcn.10040ab8
mov esi, eax
test esi, esi
js 0x10040906
push 0x7b
pop eax
cmp word [edi], ax
jne 0x10040786
mov ecx, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, word [ebp - 0x2240]
jne 0x10040736
sub ecx, edx
xor eax, eax
sar ecx, 1
inc eax
cmp ecx, eax
jne 0x10040786
push dword [ebp + 0x14]
xor eax, eax
mov ecx, ebx
push eax
push dword [ebp - 0x2230]
push edi
call fcn.10040360
mov esi, eax
test esi, esi
jns 0x10040774
cmp dword [ebp + 0x14], 0
je 0x10040906
push edi
mov ecx, ebx
call fcn.1003fafd
mov esi, eax
test esi, esi
js 0x10040906
mov eax, dword [ebp - 0x2210]
mov ecx, dword [ebp - 0x225c]
mov dword [ebp + 0x14], ecx
cmp eax, 2
je 0x100403bb
test eax, eax
je 0x100407b8
test ecx, ecx
jne 0x100403bb
push eax
call fcn.1003f430
pop ecx
mov esi, eax
jmp 0x10040906
test ecx, ecx
je 0x10040807
push dword [ebp - 0x2230]
mov ecx, ebx
call fcn.1003f9f3
test eax, eax
je 0x10040807
lea eax, [ebp - 0x20c]
mov ecx, ebx
push eax
call fcn.1003f508
test eax, eax
je 0x100403bb
cmp dword [ebp - 0x2224], 0
je 0x100403bb
lea eax, [ebp - 0x20c]
push eax
lea ecx, [ebp - 0x2230]
call fcn.1003ff1d
jmp 0x100403bb
push dword [ebp - 0x2230]
mov ecx, ebx
call fcn.1003f9f3
lea ecx, [ebp - 0x2230]
mov dword [ebp - 0x2210], eax
call fcn.1003f5d7
test eax, eax
jne 0x100407aa
cmp dword [ebp - 0x2224], eax
je 0x100403bb
cmp dword [ebp - 0x2210], eax
jne 0x100403bb
mov eax, dword [ebp - 0x2214]
lea ecx, [ebp - 0x223c]
mov dword [ebp - 0x223c], eax
xor eax, eax
mov dword [ebp - 0x2238], eax
mov dword [ebp - 0x2234], eax
lea eax, [ebp - 0x20c]
push eax
call fcn.1003f7a2
xor ecx, ecx
mov dword [ebp - 0x223c], ecx
mov dword [ebp - 0x2238], ecx
mov dword [ebp - 0x2234], ecx
test eax, eax
jne 0x1004093c
lea ecx, [ebp - 0x223c]
call fcn.1003f5d7
cmp dword [ebp + 0x10], 0
je 0x100403bb
push 0x7b
pop eax
cmp word [edi], ax
jne 0x100403bb
mov ecx, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, word [ebp - 0x2240]
jne 0x100408af
sub ecx, edx
xor eax, eax
sar ecx, 1
inc eax
cmp ecx, eax
jne 0x100403bb
xor eax, eax
mov ecx, ebx
push eax
push dword [ebp + 0x10]
push dword [ebp - 0x2230]
push edi
call fcn.10040360
mov esi, eax
test esi, esi
js 0x10040906
mov ecx, ebx
jmp 0x100403ab
lea ecx, [ebp - 0x2220]
jmp 0x10040935
lea ecx, [ebp - 0x2220]
call fcn.1003f5d7
mov esi, 0x80020009
lea ecx, [ebp - 0x2230]
call fcn.1003f5d7
mov ecx, dword [ebp - 4]
mov eax, esi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.1004a139
mov esp, ebp
pop ebp
ret 0x10
push eax
call fcn.1003f430
pop ecx
lea ecx, [ebp - 0x2258]
mov esi, eax
call fcn.1003f5d7
jmp 0x10040906
push eax
call fcn.1003f430
pop ecx
lea ecx, [ebp - 0x223c]
jmp 0x10040933