Function at 0x403ad0
Capabilities:
Delete registry value
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x421bd6
mov eax, dword fs:[0]
push eax
mov eax, 0x2284
call fcn.004100a0
mov eax, dword [0x42e1f8]
xor eax, esp
mov dword [esp + 0x2280], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x42e1f8]
xor eax, esp
push eax
lea eax, [esp + 0x2298]
mov dword fs:[0], eax
mov esi, dword [esp + 0x22a8]
mov eax, dword [esp + 0x22ac]
xor ebx, ebx
mov edi, ecx
mov dword [esp + 0x14], edi
mov dword [esp + 0x2c], esi
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebx
mov ecx, dword [esp + 0x22b4]
push 0xc
mov dword [esp + 0x22a4], ebx
mov edx, dword [0x42f12c]
push str.Num_Els___d_n
push 2
push edx
lea eax, [esp + 0x40]
mov dword [esp + 0x54], ecx
mov dword [esp + 0x40], str.C:PROGRA2MICROS1.0VC_atlmfcinclude_statreg.h
mov dword [esp + 0x44], 0x518
call fcn.004038e0
add esp, 0x10
mov eax, esi
mov ecx, edi
call fcn.00403940
mov ebp, eax
cmp ebp, ebx
jl 0x4042c3
cmp word [esi], 0x7d
je 0x4042c1
mov ebx, dword [esp + 0x2c]
mov esi, dword [sym.imp.KERNEL32.dll_lstrcmpiW]
push str.Delete
push ebx
mov dword [esp + 0x40], 1
call esi
mov edi, eax
neg edi
push str.ForceRemove
sbb edi, edi
push ebx
inc edi
call esi
test eax, eax
je 0x403bc5
test edi, edi
je 0x403d05
mov ecx, dword [esp + 0x14]
mov eax, ebx
call fcn.00403940
mov ebp, eax
test ebp, ebp
jl 0x4042b2
xor esi, esi
cmp dword [esp + 0x22b0], esi
je 0x403cff
movzx ecx, word [ebx]
mov dword [esp + 0x24], esi
mov dword [esp + 0x28], esi
mov eax, ebx
cmp cx, si
je 0x403c1f
mov ebp, dword [sym.imp.USER32.dll_CharNextW]
movzx ecx, cx
cmp cx, 0x5c
je 0x403c17
push eax
call ebp
movzx ecx, word [eax]
cmp cx, si
jne 0x403c04
jmp 0x403c1f
cmp eax, esi
jne 0x404240
mov ebp, 0x42aef0
mov eax, dword [ebp]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x403c5c
add ebp, 4
cmp ebp, 0x42af20
jl 0x403c24
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x24], ecx
push ebx
lea ecx, [esp + 0x28]
mov dword [esp + 0x2c], esi
call fcn.004035d0
mov dword [esp + 0x24], esi
mov dword [esp + 0x28], esi
cmp edi, esi
je 0x403cfb
mov esi, dword [esp + 0x14]
mov eax, ebx
mov ecx, esi
call fcn.00403940
mov ebp, eax
test ebp, ebp
jl 0x404259
mov edi, ebx
mov ecx, esi
call fcn.00403470
mov ebp, eax
test ebp, ebp
jl 0x404259
mov dword [esp + 0x28], 0
cmp word [ebx], 0x7b
jne 0x403ce8
mov edx, dword [esp + 0x2c]
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
cmp eax, 1
jne 0x403ce8
mov eax, dword [esp + 0x22b0]
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x2c]
mov edi, dword [esp + 0x14]
push 0
push eax
push ecx
push ebx
mov ecx, edi
call fcn.00403ad0
mov ebp, eax
test ebp, ebp
jl 0x4042b2
mov eax, ebx
mov ecx, edi
call fcn.00403940
mov ebp, eax
test ebp, ebp
jl 0x4042b2
mov edx, dword [esp + 0x2c]
cmp word [edx], 0x7d
jne 0x403b90
jmp 0x4042b2
mov dword [esp + 0x28], esi
mov esi, dword [sym.imp.KERNEL32.dll_lstrcmpiW]
push str.NoRemove
push ebx
call esi
test eax, eax
jne 0x403d2a
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x38], eax
mov eax, ebx
call fcn.00403940
mov ebp, eax
test ebp, ebp
jl 0x4042b2
push 0x42a71c
push ebx
call esi
test eax, eax
jne 0x403ea6
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x294]
call fcn.00403940
mov ebp, eax
test ebp, ebp
jl 0x4042b2
mov ecx, dword [esp + 0x14]
mov eax, ebx
call fcn.00403940
mov ebp, eax
test ebp, ebp
jl 0x4042b2
cmp word [ebx], 0x3d
jne 0x404249
xor esi, esi
cmp dword [esp + 0x22b0], esi
je 0x403dcd
mov edx, dword [esp + 0x20]
lea eax, [esp + 0x294]
mov byte [esp + 0x22a0], 1
push eax
lea ecx, [esp + 0x34]
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x18]
push ecx
mov ecx, ebx
mov dword [esp + 0x3c], esi
call fcn.00402ed0
mov ebp, eax
cmp ebp, esi
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], esi
jl 0x40425f
mov byte [esp + 0x22a0], 0
mov dword [esp + 0x34], esi
jmp 0x403c96
cmp dword [esp + 0x22b4], esi
jne 0x403e92
cmp dword [esp + 0x38], esi
je 0x403e92
mov eax, dword [0x42f12c]
lea edx, [esp + 0x294]
push edx
push str.Deleting__s_n
push 1
push eax
lea eax, [esp + 0x7c]
mov dword [esp + 0x7c], str.C:PROGRA2MICROS1.0VC_atlmfcinclude_statreg.h
mov dword [esp + 0x80], 0x569
call fcn.004038e0
mov ecx, dword [esp + 0x30]
add esp, 0x10
push esi
mov eax, 0x20006
lea edi, [esp + 0x4c]
mov dword [esp + 0x4c], esi
mov dword [esp + 0x50], esi
call fcn.00403520
cmp eax, esi
jne 0x404273
mov edi, dword [esp + 0x48]
cmp edi, esi
jne 0x403e63
push str.m_hKey___0
push esi
push 0x1497
push 0x42a9e8
push 2
call fcn.004075b0
add esp, 0x14
cmp eax, 1
jne 0x403e63
int3
lea ecx, [esp + 0x294]
push ecx
push edi
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
cmp eax, esi
je 0x403e7f
cmp eax, 2
jne 0x404273
cmp edi, esi
je 0x403e8e
push edi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [esp + 0x48], esi
mov dword [esp + 0x4c], esi
mov ecx, dword [esp + 0x14]
mov edi, ebx
call fcn.00403470
mov ebp, eax
cmp ebp, esi
jmp 0x403ce2
movzx ecx, word [ebx]
mov eax, ebx
test cx, cx
je 0x403ed2
movzx ecx, cx
cmp cx, 0x5c
je 0x403eca
push eax
call dword [sym.imp.USER32.dll_CharNextW]
movzx ecx, word [eax]
test cx, cx
jne 0x403eb3
jmp 0x403ed2
test eax, eax
jne 0x404249
cmp dword [esp + 0x22b0], 0
je 0x403f94
mov esi, dword [esp + 0x20]
push ebx
mov eax, 0x2001f
mov ecx, esi
lea edi, [esp + 0x1c]
call fcn.00403520
test eax, eax
je 0x403f54
push ebx
mov eax, 0x20019
mov ecx, esi
call fcn.00403520
test eax, eax
je 0x403f54
mov edx, dword [0x42f12c]
push ebx
push str.Creating_key__s_n
push 2
push edx
lea eax, [esp + 0x8c]
mov dword [esp + 0x8c], str.C:PROGRA2MICROS1.0VC_atlmfcinclude_statreg.h
mov dword [esp + 0x90], 0x590
call fcn.004038e0
add esp, 0x10
mov edi, esi
push ebx
lea esi, [esp + 0x1c]
call fcn.00402a40
mov edi, eax
test edi, edi
jne 0x40427e
mov esi, dword [esp + 0x14]
mov eax, ebx
mov ecx, esi
call fcn.00403940
mov ebp, eax
test ebp, ebp
jl 0x4042b2
cmp word [ebx], 0x3d
jne 0x403c96
push 0
lea eax, [esp + 0x1c]
push eax
mov ecx, ebx
mov edx, esi
call fcn.00402ed0
mov ebp, eax
test ebp, ebp
jl 0x4042b2
jmp 0x403c96
mov esi, dword [esp + 0x22b4]
test esi, esi
jne 0x4040e8
mov ecx, dword [esp + 0x20]
push ebx
mov eax, 0x20019
lea edi, [esp + 0x1c]
call fcn.00403520
mov dword [esp + 0x50], eax
test eax, eax
je 0x4040f5
mov edx, dword [0x42f12c]
push ebx
push str.Ignoring_Open_key_on__s_:_In_Recovery_mode_n
push 0
mov esi, 1
mov dword [esp + 0x90], str.C:PROGRA2MICROS1.0VC_atlmfcinclude_statreg.h
mov dword [esp + 0x94], 0x5b5
push edx
lea eax, [esp + 0x94]
call fcn.004038e0
add esp, 0x10
push 0xffffffffffffffff
push ebx
lea eax, [esp + 0x94]
push 0x104
push eax
call fcn.00407aa0
push eax
call fcn.004033d0
mov ecx, dword [esp + 0x28]
add esp, 0x14
mov eax, ebx
call fcn.00403940
mov ebp, eax
test ebp, ebp
jl 0x4042b2
mov ecx, dword [esp + 0x14]
mov edi, ebx
call fcn.00403470
mov ebp, eax
test ebp, ebp
jl 0x4042b2
cmp word [ebx], 0x7b
jne 0x40408a
push ebx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
cmp eax, 1
jne 0x40408a
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
push esi
push 0
push ecx
push ebx
mov ecx, edi
call fcn.00403ad0
mov ebp, eax
test ebp, ebp
jge 0x404077
test esi, esi
je 0x4042b2
mov eax, ebx
mov ecx, edi
call fcn.00403940
mov ebp, eax
test ebp, ebp
jl 0x4042b2
mov edi, dword [esp + 0x44]
cmp esi, edi
je 0x4040bc
mov edx, dword [0x42f12c]
push str.Ending_Recovery_Mode_n
push 0
push edx
lea eax, [esp + 0x68]
mov dword [esp + 0x68], str.C:PROGRA2MICROS1.0VC_atlmfcinclude_statreg.h
mov dword [esp + 0x6c], 0x5cd
call fcn.004038e0
add esp, 0xc
mov eax, dword [esp + 0x50]
mov dword [esp + 0x22b4], edi
cmp eax, 2
je 0x403ce8
test eax, eax
je 0x40411d
test edi, edi
jne 0x403ce8
call fcn.004038a0
mov ebp, eax
jmp 0x4042b2
mov dword [esp + 0x50], 2
jmp 0x403fc2
mov ecx, dword [0x42f12c]
push ebx
push str.Opened_Key__s_n
push 1
mov dword [esp + 0x60], str.C:PROGRA2MICROS1.0VC_atlmfcinclude_statreg.h
mov dword [esp + 0x64], 0x5b3
push ecx
lea eax, [esp + 0x64]
jmp 0x403ff3
test edi, edi
mov edi, dword [esp + 0x18]
je 0x40418d
mov ecx, edi
call fcn.00403720
test eax, eax
je 0x40418d
lea ebx, [esp + 0x8c]
call fcn.004034e0
test eax, eax
je 0x403ce8
cmp dword [esp + 0x38], 0
je 0x403ce8
mov ecx, dword [0x42f12c]
mov eax, ebx
push eax
push str.Deleting_non_empty_subkey__s_by_force_n
push 0
push ecx
lea eax, [esp + 0x74]
mov dword [esp + 0x74], str.C:PROGRA2MICROS1.0VC_atlmfcinclude_statreg.h
mov dword [esp + 0x78], 0x5e7
call fcn.004038e0
add esp, 0x10
mov edx, ebx
push edx
lea ecx, [esp + 0x1c]
call fcn.004035d0
jmp 0x403ce8
mov ecx, edi
call fcn.00403720
xor ebx, ebx
mov esi, eax
test edi, edi
je 0x4041ad
push edi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ebx, eax
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
test ebx, ebx
jne 0x404290
cmp dword [esp + 0x38], ebx
je 0x403ce8
test esi, esi
jne 0x403ce8
mov ecx, dword [0x42f12c]
lea eax, [esp + 0x8c]
push eax
push str.Deleting_Key__s_n
push ebx
push ecx
lea eax, [esp + 0x84]
mov dword [esp + 0x84], str.C:PROGRA2MICROS1.0VC_atlmfcinclude_statreg.h
mov dword [esp + 0x88], 0x5f5
call fcn.004038e0
mov edi, dword [esp + 0x30]
add esp, 0x10
lea esi, [esp + 0x3c]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], ebx
call fcn.004037d0
lea edi, [esp + 0x8c]
call fcn.00403800
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], ebx
cmp eax, ebx
jne 0x4042a2
call fcn.004037b0
jmp 0x403ce8
lea esi, [esp + 0x24]
call fcn.004037b0
lea esi, [esp + 0x18]
call fcn.004037b0
mov eax, 0x80020009
jmp 0x4042c3
lea esi, [esp + 0x24]
jmp 0x4042ad
lea esi, [esp + 0x30]
call fcn.004037b0
lea esi, [esp + 0x18]
call fcn.004037b0
jmp 0x4042c1
call fcn.004038a0
lea esi, [esp + 0x48]
jmp 0x4042ab
lea esi, [esp + 0x18]
call fcn.004037b0
mov eax, edi
call fcn.004038a0
jmp 0x4042c3
lea esi, [esp + 0x18]
call fcn.004037b0
mov eax, ebx
call fcn.004038a0
jmp 0x4042c3
call fcn.004038a0
lea esi, [esp + 0x3c]
mov ebp, eax
call fcn.004037b0
mov eax, dword [esp + 0x18]
test eax, eax
je 0x4042c1
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, ebp
mov ecx, dword [esp + 0x2298]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x2280]
xor ecx, esp
call fcn.00407200
add esp, 0x2290
ret 0x10