Function at 0x1cb9960
Capabilities:
Delete registry key

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x5c
mov ebx, dword [ebp + 0xc]
mov eax, dword [0x1d8f008]
xor eax, ebp
mov dword [ebp - 0x10], eax
test ebx, ebx
je 0x1cb99a8
push 0x100
push ebx
call fcn.01cdd25e
add esp, 8
cmp eax, 0x100
jne 0x1cb99a8
xor ebx, ebx
and bl, 1
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.01cc3f9d
mov eax, ebx
add esp, 0x5c
pop esi
pop edi
pop ebx
pop ebp
ret
cmp byte [0x1da20ec], 0
jne 0x1cb99ba
call fcn.01d1cfe0
test al, al
je 0x1cb998f
xor esi, esi
cmp byte [0x1da20ed], 1
adc esi, 1
mov eax, dword [ebp + 8]
test eax, eax
cmovne esi, eax
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x28], 0
test ebx, ebx
je 0x1cb9a07
lea edi, [ebp - 0x30]
mov ecx, edi
push ebx
call fcn.01d1dba0
mov ecx, edi
call fcn.01cba000
mov ecx, esi
mov edx, dword [ebp + 0x10]
push edi
call fcn.01d1d160
add esp, 4
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 0
lea ebx, [ebp - 0x54]
mov ecx, ebx
mov edx, esi
call fcn.01d1d330
cmp byte [ebp - 0x31], 0
js 0x1cb9a4f
mov word [ebp - 0x3c], 0
mov byte [ebp - 0x31], 0
jmp 0x1cb9a5e
mov eax, dword [ebp - 0x3c]
mov word [eax], 0
mov dword [ebp - 0x38], 0
mov esi, dword [ebp - 0x48]
mov edi, dword [ebp - 0x44]
cmp edi, esi
je 0x1cb9a80
nop dword [eax + eax]
add edi, 0xfffffff4
push edi
call fcn.01d009a0
add esp, 4
cmp edi, esi
jne 0x1cb9a70
mov dword [ebp - 0x44], esi
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x14], 0
movzx eax, word [0x1da20f0]
or ax, word [0x1da22f0]
je 0x1cb9ac5
movzx eax, byte [ebp - 0x49]
test al, al
js 0x1cb9ab5
and eax, 0x7f
jmp 0x1cb9ab8
mov eax, dword [ebp - 0x50]
dec eax
lea ecx, [ebp - 0x1c]
push eax
push 1
push ebx
call fcn.01d1bac0
movzx eax, byte [ebp - 0x25]
mov edx, eax
and edx, 0x7f
test al, al
cmovs edx, dword [ebp - 0x2c]
lea eax, [ebp - 0x30]
cmovs eax, dword [ebp - 0x30]
lea esi, [ebp - 0x1c]
mov ecx, esi
push edx
push eax
call fcn.01cb8fd0
mov dword [ebp - 0x20], 0
movzx eax, byte [ebp - 0x11]
test al, al
js 0x1cb9aff
and eax, 0x7f
jmp 0x1cb9b05
mov eax, esi
jmp 0x1cb9b34
mov eax, dword [ebp - 0x18]
mov esi, dword [ebp - 0x1c]
test eax, eax
je 0x1cb9c39
xor ecx, ecx
xor edi, edi
nop word cs:[eax + eax]
cmp word [esi + ecx*2], 0x5c
je 0x1cb9b5f
add edi, 0xfffffffe
inc ecx
cmp eax, ecx
jne 0x1cb9b20
mov eax, 1
test eax, eax
je 0x1cb9c39
mov esi, dword [ebp - 0x44]
cmp esi, dword [ebp - 0x40]
jb 0x1cb9c22
lea eax, [ebp - 0x20]
lea edx, [ebp - 0x1c]
lea ecx, [ebp - 0x48]
push eax
push edx
call fcn.01d1ded0
mov esi, eax
jmp 0x1cb9c36
mov eax, 1
cmp esi, edi
je 0x1cb9b34
cmp edi, 2
je 0x1cb9b34
neg edi
xor eax, eax
mov esi, dword [ebp - 0x44]
lea edx, [ebp - 0x24]
lea ebx, [ebp - 0x1c]
sar edi, 1
mov ecx, edi
sub ecx, eax
mov dword [ebp - 0x24], ecx
cmp esi, dword [ebp - 0x40]
jb 0x1cb9b9a
lea ecx, [ebp - 0x48]
push edx
lea eax, [ebp - 0x20]
push eax
push ebx
call fcn.01d1dcb0
mov esi, eax
jmp 0x1cb9bac
push edx
lea eax, [ebp - 0x20]
push eax
push ebx
push esi
call fcn.01d1dde0
add esp, 0x10
add esi, 0xc
mov edx, ebx
mov dword [ebp - 0x5c], esi
mov dword [ebp - 0x44], esi
lea eax, [edi + 1]
mov dword [ebp - 0x20], eax
movzx ecx, byte [ebp - 0x11]
mov esi, ecx
and esi, 0x7f
test cl, cl
cmovs esi, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x1c]
cmovns ecx, ebx
cmp esi, eax
jbe 0x1cb9afb
je 0x1cb9b3c
mov ebx, eax
lea edx, [edi + edi]
sub edi, esi
inc edi
mov esi, dword [ebp - 0x5c]
nop dword [eax + eax]
cmp word [ecx + edx + 2], 0x5c
je 0x1cb9c03
add edx, 2
inc edi
jne 0x1cb9bf0
jmp 0x1cb9b2f
lea edi, [edx + 2]
add ecx, edi
je 0x1cb9b2f
cmp edx, 0xfffffffc
lea edx, [ebp - 0x24]
lea ebx, [ebp - 0x1c]
jne 0x1cb9b7a
jmp 0x1cb9b2f
lea eax, [ebp - 0x20]
lea ecx, [ebp - 0x1c]
push eax
push ecx
push esi
call fcn.01d1dff0
add esp, 0xc
add esi, 0xc
mov dword [ebp - 0x44], esi
movzx eax, word [0x1da20f0]
or ax, word [0x1da22f0]
je 0x1cb9d47
movzx eax, byte [ebp - 0x11]
test al, al
js 0x1cb9c71
movzx ecx, al
cmp al, 0xe
mov eax, 0xe
cmovb eax, ecx
movzx ecx, al
lea eax, [ebp - 0x1c]
jmp 0x1cb9c82
mov edx, 2
jmp 0x1cb9caf
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x18]
cmp edx, 0xe
mov ecx, 0xe
cmovb ecx, edx
test ecx, ecx
je 0x1cb9ca4
lea edx, [ecx + ecx]
xor esi, esi
nop dword [eax + eax]
movzx edi, word [eax + esi]
cmp di, word [esi + str.REGISTRYUSER_]
jne 0x1cb9c6a
add esi, 2
cmp edx, esi
jne 0x1cb9c90
cmp ecx, 0xe
mov edx, 3
sbb edx, 0
mov eax, dword [ebp - 0x44]
sub eax, dword [ebp - 0x48]
sar eax, 2
imul eax, eax, 0xaaaaaaab
xor ecx, ecx
cmp eax, edx
jb 0x1cb9d55
mov dword [ebp - 0x5c], edx
xor edi, edi
lea esi, [ebp - 0x3c]
mov ecx, esi
push 0x5c
call fcn.01d1b920
xor ebx, ebx
jmp 0x1cb9d00
add eax, edi
and edx, 0x7f
mov ecx, esi
push edx
push eax
call fcn.01cb8fd0
mov ecx, esi
push 0x5c
call fcn.01d1b920
inc ebx
add edi, 0xc
cmp dword [ebp - 0x5c], ebx
je 0x1cb9d2b
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x44]
sub ecx, eax
sar ecx, 2
imul ecx, ecx, 0xaaaaaaab
cmp ecx, ebx
jbe 0x1cb9fc5
movzx edx, byte [eax + edi + 0xb]
test dl, dl
jns 0x1cb9ce0
mov edx, dword [eax + edi + 4]
mov eax, dword [eax + edi]
jmp 0x1cb9ce5
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x5c]
lea ecx, [ecx + ecx*2]
lea edx, [eax + ecx*4]
lea esi, [ebp - 0x24]
lea ecx, [ebp - 0x48]
push edx
push eax
push esi
call fcn.01d1dbf0
jmp 0x1cb9d53
lea ecx, [ebp - 0x3c]
lea eax, [ebp - 0x54]
push eax
call fcn.01cf15e0
mov cl, 1
cmp byte [ebp - 0x11], 0
jns 0x1cb9d85
push dword [ebp - 0x1c]
mov esi, ecx
call fcn.01cc3180
mov ecx, esi
add esp, 4
cmp byte [ebp - 0x49], 0
jns 0x1cb9d8b
push dword [ebp - 0x54]
mov esi, ecx
call fcn.01cc3180
mov ecx, esi
add esp, 4
test cl, cl
je 0x1cb9dae
jmp 0x1cb9d8f
cmp byte [ebp - 0x49], 0
js 0x1cb9d70
test cl, cl
je 0x1cb9dae
mov dword [ebp - 0x20], 0xffffffff
lea eax, [ebp - 0x20]
lea ecx, [ebp - 0x3c]
mov edx, dword [ebp + 0x10]
push 0
push eax
call fcn.01d1d3d0
add esp, 8
test eax, eax
jns 0x1cb9de9
xor ebx, ebx
lea eax, [ebp - 0x48]
mov dword [ebp - 0x1c], eax
lea ecx, [ebp - 0x1c]
call fcn.01d1e130
cmp byte [ebp - 0x31], 0
jns 0x1cb9dcf
push dword [ebp - 0x3c]
call fcn.01cc3180
add esp, 4
cmp byte [ebp - 0x25], 0
jns 0x1cb9991
push dword [ebp - 0x30]
call fcn.01cc3180
add esp, 4
jmp 0x1cb9991
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x48]
sub eax, ecx
jne 0x1cb9e5a
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
mov bl, 1
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x18]
cmp esi, edi
je 0x1cb9e2e
nop word cs:[eax + eax]
push dword [esi]
call sub.ntdll.dll_NtClose
add esi, 4
cmp esi, edi
jne 0x1cb9e20
test bl, 1
je 0x1cb9e47
mov ecx, dword [ebp + 0x14]
mov eax, dword [ebp - 0x20]
test ecx, ecx
jne 0x1cb9e45
push eax
call sub.ntdll.dll_NtClose
jmp 0x1cb9e47
mov dword [ecx], eax
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x54], eax
lea ecx, [ebp - 0x54]
call fcn.01cffcb0
jmp 0x1cb9db0
sar eax, 2
imul esi, eax, 0xaaaaaaab
push dword [ebp - 0x20]
call sub.ntdll.dll_NtClose
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
cmp esi, 1
mov eax, esi
adc eax, 0
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x64], esi
lea eax, [esi - 1]
mov dword [ebp - 0x68], eax
xor edi, edi
xor ebx, ebx
xor edx, edx
jmp 0x1cb9ee9
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x18]
cmp esi, edi
je 0x1cb9e0a
nop word [eax + eax]
push dword [esi]
call sub.ntdll.dll_NtDeleteKey
add esi, 4
cmp esi, edi
jne 0x1cb9eb0
jmp 0x1cb9e0a
push dword [ebp - 0x58]
call sub.ntdll.dll_NtClose
mov edx, dword [ebp - 0x5c]
jmp 0x1cb9ed6
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x20], eax
inc edx
cmp edx, dword [ebp - 0x64]
setae bl
add edi, 0xc
cmp dword [ebp - 0x60], edx
je 0x1cb9e0a
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x44]
sub ecx, eax
sar ecx, 2
imul ecx, ecx, 0xaaaaaaab
mov dword [ebp - 0x5c], edx
cmp ecx, edx
jbe 0x1cb9fc5
movzx edx, byte [eax + edi + 0xb]
test dl, dl
js 0x1cb9f15
add eax, edi
and edx, 0x7f
jmp 0x1cb9f1c
mov edx, dword [eax + edi + 4]
mov eax, dword [eax + edi]
lea esi, [ebp - 0x3c]
mov ecx, esi
push edx
push eax
call fcn.01cb8fd0
mov ecx, esi
push 0x5c
call fcn.01d1b920
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x58], 0xffffffff
cmp byte [ebp - 0x31], 0
mov eax, esi
jns 0x1cb9f4a
mov eax, dword [ebp - 0x3c]
lea esi, [ebp - 0x54]
mov ecx, esi
push eax
call fcn.01cf1750
mov ecx, esi
mov edx, dword [ebp + 0x10]
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x58]
push eax
call fcn.01d1d3d0
add esp, 8
mov esi, eax
cmp byte [ebp - 0x49], 0
jns 0x1cb9f7d
push dword [ebp - 0x54]
call fcn.01cc3180
add esp, 4
test esi, esi
js 0x1cb9e9c
mov edx, dword [ebp - 0x5c]
cmp dword [ebp - 0x68], edx
je 0x1cb9ed0
cmp dword [ebp - 0x24], 1
jne 0x1cb9ec3
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x14]
jb 0x1cb9fb7
lea ecx, [ebp - 0x1c]
lea eax, [ebp - 0x58]
push eax
call fcn.01cffd00
mov dword [ebp - 0x18], eax
jmp 0x1cb9ecb
test eax, eax
je 0x1cb9fe3
mov ecx, dword [ebp - 0x58]
mov dword [eax], ecx
add eax, 4
jmp 0x1cb9faf
push str.vector___index_out_of_bounds
push str.__n___size__
push 0x601
push str....._third_partylibc_srcinclude_vector
push str._s:_d:_assertion__s_failed:__s_n
call fcn.01cfd380
push str.null_pointer_given_to_construct_at
push str.__location___nullptr
push 0x28
push str....._third_partylibc_srcinclude__memoryconstruct_at.h
push str._s:_d:_assertion__s_failed:__s_n
call fcn.01cfd380
int3