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

Disassembly:
sub esp, 0xbec
cmp dword [0x4137fc], 0x3e9
push ebx
push ebp
push esi
push edi
mov dword [esp + 0x28], 0x1d
mov dword [esp + 0x2c], 0x1e
mov dword [esp + 0x30], 0x1f
mov dword [esp + 0x34], 0x20
mov dword [esp + 0x38], 0x21
mov dword [esp + 0x3c], 0x22
mov dword [esp + 0x40], 0x23
mov dword [esp + 0x44], 0x24
mov dword [esp + 0x48], 0x25
mov dword [esp + 0x4c], 0x28
mov dword [esp + 0x50], 0x2c
mov dword [esp + 0x54], 0x38
mov dword [esp + 0x58], 0x39
mov dword [esp + 0x5c], 0x3a
jne 0x405c84
cmp dword [0x41387c], 0
je 0x405c84
and dword [0x41387c], 0
cmp dword [0x41387c], 0
push 1
pop ebx
je 0x405c9d
mov ax, word [0x413c90]
mov word [esp + 0x10], ax
jmp 0x405ca1
mov dword [esp + 0x10], ebx
push 0xe
lea esi, [esp + 0x2c]
lea edi, [esp + 0x80]
pop ebp
push 0x40
push edi
push dword [esi]
push dword [0x413b90]
call fcn.00408994
add esp, 0x10
add edi, 0x40
add esi, 4
dec ebp
jne 0x405caf
mov eax, dword [0x413b80]
mov ecx, dword [0x413800]
add eax, ecx
and dword [0x413824], 0
add eax, dword [0x413bfc]
add eax, dword [0x413c04]
add eax, dword [0x413c98]
add eax, dword [0x41383c]
add eax, dword [0x413880]
add eax, dword [0x413c84]
add eax, dword [0x413874]
add eax, dword [0x413bac]
mov dword [0x413bf8], eax
jne 0x405d1c
mov dword [0x413bf8], ebx
cmp dword [0x413b8c], 0
mov ebp, dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcatA]
jne 0x405f6f
push 0x44
xor edi, edi
pop esi
lea eax, [esp + 0x28]
push esi
push edi
push eax
call fcn.00409b50
add esp, 0xc
mov dword [esp + 0x28], esi
push edi
push 0x3ea
call fcn.0040298e
pop ecx
pop ecx
push edi
push 0x3ec
call fcn.0040298e
pop ecx
mov esi, 0x3ed
pop ecx
push 1
push esi
call fcn.0040298e
pop ecx
pop ecx
push 1
push 0x3ef
call fcn.0040298e
pop ecx
lea eax, [esp + 0x400]
pop ecx
push 0x100
push eax
push 0x2d
push dword [0x413b90]
call fcn.00408994
add esp, 0x10
lea eax, [esp + 0x3fc]
push dword [0x413ba0]
push eax
lea eax, [esp + 0x804]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea eax, [esp + 0x7fc]
push eax
push esi
push dword [0x4137d8]
call dword [sym.imp.USER32.dll_SetDlgItemTextA]
push edi
mov edi, dword [sym.imp.USER32.dll_GetDlgItem]
push 1
push dword [0x4137d8]
call edi
mov esi, dword [sym.imp.USER32.dll_EnableWindow]
push eax
call esi
push 0
push 5
push dword [0x4137d8]
call edi
push eax
call esi
xor edi, edi
mov esi, 0x413c20
lea eax, [edi + 0x6b]
movzx eax, ax
push eax
push dword [0x413b90]
call dword [sym.imp.USER32.dll_LoadIconA]
mov dword [esi], eax
add esi, 4
inc edi
cmp esi, 0x413c74
jl 0x405e05
xor edi, edi
cmp dword [0x413888], edi
je 0x405e4a
push 5
push 0xef6
push dword [0x4137d8]
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
push edi
call fcn.00407113
cmp dword [0x413b98], edi
pop ecx
mov dword [0x413b8c], 1
jle 0x405f6f
cmp dword [0x413844], 0
jne 0x405f6f
cmp dword [0x4137fc], 0x3e8
je 0x405e95
mov eax, dword [0x41385c]
mov eax, dword [eax + edi*4]
cmp dword [eax + 0x204], 0
je 0x405f62
mov eax, dword [0x41385c]
mov cx, word [esp + 0x10]
mov esi, edi
shl esi, 2
mov eax, dword [eax + esi]
cmp word [eax + 0x208], cx
jb 0x405f62
push 0x5c
push eax
call fcn.00409bc0
pop ecx
test eax, eax
pop ecx
je 0x405ed3
mov eax, dword [0x41385c]
push 0
push dword [eax + esi]
call fcn.0040859a
pop ecx
pop ecx
lea eax, [esp + 0x3fc]
push 0x410544
push eax
call ebp
push 0
call fcn.004091dd
mov byte [esp + 0x400], al
pop ecx
lea eax, [esp + 0x37c]
push eax
push dword [0x413864]
call ebp
mov eax, dword [0x41385c]
mov eax, dword [eax + esi]
cmp byte [eax + 0x104], 0
lea ecx, [eax + 0x104]
je 0x405f1b
push ecx
jmp 0x405f1c
push eax
push dword [0x413864]
call ebx
push dword [0x413864]
call fcn.00407113
pop ecx
lea eax, [esp + 0x6c]
push eax
lea eax, [esp + 0x2c]
mov ecx, dword [0x41385c]
push eax
xor eax, eax
push eax
push eax
push eax
push eax
push eax
push eax
push dword [ecx + esi]
push eax
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
je 0x405f62
push 0xffffffffffffffff
push dword [esp + 0x70]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
inc edi
cmp edi, dword [0x413b98]
jl 0x405e67
xor esi, esi
cmp dword [0x413b80], esi
jle 0x406015
cmp dword [0x413844], 0
jne 0x406015
cmp dword [0x4137fc], 0x3e8
je 0x405fa7
mov eax, dword [0x413c94]
mov eax, dword [eax + esi*4]
cmp dword [eax + 0x104], 0
je 0x406002
mov eax, dword [0x413c94]
mov eax, dword [eax + esi*4]
mov ax, word [eax + 0x108]
cmp ax, word [esp + 0x10]
jb 0x406002
lea eax, [esp + 0x3bc]
push eax
push dword [0x413864]
call ebp
mov eax, dword [0x413c94]
push dword [eax + esi*4]
push dword [0x413864]
call ebx
push dword [0x413864]
call fcn.00407113
mov eax, dword [0x413c94]
pop ecx
push dword [eax + esi*4]
call fcn.00408a45
pop ecx
push 0xdac
call fcn.00407219
pop ecx
inc dword [0x413824]
inc esi
cmp esi, dword [0x413b80]
jl 0x405f7d
cmp dword [0x4138a0], 0
je 0x40606a
cmp dword [0x4137fc], 0x3e8
je 0x406033
cmp dword [0x413808], 0
je 0x40606a
lea eax, [esp + 0x2fc]
push eax
push dword [0x413864]
call ebp
push dword [0x4138a0]
push dword [0x413864]
call ebx
push dword [0x413864]
call fcn.00407113
pop ecx
call fcn.004080bd
test eax, eax
jne 0x407108
xor edi, edi
cmp dword [0x413880], edi
jle 0x40611b
cmp dword [0x413844], 0
jne 0x40611b
cmp dword [0x4137fc], 0x3e8
je 0x4060a2
mov eax, dword [0x4137e8]
mov eax, dword [eax + edi*4]
cmp dword [eax + 0x104], 0
je 0x406108
mov eax, dword [0x4137e8]
mov cx, word [esp + 0x10]
mov esi, edi
shl esi, 2
mov eax, dword [eax + esi]
cmp word [eax + 0x108], cx
jb 0x406108
lea eax, [esp + 0x17c]
push eax
push dword [0x413864]
call ebp
mov eax, dword [0x4137e8]
push dword [eax + esi]
push dword [0x413864]
call ebx
push dword [0x413864]
call fcn.00407113
mov eax, dword [0x4137e8]
pop ecx
push 0
push dword [eax + esi]
call fcn.004084e1
mov eax, dword [0x4137e8]
pop ecx
pop ecx
push dword [eax + esi]
call fcn.00408461
pop ecx
inc dword [0x413824]
inc edi
cmp edi, dword [0x413880]
jl 0x406078
xor edi, edi
cmp dword [0x41383c], edi
jle 0x406203
cmp dword [0x413844], 0
jne 0x406203
cmp dword [0x4137fc], 0x3e8
je 0x406157
mov eax, dword [0x4138ac]
mov eax, dword [eax + edi*4]
cmp dword [eax + 0x70c], 0
je 0x4061f0
mov eax, dword [0x4138ac]
mov cx, word [esp + 0x10]
mov esi, edi
shl esi, 2
mov eax, dword [eax + esi]
cmp word [eax + 0x710], cx
jb 0x4061f0
add eax, 8
push 0
push eax
call fcn.0040872e
pop ecx
test eax, eax
pop ecx
jne 0x4061f0
lea eax, [esp + 0x1bc]
push eax
push dword [0x413864]
call ebp
mov eax, dword [0x4138ac]
mov eax, dword [eax + esi]
add eax, 8
push eax
push dword [0x413864]
call ebx
push dword [0x413864]
call fcn.00407113
mov eax, dword [0x4138ac]
cmp dword [0x41387c], 0
pop ecx
mov eax, dword [eax + esi]
lea ecx, [eax + 0x50c]
jne 0x4061d0
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 [0x413824]
inc edi
cmp edi, dword [0x41383c]
jl 0x406129
xor esi, esi
cmp dword [0x413ba8], esi
jle 0x406262
cmp dword [0x41387c], 0
je 0x406259
mov eax, dword [0x4137e4]
mov cx, word [esp + 0x10]
mov eax, dword [eax + esi*4]
cmp word [eax + 0x208], cx
jb 0x406259
add eax, 0x104
push 0
push eax
call fcn.0040872e
pop ecx
test eax, eax
pop ecx
jne 0x406259
mov eax, dword [0x4137e4]
push 1
mov eax, dword [eax + esi*4]
lea ecx, [eax + 0x104]
push ecx
push eax
call fcn.00407d08
add esp, 0xc
inc esi
cmp esi, dword [0x413ba8]
jl 0x40620d
mov eax, dword [0x413bac]
lea esi, [eax - 1]
test esi, esi
jl 0x406395
cmp dword [0x4137fc], 0x3e8
jne 0x4062a2
mov eax, dword [0x413814]
mov eax, dword [eax + esi*4]
cmp dword [eax + 0x214], 0
jne 0x4062b7
cmp dword [0x41387c], 0
je 0x4062a2
lea ecx, [eax + 0x10c]
test ecx, ecx
jne 0x4062b7
mov eax, dword [0x413814]
mov eax, dword [eax + esi*4]
cmp dword [eax + 0x210], 0
je 0x40638e
mov cx, word [esp + 0x10]
cmp word [eax + 0x21c], cx
jb 0x40638e
cmp word [eax + 0x220], cx
jb 0x4062e8
push dword [eax + 0x224]
add eax, 8
push 1
push eax
call fcn.00407b01
add esp, 0xc
jmp 0x4062ea
xor eax, eax
cmp eax, 1
jne 0x406325
cmp dword [0x41387c], 0
je 0x406317
mov eax, dword [0x413814]
mov cx, word [esp + 0x10]
mov eax, dword [eax + esi*4]
cmp word [eax + 0x21e], cx
jne 0x406317
cmp byte [eax + 0x10c], 0
jne 0x40638e
mov eax, dword [0x413814]
mov eax, dword [eax + esi*4]
and byte [eax + 8], 0
jmp 0x40638e
mov eax, dword [0x413814]
mov eax, dword [eax + esi*4]
mov cx, word [eax + 0x21e]
cmp cx, word [eax + 0x21c]
jne 0x406346
cmp byte [eax + 0x10c], 0
je 0x40634f
cmp dword [0x41387c], 0
jne 0x40638e
mov di, word [esp + 0x10]
cmp word [eax + 0x218], di
jb 0x406373
add eax, 8
push 0
push eax
lea eax, [esp + 0x2c4]
push eax
call fcn.00407f08
add esp, 0xc
mov eax, dword [0x413814]
mov eax, dword [eax + esi*4]
cmp word [eax + 0x21a], di
jb 0x40638e
add eax, 8
push eax
call fcn.00408a9a
pop ecx
dec esi
jns 0x406272
mov eax, dword [0x413874]
lea edi, [eax - 1]
test edi, edi
jl 0x4064bf
mov eax, dword [0x413c0c]
mov dx, word [esp + 0x10]
mov esi, edi
shl esi, 2
mov eax, dword [eax + esi]
cmp word [eax + 0x214], dx
jb 0x4064b8
mov ecx, dword [eax + 0x208]
test ecx, ecx
jne 0x4063d6
cmp dword [0x413818], ecx
je 0x406442
cmp word [eax + 0x218], dx
jb 0x4063f1
push dword [eax + 0x21c]
push ecx
push eax
call fcn.00407b01
add esp, 0xc
jmp 0x4063f3
xor eax, eax
push 1
pop ecx
cmp eax, ecx
jne 0x40642f
cmp dword [0x41387c], 0
je 0x406422
mov eax, dword [0x413c0c]
mov eax, dword [eax + esi]
mov cx, word [eax + 0x216]
cmp cx, word [esp + 0x10]
jne 0x406422
cmp byte [eax + 0x104], 0
jne 0x406442
mov eax, dword [0x413c0c]
mov eax, dword [eax + esi]
and byte [eax], 0
jmp 0x406442
cmp eax, 2
jne 0x406442
mov eax, dword [0x413c0c]
mov eax, dword [eax + esi]
mov dword [eax + 0x208], ecx
mov eax, dword [0x413c0c]
mov eax, dword [eax + esi]
cmp dword [eax + 0x208], 0
je 0x4064b8
cmp byte [eax], 0
je 0x4064b8
mov cx, word [eax + 0x216]
cmp cx, word [eax + 0x214]
jne 0x406471
cmp byte [eax + 0x104], 0
je 0x40647a
cmp dword [0x41387c], 0
jne 0x4064b8
mov cx, word [esp + 0x10]
cmp word [eax + 0x210], cx
jb 0x40649b
push 0
push eax
lea eax, [esp + 0x2c4]
push eax
call fcn.00407f08
add esp, 0xc
mov eax, dword [0x413c0c]
mov esi, dword [eax + esi]
mov ax, word [esp + 0x10]
cmp word [esi + 0x212], ax
jb 0x4064b8
push esi
call fcn.00408a9a
pop ecx
dec edi
jns 0x4063a5
xor esi, esi
cmp dword [0x413bac], esi
jle 0x4065cb
cmp dword [0x413844], 0
jne 0x4065cb
mov eax, dword [0x413814]
mov eax, dword [eax + esi*4]
cmp byte [eax + 8], 0
lea ecx, [eax + 8]
je 0x4065b8
cmp dword [0x4137fc], 0x3e8
jne 0x406524
cmp dword [eax + 0x214], 0
jne 0x406531
cmp dword [0x41387c], 0
je 0x406524
cmp byte [eax + 0x10c], 0
je 0x406524
mov dx, word [eax + 0x21e]
cmp dx, word [esp + 0x10]
je 0x406531
cmp dword [eax + 0x210], 0
je 0x4065b8
mov dx, word [esp + 0x10]
cmp word [eax + 0x21c], dx
jb 0x4065b8
cmp word [eax + 0x21e], dx
jne 0x406556
cmp dword [0x41387c], 0
je 0x406556
push 1
pop edx
jmp 0x406558
xor edx, edx
add eax, 0x10c
push edx
push eax
push ecx
call fcn.00407d08
add esp, 0xc
test eax, eax
je 0x4065b8
lea eax, [esp + 0x7c]
push eax
push dword [0x413864]
call ebp
mov eax, dword [0x413814]
mov eax, dword [eax + esi*4]
add eax, 8
push eax
push dword [0x413864]
call ebx
push dword [0x413864]
push 0x3ef
push dword [0x4137d8]
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call fcn.00407915
pop ecx
pop ecx
push dword [0x413864]
call fcn.00407113
pop ecx
inc dword [0x413824]
inc esi
cmp esi, dword [0x413bac]
jl 0x4064cd
xor esi, esi
cmp dword [0x413874], esi
jle 0x4066c6
cmp dword [0x413844], 0
jne 0x4066c6
mov eax, dword [0x413c0c]
mov eax, dword [eax + esi*4]
cmp byte [eax], 0
je 0x4066b3
cmp dword [eax + 0x208], 0
jne 0x40662c
cmp dword [0x41387c], 0
je 0x4066b3
cmp byte [eax + 0x104], 0
je 0x4066b3
mov cx, word [esp + 0x10]
cmp word [eax + 0x216], cx
jne 0x4066b3
mov cx, word [esp + 0x10]
cmp word [eax + 0x214], cx
jb 0x4066b3
cmp word [eax + 0x216], cx
jne 0x406651
cmp dword [0x41387c], 0
je 0x406651
push 1
pop ecx
jmp 0x406653
xor ecx, ecx
push ecx
lea ecx, [eax + 0x104]
push ecx
push eax
call fcn.00407d08
add esp, 0xc
test eax, eax
je 0x4066b3
lea eax, [esp + 0xbc]
push eax
push dword [0x413864]
call ebp
mov eax, dword [0x413c0c]
push dword [eax + esi*4]
push dword [0x413864]
call ebx
push dword [0x413864]
push 0x3ef
push dword [0x4137d8]
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call fcn.00407915
pop ecx
pop ecx
push dword [0x413864]
call fcn.00407113
pop ecx
inc dword [0x413824]
inc esi
cmp esi, dword [0x413874]
jl 0x4065d9
xor esi, esi
cmp dword [0x41387c], esi
je 0x4067f4
cmp dword [0x413bac], esi
jle 0x406777
cmp dword [0x413844], 0
jne 0x406777
mov eax, dword [0x413814]
mov eax, dword [eax + esi*4]
cmp byte [eax + 8], 0
lea ecx, [eax + 8]
je 0x40676a
cmp dword [0x4137fc], 0x3e8
jne 0x406725
cmp dword [eax + 0x214], 0
jne 0x40672e
cmp dword [0x41387c], 0
je 0x406725
cmp byte [eax + 0x10c], 0
jne 0x40672e
cmp dword [eax + 0x210], 0
je 0x40676a
mov dx, word [esp + 0x10]
cmp word [eax + 0x21c], dx
jb 0x40676a
cmp byte [eax + 0x10c], 0
je 0x40676a
cmp word [eax + 0x21e], dx
jne 0x40676a
cmp word [eax + 0x218], dx
jb 0x40676a
push 1
lea eax, [esp + 0x2c0]
push ecx
push eax
call fcn.00407f08
add esp, 0xc
inc esi
cmp esi, dword [0x413bac]
jl 0x4066e0
xor esi, esi
cmp dword [0x413874], esi
jle 0x4067f4
xor ecx, ecx
cmp dword [0x413844], ecx
jne 0x4067f4
mov eax, dword [0x413c0c]
mov eax, dword [eax + esi*4]
cmp byte [eax], cl
je 0x4067eb
cmp dword [eax + 0x208], ecx
jne 0x4067af
cmp dword [0x41387c], ecx
je 0x4067eb
cmp byte [eax + 0x104], cl
je 0x4067eb
mov cx, word [esp + 0x10]
cmp word [eax + 0x214], cx
jb 0x4067eb
cmp byte [eax + 0x104], 0
je 0x4067eb
cmp word [eax + 0x216], cx
jne 0x4067eb
cmp word [eax + 0x210], cx
jb 0x4067eb
push 1
push eax
lea eax, [esp + 0x2c4]
push eax
call fcn.00407f08
add esp, 0xc
inc esi
cmp esi, dword [0x413874]
jl 0x406781
cmp dword [0x4137fc], 0x3e8
mov ebp, dword [esp + 0xc00]
jne 0x406820
cmp dword [0x413844], 0
jne 0x406820
cmp dword [0x41387c], 0
jne 0x406820
push ebp
call fcn.00408461
pop ecx
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenA]
xor edi, edi
cmp dword [0x413c84], edi
jle 0x40694d
cmp dword [0x413844], 0
jne 0x40694d
mov edx, dword [0x4137fc]
cmp edx, 0x3e8
je 0x406864
mov eax, dword [0x413828]
mov eax, dword [eax + edi*4]
cmp dword [eax + 0x104], 0
je 0x40693a
mov eax, dword [0x413828]
mov cx, word [esp + 0x10]
mov esi, edi
shl esi, 2
mov eax, dword [eax + esi]
cmp word [eax + 0x10a], cx
jb 0x40693a
cmp edx, 0x3e9
je 0x40689b
cmp word [eax + 0x108], cx
lea eax, [esp + 0x13c]
jb 0x4068a2
lea eax, [esp + 0xfc]
push eax
push dword [0x413864]
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov eax, dword [0x413828]
push dword [eax + esi]
call ebx
mov ecx, dword [0x413828]
mov ecx, dword [ecx + esi]
and byte [eax + ecx - 1], 0
mov eax, dword [0x413828]
push dword [eax + esi]
push dword [0x413864]
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push dword [0x413864]
push 0x3ef
push dword [0x4137d8]
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call fcn.00407915
pop ecx
pop ecx
push dword [0x413864]
call fcn.00407113
cmp dword [0x4137fc], 0x3e9
mov eax, dword [0x413828]
pop ecx
je 0x40692c
mov ecx, dword [eax + esi]
mov dx, word [esp + 0x10]
cmp word [ecx + 0x108], dx
jae 0x40692c
xor ecx, ecx
jmp 0x40692f
push 1
pop ecx
push ecx
push dword [eax + esi]
call fcn.0040729c
pop ecx
pop ecx
inc dword [0x413824]
inc edi
cmp edi, dword [0x413c84]
jl 0x406834
cmp dword [0x41387c], 0
je 0x40698d
cmp dword [0x41389c], 0
jne 0x406967
push ebp
call fcn.00408461
jmp 0x40698c
push 1
push ebp
call fcn.0040a260
mov esi, eax
pop ecx
cmp esi, 0xffffffff
pop ecx
je 0x40698d
push dword [0x41389c]
push esi
call fcn.0040a0e0
pop ecx
pop ecx
push esi
call fcn.0040a000
pop ecx
xor edi, edi
cmp dword [0x413bfc], edi
mov dword [esp + 0x24], edi
jle 0x406c30
cmp dword [0x413844], 0
jne 0x406c30
cmp dword [0x4137fc], 0x3e8
je 0x4069cd
mov eax, dword [0x413b84]
mov eax, dword [eax + edi*4]
cmp dword [eax + 0x1210], 0
je 0x406c19
mov eax, dword [0x413b84]
mov cx, word [esp + 0x10]
mov ebp, edi
shl ebp, 2
mov eax, dword [eax + ebp]
cmp word [eax + 0x1214], cx
jb 0x406c19
lea eax, [esp + 0x23c]
push eax
push dword [0x413864]
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push dword [0x413864]
call ebx
mov ecx, dword [0x413b84]
mov esi, eax
mov eax, dword [0x413864]
mov ecx, dword [ecx + ebp]
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 0x406a3c
add esi, 0x2d
push 0x410540
push esi
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push dword [0x413864]
call fcn.00407113
mov eax, dword [0x413b84]
cmp dword [0x41387c], 0
pop ecx
lea ecx, [eax + ebp]
mov eax, dword [eax + ebp]
lea esi, [eax + 0xa08]
jne 0x406a68
lea esi, [eax + 0x208]
cmp dword [0x4137f0], 0
je 0x406bf3
mov ecx, dword [ecx]
lea eax, [esp + 0x20]
push eax
push 0x1f
lea eax, [ecx + 8]
push 0
push eax
mov eax, dword [ecx + 0x1208]
push dword [eax*4 + 0x410020]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x406c19
push esi
call ebx
mov edi, eax
mov eax, dword [0x413b84]
inc edi
mov eax, dword [eax + ebp]
mov eax, dword [eax + 0x120c]
cmp eax, 3
jne 0x406ac9
push esi
call fcn.00409f20
pop ecx
mov dword [esi], eax
push 4
pop edi
jmp 0x406bb4
cmp eax, 2
jne 0x406afd
xor edi, edi
cmp byte [esi], 0
mov ebx, esi
je 0x406bb4
push ebx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push ebx
lea edi, [edi + eax + 1]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
cmp byte [ebx + eax + 1], 0
lea ebx, [ebx + eax + 1]
jne 0x406adb
jmp 0x406bb4
cmp eax, 4
jne 0x406bb4
and byte [esp + 0x17], 0
xor edi, edi
cmp byte [esi], 0
mov dword [esp + 0x1c], edi
mov ebx, esi
mov dword [esp + 0x18], esi
je 0x406bb4
movsx eax, byte [ebx]
push eax
call fcn.00409c80
mov byte [ebx], al
cmp dword [0x410ffc], 1
pop ecx
jle 0x406b44
movsx eax, al
push 4
push eax
call fcn.00409e80
pop ecx
pop ecx
jmp 0x406b53
mov ecx, dword [str.________________________________H]
movsx eax, al
mov al, byte [ecx + eax*2]
and eax, 4
test eax, eax
jne 0x406b61
mov al, byte [ebx]
cmp al, 0x41
jl 0x406baa
cmp al, 0x46
jg 0x406baa
cmp dword [esp + 0x1c], 0
mov al, byte [ebx]
je 0x406b94
cmp al, 0x39
movsx eax, al
jg 0x406b76
sub eax, 0x30
jmp 0x406b79
sub eax, 0x37
mov cl, byte [esp + 0x17]
shl cl, 4
or cl, al
mov eax, dword [esp + 0x18]
inc dword [esp + 0x18]
inc edi
and dword [esp + 0x1c], 0
mov byte [eax], cl
jmp 0x406baa
cmp al, 0x39
jg 0x406b9c
sub al, 0x30
jmp 0x406b9e
sub al, 0x37
mov byte [esp + 0x17], al
mov dword [esp + 0x1c], 1
inc ebx
cmp byte [ebx], 0
jne 0x406b20
mov eax, dword [0x413b84]
push edi
push esi
mov eax, dword [eax + ebp]
mov ecx, dword [eax + 0x120c]
add eax, 0x108
push dword [ecx*4 + 0x410038]
push 0
push eax
push dword [esp + 0x34]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
push dword [esp + 0x20]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov edi, dword [esp + 0x24]
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenA]
jmp 0x406c19
cmp byte [eax + 0x108], 0
jne 0x406c19
cmp dword [eax + 0x1208], 0
jne 0x406c19
push 0
push esi
add eax, 8
push 1
push eax
push 0x80000000
call dword [sym.imp.ADVAPI32.dll_RegSetValueA]
inc dword [0x413824]
inc edi
cmp edi, dword [0x413bfc]
mov dword [esp + 0x24], edi
jl 0x40699f
mov eax, dword [0x413c98]
dec eax
test eax, eax
mov dword [esp + 0x24], eax
jl 0x406e65
jmp 0x406c48
mov eax, dword [esp + 0x24]
cmp dword [0x413844], 0
jne 0x406e65
cmp dword [0x4137fc], 0x3e8
je 0x406c77
mov ecx, dword [0x413804]
mov eax, dword [ecx + eax*4]
cmp dword [eax + 0x210], 0
je 0x406e55
mov eax, dword [esp + 0x24]
mov cx, word [esp + 0x10]
mov esi, eax
mov eax, dword [0x413804]
shl esi, 2
mov eax, dword [eax + esi]
cmp word [eax + 0x214], cx
jb 0x406e55
mov ebp, dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [esp + 0x1fc]
push eax
push dword [0x413864]
call ebp
push dword [0x413864]
call ebx
mov ecx, dword [0x413804]
mov edi, eax
mov eax, dword [0x413864]
mov ecx, dword [ecx + esi]
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 0x406ce8
add edi, 0x2d
push 0x410540
push edi
call ebp
push dword [0x413864]
call fcn.00407113
cmp dword [0x4137f0], 0
pop ecx
je 0x406e2c
mov dword [esp + 0x20], 1
mov eax, dword [0x413804]
lea ecx, [esp + 0x18]
push ecx
push 0x1f
mov eax, dword [eax + esi]
push 0
lea ecx, [eax + 8]
mov eax, dword [eax + 0x20c]
push ecx
push dword [eax*4 + 0x410020]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x406e12
cmp dword [esp + 0x20], eax
je 0x406d57
mov eax, dword [0x413804]
mov eax, dword [eax + esi]
add eax, 0x10c
push eax
push dword [esp + 0x1c]
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueA]
xor edi, edi
lea eax, [esp + 0x1c]
push edi
push edi
push edi
push edi
push eax
lea eax, [esp + 0x410]
push eax
push edi
push dword [esp + 0x34]
mov dword [esp + 0x40], edi
mov dword [esp + 0x3c], 0x100
call dword [sym.imp.ADVAPI32.dll_RegEnumValueA]
mov ebp, eax
cmp ebp, edi
je 0x406ddc
push edi
push edi
push edi
lea eax, [esp + 0x28]
push edi
push eax
lea eax, [esp + 0x410]
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 0x406e14
mov eax, dword [0x413804]
mov eax, dword [eax + esi]
lea ecx, [eax + 8]
mov eax, dword [eax + 0x20c]
push ecx
push dword [eax*4 + 0x410020]
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
jmp 0x406de6
push dword [esp + 0x18]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp ebp, edi
je 0x406e14
mov eax, dword [0x413804]
mov edi, dword [eax + esi]
mov eax, edi
add eax, 8
push eax
call ebx
lea eax, [eax + edi + 7]
add edi, 8
cmp eax, edi
jbe 0x406e0d
cmp byte [eax], 0x5c
je 0x406e0d
dec eax
jmp 0x406e01
and byte [eax], 0
jmp 0x406e14
xor ebp, ebp
test ebp, ebp
je 0x406e55
mov eax, dword [0x413804]
mov eax, dword [eax + esi]
cmp byte [eax + 8], 0
jne 0x406d09
jmp 0x406e55
mov eax, dword [0x413804]
mov esi, dword [eax + esi]
cmp byte [esi + 0x10c], 0
jne 0x406e55
cmp dword [esi + 0x20c], 0
jne 0x406e55
add esi, 8
push esi
push 0x80000000
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
inc dword [0x413824]
dec dword [esp + 0x24]
jns 0x406c44
mov eax, dword [0x413c04]
lea edi, [eax - 1]
test edi, edi
jl 0x406f32
cmp dword [0x413844], 0
jne 0x407108
cmp dword [0x4137fc], 0x3e8
je 0x406ea3
mov eax, dword [0x4138c0]
mov eax, dword [eax + edi*4]
cmp dword [eax + 0x104], 0
je 0x406f25
mov eax, dword [0x4138c0]
mov eax, dword [eax + edi*4]
mov ax, word [eax + 0x108]
cmp ax, word [esp + 0x10]
jb 0x406f25
mov ebp, dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [esp + 0x33c]
push eax
push dword [0x413864]
call ebp
push dword [0x413864]
call ebx
mov ecx, dword [0x4138c0]
mov esi, eax
mov eax, dword [0x413864]
push dword [ecx + edi*4]
add esi, eax
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push esi
call ebx
cmp eax, 0x30
jle 0x406f03
add esi, 0x2d
push 0x410540
push esi
call ebp
push dword [0x413864]
call fcn.00407113
mov eax, dword [0x4138c0]
pop ecx
mov eax, dword [eax + edi*4]
push dword [eax + 0x100]
push eax
call fcn.004082c1
pop ecx
pop ecx
inc dword [0x413824]
dec edi
jns 0x406e75
cmp dword [0x413844], 0
jne 0x407108
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcatA]
xor ebp, ebp
push 1
xor esi, esi
cmp dword [0x413800], ebp
pop edi
jle 0x406ff9
cmp dword [0x413844], ebp
jne 0x406ff9
cmp dword [0x4137fc], 0x3e8
je 0x406f80
mov eax, dword [0x413850]
mov eax, dword [eax + esi*4]
cmp dword [eax + 0x300], ebp
je 0x406fe6
mov eax, dword [0x413850]
mov eax, dword [eax + esi*4]
mov ax, word [eax + 0x304]
cmp ax, word [esp + 0x10]
je 0x406f9e
cmp dword [0x41387c], ebp
jne 0x406fe6
cmp edi, ebp
je 0x406fa9
call fcn.00407452
xor edi, edi
lea eax, [esp + 0x27c]
push eax
push dword [0x413864]
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov eax, dword [0x413850]
mov eax, dword [eax + esi*4]
add eax, 0x100
push eax
push dword [0x413864]
call ebx
push dword [0x413864]
call fcn.00407113
pop ecx
push esi
call fcn.00407623
pop ecx
inc dword [0x413824]
inc esi
cmp esi, dword [0x413800]
jl 0x406f58
cmp edi, ebp
jne 0x40701e
mov eax, dword [0x413848]
cmp eax, ebp
je 0x40700c
push eax
call sub.USER32.dll_DdeDisconnect
push ebp
call fcn.00407113
pop ecx
push dword [0x4137f8]
call sub.USER32.dll_DdeUninitialize
cmp dword [0x41388c], ebp
je 0x407108
cmp dword [0x4137fc], 0x3e8
jne 0x40703e
cmp dword [0x41387c], ebp
je 0x407056
cmp dword [0x41387c], ebp
je 0x407108
cmp dword [0x41389c], ebp
jne 0x407108
cmp dword [0x4137f0], ebp
je 0x407108
lea eax, [esp + 0x20]
push eax
push 0x1f
push ebp
push str.SoftwareWise_SolutionsWamUser
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x407108
lea eax, [esp + 0x1c]
mov dword [esp + 0x1c], 0x100
push eax
lea eax, [esp + 0x400]
push eax
lea eax, [esp + 0x20]
push eax
push ebp
push str.Path
push dword [esp + 0x34]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x4070fe
lea eax, [esp + 0x3fc]
push ebp
push eax
call fcn.0040859a
pop ecx
lea eax, [esp + 0x400]
pop ecx
push str.__U__
push eax
call ebx
push dword [0x41388c]
lea eax, [esp + 0x400]
push eax
call ebx
lea eax, [esp + 0x3fc]
push 0x41050c
push eax
call ebx
lea eax, [esp + 0x3fc]
push 5
push eax
call dword [sym.imp.KERNEL32.dll_WinExec]
push dword [esp + 0x20]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xbec
ret