Function at 0x40cb30
Capabilities:
Get common file path
Set current directory
Terminate process

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
mov eax, 0x19c8
call fcn.00414a40
mov eax, dword [0x43f040]
xor eax, esp
mov dword [esp + 0x19c4], eax
movups xmm0, xmmword [str.ProfiTPN_]
mov eax, dword [0x43c4e4]
push esi
mov dword [esp + 0xbc], eax
mov eax, dword [0x43c4f8]
push edi
mov edi, dword [ebp + 0xc]
mov dword [esp + 0x50], eax
xor eax, eax
push 0x206
movups xmmword [esp + 0xb4], xmm0
push eax
movups xmm0, xmmword [str.ProfiPNT_]
mov word [esp + 0x4f0], ax
lea eax, [esp + 0x4f2]
push eax
mov dword [esp + 0x40], 0xcada
movups xmmword [esp + 0x4c], xmm0
mov dword [esp + 0x44], 0x6e0063
mov dword [esp + 0x48], 0x73
call fcn.00415680
add esp, 0xc
lea eax, [esp + 0x1e2]
push 0x206
push 0
push eax
call fcn.00415680
add esp, 0xc
lea eax, [esp + 0x4e8]
push eax
push 0
push 0
push 0x23
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
jns 0x40cc00
push 0
push 0x43b47c
push str.Error_Common_Application_Data_Folder
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
movups xmm0, xmmword [str.Profi_PNTConfig_]
mov eax, dword [0x43c5c4]
mov dword [esp + 0x200], eax
mov ax, word [0x43c5c8]
movups xmmword [esp + 0x1e0], xmm0
push 0x63
movups xmm0, xmmword [0x43c5b4]
mov word [esp + 0x208], ax
lea eax, [esp + 0x17d]
push 0
push eax
movups xmmword [esp + 0x1fc], xmm0
mov byte [esp + 0x184], 0
call fcn.00415680
add esp, 0xc
mov byte [esp + 0x110], 0
lea eax, [esp + 0x111]
push 0x63
push 0
push eax
call fcn.00415680
add esp, 0xc
lea eax, [esp + 0x178]
push 4
push 0x43a2a3
push eax
call fcn.0041d270
add esp, 0xc
mov byte [esp + 0x17d], 0
lea eax, [esp + 0x110]
push 0xa
push 0x43a2bc
push eax
call fcn.0041d270
add esp, 0xc
mov byte [esp + 0x11b], 0
lea eax, [esp + 0xdf8]
push 0x104
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [esp + 0xdf8]
push 0x5c
push eax
call fcn.004155d2
add esp, 8
test eax, eax
je 0x40ccec
xor ecx, ecx
mov word [eax], cx
lea eax, [esp + 0xdf8]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
mov eax, dword [ebp + 8]
add eax, 0xfffffff8
cmp eax, 2
ja 0x40d617
mov ecx, dword [edi + 4]
lea edx, [esp + 0xbf8]
sub edx, ecx
nop word [eax + eax]
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx + ecx - 2], ax
test ax, ax
jne 0x40cd10
push 0x100
push dword [edi + 8]
lea eax, [esp + 0x900]
push eax
call fcn.0041d633
mov ecx, dword [edi + 0xc]
lea edx, [esp + 0xa04]
add esp, 0xc
sub edx, ecx
movzx eax, word [ecx]
mov word [edx + ecx], ax
add ecx, 2
test ax, ax
jne 0x40cd44
push dword [edi + 0x10]
call fcn.00418e34
mov esi, eax
xor cl, cl
add esp, 4
mov dword [0x819488], esi
mov byte [0x59ab49], cl
cmp esi, 3
je 0x40cd82
cmp esi, 5
je 0x40cd82
cmp esi, 6
je 0x40cd82
cmp esi, 8
jne 0x40cdcf
mov eax, dword [edi + 0x14]
mov ecx, str._Pns
nop word [eax + eax]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x40cdb6
test dx, dx
je 0x40cdb2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x40cdb6
add eax, 4
add ecx, 4
test dx, dx
jne 0x40cd90
xor eax, eax
jmp 0x40cdbb
sbb eax, eax
or eax, 1
test eax, eax
jne 0x40cdc9
mov cl, 1
mov byte [0x59ab49], cl
jmp 0x40cdcf
mov cl, byte [0x59ab49]
movzx eax, si
dec eax
cmp eax, 0x31
ja case.0x40cde3.4
movzx eax, byte [eax + 0x40d690]
jmp dword [eax*4 + 0x40d678]
test cl, cl
je case.0x40cde3.1
mov dword [0x92597c], 3
jmp 0x40ce2c
mov dword [0x92597c], 2
jmp 0x40ce2c
test cl, cl
je case.0x40cde3.1
mov dword [0x92597c], 4
jmp 0x40ce2c
mov dword [0x92597c], 0
jmp 0x40ce2c
mov dword [0x92597c], 1
mov eax, dword [edi + 0x18]
mov ecx, 0x43c62c
mov byte [esp + 0xe], 0
mov byte [0x59ab4e], 0
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x40ce66
test dx, dx
je 0x40ce62
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x40ce66
add eax, 4
add ecx, 4
test dx, dx
jne 0x40ce40
xor eax, eax
jmp 0x40ce6b
sbb eax, eax
or eax, 1
test eax, eax
jne 0x40cec1
push 0x100
lea eax, [esp + 0xbfc]
mov byte [esp + 0x12], 1
push eax
lea eax, [esp + 0x3f0]
push eax
call fcn.0041d633
add esp, 0xc
lea eax, [esp + 0x9f8]
push eax
call fcn.00418e34
movzx eax, ax
mov ecx, 0x3e8
add esp, 4
mov word [0x59ab78], ax
cmp ax, cx
jae 0x40cec1
push str.Error_port_number
call fcn.004011e0
add esp, 4
mov eax, dword [edi + 0x18]
mov ecx, 0x43c648
nop dword [eax]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x40cef6
test dx, dx
je 0x40cef2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x40cef6
add eax, 4
add ecx, 4
test dx, dx
jne 0x40ced0
xor eax, eax
jmp 0x40cefb
sbb eax, eax
or eax, 1
test eax, eax
jne 0x40cf4b
push 0x100
lea eax, [esp + 0xbfc]
mov byte [esp + 0x12], 1
push eax
lea eax, [esp + 0x3f0]
push eax
call fcn.0041d633
add esp, 0xc
xor ecx, ecx
movzx eax, word [esp + ecx + 0x9f8]
lea ecx, [ecx + 2]
mov word [ecx + 0x92598e], ax
test ax, ax
jne 0x40cf23
mov ecx, 0x925990
call fcn.004014f0
mov byte [0x59ab4e], 1
mov ecx, dword [edi + 0x18]
mov edx, 0x43c650
mov byte [0x59ab4a], 0
mov eax, ecx
mov byte [0x59ab4d], 0
mov si, word [eax]
cmp si, word [edx]
jne 0x40cf89
test si, si
je 0x40cf85
mov si, word [eax + 2]
cmp si, word [edx + 2]
jne 0x40cf89
add eax, 4
add edx, 4
test si, si
jne 0x40cf63
xor eax, eax
jmp 0x40cf8e
sbb eax, eax
or eax, 1
test eax, eax
jne 0x40cf99
mov byte [0x59ab4a], 1
mov edx, 0x43c658
mov eax, ecx
mov si, word [eax]
cmp si, word [edx]
jne 0x40cfc6
test si, si
je 0x40cfc2
mov si, word [eax + 2]
cmp si, word [edx + 2]
jne 0x40cfc6
add eax, 4
add edx, 4
test si, si
jne 0x40cfa0
xor eax, eax
jmp 0x40cfcb
sbb eax, eax
or eax, 1
test eax, eax
jne 0x40cfdd
mov byte [0x59ab4d], 1
mov byte [0x59ab4a], 1
mov edx, 0x43c660
mov eax, ecx
mov si, word [eax]
cmp si, word [edx]
jne 0x40d00a
test si, si
je 0x40d006
mov si, word [eax + 2]
cmp si, word [edx + 2]
jne 0x40d00a
add eax, 4
add edx, 4
test si, si
jne 0x40cfe4
xor eax, eax
jmp 0x40d00f
sbb eax, eax
or eax, 1
test eax, eax
jne 0x40d01f
mov byte [0x59ab4d], 1
mov byte [0x59ab4a], al
mov byte [0x59ab4c], 0
mov eax, 0x43c668
nop dword [eax + eax]
mov dx, word [ecx]
cmp dx, word [eax]
jne 0x40d056
test dx, dx
je 0x40d052
mov dx, word [ecx + 2]
cmp dx, word [eax + 2]
jne 0x40d056
add ecx, 4
add eax, 4
test dx, dx
jne 0x40d030
xor eax, eax
jmp 0x40d05b
sbb eax, eax
or eax, 1
test eax, eax
jne 0x40d066
mov byte [0x59ab4c], 1
mov ecx, dword [edi + 0x1c]
mov edx, 0x43c670
mov byte [0x59ab4f], 0
mov eax, ecx
mov si, word [eax]
cmp si, word [edx]
jne 0x40d09d
test si, si
je 0x40d099
mov si, word [eax + 2]
cmp si, word [edx + 2]
jne 0x40d09d
add eax, 4
add edx, 4
test si, si
jne 0x40d077
xor eax, eax
jmp 0x40d0a2
sbb eax, eax
or eax, 1
test eax, eax
jne 0x40d0ad
mov byte [0x59ab4f], 1
mov eax, 0x43c678
mov dx, word [ecx]
cmp dx, word [eax]
jne 0x40d0d8
test dx, dx
je 0x40d0d4
mov dx, word [ecx + 2]
cmp dx, word [eax + 2]
jne 0x40d0d8
add ecx, 4
add eax, 4
test dx, dx
jne 0x40d0b2
xor eax, eax
jmp 0x40d0dd
sbb eax, eax
or eax, 1
test eax, eax
jne 0x40d0e8
mov byte [0x59ab4f], 1
push 0x12
push dword [edi + 0x20]
lea eax, [esp + 0xe4]
push eax
call fcn.0041d633
add esp, 0xc
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0xf4]
push str._x:_x:_x:_x:_x:_x
push eax
call fcn.00401270
add esp, 0x20
cmp eax, 6
je 0x40d176
mov eax, dword [sym.imp.USER32.dll_MessageBoxW]
push 0
push 0x43b47c
push str.Error._Source_MAC
push 0
mov dword [0x59c060], 0
mov word [0x59c064], 0
call eax
mov eax, 0xfffffff5
pop edi
pop esi
mov ecx, dword [esp + 0x19c4]
xor ecx, esp
call fcn.0041418c
mov esp, ebp
pop ebp
ret
cmp dword [ebp + 8], 9
movzx eax, byte [esp + 0x14]
mov byte [0x59c060], al
movzx eax, byte [esp + 0x10]
mov byte [0x59c061], al
movzx eax, byte [esp + 0x24]
mov byte [0x59c062], al
movzx eax, byte [esp + 0x28]
mov byte [0x59c063], al
movzx eax, byte [esp + 0x18]
mov byte [0x59c064], al
movzx eax, byte [esp + 0x1c]
mov byte [0x59c065], al
mov dword [0x92595c], 0
jle 0x40d1f5
mov ecx, dword [edi + 0x24]
mov edx, 0x9154d0
nop word [eax + eax]
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx], ax
lea edx, [edx + 2]
test ax, ax
jne 0x40d1d0
mov ecx, 0x9154d0
call fcn.004014f0
mov dword [0x92595c], 3
lea eax, [esp + 0x2c]
mov dword [esp + 0x20], 1
push eax
lea eax, [esp + 0x24]
mov dword [esp + 0x30], 0
push eax
lea eax, [esp + 0xf8]
push eax
call fcn.0040da60
add esp, 0xc
test eax, eax
mov al, byte [esp + 0xe]
je 0x40d259
test al, al
je 0x40d259
mov eax, dword [sym.imp.USER32.dll_MessageBoxW]
push 0
push 0x43b47c
push str.License_Key_not_found
push 0
call eax
mov eax, 0xfffffff6
pop edi
pop esi
mov ecx, dword [esp + 0x19c4]
xor ecx, esp
call fcn.0041418c
mov esp, ebp
pop ebp
ret
mov esi, dword [esp + 0x20]
mov dword [esp + 0x30], 0xbe82
mov dword [esp + 0x18], esi
mov dword [esp + 0x10], 0
test al, al
je 0x40d5af
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x38]
push eax
lea eax, [esp + 0xf8]
push eax
call fcn.0040db50
add esp, 0xc
test eax, eax
jne 0x40d64b
mov eax, 0x14f8b589
mov ecx, esi
imul esi
sar edx, 0xd
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x186a0
sub ecx, eax
lea eax, [esp + 0x60]
push ecx
push str._05d
push eax
mov dword [esp + 0x28], ecx
call fcn.00401250
add esp, 0xc
lea eax, [esp + 0x38]
push eax
lea eax, [esp + 0x64]
push eax
lea eax, [esp + 0x48]
push eax
lea eax, [esp + 0x1ec]
push eax
lea eax, [esp + 0x4f8]
push eax
push str._s_s_s_hs._s
lea eax, [esp + 0x708]
push 0x104
push eax
call fcn.00401170
lea eax, [esp + 0x710]
mov byte [esp + 0x2f], 1
push 0
push eax
mov byte [esp + 0x36], 0
call fcn.00417637
add esp, 0x28
test eax, eax
je 0x40d3e7
mov eax, 0x68db8bad
mov ecx, esi
imul esi
sar edx, 0xc
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x2710
sub ecx, eax
lea eax, [esp + 0x60]
push ecx
push str._04d
push eax
call fcn.00401250
add esp, 0xc
lea eax, [esp + 0x38]
push eax
lea eax, [esp + 0x64]
push eax
lea eax, [esp + 0xb8]
push eax
lea eax, [esp + 0x1ec]
push eax
lea eax, [esp + 0x4f8]
push eax
push str._s_s_s_hs._s
lea eax, [esp + 0x708]
push 0x104
push eax
call fcn.00401170
lea eax, [esp + 0x710]
mov byte [esp + 0x2f], 0
push 0
push eax
call fcn.00417637
add esp, 0x28
test eax, eax
je 0x40d3e7
lea eax, [esp + 0x38]
push eax
lea eax, [esp + 0x64]
push eax
lea eax, [esp + 0x48]
push eax
lea eax, [esp + 0x1ec]
push eax
lea eax, [esp + 0x4f8]
push eax
push str._s_s_sD_hs._s
lea eax, [esp + 0x708]
push 0x104
push eax
call fcn.00401170
add esp, 0x20
mov byte [esp + 0xe], 1
lea eax, [esp + 0x6f0]
xor esi, esi
push 0x43bfd0
push eax
call fcn.00417808
mov edi, eax
add esp, 8
test edi, edi
je 0x40d659
push edi
call fcn.0041d9f2
add esp, 4
test eax, eax
jne 0x40d433
push edi
call fcn.0041cbf2
add esp, 4
mov byte [esp + esi + 0x1000], al
inc esi
push edi
call fcn.0041d9f2
add esp, 4
test eax, eax
je 0x40d415
push edi
call fcn.00418185
lea eax, [esi - 0x98e]
add esp, 4
cmp eax, 8
ja 0x40d548
cmp byte [esp + 0xe], 0
movzx edi, byte [esp + 0x115c]
je 0x40d4af
movsx ecx, byte [esp + 0x61]
movsx esi, byte [esp + 0x62]
movsx edx, byte [esp + 0x63]
sub edi, edx
lea eax, [ecx + ecx*2]
sub edi, esi
movzx eax, byte [esp + eax*2 + 0x1252]
mov dword [esp + 0x10], eax
lea eax, [ecx + ecx]
sub dword [esp + 0x10], eax
movsx eax, byte [esp + 0x60]
movzx ecx, byte [esp + 0x10b6]
sub ecx, eax
lea eax, [edx + edx*2]
sub ecx, esi
mov dword [esp + 0x14], ecx
lea ecx, [esp + 0x14e2]
sub ecx, eax
movzx ecx, byte [ecx]
sub ecx, esi
mov esi, dword [esp + 0x10]
jmp 0x40d4f7
movsx edx, byte [esp + 0x61]
movsx eax, byte [esp + 0x62]
movsx ecx, byte [esp + 0x63]
sub edi, eax
sub edi, edx
lea eax, [edx + edx*2]
movzx esi, byte [esp + eax*2 + 0x1252]
movsx eax, byte [esp + 0x60]
add eax, eax
sub esi, eax
movzx eax, byte [esp + 0x10b6]
sub eax, edx
sub eax, ecx
mov dword [esp + 0x14], eax
lea eax, [ecx + ecx*2]
lea ecx, [esp + 0x14e2]
sub ecx, eax
movzx ecx, byte [ecx]
sub ecx, edx
cmp byte [esp + 0xf], 0
lea eax, [edi + edi*4]
lea eax, [ecx + eax*2]
mov ecx, dword [esp + 0x14]
lea eax, [eax + eax*4]
lea eax, [esi + eax*2]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*2]
je 0x40d588
movsx eax, byte [esp + 0x61]
lea ecx, [esi + esi*4]
add ecx, ecx
sub ecx, eax
movsx eax, byte [esp + 0x62]
sub ecx, eax
movzx eax, byte [esp + 0x10a2]
add eax, 0xfff7bd70
add eax, ecx
cmp eax, dword [esp + 0x1c]
jne 0x40d652
mov dword [esp + 0x10], 1
lea eax, [esp + 0xf0]
push eax
call fcn.0040dad0
add esp, 4
cmp dword [esp + 0x10], 1
jne 0x40d572
lea edx, [esp + 0x8f8]
lea ecx, [esp + 0x3e8]
call fcn.00409a60
xor eax, eax
pop edi
pop esi
mov ecx, dword [esp + 0x19c4]
xor ecx, esp
call fcn.0041418c
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x18]
mov eax, 0x68db8bad
imul ecx
sar edx, 0xc
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x2710
sub ecx, eax
lea eax, [esi - 0xd370]
cmp eax, ecx
jmp 0x40d53a
lea edx, [esp + 0x9f8]
lea ecx, [esp + 0xbf8]
call fcn.00401a20
xor ecx, ecx
test eax, eax
cmovs ecx, eax
mov eax, ecx
pop edi
pop esi
mov ecx, dword [esp + 0x19c4]
xor ecx, esp
call fcn.0041418c
mov esp, ebp
pop ebp
ret
mov eax, dword [sym.imp.USER32.dll_MessageBoxW]
push 0
push 0x43b47c
push str.Error._Select_TAP_or_Mirror_Port
push 0
mov dword [0x92597c], 0xffffffff
call eax
mov eax, 0xfffffff6
pop edi
pop esi
mov ecx, dword [esp + 0x19c4]
xor ecx, esp
call fcn.0041418c
mov esp, ebp
pop ebp
ret
lea eax, [esp + 0x110]
push eax
lea eax, [esp + 0x17c]
push eax
push str.Vers._4.0._s__s
call fcn.004011e0
mov ecx, dword [esp + 0x19d8]
add esp, 0xc
or eax, 0xffffffff
pop edi
pop esi
xor ecx, esp
call fcn.0041418c
mov esp, ebp
pop ebp
ret
push 0xffffffffffffffff
call fcn.00417621
push 0xfffffffffffffffb
call fcn.00417621
mov eax, dword [sym.imp.USER32.dll_MessageBoxW]
push 0
push 0x43b47c
push str.Install_license_file
push 0
call eax
push 0xfffffffffffffffa
call fcn.00417621
nop dword [eax]
push ss
into
inc eax
add dl, bh
int 0x40
add dl, ch
int 0x40
add byte [esi], al
into
inc eax
add byte [edx], ah
into
inc eax
add bh, bl
aad 0x40
add byte [eax], al
add dword [edx], eax
add eax, 50332418
add eax, 84215045
add byte [esp + eax], al
add al, 4
add eax, 84215045
add eax, 84215045
add eax, 84149509
add dword [84215045], eax
add eax, 84215045
add eax, 84215045
add esp, ecx
int3