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

Disassembly:
sub esp, 0xdc8
cmp dword [0x4136c4], 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 0x407ccf
cmp dword [0x413770], 0
je 0x407ce5
and dword [0x413770], 0
cmp dword [0x413770], 0
je 0x407ce5
mov ax, word [0x413b94]
mov word [esp + 0x10], ax
jmp 0x407ce9
mov dword [esp + 0x10], ebx
push 0xe
lea esi, [esp + 0x24]
lea edi, [esp + 0x25c]
pop ebp
push 0x40
push edi
push dword [esi]
push dword [0x413a90]
call fcn.0040ab9d
add esp, 0x10
add edi, 0x40
add esi, 4
dec ebp
jne 0x407cf7
mov eax, dword [0x413a80]
mov ecx, dword [0x4136c8]
add eax, ecx
and dword [0x4136f8], 0
add eax, dword [0x413afc]
add eax, dword [0x413b04]
add eax, dword [0x413b9c]
add eax, dword [0x413720]
add eax, dword [0x413774]
add eax, dword [0x413b88]
add eax, dword [0x413768]
add eax, dword [0x413ab4]
mov dword [0x413af8], eax
jne 0x407d64
mov dword [0x413af8], ebx
cmp dword [0x413a8c], 0
mov ebp, dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcatA]
jne 0x40800e
xor edi, edi
push edi
push 0x3ea
call fcn.0040317d
push edi
push 0x3ec
call fcn.0040317d
mov esi, 0x3ed
push 1
push esi
call fcn.0040317d
push 1
push 0x3ef
call fcn.0040317d
lea eax, [esp + 0x5f8]
push 0x100
push eax
push 0x2d
push dword [0x413a90]
call fcn.0040ab9d
push dword [0x413aa8]
lea eax, [esp + 0x60c]
push eax
lea eax, [esp + 0xa10]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x3c
lea eax, [esp + 0x9d8]
push eax
push esi
push dword [0x413690]
call dword [sym.imp.USER32.dll_SetDlgItemTextA]
push edi
mov edi, dword [sym.imp.USER32.dll_GetDlgItem]
push 1
push dword [0x413690]
call edi
mov esi, dword [sym.imp.USER32.dll_EnableWindow]
push eax
call esi
push 0
push 5
push dword [0x413690]
call edi
push eax
call esi
xor edi, edi
mov esi, 0x413b20
lea eax, [edi + 0x6b]
movzx eax, ax
push eax
push dword [0x413a90]
call dword [sym.imp.USER32.dll_LoadIconA]
mov dword [esi], eax
add esi, 4
inc edi
cmp esi, 0x413b74
jl 0x407e2c
xor edi, edi
cmp dword [0x413780], edi
je 0x407e71
push 5
push 0xef6
push dword [0x413690]
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
push edi
call fcn.00409026
pop ecx
mov dword [0x413a8c], 1
xor ecx, ecx
cmp dword [0x413aa0], edi
mov dword [esp + 0x14], ecx
jle 0x408010
cmp dword [0x413724], edi
jne 0x408010
cmp dword [0x4136c4], 0x3e8
je 0x407ec0
mov eax, dword [0x413748]
mov eax, dword [eax + ecx*4]
cmp dword [eax + 0x204], edi
je 0x407ffb
mov eax, dword [0x413748]
mov esi, ecx
mov di, word [esp + 0x10]
shl esi, 2
add eax, esi
mov edx, dword [eax]
cmp word [edx + 0x208], di
jb 0x407ff9
push 0x5c
push edx
call fcn.0040be4c
pop ecx
test eax, eax
pop ecx
je 0x407eff
mov eax, dword [0x413748]
push 0
push dword [esi + eax]
call fcn.0040a794
pop ecx
pop ecx
lea eax, [esp + 0x5d8]
push 0x4125e4
push eax
call ebp
push 0
call fcn.0040b30c
mov byte [esp + 0x5dc], al
pop ecx
lea eax, [esp + 0x558]
push eax
push dword [0x413754]
call ebp
mov eax, dword [0x413748]
mov eax, dword [esi + eax]
cmp byte [eax + 0x104], 0
lea ecx, [eax + 0x104]
je 0x407f47
push ecx
jmp 0x407f48
push eax
push dword [0x413754]
call ebx
push dword [0x413754]
call fcn.00409026
cmp dword [0x4136c4], 0x3e8
pop ecx
mov eax, str.Automatic
je 0x407f72
mov eax, str.Custom
push eax
lea eax, [esp + 0x5c]
push eax
call ebp
mov eax, dword [0x413748]
mov ebp, dword [esi + eax]
push ebp
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov edi, eax
add edi, ebp
cmp edi, ebp
jbe 0x407fd5
mov bl, byte [edi]
cmp bl, 0x20
je 0x407f9c
test bl, bl
jne 0x407fb6
and byte [edi], 0
mov eax, dword [0x413748]
push 0
push dword [esi + eax]
call fcn.0040a933
pop ecx
test eax, eax
pop ecx
je 0x407fc3
mov byte [edi], bl
mov eax, dword [0x413748]
dec edi
cmp edi, dword [esi + eax]
ja 0x407f91
jmp 0x407fd5
cmp bl, 0x20
jne 0x407fd5
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 [0x413748]
push dword [esi + eax]
call fcn.0040bd9b
mov ebp, dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcatA]
pop ecx
pop ecx
mov ecx, dword [esp + 0x14]
xor edi, edi
inc ecx
cmp ecx, dword [0x413aa0]
mov dword [esp + 0x14], ecx
jl 0x407e94
jmp 0x408010
xor edi, edi
xor esi, esi
cmp dword [0x413a80], edi
jle 0x4080b4
cmp dword [0x413724], edi
jne 0x4080b4
cmp dword [0x4136c4], 0x3e8
je 0x408046
mov eax, dword [0x413b98]
mov eax, dword [eax + esi*4]
cmp dword [eax + 0x104], edi
je 0x4080a1
mov eax, dword [0x413b98]
mov eax, dword [eax + esi*4]
mov ax, word [eax + 0x108]
cmp ax, word [esp + 0x10]
jb 0x4080a1
lea eax, [esp + 0x598]
push eax
push dword [0x413754]
call ebp
mov eax, dword [0x413b98]
push dword [eax + esi*4]
push dword [0x413754]
call ebx
push dword [0x413754]
call fcn.00409026
mov eax, dword [0x413b98]
push dword [eax + esi*4]
call fcn.0040ac69
push 0xdac
call fcn.0040912c
add esp, 0xc
inc dword [0x4136f8]
inc esi
cmp esi, dword [0x413a80]
jl 0x40801e
cmp dword [0x41379c], edi
je 0x408107
cmp dword [0x4136c4], 0x3e8
je 0x4080d0
cmp dword [0x4136d0], edi
je 0x408107
lea eax, [esp + 0x4d8]
push eax
push dword [0x413754]
call ebp
push dword [0x41379c]
push dword [0x413754]
call ebx
push dword [0x413754]
call fcn.00409026
pop ecx
call fcn.0040a07a
test eax, eax
jne 0x40901b
xor edi, edi
cmp dword [0x413774], edi
jle 0x4081b7
cmp dword [0x413724], 0
jne 0x4081b7
cmp dword [0x4136c4], 0x3e8
je 0x40813f
mov eax, dword [0x4136a8]
mov eax, dword [eax + edi*4]
cmp dword [eax + 0x104], 0
je 0x4081a4
mov eax, dword [0x4136a8]
mov cx, word [esp + 0x10]
mov esi, edi
shl esi, 2
mov eax, dword [esi + eax]
cmp word [eax + 0x108], cx
jb 0x4081a4
lea eax, [esp + 0x358]
push eax
push dword [0x413754]
call ebp
mov eax, dword [0x4136a8]
push dword [esi + eax]
push dword [0x413754]
call ebx
push dword [0x413754]
call fcn.00409026
mov eax, dword [0x4136a8]
push 0
push dword [esi + eax]
call fcn.0040a6db
mov eax, dword [0x4136a8]
push dword [esi + eax]
call fcn.0040a440
add esp, 0x10
inc dword [0x4136f8]
inc edi
cmp edi, dword [0x413774]
jl 0x408115
xor edi, edi
cmp dword [0x413720], edi
jle 0x40829f
cmp dword [0x413724], 0
jne 0x40829f
cmp dword [0x4136c4], 0x3e8
je 0x4081f3
mov eax, dword [0x4137a8]
mov eax, dword [eax + edi*4]
cmp dword [eax + 0x70c], 0
je 0x40828c
mov eax, dword [0x4137a8]
mov cx, word [esp + 0x10]
mov esi, edi
shl esi, 2
mov eax, dword [esi + eax]
cmp word [eax + 0x710], cx
jb 0x40828c
add eax, 8
push 0
push eax
call fcn.0040a933
pop ecx
test eax, eax
pop ecx
jne 0x40828c
lea eax, [esp + 0x398]
push eax
push dword [0x413754]
call ebp
mov eax, dword [0x4137a8]
mov eax, dword [esi + eax]
add eax, 8
push eax
push dword [0x413754]
call ebx
push dword [0x413754]
call fcn.00409026
mov eax, dword [0x4137a8]
cmp dword [0x413770], 0
pop ecx
mov eax, dword [esi + eax]
lea ecx, [eax + 0x50c]
jne 0x40826c
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]
inc dword [0x4136f8]
inc edi
cmp edi, dword [0x413720]
jl 0x4081c5
xor esi, esi
cmp dword [0x413ab0], esi
jle 0x4082fe
cmp dword [0x413770], 0
je 0x4082f5
mov eax, dword [0x4136a0]
mov cx, word [esp + 0x10]
mov eax, dword [eax + esi*4]
cmp word [eax + 0x208], cx
jb 0x4082f5
add eax, 0x104
push 0
push eax
call fcn.0040a933
pop ecx
test eax, eax
pop ecx
jne 0x4082f5
mov eax, dword [0x4136a0]
push 1
mov eax, dword [eax + esi*4]
lea ecx, [eax + 0x104]
push ecx
push eax
call fcn.00409cc9
add esp, 0xc
inc esi
cmp esi, dword [0x413ab0]
jl 0x4082a9
mov eax, dword [0x413ab4]
lea esi, [eax - 1]
test esi, esi
jl 0x408431
cmp dword [0x4136c4], 0x3e8
jne 0x40833e
mov eax, dword [0x4136e8]
mov eax, dword [eax + esi*4]
cmp dword [eax + 0x268], 0
jne 0x408353
cmp dword [0x413770], 0
je 0x40833e
lea ecx, [eax + 0x10c]
test ecx, ecx
jne 0x408353
mov eax, dword [0x4136e8]
mov eax, dword [eax + esi*4]
cmp dword [eax + 0x264], 0
je 0x40842a
mov cx, word [esp + 0x10]
cmp word [eax + 0x270], cx
jb 0x40842a
cmp word [eax + 0x276], cx
jb 0x408384
push dword [eax + 0x278]
add eax, 8
push 1
push eax
call fcn.00409ac4
add esp, 0xc
jmp 0x408386
xor eax, eax
cmp eax, 1
jne 0x4083c1
cmp dword [0x413770], 0
je 0x4083b3
mov eax, dword [0x4136e8]
mov cx, word [esp + 0x10]
mov eax, dword [eax + esi*4]
cmp word [eax + 0x272], cx
jne 0x4083b3
cmp byte [eax + 0x10c], 0
jne 0x40842a
mov eax, dword [0x4136e8]
mov eax, dword [eax + esi*4]
and byte [eax + 8], 0
jmp 0x40842a
mov eax, dword [0x4136e8]
mov eax, dword [eax + esi*4]
mov cx, word [eax + 0x272]
cmp cx, word [eax + 0x270]
jne 0x4083e2
cmp byte [eax + 0x10c], 0
je 0x4083eb
cmp dword [0x413770], 0
jne 0x40842a
mov di, word [esp + 0x10]
cmp word [eax + 0x26c], di
jb 0x40840f
add eax, 8
push 0
push eax
lea eax, [esp + 0x4a0]
push eax
call fcn.00409eca
add esp, 0xc
mov eax, dword [0x4136e8]
mov eax, dword [eax + esi*4]
cmp word [eax + 0x26e], di
jb 0x40842a
add eax, 8
push eax
call fcn.0040acbe
pop ecx
dec esi
jns 0x40830e
mov eax, dword [0x413768]
lea edi, [eax - 1]
test edi, edi
jl 0x40855b
mov eax, dword [0x413b0c]
mov dx, word [esp + 0x10]
mov esi, edi
shl esi, 2
mov eax, dword [esi + eax]
cmp word [eax + 0x268], dx
jb 0x408554
mov ecx, dword [eax + 0x25c]
test ecx, ecx
jne 0x408472
cmp dword [0x4136ec], ecx
je 0x4084de
cmp word [eax + 0x26e], dx
jb 0x40848d
push dword [eax + 0x270]
push ecx
push eax
call fcn.00409ac4
add esp, 0xc
jmp 0x40848f
xor eax, eax
push 1
pop ecx
cmp eax, ecx
jne 0x4084cb
cmp dword [0x413770], 0
je 0x4084be
mov eax, dword [0x413b0c]
mov eax, dword [esi + eax]
mov cx, word [eax + 0x26a]
cmp cx, word [esp + 0x10]
jne 0x4084be
cmp byte [eax + 0x104], 0
jne 0x4084de
mov eax, dword [0x413b0c]
mov eax, dword [esi + eax]
and byte [eax], 0
jmp 0x4084de
cmp eax, 2
jne 0x4084de
mov eax, dword [0x413b0c]
mov eax, dword [esi + eax]
mov dword [eax + 0x25c], ecx
mov eax, dword [0x413b0c]
mov eax, dword [esi + eax]
cmp dword [eax + 0x25c], 0
je 0x408554
cmp byte [eax], 0
je 0x408554
mov cx, word [eax + 0x26a]
cmp cx, word [eax + 0x268]
jne 0x40850d
cmp byte [eax + 0x104], 0
je 0x408516
cmp dword [0x413770], 0
jne 0x408554
mov cx, word [esp + 0x10]
cmp word [eax + 0x264], cx
jb 0x408537
push 0
push eax
lea eax, [esp + 0x4a0]
push eax
call fcn.00409eca
add esp, 0xc
mov eax, dword [0x413b0c]
mov esi, dword [esi + eax]
mov ax, word [esp + 0x10]
cmp word [esi + 0x266], ax
jb 0x408554
push esi
call fcn.0040acbe
pop ecx
dec edi
jns 0x408441
xor esi, esi
cmp dword [0x413ab4], esi
jle 0x40866a
cmp dword [0x413724], 0
jne 0x40866a
mov eax, dword [0x4136e8]
mov eax, dword [eax + esi*4]
cmp byte [eax + 8], 0
lea ecx, [eax + 8]
je 0x408657
cmp dword [0x4136c4], 0x3e8
jne 0x4085c0
cmp dword [eax + 0x268], 0
jne 0x4085cd
cmp dword [0x413770], 0
je 0x4085c0
cmp byte [eax + 0x10c], 0
je 0x4085c0
mov dx, word [eax + 0x272]
cmp dx, word [esp + 0x10]
je 0x4085cd
cmp dword [eax + 0x264], 0
je 0x408657
mov dx, word [esp + 0x10]
cmp word [eax + 0x270], dx
jb 0x408657
cmp word [eax + 0x272], dx
jne 0x4085f2
cmp dword [0x413770], 0
je 0x4085f2
push 1
pop edx
jmp 0x4085f4
xor edx, edx
add eax, 0x10c
push edx
push eax
push ecx
call fcn.00409cc9
add esp, 0xc
test eax, eax
je 0x408657
lea eax, [esp + 0x258]
push eax
push dword [0x413754]
call ebp
mov eax, dword [0x4136e8]
mov eax, dword [eax + esi*4]
add eax, 8
push eax
push dword [0x413754]
call ebx
push dword [0x413754]
push 0x3ef
push dword [0x413690]
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call fcn.004098d8
push dword [0x413754]
call fcn.00409026
add esp, 0xc
inc dword [0x4136f8]
inc esi
cmp esi, dword [0x413ab4]
jl 0x408569
xor esi, esi
cmp dword [0x413768], esi
jle 0x408765
cmp dword [0x413724], 0
jne 0x408765
mov eax, dword [0x413b0c]
mov eax, dword [eax + esi*4]
cmp byte [eax], 0
je 0x408752
cmp dword [eax + 0x25c], 0
jne 0x4086cb
cmp dword [0x413770], 0
je 0x408752
cmp byte [eax + 0x104], 0
je 0x408752
mov cx, word [esp + 0x10]
cmp word [eax + 0x26a], cx
jne 0x408752
mov cx, word [esp + 0x10]
cmp word [eax + 0x268], cx
jb 0x408752
cmp word [eax + 0x26a], cx
jne 0x4086f0
cmp dword [0x413770], 0
je 0x4086f0
push 1
pop ecx
jmp 0x4086f2
xor ecx, ecx
push ecx
lea ecx, [eax + 0x104]
push ecx
push eax
call fcn.00409cc9
add esp, 0xc
test eax, eax
je 0x408752
lea eax, [esp + 0x298]
push eax
push dword [0x413754]
call ebp
mov eax, dword [0x413b0c]
push dword [eax + esi*4]
push dword [0x413754]
call ebx
push dword [0x413754]
push 0x3ef
push dword [0x413690]
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call fcn.004098d8
push dword [0x413754]
call fcn.00409026
add esp, 0xc
inc dword [0x4136f8]
inc esi
cmp esi, dword [0x413768]
jl 0x408678
xor esi, esi
cmp dword [0x413770], esi
je 0x408893
cmp dword [0x413ab4], esi
jle 0x408816
cmp dword [0x413724], 0
jne 0x408816
mov eax, dword [0x4136e8]
mov eax, dword [eax + esi*4]
cmp byte [eax + 8], 0
lea ecx, [eax + 8]
je 0x408809
cmp dword [0x4136c4], 0x3e8
jne 0x4087c4
cmp dword [eax + 0x268], 0
jne 0x4087cd
cmp dword [0x413770], 0
je 0x4087c4
cmp byte [eax + 0x10c], 0
jne 0x4087cd
cmp dword [eax + 0x264], 0
je 0x408809
mov dx, word [esp + 0x10]
cmp word [eax + 0x270], dx
jb 0x408809
cmp byte [eax + 0x10c], 0
je 0x408809
cmp word [eax + 0x272], dx
jne 0x408809
cmp word [eax + 0x26c], dx
jb 0x408809
push 1
lea eax, [esp + 0x49c]
push ecx
push eax
call fcn.00409eca
add esp, 0xc
inc esi
cmp esi, dword [0x413ab4]
jl 0x40877f
xor esi, esi
cmp dword [0x413768], esi
jle 0x408893
xor ecx, ecx
cmp dword [0x413724], ecx
jne 0x408893
mov eax, dword [0x413b0c]
mov eax, dword [eax + esi*4]
cmp byte [eax], cl
je 0x40888a
cmp dword [eax + 0x25c], ecx
jne 0x40884e
cmp dword [0x413770], ecx
je 0x40888a
cmp byte [eax + 0x104], cl
je 0x40888a
mov cx, word [esp + 0x10]
cmp word [eax + 0x268], cx
jb 0x40888a
cmp byte [eax + 0x104], 0
je 0x40888a
cmp word [eax + 0x26a], cx
jne 0x40888a
cmp word [eax + 0x264], cx
jb 0x40888a
push 1
push eax
lea eax, [esp + 0x4a0]
push eax
call fcn.00409eca
add esp, 0xc
inc esi
cmp esi, dword [0x413768]
jl 0x408820
cmp dword [0x4136c4], 0x3e8
mov ebx, dword [esp + 0xddc]
jne 0x4088bf
cmp dword [0x413724], 0
jne 0x4088bf
cmp dword [0x413770], 0
jne 0x4088bf
push ebx
call fcn.0040a440
pop ecx
xor ebp, ebp
cmp dword [0x413b88], ebp
jle 0x4089f9
cmp dword [0x413724], 0
jne 0x4089f9
mov edx, dword [0x4136c4]
cmp edx, 0x3e8
je 0x4088fd
mov eax, dword [0x4136fc]
mov eax, dword [eax + ebp*4]
cmp dword [eax + 0x104], 0
je 0x4089e6
mov eax, dword [0x4136fc]
mov cx, word [esp + 0x10]
mov esi, ebp
shl esi, 2
mov eax, dword [esi + eax]
cmp word [eax + 0x10a], cx
jb 0x4089e6
cmp edx, 0x3e9
je 0x408934
cmp word [eax + 0x108], cx
lea eax, [esp + 0x318]
jb 0x40893b
lea eax, [esp + 0x2d8]
push eax
push dword [0x413754]
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov eax, dword [0x4136fc]
mov edi, dword [esi + eax]
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
cmp byte [eax + edi - 1], 0x5c
jne 0x408973
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, dword [0x4136fc]
mov ecx, dword [esi + ecx]
and byte [eax + ecx - 1], 0
mov eax, dword [0x4136fc]
push dword [esi + eax]
push dword [0x413754]
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push dword [0x413754]
push 0x3ef
push dword [0x413690]
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call fcn.004098d8
push dword [0x413754]
call fcn.00409026
mov eax, dword [0x4136fc]
add esp, 0xc
cmp dword [0x4136c4], 0x3e9
je 0x4089d8
mov ecx, dword [esi + eax]
mov dx, word [esp + 0x10]
cmp word [ecx + 0x108], dx
jae 0x4089d8
xor ecx, ecx
jmp 0x4089db
push 1
pop ecx
push ecx
push dword [esi + eax]
call fcn.004091af
pop ecx
pop ecx
inc dword [0x4136f8]
inc ebp
cmp ebp, dword [0x413b88]
jl 0x4088cd
xor ebp, ebp
cmp dword [0x413770], ebp
je 0x408a3a
cmp dword [0x413794], ebp
jne 0x408a14
push ebx
call fcn.0040a440
pop ecx
jmp 0x408a3a
push 1
push ebx
call fcn.0040c5b8
mov esi, eax
pop ecx
cmp esi, 0xffffffff
pop ecx
je 0x408a3a
push dword [0x413794]
push esi
call fcn.0040c472
push esi
call fcn.0040c3bf
add esp, 0xc
cmp dword [0x413afc], ebp
jle 0x408b47
cmp dword [0x413724], 0
jne 0x408b47
cmp dword [0x4136c4], 0x3e8
je 0x408a74
mov eax, dword [0x413a84]
mov eax, dword [eax + ebp*4]
cmp dword [eax + 0x121c], 0
je 0x408b34
mov eax, dword [0x413a84]
mov cx, word [esp + 0x10]
mov edi, ebp
shl edi, 2
mov eax, dword [edi + eax]
cmp word [eax + 0x1220], cx
jb 0x408b34
lea eax, [esp + 0x418]
push eax
push dword [0x413754]
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push dword [0x413754]
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenA]
call ebx
mov ecx, dword [0x413a84]
mov esi, eax
mov eax, dword [0x413754]
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 ebx
cmp eax, 0x30
jle 0x408ae9
add esi, 0x2d
push 0x4125cc
push esi
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push dword [0x413754]
call fcn.00409026
mov eax, dword [0x413a84]
cmp dword [0x413770], 0
pop ecx
mov eax, dword [edi + eax]
lea ecx, [eax + 0xa14]
jne 0x408b12
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.00407a97
add esp, 0x18
inc dword [0x4136f8]
inc ebp
cmp ebp, dword [0x413afc]
jl 0x408a46
mov eax, dword [0x413b9c]
dec eax
test eax, eax
mov dword [esp + 0x14], eax
jl 0x408d7c
jmp 0x408b5f
mov eax, dword [esp + 0x14]
cmp dword [0x413724], 0
jne 0x408d7c
cmp dword [0x4136c4], 0x3e8
je 0x408b92
mov ecx, dword [0x4136cc]
mov eax, dword [ecx + eax*4]
cmp dword [eax + 0x21c], 0
je 0x408d6c
mov eax, dword [esp + 0x14]
mov esi, eax
mov eax, dword [0x4136cc]
shl esi, 2
mov eax, dword [esi + eax]
mov ax, word [eax + 0x220]
cmp ax, word [esp + 0x10]
jb 0x408d6c
mov ebp, dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [esp + 0x3d8]
push eax
push dword [0x413754]
call ebp
push dword [0x413754]
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenA]
call ebx
mov ecx, dword [0x4136cc]
mov edi, eax
mov eax, dword [0x413754]
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 0x408c05
add edi, 0x2d
push 0x4125cc
push edi
call ebp
push dword [0x413754]
call fcn.00409026
cmp dword [0x4136b0], 0
pop ecx
je 0x408d43
push 1
pop ebx
mov eax, dword [0x4136cc]
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 + 0x412030]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x408d29
cmp ebx, edi
je 0x408c6e
mov eax, dword [0x4136cc]
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 0x408cef
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 0x408d6c
mov eax, dword [0x4136cc]
mov eax, dword [esi + eax]
lea ecx, [eax + 8]
mov eax, dword [eax + 0x218]
push ecx
push dword [eax*4 + 0x412030]
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
xor edi, edi
jmp 0x408cf9
push dword [esp + 0x18]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp ebp, edi
je 0x408d6c
mov eax, dword [0x4136cc]
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 0x408d24
cmp byte [eax], 0x5c
je 0x408d24
dec eax
jmp 0x408d18
and byte [eax], 0
jmp 0x408d2b
xor ebp, ebp
test ebp, ebp
je 0x408d6c
mov eax, dword [0x4136cc]
mov eax, dword [esi + eax]
cmp byte [eax + 8], 0
jne 0x408c21
jmp 0x408d6c
mov eax, dword [0x4136cc]
mov esi, dword [esi + eax]
cmp byte [esi + 0x10c], 0
jne 0x408d6c
cmp dword [esi + 0x218], 0
jne 0x408d6c
add esi, 8
push esi
push 0x80000000
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
inc dword [0x4136f8]
dec dword [esp + 0x14]
jns 0x408b5b
mov eax, dword [0x413b04]
xor ecx, ecx
lea edi, [eax - 1]
cmp edi, ecx
jl 0x408e57
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ebp, dword [sym.imp.KERNEL32.dll_lstrcatA]
cmp dword [0x413724], ecx
jne 0x40901b
cmp dword [0x4136c4], 0x3e8
je 0x408dc6
mov eax, dword [0x4137c0]
mov eax, dword [eax + edi*4]
cmp dword [eax + 0x104], ecx
je 0x408e48
mov eax, dword [0x4137c0]
mov dx, word [esp + 0x10]
mov eax, dword [eax + edi*4]
cmp word [eax + 0x108], dx
jb 0x408e48
lea eax, [esp + 0x518]
push eax
push dword [0x413754]
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push dword [0x413754]
call ebx
mov ecx, dword [0x4137c0]
mov esi, eax
mov eax, dword [0x413754]
push dword [ecx + edi*4]
add esi, eax
push eax
call ebp
push esi
call ebx
cmp eax, 0x30
jle 0x408e24
add esi, 0x2d
push 0x4125cc
push esi
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push dword [0x413754]
call fcn.00409026
mov eax, dword [0x4137c0]
mov eax, dword [eax + edi*4]
push dword [eax + 0x100]
push eax
call fcn.0040a281
add esp, 0xc
xor ecx, ecx
inc dword [0x4136f8]
dec edi
jns 0x408d9a
jmp 0x408e5d
mov ebp, dword [sym.imp.KERNEL32.dll_lstrcatA]
cmp dword [0x413724], ecx
jne 0x40901b
push 1
xor esi, esi
cmp dword [0x4136c8], ecx
pop edi
jle 0x408f45
cmp dword [0x413724], ecx
jne 0x408f1d
cmp dword [0x4136c4], 0x3e8
je 0x408ea2
mov eax, dword [0x413734]
mov eax, dword [eax + esi*4]
cmp dword [eax + 0x300], ecx
je 0x408f0a
mov eax, dword [0x413734]
mov dx, word [esp + 0x10]
mov eax, dword [eax + esi*4]
cmp word [eax + 0x304], dx
je 0x408ec0
cmp dword [0x413770], ecx
jne 0x408f0a
cmp edi, ecx
je 0x408ecb
call fcn.00409434
xor edi, edi
lea eax, [esp + 0x458]
push eax
push dword [0x413754]
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov eax, dword [0x413734]
mov eax, dword [eax + esi*4]
add eax, 0x100
push eax
push dword [0x413754]
call ebp
push dword [0x413754]
call fcn.00409026
push esi
call fcn.00409601
pop ecx
pop ecx
xor ecx, ecx
inc dword [0x4136f8]
inc esi
cmp esi, dword [0x4136c8]
jl 0x408e7a
cmp edi, ecx
jne 0x408f45
mov eax, dword [0x413728]
cmp eax, ecx
je 0x408f30
push eax
call sub.USER32.dll_DdeDisconnect
push 0
call fcn.00409026
pop ecx
push dword [0x4136bc]
call sub.USER32.dll_DdeUninitialize
xor ecx, ecx
cmp dword [0x413784], ecx
je 0x40901b
cmp dword [0x4136c4], 0x3e8
jne 0x408f65
cmp dword [0x413770], ecx
je 0x408f7d
cmp dword [0x413770], ecx
je 0x40901b
cmp dword [0x413794], ecx
jne 0x40901b
cmp dword [0x4136b0], ecx
je 0x40901b
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 0x40901b
lea eax, [esp + 0x18]
mov dword [esp + 0x18], 0x100
push eax
lea eax, [esp + 0x5c]
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 0x409011
lea eax, [esp + 0x58]
push esi
push eax
call fcn.0040a794
pop ecx
lea eax, [esp + 0x5c]
pop ecx
push str.__U__
push eax
call ebp
push dword [0x413784]
lea eax, [esp + 0x5c]
push eax
call ebp
lea eax, [esp + 0x58]
push 0x412598
push eax
call ebp
lea eax, [esp + 0x58]
push 5
push eax
call dword [sym.imp.KERNEL32.dll_WinExec]
push dword [esp + 0x1c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xdc8
ret