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

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0x1c
push 0
push 0
dec ecx
jne 0x4c9709
push ecx
xchg dword [ebp - 4], ecx
push ebx
push esi
push edi
mov dword [ebp - 0x78], ecx
mov byte [ebp - 0x29], dl
mov dword [ebp - 0x30], eax
mov ecx, 0xa
lea eax, [ebp - 0x28]
mov edx, dword [0x4010ac]
call fcn.004071ec
xor eax, eax
push ebp
push 0x4ca4be
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, 0x4ca4dc
call fcn.004c5554
lea eax, [ebp - 0xa4]
call fcn.00493f88
mov eax, dword [ebp - 0xa4]
call fcn.0040dbc8
mov byte [ebp - 0x79], 1
mov eax, dword [ebp - 0x30]
mov byte [eax + 0x1c], 0
mov byte [ebp - 0x7a], 0
xor eax, eax
mov dword [ebp - 0x80], eax
xor eax, eax
mov dword [ebp - 0x44], eax
xor eax, eax
mov dword [ebp - 0x40], eax
xor eax, eax
mov dword [ebp - 0x38], eax
xor eax, eax
mov dword [ebp - 0x34], eax
xor eax, eax
mov dword [ebp - 0x48], eax
mov dl, 1
mov eax, dword [0x498220]
call fcn.00404068
mov dword [ebp - 0x3c], eax
xor edx, edx
push ebp
push 0x4ca451
push dword fs:[edx]
mov dword fs:[edx], esp
mov dl, 1
mov eax, dword [0x498220]
call fcn.00404068
mov dword [ebp - 0x80], eax
mov dl, 1
mov eax, dword [0x498220]
call fcn.00404068
mov dword [ebp - 0x44], eax
mov dl, 1
mov eax, dword [0x498220]
call fcn.00404068
mov dword [ebp - 0x40], eax
mov dl, 1
mov eax, dword [0x498220]
call fcn.00404068
mov dword [ebp - 0x38], eax
mov dl, 1
mov eax, dword [0x498220]
call fcn.00404068
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x78], 0
je 0x4c980b
mov dl, 1
mov eax, dword [0x498220]
call fcn.00404068
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x84], eax
mov ecx, eax
mov edx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x30]
mov ebx, dword [eax]
call dword [ebx + 8]
cmp byte [ebp - 0x29], 0
je 0x4c9bc4
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 8]
mov dword [ebp - 0x88], eax
cmp dword [ebp - 0x88], 0
je 0x4c9bc4
mov eax, dword [ebp - 0x88]
cmp word [eax + 0x10], 0x80
jne 0x4c9ba9
xor eax, eax
push ebp
push 0x4c9b56
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
mov eax, dword [ebp - 0x88]
call fcn.004c96ac
pop ecx
cmp dword [ebp - 0x1c], 0
je 0x4c988f
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x80]
call fcn.0049b840
inc eax
jne 0x4c9b17
mov bl, 1
mov eax, dword [ebp - 0x88]
mov esi, dword [eax + 8]
test esi, 1
je 0x4c98a6
xor ebx, ebx
jmp 0x4c98b0
test esi, 2
je 0x4c98b0
mov bl, 2
mov dword [ebp - 0xa0], 1
test esi, 8
je 0x4c98ce
mov dword [ebp - 0xa0], 7
jmp 0x4c98f2
test esi, 0x10
je 0x4c98e2
mov dword [ebp - 0xa0], 3
jmp 0x4c98f2
test esi, 0x40
je 0x4c98f2
xor eax, eax
mov dword [ebp - 0xa0], eax
test esi, 4
jne 0x4c9a0d
lea eax, [ebp - 0xa8]
mov ecx, dword [ebp - 0x28]
mov edx, 0x4ca534
call fcn.00406914
mov eax, dword [ebp - 0xa8]
call fcn.004c5554
cmp dword [ebp - 0x24], 0
je 0x4c9940
lea eax, [ebp - 0xac]
mov ecx, dword [ebp - 0x24]
mov edx, 0x4ca570
call fcn.00406914
mov eax, dword [ebp - 0xac]
call fcn.004c5554
mov eax, dword [ebp - 0x88]
test byte [eax + 8], 0x20
je 0x4c9969
mov eax, dword [ebp - 0x88]
test byte [eax + 9], 1
setne al
mov edx, dword [ebp - 0x28]
call fcn.00497d84
test al, al
je 0x4c99fe
mov eax, dword [ebp - 0x20]
push eax
push ebx
mov eax, dword [ebp - 0xa0]
push eax
push 0x4c8814
lea eax, [ebp - 0x90]
push eax
mov eax, dword [ebp - 0x88]
test byte [eax + 9], 1
setne al
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
call fcn.0049a1e8
test al, al
jne 0x4c99cb
mov eax, dword [ebp - 0x90]
mov dword [ebp - 0xb4], eax
mov byte [ebp - 0xb0], 0
lea edx, [ebp - 0xb4]
xor ecx, ecx
mov eax, 0x4ca5b0
call fcn.004c57d8
mov byte [ebp - 0x79], 0
jmp 0x4c9b04
cmp bl, 1
jne 0x4c9b04
mov eax, dword [ebp - 0x90]
mov dword [ebp - 0xb4], eax
mov byte [ebp - 0xb0], 0
lea edx, [ebp - 0xb4]
xor ecx, ecx
mov eax, 0x4ca5f4
call fcn.004c57d8
jmp 0x4c9b04
mov eax, 0x4ca62c
call fcn.004c5554
jmp 0x4c9b04
lea eax, [ebp - 0xb8]
mov ecx, dword [ebp - 0x28]
mov edx, 0x4ca674
call fcn.00406914
mov eax, dword [ebp - 0xb8]
call fcn.004c5554
cmp dword [ebp - 0x24], 0
je 0x4c9a4f
lea eax, [ebp - 0xbc]
mov ecx, dword [ebp - 0x24]
mov edx, 0x4ca6bc
call fcn.00406914
mov eax, dword [ebp - 0xbc]
call fcn.004c5554
mov eax, dword [ebp - 0x88]
test byte [eax + 8], 0x20
je 0x4c9a6b
mov eax, dword [ebp - 0x28]
call fcn.004933c4
test al, al
je 0x4c9afa
mov eax, dword [ebp - 0x88]
test byte [eax + 8], 0x80
jne 0x4c9a79
xor ebx, ebx
mov eax, dword [ebp - 0x20]
push eax
push ebx
mov eax, dword [ebp - 0xa0]
push eax
push 0x4c8814
lea eax, [ebp - 0x90]
push eax
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
call fcn.0049a4b4
test al, al
jne 0x4c9ace
mov eax, dword [ebp - 0x90]
mov dword [ebp - 0xb4], eax
mov byte [ebp - 0xb0], 0
lea edx, [ebp - 0xb4]
xor ecx, ecx
mov eax, 0x4ca708
call fcn.004c57d8
mov byte [ebp - 0x79], 0
jmp 0x4c9b04
cmp bl, 1
jne 0x4c9b04
mov eax, dword [ebp - 0x90]
mov dword [ebp - 0xb4], eax
mov byte [ebp - 0xb0], 0
lea edx, [ebp - 0xb4]
xor ecx, ecx
mov eax, 0x4ca5f4
call fcn.004c57d8
jmp 0x4c9b04
mov eax, 0x4ca74c
call fcn.004c5554
cmp dword [ebp - 0x1c], 0
je 0x4c9b4c
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x80]
call fcn.0049b748
jmp 0x4c9b4c
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0xcc], eax
mov byte [ebp - 0xc8], 0x11
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0xc4], eax
mov byte [ebp - 0xc0], 0x11
lea edx, [ebp - 0xcc]
mov ecx, 1
mov eax, 0x4ca7a8
call fcn.004c57d8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4c9b7f
mov edx, dword [ebp - 0x88]
mov eax, dword [ebp - 0x30]
call fcn.004c8690
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0x30]
mov ecx, dword [eax + 0xc]
mov edx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x30]
mov ebx, dword [eax]
call dword [ebx + 8]
jmp 0x4c9bb7
mov eax, dword [ebp - 0x88]
mov eax, dword [eax]
mov dword [ebp - 0x88], eax
cmp dword [ebp - 0x88], 0
jne 0x4c984a
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 8]
mov dword [ebp - 0x88], eax
cmp dword [ebp - 0x88], 0
je 0x4c9df9
mov byte [ebp - 0x89], 0
mov eax, dword [ebp - 0x88]
cmp word [eax + 0x10], 0x82
jne 0x4c9dab
mov byte [ebp - 0x89], 1
xor eax, eax
push ebp
push 0x4c9d82
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
mov eax, dword [ebp - 0x88]
call fcn.004c96ac
pop ecx
cmp byte [ebp - 0x29], 0
jne 0x4c9c2e
mov eax, dword [ebp - 0x88]
test byte [eax + 8], 1
jne 0x4c9d71
cmp byte [ebp - 0x29], 0
jne 0x4c9c3a
cmp dword [ebp - 0x24], 0
jne 0x4c9c3e
xor eax, eax
jmp 0x4c9c40
mov al, 1
mov byte [ebp - 0x8a], al
mov eax, dword [ebp - 0x88]
mov esi, dword [eax + 8]
test esi, 8
setne bl
test bl, bl
je 0x4c9c75
test esi, 0x400
setne dl
mov eax, dword [ebp - 0x28]
call fcn.004c8f04
mov byte [ebp - 0x8b], al
jmp 0x4c9c7c
mov byte [ebp - 0x8b], 0
test bl, bl
je 0x4c9cce
cmp byte [ebp - 0x8b], 0
je 0x4c9d78
cmp byte [ebp - 0x8a], 0
jne 0x4c9cce
mov eax, dword [ebp - 0x88]
test byte [eax + 9], 8
setne al
mov edx, dword [ebp - 0x28]
call fcn.00497d84
test al, al
je 0x4c9cce
mov eax, dword [ebp - 0x88]
test byte [eax + 9], 2
jne 0x4c9cce
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x30]
mov ecx, dword [eax]
call dword [ecx + 4]
test al, al
je 0x4c9d78
mov byte [ebp - 0x89], 0
cmp byte [ebp - 0x8a], 0
jne 0x4c9d22
mov eax, dword [ebp - 0x88]
test byte [eax + 8], 0x10
je 0x4c9d01
push ebp
mov eax, dword [ebp - 0x88]
test byte [eax + 9], 8
setne al
mov edx, dword [ebp - 0x28]
call fcn.004c900c
pop ecx
mov eax, dword [ebp - 0x88]
test byte [eax + 8], 0x40
je 0x4c9d22
mov eax, dword [ebp - 0x88]
test byte [eax + 9], 8
setne al
mov edx, dword [ebp - 0x28]
call fcn.004c929c
mov eax, dword [ebp - 0x88]
test byte [eax + 8], 4
je 0x4c9d5b
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0xb4], eax
mov byte [ebp - 0xb0], 0x11
lea edx, [ebp - 0xb4]
xor ecx, ecx
mov eax, 0x4ca800
call fcn.004c57d8
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
call fcn.0049b1b4
mov eax, dword [ebp - 0x88]
test byte [eax + 9], 0x10
je 0x4c9d78
mov eax, dword [ebp - 0x18]
call fcn.004c94b0
jmp 0x4c9d78
mov byte [ebp - 0x89], 0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4c9dab
cmp byte [ebp - 0x89], 0
je 0x4c9dde
mov edx, dword [ebp - 0x88]
mov eax, dword [ebp - 0x30]
call fcn.004c8690
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0x30]
mov ecx, dword [eax + 0xc]
mov edx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x30]
mov ebx, dword [eax]
call dword [ebx + 8]
jmp 0x4c9dec
mov eax, dword [ebp - 0x88]
mov eax, dword [eax]
mov dword [ebp - 0x88], eax
cmp dword [ebp - 0x88], 0
jne 0x4c9bdd
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 8]
mov dword [ebp - 0x88], eax
cmp dword [ebp - 0x88], 0
je 0x4ca379
push ebp
mov eax, dword [ebp - 0x88]
call fcn.004c96ac
pop ecx
xor eax, eax
push ebp
push 0x4ca31b
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x88]
movzx esi, word [eax + 0x10]
movzx eax, si
cmp eax, 0x85
jg 0x4c9e98
je 0x4ca0e5
cmp eax, 0x81
jg 0x4c9e7a
je 0x4c9f0b
dec eax
je 0x4c9ec9
add eax, 0xfffffff1
sub eax, 2
jb case.0x4c9ea6.140
sub eax, 0xe
je case.0x4c9ea6.140
sub eax, 0x60
je case.0x4c9ea6.140
jmp case.default.0x4c9ea6
sub eax, 0x82
je 0x4c9fb4
dec eax
je case.0x4c9ea6.140
dec eax
je 0x4ca0d2
jmp case.default.0x4c9ea6
add eax, 0xffffff7a
cmp eax, 6
ja case.default.0x4c9ea6
jmp dword [eax*4 + 0x4c9ead]
lea eax, [ebp - 0xd4]
mov ecx, dword [ebp - 0x28]
mov edx, 0x4ca83c
call fcn.00406914
mov edx, dword [ebp - 0xd4]
lea ecx, [ebp - 0xd0]
mov al, 0xc2
call fcn.00496dfc
mov ecx, dword [ebp - 0xd0]
mov dl, 1
mov eax, dword [0x40a9c0]
call fcn.004117f4
call fcn.00404a74
jmp case.0x4c9ea6.140
cmp byte [ebp - 0x29], 0
jne 0x4c9f21
mov eax, dword [ebp - 0x88]
test byte [eax + 8], 1
jne case.0x4c9ea6.140
mov eax, dword [ebp - 0x88]
mov ebx, dword [eax + 8]
test bl, 4
setne al
push eax
test bl, 8
setne al
push eax
push 0
push 0x4c8710
push 0x4c871c
lea eax, [ebp - 0x48]
push eax
test bl, 2
setne cl
test bl, 0x20
setne al
mov edx, dword [ebp - 0x28]
call fcn.004991b8
test al, al
je case.0x4c9ea6.140
mov eax, dword [ebp - 0x88]
test byte [eax + 8], 2
je case.0x4c9ea6.140
mov eax, dword [ebp - 0x88]
test byte [eax + 8], 0x10
je case.0x4c9ea6.140
push 0
mov eax, dword [ebp - 0x70]
push eax
push 5
push 0x10
call sub.shell32.dll_SHChangeNotify
lea edx, [ebp - 0xd8]
mov eax, dword [ebp - 0x28]
call fcn.00492fb4
mov edx, dword [ebp - 0xd8]
mov eax, dword [ebp - 0x3c]
call fcn.0049b79c
jmp case.0x4c9ea6.140
lea eax, [ebp - 0x74]
mov edx, dword [ebp - 0x24]
call fcn.0040649c
cmp byte [ebp - 0x29], 0
jne 0x4c9fcb
cmp dword [ebp - 0x74], 0
jne 0x4c9fd6
lea eax, [ebp - 0x74]
mov edx, dword [ebp - 0x28]
call fcn.0040649c
cmp byte [ebp - 0x29], 0
jne 0x4c9fe8
mov eax, dword [ebp - 0x88]
test byte [eax + 8], 1
jne 0x4ca04f
cmp byte [ebp - 0x29], 0
jne 0x4c9ffe
mov eax, dword [ebp - 0x88]
test byte [eax + 8], 2
jne case.0x4c9ea6.140
push ebp
mov eax, dword [ebp - 0x88]
test byte [eax + 8], 0x80
setne al
push eax
mov eax, dword [ebp - 0x88]
test byte [eax + 9], 1
setne al
push eax
mov eax, dword [ebp - 0x88]
test byte [eax + 8], 0x20
setne cl
mov eax, dword [ebp - 0x88]
test byte [eax + 9], 8
setne dl
mov eax, dword [ebp - 0x74]
call fcn.004c89a4
pop ecx
test al, al
jne case.0x4c9ea6.140
mov byte [ebp - 0x79], 0
jmp case.0x4c9ea6.140
mov eax, dword [ebp - 0x88]
test byte [eax + 8], 8
je 0x4ca070
mov eax, dword [ebp - 0x88]
test byte [eax + 9], 4
setne dl
mov eax, dword [ebp - 0x28]
call fcn.004c8f04
mov eax, dword [ebp - 0x74]
mov edx, dword [ebp - 0x28]
call fcn.00406be4
je case.0x4c9ea6.140
push ebp
mov eax, dword [ebp - 0x88]
test byte [eax + 8], 0x80
setne al
push eax
mov eax, dword [ebp - 0x88]
test byte [eax + 9], 1
setne al
push eax
mov eax, dword [ebp - 0x88]
test byte [eax + 8], 0x20
setne cl
mov eax, dword [ebp - 0x88]
test byte [eax + 9], 8
setne dl
mov eax, dword [ebp - 0x74]
call fcn.004c89a4
pop ecx
test al, al
jne case.0x4c9ea6.140
mov byte [ebp - 0x79], 0
jmp case.0x4c9ea6.140
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x24]
call fcn.00493800
jmp case.0x4c9ea6.140
mov eax, dword [ebp - 0x88]
test byte [eax + 8], 1
je 0x4ca104
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x24]
call fcn.004936a4
test al, al
je case.0x4c9ea6.140
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x24]
call fcn.0049384c
jmp case.0x4c9ea6.140
lea ecx, [ebp - 0x98]
lea edx, [ebp - 0x91]
mov eax, dword [ebp - 0x88]
mov eax, dword [eax + 8]
call fcn.004c83f8
mov ecx, dword [ebp - 0x70]
mov edx, dword [ebp - 0x98]
movzx eax, byte [ebp - 0x91]
call fcn.00494628
test eax, eax
je case.0x4c9ea6.140
sub eax, 2
je case.0x4c9ea6.140
mov byte [ebp - 0x79], 0
jmp case.0x4c9ea6.140
lea ecx, [ebp - 0x98]
lea edx, [ebp - 0x91]
mov eax, dword [ebp - 0x88]
mov eax, dword [eax + 8]
call fcn.004c83f8
push 0
push 2
lea eax, [ebp - 0x9c]
push eax
mov ecx, dword [ebp - 0x70]
mov edx, dword [ebp - 0x98]
movzx eax, byte [ebp - 0x91]
call fcn.00494568
test eax, eax
jne case.0x4c9ea6.140
push 2
push 0x557340
push 1
push 0
mov eax, dword [ebp - 0x6c]
push eax
mov eax, dword [ebp - 0x9c]
push eax
call sub.advapi32.dll_RegSetValueExW
test eax, eax
je 0x4ca1c2
mov byte [ebp - 0x79], 0
mov eax, dword [ebp - 0x9c]
push eax
call sub.advapi32.dll_RegCloseKey_1
jmp case.0x4c9ea6.140
lea ecx, [ebp - 0x98]
lea edx, [ebp - 0x91]
mov eax, dword [ebp - 0x88]
mov eax, dword [eax + 8]
call fcn.004c83f8
mov ecx, dword [ebp - 0x70]
mov edx, dword [ebp - 0x98]
movzx eax, byte [ebp - 0x91]
call fcn.004947ac
test eax, eax
je case.0x4c9ea6.140
sub eax, 2
je case.0x4c9ea6.140
sub eax, 0x8f
je case.0x4c9ea6.140
mov byte [ebp - 0x79], 0
jmp case.0x4c9ea6.140
lea ecx, [ebp - 0x98]
lea edx, [ebp - 0x91]
mov eax, dword [ebp - 0x88]
mov eax, dword [eax + 8]
call fcn.004c83f8
push 0
push 3
lea eax, [ebp - 0x9c]
push eax
mov ecx, dword [ebp - 0x70]
mov edx, dword [ebp - 0x98]
movzx eax, byte [ebp - 0x91]
call fcn.00494568
test eax, eax
jne case.0x4c9ea6.140
mov edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x9c]
call fcn.004944a8
test al, al
je 0x4ca293
mov eax, dword [ebp - 0x6c]
push eax
mov eax, dword [ebp - 0x9c]
push eax
call sub.advapi32.dll_RegDeleteValueW
test eax, eax
je 0x4ca293
mov byte [ebp - 0x79], 0
mov eax, dword [ebp - 0x9c]
push eax
call sub.advapi32.dll_RegCloseKey_1
jmp case.0x4c9ea6.140
mov eax, dword [ebp - 0x88]
test byte [eax + 8], 1
setne dl
mov eax, dword [ebp - 0x28]
call fcn.004c8f04
jmp case.0x4c9ea6.140
mov byte [ebp - 0x7a], 1
jmp case.0x4c9ea6.140
lea eax, [ebp - 0xe0]
push eax
movzx eax, si
mov dword [ebp - 0xb4], eax
mov byte [ebp - 0xb0], 0
lea edx, [ebp - 0xb4]
xor ecx, ecx
mov eax, 0x4ca868
call fcn.0040e11c
mov edx, dword [ebp - 0xe0]
lea ecx, [ebp - 0xdc]
mov al, 0xc2
call fcn.00496dfc
mov ecx, dword [ebp - 0xdc]
mov dl, 1
mov eax, dword [0x40a9c0]
call fcn.004117f4
call fcn.00404a74
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4ca344
mov edx, dword [ebp - 0x88]
mov eax, dword [ebp - 0x30]
call fcn.004c8690
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0x30]
mov ecx, dword [eax + 0xc]
mov edx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x30]
mov ebx, dword [eax]
call dword [ebx + 8]
cmp dword [ebp - 0x88], 0
jne 0x4c9e12
cmp byte [ebp - 0x7a], 0
je 0x4ca38f
push 0
push 0
push 0
push 0x8000000
call sub.shell32.dll_SHChangeNotify
mov eax, dword [ebp - 0x30]
test byte [eax + 0x1d], 0x10
je 0x4ca39d
call fcn.0049b480
cmp dword [ebp - 0x78], 0
je 0x4ca3ad
call dword [ebp - 0x78]
push ebp
call fcn.004c9618
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4ca45b
mov eax, dword [ebp - 0x48]
call fcn.00404098
mov eax, dword [ebp - 0x34]
call fcn.00404098
mov eax, dword [ebp - 0x38]
call fcn.00404098
mov eax, dword [ebp - 0x3c]
mov esi, dword [eax + 8]
dec esi
test esi, esi
jl 0x4ca430
inc esi
xor ebx, ebx
lea ecx, [ebp - 0xe4]
mov edx, ebx
mov eax, dword [ebp - 0x3c]
call fcn.0049b824
mov eax, dword [ebp - 0xe4]
call fcn.004933b0
test al, al
je 0x4ca42c
push 0
lea ecx, [ebp - 0xe8]
mov edx, ebx
mov eax, dword [ebp - 0x3c]
call fcn.0049b824
mov eax, dword [ebp - 0xe8]
call fcn.004064d4
push eax
push 0x1005
push 0x1000
call sub.shell32.dll_SHChangeNotify
inc ebx
dec esi
jne 0x4ca3e0
mov eax, dword [ebp - 0x40]
call fcn.00404098
mov eax, dword [ebp - 0x44]
call fcn.00404098
mov eax, dword [ebp - 0x80]
call fcn.00404098
mov eax, dword [ebp - 0x3c]
call fcn.00404098
ret