Function at 0x414699
Capabilities:
Check if file exists
Get file attributes

Disassembly:
sub esp, 0x264
push ebx
push esi
xor ebx, ebx
mov esi, ecx
mov dword [esp + 8], ebx
call fcn.0041ab7b
cmp word [esi + 0x3454], bx
je 0x414bad
test byte [esi + 0x3c4c], 0x10
push ebp
push edi
mov edi, 0x454178
je 0x4147aa
push ebx
push 0x20000
mov ecx, esi
call fcn.0041a375
mov ecx, esi
call fcn.004263c8
mov ebp, 0x45174c
mov ecx, ebp
call fcn.00402b27
cmp word [0x45200e], bx
je 0x41472b
push ebx
push 0x20096
mov ecx, esi
call fcn.0041a375
push str.Initialising_printing_service_for_new_port
push dword [esi + 0x58]
call fcn.0041e63d
pop ecx
pop ecx
mov ecx, esi
call fcn.00413b3b
test ax, ax
je 0x41472b
mov ecx, esi
call fcn.0041460a
mov dword [esp + 0x10], eax
push ebx
mov ecx, esi
call fcn.00414017
mov ecx, edi
call fcn.0040df4b
mov eax, dword [0x4545a4]
mov ecx, ebp
mov byte [eax], bl
push dword [0x4545a4]
push 0x4541d4
push dword [esi + 0x58]
push esi
push 0x452e8a
call fcn.00401a1b
movzx eax, ax
cmp eax, ebx
jne 0x414786
mov ecx, esi
call fcn.00426376
movzx eax, ax
cmp eax, ebx
jne 0x414786
push dword [0x4545a4]
mov ecx, esi
push ebx
call fcn.00414ec3
movzx eax, ax
cmp eax, ebx
je 0x4147aa
mov ecx, dword [0x4545a4]
cmp byte [ecx], bl
je 0x414792
xor eax, eax
lea ecx, [esp + 0x14]
push ecx
push eax
mov ecx, edi
call fcn.0040bc1a
mov ecx, esi
call fcn.0041460a
or dword [esp + 0x10], eax
test byte [esi + 0x3c4c], 1
je 0x41480d
push ebx
push 0x20096
mov ecx, esi
call fcn.0041a375
push str.Initialising_printing_service
push dword [esi + 0x58]
call fcn.0041e63d
pop ecx
pop ecx
push dword [0x4545a4]
mov ecx, 0x453670
push 0x454194
call fcn.004272d3
test ax, ax
mov ecx, esi
je 0x4147f6
call fcn.0041460a
or dword [esp + 0x10], eax
jmp 0x41480d
call fcn.00413b3b
test ax, ax
je 0x414804
mov ecx, esi
jmp 0x4147eb
mov word [0x45200e], 1
cmp word [esi + 0x876], bx
jne 0x414b00
test byte [esi + 0x3c4c], 2
mov ebp, dword [sym.imp.KERNEL32.dll_ResetEvent]
je 0x4148d2
push ebx
push 0x20097
mov ecx, esi
call fcn.0041a375
push 0x4550f2
push str.Initialising_TWAIN_scanning_service_for___s_
push dword [esi + 0x58]
call fcn.0041e63d
mov ecx, dword [esi + 0x3c8c]
add esp, 0xc
add ecx, 0x360
push dword [0x4545a4]
push 0x4541d4
push dword [esi + 0x58]
call fcn.004265f0
test ax, ax
je 0x414880
mov ecx, esi
call fcn.0041460a
or dword [esp + 0x10], eax
jmp 0x4148d2
push dword [0x454fb0]
call ebp
push dword [esi + 0x58]
mov ecx, edi
push ebx
push 0x800f
call fcn.0040e36a
push 0xffffffffffffffff
push dword [0x454fb0]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp word [0x454fb4], bx
jne 0x414873
mov ax, word [0x452014]
mov ecx, esi
neg ax
sbb eax, eax
mov word [0x452010], 1
not eax
and eax, 0x4550f2
push eax
call fcn.00414017
cmp word [esi + 0x876], bx
jne 0x414b00
test byte [esi + 0x3c4c], 4
je 0x414998
push ebx
push 0x20098
mov ecx, esi
call fcn.0041a375
push 0x4550fc
push str.Initialising_LSD_setup_service_for___s_
push dword [esi + 0x58]
call fcn.0041e63d
add esp, 0xc
mov ecx, 0x451ee0
push dword [0x4545a4]
push 0x4541d4
push dword [esi + 0x58]
call fcn.0041eaf2
test ax, ax
jne 0x41495f
push dword [0x454fb0]
call ebp
push dword [esi + 0x58]
mov ecx, edi
push ebx
push 0x8010
call fcn.0040e36a
push 0xffffffffffffffff
push dword [0x454fb0]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp word [0x454fb4], bx
je 0x41496c
jmp 0x414873
mov ecx, esi
call fcn.0041460a
or dword [esp + 0x10], eax
jmp 0x414998
cmp word [0x452014], bx
mov word [0x452012], 1
jne 0x41498e
cmp word [0x452010], bx
jne 0x41498e
mov eax, 0x4550fc
jmp 0x414990
xor eax, eax
push eax
mov ecx, esi
call fcn.00414017
cmp word [esi + 0x876], bx
jne 0x414b00
test byte [esi + 0x3c4c], 8
je 0x414b00
push 0x45202c
push str.New_System_path_____s_
push dword [esi + 0x58]
call fcn.0041e63d
add esp, 0xc
push 0x452288
push str.New_Private_path____s_
push dword [esi + 0x58]
call fcn.0041e63d
add esp, 0xc
push 0x4524e4
push str.New_Fax_path________s_
push dword [esi + 0x58]
call fcn.0041e63d
add esp, 0xc
mov ebp, 0x452740
push ebp
push str.New_Comm_path_______s_
push dword [esi + 0x58]
call fcn.0041e63d
add esp, 0xc
mov ecx, esi
push ebx
push 0x20001
call fcn.0041a375
lea eax, [esp + 0x18]
push eax
push ebp
push str.____UNIM._SH
call fcn.00407697
add esp, 0xc
lea eax, [esp + 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x414a53
push 3
mov ecx, 0x454168
call fcn.004208a3
mov ecx, esi
call fcn.0041460a
or dword [esp + 0x10], eax
jmp 0x414b00
mov eax, dword [0x4545a4]
mov ecx, esi
mov byte [eax], bl
call fcn.00426376
movzx ebp, ax
cmp ebp, ebx
je 0x414a79
push str.Failed_to_open_port
push dword [esi + 0x58]
call fcn.0041e63d
pop ecx
pop ecx
jmp 0x414ad3
push dword [0x4545a4]
mov ecx, esi
push ebx
call fcn.00414ec3
movzx eax, ax
cmp eax, ebx
je 0x414aa2
mov ecx, dword [0x4545a4]
cmp byte [ecx], bl
je 0x414a9a
xor eax, eax
lea ecx, [esp + 0x14]
push ecx
push eax
jmp 0x414ad9
push ebx
mov ecx, 0x4536c0
mov word [0x452014], 1
call fcn.004232a2
mov ecx, esi
call fcn.00413b9a
cmp eax, ebx
jne 0x414a8e
push 0x4550e8
mov ecx, esi
call fcn.00413c3f
mov ebp, eax
cmp ebp, ebx
je 0x414af4
lea eax, [esp + 0x14]
push eax
push ebp
mov ecx, edi
call fcn.0040bc1a
mov ecx, esi
call fcn.0041460a
or dword [esp + 0x10], eax
mov word [0x452014], bx
jmp 0x414b00
push 0x4550e8
mov ecx, esi
call fcn.00414017
test byte [esi + 0x3c4c], 0x20
je 0x414b47
push str.Logged_off_by_Scheduler
push dword [esi + 0x58]
call fcn.0041e63d
cmp word [0x452010], bx
pop ecx
pop ecx
mov word [0x452014], bx
je 0x414b2f
mov eax, 0x4550f2
jmp 0x414b3f
mov ax, word [0x452012]
neg ax
sbb eax, eax
and eax, 0x4550fc
push eax
mov ecx, esi
call fcn.00414017
mov ecx, edi
call fcn.0040df4b
push 0xffffffffffffffff
mov ecx, esi
call fcn.0041a47a
cmp word [esp + 0x10], bx
pop edi
pop ebp
je 0x414b71
push str.Re_initialisation_completed_with_error_s_
push dword [esi + 0x58]
call fcn.0041e63d
pop ecx
pop ecx
jmp 0x414bad
cmp word [esi + 0x876], bx
je 0x414b91
push str.Re_initialisation_interrupted
push dword [esi + 0x58]
call fcn.0041e63d
pop ecx
pop ecx
push ebx
push 0x2009a
jmp 0x414ba6
push str.Re_initialisation_completed_successfully
push dword [esi + 0x58]
call fcn.0041e63d
pop ecx
pop ecx
push ebx
push 0x2004d
mov ecx, esi
call fcn.0041a375
pop esi
pop ebx
add esp, 0x264
ret