Function at 0x41c037
Capabilities:
Delete file
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xe8
push ebx
push esi
push edi
xor edi, edi
cmp dword [0x482a18], edi
mov dword [ebp - 8], ecx
mov dword [ebp - 0x1c], edi
jle 0x41c97e
jmp 0x41c05b
xor edi, edi
push dword [ebp - 0x1c]
mov ecx, 0x482a0c
call fcn.00421fff
mov ebx, eax
mov dword [ebp - 0xc], ebx
push dword [ebx + 0x38]
call fcn.00414cd2
test al, al
pop ecx
je 0x41c945
lea ecx, [ebp - 0x18]
call fcn.0041ef35
mov eax, dword [ebx]
mov byte [ebp - 1], 1
cmp eax, 1
jne 0x41c151
lea esi, [ebx + 8]
push eax
push 0x431150
mov ecx, esi
xor edi, edi
call fcn.0041f3c0
test al, al
push 1
jne 0x41c131
push 0x43114c
mov ecx, esi
call fcn.0041f3c0
test al, al
je 0x41c0c5
push 2
jmp 0x41c131
push 1
push 0x431148
mov ecx, esi
call fcn.0041f3c0
test al, al
je 0x41c0db
push 3
jmp 0x41c131
push 1
push 0x431144
mov ecx, esi
call fcn.0041f3c0
test al, al
je 0x41c0f1
push 4
jmp 0x41c131
push 1
push str.3.5_SP1
mov ecx, esi
call fcn.0041f3c0
test al, al
je 0x41c107
push 5
jmp 0x41c131
push 1
push str.4.0_Client
mov ecx, esi
call fcn.0041f3c0
test al, al
je 0x41c11d
push 6
jmp 0x41c131
push 1
push str.4.0_Full
mov ecx, esi
call fcn.0041f3c0
test al, al
je 0x41c132
push 7
pop edi
xor eax, eax
push eax
push eax
push eax
call fcn.004233f5
add esp, 0xc
cmp eax, edi
jge 0x41c147
and byte [ebp - 1], 0
push 0x431114
jmp 0x41c5c9
cmp eax, 2
jne 0x41c1b7
lea ecx, [ebp - 0xa8]
call fcn.0041ef35
lea eax, [ebp - 0xa8]
push eax
call fcn.004246a9
cmp dword [ebp - 0xa8], edi
pop ecx
je 0x41c196
lea ecx, [ebp - 0xa8]
call fcn.0041ff07
push eax
lea ecx, [ebx + 8]
call fcn.0041ff07
push eax
call fcn.00428830
pop ecx
test eax, eax
pop ecx
jle 0x41c19a
and byte [ebp - 1], 0
push str.Java
lea ecx, [ebp - 0x18]
call fcn.0041f0d8
lea ecx, [ebp - 0xa8]
call fcn.0041f06b
jmp 0x41c5d1
cmp eax, 3
jne 0x41c3dc
push 0x4824f0
lea ecx, [ebp - 0xb4]
call fcn.0041f009
xor edi, edi
lea ecx, [ebp - 0xb4]
push edi
push str.hhctrl.ocx
call fcn.0041f20d
lea eax, [ebp - 0x40]
lea ecx, [ebp - 0xb4]
push eax
lea eax, [ebp - 0x20]
push eax
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x40], edi
call fcn.0041ff07
push eax
call fcn.0040eb92
mov eax, dword [ebp - 0xc]
add esp, 0xc
xor ebx, ebx
lea esi, [eax + 8]
push 1
push 0x4310fc
mov ecx, esi
call fcn.0041f3c0
test al, al
je 0x41c22e
mov edi, 0x40048
mov ebx, 0x1c7a0000
jmp 0x41c388
push 1
push 0x431150
mov ecx, esi
call fcn.0041f3c0
test al, al
je 0x41c24f
mov edi, 0x40048
mov ebx, 0x1c9b0000
jmp 0x41c388
push 1
push str.1.1a
mov ecx, esi
call fcn.0041f3c0
test al, al
je 0x41c270
mov edi, 0x40048
mov ebx, 0x1c9d0000
jmp 0x41c388
push 1
push str.1.1b
mov ecx, esi
call fcn.0041f3c0
test al, al
je 0x41c291
mov edi, 0x40048
mov ebx, 0x1fe40000
jmp 0x41c388
push 1
push 0x4310e8
mov ecx, esi
call fcn.0041f3c0
test al, al
je 0x41c2b2
mov edi, 0x40049
mov ebx, 0x203c0000
jmp 0x41c388
push 1
push str.1.21
mov ecx, esi
call fcn.0041f3c0
test al, al
je 0x41c2d3
mov edi, 0x40049
mov ebx, 0x20dc0000
jmp 0x41c388
push 1
push str.1.21a
mov ecx, esi
call fcn.0041f3c0
test al, al
je 0x41c2f4
mov edi, 0x40049
mov ebx, 0x211a0000
jmp 0x41c388
push 1
push str.1.22
mov ecx, esi
call fcn.0041f3c0
test al, al
je 0x41c312
mov edi, 0x40049
mov ebx, 0x21710000
jmp 0x41c388
push 1
push 0x4310cc
mov ecx, esi
call fcn.0041f3c0
test al, al
je 0x41c330
mov edi, 0x4004a
mov ebx, 0x21fe0000
jmp 0x41c388
push 1
push str.1.31
mov ecx, esi
call fcn.0041f3c0
test al, al
je 0x41c34e
mov edi, 0x4004a
mov ebx, 0x22590000
jmp 0x41c388
push 1
push str.1.32
mov ecx, esi
call fcn.0041f3c0
test al, al
je 0x41c36c
mov edi, 0x4004a
mov ebx, 0x22ab0000
jmp 0x41c388
push 1
push str.1.33
mov ecx, esi
call fcn.0041f3c0
test al, al
je 0x41c388
mov edi, 0x4004a
mov ebx, 0x24390000
mov ecx, dword [ebp - 0x20]
mov eax, edi
shr eax, 0x10
shr ecx, 0x10
cmp cx, ax
jb 0x41c3b8
jne 0x41c3a0
cmp word [ebp - 0x20], di
jb 0x41c3b8
cmp cx, ax
jne 0x41c3bc
cmp word [ebp - 0x20], di
jne 0x41c3bc
mov eax, dword [ebp - 0x40]
shr ebx, 0x10
shr eax, 0x10
cmp eax, ebx
jae 0x41c3bc
and byte [ebp - 1], 0
push str.HTML_Help_Viewer
lea ecx, [ebp - 0x18]
call fcn.0041f0d8
lea ecx, [ebp - 0xb4]
call fcn.0041f06b
mov ebx, dword [ebp - 0xc]
jmp 0x41c5d1
cmp eax, 4
jne 0x41c520
push 0x432518
lea ecx, [ebp - 0x64]
call fcn.0041efa5
lea esi, [ebx + 8]
push 1
push 0x43109c
mov ecx, esi
call fcn.0041f3c0
test al, al
je 0x41c40e
push str.2.50.4403.12
jmp 0x41c457
push 1
push 0x431088
mov ecx, esi
call fcn.0041f3c0
test al, al
je 0x41c427
push str.2.60.6526.3
jmp 0x41c457
push 1
push 0x431078
mov ecx, esi
call fcn.0041f3c0
test al, al
je 0x41c440
push str.2.70.9001.0
jmp 0x41c457
push 1
push 0x431068
mov ecx, esi
call fcn.0041f3c0
test al, al
je 0x41c45f
push str.2.80.1022.0
lea ecx, [ebp - 0x64]
call fcn.0041f0d8
lea ecx, [ebp - 0x78]
call fcn.0041ef35
lea eax, [ebp - 0x24]
mov dword [ebp - 0x24], edi
push eax
mov eax, dword [0x483760]
or eax, 0x20019
push eax
push edi
push str.SoftwareMicrosoftDataAccess
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x41c4dc
and byte [ebp - 0xe8], al
push 0xc
pop ecx
lea edi, [ebp - 0xe7]
rep stosd dword es:[edi], eax
stosb byte es:[edi], al
lea eax, [ebp - 0xc]
mov dword [ebp - 0xc], 0x32
push eax
lea eax, [ebp - 0xe8]
push eax
push 0
push 0
push str.FullInstallVer
push dword [ebp - 0x24]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
lea eax, [ebp - 0xe8]
lea ecx, [ebp - 0x78]
push eax
call fcn.0041f0d8
push dword [ebp - 0x24]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [ebp - 0x78], 0
je 0x41c4ff
lea ecx, [ebp - 0x78]
call fcn.0041ff07
push eax
lea ecx, [ebp - 0x64]
call fcn.0041ff07
push eax
call fcn.00428830
pop ecx
test eax, eax
pop ecx
jle 0x41c503
and byte [ebp - 1], 0
push str.Microsoft_Data_Access_Components
lea ecx, [ebp - 0x18]
call fcn.0041f0d8
lea ecx, [ebp - 0x78]
call fcn.0041f06b
lea ecx, [ebp - 0x64]
jmp 0x41c1ad
cmp eax, 5
jne 0x41c93d
mov eax, dword [0x482bbc]
cmp eax, 0xffffffff
jne 0x41c53d
call fcn.00423acb
mov dword [0x482bbc], eax
mov dword [ebp - 0x68], eax
lea esi, [ebx + 8]
shr eax, 0x10
xor edi, edi
push 1
push 0x431004
mov ecx, esi
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0xc], edi
call fcn.0041f3c0
test al, al
je 0x41c564
push 7
jmp 0x41c5ac
push 1
push 0x431000
mov ecx, esi
call fcn.0041f3c0
test al, al
je 0x41c57a
push 8
jmp 0x41c5ac
push 1
push 0x430ffc
mov ecx, esi
call fcn.0041f3c0
test al, al
je 0x41c598
push 8
mov dword [ebp - 0xc], 1
pop edi
jmp 0x41c5ad
push 1
push 0x430ff8
mov ecx, esi
call fcn.0041f3c0
test al, al
je 0x41c5ad
push 9
pop edi
movzx eax, word [ebp - 0x68]
cmp eax, edi
jl 0x41c5c0
jne 0x41c5c4
movzx eax, word [ebp - 0x6c]
cmp eax, dword [ebp - 0xc]
jge 0x41c5c4
and byte [ebp - 1], 0
push str.DirectX
lea ecx, [ebp - 0x18]
call fcn.0041f0d8
cmp byte [ebp - 1], 0
jne 0x41c93d
lea eax, [ebp - 0x18]
lea ecx, [ebp - 0x58]
push eax
call fcn.0041f009
lea eax, [ebx + 0x14]
lea ecx, [ebp - 0x58]
push eax
call fcn.0041f28b
lea eax, [ebx + 8]
lea ecx, [ebp - 0x18]
push eax
call fcn.0041f28b
xor esi, esi
cmp dword [0x48261c], esi
je 0x41c681
call fcn.004216e6
test al, al
jne 0x41c681
lea ecx, [ebp - 0x9c]
call fcn.0041ef35
lea ecx, [ebp - 0x18]
call fcn.0041ff07
push eax
mov ecx, 0x4835e4
call fcn.0041ff07
push eax
lea eax, [ebp - 0x9c]
push eax
call fcn.0041f62d
add esp, 0xc
lea ecx, [ebp - 0x9c]
push 3
push esi
call fcn.0041ff07
mov ecx, dword [ebp - 8]
push eax
push esi
call fcn.0041e217
cmp eax, 7
jne 0x41c668
lea ecx, [ebp - 0x9c]
jmp 0x41c930
cmp eax, 2
jne 0x41c679
push 1
mov ecx, 0x482408
call fcn.0041cffe
lea ecx, [ebp - 0x9c]
jmp 0x41c6d6
lea ecx, [ebp - 0x90]
call fcn.0041ef35
lea ecx, [ebp - 0x18]
call fcn.0041ff07
push eax
mov ecx, 0x4835d8
call fcn.0041ff07
push eax
lea eax, [ebp - 0x90]
push eax
call fcn.0041f62d
add esp, 0xc
lea ecx, [ebp - 0x90]
push 4
push esi
call fcn.0041ff07
mov ecx, dword [ebp - 8]
push eax
push esi
call fcn.0041e217
cmp eax, 7
je 0x41c959
lea ecx, [ebp - 0x90]
call fcn.0041f06b
mov ecx, dword [ebp - 8]
lea esi, [ebx + 0x20]
push esi
call fcn.00418e4f
mov ecx, dword [ebp - 8]
push esi
call fcn.0041d6f6
mov ecx, dword [ebp - 8]
push 0x7fffffff
push esi
call fcn.0041e39b
lea ecx, [ebp - 0x3c]
call fcn.0041ef35
mov eax, dword [ebx]
cmp eax, 3
jne 0x41c714
push str._r:n__q:a
jmp 0x41c71e
cmp eax, 4
jne 0x41c726
push str._q:a__c:_dasetup.exe__q__n_
lea ecx, [ebp - 0x3c]
call fcn.0041f0d8
lea edi, [ebx + 0x2c]
push 0
push str._Default_
mov ecx, edi
call fcn.0041f3c0
test al, al
jne 0x41c744
push edi
lea ecx, [ebp - 0x3c]
call fcn.0041f146
mov eax, dword [ebx + 4]
test eax, eax
jne 0x41c7bd
lea ecx, [ebp - 0x84]
call fcn.0041ef35
mov ecx, esi
call fcn.0041ff07
push eax
lea eax, [ebp - 0x84]
push 0x4300ec
push eax
call fcn.0041f62d
add esp, 0xc
cmp dword [ebp - 0x3c], 0
jbe 0x41c795
lea ecx, [ebp - 0x3c]
call fcn.0041ff07
push eax
lea eax, [ebp - 0x84]
push 0x430fb4
push eax
call fcn.0041f62d
add esp, 0xc
push 0x432518
push 0
lea ecx, [ebp - 0x84]
call fcn.0041ff07
push eax
mov ecx, 0x482d70
call fcn.00413209
lea ecx, [ebp - 0x84]
jmp 0x41c912
cmp eax, 1
jne 0x41c917
lea ecx, [ebp - 0x30]
call fcn.0041ef35
lea ecx, [ebp - 0x4c]
call fcn.0041ef35
lea ecx, [ebp - 0x18]
call fcn.0041ff07
push eax
lea eax, [ebp - 0x4c]
push str._ResourceDir_3rd_party_s.exe
push eax
call fcn.0041f62d
mov ecx, dword [ebp - 8]
add esp, 0xc
lea eax, [ebp - 0x4c]
push eax
call fcn.0041d6f6
lea ecx, [ebp - 0x58]
call fcn.0041ff07
push eax
mov ecx, esi
call fcn.0041ff07
push eax
lea ecx, [ebp - 0x4c]
call fcn.0041ff07
push eax
lea eax, [ebp - 0x30]
push str.__ResourceDir_3rd_partyDownloader.exe___download__local___s___url___s___program___s_
push eax
call fcn.0041f62d
mov ecx, dword [ebp - 8]
add esp, 0x14
lea eax, [ebp - 0x30]
push eax
call fcn.0041d6f6
mov esi, 0x432518
lea ecx, [ebp - 0x30]
push esi
push 0
call fcn.0041ff07
mov edi, 0x482d70
push eax
mov ecx, edi
call fcn.00413209
lea ecx, [ebp - 0x4c]
call fcn.0041ff07
push eax
call fcn.0040f27e
test al, al
pop ecx
jne 0x41c8a2
push 4
push 0
mov ecx, 0x4835f0
call fcn.0041ff07
mov ecx, dword [ebp - 8]
push eax
push 0
call fcn.0041e217
cmp eax, 6
jne 0x41c896
lea ecx, [ebp - 0x4c]
call fcn.0041f06b
lea ecx, [ebp - 0x30]
call fcn.0041f06b
jmp 0x41c92d
push 1
mov ecx, 0x482408
call fcn.0041cffe
push esi
lea ecx, [ebp - 0x30]
call fcn.0041f0d8
lea ecx, [ebp - 0x4c]
call fcn.0041ff07
push eax
lea eax, [ebp - 0x30]
push 0x4300ec
push eax
call fcn.0041f62d
add esp, 0xc
cmp dword [ebp - 0x3c], 0
jbe 0x41c8e5
lea ecx, [ebp - 0x3c]
call fcn.0041ff07
push eax
lea eax, [ebp - 0x30]
push 0x430fb4
push eax
call fcn.0041f62d
add esp, 0xc
push esi
push 0
lea ecx, [ebp - 0x30]
call fcn.0041ff07
push eax
mov ecx, edi
call fcn.00413209
lea ecx, [ebp - 0x4c]
call fcn.0041ff07
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
lea ecx, [ebp - 0x4c]
call fcn.0041f06b
lea ecx, [ebp - 0x30]
call fcn.0041f06b
cmp dword [ebx], 4
jne 0x41c92d
mov eax, dword [0x482610]
and eax, 0xf7fffff3
or al, 2
mov dword [0x482610], eax
lea ecx, [ebp - 0x3c]
call fcn.0041f06b
lea ecx, [ebp - 0x58]
call fcn.0041f06b
lea ecx, [ebp - 0x18]
call fcn.0041f06b
inc dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
cmp eax, dword [0x482a18]
jl 0x41c059
jmp 0x41c97e
mov ecx, dword [ebp - 8]
push 1
call fcn.0041cffe
lea ecx, [ebp - 0x90]
call fcn.0041f06b
lea ecx, [ebp - 0x58]
call fcn.0041f06b
lea ecx, [ebp - 0x18]
call fcn.0041f06b
pop edi
pop esi
pop ebx
leave
ret