Function at 0x4031c0
Capabilities:
Delete registry value

Disassembly:
push 0xffffffffffffffff
push 0x438121
mov eax, dword fs:[0]
push eax
sub esp, 0x428
mov eax, dword [0x44851c]
xor eax, esp
mov dword [esp + 0x424], eax
push ebx
push ebp
push edi
mov eax, dword [0x44851c]
xor eax, esp
push eax
lea eax, [esp + 0x438]
mov dword fs:[0], eax
xor ebx, ebx
push 0x3ff
lea eax, [esp + 0x39]
push ebx
push eax
mov byte [esp + 0x40], bl
call fcn.00423a90
add esp, 0xc
call fcn.0040413e
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x40322d
push 0x80004005
call fcn.00401b90
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x18], eax
lea ecx, [esp + 0x20]
mov dword [esp + 0x440], ebx
call fcn.00404dae
mov byte [esp + 0x440], 1
mov eax, dword [esi + 0xd0]
push ecx
sub eax, 0x10
mov dword [esp + 0x18], esp
mov edi, esp
push eax
mov dword [esi + 0xcc], ebx
call fcn.00401750
add eax, 0x10
add esp, 4
mov ecx, esi
mov dword [edi], eax
call fcn.00402590
mov eax, dword [esi + 0xd0]
push eax
mov ecx, esi
call fcn.004022d0
lea ecx, [esp + 0x14]
push ecx
push 0x20019
push ebx
push str.SoftwareQuickCAM
push SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
cmp eax, ebx
jne 0x4032bb
lea edx, [esp + 0x34]
push edx
lea edi, [esp + 0x18]
call fcn.00402e40
lea ebx, [esp + 0x20]
lea ecx, [esp + 0x34]
call fcn.00402f80
mov eax, dword [esp + 0x28]
xor ebx, ebx
test eax, eax
jle 0x403369
test ebx, ebx
jl 0x403383
cmp ebx, eax
jge 0x403383
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + ebx*4]
mov edi, dword [esp + 0x18]
lea eax, [ecx - 0x10]
add edi, 0xfffffff0
cmp eax, edi
je 0x403349
cmp dword [edi + 0xc], 0
lea ebp, [edi + 0xc]
jl 0x40333b
mov edx, dword [eax]
cmp edx, dword [edi]
jne 0x40333b
push eax
call fcn.00401750
mov dword [esp + 0x18], eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [ebp], eax
dec eax
test eax, eax
jg 0x40332e
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
mov ecx, dword [esp + 0x14]
add ecx, 0x10
mov dword [esp + 0x18], ecx
jmp 0x403349
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [esp + 0x20]
call fcn.00401a40
lea eax, [esp + 0x18]
call fcn.00403ae0
push esi
lea ecx, [esp + 0x1c]
call fcn.004034d0
mov eax, dword [esp + 0x28]
inc ebx
cmp ebx, eax
jl 0x4032d6
call fcn.0040413e
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x403388
push 0x80004005
call fcn.00401b90
call fcn.00404cee
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x1c], eax
push 0xe
push 0x43ec1c
lea ecx, [esp + 0x24]
mov byte [esp + 0x448], 2
call fcn.00401a40
mov ecx, dword [esp + 0x1c]
push ecx
push 0x3e9
mov ecx, esi
call fcn.004073ed
lea edx, [esp + 0x14]
push edx
push 0xb
push 0
push str.SoftwareQuickCAM
push SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x403411
push 0x100
call fcn.00404133
mov eax, dword [esp + 0x18]
add esp, 4
push str.SETUP_PATH
push eax
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueA]
test eax, eax
je 0x403406
mov ecx, dword [esp + 0x14]
push ecx
jmp 0x40340b
mov edx, dword [esp + 0x14]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push 0xc
push 0x43ec2c
lea ecx, [esp + 0x24]
call fcn.00401a40
mov edi, dword [esp + 0x1c]
push edi
push 0x3e9
mov ecx, esi
call fcn.004073ed
call fcn.004030f0
mov eax, dword [esi]
mov edx, dword [eax + 0x15c]
mov ecx, esi
call edx
lea eax, [edi - 0x10]
mov byte [esp + 0x440], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x403467
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x440], 0
call fcn.00404f8b
mov dword [esp + 0x440], 0xffffffff
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4034a3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x438]
mov dword fs:[0], ecx
pop ecx
pop edi
pop ebp
pop ebx
mov ecx, dword [esp + 0x424]
xor ecx, esp
call fcn.00421c4b
add esp, 0x434
ret