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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x57596a
mov eax, dword fs:[0]
push eax
sub esp, 8
push esi
push edi
mov eax, dword [0x640040]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x10], esi
mov edi, dword [ebp + 8]
push 0
push edi
call fcn.0045a7e0
mov dword [ebp - 4], 0
lea ecx, [esi + 0x1580]
mov dword [esi], 0x5cdd04
call dword [sym.imp.mfc140u.dll_Ordinal_296]
mov byte [ebp - 4], 1
lea ecx, [esi + 0x1588]
mov byte [esi + 0x1585], 0
call dword [sym.imp.mfc140u.dll_Ordinal_296]
mov byte [ebp - 4], 2
lea ecx, [esi + 0x158c]
call dword [sym.imp.mfc140u.dll_Ordinal_296]
mov byte [ebp - 4], 3
mov byte [esi + 0x15ac], 0
mov dword [esi + 0x15b0], 0
test edi, edi
je 0x4cb113
lea eax, [esi + 0x1594]
push eax
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov eax, dword [ebp + 0xc]
lea ecx, [esi + 0x1584]
mov dword [esi + 0x44], edi
mov dword [esi + 0x1590], eax
mov byte [ecx], 0
test eax, eax
je 0x4cb113
push 0x148
call dword [sym.imp.mfc140u.dll_operator]
mov edi, eax
add esp, 4
mov dword [ebp + 8], edi
mov byte [ebp - 4], 4
test edi, edi
je 0x4ca253
push 0x148
push 0
push edi
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
push 0
push esi
push ecx
mov ecx, esp
mov dword [ebp + 0xc], esp
push str.Write_non_zero_value_to_cause_full_OPC_Address_Space_to_be_loaded
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 5
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
push str.OPCLoad
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 6
mov byte [ebp - 4], 4
mov ecx, edi
call fcn.004b3310
jmp 0x4ca255
xor eax, eax
mov dword [ebp + 0xc], eax
mov byte [ebp - 4], 3
mov ecx, 0xb
or dword [eax + 0x78], 0x20
mov word [eax + 0x90], cx
mov ecx, 0x400b
mov word [eax + 0x28], cx
lea ecx, [esi + 0x1584]
mov dword [eax + 0x30], ecx
mov ecx, 0xc0
mov word [eax + 0xc4], cx
lea ecx, [esi + 0xc]
push eax
call dword [sym.imp.mfc140u.dll_Ordinal_2006]
mov edi, 0xff00
lea eax, [esi + 0x12ac]
push edi
mov ecx, eax
call fcn.0043a5a0
test eax, eax
je 0x4ca2bc
inc edi
mov eax, 0xffff
cmp di, ax
jae 0x4ca355
jmp 0x4ca299
mov eax, dword [sym.imp.mfc140u.dll_operator]
push 0x14
call eax
add esp, 4
mov dword [ebp + 8], eax
mov dword [ebp - 0x14], eax
mov byte [ebp - 4], 7
test eax, eax
je 0x4ca312
xorps xmm0, xmm0
movups xmmword [eax], xmm0
mov dword [eax + 0x10], 0
mov dword [eax], 0x59a3c4
mov word [eax + 4], di
mov dword [eax + 0x10], 0
add eax, 0xc
push eax
push 1
push 8
mov dword [eax], 0
call dword [sym.imp.OLEAUT32.dll_SafeArrayDestroy]
mov ecx, dword [ebp + 8]
mov dword [ecx + 8], eax
mov eax, ecx
jmp 0x4ca317
xor eax, eax
mov dword [ebp + 8], eax
mov byte [ebp - 4], 3
test eax, eax
je 0x4ca355
push str.Unloaded
push 0
mov ecx, eax
call fcn.00439ad0
mov ecx, dword [ebp + 8]
push str.Load
push 1
call fcn.00439ad0
push edi
push dword [ebp + 8]
lea ecx, [esi + 0x12ac]
call fcn.0043a430
mov eax, dword [ebp + 0xc]
mov word [eax + 0x9c], di
mov edi, dword [sym.imp.mfc140u.dll_operator]
push 0x148
call edi
add esp, 4
mov dword [ebp + 8], eax
mov byte [ebp - 4], 8
test eax, eax
je 0x4ca3bb
push 0x148
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
push 1
push esi
push ecx
mov ecx, esp
mov dword [ebp + 0xc], esp
push str.Root_to_full_OPC_Address_Space_for_this_device
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 9
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
push str.OPCRoot
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0xa
mov byte [ebp - 4], 8
mov ecx, dword [ebp + 8]
call fcn.004b3310
jmp 0x4ca3bd
xor eax, eax
mov byte [ebp - 4], 3
mov ecx, 8
or dword [eax + 0x78], 0x20
mov word [eax + 0x90], cx
mov ecx, 0x401d
mov word [eax + 0x28], cx
lea ecx, [esi + 0x1580]
mov dword [eax + 0x30], ecx
mov ecx, 0xc0
mov word [eax + 0xc4], cx
lea ecx, [esi + 0xc]
push eax
call dword [sym.imp.mfc140u.dll_Ordinal_2006]
push 0x148
call edi
mov edi, eax
add esp, 4
mov dword [ebp + 8], edi
mov byte [ebp - 4], 0xb
test edi, edi
je 0x4ca45a
push 0x148
push 0
push edi
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
push 1
push esi
push ecx
mov ecx, esp
mov dword [ebp + 0xc], esp
push str.Is_this_device_supported_by_current_iTools_installation
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0xc
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
push str.CanBeLoaded
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0xd
mov byte [ebp - 4], 0xb
mov ecx, edi
call fcn.004b3310
jmp 0x4ca45c
xor eax, eax
mov dword [ebp + 0xc], eax
mov byte [ebp - 4], 3
mov ecx, 0xb
or dword [eax + 0x78], 0x20
mov word [eax + 0x90], cx
mov ecx, 0x400b
mov word [eax + 0x28], cx
lea ecx, [esi + 0x1585]
mov dword [eax + 0x30], ecx
mov ecx, 0xc0
mov word [eax + 0xc4], cx
lea ecx, [esi + 0xc]
push eax
call dword [sym.imp.mfc140u.dll_Ordinal_2006]
mov edi, 0xff01
push edi
lea ecx, [esi + 0x12ac]
call fcn.0043a5a0
test eax, eax
je 0x4ca4c0
inc edi
mov eax, 0xffff
cmp di, ax
jb 0x4ca4a0
jmp 0x4ca559
mov eax, dword [sym.imp.mfc140u.dll_operator]
push 0x14
call eax
add esp, 4
mov dword [ebp + 8], eax
mov dword [ebp - 0x14], eax
mov byte [ebp - 4], 0xe
test eax, eax
je 0x4ca516
xorps xmm0, xmm0
movups xmmword [eax], xmm0
mov dword [eax + 0x10], 0
mov dword [eax], 0x59a3c4
mov word [eax + 4], di
mov dword [eax + 0x10], 0
add eax, 0xc
push eax
push 1
push 8
mov dword [eax], 0
call dword [sym.imp.OLEAUT32.dll_SafeArrayDestroy]
mov ecx, dword [ebp + 8]
mov dword [ecx + 8], eax
mov eax, ecx
jmp 0x4ca51b
xor eax, eax
mov dword [ebp + 8], eax
mov byte [ebp - 4], 3
test eax, eax
je 0x4ca559
push 0x588e4c
push 0
mov ecx, eax
call fcn.00439ad0
mov ecx, dword [ebp + 8]
push 0x588e44
push 1
call fcn.00439ad0
push edi
push dword [ebp + 8]
lea ecx, [esi + 0x12ac]
call fcn.0043a430
mov eax, dword [ebp + 0xc]
mov word [eax + 0x9c], di
push 0x148
call dword [sym.imp.mfc140u.dll_operator]
mov edi, eax
add esp, 4
mov dword [ebp + 8], edi
mov byte [ebp - 4], 0xf
test edi, edi
je 0x4ca5c3
push 0x148
push 0
push edi
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
push 1
push esi
push ecx
mov ecx, esp
mov dword [ebp + 0xc], esp
push str.Devices_Comms_Password_has_been_set_before_this_device_can_be_loaded_into_EuroMBus
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0x10
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
push str.PWSet
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0x11
mov byte [ebp - 4], 0xf
mov ecx, edi
call fcn.004b3310
mov ecx, eax
mov dword [ebp + 0xc], eax
jmp 0x4ca5c8
xor ecx, ecx
mov dword [ebp + 0xc], ecx
mov byte [ebp - 4], 3
mov eax, 0x11
or dword [ecx + 0x78], 0x20
mov word [ecx + 0x90], ax
mov eax, 0x4011
mov word [ecx + 0x28], ax
lea eax, [esi + 0x1438]
mov dword [ecx + 0x30], eax
mov eax, 0xc0
mov word [ecx + 0xc4], ax
push ecx
lea ecx, [esi + 0xc]
call dword [sym.imp.mfc140u.dll_Ordinal_2006]
mov edi, 0xff02
nop dword [eax]
push edi
lea ecx, [esi + 0x12ac]
call fcn.0043a5a0
test eax, eax
je 0x4ca630
inc edi
mov eax, 0xffff
cmp di, ax
jb 0x4ca610
jmp 0x4ca6e6
push 0x14
call dword [sym.imp.mfc140u.dll_operator]
add esp, 4
mov dword [ebp + 8], eax
mov dword [ebp - 0x14], eax
mov byte [ebp - 4], 0x12
test eax, eax
je 0x4ca685
xorps xmm0, xmm0
movups xmmword [eax], xmm0
mov dword [eax + 0x10], 0
mov dword [eax], 0x59a3c4
mov word [eax + 4], di
mov dword [eax + 0x10], 0
add eax, 0xc
push eax
push 1
push 8
mov dword [eax], 0
call dword [sym.imp.OLEAUT32.dll_SafeArrayDestroy]
mov ecx, dword [ebp + 8]
mov dword [ecx + 8], eax
mov eax, ecx
jmp 0x4ca68a
xor eax, eax
mov dword [ebp + 8], eax
mov byte [ebp - 4], 3
test eax, eax
je 0x4ca6e6
push 0x588e4c
push 0
mov ecx, eax
call fcn.00439ad0
mov ecx, dword [ebp + 8]
push 0x588e44
push 1
call fcn.00439ad0
mov ecx, dword [ebp + 8]
push str.Not_Supported
push 2
call fcn.00439ad0
mov ecx, dword [ebp + 8]
push 0x59fe70
push 3
call fcn.00439ad0
push edi
push dword [ebp + 8]
lea ecx, [esi + 0x12ac]
call fcn.0043a430
mov eax, dword [ebp + 0xc]
mov word [eax + 0x9c], di
mov edi, dword [sym.imp.mfc140u.dll_operator]
push 0x148
call edi
add esp, 4
mov dword [ebp + 8], eax
mov byte [ebp - 4], 0x13
test eax, eax
je 0x4ca74e
push 0x148
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
push 1
push esi
push ecx
mov ecx, esp
mov dword [ebp + 0xc], esp
push str.Last_update_timestamp
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0x14
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
push str.LastUpdated
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0x15
mov byte [ebp - 4], 0x13
mov ecx, dword [ebp + 8]
call fcn.004b3310
mov ecx, eax
jmp 0x4ca750
xor ecx, ecx
mov byte [ebp - 4], 3
mov eax, 7
mov word [ecx + 0x90], ax
mov eax, 0x4007
mov word [ecx + 0x28], ax
mov eax, dword [esi + 0x1590]
or dword [ecx + 0x78], 0x20
add eax, 8
mov dword [ecx + 0x30], eax
mov eax, 0xc0
mov word [ecx + 0xc4], ax
push ecx
lea ecx, [esi + 0xc]
call dword [sym.imp.mfc140u.dll_Ordinal_2006]
push 0x148
call edi
add esp, 4
mov dword [ebp + 8], eax
mov byte [ebp - 4], 0x16
test eax, eax
je 0x4ca7f1
push 0x148
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
push 1
push esi
push ecx
mov ecx, esp
mov dword [ebp + 0xc], esp
push str.DNS_Service_Discovery_Description
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0x17
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
push 0x58a668
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0x18
mov byte [ebp - 4], 0x16
mov ecx, dword [ebp + 8]
call fcn.004b3310
mov ecx, eax
jmp 0x4ca7f3
xor ecx, ecx
mov byte [ebp - 4], 3
mov edx, 8
mov word [ecx + 0x90], dx
mov edx, 0x401d
mov word [ecx + 0x28], dx
mov eax, dword [esi + 0x1590]
or dword [ecx + 0x78], 0x20
add eax, 0x1c
mov dword [ecx + 0x30], eax
mov eax, 0xc0
mov word [ecx + 0xc4], ax
push ecx
lea ecx, [esi + 0xc]
call dword [sym.imp.mfc140u.dll_Ordinal_2006]
push 0x148
call edi
add esp, 4
mov dword [ebp + 8], eax
mov byte [ebp - 4], 0x19
test eax, eax
je 0x4ca894
push 0x148
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
push 1
push esi
push ecx
mov ecx, esp
mov dword [ebp + 0xc], esp
push str.Network_Hostname
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0x1a
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
push str.Hostname
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0x1b
mov byte [ebp - 4], 0x19
mov ecx, dword [ebp + 8]
call fcn.004b3310
mov ecx, eax
jmp 0x4ca896
xor ecx, ecx
mov byte [ebp - 4], 3
mov eax, 8
mov word [ecx + 0x90], ax
mov eax, 0x401d
mov word [ecx + 0x28], ax
mov eax, dword [esi + 0x1590]
or dword [ecx + 0x78], 0x20
add eax, 0x24
mov dword [ecx + 0x30], eax
mov eax, 0xc0
mov word [ecx + 0xc4], ax
push ecx
lea ecx, [esi + 0xc]
call dword [sym.imp.mfc140u.dll_Ordinal_2006]
push 0x148
call edi
add esp, 4
mov dword [ebp + 8], eax
mov byte [ebp - 4], 0x1c
test eax, eax
je 0x4ca937
push 0x148
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
push 1
push esi
push ecx
mov ecx, esp
mov dword [ebp + 0xc], esp
push str.IPv4_Address
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0x1d
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
push str.IPv4
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0x1e
mov byte [ebp - 4], 0x1c
mov ecx, dword [ebp + 8]
call fcn.004b3310
mov ecx, eax
jmp 0x4ca939
xor ecx, ecx
mov byte [ebp - 4], 3
mov eax, 8
mov word [ecx + 0x90], ax
mov eax, 0x401d
mov word [ecx + 0x28], ax
mov eax, dword [esi + 0x1590]
or dword [ecx + 0x78], 0x20
add eax, 0x28
mov dword [ecx + 0x30], eax
mov eax, 0xc0
mov word [ecx + 0xc4], ax
push ecx
lea ecx, [esi + 0xc]
call dword [sym.imp.mfc140u.dll_Ordinal_2006]
push 0x148
call edi
add esp, 4
mov dword [ebp + 8], eax
mov byte [ebp - 4], 0x1f
test eax, eax
je 0x4ca9da
push 0x148
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
push 1
push esi
push ecx
mov ecx, esp
mov dword [ebp + 0xc], esp
push str.IPv6_Address
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0x20
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
push str.IPv6
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0x21
mov byte [ebp - 4], 0x1f
mov ecx, dword [ebp + 8]
call fcn.004b3310
mov ecx, eax
jmp 0x4ca9dc
xor ecx, ecx
mov byte [ebp - 4], 3
mov eax, 8
mov word [ecx + 0x90], ax
mov eax, 0x401d
mov word [ecx + 0x28], ax
mov eax, dword [esi + 0x1590]
or dword [ecx + 0x78], 0x20
add eax, 0x2c
mov dword [ecx + 0x30], eax
mov eax, 0xc0
mov word [ecx + 0xc4], ax
push ecx
lea ecx, [esi + 0xc]
call dword [sym.imp.mfc140u.dll_Ordinal_2006]
push 0x148
call edi
add esp, 4
mov dword [ebp + 8], eax
mov byte [ebp - 4], 0x22
test eax, eax
je 0x4caa7d
push 0x148
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
push 1
push esi
push ecx
mov ecx, esp
mov dword [ebp + 0xc], esp
push str.IP_Port_Address
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0x23
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
push str.IPPort
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0x24
mov byte [ebp - 4], 0x22
mov ecx, dword [ebp + 8]
call fcn.004b3310
mov ecx, eax
jmp 0x4caa7f
xor ecx, ecx
mov byte [ebp - 4], 3
mov eax, 8
mov word [ecx + 0x90], ax
mov eax, 0x401d
mov word [ecx + 0x28], ax
mov eax, dword [esi + 0x1590]
or dword [ecx + 0x78], 0x20
add eax, 0x30
mov dword [ecx + 0x30], eax
mov eax, 0xc0
mov word [ecx + 0xc4], ax
push ecx
lea ecx, [esi + 0xc]
call dword [sym.imp.mfc140u.dll_Ordinal_2006]
push 0x148
call edi
add esp, 4
mov dword [ebp + 8], eax
mov byte [ebp - 4], 0x25
test eax, eax
je 0x4cab20
push 0x148
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
push 1
push esi
push ecx
mov ecx, esp
mov dword [ebp + 0xc], esp
push str.Network_Domain
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0x26
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
push str.Domain
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0x27
mov byte [ebp - 4], 0x25
mov ecx, dword [ebp + 8]
call fcn.004b3310
mov ecx, eax
jmp 0x4cab22
xor ecx, ecx
mov byte [ebp - 4], 3
mov eax, 8
mov word [ecx + 0x90], ax
mov eax, 0x401d
mov word [ecx + 0x28], ax
mov eax, dword [esi + 0x1590]
or dword [ecx + 0x78], 0x20
add eax, 0x20
mov dword [ecx + 0x30], eax
mov eax, 0xc0
mov word [ecx + 0xc4], ax
push ecx
lea ecx, [esi + 0xc]
call dword [sym.imp.mfc140u.dll_Ordinal_2006]
push 0x148
call edi
add esp, 4
mov dword [ebp + 8], eax
mov byte [ebp - 4], 0x28
test eax, eax
je 0x4cabc3
push 0x148
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
push 1
push esi
push ecx
mov ecx, esp
mov dword [ebp + 0xc], esp
push 0x5cd5f8
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0x29
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
push str.Vendor
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0x2a
mov byte [ebp - 4], 0x28
mov ecx, dword [ebp + 8]
call fcn.004b3310
mov ecx, eax
jmp 0x4cabc5
xor ecx, ecx
mov byte [ebp - 4], 3
mov eax, 8
mov word [ecx + 0x90], ax
mov eax, 0x401d
mov word [ecx + 0x28], ax
mov eax, dword [esi + 0x1590]
or dword [ecx + 0x78], 0x20
add eax, 0x44
mov dword [ecx + 0x30], eax
mov eax, 0xc0
mov word [ecx + 0xc4], ax
push ecx
lea ecx, [esi + 0xc]
call dword [sym.imp.mfc140u.dll_Ordinal_2006]
push 0x148
call edi
add esp, 4
mov dword [ebp + 8], eax
mov byte [ebp - 4], 0x2b
test eax, eax
je 0x4cac66
push 0x148
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
push 1
push esi
push ecx
mov ecx, esp
mov dword [ebp + 0xc], esp
push str.Device_Type_ID
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0x2c
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
push 0x588d54
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0x2d
mov byte [ebp - 4], 0x2b
mov ecx, dword [ebp + 8]
call fcn.004b3310
mov ecx, eax
jmp 0x4cac68
xor ecx, ecx
mov byte [ebp - 4], 3
mov eax, 8
mov word [ecx + 0x90], ax
mov eax, 0x401d
mov word [ecx + 0x28], ax
mov eax, dword [esi + 0x1590]
or dword [ecx + 0x78], 0x20
add eax, 0x48
mov dword [ecx + 0x30], eax
mov eax, 0xc0
mov word [ecx + 0xc4], ax
push ecx
lea ecx, [esi + 0xc]
call dword [sym.imp.mfc140u.dll_Ordinal_2006]
push 0x148
call edi
add esp, 4
mov dword [ebp + 8], eax
mov byte [ebp - 4], 0x2e
test eax, eax
je 0x4cad07
push 0x148
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
push 1
push esi
push ecx
mov ecx, esp
mov dword [ebp + 0xc], esp
push str.Device_Type_ID_String
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0x2f
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
push str.TypeString
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0x30
mov byte [ebp - 4], 0x2e
mov ecx, dword [ebp + 8]
call fcn.004b3310
jmp 0x4cad09
xor eax, eax
mov byte [ebp - 4], 3
lea ecx, [esi + 0x1588]
or dword [eax + 0x78], 0x20
mov edx, 8
mov dword [eax + 0x30], ecx
mov ecx, 0xc0
mov word [eax + 0x90], dx
mov edx, 0x401d
mov word [eax + 0xc4], cx
lea ecx, [esi + 0xc]
push eax
mov word [eax + 0x28], dx
call dword [sym.imp.mfc140u.dll_Ordinal_2006]
push 0x148
call edi
add esp, 4
mov dword [ebp + 8], eax
mov byte [ebp - 4], 0x31
test eax, eax
je 0x4cada7
push 0x148
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
push 1
push esi
push ecx
mov ecx, esp
mov dword [ebp + 0xc], esp
push str.Software_Version
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0x32
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
push str.SoftwareVersion
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0x33
mov byte [ebp - 4], 0x31
mov ecx, dword [ebp + 8]
call fcn.004b3310
mov ecx, eax
jmp 0x4cada9
xor ecx, ecx
mov byte [ebp - 4], 3
mov eax, 8
mov word [ecx + 0x90], ax
mov eax, 0x401d
mov word [ecx + 0x28], ax
mov eax, dword [esi + 0x1590]
or dword [ecx + 0x78], 0x20
add eax, 0x4c
mov dword [ecx + 0x30], eax
mov eax, 0xc0
mov word [ecx + 0xc4], ax
push ecx
lea ecx, [esi + 0xc]
call dword [sym.imp.mfc140u.dll_Ordinal_2006]
push 0x148
call edi
add esp, 4
mov dword [ebp + 8], eax
mov byte [ebp - 4], 0x34
test eax, eax
je 0x4cae4a
push 0x148
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
push 1
push esi
push ecx
mov ecx, esp
mov dword [ebp + 0xc], esp
push str.Hardware_Version
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0x35
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
push str.HardwareVersion
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0x36
mov byte [ebp - 4], 0x34
mov ecx, dword [ebp + 8]
call fcn.004b3310
mov ecx, eax
jmp 0x4cae4c
xor ecx, ecx
mov byte [ebp - 4], 3
mov eax, 8
mov word [ecx + 0x90], ax
mov eax, 0x401d
mov word [ecx + 0x28], ax
mov eax, dword [esi + 0x1590]
or dword [ecx + 0x78], 0x20
add eax, 0x50
mov dword [ecx + 0x30], eax
mov eax, 0xc0
mov word [ecx + 0xc4], ax
push ecx
lea ecx, [esi + 0xc]
call dword [sym.imp.mfc140u.dll_Ordinal_2006]
push 0x148
call edi
add esp, 4
mov dword [ebp + 8], eax
mov byte [ebp - 4], 0x37
test eax, eax
je 0x4caeed
push 0x148
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
push 1
push esi
push ecx
mov ecx, esp
mov dword [ebp + 0xc], esp
push 0x5cd724
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0x38
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
push str.SerialNumber
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0x39
mov byte [ebp - 4], 0x37
mov ecx, dword [ebp + 8]
call fcn.004b3310
mov ecx, eax
jmp 0x4caeef
xor ecx, ecx
mov byte [ebp - 4], 3
mov eax, 8
mov word [ecx + 0x90], ax
mov eax, 0x401d
mov word [ecx + 0x28], ax
mov eax, dword [esi + 0x1590]
or dword [ecx + 0x78], 0x20
add eax, 0x54
mov dword [ecx + 0x30], eax
mov eax, 0xc0
mov word [ecx + 0xc4], ax
push ecx
lea ecx, [esi + 0xc]
call dword [sym.imp.mfc140u.dll_Ordinal_2006]
push 0x148
call edi
add esp, 4
mov dword [ebp + 8], eax
mov byte [ebp - 4], 0x3a
test eax, eax
je 0x4caf90
push 0x148
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
push 1
push esi
push ecx
mov ecx, esp
mov dword [ebp + 0xc], esp
push str.MODBUS_Slave_ID
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0x3b
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
push str.MODBUSSlaveID
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0x3c
mov byte [ebp - 4], 0x3a
mov ecx, dword [ebp + 8]
call fcn.004b3310
mov ecx, eax
jmp 0x4caf92
xor ecx, ecx
mov byte [ebp - 4], 3
mov eax, 8
mov word [ecx + 0x90], ax
mov eax, 0x401d
mov word [ecx + 0x28], ax
mov eax, dword [esi + 0x1590]
or dword [ecx + 0x78], 0x20
add eax, 0x58
mov dword [ecx + 0x30], eax
mov eax, 0xc0
mov word [ecx + 0xc4], ax
push ecx
lea ecx, [esi + 0xc]
call dword [sym.imp.mfc140u.dll_Ordinal_2006]
push 0x148
call edi
add esp, 4
mov dword [ebp + 8], eax
mov byte [ebp - 4], 0x3d
test eax, eax
je 0x4cb031
push 0x148
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
push 1
push esi
push ecx
mov ecx, esp
mov dword [ebp + 0xc], esp
push str.ProgID_of_the_IDM_that_would_be_used_to_load_this_device
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0x3e
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
push str.IDMProgID
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0x3f
mov byte [ebp - 4], 0x3d
mov ecx, dword [ebp + 8]
call fcn.004b3310
jmp 0x4cb033
xor eax, eax
mov byte [ebp - 4], 3
lea ecx, [esi + 0x158c]
or dword [eax + 0x78], 0x20
mov edx, 8
mov dword [eax + 0x30], ecx
mov ecx, 0xc0
mov word [eax + 0x90], dx
mov edx, 0x401d
mov word [eax + 0xc4], cx
lea ecx, [esi + 0xc]
push eax
mov word [eax + 0x28], dx
call dword [sym.imp.mfc140u.dll_Ordinal_2006]
push 0x148
call edi
mov edi, eax
add esp, 4
mov dword [ebp + 8], edi
mov byte [ebp - 4], 0x40
test edi, edi
je 0x4cb0d2
push 0x148
push 0
push edi
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
push 1
push esi
push ecx
mov ecx, esp
mov dword [ebp + 0xc], esp
push str.DNS_Service_Discovery_txt_record
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0x41
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
push str.TXTRecord
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0x42
mov byte [ebp - 4], 0x40
mov ecx, edi
call fcn.004b3310
mov ecx, eax
jmp 0x4cb0d4
xor ecx, ecx
mov byte [ebp - 4], 3
mov eax, 8
mov word [ecx + 0x90], ax
mov eax, 0x401d
mov word [ecx + 0x28], ax
mov eax, dword [esi + 0x1590]
or dword [ecx + 0x78], 0x20
add eax, 0x3c
mov dword [ecx + 0x30], eax
mov eax, 0xc0
mov word [ecx + 0xc4], ax
push ecx
lea ecx, [esi + 0xc]
call dword [sym.imp.mfc140u.dll_Ordinal_2006]
mov dword [ebp - 4], 0xffffffff
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 8