Function at 0x10015701
Capabilities:
Get hostname

Disassembly:
push 0xc
mov eax, 0x100474fc
call fcn.10045150
mov dword [ebp - 0x18], 0x10
call fcn.100048be
push eax
call fcn.10001181
push dword [0x1005e8d4]
push str.FailOnUncertain
mov esi, 0x1005c5a0
push esi
call fcn.10013543
mov dword [0x1005e8d4], eax
push dword [0x1005e8c0]
push str.UseStatusTags
push esi
call fcn.10013543
mov dword [0x1005e8c0], eax
push dword [0x1005c4e4]
push str.RefreshAfterAdd
push esi
call fcn.10013543
mov dword [0x1005c4e4], eax
push dword [0x1005e8c4]
push str.RefreshAfterWrite
push esi
call fcn.10013543
mov dword [0x1005e8c4], eax
push dword [0x1005e8cc]
push str.RefreshBeforeArrayWrite
push esi
call fcn.10013543
add esp, 0x40
mov dword [0x1005e8cc], eax
push dword [0x1005e8c8]
push str.ReadAfterWrite
push esi
call fcn.10013543
mov dword [0x1005e8c8], eax
push dword [0x1005e8d0]
push str.FillCacheOnStartup
push esi
call fcn.10013543
mov dword [0x1005e8d0], eax
push dword [0x1005c4ec]
push str.DigitalQualityUncertainIsBad
push esi
call fcn.10013543
mov dword [0x1005c4ec], eax
push dword [0x1005c4f0]
push str.AddItemAsVtEmpty
push esi
call fcn.10013543
mov dword [0x1005c4f0], eax
push dword [0x1005c4f4]
push str.UseArrays
push esi
call fcn.10013543
mov dword [0x1005c4f4], eax
push dword [0x1005e8d8]
push str.WriteTrueAs1
push esi
call fcn.10013543
add esp, 0x48
mov dword [0x1005e8d8], eax
push dword [0x1005e8dc]
push str.LeaveTagsActive
push esi
call fcn.10013543
mov dword [0x1005e8dc], eax
push dword [0x1005c504]
push str.ShutdownWait
push esi
call fcn.10013543
mov dword [0x1005c504], eax
push dword [0x1005e8e0]
push str.GoOfflineForBadTag
push esi
call fcn.10013543
mov dword [0x1005e8e0], eax
push dword [0x1005c508]
push str.StatusWaitPeriod
push esi
call fcn.10013543
mov dword [0x1005c508], eax
push dword [0x1005c50c]
push str.ItemLifeTime
push esi
call fcn.10013543
mov dword [0x1005c50c], eax
push dword [0x1005c510]
push str.UsePeekMessage
push esi
call fcn.10013543
add esp, 0x48
mov dword [0x1005c510], eax
push dword [0x1005c514]
push str.UseOPC2
push esi
call fcn.10013543
mov dword [0x1005c514], eax
push dword [0x1005e908]
push str.UseAsyncWrites
push esi
call fcn.10013543
mov dword [0x1005e908], eax
push dword [0x1005c4f8]
push str.CacheRead
push esi
call fcn.10013543
mov dword [0x1005c4f8], eax
push dword [0x1005e918]
push str.InhibitActivationOnStandby
push esi
call fcn.10013543
mov dword [0x1005e918], eax
push dword [0x1005c51c]
push str.ValidDataWaitPeriod
push esi
call fcn.10013543
mov dword [0x1005c51c], eax
movsx eax, word [0x1005c520]
push eax
push str.NumConcurrentServerInits
push esi
call fcn.10013543
add esp, 0x48
mov word [0x1005c520], ax
movsx eax, word [0x1005c524]
push eax
push str.WriteLocal
push str.Code
call fcn.10013543
mov word [0x1005c524], ax
push dword [0x1005c52c]
push str.CancelTimeOut
push dword [0x1005c6e4]
call fcn.10013543
add esp, 0x18
mov dword [0x1005c52c], eax
xor edx, edx
div dword [0x1005c530]
mov dword [0x10070780], eax
mov ecx, dword [0x1005c534]
imul ecx, eax
mov dword [0x1007077c], ecx
push 0x20
push str.CitectGroup_
push str.OPCGroupName
push esi
call fcn.10013804
add esp, 0xc
push eax
push 0x1005ed48
call sub.CTRegion.dll_Ordinal_63
add esp, 0xc
mov eax, dword [0x1005c4e4]
xor ebx, ebx
cmp eax, ebx
jl 0x100159bb
cmp eax, 3
jl 0x10015a5a
mov byte [ebp - 0x11], bl
lea eax, [ebp - 0x11]
push eax
push 0x1f
push 1
call fcn.100048be
push eax
call fcn.1000119b
add esp, 0x10
test eax, eax
jne 0x10015a50
cmp byte [ebp - 0x11], 1
jne 0x10015a50
mov dword [ebp - 4], ebx
push 2
push str.Value_for__OPCLX_RefreshAfterAdd_is_out_of_range._Valid_values_are_0_to__d._Defaulting_to_mode_1.
push str.InitDriver__
push 0x151
push str..OPC_INIT.CPP
push str._GLOBAL_
push 0x1f
push 1
call fcn.100048be
push eax
call fcn.100011e2
add esp, 0x24
or dword [ebp - 4], 0xffffffff
jmp 0x10015a50
mov dword [0x1005c4e4], 1
mov eax, dword [0x1005e8c4]
cmp eax, ebx
jl 0x10015a6c
cmp eax, 3
jl 0x10015b0d
mov byte [ebp - 0x11], bl
lea eax, [ebp - 0x11]
push eax
push 0x1f
push 1
call fcn.100048be
push eax
call fcn.1000119b
add esp, 0x10
test eax, eax
jne 0x10015b03
cmp byte [ebp - 0x11], 1
jne 0x10015b03
push 2
pop eax
mov dword [ebp - 4], eax
push eax
push str.Value_for__OPCLX_RefreshAfterWrite_is_out_of_range._Valid_values_are_0_to__d._Defaulting_to_mode_1.
push str.InitDriver__
push 0x159
push str..OPC_INIT.CPP
push str._GLOBAL_
push 0x1f
push 1
call fcn.100048be
push eax
call fcn.100011e2
add esp, 0x24
or dword [ebp - 4], 0xffffffff
jmp 0x10015b03
mov dword [0x1005e8c4], 1
mov eax, dword [0x1005e8cc]
cmp eax, ebx
jl 0x10015b1f
cmp eax, 3
jl 0x10015bbe
mov byte [ebp - 0x11], bl
lea eax, [ebp - 0x11]
push eax
push 0x1f
push 1
call fcn.100048be
push eax
call fcn.1000119b
add esp, 0x10
test eax, eax
jne 0x10015bb8
cmp byte [ebp - 0x11], 1
jne 0x10015bb8
mov dword [ebp - 4], 4
push 2
push str.Value_for__OPCLX_RefreshBeforeArrayWrite_is_out_of_range._Valid_values_are_0_to__d._Defaulting_to_mode_0.
push str.InitDriver__
push 0x161
push str..OPC_INIT.CPP
push str._GLOBAL_
push 0x1f
push 1
call fcn.100048be
push eax
call fcn.100011e2
add esp, 0x24
or dword [ebp - 4], 0xffffffff
jmp 0x10015bb8
mov dword [0x1005e8cc], ebx
mov eax, dword [0x1005e8c8]
cmp eax, ebx
jl 0x10015bd0
cmp eax, 3
jl 0x10015c70
mov byte [ebp - 0x11], bl
lea eax, [ebp - 0x11]
push eax
push 0x1f
push 1
call fcn.100048be
push eax
call fcn.1000119b
add esp, 0x10
test eax, eax
jne 0x10015c69
cmp byte [ebp - 0x11], 1
jne 0x10015c69
mov dword [ebp - 4], 6
push 2
push str.Value_for__OPCLX_ReadAfterWrite_is_out_of_range._Valid_values_are_0_to__d._Defaulting_to_mode_0.
push str.InitDriver__
push 0x169
push str..OPC_INIT.CPP
push str._GLOBAL_
push 0x1f
push 1
call fcn.100048be
push eax
call fcn.100011e2
add esp, 0x24
or dword [ebp - 4], 0xffffffff
jmp 0x10015c69
xor eax, eax
mov dword [0x1005e8c8], eax
cmp dword [0x1005e8c4], ebx
je 0x10015d1f
cmp eax, ebx
je 0x10015d1f
mov byte [ebp - 0x11], bl
lea eax, [ebp - 0x11]
push eax
push 0x1f
push ebx
call fcn.100048be
push eax
call fcn.1000119b
add esp, 0x10
test eax, eax
jne 0x10015d19
cmp byte [ebp - 0x11], 1
jne 0x10015d19
mov dword [ebp - 4], 8
push str.Setting_both__OPCLX_RefreshAfterWrite_and__OPCLX_ReadAfterWrite_is_redundant._Setting__OPCLX_ReadAfterWrite0
push str.InitDriver__
push 0x170
push str..OPC_INIT.CPP
push str._GLOBAL_
push 0x1f
push ebx
call fcn.100048be
push eax
call fcn.100011e2
add esp, 0x20
or dword [ebp - 4], 0xffffffff
jmp 0x10015d19
mov dword [0x1005e8c8], ebx
cmp dword [0x1005e908], ebx
je 0x10015dd2
cmp dword [0x1005c514], ebx
jne 0x10015dd2
mov byte [ebp - 0x11], bl
lea eax, [ebp - 0x11]
push eax
push 0x1f
push ebx
call fcn.100048be
push eax
call fcn.1000119b
add esp, 0x10
test eax, eax
jne 0x10015dcc
cmp byte [ebp - 0x11], 1
jne 0x10015dcc
mov dword [ebp - 4], 0xa
push str._OPCLX_UseAsyncWrites1_is_only_valid_when__OPCLX_UseOPC21._Setting__OPCLX_UseAsyncWrites0
push str.InitDriver__
push 0x178
push str..OPC_INIT.CPP
push str._GLOBAL_
push 0x1f
push ebx
call fcn.100048be
push eax
call fcn.100011e2
add esp, 0x20
or dword [ebp - 4], 0xffffffff
jmp 0x10015dcc
mov dword [0x1005e908], ebx
push 0x400
push str.RUNNING
push str.ServerOnlineStates
push esi
call fcn.10013804
add esp, 0xc
push eax
mov esi, 0x1005e920
push esi
call sub.CTRegion.dll_Ordinal_63
push esi
call fcn.1001535c
add esp, 0x10
mov word [0x1005e8e4], 0x5c
mov word [0x1005e8e6], 0x5c
lea eax, [ebp - 0x18]
push eax
push 0x1005e8e8
call dword [sym.imp.KERNEL32.dll_GetComputerNameW]
push 0x1005e8a8
mov esi, dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
call esi
push 0x1005ed30
call esi
cmp word [0x1005c520], bx
jne 0x10015e46
mov word [0x1005c520], 1
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [0x1005ed20], eax
mov eax, dword [0x1005c50c]
imul eax, eax, 0xa
mov dword [0x1005c50c], eax
cmp dword [0x1005c4f4], ebx
je 0x10015ea4
push 0x10049d4f
push str.Delimiters
push dword [0x1005c6dc]
call fcn.10013804
mov esi, eax
push esi
call sub.MSVCR80.dll_strlen
add esp, 0x10
cmp eax, 5
sbb ecx, ecx
not ecx
and ecx, esi
je 0x10015ea4
mov eax, str.____l
sub ecx, eax
push 5
pop esi
mov dl, byte [ecx + eax]
mov byte [eax], dl
inc eax
dec esi
jne 0x10015e9b
call fcn.100048be
push eax
call fcn.10001181
pop ecx
call sub.CTRegion.dll_Ordinal_81
cmp eax, 6
jae 0x10015f60
mov byte [ebp - 0x11], bl
lea eax, [ebp - 0x11]
push eax
push 0x1f
push 1
call fcn.100048be
push eax
call fcn.1000119b
add esp, 0x10
test eax, eax
jne 0x10015f23
cmp byte [ebp - 0x11], 1
jne 0x10015f23
mov dword [ebp - 4], 0xc
call sub.CTRegion.dll_Ordinal_82
push eax
call sub.CTRegion.dll_Ordinal_81
push eax
push str.OPCLX_driver_only_supports_Citect_version_6.0_and_higher__you_are_running_version__d._d_
push str.InitDriver__
push 0x19b
push str..OPC_INIT.CPP
push str._GLOBAL_
push 0x1f
push 1
call fcn.100048be
push eax
call fcn.100011e2
add esp, 0x28
or dword [ebp - 4], 0xffffffff
xor ax, ax
jmp 0x10016032
call sub.CTRegion.dll_Ordinal_81
cmp eax, 7
jae 0x1001600c
mov byte [ebp - 0x11], bl
lea eax, [ebp - 0x11]
push eax
push 0x1f
push ebx
call fcn.100048be
push eax
call fcn.1000119b
add esp, 0x10
test eax, eax
jne 0x10015ffe
cmp byte [ebp - 0x11], 1
jne 0x10015ffe
mov dword [ebp - 4], 0xe
push str.OPCLX_driver_does_not_internally_support_EVENTS_for_versions_below_7.0
push str.InitDriver__
push 0x1a1
push str..OPC_INIT.CPP
push str._GLOBAL_
push 0x1f
push ebx
call fcn.100048be
push eax
call fcn.100011e2
add esp, 0x20
or dword [ebp - 4], 0xffffffff
jmp 0x10015ffe
call dword [sym.imp.DriverRuntimeInterface.dll_DriCreateDriver]
push 0x10005c42
push ebx
jmp 0x10016019
call dword [sym.imp.DriverRuntimeInterface.dll_DriCreateDriver]
push 0x10005c42
push 1
push 0x1004ca84
push eax
mov dword [0x1005f570], eax
call dword [sym.imp.DriverRuntimeInterface.dll_DriDriverInit]
add esp, 0x10
call fcn.10012cc6
call fcn.100451f5
ret