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

Disassembly:
sub esp, 0xdcc
push ebx
push ebp
xor ebx, ebx
push esi
inc ebx
xor ebp, ebp
cmp dword [0x41868c], 0x3e9
push edi
mov dword [esp + 0x20], 0x1d
mov dword [esp + 0x24], 0x1e
mov dword [esp + 0x28], 0x1f
mov dword [esp + 0x2c], 0x20
mov dword [esp + 0x30], 0x21
mov dword [esp + 0x34], 0x22
mov dword [esp + 0x38], 0x23
mov dword [esp + 0x3c], 0x24
mov dword [esp + 0x40], 0x25
mov dword [esp + 0x44], 0x28
mov dword [esp + 0x48], 0x2c
mov dword [esp + 0x4c], 0x38
mov dword [esp + 0x50], 0x39
mov dword [esp + 0x54], 0x3a
jne 0x40b725
cmp dword [0x41869c], ebp
je 0x40b73a
mov dword [0x41869c], ebp
cmp dword [0x41869c], ebp
je 0x40b73a
mov ax, word [0x4186ac]
mov word [esp + 0x10], ax
jmp 0x40b73e
mov dword [esp + 0x10], ebx
xor esi, esi
lea edi, [esp + 0x25c]
push 0x40
push edi
push dword [esp + esi*4 + 0x28]
push dword [0x418790]
call fcn.004033e3
add esp, 0x10
inc esi
add edi, 0x40
cmp esi, 0xe
jl 0x40b747
mov eax, dword [0x418714]
mov ecx, dword [0x418670]
add eax, ecx
add eax, dword [0x418788]
mov dword [0x418b10], ebp
add eax, dword [0x418a54]
add eax, dword [0x418b34]
add eax, dword [0x418718]
add eax, dword [0x418a68]
add eax, dword [0x418ae4]
add eax, dword [0x418a64]
add eax, dword [0x418720]
add eax, dword [0x4186f8]
mov dword [0x418b70], eax
jne 0x40b7bb
mov dword [0x418b70], ebx
cmp dword [0x418784], 0
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov ebp, dword [sym.imp.KERNEL32.dll_lstrcatA]
mov edi, dword [sym.imp.USER32.dll_GetDlgItem]
jne 0x40ba5f
push 0
push 0x3ea
call fcn.00401543
push 0
push 0x3ec
call fcn.00401543
push 1
mov esi, 0x3ed
push esi
call fcn.00401543
push 1
push 0x3ef
call fcn.00401543
push pe_nt_image_headers32
lea eax, [esp + 0xa00]
push eax
push 0x2d
push dword [0x418790]
call fcn.004033e3
push dword [0x4186e4]
lea eax, [esp + 0xa10]
push eax
lea eax, [esp + 0x614]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x3c
lea eax, [esp + 0x5dc]
push eax
push esi
push dword [0x418794]
call dword [sym.imp.USER32.dll_SetDlgItemTextA]
push 0
push 1
push dword [0x418794]
call edi
mov esi, dword [sym.imp.USER32.dll_EnableWindow]
push eax
call esi
push 0
push 5
push dword [0x418794]
call edi
push eax
call esi
xor esi, esi
lea eax, [esi + 0x6b]
movzx eax, ax
push eax
push dword [0x418790]
call dword [sym.imp.USER32.dll_LoadIconA]
mov dword [esi*4 + 0x418a80], eax
inc esi
cmp esi, 0x15
jl 0x40b87f
xor esi, esi
cmp dword [0x418b00], esi
je 0x40b8bf
push 5
push 0xef6
push dword [0x418794]
call edi
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
push esi
call fcn.00402af8
pop ecx
xor ecx, ecx
cmp dword [0x418b44], esi
mov dword [0x418784], 1
mov dword [esp + 0x14], ecx
jle 0x40ba5f
cmp dword [0x418738], 0
jne 0x40ba5f
cmp dword [0x41868c], 0x3e8
je 0x40b910
mov eax, dword [0x418744]
mov eax, dword [eax + ecx*4]
cmp dword [eax + 0x204], 0
je 0x40ba4e
mov eax, dword [0x418744]
mov di, word [esp + 0x10]
mov esi, ecx
shl esi, 2
add eax, esi
mov edx, dword [eax]
cmp word [edx + 0x208], di
jb 0x40ba4e
push 0x5c
push edx
call fcn.004025e3
test eax, eax
pop ecx
pop ecx
je 0x40b94f
mov eax, dword [0x418744]
push 0
push dword [esi + eax]
call fcn.0040306b
pop ecx
pop ecx
push 0x415318
lea eax, [esp + 0x9e0]
push eax
call ebx
push 0
call fcn.00401ea3
pop ecx
mov byte [esp + 0x9dc], al
lea eax, [esp + 0x55c]
push eax
push dword [0x418a5c]
call ebx
mov eax, dword [0x418744]
mov eax, dword [esi + eax]
lea ecx, [eax + 0x104]
cmp byte [ecx], 0
je 0x40b993
push ecx
jmp 0x40b994
push eax
push dword [0x418a5c]
call ebp
push dword [0x418a5c]
call fcn.00402af8
cmp dword [0x41868c], 0x3e8
pop ecx
mov eax, str.Automatic
je 0x40b9be
mov eax, str.Custom
push eax
lea eax, [esp + 0x160]
push eax
call ebx
mov eax, dword [0x418744]
mov ebp, dword [esi + eax]
push ebp
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov edi, eax
add edi, ebp
cmp edi, ebp
jbe 0x40ba27
mov bl, byte [edi]
cmp bl, 0x20
je 0x40b9eb
test bl, bl
jne 0x40ba05
mov byte [edi], 0
mov eax, dword [0x418744]
push 0
push dword [esi + eax]
call fcn.00401d5c
test eax, eax
pop ecx
pop ecx
je 0x40ba12
mov byte [edi], bl
mov eax, dword [0x418744]
dec edi
cmp edi, dword [esi + eax]
ja 0x40b9e0
jmp 0x40ba27
cmp bl, 0x20
jne 0x40ba27
inc edi
push edi
lea eax, [esp + 0x160]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [esp + 0x15c]
push eax
mov eax, dword [0x418744]
push dword [esi + eax]
call fcn.0040257b
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]
inc ecx
cmp ecx, dword [0x418b44]
mov dword [esp + 0x14], ecx
jl 0x40b8e2
xor edi, edi
cmp dword [0x41869c], edi
je 0x40bac6
xor esi, esi
cmp dword [0x4186f4], edi
jle 0x40bac6
cmp dword [0x418738], edi
jne 0x40bac6
mov eax, dword [0x418a30]
mov eax, dword [eax + esi*4]
mov cx, word [esp + 0x10]
cmp word [eax + 0x208], cx
jb 0x40babd
add eax, 0x104
push edi
push eax
call fcn.00401d5c
test eax, eax
pop ecx
pop ecx
jne 0x40babd
mov eax, dword [0x418a30]
mov eax, dword [eax + esi*4]
push 1
lea ecx, [eax + 0x104]
push ecx
push eax
call fcn.0040b517
add esp, 0xc
inc esi
cmp esi, dword [0x4186f4]
jl 0x40ba73
cmp dword [0x4186f8], edi
jle 0x40bad3
call section..text
xor esi, esi
cmp dword [0x4186f8], edi
jle 0x40bb29
cmp dword [0x418738], edi
jne 0x40bb29
mov eax, dword [0x4186ec]
mov eax, dword [eax + esi*4]
cmp byte [eax], 0
je 0x40bb1a
mov ecx, dword [0x418450]
cmp ecx, edi
je 0x40bb1a
cmp dword [0x418454], edi
je 0x40bb1a
push edi
push 1
push eax
call ecx
mov eax, dword [0x4186ec]
push 1
push dword [eax + esi*4]
call dword [0x418454]
inc dword [0x418b10]
inc esi
cmp esi, dword [0x4186f8]
jl 0x40badd
xor esi, esi
cmp dword [0x418714], edi
jle 0x40bbcd
cmp dword [0x418738], edi
jne 0x40bbcd
cmp dword [0x41868c], 0x3e8
je 0x40bb5f
mov eax, dword [0x418a34]
mov eax, dword [eax + esi*4]
cmp dword [eax + 0x104], edi
je 0x40bbba
mov eax, dword [0x418a34]
mov eax, dword [eax + esi*4]
mov cx, word [esp + 0x10]
cmp word [eax + 0x108], cx
jb 0x40bbba
lea eax, [esp + 0x59c]
push eax
push dword [0x418a5c]
call ebx
mov eax, dword [0x418a34]
push dword [eax + esi*4]
push dword [0x418a5c]
call ebp
push dword [0x418a5c]
call fcn.00402af8
mov eax, dword [0x418a34]
push dword [eax + esi*4]
call fcn.00401e0c
push 0xdac
call fcn.00401838
add esp, 0xc
inc dword [0x418b10]
inc esi
cmp esi, dword [0x418714]
jl 0x40bb37
cmp dword [0x418b40], edi
je 0x40bc20
cmp dword [0x41868c], 0x3e8
je 0x40bbe9
cmp dword [0x418710], edi
je 0x40bc20
lea eax, [esp + 0x4dc]
push eax
push dword [0x418a5c]
call ebx
push dword [0x418b40]
push dword [0x418a5c]
call ebp
push dword [0x418a5c]
call fcn.00402af8
pop ecx
call fcn.0040948b
test eax, eax
jne 0x40ce17
xor edi, edi
cmp dword [0x418a68], edi
jle 0x40bcd0
cmp dword [0x418738], 0
jne 0x40bcd0
cmp dword [0x41868c], 0x3e8
je 0x40bc58
mov eax, dword [0x418a28]
mov eax, dword [eax + edi*4]
cmp dword [eax + 0x104], 0
je 0x40bcbd
mov eax, dword [0x418a28]
mov cx, word [esp + 0x10]
mov esi, edi
shl esi, 2
mov eax, dword [esi + eax]
cmp word [eax + 0x108], cx
jb 0x40bcbd
lea eax, [esp + 0x35c]
push eax
push dword [0x418a5c]
call ebx
mov eax, dword [0x418a28]
push dword [esi + eax]
push dword [0x418a5c]
call ebp
push dword [0x418a5c]
call fcn.00402af8
mov eax, dword [0x418a28]
push 0
push dword [esi + eax]
call fcn.00401ca3
mov eax, dword [0x418a28]
push dword [esi + eax]
call fcn.00409691
add esp, 0x10
inc dword [0x418b10]
inc edi
cmp edi, dword [0x418a68]
jl 0x40bc2e
xor edi, edi
cmp dword [0x418718], edi
jle 0x40bdc5
cmp dword [0x418738], 0
jne 0x40bdc5
cmp dword [0x41868c], 0x3e8
je 0x40bd0c
mov eax, dword [0x418ae0]
mov eax, dword [eax + edi*4]
cmp dword [eax + 0x70c], 0
je 0x40bdb2
mov eax, dword [0x418ae0]
mov cx, word [esp + 0x10]
mov esi, edi
shl esi, 2
mov eax, dword [esi + eax]
cmp word [eax + 0x710], cx
jb 0x40bdb2
add eax, 8
push 0
push eax
call fcn.00401d5c
test eax, eax
pop ecx
pop ecx
jne 0x40bdb2
lea eax, [esp + 0x39c]
push eax
push dword [0x418a5c]
call ebx
mov eax, dword [0x418ae0]
mov eax, dword [esi + eax]
add eax, 8
push eax
push dword [0x418a5c]
call ebp
push dword [0x418a5c]
call fcn.00402af8
mov eax, dword [0x418ae0]
add eax, esi
cmp dword [0x41869c], 0
pop ecx
mov ecx, dword [eax]
lea edx, [ecx + 0x50c]
jne 0x40bd8a
lea edx, [ecx + 0x30c]
mov eax, dword [eax]
add ecx, 8
push ecx
mov cl, byte [edx]
neg cl
sbb ecx, ecx
and ecx, edx
push ecx
lea ecx, [eax + 0x20c]
push ecx
add eax, 0x10c
push eax
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
mov ebp, dword [sym.imp.KERNEL32.dll_lstrcatA]
inc dword [0x418b10]
inc edi
cmp edi, dword [0x418718]
jl 0x40bcde
xor esi, esi
cmp dword [0x4186fc], esi
jle 0x40be24
cmp dword [0x41869c], 0
je 0x40be1b
mov eax, dword [0x418af0]
mov eax, dword [eax + esi*4]
mov cx, word [esp + 0x10]
cmp word [eax + 0x208], cx
jb 0x40be1b
add eax, 0x104
push 0
push eax
call fcn.00401d5c
test eax, eax
pop ecx
pop ecx
jne 0x40be1b
mov eax, dword [0x418af0]
mov eax, dword [eax + esi*4]
push 1
lea ecx, [eax + 0x104]
push ecx
push eax
call fcn.0040b517
add esp, 0xc
inc esi
cmp esi, dword [0x4186fc]
jl 0x40bdcf
mov esi, dword [0x418720]
dec esi
js 0x40bf54
mov di, word [esp + 0x10]
cmp dword [0x41868c], 0x3e8
jne 0x40be68
mov eax, dword [0x418778]
lea eax, [eax + esi*4]
mov ecx, dword [eax]
cmp dword [ecx + 0x268], 0
jne 0x40be7f
cmp dword [0x41869c], 0
je 0x40be68
lea edx, [ecx + 0x10c]
test edx, edx
jne 0x40be7f
mov eax, dword [0x418778]
lea eax, [eax + esi*4]
mov ecx, dword [eax]
cmp dword [ecx + 0x264], 0
je 0x40bf4d
cmp word [ecx + 0x270], di
jb 0x40bf4d
cmp word [ecx + 0x276], di
jb 0x40bead
mov eax, dword [eax]
push dword [eax + 0x278]
add eax, 8
push 1
push eax
call fcn.004090a2
add esp, 0xc
jmp 0x40beaf
xor eax, eax
cmp eax, 1
jne 0x40bee5
cmp dword [0x41869c], 0
je 0x40bed7
mov eax, dword [0x418778]
mov eax, dword [eax + esi*4]
cmp word [eax + 0x272], di
jne 0x40bed7
cmp byte [eax + 0x10c], 0
jne 0x40bf4d
mov eax, dword [0x418778]
mov eax, dword [eax + esi*4]
mov byte [eax + 8], 0
jmp 0x40bf4d
mov eax, dword [0x418778]
lea ecx, [eax + esi*4]
mov eax, dword [ecx]
mov dx, word [eax + 0x272]
cmp dx, word [eax + 0x270]
jne 0x40bf08
cmp byte [eax + 0x10c], 0
je 0x40bf11
cmp dword [0x41869c], 0
jne 0x40bf4d
mov eax, dword [ecx]
cmp word [eax + 0x26c], di
jb 0x40bf32
add eax, 8
push 0
push eax
lea eax, [esp + 0x4a4]
push eax
call fcn.004092a7
add esp, 0xc
mov eax, dword [0x418778]
mov eax, dword [eax + esi*4]
cmp word [eax + 0x26e], di
jb 0x40bf4d
add eax, 8
push eax
call fcn.00409cf8
pop ecx
dec esi
jns 0x40be36
mov edi, dword [0x418a64]
jmp 0x40c07e
mov eax, dword [0x418b5c]
mov dx, word [esp + 0x10]
mov esi, edi
shl esi, 2
add eax, esi
mov ecx, dword [eax]
cmp word [ecx + 0x268], dx
jb 0x40c07e
cmp dword [ecx + 0x25c], 0
jne 0x40bf91
cmp dword [0x418b60], 0
je 0x40c004
cmp word [ecx + 0x26e], dx
jb 0x40bfb3
mov eax, dword [eax]
push dword [eax + 0x270]
push dword [eax + 0x25c]
push eax
call fcn.004090a2
add esp, 0xc
jmp 0x40bfb5
xor eax, eax
xor ecx, ecx
inc ecx
cmp eax, ecx
jne 0x40bff1
cmp dword [0x41869c], 0
je 0x40bfe4
mov eax, dword [0x418b5c]
mov eax, dword [esi + eax]
mov cx, word [esp + 0x10]
cmp word [eax + 0x26a], cx
jne 0x40bfe4
cmp byte [eax + 0x104], 0
jne 0x40c004
mov eax, dword [0x418b5c]
mov eax, dword [esi + eax]
mov byte [eax], 0
jmp 0x40c004
cmp eax, 2
jne 0x40c004
mov eax, dword [0x418b5c]
mov eax, dword [esi + eax]
mov dword [eax + 0x25c], ecx
mov eax, dword [0x418b5c]
lea ecx, [esi + eax]
mov eax, dword [ecx]
cmp dword [eax + 0x25c], 0
je 0x40c07e
cmp byte [eax], 0
je 0x40c07e
mov ecx, eax
mov dx, word [ecx + 0x26a]
cmp dx, word [ecx + 0x268]
jne 0x40c037
cmp byte [eax + 0x104], 0
je 0x40c040
cmp dword [0x41869c], 0
jne 0x40c07e
mov cx, word [eax + 0x264]
cmp cx, word [esp + 0x10]
jb 0x40c061
push 0
push eax
lea eax, [esp + 0x4a4]
push eax
call fcn.004092a7
add esp, 0xc
mov eax, dword [0x418b5c]
mov esi, dword [esi + eax]
mov ax, word [esp + 0x10]
cmp word [esi + 0x266], ax
jb 0x40c07e
push esi
call fcn.00409cf8
pop ecx
dec edi
jns 0x40bf5f
xor edi, edi
cmp dword [0x418720], edi
jle 0x40c231
cmp dword [0x418738], 0
jne 0x40c231
mov eax, dword [0x418778]
mov esi, edi
shl esi, 2
lea ecx, [esi + eax]
mov eax, dword [ecx]
cmp byte [eax + 8], 0
je 0x40c21e
cmp dword [0x41868c], 0x3e8
jne 0x40c0ee
cmp dword [eax + 0x268], 0
jne 0x40c0fb
cmp dword [0x41869c], 0
je 0x40c0ee
cmp byte [eax + 0x10c], 0
je 0x40c0ee
mov dx, word [eax + 0x272]
cmp dx, word [esp + 0x10]
je 0x40c0fb
cmp dword [eax + 0x264], 0
je 0x40c21e
mov dx, word [esp + 0x10]
cmp word [eax + 0x270], dx
jb 0x40c21e
cmp word [eax + 0x272], dx
jne 0x40c124
cmp dword [0x41869c], 0
je 0x40c124
xor eax, eax
inc eax
jmp 0x40c126
xor eax, eax
mov ecx, dword [ecx]
push eax
lea eax, [ecx + 0x10c]
push eax
add ecx, 8
push ecx
call fcn.0040b517
add esp, 0xc
test eax, eax
je 0x40c21e
lea eax, [esp + 0x25c]
push eax
push dword [0x418a5c]
call ebx
mov eax, dword [0x418778]
mov eax, dword [esi + eax]
add eax, 8
push eax
push dword [0x418a5c]
call ebp
push dword [0x418a5c]
push 0x3ef
push dword [0x418794]
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call fcn.00401946
push dword [0x418a5c]
call fcn.00402af8
add esp, 0xc
push dword [0x418a6c]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push eax
mov eax, dword [0x418778]
mov eax, dword [esi + eax]
push dword [0x418a6c]
add eax, 8
push eax
call fcn.00413271
add esp, 0xc
test eax, eax
je 0x40c21e
push dword [0x418a3c]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push eax
mov eax, dword [0x418778]
mov eax, dword [esi + eax]
push dword [0x418a3c]
add eax, 8
push eax
call fcn.00413271
add esp, 0xc
test eax, eax
je 0x40c21e
mov eax, dword [0x418778]
mov eax, dword [esi + eax]
add eax, 8
push eax
lea eax, [esp + 0x5c]
push eax
call ebx
lea eax, [esp + 0x58]
push eax
call fcn.00401ec6
pop ecx
lea ecx, [esp + 0x58]
cmp eax, ecx
jbe 0x40c213
mov byte [eax - 1], 0
lea eax, [esp + 0x58]
push eax
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
inc dword [0x418b10]
inc edi
cmp edi, dword [0x418720]
jl 0x40c093
xor esi, esi
cmp dword [0x418a64], esi
jle 0x40c330
cmp dword [0x418738], 0
jne 0x40c330
mov eax, dword [0x418b5c]
lea ecx, [eax + esi*4]
mov eax, dword [ecx]
cmp byte [eax], 0
je 0x40c31d
cmp dword [eax + 0x25c], 0
jne 0x40c294
cmp dword [0x41869c], 0
je 0x40c31d
cmp byte [eax + 0x104], 0
je 0x40c31d
mov dx, word [esp + 0x10]
cmp word [eax + 0x26a], dx
jne 0x40c31d
mov dx, word [esp + 0x10]
cmp word [eax + 0x268], dx
jb 0x40c31d
cmp word [eax + 0x26a], dx
jne 0x40c2b9
cmp dword [0x41869c], 0
je 0x40c2b9
xor eax, eax
inc eax
jmp 0x40c2bb
xor eax, eax
mov ecx, dword [ecx]
push eax
lea eax, [ecx + 0x104]
push eax
push ecx
call fcn.0040b517
add esp, 0xc
test eax, eax
je 0x40c31d
lea eax, [esp + 0x29c]
push eax
push dword [0x418a5c]
call ebx
mov eax, dword [0x418b5c]
push dword [eax + esi*4]
push dword [0x418a5c]
call ebp
push dword [0x418a5c]
push 0x3ef
push dword [0x418794]
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call fcn.00401946
push dword [0x418a5c]
call fcn.00402af8
add esp, 0xc
inc dword [0x418b10]
inc esi
cmp esi, dword [0x418a64]
jl 0x40c23f
xor edx, edx
cmp dword [0x41869c], edx
je 0x40c45f
xor esi, esi
cmp dword [0x418720], edx
jle 0x40c3e0
cmp dword [0x418738], edx
jne 0x40c3e0
mov eax, dword [0x418778]
mov eax, dword [eax + esi*4]
lea ecx, [eax + 8]
cmp byte [ecx], 0
je 0x40c3d1
cmp dword [0x41868c], 0x3e8
jne 0x40c38d
cmp dword [eax + 0x268], edx
jne 0x40c395
cmp dword [0x41869c], edx
je 0x40c38d
cmp byte [eax + 0x10c], 0
jne 0x40c395
cmp dword [eax + 0x264], edx
je 0x40c3d1
mov dx, word [esp + 0x10]
cmp word [eax + 0x270], dx
jb 0x40c3d1
cmp byte [eax + 0x10c], 0
je 0x40c3d1
cmp word [eax + 0x272], dx
jne 0x40c3d1
cmp word [eax + 0x26c], dx
jb 0x40c3d1
push 1
push ecx
lea eax, [esp + 0x4a4]
push eax
call fcn.004092a7
add esp, 0xc
inc esi
xor edx, edx
cmp esi, dword [0x418720]
jl 0x40c34c
xor esi, esi
cmp dword [0x418a64], edx
jle 0x40c45f
cmp dword [0x418738], edx
jne 0x40c45f
mov eax, dword [0x418b5c]
mov eax, dword [eax + esi*4]
cmp byte [eax], 0
je 0x40c454
cmp dword [eax + 0x25c], edx
jne 0x40c418
cmp dword [0x41869c], edx
je 0x40c454
cmp byte [eax + 0x104], 0
je 0x40c454
mov cx, word [esp + 0x10]
cmp word [eax + 0x268], cx
jb 0x40c454
cmp byte [eax + 0x104], 0
je 0x40c454
cmp word [eax + 0x26a], cx
jne 0x40c454
cmp word [eax + 0x264], cx
jb 0x40c454
push 1
push eax
lea eax, [esp + 0x4a4]
push eax
call fcn.004092a7
add esp, 0xc
inc esi
xor edx, edx
cmp esi, dword [0x418a64]
jl 0x40c3ea
cmp dword [0x41868c], 0x3e8
jne 0x40c488
cmp dword [0x418738], edx
jne 0x40c488
cmp dword [0x41869c], edx
jne 0x40c488
push dword [esp + 0xde0]
call fcn.00409691
pop ecx
xor ebp, ebp
cmp dword [0x418ae4], ebp
jle 0x40c5be
cmp dword [0x418738], 0
jne 0x40c5be
mov edx, dword [0x41868c]
cmp edx, 0x3e8
je 0x40c4c6
mov eax, dword [0x418b64]
mov eax, dword [eax + ebp*4]
cmp dword [eax + 0x104], 0
je 0x40c5ab
mov eax, dword [0x418b64]
mov cx, word [esp + 0x10]
mov esi, ebp
shl esi, 2
mov eax, dword [esi + eax]
cmp word [eax + 0x10a], cx
jb 0x40c5ab
cmp edx, 0x3e9
je 0x40c4fd
cmp word [eax + 0x108], cx
lea eax, [esp + 0x31c]
jb 0x40c504
lea eax, [esp + 0x2dc]
push eax
push dword [0x418a5c]
call ebx
mov eax, dword [0x418b64]
mov edi, dword [esi + eax]
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
cmp byte [eax + edi - 1], 0x5c
jne 0x40c538
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, dword [0x418b64]
mov ecx, dword [esi + ecx]
mov byte [eax + ecx - 1], 0
mov eax, dword [0x418b64]
push dword [esi + eax]
push dword [0x418a5c]
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push dword [0x418a5c]
push 0x3ef
push dword [0x418794]
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call fcn.00401946
push dword [0x418a5c]
call fcn.00402af8
mov eax, dword [0x418b64]
add esp, 0xc
cmp dword [0x41868c], 0x3e9
je 0x40c59d
mov ecx, dword [esi + eax]
mov dx, word [esp + 0x10]
cmp word [ecx + 0x108], dx
jae 0x40c59d
xor ecx, ecx
jmp 0x40c5a0
xor ecx, ecx
inc ecx
push ecx
push dword [esi + eax]
call fcn.0040afd7
pop ecx
pop ecx
inc dword [0x418b10]
inc ebp
cmp ebp, dword [0x418ae4]
jl 0x40c496
xor ebp, ebp
cmp dword [0x41869c], ebp
je 0x40c60b
cmp dword [0x418b4c], ebp
jne 0x40c5df
push dword [esp + 0xde0]
call fcn.00409691
pop ecx
jmp 0x40c60b
push 1
push dword [esp + 0xde4]
call fcn.0040f15d
mov esi, eax
cmp esi, 0xffffffff
pop ecx
pop ecx
je 0x40c60b
push dword [0x418b4c]
push esi
call fcn.0040ed31
push esi
call fcn.0040ec7e
add esp, 0xc
cmp dword [0x418788], ebp
jle 0x40c717
cmp dword [0x418738], 0
jne 0x40c717
cmp dword [0x41868c], 0x3e8
je 0x40c645
mov eax, dword [0x418728]
mov eax, dword [eax + ebp*4]
cmp dword [eax + 0x121c], 0
je 0x40c704
mov eax, dword [0x418728]
mov cx, word [esp + 0x10]
mov edi, ebp
shl edi, 2
mov eax, dword [edi + eax]
cmp word [eax + 0x1220], cx
jb 0x40c704
lea eax, [esp + 0x41c]
push eax
push dword [0x418a5c]
call ebx
push dword [0x418a5c]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, dword [0x418728]
mov ecx, dword [edi + ecx]
mov esi, eax
mov eax, dword [0x418a5c]
add ecx, 8
push ecx
push eax
add esi, eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
cmp eax, 0x30
jle 0x40c6b4
push 0x414470
add esi, 0x2d
push esi
call ebx
push dword [0x418a5c]
call fcn.00402af8
mov eax, dword [0x418728]
add eax, edi
cmp dword [0x41869c], 0
pop ecx
mov ecx, dword [eax]
je 0x40c6da
add ecx, 0xa14
jmp 0x40c6e0
add ecx, 0x214
mov eax, dword [eax]
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.0040169a
add esp, 0x18
inc dword [0x418b10]
inc ebp
cmp ebp, dword [0x418788]
jl 0x40c617
mov eax, dword [0x418b34]
dec eax
mov dword [esp + 0x14], eax
js 0x40c95b
jmp 0x40c72d
mov eax, dword [esp + 0x14]
cmp dword [0x418738], 0
jne 0x40c95b
cmp dword [0x41868c], 0x3e8
je 0x40c760
mov ecx, dword [0x41872c]
mov eax, dword [ecx + eax*4]
cmp dword [eax + 0x21c], 0
je 0x40c945
mov eax, dword [esp + 0x14]
mov esi, eax
mov eax, dword [0x41872c]
shl esi, 2
mov eax, dword [esi + eax]
mov ax, word [eax + 0x220]
cmp ax, word [esp + 0x10]
jb 0x40c945
mov ebp, dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [esp + 0x3dc]
push eax
push dword [0x418a5c]
call ebp
push dword [0x418a5c]
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenA]
call ebx
mov ecx, dword [0x41872c]
mov ecx, dword [esi + ecx]
mov edi, eax
mov eax, dword [0x418a5c]
add ecx, 8
push ecx
push eax
add edi, eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push edi
call ebx
cmp eax, 0x30
jle 0x40c7d3
push 0x414470
add edi, 0x2d
push edi
call ebp
push dword [0x418a5c]
call fcn.00402af8
cmp dword [0x4186c0], 0
pop ecx
je 0x40c91c
xor ebx, ebx
inc ebx
mov eax, dword [0x41872c]
mov eax, dword [esi + eax]
lea ecx, [esp + 0x18]
push ecx
push 0x1f
xor edi, edi
push edi
lea ecx, [eax + 8]
mov eax, dword [eax + 0x218]
push ecx
push dword [eax*4 + 0x418030]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x40c902
cmp ebx, edi
je 0x40c83c
mov eax, dword [0x41872c]
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
push edi
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x170]
push eax
push edi
push dword [esp + 0x34]
xor ebx, ebx
mov dword [esp + 0x3c], pe_nt_image_headers32
call dword [sym.imp.ADVAPI32.dll_RegEnumValueA]
mov ebp, eax
cmp ebp, edi
je 0x40c8c3
push edi
push edi
push edi
push edi
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x170]
push eax
push edi
push dword [esp + 0x34]
mov dword [esp + 0x3c], pe_nt_image_headers32
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 0x40c945
mov eax, dword [0x41872c]
mov eax, dword [esi + eax]
lea ecx, [eax + 8]
mov eax, dword [eax + 0x218]
push ecx
push dword [eax*4 + 0x418030]
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
xor edi, edi
jmp 0x40c8cd
push dword [esp + 0x18]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp ebp, edi
je 0x40c945
mov eax, dword [0x41872c]
lea edi, [esi + eax]
mov eax, dword [esi + eax]
add eax, 8
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, dword [edi]
mov edi, ecx
lea eax, [eax + ecx + 7]
lea ecx, [edi + 8]
jmp 0x40c8f9
cmp byte [eax], 0x5c
je 0x40c8fd
dec eax
cmp eax, ecx
ja 0x40c8f3
mov byte [eax], 0
jmp 0x40c904
xor ebp, ebp
test ebp, ebp
je 0x40c945
mov eax, dword [0x41872c]
mov eax, dword [esi + eax]
cmp byte [eax + 8], 0
jne 0x40c7ef
jmp 0x40c945
mov eax, dword [0x41872c]
mov esi, dword [esi + eax]
cmp byte [esi + 0x10c], 0
jne 0x40c945
cmp dword [esi + 0x218], 0
jne 0x40c945
add esi, 8
push esi
push 0x80000000
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
inc dword [0x418b10]
dec dword [esp + 0x14]
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcpyA]
jns 0x40c729
mov edi, dword [0x418a54]
mov ebp, dword [sym.imp.KERNEL32.dll_lstrcatA]
dec edi
xor ecx, ecx
cmp edi, ecx
jl 0x40ca2d
cmp dword [0x418738], ecx
jne 0x40cbff
cmp dword [0x41868c], 0x3e8
je 0x40c99e
mov eax, dword [0x4186cc]
mov eax, dword [eax + edi*4]
cmp dword [eax + 0x104], ecx
je 0x40ca20
mov eax, dword [0x4186cc]
mov eax, dword [eax + edi*4]
mov dx, word [esp + 0x10]
cmp word [eax + 0x108], dx
jb 0x40ca20
lea eax, [esp + 0x51c]
push eax
push dword [0x418a5c]
call ebx
push dword [0x418a5c]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, dword [0x4186cc]
push dword [ecx + edi*4]
mov esi, eax
mov eax, dword [0x418a5c]
push eax
add esi, eax
call ebp
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
cmp eax, 0x30
jle 0x40c9fc
push 0x414470
add esi, 0x2d
push esi
call ebx
push dword [0x418a5c]
call fcn.00402af8
mov eax, dword [0x4186cc]
mov eax, dword [eax + edi*4]
push dword [eax + 0x100]
push eax
call fcn.00401b27
add esp, 0xc
xor ecx, ecx
inc dword [0x418b10]
dec edi
jns 0x40c972
cmp dword [0x418738], ecx
jne 0x40cbff
xor edi, edi
inc edi
xor esi, esi
cmp dword [0x418670], ecx
jle 0x40cb11
cmp dword [0x418738], ecx
jne 0x40cae9
cmp dword [0x41868c], 0x3e8
je 0x40ca72
mov eax, dword [0x418b18]
mov eax, dword [eax + esi*4]
cmp dword [eax + 0x300], ecx
je 0x40cad6
mov eax, dword [0x418b18]
mov eax, dword [eax + esi*4]
mov dx, word [esp + 0x10]
cmp word [eax + 0x304], dx
je 0x40ca90
cmp dword [0x41869c], ecx
jne 0x40cad6
cmp edi, ecx
je 0x40ca9b
call fcn.00402bfe
xor edi, edi
lea eax, [esp + 0x45c]
push eax
push dword [0x418a5c]
call ebx
mov eax, dword [0x418b18]
mov eax, dword [eax + esi*4]
add eax, 0x100
push eax
push dword [0x418a5c]
call ebp
push dword [0x418a5c]
call fcn.00402af8
push esi
call fcn.00402dbe
pop ecx
pop ecx
xor ecx, ecx
inc dword [0x418b10]
inc esi
cmp esi, dword [0x418670]
jl 0x40ca4a
cmp edi, ecx
jne 0x40cb11
mov eax, dword [0x418b28]
cmp eax, ecx
je 0x40cafc
push eax
call sub.USER32.dll_DdeDisconnect
push 0
call fcn.00402af8
pop ecx
push dword [0x418ae8]
call sub.USER32.dll_DdeUninitialize
xor ecx, ecx
cmp dword [0x418a40], ecx
je 0x40cbff
cmp dword [0x41868c], 0x3e8
jne 0x40cb31
cmp dword [0x41869c], ecx
je 0x40cb49
cmp dword [0x41869c], ecx
je 0x40cbff
cmp dword [0x418b4c], ecx
jne 0x40cbff
cmp dword [0x4186c0], ecx
je 0x40cbff
lea eax, [esp + 0x1c]
push eax
push 0x1f
xor esi, esi
push esi
push str.SoftwareWise_SolutionsWamUser
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x40cbfd
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x5e0]
push eax
lea eax, [esp + 0x1c]
push eax
push esi
push str.Path
push dword [esp + 0x30]
mov dword [esp + 0x30], pe_nt_image_headers32
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x40cbf3
lea eax, [esp + 0x5dc]
push esi
push eax
call fcn.0040306b
pop ecx
pop ecx
push str.__U__
lea eax, [esp + 0x5e0]
push eax
call ebp
push dword [0x418a40]
lea eax, [esp + 0x5e0]
push eax
call ebp
push 0x4152d8
lea eax, [esp + 0x5e0]
push eax
call ebp
push 5
lea eax, [esp + 0x5e0]
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 [0x41868c], 0x3e8
jne 0x40cc13
cmp dword [0x41869c], ecx
je 0x40cc2b
cmp dword [0x41869c], ecx
je 0x40ce17
cmp dword [0x418b4c], ecx
jne 0x40ce17
push dword [esp + 0xde0]
lea eax, [esp + 0x5c]
push eax
call ebx
lea eax, [esp + 0x58]
push 0x7e
push eax
call fcn.004025e3
test eax, eax
pop ecx
pop ecx
je 0x40cdcc
cmp dword [0x4186c0], 0
je 0x40cdcc
lea eax, [esp + 0x58]
push 0x5c
push eax
call fcn.004025e3
test eax, eax
pop ecx
pop ecx
jne 0x40ccbf
lea eax, [esp + 0x58]
push eax
lea eax, [esp + 0x160]
push eax
call ebx
lea eax, [esp + 0x58]
push pe_nt_image_headers32
push eax
call fcn.0040eab2
pop ecx
pop ecx
lea eax, [esp + 0x58]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
lea ecx, [esp + 0x58]
dec ecx
cmp byte [eax + ecx], 0x5c
je 0x40ccb0
push 0x414474
lea eax, [esp + 0x5c]
push eax
call ebp
lea eax, [esp + 0x15c]
push eax
lea eax, [esp + 0x5c]
push eax
call ebp
cmp dword [0x41806c], 1
movsx eax, byte [esp + 0x58]
lea esi, [esp + 0x58]
jle 0x40cce0
push 0x103
push eax
call fcn.0040e5a2
pop ecx
pop ecx
jmp 0x40ccef
mov ecx, dword [str.________________________________H]
movzx eax, word [ecx + eax*2]
and eax, 0x103
test eax, eax
je 0x40cd0a
cmp byte [esp + 0x59], 0x3a
jne 0x40cd0a
movsx eax, byte [esp + 0x58]
push eax
call fcn.0040e620
pop ecx
mov byte [esp + 0x58], al
cmp byte [esp + 0x58], 0x5c
jne 0x40cd33
cmp byte [esp + 0x59], 0x5c
jne 0x40cd3c
mov al, byte [esp + 0x5a]
lea esi, [esp + 0x5a]
jmp 0x40cd29
cmp al, 0x5c
je 0x40cd32
inc esi
mov al, byte [esi]
test al, al
jne 0x40cd22
cmp byte [esi], 0x5c
jne 0x40cd33
inc esi
cmp byte [esi], 0
je 0x40cdc1
mov al, byte [esi]
cmp al, 0x5c
je 0x40cdc6
inc esi
mov al, byte [esi]
test al, al
jne 0x40cd3e
jmp 0x40cdc1
cmp byte [esi], 0
mov edi, esi
je 0x40cd61
cmp byte [edi], 0x5c
je 0x40cd61
inc edi
cmp byte [edi], 0
jne 0x40cd56
push edi
lea eax, [esp + 0x160]
push eax
call ebx
lea eax, [esp + 0x9dc]
push eax
lea eax, [esp + 0x5c]
push 0x17
push eax
mov byte [edi], 0
call fcn.00401cc6
add esp, 0xc
test eax, eax
jne 0x40cda3
lea eax, [esp + 0x9dc]
push eax
push esi
call ebx
lea eax, [esp + 0x9dc]
push eax
call fcn.00401d45
pop ecx
lea eax, [esp + 0x58]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
lea esi, [esp + eax + 0x58]
lea eax, [esp + 0x15c]
push eax
lea eax, [esp + 0x5c]
push eax
call ebp
cmp byte [esi], 0x5c
jne 0x40cdc7
inc esi
cmp byte [esi], 0
jne 0x40cd4f
lea eax, [esp + 0x58]
push eax
lea eax, [esp + 0x5e0]
push str.SoftwareWise_SolutionsWise_Installation_SystemRepair_s
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
cmp byte [esp + 0x614], 0
lea eax, [esp + 0x614]
je 0x40ce06
cmp byte [eax], 0x5c
jne 0x40ce00
mov byte [eax], 0x2f
inc eax
cmp byte [eax], 0
jne 0x40cdf8
lea eax, [esp + 0x5dc]
push 2
push eax
call fcn.00401b27
pop ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xdcc
ret