Function at 0x4011a0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x41dba8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x60
push esi
lea eax, [esp + 0xc]
push edi
push eax
mov dword [esp + 0x3c], str.January
mov dword [esp + 0x40], str.February
mov dword [esp + 0x44], str.March
mov dword [esp + 0x48], str.April
mov dword [esp + 0x4c], 0x4234b4
mov dword [esp + 0x50], str.June
mov dword [esp + 0x54], str.July
mov dword [esp + 0x58], str.August
mov dword [esp + 0x5c], str.September
mov dword [esp + 0x60], str.October
mov dword [esp + 0x64], str.November
mov dword [esp + 0x68], str.December
call fcn.00415e72
mov ecx, dword [0x423680]
mov dword [esp + 8], ecx
push 0
lea ecx, [esp + 0x14]
mov dword [esp + 0x74], 0
call fcn.00415e85
mov esi, dword [eax + 0x14]
push 0
lea ecx, [esp + 0x14]
add esi, 0x76c
call fcn.00415e85
mov edi, dword [eax + 0x10]
push 0
lea ecx, [esp + 0x14]
inc edi
call fcn.00415e85
mov edx, dword [esp + edi*4 + 0x34]
mov eax, dword [eax + 0xc]
push esi
push edx
push eax
lea eax, [esp + 0x14]
push str._r_nSystem_Date:__d__s__d_r_n
push eax
call fcn.00415e5f
mov edi, dword [esp + 0x8c]
add esp, 0x14
lea ecx, [esp + 8]
push ecx
mov ecx, edi
call fcn.00417b33
mov eax, dword [0x426f64]
test eax, eax
jne 0x4012c4
push 0x404
push 0x426b60
call fcn.00407940
push 0x426b60
call fcn.004079a0
test ax, ax
je 0x4012c4
push str._r_nERROR:_r_n_r_nFailed_to_initialise_Sentinel_hardware_key_drivers_r_nCheck_that_drivers_have_been_correctly_installed
jmp 0x40164b
push 0
lea ecx, [esp + 0x14]
call fcn.00415e85
mov eax, dword [eax + 0x14]
add eax, 0x76c
cmp eax, 0x7d3
jl 0x40130c
push 0
lea ecx, [esp + 0x14]
call fcn.00415e85
mov eax, dword [eax + 0x10]
inc eax
cmp eax, 3
jge 0x401318
push 0
lea ecx, [esp + 0x14]
call fcn.00415e85
mov eax, dword [eax + 0x14]
add eax, 0x76c
cmp eax, 0x7d3
jne 0x401318
push str._r_n_ERROR:_Computer_has_invalid_date__r_n
mov ecx, edi
call fcn.00417b0c
push 0xea6e
push 0x426b60
call fcn.00407b80
test ax, ax
je 0x401375
mov eax, dword [0x426f64]
inc eax
cmp eax, 3
mov dword [0x426f64], eax
jg 0x40136b
push edi
call fcn.004011a0
add esp, 4
lea ecx, [esp + 8]
mov esi, eax
mov dword [esp + 0x70], 0xffffffff
call fcn.004179f1
mov eax, esi
pop edi
pop esi
mov ecx, dword [esp + 0x60]
mov dword fs:[0], ecx
add esp, 0x6c
ret
push str._r_nERROR:_r_n_r_nFailed_to_find_Delcam_hardware_key
jmp 0x40164b
lea edx, [esp + 0x14]
push edx
push 0
push 0x426b60
call fcn.00407d50
test ax, ax
jne 0x401646
mov esi, dword [esp + 0x14]
push str._r_nChecking_key_..._r_n
mov ecx, edi
and esi, 0xffff
call fcn.00417b0c
lea eax, [esp + 0x20]
push 4
lea ecx, [esp + 0x20]
push eax
lea edx, [esp + 0x20]
push ecx
push edx
push 8
push 0x426b60
mov dword [esp + 0x30], 0x6c6405ec
call fcn.00408140
test ax, ax
je 0x4013e0
push str._r_n__ERROR:_r_n_r_n__Failed_to_find_to_read_value_from_Delcam_hardware_key
mov ecx, edi
call fcn.00417b0c
jmp 0x401652
mov eax, dword [0x423680]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x1c]
mov byte [esp + 0x70], 1
cmp eax, 0x18074793
je 0x40143a
push str.___r_nERROR:_r_n_r_n__Invalid_value_returned_from_Delcam_hardware_key_r_n
mov ecx, edi
call fcn.00417b0c
push str._r_n__WARNING__r_n
mov ecx, edi
call fcn.00417b0c
push str._r_n___This_key_is_NOT_COMPATIBLE_with_ArtCAM_5.5
mov ecx, edi
call fcn.00417b0c
push str._r_n___please_contact_your_supplier_for_an_update_r_n_r_n
mov ecx, edi
call fcn.00417b0c
push str._r_n__r_n
mov ecx, edi
call fcn.00417b0c
jmp 0x4014d0
push str._r_nKey_is_compatible_with_Codes__ArtCAM_5.5_and_prior__r_n
mov ecx, edi
call fcn.00417b0c
push esi
lea ecx, [esp + 0x10]
push str._r_n____Identifier_for_codes____05d__r_n
push ecx
call fcn.00415e5f
add esp, 0xc
lea edx, [esp + 0xc]
mov ecx, edi
push edx
call fcn.00417b33
xor esi, esi
lea eax, [esp + 0x14]
lea ecx, [esi + 0x38]
push eax
push ecx
push 0x426b60
call fcn.00407d50
mov eax, dword [esp + 0x14]
and eax, 0xffff
jg 0x401487
xor eax, eax
mov edx, dword [0x423680]
mov dword [esp + 0x78], edx
inc esi
push eax
push esi
lea eax, [esp + 0x80]
push str._______Counter__d:__d_r_n
push eax
mov byte [esp + 0x80], 2
call fcn.00415e5f
add esp, 0x10
lea ecx, [esp + 0x78]
push ecx
mov ecx, edi
call fcn.00417b33
lea ecx, [esp + 0x78]
mov byte [esp + 0x70], 1
call fcn.004179f1
cmp esi, 8
jl 0x401467
push 0x426b60
call fcn.00401680
add esp, 4
test eax, eax
je 0x4015e1
push str._r_nKey_is_compatible_with_Pafs__ArtCAM_6.0_onwards___r_n
mov ecx, edi
call fcn.00417b0c
lea edx, [esp + 0x24]
push edx
push 0x10
push 0x426b60
call fcn.00407d50
test ax, ax
je 0x40151a
lea ecx, [esp + 0xc]
mov byte [esp + 0x70], 0
call fcn.004179f1
jmp 0x401652
lea eax, [esp + 0x26]
push eax
push 0x11
push 0x426b60
call fcn.00407d50
test ax, ax
je 0x401543
lea ecx, [esp + 0xc]
mov byte [esp + 0x70], 0
call fcn.004179f1
jmp 0x401652
lea ecx, [esp + 0x28]
push ecx
push 0x12
push 0x426b60
call fcn.00407d50
test ax, ax
je 0x40156c
lea ecx, [esp + 0xc]
mov byte [esp + 0x70], 0
call fcn.004179f1
jmp 0x401652
lea edx, [esp + 0x2a]
push edx
push 0x13
push 0x426b60
call fcn.00407d50
test ax, ax
je 0x401595
lea ecx, [esp + 0xc]
mov byte [esp + 0x70], 0
call fcn.004179f1
jmp 0x401652
xor eax, eax
mov dx, word [esp + eax + 0x24]
mov cl, byte [esp + eax + 0x24]
not edx
not cl
sar edx, 8
mov byte [esp + eax + 0x2c], cl
mov byte [esp + eax + 0x2d], dl
add eax, 2
cmp eax, 8
jl 0x401597
lea eax, [esp + 0x2c]
lea ecx, [esp + 0xc]
push eax
push str._r_n____Identifier_for_Pafs____s__r_n
push ecx
mov byte [esp + 0x40], 0
call fcn.00415e5f
add esp, 0xc
lea edx, [esp + 0xc]
mov ecx, edi
push edx
call fcn.00417b33
jmp 0x401611
push str._r_n__WARNING__r_n
mov ecx, edi
call fcn.00417b0c
push str._r_n___This_key_is_NOT_COMPATIBLE_with_Pafs__ArtCAM_6.0__
mov ecx, edi
call fcn.00417b0c
push str._r_n___please_contact_your_supplier_for_an_update_r_n_r_n
mov ecx, edi
call fcn.00417b0c
push str._r_n__r_n
mov ecx, edi
call fcn.00417b0c
lea ecx, [esp + 0xc]
mov byte [esp + 0x70], 0
call fcn.004179f1
lea ecx, [esp + 8]
mov dword [esp + 0x70], 0xffffffff
call fcn.004179f1
pop edi
mov eax, 1
pop esi
mov ecx, dword [esp + 0x60]
mov dword fs:[0], ecx
add esp, 0x6c
ret
push str._r_nERROR:_r_n_r_nFailed_to_read_dongle_id
mov ecx, edi
call fcn.00417a48
lea ecx, [esp + 8]
mov dword [esp + 0x70], 0xffffffff
call fcn.004179f1
mov ecx, dword [esp + 0x68]
pop edi
xor eax, eax
pop esi
mov dword fs:[0], ecx
add esp, 0x6c
ret