Function at 0x4054d0
Capabilities:
Delete registry key
Delete registry value

Disassembly:
sub esp, 0x430
mov eax, dword [0x477b54]
mov edx, dword [esp + 0x440]
xor eax, esp
push ebp
push esi
push edi
mov edi, dword [esp + 0x440]
mov dword [esp + 0x438], eax
mov eax, dword [esp + 0x444]
xor ebp, ebp
push edi
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], eax
mov dword [esp + 0x14], ebp
mov dword [esp + 0x24], edx
call fcn.00404fa0
mov esi, eax
cmp esi, ebp
jge 0x40552a
lea ecx, [esp + 0x10]
call fcn.00405b40
mov eax, esi
jmp 0x405b01
cmp word [edi], 0x7d
push ebx
je 0x405af5
jmp 0x405540
mov esi, dword [0x460270]
push 0x4609f8
push edi
mov dword [esp + 0x18], 1
call esi
mov ebx, eax
neg ebx
push str.ForceRemove
sbb ebx, ebx
push edi
inc ebx
call esi
test eax, eax
je 0x405571
cmp ebx, ebp
je 0x40569a
mov ecx, dword [esp + 0x1c]
push edi
call fcn.00404fa0
mov esi, eax
cmp esi, ebp
jl 0x405af5
cmp dword [esp + 0x44c], ebp
je 0x40569a
xor ecx, ecx
mov dword [esp + 0x18], ebp
mov cx, word [edi]
cmp cx, bp
mov eax, edi
je 0x4055c3
mov esi, dword [0x4606f4]
cmp cx, 0x5c
je 0x4055bb
push eax
call esi
mov cx, word [eax]
cmp cx, bp
jne 0x4055a8
jmp 0x4055c3
cmp eax, ebp
jne 0x405a83
mov esi, 0x4608c4
mov eax, dword [esi]
push eax
push edi
call dword [0x460270]
test eax, eax
je 0x4055fb
add esi, 4
cmp esi, 0x4608f4
jl 0x4055c8
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x18], ecx
push edi
lea ecx, [esp + 0x1c]
call fcn.00405c50
xor eax, eax
mov dword [esp + 0x18], eax
jmp 0x4055ff
mov eax, dword [esp + 0x18]
cmp ebx, ebp
je 0x40568f
mov ebx, dword [esp + 0x1c]
push edi
mov ecx, ebx
call fcn.00404fa0
mov esi, eax
cmp esi, ebp
jl 0x405a9c
push edi
mov ecx, ebx
call fcn.00405bb0
mov esi, eax
lea ecx, [esp + 0x18]
call fcn.00405b40
cmp esi, ebp
jl 0x405af5
cmp word [edi], 0x7b
jne 0x405680
push edi
call dword [0x46028c]
cmp eax, 1
jne 0x405680
mov eax, dword [esp + 0x44c]
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x1c]
push ebp
push eax
push ecx
push edi
mov ecx, ebx
call fcn.004054d0
mov esi, eax
cmp esi, ebp
jl 0x405af5
push edi
mov ecx, ebx
call fcn.00404fa0
mov esi, eax
cmp esi, ebp
jl 0x405af5
cmp word [edi], 0x7d
jne 0x405540
jmp 0x405af5
cmp eax, ebp
je 0x40569a
push eax
call dword [0x460018]
push str.NoRemove
push edi
call dword [0x460270]
test eax, eax
jne 0x4056c2
mov ecx, dword [esp + 0x1c]
push edi
mov dword [esp + 0x14], ebp
call fcn.00404fa0
mov esi, eax
cmp esi, ebp
jl 0x405af5
push 0x460a34
push edi
call dword [0x460270]
test eax, eax
jne 0x4057cb
mov ebx, dword [esp + 0x1c]
lea edx, [esp + 0x234]
push edx
mov ecx, ebx
call fcn.00404fa0
mov esi, eax
cmp esi, ebp
jl 0x405af5
push edi
mov ecx, ebx
call fcn.00404fa0
mov esi, eax
cmp esi, ebp
jl 0x405af5
cmp word [edi], 0x3d
jne 0x405aa2
cmp dword [esp + 0x44c], ebp
je 0x405744
mov eax, dword [esp + 0x20]
push edi
lea ecx, [esp + 0x238]
push ecx
lea edx, [esp + 0x18]
push edx
mov ecx, ebx
mov dword [esp + 0x1c], eax
call fcn.00405d80
mov esi, eax
mov dword [esp + 0x10], ebp
lea ecx, [esp + 0x10]
jmp 0x40562b
cmp dword [esp + 0x450], ebp
jne 0x4057be
cmp dword [esp + 0x10], ebp
je 0x4057be
mov ecx, dword [esp + 0x20]
lea eax, [esp + 0x10]
push eax
push 0x20006
push ebp
push ebp
push ecx
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x24], ebp
call dword [0x460014]
cmp eax, ebp
jne 0x405ab8
lea ecx, [esp + 0x18]
call fcn.00405b40
cmp eax, ebp
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x18], ecx
jne 0x405ab8
lea edx, [esp + 0x234]
push edx
push ecx
call dword [0x460010]
cmp eax, ebp
je 0x4057af
cmp eax, 2
jne 0x405ab8
mov eax, dword [esp + 0x18]
cmp eax, ebp
je 0x4057be
push eax
call dword [0x460018]
push edi
mov ecx, ebx
call fcn.00405bb0
jmp 0x405676
xor ecx, ecx
mov cx, word [edi]
cmp cx, bp
mov eax, edi
je 0x4057fb
mov esi, dword [0x4606f4]
lea ecx, [ecx]
cmp cx, 0x5c
je 0x4057f3
push eax
call esi
mov cx, word [eax]
cmp cx, bp
jne 0x4057e0
jmp 0x4057fb
cmp eax, ebp
jne 0x405a8c
cmp dword [esp + 0x44c], ebp
je 0x4058df
mov esi, dword [esp + 0x20]
mov ebx, dword [0x460014]
lea eax, [esp + 0x10]
push eax
push 0x2001f
push ebp
push edi
push esi
mov dword [esp + 0x24], ebp
call ebx
cmp eax, ebp
jne 0x40583e
lea ecx, [esp + 0x14]
call fcn.00405b40
cmp eax, ebp
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x14], ecx
je 0x4058aa
lea edx, [esp + 0x10]
push edx
push 0x20019
push ebp
push edi
push esi
mov dword [esp + 0x24], ebp
call ebx
cmp eax, ebp
jne 0x40586a
lea ecx, [esp + 0x14]
call fcn.00405b40
cmp eax, ebp
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x14], ecx
je 0x4058aa
lea edx, [esp + 0x28]
push edx
lea eax, [esp + 0x14]
push eax
push ebp
push 0x2001f
push ebp
push ebp
push ebp
push edi
push esi
mov dword [esp + 0x34], ebp
call dword [0x46000c]
cmp eax, ebp
jne 0x405ad4
lea ecx, [esp + 0x14]
call fcn.00405b40
cmp eax, ebp
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x14], ecx
jne 0x405ad4
mov ecx, dword [esp + 0x1c]
push edi
call fcn.00404fa0
mov esi, eax
cmp esi, ebp
jl 0x405af5
cmp word [edi], 0x3d
jne 0x405638
mov ecx, dword [esp + 0x1c]
push edi
push ebp
lea edx, [esp + 0x1c]
push edx
call fcn.00405d80
mov esi, eax
jmp 0x405630
cmp dword [esp + 0x450], ebp
jne 0x4059db
mov ecx, dword [esp + 0x20]
lea eax, [esp + 0x18]
push eax
push 0x20019
push ebp
push edi
push ecx
mov dword [esp + 0x2c], ebp
call dword [0x460014]
cmp eax, ebp
jne 0x40591c
lea ecx, [esp + 0x14]
call fcn.00405b40
mov edx, dword [esp + 0x18]
mov dword [esp + 0x14], edx
cmp eax, ebp
mov ebx, eax
je 0x40592d
mov dword [esp + 0x450], 1
push 0x104
push edi
lea eax, [esp + 0x34]
push eax
call dword [0x46026c]
mov ecx, dword [esp + 0x1c]
push edi
call fcn.00404fa0
mov esi, eax
cmp esi, ebp
jl 0x405af5
mov ecx, dword [esp + 0x1c]
push edi
call fcn.00405bb0
mov esi, eax
cmp esi, ebp
jl 0x405af5
cmp word [edi], 0x7b
jne 0x4059ab
mov ecx, dword [esp + 0x450]
mov edx, dword [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x20]
push ebp
push edx
push edi
call fcn.004054d0
mov esi, eax
cmp esi, ebp
jge 0x405997
cmp dword [esp + 0x450], ebp
je 0x405af5
mov ecx, dword [esp + 0x1c]
push edi
call fcn.00404fa0
mov esi, eax
cmp esi, ebp
jl 0x405af5
cmp ebx, 2
mov eax, dword [esp + 0x24]
mov dword [esp + 0x450], eax
je 0x405680
cmp ebx, ebp
je 0x4059e5
cmp eax, ebp
jne 0x405680
push ebx
call fcn.00405b20
add esp, 4
mov esi, eax
jmp 0x405af5
mov ebx, 2
jmp 0x405922
cmp eax, ebp
je 0x405a3e
mov ecx, dword [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x20]
call fcn.00405b60
test eax, eax
je 0x405a3e
mov ebx, 0x4608c4
mov edx, dword [ebx]
push edx
lea eax, [esp + 0x30]
push eax
call dword [0x460270]
test eax, eax
je 0x405680
add ebx, 4
cmp ebx, 0x4608f4
jl 0x405a00
cmp dword [esp + 0x10], ebp
je 0x405680
lea ecx, [esp + 0x2c]
push ecx
lea ecx, [esp + 0x18]
call fcn.00405c50
jmp 0x405680
lea ecx, [esp + 0x14]
call fcn.00405b40
cmp eax, ebp
jne 0x405ad4
cmp dword [esp + 0x10], ebp
je 0x405680
mov eax, dword [esp + 0x20]
lea edx, [esp + 0x2c]
push edx
push eax
mov dword [esp + 0x18], eax
call dword [0x460008]
cmp eax, ebp
mov dword [esp + 0x10], ebp
jne 0x405ae1
lea ecx, [esp + 0x10]
call fcn.00405b40
jmp 0x405680
lea ecx, [esp + 0x18]
call fcn.00405b40
lea ecx, [esp + 0x14]
call fcn.00405b40
mov eax, 0x80020009
jmp 0x405b00
lea ecx, [esp + 0x18]
jmp 0x405af0
mov eax, dword [esp + 0x14]
cmp eax, ebp
je 0x405ab1
push eax
call dword [0x460018]
mov eax, 0x80020009
jmp 0x405b00
push eax
call fcn.00405b20
mov esi, eax
mov eax, dword [esp + 0x1c]
add esp, 4
cmp eax, ebp
je 0x405af5
push eax
call dword [0x460018]
jmp 0x405af5
push eax
call fcn.00405b20
add esp, 4
mov esi, eax
jmp 0x405af5
push eax
call fcn.00405b20
add esp, 4
mov esi, eax
lea ecx, [esp + 0x10]
call fcn.00405b40
lea ecx, [esp + 0x14]
call fcn.00405b40
mov eax, esi
pop ebx
mov ecx, dword [esp + 0x438]
pop edi
pop esi
pop ebp
xor ecx, esp
call fcn.0045337b
add esp, 0x430
ret 0x10