Function at 0x4016c0
Capabilities:
Create process on windows
Get graphical window text

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x443deb
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x15dc
call fcn.0043f560
mov eax, dword [0x451050]
xor eax, ebp
mov dword [ebp - 0x18], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov eax, dword [ebp + 8]
xor ebx, ebx
mov esi, edx
mov dword [ebp - 0x158c], esi
cmp ecx, ebx
jne 0x401d81
cmp eax, 0x206d
jg 0x401ac5
je 0x401733
sub eax, 1
je 0x401733
sub eax, 1
jne 0x401e50
push ebx
push esi
call dword [sym.imp.USER32.dll_EndDialog]
jmp 0x401e50
cmp dword [0x4586dc], ebx
jne 0x401911
push 0x1fe
lea ecx, [ebp - 0x25a]
xor eax, eax
push ebx
push ecx
mov word [ebp - 0x25c], ax
call fcn.00437610
add esp, 0xc
push 0x1fe
lea eax, [ebp - 0x55a]
xor edx, edx
push ebx
push eax
mov word [ebp - 0x55c], dx
call fcn.00437610
mov edi, dword [sym.imp.USER32.dll_GetDlgItemTextW]
add esp, 0xc
lea ecx, [ebp - 0x25c]
push 0x100
mov edx, ecx
push edx
push 0x20cf
push esi
mov dword [ebp - 0x157c], 0x10
mov dword [ebp - 0x1578], ebx
mov dword [ebp - 0x1574], ecx
mov dword [ebp - 0x1570], 3
call edi
test eax, eax
jne 0x401815
lea eax, [ebp - 0x25c]
push eax
push 0x7d31
mov ebx, 0x100
call fcn.0040af30
add esp, 8
test dword [0x459f88], 0x10000000
je 0x401806
lea ecx, [ebp - 0x157c]
push ecx
push 0
push 0x1503
push 0x20cf
push esi
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
jmp 0x401e50
mov ecx, 0x7d31
call fcn.00408930
jmp 0x401e50
push 0x100
lea edx, [ebp - 0x55c]
push edx
push 0x20ce
push esi
call edi
test eax, eax
jne 0x401887
lea eax, [ebp - 0x25c]
push eax
push 0x7d32
mov ebx, 0x100
call fcn.0040af30
add esp, 8
test dword [0x459f88], 0x10000000
je 0x401878
lea ecx, [ebp - 0x157c]
push ecx
push 0
push 0x1503
push 0x20ce
push esi
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
jmp 0x401e50
mov ecx, 0x7d32
call fcn.00408930
jmp 0x401e50
lea edx, [ebp - 0x1594]
push edx
lea eax, [ebp - 0x1590]
push eax
lea edi, [ebp - 0x55c]
lea ecx, [ebp - 0x25c]
mov dword [ebp - 0x1590], ebx
mov dword [ebp - 0x1594], ebx
call fcn.0040abf0
add esp, 8
test al, al
jne 0x4018c8
mov ecx, 0x7d34
call fcn.00408930
jmp 0x401a83
lea ecx, [ebp - 0x25c]
push ecx
lea ecx, [ebp - 0x55c]
call fcn.0040e5a0
add esp, 4
test eax, eax
jne 0x401a83
lea edx, [ebp - 0x25c]
push edx
lea ecx, [ebp - 0x55c]
call fcn.0040e5a0
add esp, 4
test eax, eax
jne 0x401a83
mov ecx, 0x7d36
call fcn.00408930
jmp 0x401a83
mov ecx, dword [0x458758]
mov edi, 8
cmp dword [0x45876c], edi
jae 0x401929
mov ecx, 0x458758
call fcn.00409030
test eax, eax
jne 0x401a67
test dword [0x459f88], 0x20000000
je 0x401a67
mov ecx, dword [0x459f78]
push 0x400
lea eax, [ebp - 0xd64]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
dec eax
cmp eax, 0x3fe
ja 0x401a58
mov eax, str._license__
lea ecx, [ebp - 0x1588]
call fcn.00403460
push ebx
push 0x4586c8
or eax, 0xffffffff
lea esi, [ebp - 0x1588]
mov dword [ebp - 4], 2
call fcn.00403710
mov edx, esi
push edx
mov eax, 0x44740c
call fcn.00403500
push 0x3c
lea eax, [ebp - 0x58]
push 0
push eax
call fcn.00437610
add esp, 0xc
lea ecx, [ebp - 0xd64]
mov dword [ebp - 0x58], 0x3c
mov dword [ebp - 0x54], 0x40
mov dword [ebp - 0x4c], 0x447410
mov dword [ebp - 0x48], ecx
cmp dword [ebp - 0x1570], edi
jb 0x4019e4
mov edx, dword [ebp - 0x1584]
mov dword [ebp - 0x44], edx
jmp 0x4019ed
lea eax, [ebp - 0x1584]
mov dword [ebp - 0x44], eax
lea ecx, [ebp - 0x58]
push ecx
mov dword [ebp - 0x3c], 1
call dword [sym.imp.SHELL32.dll_ShellExecuteExW]
test eax, eax
je 0x401a2e
mov eax, dword [ebp - 0x20]
test eax, eax
jne 0x401a16
push 0x320
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x401a3e
push 0x1388
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov edx, dword [ebp - 0x20]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x401a3e
mov esi, dword [ebp - 0x158c]
mov ecx, 0x7d35
call fcn.00408930
lea esi, [ebp - 0x1588]
mov dword [ebp - 4], 0xffffffff
call fcn.004034a0
mov esi, dword [ebp - 0x158c]
jmp 0x401a83
mov ecx, 0x7d35
call fcn.00408930
jmp 0x401e50
mov eax, dword [0x4586cc]
cmp dword [0x4586e0], edi
jae 0x401a79
mov eax, 0x4586cc
push eax
push esi
call fcn.0040e2f0
add esp, 8
call fcn.00401430
mov eax, dword [0x459cd0]
test eax, eax
je 0x401e50
cmp dword [eax], 0
je 0x401e50
push 1
push esi
call dword [sym.imp.USER32.dll_EndDialog]
mov eax, dword [0x459f80]
push eax
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x401e50
call fcn.0040ee10
jmp 0x401e50
sub eax, 0x206e
je 0x401726
sub eax, 4
jne 0x401e50
push 0x54
push eax
lea ecx, [ebp - 0x15e8]
push ecx
mov dword [ebp - 0x15ec], 0x58
call fcn.00437610
add esp, 0xc
push 0x802
lea edx, [ebp - 0xd64]
push 0
push edx
mov dword [ebp - 0x15e8], esi
mov dword [ebp - 0x15c0], ebx
call fcn.00437610
lea eax, [ebp - 0xd64]
add esp, 0xc
mov edx, eax
push edx
lea ecx, [ebp - 0x156c]
mov ebx, 0x401
push 0x4e40
mov dword [ebp - 0x15e0], eax
mov dword [ebp - 0x15d0], ecx
mov dword [ebp - 0x15cc], ebx
call fcn.0040af30
mov edi, eax
inc edi
mov ecx, ebx
add esp, 8
sub ecx, edi
mov eax, 0
je 0x401b60
cmp ecx, 0x7fffffff
jbe 0x401b65
mov eax, 0x80070057
test eax, eax
jl 0x401b8d
lea edx, [ebp + edi*2 - 0xd64]
mov eax, str..key_.txt
call fcn.004012b0
test eax, eax
jne 0x401b8d
push str..key_.txt
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea edi, [edi + eax + 1]
xor ecx, ecx
lea edi, [ebp + edi*2 - 0xd64]
xor eax, eax
mov word [edi - 2], cx
mov word [edi], ax
mov eax, dword [ebp - 0x15d0]
lea ecx, [ebp - 0x15ec]
xor edx, edx
mov dword [ebp - 0x15d4], 1
mov dword [ebp - 0x15b8], 0x81024
mov dword [ebp - 0x15a8], 0x408e90
push ecx
mov word [eax], dx
call dword [sym.imp.COMDLG32.dll_GetOpenFileNameW]
test eax, eax
je 0x401e50
xor edx, edx
push 0x1fe
push edx
lea eax, [ebp - 0x25a]
push eax
mov word [ebp - 0x25c], dx
call fcn.00437610
add esp, 0xc
xor ecx, ecx
push 0x3e
push ecx
lea edx, [ebp - 0x5a]
push edx
mov word [ebp - 0x5c], cx
call fcn.00437610
add esp, 0xc
push 0x20
lea eax, [ebp - 0x5c]
push eax
push 0x100
lea ecx, [ebp - 0x25c]
push ecx
lea edx, [ebp - 0x156c]
push edx
mov dword [ebp - 4], 0
call fcn.0040e140
add esp, 0x14
mov dword [ebp - 4], 0xffffffff
xor eax, eax
movzx ecx, word [ebp + eax*2 - 0x25c]
test cx, cx
je 0x401cf0
cmp cx, 0xd
je 0x401cf0
cmp cx, 0xa
je 0x401cf0
movzx ecx, word [ebp + eax*2 - 0x25a]
test cx, cx
je 0x401ce0
cmp cx, 0xd
je 0x401ce0
cmp cx, 0xa
je 0x401ce0
movzx ecx, word [ebp + eax*2 - 0x258]
test cx, cx
je 0x401ce3
cmp cx, 0xd
je 0x401ce3
cmp cx, 0xa
je 0x401ce3
movzx ecx, word [ebp + eax*2 - 0x256]
test cx, cx
je 0x401ce8
cmp cx, 0xd
je 0x401ce8
cmp cx, 0xa
je 0x401ce8
movzx ecx, word [ebp + eax*2 - 0x254]
test cx, cx
je 0x401ced
cmp cx, 0xd
je 0x401ced
cmp cx, 0xa
je 0x401ced
add eax, 5
cmp eax, 0xff
jb 0x401c41
jmp 0x401cf0
inc eax
jmp 0x401cf0
add eax, 2
jmp 0x401cf0
add eax, 3
jmp 0x401cf0
add eax, 4
mov edi, dword [sym.imp.USER32.dll_SetDlgItemTextW]
lea edx, [ebp - 0x25c]
push edx
push 0x20cf
xor ecx, ecx
push esi
mov word [ebp + eax*2 - 0x25c], cx
call edi
lea eax, [ebp - 0x5c]
push eax
push 0x20ce
push esi
call edi
mov edi, dword [sym.imp.USER32.dll_GetDlgItem]
push 0
push 0x20cf
push esi
call edi
mov ebx, dword [sym.imp.USER32.dll_EnableWindow]
push eax
call ebx
push 0
push 0x20ce
push esi
call edi
push eax
call ebx
push 0x4586c8
lea eax, [ebp - 0x156c]
call fcn.004034d0
jmp 0x401e50
cmp ecx, 0x300
jne 0x401e2c
cmp eax, 0x20ce
jne 0x401e50
push eax
push esi
call dword [sym.imp.USER32.dll_GetDlgItem]
push 0x7f
lea edx, [ebp - 0x35c]
mov ebx, eax
push edx
push ebx
call dword [sym.imp.USER32.dll_GetWindowTextW]
lea eax, [ebp - 0x35c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov edi, eax
test edi, edi
jl 0x401ddd
xor ecx, ecx
cmp ecx, 7
jge 0x401ddd
cmp word [ebp + eax*2 - 0x35c], 0x2d
je 0x401ddd
dec eax
inc ecx
test eax, eax
jge 0x401dc7
mov ecx, edi
sub ecx, eax
cmp ecx, 6
jle 0x401e50
mov dx, word [ebp + edi*2 - 0x35e]
mov word [ebp + edi*2 - 0x35c], dx
mov eax, 0x2d
lea edx, [ebp - 0x35c]
mov word [ebp + edi*2 - 0x35e], ax
push edx
xor ecx, ecx
inc edi
push ebx
mov word [ebp + edi*2 - 0x35c], cx
call dword [sym.imp.USER32.dll_SetWindowTextW]
push edi
push edi
push 0xb1
push ebx
call dword [sym.imp.USER32.dll_SendMessageW]
jmp 0x401e50
cmp ecx, 0x444
jne 0x401e50
cmp eax, 0x2074
jne 0x401e50
push 1
push ebx
push ebx
push str.http:__www.ntwind.com_software_winsnap_how_to_register.html
push str.open
push ebx
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x18]
xor ecx, ebp
call fcn.00433c32
mov esp, ebp
pop ebp
ret