Function at 0x40b8a0
Capabilities:
Delete registry value

Disassembly:
push 0x80
mov eax, 0x42b8ed
call fcn.00411c0a
mov esi, edx
mov dword [ebp - 0x74], esi
mov edi, ecx
mov ebx, dword [ebp + 8]
lea edx, [ebp - 0x7c]
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x6c], eax
mov eax, dword [esi + ebx*4 + 4]
mov ecx, dword [esi + ebx*4 + 0x10]
mov dword [ebp - 0x48], eax
mov eax, dword [esi + ebx*4 + 8]
mov dword [ebp - 0x68], eax
mov eax, dword [esi + ebx*4 + 0xc]
mov dword [ebp - 0x80], ecx
mov ecx, eax
mov dword [ebp - 0x78], eax
call fcn.0040b1f9
xor ecx, ecx
mov dword [ebp - 0x44], ecx
test al, al
jne 0x40b915
mov ecx, dword [ebp - 0x80]
lea edx, [ebp - 0x7c]
call fcn.0040b1f9
test al, al
jne 0x40b91f
push dword [esi + ebx*4 + 0xc]
push 0x4093b0
call fcn.0040a91c
pop ecx
pop ecx
or eax, 0xffffffff
jmp 0x40bf25
mov eax, dword [ebp - 0x78]
dec ebx
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x78], ecx
mov eax, dword [esi + ebx*4 + 0x14]
sub edi, ebx
mov esi, dword [ebp - 0x48]
sub edi, 6
mov ecx, esi
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x70], edi
call fcn.0040b157
mov dword [ebp - 0x88], eax
test eax, eax
jne 0x40b959
push esi
push 0x4093f8
call fcn.0040a91c
pop ecx
pop ecx
call fcn.0040b23a
jmp 0x40b90d
push dword [ebp - 0x68]
xor eax, eax
mov dword [ebp - 0x2c], 7
xor edi, edi
mov word [ebp - 0x40], ax
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x30], edi
call fcn.0040c172
mov dword [ebp - 4], edi
lea ecx, [ebp - 0x40]
cmp dword [ebp - 0x2c], 8
jb 0x40b985
mov ecx, dword [ebp - 0x40]
mov esi, dword [ebp - 0x30]
cmp esi, 5
jbe 0x40b992
push 5
pop eax
jmp 0x40b994
mov eax, esi
push eax
mov edx, 0x40943c
call fcn.0040c6bc
test eax, eax
jne 0x40b9de
cmp esi, 5
jb 0x40b9de
ja 0x40b9de
push 0x208
call fcn.00411b73
mov esi, eax
mov dword [esp], 0x104
push esi
push edi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push esi
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
push esi
lea ecx, [ebp - 0x40]
call fcn.0040c172
push esi
call fcn.004118df
pop ecx
jmp 0x40b9eb
push 0x409448
lea ecx, [ebp - 0x40]
call fcn.0040c067
cmp dword [ebp - 0x2c], 8
lea esi, [ebp - 0x40]
jb 0x40b9f7
mov esi, dword [ebp - 0x40]
or edi, 0xffffffff
cmp dword [ebp - 0x6c], 0
je 0x40bae3
test esi, esi
je 0x40bae3
lea ecx, [ebp - 0x68]
call fcn.0040c14b
xor eax, eax
mov dword [ebp - 0x4c], eax
lea ecx, [ebp - 0x54]
call fcn.0040c14b
lea ecx, [ebp - 0x64]
call fcn.0040c14b
lea ecx, [ebp - 0x50]
call fcn.0040c14b
push esi
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 5
call fcn.0040ca88
lea edx, [ebp - 0x68]
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x48]
call fcn.0040c80f
mov byte [ebp - 4], 5
mov esi, eax
mov ecx, dword [ebp - 0x48]
add ecx, 0xfffffff0
call fcn.0040ae9d
test esi, esi
jns 0x40ba99
mov ecx, dword [ebp - 0x50]
lea ecx, [ecx - 0x10]
call fcn.0040ae9d
mov ecx, dword [ebp - 0x64]
lea ecx, [ecx - 0x10]
call fcn.0040ae9d
mov ecx, dword [ebp - 0x54]
lea ecx, [ecx - 0x10]
call fcn.0040ae9d
push dword [ebp - 0x4c]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov ecx, dword [ebp - 0x68]
lea ecx, [ecx - 0x10]
call fcn.0040ae9d
jmp 0x40bae3
mov edi, dword [ebp - 0x68]
lea edx, [ebp - 0x58]
mov ecx, edi
call fcn.0040e033
test eax, eax
jns 0x40bb58
mov ecx, dword [ebp - 0x50]
lea ecx, [ecx - 0x10]
call fcn.0040ae9d
mov ecx, dword [ebp - 0x64]
lea ecx, [ecx - 0x10]
call fcn.0040ae9d
mov ecx, dword [ebp - 0x54]
lea ecx, [ecx - 0x10]
call fcn.0040ae9d
push dword [ebp - 0x4c]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
lea ecx, [edi - 0x10]
call fcn.0040ae9d
or edi, 0xffffffff
push 0x409468
call fcn.0040a91c
cmp dword [ebp - 0x2c], 8
lea eax, [ebp - 0x40]
pop ecx
jb 0x40bafa
mov eax, dword [ebp - 0x40]
push eax
push 0x409330
call fcn.0040a91c
mov eax, dword [ebp - 0x78]
pop ecx
pop ecx
test eax, eax
je 0x40bb1b
push eax
push 0x4094e4
call fcn.0040a91c
pop ecx
pop ecx
mov edx, dword [ebp - 0x2c]
cmp edx, 8
jb 0x40bf23
mov ecx, dword [ebp - 0x40]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40bf1a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40bf2d
jmp 0x40bf1a
push dword [ebp - 0x6c]
lea ecx, [ebp - 0x64]
call fcn.0040c106
cmp byte [ebp - 0x58], 0
je 0x40bbc2
lea eax, [ebp - 0x54]
push eax
lea ecx, [ebp - 0x8c]
call fcn.0040c9b8
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x64]
mov eax, dword [eax]
push dword [eax - 0xc]
push eax
call fcn.0040cb60
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0x8c]
lea ecx, [ecx - 0x10]
call fcn.0040ae9d
mov edx, dword [ebp - 0x78]
test edx, edx
je 0x40bbc2
mov ecx, edx
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, word [ebp - 0x44]
jne 0x40bba8
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x64]
call fcn.0040cb60
mov esi, dword [ebp - 0x64]
lea eax, [ebp - 0x4c]
push eax
push esi
push 0x1c
call fcn.00411314
test eax, eax
jns 0x40bbe8
mov ecx, dword [ebp - 0x50]
lea ecx, [ecx - 0x10]
call fcn.0040ae9d
lea ecx, [esi - 0x10]
jmp 0x40babf
push dword [ebp - 0x4c]
call fcn.0041145c
test eax, eax
je 0x40bbd5
mov edx, dword [ebp - 0x4c]
mov cl, byte [ebp - 0x58]
call fcn.0040db87
test eax, eax
jne 0x40bbd5
lea eax, [ebp - 0x64]
push eax
lea ecx, [ebp - 0x50]
call fcn.0040ca1b
push 7
push 0x409638
lea ecx, [ebp - 0x50]
call fcn.0040cb60
mov edi, dword [ebp - 0x50]
test esi, esi
jne 0x40bc31
mov dword [ebp - 0x44], 0x80070057
jmp 0x40bcbf
test edi, edi
je 0x40bc25
call fcn.0040cd2c
test al, al
je 0x40bc47
mov dword [ebp - 0x44], 0x8000ffff
jmp 0x40bcbf
cmp dword [0x42e71c], 0
je 0x40bc3e
call fcn.0040cd2c
test al, al
jne 0x40bc3e
push ecx
push ecx
push dword [ebp - 0x6c]
cmp byte [ebp - 0x58], al
je 0x40bc6d
push edi
mov edx, esi
call fcn.0040da28
jmp 0x40bc76
mov edx, edi
mov ecx, esi
call fcn.0040d983
push 0xffffffffffffffff
push dword [0x42e688]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
call fcn.0040e483
mov ecx, eax
call fcn.0040f6f2
mov dword [ebp - 0x44], eax
test eax, eax
js 0x40bcbf
mov cl, 1
call fcn.0040d745
mov dword [ebp - 0x44], eax
test eax, eax
js 0x40bcbf
mov al, byte [ebp - 0x58]
push dword [0x42e688]
mov byte [0x42e718], al
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x44], eax
lea ecx, [edi - 0x10]
call fcn.0040ae9d
lea ecx, [esi - 0x10]
call fcn.0040ae9d
mov ecx, dword [ebp - 0x54]
lea ecx, [ecx - 0x10]
call fcn.0040ae9d
push dword [ebp - 0x4c]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
xor eax, eax
mov byte [ebp - 4], al
mov ecx, dword [ebp - 0x68]
lea ecx, [ecx - 0x10]
call fcn.0040ae9d
cmp dword [ebp - 0x44], 0
jne 0x40bae0
push dword [ebp - 0x6c]
xor eax, eax
mov dword [ebp - 0x14], 7
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x18], eax
mov word [ebp - 0x28], ax
call fcn.0040c172
push 0x407cfc
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 8
call fcn.0040c067
push dword [ebp - 0x84]
lea ecx, [ebp - 0x28]
call fcn.0040c067
xor edx, edx
mov esi, edx
mov dword [ebp - 0x58], edx
mov dword [ebp - 0x5c], esi
mov dword [ebp - 0x54], edx
mov byte [ebp - 4], 9
lea eax, [ebp - 0x28]
mov edi, dword [ebp - 0x88]
cmp edi, 2
jne 0x40bd82
cmp dword [ebp - 0x14], 8
jb 0x40bd5f
mov eax, dword [ebp - 0x28]
lea ecx, [ebp - 0x88]
mov dword [ebp - 0x48], edx
push ecx
lea ecx, [ebp - 0x48]
push ecx
push edx
push 0x2001f
push edx
push edx
push edx
push eax
push dword [ebp - 0x7c]
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
jmp 0x40bda2
cmp dword [ebp - 0x14], 8
jb 0x40bd8b
mov eax, dword [ebp - 0x28]
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x48], edx
push ecx
push 0x2001f
push edx
push eax
push dword [ebp - 0x7c]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x40bdb7
mov esi, dword [ebp - 0x48]
xor ecx, ecx
mov eax, ecx
mov dword [ebp - 0x58], ecx
mov dword [ebp - 0x5c], esi
test eax, eax
je 0x40bdda
cmp dword [ebp - 0x14], 8
lea ecx, [ebp - 0x28]
jb 0x40bdc3
mov ecx, dword [ebp - 0x28]
push eax
push ecx
push dword [ebp - 0x80]
push 0x409500
call fcn.0040a91c
add esp, 0x10
jmp 0x40bea6
xor ecx, ecx
mov al, cl
sub edi, 1
je 0x40be9b
sub edi, 1
je 0x40be7c
sub edi, 1
je 0x40be3b
sub edi, 1
je 0x40be1f
sub edi, 1
jne 0x40bec1
cmp dword [ebp - 0x70], ecx
jne 0x40bea1
mov edx, dword [ebp - 0x84]
lea ecx, [ebp - 0x5c]
call fcn.0040b5de
jmp 0x40bec1
cmp dword [ebp - 0x70], 1
jne 0x40bea1
mov edx, dword [ebp - 0x74]
lea ecx, [ebp - 0x5c]
push dword [edx + ebx*4 + 0x18]
call fcn.0040ad0f
mov al, 1
jmp 0x40bebe
cmp dword [ebp - 0x70], 1
jne 0x40bea1
mov edx, dword [ebp - 0x74]
mov byte [ebp - 0x5d], cl
mov edi, dword [edx + ebx*4 + 0x18]
push edi
push esi
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
test eax, eax
jne 0x40be68
push edi
push 0x409258
call fcn.0040a91c
pop ecx
pop ecx
mov al, 1
jmp 0x40bec1
push eax
push edi
push 0x409280
call fcn.0040a91c
mov al, byte [ebp - 0x5d]
add esp, 0xc
jmp 0x40bec1
cmp dword [ebp - 0x70], 3
jne 0x40bea1
mov edx, dword [ebp - 0x74]
lea ecx, [ebp - 0x5c]
push dword [edx + ebx*4 + 0x20]
push dword [edx + ebx*4 + 0x1c]
mov edx, dword [edx + ebx*4 + 0x18]
call fcn.0040b4a0
jmp 0x40bebe
cmp dword [ebp - 0x70], 2
je 0x40beab
call fcn.0040b23a
or edi, 0xffffffff
jmp 0x40bec5
mov edx, dword [ebp - 0x74]
lea ecx, [ebp - 0x5c]
push dword [edx + ebx*4 + 0x1c]
mov edx, dword [edx + ebx*4 + 0x18]
call fcn.0040b342
mov esi, dword [ebp - 0x5c]
movzx edi, al
dec edi
test esi, esi
je 0x40bed0
push esi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov edx, dword [ebp - 0x14]
cmp edx, 8
jb 0x40bf05
mov ecx, dword [ebp - 0x28]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40befc
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40bf2d
push edx
push ecx
call fcn.00411b65
pop ecx
pop ecx
xor eax, eax
mov dword [ebp - 0x14], 7
mov dword [ebp - 0x18], eax
mov word [ebp - 0x28], ax
jmp 0x40bb1b
push edx
push ecx
call fcn.00411b65
pop ecx
pop ecx
mov eax, edi
call fcn.00411bb4
ret 8
call fcn.0041c331
int3