Function at 0x458180
Capabilities:
Delete registry value
Set registry value

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffe44
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0xa0], ebx
mov dword [ebp - 0xbc], ebx
mov dword [ebp - 0x8c], ebx
mov dword [ebp - 0x74], ecx
mov byte [ebp - 1], dl
mov dword [ebp - 8], eax
mov ecx, 0xa
lea eax, [ebp - 0x48]
mov edx, 0x40107c
call fcn.00403998
xor eax, eax
push ebp
push 0x458ef9
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, 0x458f14
call fcn.00455348
lea eax, [ebp - 0xa0]
call fcn.0042d780
mov eax, dword [ebp - 0xa0]
call fcn.00407240
mov byte [ebp - 0x75], 1
mov eax, dword [ebp - 8]
mov byte [eax + 0x1c], 0
mov byte [ebp - 0x76], 0
xor eax, eax
mov dword [ebp - 0x7c], eax
xor eax, eax
mov dword [ebp - 0x1c], eax
xor eax, eax
mov dword [ebp - 0x18], eax
xor eax, eax
mov dword [ebp - 0x10], eax
xor eax, eax
mov dword [ebp - 0xc], eax
xor eax, eax
mov dword [ebp - 0x20], eax
mov dl, 1
mov eax, 0x4516fc
call fcn.00402b48
mov dword [ebp - 0x14], eax
xor edx, edx
push ebp
push 0x458ea4
push dword fs:[edx]
mov dword fs:[edx], esp
mov dl, 1
mov eax, 0x4516fc
call fcn.00402b48
mov dword [ebp - 0x7c], eax
mov dl, 1
mov eax, 0x4516fc
call fcn.00402b48
mov dword [ebp - 0x1c], eax
mov dl, 1
mov eax, 0x4516fc
call fcn.00402b48
mov dword [ebp - 0x18], eax
mov dl, 1
mov eax, 0x4516fc
call fcn.00402b48
mov dword [ebp - 0x10], eax
mov dl, 1
mov eax, 0x4516fc
call fcn.00402b48
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0x74], 0
je 0x458293
mov dl, 1
mov eax, 0x4516fc
call fcn.00402b48
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x80], eax
mov ecx, eax
mov edx, dword [ebp - 0x80]
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 8]
cmp byte [ebp - 1], 0
je 0x4585f1
mov eax, dword [ebp - 8]
mov eax, dword [eax + 8]
mov dword [ebp - 0x84], eax
cmp dword [ebp - 0x84], 0
je 0x4585f1
mov eax, dword [ebp - 0x84]
cmp word [eax + 0x10], 0x80
jne 0x4585d6
xor edx, edx
push ebp
push 0x458587
push dword fs:[edx]
mov dword fs:[edx], esp
push ebp
mov eax, dword [ebp - 0x84]
call fcn.0045812c
pop ecx
cmp dword [ebp - 0x3c], 0
je 0x458311
mov edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x7c]
call fcn.004541ac
inc eax
jne 0x458548
mov ebx, 1
mov eax, dword [ebp - 0x84]
mov eax, dword [eax + 8]
test al, 8
je 0x45832a
mov ebx, 7
jmp 0x45833b
test al, 0x10
je 0x458335
mov ebx, 3
jmp 0x45833b
test al, 0x40
je 0x45833b
xor ebx, ebx
test al, 4
jne 0x458448
mov edx, 0x458f44
lea eax, [ebp - 0xa0]
call fcn.004034ac
lea eax, [ebp - 0xa0]
mov edx, dword [ebp - 0x48]
call fcn.00403594
mov eax, dword [ebp - 0xa0]
call fcn.00455348
cmp dword [ebp - 0x44], 0
je 0x45839b
mov edx, 0x458f64
lea eax, [ebp - 0xa0]
call fcn.004034ac
lea eax, [ebp - 0xa0]
mov edx, dword [ebp - 0x44]
call fcn.00403594
mov eax, dword [ebp - 0xa0]
call fcn.00455348
mov eax, dword [ebp - 0x84]
mov esi, dword [eax + 8]
test esi, 0x20
je 0x4583c1
test esi, 0x100
setne al
mov edx, dword [ebp - 0x48]
call fcn.004511e4
test al, al
je 0x458439
mov eax, dword [ebp - 0x40]
push eax
mov eax, dword [ebp - 0x84]
mov esi, dword [eax + 8]
test esi, 1
sete al
push eax
test esi, 2
setne al
push eax
push ebx
push 0x4576e8
lea eax, [ebp - 0x90]
push eax
test esi, 0x100
setne al
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x48]
call fcn.004530d8
test al, al
jne 0x458535
mov eax, dword [ebp - 0x90]
mov dword [ebp - 0xa8], eax
mov byte [ebp - 0xa4], 0
lea edx, [ebp - 0xa8]
xor ecx, ecx
mov eax, 0x458f88
call fcn.00455538
mov byte [ebp - 0x75], 0
jmp 0x458535
mov eax, 0x458fac
call fcn.00455348
jmp 0x458535
mov edx, 0x458fd4
lea eax, [ebp - 0xa0]
call fcn.004034ac
lea eax, [ebp - 0xa0]
mov edx, dword [ebp - 0x48]
call fcn.00403594
mov eax, dword [ebp - 0xa0]
call fcn.00455348
cmp dword [ebp - 0x44], 0
je 0x4584a0
mov edx, 0x458ffc
lea eax, [ebp - 0xa0]
call fcn.004034ac
lea eax, [ebp - 0xa0]
mov edx, dword [ebp - 0x44]
call fcn.00403594
mov eax, dword [ebp - 0xa0]
call fcn.00455348
mov eax, dword [ebp - 0x84]
test byte [eax + 8], 0x20
je 0x4584b8
mov eax, dword [ebp - 0x48]
call fcn.0042cc7c
test al, al
je 0x45852b
mov eax, dword [ebp - 0x40]
push eax
mov eax, dword [ebp - 0x84]
mov esi, dword [eax + 8]
and esi, 0x83
cmp esi, 0x80
sete al
push eax
cmp esi, 0x82
sete al
push eax
push ebx
push 0x4576e8
lea eax, [ebp - 0x90]
push eax
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x48]
mov eax, 0x459024
call fcn.0045339c
test al, al
jne 0x458535
mov eax, dword [ebp - 0x90]
mov dword [ebp - 0xa8], eax
mov byte [ebp - 0xa4], 0
lea edx, [ebp - 0xa8]
xor ecx, ecx
mov eax, 0x459034
call fcn.00455538
mov byte [ebp - 0x75], 0
jmp 0x458535
mov eax, 0x459058
call fcn.00455348
cmp dword [ebp - 0x3c], 0
je 0x45857d
mov edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x7c]
call fcn.004540b8
jmp 0x45857d
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0xb8], eax
mov byte [ebp - 0xb4], 0xb
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0xb0], eax
mov byte [ebp - 0xac], 0xb
lea edx, [ebp - 0xb8]
mov ecx, 1
mov eax, 0x459088
call fcn.00455538
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4585af
mov edx, dword [ebp - 0x84]
mov eax, dword [ebp - 8]
call fcn.004575b4
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0xc]
mov edx, dword [ebp - 0x80]
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 8]
jmp 0x4585e4
mov eax, dword [ebp - 0x84]
mov eax, dword [eax]
mov dword [ebp - 0x84], eax
cmp dword [ebp - 0x84], 0
jne 0x4582cc
mov eax, dword [ebp - 8]
mov eax, dword [eax + 8]
mov dword [ebp - 0x84], eax
cmp dword [ebp - 0x84], 0
je 0x4587fb
mov byte [ebp - 0x85], 0
mov eax, dword [ebp - 0x84]
cmp word [eax + 0x10], 0x82
jne 0x4587b0
mov byte [ebp - 0x85], 1
xor edx, edx
push ebp
push 0x458788
push dword fs:[edx]
mov dword fs:[edx], esp
push ebp
mov eax, dword [ebp - 0x84]
call fcn.0045812c
pop ecx
cmp byte [ebp - 1], 0
jne 0x45865b
mov eax, dword [ebp - 0x84]
test byte [eax + 8], 1
jne 0x458777
cmp byte [ebp - 1], 0
jne 0x458667
cmp dword [ebp - 0x44], 0
jne 0x45866b
xor eax, eax
jmp 0x45866d
mov al, 1
mov byte [ebp - 0x86], al
mov eax, dword [ebp - 0x84]
mov eax, dword [eax + 8]
test al, 8
setne bl
test bl, bl
je 0x45869b
test ah, 4
setne dl
mov eax, dword [ebp - 0x48]
call fcn.00457c60
mov byte [ebp - 0x87], al
jmp 0x4586a2
mov byte [ebp - 0x87], 0
test bl, bl
je 0x4586f4
cmp byte [ebp - 0x87], 0
je 0x45877e
cmp byte [ebp - 0x86], 0
jne 0x4586f4
mov eax, dword [ebp - 0x84]
test byte [eax + 9], 8
setne al
mov edx, dword [ebp - 0x48]
call fcn.004511e4
test al, al
je 0x4586f4
mov eax, dword [ebp - 0x84]
test byte [eax + 9], 2
jne 0x4586f4
mov edx, dword [ebp - 0x48]
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
call dword [ecx + 4]
test al, al
je 0x45877e
mov byte [ebp - 0x85], 0
cmp byte [ebp - 0x86], 0
jne 0x45873c
mov eax, dword [ebp - 0x84]
mov eax, dword [eax + 8]
test al, 0x10
je 0x458721
push ebp
test ah, 8
setne al
mov edx, dword [ebp - 0x48]
call fcn.00457d1c
pop ecx
mov eax, dword [ebp - 0x84]
mov eax, dword [eax + 8]
test al, 0x40
je 0x45873c
test ah, 8
setne al
mov edx, dword [ebp - 0x48]
call fcn.00457f08
mov eax, dword [ebp - 0x84]
test byte [eax + 8], 4
je 0x45877e
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0xa8], eax
mov byte [ebp - 0xa4], 0xb
lea edx, [ebp - 0xa8]
xor ecx, ecx
mov eax, 0x4590b8
call fcn.00455538
mov edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x40]
call fcn.00453eb0
jmp 0x45877e
mov byte [ebp - 0x85], 0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4587b0
cmp byte [ebp - 0x85], 0
je 0x4587e0
mov edx, dword [ebp - 0x84]
mov eax, dword [ebp - 8]
call fcn.004575b4
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0xc]
mov edx, dword [ebp - 0x80]
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 8]
jmp 0x4587ee
mov eax, dword [ebp - 0x84]
mov eax, dword [eax]
mov dword [ebp - 0x84], eax
cmp dword [ebp - 0x84], 0
jne 0x45860a
mov eax, dword [ebp - 8]
mov eax, dword [eax + 8]
mov dword [ebp - 0x84], eax
cmp dword [ebp - 0x84], 0
je 0x458dcc
push ebp
mov eax, dword [ebp - 0x84]
call fcn.0045812c
pop ecx
xor edx, edx
push ebp
push 0x458d72
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [ebp - 0x84]
mov bx, word [eax + 0x10]
movzx eax, bx
cmp eax, 0x85
jg 0x45889a
je 0x458b0c
cmp eax, 0x81
jg 0x45887c
je 0x458918
dec eax
je 0x4588cb
add eax, 0xfffffff1
sub eax, 2
jb case.0x4588a8.140
sub eax, 0xe
je case.0x4588a8.140
sub eax, 0x60
je case.0x4588a8.140
jmp case.default.0x4588a8
sub eax, 0x82
je 0x4589b8
dec eax
je case.0x4588a8.140
dec eax
je 0x458abc
jmp case.default.0x4588a8
add eax, 0xffffff7a
cmp eax, 6
ja case.default.0x4588a8
jmp dword [eax*4 + 0x4588af]
mov edx, 0x4590d8
lea eax, [ebp - 0xbc]
call fcn.004034ac
lea eax, [ebp - 0xbc]
mov edx, dword [ebp - 0x48]
call fcn.00403594
mov edx, dword [ebp - 0xbc]
lea ecx, [ebp - 0xa0]
mov al, 0xb6
call fcn.004503a4
mov ecx, dword [ebp - 0xa0]
mov dl, 1
mov eax, 0x406360
call fcn.00408ba4
call fcn.00403134
jmp case.0x4588a8.140
cmp byte [ebp - 1], 0
jne 0x45892e
mov eax, dword [ebp - 0x84]
test byte [eax + 8], 1
jne case.0x4588a8.140
mov eax, dword [ebp - 0x84]
mov ebx, dword [eax + 8]
test bl, 4
setne al
push eax
test bl, 8
setne al
push eax
push 0x45762c
push 0x457638
lea eax, [ebp - 0x20]
push eax
test bl, 2
setne cl
test bl, 0x20
setne al
mov edx, dword [ebp - 0x48]
call fcn.0045234c
test al, al
je case.0x4588a8.140
mov eax, dword [ebp - 0x84]
mov eax, dword [eax + 8]
test al, 2
je case.0x4588a8.140
test al, 0x10
je case.0x4588a8.140
push 0
mov eax, dword [ebp - 0x70]
push eax
push 1
push 0x10
call fcn.0042cbe4
lea edx, [ebp - 0xa0]
mov eax, dword [ebp - 0x48]
call fcn.0042c7d8
mov edx, dword [ebp - 0xa0]
mov eax, dword [ebp - 0x14]
call fcn.0045410c
jmp case.0x4588a8.140
lea eax, [ebp - 0x8c]
mov edx, dword [ebp - 0x44]
call fcn.004034ac
cmp byte [ebp - 1], 0
jne 0x4589d5
cmp dword [ebp - 0x8c], 0
jne 0x4589e3
lea eax, [ebp - 0x8c]
mov edx, dword [ebp - 0x48]
call fcn.004034ac
cmp byte [ebp - 1], 0
jne 0x4589f5
mov eax, dword [ebp - 0x84]
test byte [eax + 8], 1
jne 0x458a4c
cmp byte [ebp - 1], 0
jne 0x458a0b
mov eax, dword [ebp - 0x84]
test byte [eax + 8], 2
jne case.0x4588a8.140
push ebp
mov eax, dword [ebp - 0x84]
mov ebx, dword [eax + 8]
test bl, 0x80
setne al
push eax
test bh, 1
setne al
push eax
test bl, 0x20
setne cl
test bh, 8
setne dl
mov eax, dword [ebp - 0x8c]
call fcn.0045784c
pop ecx
test al, al
jne case.0x4588a8.140
mov byte [ebp - 0x75], 0
jmp case.0x4588a8.140
mov eax, dword [ebp - 0x84]
mov eax, dword [eax + 8]
test al, 8
je 0x458a67
test ah, 4
setne dl
mov eax, dword [ebp - 0x48]
call fcn.00457c60
mov eax, dword [ebp - 0x8c]
mov edx, dword [ebp - 0x48]
call fcn.0040369c
je case.0x4588a8.140
push ebp
mov eax, dword [ebp - 0x84]
mov ebx, dword [eax + 8]
test bl, 0x80
setne al
push eax
test bh, 1
setne al
push eax
test bl, 0x20
setne cl
test bh, 8
setne dl
mov eax, dword [ebp - 0x8c]
call fcn.0045784c
pop ecx
test al, al
jne case.0x4588a8.140
mov byte [ebp - 0x75], 0
jmp case.0x4588a8.140
lea eax, [ebp - 0x1bc]
mov ebx, dword [ebp - 0x70]
mov edx, ebx
call fcn.00402a80
lea eax, [ebp - 0x1bc]
mov edx, 0x4590e8
xor ecx, ecx
mov cl, byte [eax]
inc ecx
call fcn.004028c4
je 0x458af8
push ebx
push 0
mov eax, dword [ebp - 0x68]
push eax
mov eax, dword [ebp - 0x6c]
push eax
call fcn.00405b34
jmp case.0x4588a8.140
push 0
mov eax, dword [ebp - 0x68]
push eax
mov eax, dword [ebp - 0x6c]
push eax
call fcn.00405b3c
jmp case.0x4588a8.140
mov eax, dword [ebp - 0x84]
test byte [eax + 8], 1
je 0x458b2b
mov edx, dword [ebp - 0x70]
mov eax, dword [ebp - 0x6c]
call fcn.004572f8
test al, al
je case.0x4588a8.140
lea eax, [ebp - 0x1bc]
mov ebx, dword [ebp - 0x70]
mov edx, ebx
call fcn.00402a80
lea eax, [ebp - 0x1bc]
mov edx, 0x4590e8
xor ecx, ecx
mov cl, byte [eax]
inc ecx
call fcn.004028c4
je 0x458b65
push ebx
push 0
push 0
mov eax, dword [ebp - 0x6c]
push eax
call fcn.00405b34
jmp case.0x4588a8.140
push 0
push 0
mov eax, dword [ebp - 0x6c]
push eax
call fcn.00405b3c
jmp case.0x4588a8.140
lea ecx, [ebp - 0x98]
lea edx, [ebp - 0x91]
mov eax, dword [ebp - 0x84]
mov eax, dword [eax + 8]
call fcn.0045734c
mov ecx, dword [ebp - 0x70]
mov edx, dword [ebp - 0x98]
mov al, byte [ebp - 0x91]
call fcn.0042dcc0
test eax, eax
je case.0x4588a8.140
sub eax, 2
je case.0x4588a8.140
mov byte [ebp - 0x75], 0
jmp case.0x4588a8.140
lea ecx, [ebp - 0x98]
lea edx, [ebp - 0x91]
mov eax, dword [ebp - 0x84]
mov eax, dword [eax + 8]
call fcn.0045734c
push 0
push 2
lea eax, [ebp - 0x9c]
push eax
mov ecx, dword [ebp - 0x70]
mov edx, dword [ebp - 0x98]
mov al, byte [ebp - 0x91]
call fcn.0042dc1c
test eax, eax
jne case.0x4588a8.140
push 1
push 0x48eaa0
push 1
push 0
mov eax, dword [ebp - 0x6c]
push eax
mov eax, dword [ebp - 0x9c]
push eax
call fcn.004057f4
test eax, eax
je 0x458c23
mov byte [ebp - 0x75], 0
mov eax, dword [ebp - 0x9c]
push eax
call fcn.004057ac
jmp case.0x4588a8.140
lea ecx, [ebp - 0x98]
lea edx, [ebp - 0x91]
mov eax, dword [ebp - 0x84]
mov eax, dword [eax + 8]
call fcn.0045734c
mov ecx, dword [ebp - 0x70]
mov edx, dword [ebp - 0x98]
mov al, byte [ebp - 0x91]
call fcn.0042ddfc
test eax, eax
je case.0x4588a8.140
sub eax, 2
je case.0x4588a8.140
sub eax, 0x8f
je case.0x4588a8.140
mov byte [ebp - 0x75], 0
jmp case.0x4588a8.140
lea ecx, [ebp - 0x98]
lea edx, [ebp - 0x91]
mov eax, dword [ebp - 0x84]
mov eax, dword [eax + 8]
call fcn.0045734c
push 0
push 3
lea eax, [ebp - 0x9c]
push eax
mov ecx, dword [ebp - 0x70]
mov edx, dword [ebp - 0x98]
mov al, byte [ebp - 0x91]
call fcn.0042dc1c
test eax, eax
jne case.0x4588a8.140
mov edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x9c]
call fcn.0042db64
test al, al
je case.0x4588a8.140
mov eax, dword [ebp - 0x6c]
push eax
mov eax, dword [ebp - 0x9c]
push eax
call fcn.004057c4
test eax, eax
je case.0x4588a8.140
mov byte [ebp - 0x75], 0
jmp case.0x4588a8.140
mov eax, dword [ebp - 0x84]
test byte [eax + 8], 1
setne dl
mov eax, dword [ebp - 0x48]
call fcn.00457c60
jmp case.0x4588a8.140
mov byte [ebp - 0x76], 1
jmp case.0x4588a8.140
lea eax, [ebp - 0xbc]
push eax
movzx eax, bx
mov dword [ebp - 0xa8], eax
mov byte [ebp - 0xa4], 0
lea edx, [ebp - 0xa8]
xor ecx, ecx
mov eax, 0x4590f4
call fcn.0040788c
mov edx, dword [ebp - 0xbc]
lea ecx, [ebp - 0xa0]
mov al, 0xb6
call fcn.004503a4
mov ecx, dword [ebp - 0xa0]
mov dl, 1
mov eax, 0x406360
call fcn.00408ba4
call fcn.00403134
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x458d9a
mov edx, dword [ebp - 0x84]
mov eax, dword [ebp - 8]
call fcn.004575b4
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0xc]
mov edx, dword [ebp - 0x80]
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 8]
cmp dword [ebp - 0x84], 0
jne 0x458814
cmp byte [ebp - 0x76], 0
je 0x458de2
push 0
push 0
push 0
push 0x8000000
call fcn.0042cbe4
mov eax, dword [ebp - 8]
test byte [eax + 0x1d], 0x10
je 0x458df0
call fcn.0045408c
cmp dword [ebp - 0x74], 0
je 0x458e00
call dword [ebp - 0x74]
push ebp
call fcn.00458098
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x458eae
mov eax, dword [ebp - 0x20]
call fcn.00402b70
mov eax, dword [ebp - 0xc]
call fcn.00402b70
mov eax, dword [ebp - 0x10]
call fcn.00402b70
mov eax, dword [ebp - 0x14]
mov esi, dword [eax + 8]
dec esi
test esi, esi
jl 0x458e83
inc esi
xor ebx, ebx
lea ecx, [ebp - 0xa0]
mov edx, ebx
mov eax, dword [ebp - 0x14]
call fcn.00454190
mov eax, dword [ebp - 0xa0]
call fcn.0042cc68
test al, al
je 0x458e7f
push 0
lea ecx, [ebp - 0xa0]
mov edx, ebx
mov eax, dword [ebp - 0x14]
call fcn.00454190
mov eax, dword [ebp - 0xa0]
call fcn.00403750
push eax
push 0x1001
push 0x1000
call fcn.0042cbe4
inc ebx
dec esi
jne 0x458e33
mov eax, dword [ebp - 0x18]
call fcn.00402b70
mov eax, dword [ebp - 0x1c]
call fcn.00402b70
mov eax, dword [ebp - 0x7c]
call fcn.00402b70
mov eax, dword [ebp - 0x14]
call fcn.00402b70
ret