Function at 0x408237
Capabilities:
Create process on windows
Delete registry key
Delete registry value
Query or enumerate registry key
Query or enumerate registry value

Disassembly:
sub esp, 0xccc
cmp dword [0x4177f4], 0x3e9
push ebx
push ebp
push esi
push edi
push 1
mov dword [esp + 0x24], 0x1d
mov dword [esp + 0x28], 0x1e
mov dword [esp + 0x2c], 0x1f
mov dword [esp + 0x30], 0x20
mov dword [esp + 0x34], 0x21
mov dword [esp + 0x38], 0x22
mov dword [esp + 0x3c], 0x23
mov dword [esp + 0x40], 0x24
mov dword [esp + 0x44], 0x25
mov dword [esp + 0x48], 0x28
mov dword [esp + 0x4c], 0x2c
mov dword [esp + 0x50], 0x38
mov dword [esp + 0x54], 0x39
mov dword [esp + 0x58], 0x3a
pop ebx
jne 0x4082d0
cmp dword [0x4178a8], 0
je 0x4082e6
and dword [0x4178a8], 0
cmp dword [0x4178a8], 0
je 0x4082e6
mov ax, word [0x417cb4]
mov word [esp + 0x10], ax
jmp 0x4082ea
mov dword [esp + 0x10], ebx
push 0xe
lea esi, [esp + 0x24]
lea edi, [esp + 0x160]
pop ebp
push 0x40
push edi
push dword [esi]
push dword [0x417bb0]
call fcn.0040b2b1
add esp, 0x10
add edi, 0x40
add esi, 4
dec ebp
jne 0x4082f8
mov eax, dword [0x417ba0]
mov ecx, dword [0x4177f8]
add eax, ecx
and dword [0x41782c], 0
add eax, dword [0x417c1c]
add eax, dword [0x417c28]
add eax, dword [0x417cbc]
add eax, dword [0x417854]
add eax, dword [0x4178ac]
add eax, dword [0x417ca8]
add eax, dword [0x4178a0]
add eax, dword [0x417bd4]
mov dword [0x417c18], eax
jne 0x408365
mov dword [0x417c18], ebx
cmp dword [0x417bac], 0
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov ebp, dword [sym.imp.KERNEL32.dll_lstrcatA]
jne 0x40860f
xor edi, edi
push edi
push 0x3ea
call fcn.00403600
push edi
push 0x3ec
call fcn.00403600
mov esi, 0x3ed
push 1
push esi
call fcn.00403600
push 1
push 0x3ef
call fcn.00403600
lea eax, [esp + 0x4fc]
push 0x100
push eax
push 0x2d
push dword [0x417bb0]
call fcn.0040b2b1
push dword [0x417bc8]
lea eax, [esp + 0x510]
push eax
lea eax, [esp + 0x914]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x3c
lea eax, [esp + 0x8dc]
push eax
push esi
push dword [0x4177b8]
call dword [sym.imp.USER32.dll_SetDlgItemTextA]
push edi
mov edi, dword [sym.imp.USER32.dll_GetDlgItem]
push 1
push dword [0x4177b8]
call edi
mov esi, dword [sym.imp.USER32.dll_EnableWindow]
push eax
call esi
push 0
push 5
push dword [0x4177b8]
call edi
push eax
call esi
xor edi, edi
mov esi, 0x417c40
lea eax, [edi + 0x6b]
movzx eax, ax
push eax
push dword [0x417bb0]
call dword [sym.imp.USER32.dll_LoadIconA]
mov dword [esi], eax
add esi, 4
inc edi
cmp esi, 0x417c94
jl 0x40842d
xor edi, edi
cmp dword [0x4178b8], edi
je 0x408472
push 5
push 0xef6
push dword [0x4177b8]
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
push edi
call fcn.004096cc
pop ecx
mov dword [0x417bac], 1
xor ecx, ecx
cmp dword [0x417bc0], edi
mov dword [esp + 0x14], ecx
jle 0x408611
cmp dword [0x41785c], edi
jne 0x408611
cmp dword [0x4177f4], 0x3e8
je 0x4084c1
mov eax, dword [0x417880]
mov eax, dword [eax + ecx*4]
cmp dword [eax + 0x204], edi
je 0x4085fc
mov eax, dword [0x417880]
mov esi, ecx
mov di, word [esp + 0x10]
shl esi, 2
add eax, esi
mov edx, dword [eax]
cmp word [edx + 0x208], di
jb 0x4085fa
push 0x5c
push edx
call fcn.0040c3d7
pop ecx
test eax, eax
pop ecx
je 0x408500
mov eax, dword [0x417880]
push 0
push dword [esi + eax]
call fcn.0040ae88
pop ecx
pop ecx
lea eax, [esp + 0x4dc]
push 0x414684
push eax
call ebx
push 0
call fcn.0040ba20
mov byte [esp + 0x4e0], al
pop ecx
lea eax, [esp + 0x45c]
push eax
push dword [0x41788c]
call ebx
mov eax, dword [0x417880]
mov eax, dword [esi + eax]
cmp byte [eax + 0x104], 0
lea ecx, [eax + 0x104]
je 0x408548
push ecx
jmp 0x408549
push eax
push dword [0x41788c]
call ebp
push dword [0x41788c]
call fcn.004096cc
cmp dword [0x4177f4], 0x3e8
pop ecx
mov eax, str.Automatic
je 0x408573
mov eax, str.Custom
push eax
lea eax, [esp + 0x5c]
push eax
call ebx
mov eax, dword [0x417880]
mov ebp, dword [esi + eax]
push ebp
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov edi, eax
add edi, ebp
cmp edi, ebp
jbe 0x4085d6
mov bl, byte [edi]
cmp bl, 0x20
je 0x40859d
test bl, bl
jne 0x4085b7
and byte [edi], 0
mov eax, dword [0x417880]
push 0
push dword [esi + eax]
call fcn.0040b027
pop ecx
test eax, eax
pop ecx
je 0x4085c4
mov byte [edi], bl
mov eax, dword [0x417880]
dec edi
cmp edi, dword [esi + eax]
ja 0x408592
jmp 0x4085d6
cmp bl, 0x20
jne 0x4085d6
inc edi
lea eax, [esp + 0x58]
push edi
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [esp + 0x58]
push eax
mov eax, dword [0x417880]
push dword [esi + eax]
call fcn.0040c326
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov ebp, dword [sym.imp.KERNEL32.dll_lstrcatA]
pop ecx
pop ecx
mov ecx, dword [esp + 0x14]
xor edi, edi
inc ecx
cmp ecx, dword [0x417bc0]
mov dword [esp + 0x14], ecx
jl 0x408495
jmp 0x408611
xor edi, edi
xor esi, esi
cmp dword [0x417ba0], edi
jle 0x4086b5
cmp dword [0x41785c], edi
jne 0x4086b5
cmp dword [0x4177f4], 0x3e8
je 0x408647
mov eax, dword [0x417cb8]
mov eax, dword [eax + esi*4]
cmp dword [eax + 0x104], edi
je 0x4086a2
mov eax, dword [0x417cb8]
mov eax, dword [eax + esi*4]
mov ax, word [eax + 0x108]
cmp ax, word [esp + 0x10]
jb 0x4086a2
lea eax, [esp + 0x49c]
push eax
push dword [0x41788c]
call ebx
mov eax, dword [0x417cb8]
push dword [eax + esi*4]
push dword [0x41788c]
call ebp
push dword [0x41788c]
call fcn.004096cc
mov eax, dword [0x417cb8]
push dword [eax + esi*4]
call fcn.0040b37d
push 0xdac
call fcn.004097d2
add esp, 0xc
inc dword [0x41782c]
inc esi
cmp esi, dword [0x417ba0]
jl 0x40861f
cmp dword [0x4178d4], edi
je 0x408708
cmp dword [0x4177f4], 0x3e8
je 0x4086d1
cmp dword [0x417800], edi
je 0x408708
lea eax, [esp + 0x3dc]
push eax
push dword [0x41788c]
call ebx
push dword [0x4178d4]
push dword [0x41788c]
call ebp
push dword [0x41788c]
call fcn.004096cc
pop ecx
call fcn.0040a770
test eax, eax
jne 0x4096c1
xor edi, edi
cmp dword [0x4178ac], edi
jle 0x4087b8
cmp dword [0x41785c], 0
jne 0x4087b8
cmp dword [0x4177f4], 0x3e8
je 0x408740
mov eax, dword [0x4177d4]
mov eax, dword [eax + edi*4]
cmp dword [eax + 0x104], 0
je 0x4087a5
mov eax, dword [0x4177d4]
mov cx, word [esp + 0x10]
mov esi, edi
shl esi, 2
mov eax, dword [esi + eax]
cmp word [eax + 0x108], cx
jb 0x4087a5
lea eax, [esp + 0x25c]
push eax
push dword [0x41788c]
call ebx
mov eax, dword [0x4177d4]
push dword [esi + eax]
push dword [0x41788c]
call ebp
push dword [0x41788c]
call fcn.004096cc
mov eax, dword [0x4177d4]
push 0
push dword [esi + eax]
call fcn.0040adcf
mov eax, dword [0x4177d4]
push dword [esi + eax]
call fcn.0040ab36
add esp, 0x10
inc dword [0x41782c]
inc edi
cmp edi, dword [0x4178ac]
jl 0x408716
xor edi, edi
cmp dword [0x417854], edi
jle 0x4088aa
cmp dword [0x41785c], 0
jne 0x4088aa
cmp dword [0x4177f4], 0x3e8
je 0x4087f4
mov eax, dword [0x4178e0]
mov eax, dword [eax + edi*4]
cmp dword [eax + 0x70c], 0
je 0x408897
mov eax, dword [0x4178e0]
mov cx, word [esp + 0x10]
mov esi, edi
shl esi, 2
mov eax, dword [esi + eax]
cmp word [eax + 0x710], cx
jb 0x408897
add eax, 8
push 0
push eax
call fcn.0040b027
pop ecx
test eax, eax
pop ecx
jne 0x408897
lea eax, [esp + 0x29c]
push eax
push dword [0x41788c]
call ebx
mov eax, dword [0x4178e0]
mov eax, dword [esi + eax]
add eax, 8
push eax
push dword [0x41788c]
call ebp
push dword [0x41788c]
call fcn.004096cc
mov eax, dword [0x4178e0]
cmp dword [0x4178a8], 0
pop ecx
mov eax, dword [esi + eax]
lea ecx, [eax + 0x50c]
jne 0x408871
lea ecx, [eax + 0x30c]
lea edx, [eax + 8]
push edx
mov dl, byte [ecx]
neg dl
sbb edx, edx
and edx, ecx
lea ecx, [eax + 0x20c]
push edx
add eax, 0x10c
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
mov ebp, dword [sym.imp.KERNEL32.dll_lstrcatA]
inc dword [0x41782c]
inc edi
cmp edi, dword [0x417854]
jl 0x4087c6
xor esi, esi
cmp dword [0x417bd0], esi
jle 0x408909
cmp dword [0x4178a8], 0
je 0x408900
mov eax, dword [0x4177cc]
mov cx, word [esp + 0x10]
mov eax, dword [eax + esi*4]
cmp word [eax + 0x208], cx
jb 0x408900
add eax, 0x104
push 0
push eax
call fcn.0040b027
pop ecx
test eax, eax
pop ecx
jne 0x408900
mov eax, dword [0x4177cc]
push 1
mov eax, dword [eax + esi*4]
lea ecx, [eax + 0x104]
push ecx
push eax
call fcn.0040a38b
add esp, 0xc
inc esi
cmp esi, dword [0x417bd0]
jl 0x4088b4
mov eax, dword [0x417bd4]
lea esi, [eax - 1]
test esi, esi
jl 0x408a3c
cmp dword [0x4177f4], 0x3e8
jne 0x408949
mov eax, dword [0x417818]
mov eax, dword [eax + esi*4]
cmp dword [eax + 0x268], 0
jne 0x40895e
cmp dword [0x4178a8], 0
je 0x408949
lea ecx, [eax + 0x10c]
test ecx, ecx
jne 0x40895e
mov eax, dword [0x417818]
mov eax, dword [eax + esi*4]
cmp dword [eax + 0x264], 0
je 0x408a35
mov cx, word [esp + 0x10]
cmp word [eax + 0x270], cx
jb 0x408a35
cmp word [eax + 0x276], cx
jb 0x40898f
push dword [eax + 0x278]
add eax, 8
push 1
push eax
call fcn.0040a186
add esp, 0xc
jmp 0x408991
xor eax, eax
cmp eax, 1
jne 0x4089cc
cmp dword [0x4178a8], 0
je 0x4089be
mov eax, dword [0x417818]
mov cx, word [esp + 0x10]
mov eax, dword [eax + esi*4]
cmp word [eax + 0x272], cx
jne 0x4089be
cmp byte [eax + 0x10c], 0
jne 0x408a35
mov eax, dword [0x417818]
mov eax, dword [eax + esi*4]
and byte [eax + 8], 0
jmp 0x408a35
mov eax, dword [0x417818]
mov eax, dword [eax + esi*4]
mov cx, word [eax + 0x272]
cmp cx, word [eax + 0x270]
jne 0x4089ed
cmp byte [eax + 0x10c], 0
je 0x4089f6
cmp dword [0x4178a8], 0
jne 0x408a35
mov di, word [esp + 0x10]
cmp word [eax + 0x26c], di
jb 0x408a1a
add eax, 8
push 0
push eax
lea eax, [esp + 0x3a4]
push eax
call fcn.0040a58c
add esp, 0xc
mov eax, dword [0x417818]
mov eax, dword [eax + esi*4]
cmp word [eax + 0x26e], di
jb 0x408a35
add eax, 8
push eax
call fcn.0040b3d2
pop ecx
dec esi
jns 0x408919
mov eax, dword [0x4178a0]
lea edi, [eax - 1]
test edi, edi
jl 0x408b66
mov eax, dword [0x417c34]
mov dx, word [esp + 0x10]
mov esi, edi
shl esi, 2
mov eax, dword [esi + eax]
cmp word [eax + 0x268], dx
jb 0x408b5f
mov ecx, dword [eax + 0x25c]
test ecx, ecx
jne 0x408a7d
cmp dword [0x417820], ecx
je 0x408ae9
cmp word [eax + 0x26e], dx
jb 0x408a98
push dword [eax + 0x270]
push ecx
push eax
call fcn.0040a186
add esp, 0xc
jmp 0x408a9a
xor eax, eax
push 1
pop ecx
cmp eax, ecx
jne 0x408ad6
cmp dword [0x4178a8], 0
je 0x408ac9
mov eax, dword [0x417c34]
mov eax, dword [esi + eax]
mov cx, word [eax + 0x26a]
cmp cx, word [esp + 0x10]
jne 0x408ac9
cmp byte [eax + 0x104], 0
jne 0x408ae9
mov eax, dword [0x417c34]
mov eax, dword [esi + eax]
and byte [eax], 0
jmp 0x408ae9
cmp eax, 2
jne 0x408ae9
mov eax, dword [0x417c34]
mov eax, dword [esi + eax]
mov dword [eax + 0x25c], ecx
mov eax, dword [0x417c34]
mov eax, dword [esi + eax]
cmp dword [eax + 0x25c], 0
je 0x408b5f
cmp byte [eax], 0
je 0x408b5f
mov cx, word [eax + 0x26a]
cmp cx, word [eax + 0x268]
jne 0x408b18
cmp byte [eax + 0x104], 0
je 0x408b21
cmp dword [0x4178a8], 0
jne 0x408b5f
mov cx, word [esp + 0x10]
cmp word [eax + 0x264], cx
jb 0x408b42
push 0
push eax
lea eax, [esp + 0x3a4]
push eax
call fcn.0040a58c
add esp, 0xc
mov eax, dword [0x417c34]
mov esi, dword [esi + eax]
mov ax, word [esp + 0x10]
cmp word [esi + 0x266], ax
jb 0x408b5f
push esi
call fcn.0040b3d2
pop ecx
dec edi
jns 0x408a4c
xor esi, esi
cmp dword [0x417bd4], esi
jle 0x408c75
cmp dword [0x41785c], 0
jne 0x408c75
mov eax, dword [0x417818]
mov eax, dword [eax + esi*4]
cmp byte [eax + 8], 0
lea ecx, [eax + 8]
je 0x408c62
cmp dword [0x4177f4], 0x3e8
jne 0x408bcb
cmp dword [eax + 0x268], 0
jne 0x408bd8
cmp dword [0x4178a8], 0
je 0x408bcb
cmp byte [eax + 0x10c], 0
je 0x408bcb
mov dx, word [eax + 0x272]
cmp dx, word [esp + 0x10]
je 0x408bd8
cmp dword [eax + 0x264], 0
je 0x408c62
mov dx, word [esp + 0x10]
cmp word [eax + 0x270], dx
jb 0x408c62
cmp word [eax + 0x272], dx
jne 0x408bfd
cmp dword [0x4178a8], 0
je 0x408bfd
push 1
pop edx
jmp 0x408bff
xor edx, edx
add eax, 0x10c
push edx
push eax
push ecx
call fcn.0040a38b
add esp, 0xc
test eax, eax
je 0x408c62
lea eax, [esp + 0x15c]
push eax
push dword [0x41788c]
call ebx
mov eax, dword [0x417818]
mov eax, dword [eax + esi*4]
add eax, 8
push eax
push dword [0x41788c]
call ebp
push dword [0x41788c]
push 0x3ef
push dword [0x4177b8]
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call fcn.00409f9a
push dword [0x41788c]
call fcn.004096cc
add esp, 0xc
inc dword [0x41782c]
inc esi
cmp esi, dword [0x417bd4]
jl 0x408b74
xor esi, esi
cmp dword [0x4178a0], esi
jle 0x408d70
cmp dword [0x41785c], 0
jne 0x408d70
mov eax, dword [0x417c34]
mov eax, dword [eax + esi*4]
cmp byte [eax], 0
je 0x408d5d
cmp dword [eax + 0x25c], 0
jne 0x408cd6
cmp dword [0x4178a8], 0
je 0x408d5d
cmp byte [eax + 0x104], 0
je 0x408d5d
mov cx, word [esp + 0x10]
cmp word [eax + 0x26a], cx
jne 0x408d5d
mov cx, word [esp + 0x10]
cmp word [eax + 0x268], cx
jb 0x408d5d
cmp word [eax + 0x26a], cx
jne 0x408cfb
cmp dword [0x4178a8], 0
je 0x408cfb
push 1
pop ecx
jmp 0x408cfd
xor ecx, ecx
push ecx
lea ecx, [eax + 0x104]
push ecx
push eax
call fcn.0040a38b
add esp, 0xc
test eax, eax
je 0x408d5d
lea eax, [esp + 0x19c]
push eax
push dword [0x41788c]
call ebx
mov eax, dword [0x417c34]
push dword [eax + esi*4]
push dword [0x41788c]
call ebp
push dword [0x41788c]
push 0x3ef
push dword [0x4177b8]
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call fcn.00409f9a
push dword [0x41788c]
call fcn.004096cc
add esp, 0xc
inc dword [0x41782c]
inc esi
cmp esi, dword [0x4178a0]
jl 0x408c83
xor esi, esi
cmp dword [0x4178a8], esi
je 0x408e9e
cmp dword [0x417bd4], esi
jle 0x408e21
cmp dword [0x41785c], 0
jne 0x408e21
mov eax, dword [0x417818]
mov eax, dword [eax + esi*4]
cmp byte [eax + 8], 0
lea ecx, [eax + 8]
je 0x408e14
cmp dword [0x4177f4], 0x3e8
jne 0x408dcf
cmp dword [eax + 0x268], 0
jne 0x408dd8
cmp dword [0x4178a8], 0
je 0x408dcf
cmp byte [eax + 0x10c], 0
jne 0x408dd8
cmp dword [eax + 0x264], 0
je 0x408e14
mov dx, word [esp + 0x10]
cmp word [eax + 0x270], dx
jb 0x408e14
cmp byte [eax + 0x10c], 0
je 0x408e14
cmp word [eax + 0x272], dx
jne 0x408e14
cmp word [eax + 0x26c], dx
jb 0x408e14
push 1
lea eax, [esp + 0x3a0]
push ecx
push eax
call fcn.0040a58c
add esp, 0xc
inc esi
cmp esi, dword [0x417bd4]
jl 0x408d8a
xor esi, esi
cmp dword [0x4178a0], esi
jle 0x408e9e
xor ecx, ecx
cmp dword [0x41785c], ecx
jne 0x408e9e
mov eax, dword [0x417c34]
mov eax, dword [eax + esi*4]
cmp byte [eax], cl
je 0x408e95
cmp dword [eax + 0x25c], ecx
jne 0x408e59
cmp dword [0x4178a8], ecx
je 0x408e95
cmp byte [eax + 0x104], cl
je 0x408e95
mov cx, word [esp + 0x10]
cmp word [eax + 0x268], cx
jb 0x408e95
cmp byte [eax + 0x104], 0
je 0x408e95
cmp word [eax + 0x26a], cx
jne 0x408e95
cmp word [eax + 0x264], cx
jb 0x408e95
push 1
push eax
lea eax, [esp + 0x3a4]
push eax
call fcn.0040a58c
add esp, 0xc
inc esi
cmp esi, dword [0x4178a0]
jl 0x408e2b
cmp dword [0x4177f4], 0x3e8
jne 0x408ec9
cmp dword [0x41785c], 0
jne 0x408ec9
cmp dword [0x4178a8], 0
jne 0x408ec9
push dword [esp + 0xce0]
call fcn.0040ab36
pop ecx
xor ebp, ebp
cmp dword [0x417ca8], ebp
jle 0x408fff
cmp dword [0x41785c], 0
jne 0x408fff
mov edx, dword [0x4177f4]
cmp edx, 0x3e8
je 0x408f07
mov eax, dword [0x417830]
mov eax, dword [eax + ebp*4]
cmp dword [eax + 0x104], 0
je 0x408fec
mov eax, dword [0x417830]
mov cx, word [esp + 0x10]
mov esi, ebp
shl esi, 2
mov eax, dword [esi + eax]
cmp word [eax + 0x10a], cx
jb 0x408fec
cmp edx, 0x3e9
je 0x408f3e
cmp word [eax + 0x108], cx
lea eax, [esp + 0x21c]
jb 0x408f45
lea eax, [esp + 0x1dc]
push eax
push dword [0x41788c]
call ebx
mov eax, dword [0x417830]
mov edi, dword [esi + eax]
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
cmp byte [eax + edi - 1], 0x5c
jne 0x408f79
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, dword [0x417830]
mov ecx, dword [esi + ecx]
and byte [eax + ecx - 1], 0
mov eax, dword [0x417830]
push dword [esi + eax]
push dword [0x41788c]
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push dword [0x41788c]
push 0x3ef
push dword [0x4177b8]
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call fcn.00409f9a
push dword [0x41788c]
call fcn.004096cc
mov eax, dword [0x417830]
add esp, 0xc
cmp dword [0x4177f4], 0x3e9
je 0x408fde
mov ecx, dword [esi + eax]
mov dx, word [esp + 0x10]
cmp word [ecx + 0x108], dx
jae 0x408fde
xor ecx, ecx
jmp 0x408fe1
push 1
pop ecx
push ecx
push dword [esi + eax]
call fcn.00409855
pop ecx
pop ecx
inc dword [0x41782c]
inc ebp
cmp ebp, dword [0x417ca8]
jl 0x408ed7
xor ebp, ebp
cmp dword [0x4178a8], ebp
je 0x40904c
cmp dword [0x4178cc], ebp
jne 0x409020
push dword [esp + 0xce0]
call fcn.0040ab36
pop ecx
jmp 0x40904c
push 1
push dword [esp + 0xce4]
call fcn.0040d1a8
mov esi, eax
pop ecx
cmp esi, 0xffffffff
pop ecx
je 0x40904c
push dword [0x4178cc]
push esi
call fcn.0040d062
push esi
call fcn.0040cfaf
add esp, 0xc
cmp dword [0x417c1c], ebp
jle 0x409153
cmp dword [0x41785c], 0
jne 0x409153
cmp dword [0x4177f4], 0x3e8
je 0x409086
mov eax, dword [0x417ba4]
mov eax, dword [eax + ebp*4]
cmp dword [eax + 0x121c], 0
je 0x409140
mov eax, dword [0x417ba4]
mov cx, word [esp + 0x10]
mov edi, ebp
shl edi, 2
mov eax, dword [edi + eax]
cmp word [eax + 0x1220], cx
jb 0x409140
lea eax, [esp + 0x31c]
push eax
push dword [0x41788c]
call ebx
push dword [0x41788c]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, dword [0x417ba4]
mov esi, eax
mov eax, dword [0x41788c]
mov ecx, dword [edi + ecx]
add esi, eax
add ecx, 8
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
cmp eax, 0x30
jle 0x4090f5
add esi, 0x2d
push 0x41466c
push esi
call ebx
push dword [0x41788c]
call fcn.004096cc
mov eax, dword [0x417ba4]
cmp dword [0x4178a8], 0
pop ecx
mov eax, dword [edi + eax]
lea ecx, [eax + 0xa14]
jne 0x40911e
lea ecx, [eax + 0x214]
push 0
push ecx
lea ecx, [eax + 0x108]
push ecx
lea ecx, [eax + 8]
push ecx
push dword [eax + 0x1218]
push dword [eax + 0x1214]
call fcn.00408098
add esp, 0x18
inc dword [0x41782c]
inc ebp
cmp ebp, dword [0x417c1c]
jl 0x409058
mov eax, dword [0x417cbc]
dec eax
test eax, eax
mov dword [esp + 0x14], eax
jl 0x40938e
jmp 0x40916b
mov eax, dword [esp + 0x14]
cmp dword [0x41785c], 0
jne 0x40938e
cmp dword [0x4177f4], 0x3e8
je 0x40919e
mov ecx, dword [0x4177fc]
mov eax, dword [ecx + eax*4]
cmp dword [eax + 0x21c], 0
je 0x409378
mov eax, dword [esp + 0x14]
mov esi, eax
mov eax, dword [0x4177fc]
shl esi, 2
mov eax, dword [esi + eax]
mov ax, word [eax + 0x220]
cmp ax, word [esp + 0x10]
jb 0x409378
mov ebp, dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [esp + 0x2dc]
push eax
push dword [0x41788c]
call ebp
push dword [0x41788c]
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenA]
call ebx
mov ecx, dword [0x4177fc]
mov edi, eax
mov eax, dword [0x41788c]
mov ecx, dword [esi + ecx]
add edi, eax
add ecx, 8
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push edi
call ebx
cmp eax, 0x30
jle 0x409211
add edi, 0x2d
push 0x41466c
push edi
call ebp
push dword [0x41788c]
call fcn.004096cc
cmp dword [0x4177dc], 0
pop ecx
je 0x40934f
push 1
pop ebx
mov eax, dword [0x4177fc]
lea ecx, [esp + 0x18]
push ecx
xor edi, edi
mov eax, dword [esi + eax]
push 0x1f
push edi
lea ecx, [eax + 8]
mov eax, dword [eax + 0x218]
push ecx
push dword [eax*4 + 0x414030]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x409335
cmp ebx, edi
je 0x40927a
mov eax, dword [0x4177fc]
mov eax, dword [esi + eax]
add eax, 0x10c
push eax
push dword [esp + 0x1c]
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueA]
push edi
push edi
push edi
lea eax, [esp + 0x28]
push edi
push eax
lea eax, [esp + 0x6c]
xor ebx, ebx
push eax
push edi
push dword [esp + 0x34]
mov dword [esp + 0x3c], 0x100
call dword [sym.imp.ADVAPI32.dll_RegEnumValueA]
mov ebp, eax
cmp ebp, edi
je 0x4092fb
push edi
push edi
push edi
lea eax, [esp + 0x28]
push edi
push eax
lea eax, [esp + 0x6c]
mov dword [esp + 0x30], 0x100
push eax
push edi
push dword [esp + 0x34]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExA]
push dword [esp + 0x18]
mov ebp, eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp ebp, edi
je 0x409378
mov eax, dword [0x4177fc]
mov eax, dword [esi + eax]
lea ecx, [eax + 8]
mov eax, dword [eax + 0x218]
push ecx
push dword [eax*4 + 0x414030]
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
xor edi, edi
jmp 0x409305
push dword [esp + 0x18]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp ebp, edi
je 0x409378
mov eax, dword [0x4177fc]
mov edi, dword [esi + eax]
mov eax, edi
add eax, 8
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
lea eax, [eax + edi + 7]
lea ecx, [edi + 8]
cmp eax, ecx
jbe 0x409330
cmp byte [eax], 0x5c
je 0x409330
dec eax
jmp 0x409324
and byte [eax], 0
jmp 0x409337
xor ebp, ebp
test ebp, ebp
je 0x409378
mov eax, dword [0x4177fc]
mov eax, dword [esi + eax]
cmp byte [eax + 8], 0
jne 0x40922d
jmp 0x409378
mov eax, dword [0x4177fc]
mov esi, dword [esi + eax]
cmp byte [esi + 0x10c], 0
jne 0x409378
cmp dword [esi + 0x218], 0
jne 0x409378
add esi, 8
push esi
push 0x80000000
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
inc dword [0x41782c]
dec dword [esp + 0x14]
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcpyA]
jns 0x409167
mov eax, dword [0x417c28]
xor ecx, ecx
lea edi, [eax - 1]
cmp edi, ecx
jl 0x409459
mov ebp, dword [sym.imp.KERNEL32.dll_lstrlenA]
cmp dword [0x41785c], ecx
jne 0x409635
cmp dword [0x4177f4], 0x3e8
je 0x4093ce
mov eax, dword [0x4178f8]
mov eax, dword [eax + edi*4]
cmp dword [eax + 0x104], ecx
je 0x40944c
mov eax, dword [0x4178f8]
mov dx, word [esp + 0x10]
mov eax, dword [eax + edi*4]
cmp word [eax + 0x108], dx
jb 0x40944c
lea eax, [esp + 0x41c]
push eax
push dword [0x41788c]
call ebx
push dword [0x41788c]
call ebp
mov ecx, dword [0x4178f8]
mov esi, eax
mov eax, dword [0x41788c]
push dword [ecx + edi*4]
add esi, eax
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push esi
call ebp
cmp eax, 0x30
jle 0x409428
add esi, 0x2d
push 0x41466c
push esi
call ebx
push dword [0x41788c]
call fcn.004096cc
mov eax, dword [0x4178f8]
mov eax, dword [eax + edi*4]
push dword [eax + 0x100]
push eax
call fcn.0040a977
add esp, 0xc
xor ecx, ecx
inc dword [0x41782c]
dec edi
jns 0x4093a6
cmp dword [0x41785c], ecx
jne 0x409635
push 1
xor esi, esi
cmp dword [0x4177f8], ecx
pop edi
jle 0x409541
cmp dword [0x41785c], ecx
jne 0x409519
cmp dword [0x4177f4], 0x3e8
je 0x40949e
mov eax, dword [0x41786c]
mov eax, dword [eax + esi*4]
cmp dword [eax + 0x300], ecx
je 0x409506
mov eax, dword [0x41786c]
mov dx, word [esp + 0x10]
mov eax, dword [eax + esi*4]
cmp word [eax + 0x304], dx
je 0x4094bc
cmp dword [0x4178a8], ecx
jne 0x409506
cmp edi, ecx
je 0x4094c7
call fcn.00409af6
xor edi, edi
lea eax, [esp + 0x35c]
push eax
push dword [0x41788c]
call ebx
mov eax, dword [0x41786c]
mov eax, dword [eax + esi*4]
add eax, 0x100
push eax
push dword [0x41788c]
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push dword [0x41788c]
call fcn.004096cc
push esi
call fcn.00409cc3
pop ecx
pop ecx
xor ecx, ecx
inc dword [0x41782c]
inc esi
cmp esi, dword [0x4177f8]
jl 0x409476
cmp edi, ecx
jne 0x409541
mov eax, dword [0x417860]
cmp eax, ecx
je 0x40952c
push eax
call sub.USER32.dll_DdeDisconnect
push 0
call fcn.004096cc
pop ecx
push dword [0x4177e8]
call sub.USER32.dll_DdeUninitialize
xor ecx, ecx
cmp dword [0x4178bc], ecx
je 0x409635
cmp dword [0x4177f4], 0x3e8
jne 0x409561
cmp dword [0x4178a8], ecx
je 0x409579
cmp dword [0x4178a8], ecx
je 0x409635
cmp dword [0x4178cc], ecx
jne 0x409635
cmp dword [0x4177dc], ecx
je 0x409635
lea eax, [esp + 0x1c]
xor esi, esi
push eax
push 0x1f
push esi
push str.SoftwareWise_SolutionsWamUser
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x409633
lea eax, [esp + 0x18]
mov dword [esp + 0x18], 0x100
push eax
lea eax, [esp + 0x4e0]
push eax
lea eax, [esp + 0x1c]
push eax
push esi
push str.Path
push dword [esp + 0x30]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x409629
lea eax, [esp + 0x4dc]
push esi
push eax
call fcn.0040ae88
mov esi, dword [sym.imp.KERNEL32.dll_lstrcatA]
pop ecx
pop ecx
lea eax, [esp + 0x4dc]
push str.__U__
push eax
call esi
push dword [0x4178bc]
lea eax, [esp + 0x4e0]
push eax
call esi
lea eax, [esp + 0x4dc]
push 0x414638
push eax
call esi
lea eax, [esp + 0x4dc]
push 5
push eax
call dword [sym.imp.KERNEL32.dll_WinExec]
push dword [esp + 0x1c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor ecx, ecx
cmp dword [0x4177f4], 0x3e8
jne 0x409649
cmp dword [0x4178a8], ecx
je 0x409659
cmp dword [0x4178a8], ecx
je 0x4096c1
cmp dword [0x4178cc], ecx
jne 0x4096c1
push dword [esp + 0xce0]
lea eax, [esp + 0x4e0]
push eax
call ebx
lea eax, [esp + 0x4dc]
push 1
push eax
call fcn.0040ae88
lea eax, [esp + 0x4e4]
push eax
lea eax, [esp + 0x64]
push str.SoftwareWise_SolutionsWise_Installation_SystemRepair_s
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x14
cmp byte [esp + 0x90], 0
lea eax, [esp + 0x90]
je 0x4096b3
cmp byte [eax], 0x5c
jne 0x4096ad
mov byte [eax], 0x2f
inc eax
cmp byte [eax], 0
jne 0x4096a5
lea eax, [esp + 0x58]
push 2
push eax
call fcn.0040a977
pop ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xccc
ret