Function at 0x40bf20
Capabilities:
Accept command line arguments
Get common file path
Set current directory

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x43cda0
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x13c0
call fcn.00413f80
mov eax, dword [0x448684]
xor eax, ebp
mov dword [ebp - 0x14], 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]
mov dword [ebp - 0x1338], eax
push 1
lea ecx, [ebp - 0x13d0]
call fcn.0040a090
xor ebx, ebx
mov dword [ebp - 4], ebx
mov edi, 0xf
mov dword [ebp - 0x11a8], edi
mov dword [ebp - 0x11ac], ebx
mov byte [ebp - 0x11bc], bl
mov byte [ebp - 4], 1
mov dword [ebp - 0x118c], edi
mov dword [ebp - 0x1190], ebx
mov byte [ebp - 0x11a0], bl
mov byte [ebp - 4], 2
mov dword [ebp - 0x1340], ebx
mov dword [ebp - 0x1344], ebx
mov dword [ebp - 0x1154], edi
mov dword [ebp - 0x1158], ebx
mov byte [ebp - 0x1168], bl
mov byte [ebp - 4], 3
mov dword [ebp - 0x1170], edi
mov dword [ebp - 0x1174], ebx
mov byte [ebp - 0x1184], bl
mov byte [ebp - 4], 4
mov dword [ebp - 0x11c4], edi
mov dword [ebp - 0x11c8], ebx
mov byte [ebp - 0x11d8], bl
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x12f8]
call fcn.0040d8c0
mov byte [ebp - 4], 6
mov dword [ebp - 0x133c], ebx
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
mov esi, eax
mov dword [ebp - 0x1138], edi
mov dword [ebp - 0x113c], ebx
mov byte [ebp - 0x114c], bl
mov ecx, esi
lea edi, [ecx + 1]
mov al, byte [ecx]
inc ecx
cmp al, bl
jne 0x40c024
sub ecx, edi
push ecx
push esi
lea ecx, [ebp - 0x1150]
call fcn.004055e0
mov byte [ebp - 4], 7
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x1134]
push ecx
call fcn.00408450
mov byte [ebp - 4], 9
push eax
lea ecx, [ebp - 0x116c]
call fcn.004068a0
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x1134]
call fcn.00404540
push str.lictool.txt
lea edx, [ebp - 0x116c]
push edx
lea eax, [ebp - 0x1134]
push eax
call fcn.00408090
add esp, 0xc
mov byte [ebp - 4], 0xa
mov esi, 0x10
cmp dword [eax + 0x18], esi
jb 0x40c09b
mov eax, dword [eax + 4]
jmp 0x40c09e
add eax, 4
push 0x40
push 2
push eax
lea ecx, [ebp - 0x13d0]
call fcn.00409640
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x1134]
call fcn.00404540
cmp dword [ebp - 0x1138], esi
mov eax, dword [ebp - 0x114c]
jae 0x40c0d1
lea eax, [ebp - 0x114c]
push eax
push 0x43e954
lea ecx, [ebp - 0x1150]
push ecx
lea edx, [ebp - 0x13d0]
push edx
call fcn.0040a630
add esp, 8
push eax
call fcn.0040a440
add esp, 8
push eax
call fcn.0040a440
add esp, 8
mov esi, eax
push 0xa
mov ecx, esi
call fcn.0040aaf0
mov ecx, esi
call fcn.004095f0
call fcn.00401a20
test eax, eax
jne 0x40c1eb
mov byte [ebp - 0x1118], bl
push 0x3ff
push ebx
lea eax, [ebp - 0x1117]
push eax
call fcn.00412950
add esp, 0xc
push 0x400
lea ecx, [ebp - 0x1118]
push ecx
push 2
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.USER32.dll_LoadStringA]
push ebx
push 0x43e958
lea edx, [ebp - 0x1118]
push edx
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x1150]
call fcn.00404540
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x12f8]
call fcn.0040d6d0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x11dc]
call fcn.00404540
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x1188]
call fcn.00404540
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x116c]
call fcn.00404540
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x11a4]
call fcn.00404540
mov byte [ebp - 4], bl
lea ecx, [ebp - 0x11c0]
call fcn.00404540
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x13d0]
call fcn.004095d0
or eax, 0xffffffff
jmp 0x40ccc9
push str.Got_mutex.
lea eax, [ebp - 0x13d0]
push eax
call fcn.0040a440
add esp, 8
mov esi, eax
push 0xa
mov ecx, esi
call fcn.0040aaf0
mov ecx, esi
call fcn.004095f0
lea ecx, [ebp - 0x1344]
push ecx
lea edx, [ebp - 0x1340]
push edx
lea eax, [ebp - 0x11a4]
push eax
lea ecx, [ebp - 0x11c0]
push ecx
lea edx, [ebp - 0x13d0]
push edx
call fcn.0040b240
mov dword [ebp - 0x1348], eax
push ebx
lea ecx, [ebp - 0x12c0]
call fcn.0040be90
mov byte [ebp - 4], 0xb
lea eax, [ebp - 0x12c0]
push eax
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x1334], esp
lea edx, [ebp - 0x116c]
push edx
call fcn.00405820
mov byte [ebp - 4], 0xc
lea eax, [ebp - 0x1134]
push eax
mov byte [ebp - 4], 0xb
call fcn.0040eb30
lea ecx, [ebp - 0x1134]
call fcn.00404540
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x1334], esp
push str.lickey
call fcn.00406860
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x11f8]
push ecx
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x12c0]
call fcn.0040adc0
mov byte [ebp - 4], 0xe
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x1334], esp
push 0x43eae0
call fcn.00406860
mov byte [ebp - 4], 0xf
lea edx, [ebp - 0x1214]
push edx
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x12c0]
call fcn.0040adc0
mov byte [ebp - 4], 0x10
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x1334], esp
push str.lang
call fcn.00406860
mov byte [ebp - 4], 0x11
lea eax, [ebp - 0x1268]
push eax
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x12c0]
call fcn.0040adc0
mov byte [ebp - 4], 0x12
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x1334], esp
push str.version
call fcn.00406860
mov byte [ebp - 4], 0x13
lea ecx, [ebp - 0x1230]
push ecx
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0x12c0]
call fcn.0040adc0
mov byte [ebp - 4], 0x14
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x1334], esp
push 0x43eacc
call fcn.00406860
mov byte [ebp - 4], 0x15
mov byte [ebp - 4], 0x14
lea ecx, [ebp - 0x12c0]
call fcn.0040aed0
mov edi, eax
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x1334], esp
push 0x43eac8
call fcn.00406860
mov byte [ebp - 4], 0x16
mov byte [ebp - 4], 0x14
lea ecx, [ebp - 0x12c0]
call fcn.0040aed0
mov dword [ebp - 0x1334], eax
lea edx, [ebp - 0x11f8]
push edx
push 0x43eac0
lea eax, [ebp - 0x13d0]
push eax
call fcn.0040a440
add esp, 8
push eax
call fcn.0040a630
add esp, 8
mov esi, eax
push 0xa
mov ecx, esi
call fcn.0040aaf0
mov ecx, esi
call fcn.004095f0
lea ecx, [ebp - 0x1214]
push ecx
push str.url
lea edx, [ebp - 0x13d0]
push edx
call fcn.0040a440
add esp, 8
push eax
call fcn.0040a630
add esp, 8
mov esi, eax
push 0xa
mov ecx, esi
call fcn.0040aaf0
mov ecx, esi
call fcn.004095f0
lea eax, [ebp - 0x1268]
push eax
push 0x43eab0
lea ecx, [ebp - 0x13d0]
push ecx
call fcn.0040a440
add esp, 8
push eax
call fcn.0040a630
add esp, 8
mov esi, eax
push 0xa
mov ecx, esi
call fcn.0040aaf0
mov ecx, esi
call fcn.004095f0
lea edx, [ebp - 0x1230]
push edx
push 0x43eaa4
lea eax, [ebp - 0x13d0]
push eax
call fcn.0040a440
add esp, 8
push eax
call fcn.0040a630
add esp, 8
mov esi, eax
push 0xa
mov ecx, esi
call fcn.0040aaf0
mov ecx, esi
call fcn.004095f0
push edi
push str.oem
lea ecx, [ebp - 0x13d0]
push ecx
call fcn.0040a440
add esp, 8
mov ecx, eax
call fcn.0040a830
mov esi, eax
push 0xa
mov ecx, esi
call fcn.0040aaf0
mov ecx, esi
call fcn.004095f0
mov edx, dword [ebp - 0x1334]
push edx
push str.prod
lea eax, [ebp - 0x13d0]
push eax
call fcn.0040a440
add esp, 8
mov ecx, eax
call fcn.0040a830
mov esi, eax
push 0xa
mov ecx, esi
call fcn.0040aaf0
mov ecx, esi
call fcn.004095f0
cmp dword [ebp - 0x1348], ebx
je 0x40c683
lea ecx, [ebp - 0x1230]
push ecx
lea edx, [ebp - 0x11a4]
push edx
call fcn.00404330
add esp, 8
test al, al
je 0x40c683
cmp dword [ebp - 0x1340], edi
jne 0x40c683
mov eax, dword [ebp - 0x1334]
cmp dword [ebp - 0x1344], eax
jne 0x40c683
lea ecx, [ebp - 0x11c0]
push ecx
lea ecx, [ebp - 0x1134]
call fcn.00405820
mov byte [ebp - 4], 0x17
lea edx, [ebp - 0x11a4]
push edx
call fcn.004038c0
lea ecx, [ebp - 0x1134]
test eax, eax
je 0x40c565
push str.zlclient.exe__lickeyverbose
jmp 0x40c56a
push str.zlclient.exe__lickey
call fcn.00406910
push 0xffffffffffffffff
push ebx
lea eax, [ebp - 0x11f8]
push eax
lea ecx, [ebp - 0x1134]
call fcn.004054d0
push ebx
lea ecx, [ebp - 0x1134]
push ecx
call fcn.00403950
push ebx
push 0x43e958
push str.Linserimento_del_tuo_codice_licenza
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
call fcn.00401a60
mov byte [ebp - 4], 0x14
lea ecx, [ebp - 0x1134]
call fcn.00404540
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0x1230]
call fcn.00404540
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x1268]
call fcn.00404540
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x1214]
call fcn.00404540
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x11f8]
call fcn.00404540
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x12c0]
call fcn.0040b870
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x1150]
call fcn.00404540
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x12f8]
call fcn.0040d6d0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x11dc]
call fcn.00404540
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x1188]
call fcn.00404540
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x116c]
call fcn.00404540
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x11a4]
call fcn.00404540
mov byte [ebp - 4], bl
lea ecx, [ebp - 0x11c0]
call fcn.00404540
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x13d0]
call fcn.004095d0
xor eax, eax
jmp 0x40ccc9
push str.Downloading
lea ecx, [ebp - 0x1284]
call fcn.00406860
mov byte [ebp - 4], 0x18
or edi, 0xffffffff
push edi
push ebx
lea edx, [ebp - 0x1214]
push edx
lea ecx, [ebp - 0x1284]
call fcn.004054d0
push 0x43e9e0
lea ecx, [ebp - 0x1284]
call fcn.004079d0
lea eax, [ebp - 0x124c]
push eax
call fcn.004085e0
mov byte [ebp - 4], 0x19
lea ecx, [ebp - 0x124c]
push ecx
push str.Download_to
lea edx, [ebp - 0x13d0]
push edx
call fcn.0040a440
add esp, 8
push eax
call fcn.0040a630
add esp, 8
mov esi, eax
push 0xa
mov ecx, esi
call fcn.0040aaf0
mov ecx, esi
call fcn.004095f0
push 0x43e958
push ebx
mov eax, dword [ebp - 0x1338]
push eax
lea ecx, [ebp - 0x12f8]
call fcn.0040d940
test al, al
jne 0x40c855
mov byte [ebp - 0xd18], bl
push 0x3ff
push ebx
lea ecx, [ebp - 0xd17]
push ecx
call fcn.00412950
add esp, 0xc
push 0x400
lea edx, [ebp - 0xd18]
push edx
push 3
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.USER32.dll_LoadStringA]
push ebx
push 0x43e958
lea eax, [ebp - 0xd18]
push eax
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
mov byte [ebp - 4], 0x18
lea ecx, [ebp - 0x124c]
call fcn.00404540
mov byte [ebp - 4], 0x14
lea ecx, [ebp - 0x1284]
call fcn.00404540
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0x1230]
call fcn.00404540
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x1268]
call fcn.00404540
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x1214]
call fcn.00404540
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x11f8]
call fcn.00404540
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x12c0]
call fcn.0040b870
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x1150]
call fcn.00404540
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x12f8]
call fcn.0040d6d0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x11dc]
call fcn.00404540
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x1188]
call fcn.00404540
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x116c]
call fcn.00404540
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x11a4]
call fcn.00404540
mov byte [ebp - 4], bl
lea ecx, [ebp - 0x11c0]
call fcn.00404540
mov dword [ebp - 4], edi
lea ecx, [ebp - 0x13d0]
call fcn.004095d0
mov eax, edi
jmp 0x40ccc9
mov byte [ebp - 0x118], bl
push 0x103
push ebx
lea ecx, [ebp - 0x117]
push ecx
call fcn.00412950
add esp, 0xc
lea edx, [ebp - 0x118]
push edx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
lea eax, [ebp - 0x118]
push eax
lea ecx, [ebp - 0x1188]
call fcn.004068c0
lea ecx, [ebp - 0x1134]
push ecx
call fcn.004078b0
mov byte [ebp - 4], 0x1a
push eax
lea ecx, [ebp - 0x11dc]
call fcn.004068a0
mov byte [ebp - 4], 0x19
lea ecx, [ebp - 0x1134]
call fcn.00404540
lea edx, [ebp - 0x12f8]
push edx
lea ecx, [ebp - 0x1128]
call fcn.0040d6a0
mov byte [ebp - 4], 0x1b
push eax
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x1338], esp
lea eax, [ebp - 0x1214]
push eax
call fcn.00405820
mov byte [ebp - 4], 0x1c
mov byte [ebp - 4], 0x1b
call fcn.0040d740
mov byte [ebp - 4], 0x19
lea ecx, [ebp - 0x1128]
call fcn.0040d350
lea ecx, [ebp - 0x13d0]
push ecx
lea edx, [ebp - 0x124c]
push edx
call fcn.0040baf0
mov esi, eax
lea ecx, [ebp - 0x12f8]
call fcn.0040d230
cmp esi, ebx
je 0x40c76f
lea eax, [ebp - 0x13d0]
push eax
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x1338], esp
lea edx, [ebp - 0x11f8]
push edx
call fcn.00405820
mov byte [ebp - 4], 0x1d
mov byte [ebp - 4], 0x19
call fcn.0040b600
push str.__lickey
lea eax, [ebp - 0x124c]
push eax
lea ecx, [ebp - 0x1134]
push ecx
call fcn.00408090
mov byte [ebp - 4], 0x1e
lea edx, [ebp - 0x11f8]
push edx
push eax
lea eax, [ebp - 0x1314]
push eax
call fcn.00407270
add esp, 0x18
mov byte [ebp - 4], 0x20
lea ecx, [ebp - 0x1134]
call fcn.00404540
push 0x43e9e0
lea ecx, [ebp - 0x1314]
push ecx
push str.command
lea edx, [ebp - 0x13d0]
push edx
call fcn.0040a440
add esp, 8
push eax
call fcn.0040a630
add esp, 8
push eax
call fcn.0040a440
add esp, 8
call fcn.00401a60
push ebx
lea eax, [ebp - 0x1314]
push eax
call fcn.00403950
mov byte [ebp - 4], 0x19
lea ecx, [ebp - 0x1314]
call fcn.00404540
mov byte [ebp - 4], 0x18
lea ecx, [ebp - 0x124c]
call fcn.00404540
mov byte [ebp - 4], 0x14
lea ecx, [ebp - 0x1284]
call fcn.00404540
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0x1230]
call fcn.00404540
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x1268]
call fcn.00404540
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x1214]
call fcn.00404540
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x11f8]
call fcn.00404540
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x12c0]
call fcn.0040b870
mov dword [ebp - 4], 7
jmp 0x40cb51
mov edi, 0x10
cmp dword [ebp - 0x1170], edi
mov eax, dword [ebp - 0x1184]
jae 0x40cb6a
lea eax, [ebp - 0x1184]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
push 0x43e500
lea ecx, [ebp - 0x116c]
push ecx
call fcn.00404ef0
add esp, 8
mov byte [ebp - 4], 6
cmp dword [ebp - 0x1138], edi
jb 0x40cba0
mov edx, dword [ebp - 0x114c]
push edx
call fcn.004127b1
add esp, 4
mov esi, 0xf
mov dword [ebp - 0x1138], esi
mov dword [ebp - 0x113c], ebx
mov byte [ebp - 0x114c], bl
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x12f8]
call fcn.0040d6d0
mov byte [ebp - 4], 4
cmp dword [ebp - 0x11c4], edi
jb 0x40cbe1
mov eax, dword [ebp - 0x11d8]
push eax
call fcn.004127b1
add esp, 4
mov dword [ebp - 0x11c4], esi
mov dword [ebp - 0x11c8], ebx
mov byte [ebp - 0x11d8], bl
mov byte [ebp - 4], 3
cmp dword [ebp - 0x1170], edi
jb 0x40cc0e
mov ecx, dword [ebp - 0x1184]
push ecx
call fcn.004127b1
add esp, 4
mov dword [ebp - 0x1170], esi
mov dword [ebp - 0x1174], ebx
mov byte [ebp - 0x1184], bl
mov byte [ebp - 4], 2
cmp dword [ebp - 0x1154], edi
jb 0x40cc3b
mov edx, dword [ebp - 0x1168]
push edx
call fcn.004127b1
add esp, 4
mov dword [ebp - 0x1154], esi
mov dword [ebp - 0x1158], ebx
mov byte [ebp - 0x1168], bl
mov byte [ebp - 4], 1
cmp dword [ebp - 0x118c], edi
jb 0x40cc68
mov eax, dword [ebp - 0x11a0]
push eax
call fcn.004127b1
add esp, 4
mov dword [ebp - 0x118c], esi
mov dword [ebp - 0x1190], ebx
mov byte [ebp - 0x11a0], bl
mov byte [ebp - 4], bl
cmp dword [ebp - 0x11a8], edi
jb 0x40cc94
mov ecx, dword [ebp - 0x11bc]
push ecx
call fcn.004127b1
add esp, 4
mov dword [ebp - 0x11a8], esi
mov dword [ebp - 0x11ac], ebx
mov byte [ebp - 0x11bc], bl
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x137c]
call fcn.00408790
lea ecx, [ebp - 0x137c]
call fcn.00401c00
mov eax, dword [ebp - 0x133c]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004126c6
mov esp, ebp
pop ebp
ret 0x10