Function at 0x4a9d40
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x572457
mov eax, dword fs:[0]
push eax
sub esp, 0x10
push ebx
push esi
push edi
mov eax, dword [0x640040]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov esi, ecx
mov ebx, dword [ebp + 8]
mov dword [ebp - 4], 0
mov byte [ebp - 4], 1
test ebx, ebx
je 0x4aac86
mov eax, dword [ebx]
push str._Diagnostics
mov ecx, ebx
call dword [eax + 0x30]
mov edi, eax
test edi, edi
jne 0x4a9dc0
push eax
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
push str._Diagnostics
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 2
mov eax, dword [ebx]
mov byte [ebp - 4], 1
mov ecx, ebx
call dword [eax + 0x24]
mov edi, eax
test edi, edi
je 0x4aac86
mov eax, dword [edi]
push 0x5b46b8
mov ecx, edi
call dword [eax + 0x30]
mov ebx, eax
test ebx, ebx
jne 0x4a9dfd
push eax
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
push 0x5b46b8
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 3
mov eax, dword [edi]
mov byte [ebp - 4], 1
mov ecx, edi
call dword [eax + 0x24]
mov ebx, eax
test ebx, ebx
je 0x4aac86
push 0x78
call dword [sym.imp.mfc140u.dll_operator]
add esp, 4
mov edi, eax
mov dword [ebp - 0x14], edi
mov byte [ebp - 4], 4
test edi, edi
je 0x4a9e44
push 0x78
push 0
push edi
call sub.VCRUNTIME140.dll_memset
add esp, 8
mov ecx, esp
mov dword [ebp - 0x18], esp
lea eax, [ebp + 0xc]
push eax
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__30]
mov byte [ebp - 4], 5
mov byte [ebp - 4], 4
mov ecx, edi
call fcn.004b9eb0
mov edi, eax
jmp 0x4a9e46
xor edi, edi
mov byte [ebp - 4], 1
test edi, edi
je 0x4aac86
mov dword [edi + 0x44], ebx
mov eax, 1
mov word [edi + 0x58], ax
mov eax, dword [ebx]
push edi
mov ecx, ebx
call dword [eax + 0x20]
mov dword [esi + 8], edi
push 0x148
mov ebx, dword [sym.imp.mfc140u.dll_operator]
call ebx
add esp, 4
mov edi, eax
mov dword [ebp - 0x18], edi
mov byte [ebp - 4], 6
test edi, edi
je 0x4a9ed4
push 0x148
push 0
push edi
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
push 1
push dword [esi + 8]
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
push str.Comms_Port_Error_Status
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 7
push ecx
mov ecx, esp
mov dword [ebp - 0x1c], esp
push str.CommsPortErrorStatus
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 8
mov byte [ebp - 4], 6
mov ecx, edi
call fcn.004b3310
mov edx, eax
jmp 0x4a9ed6
xor edx, edx
mov byte [ebp - 4], 1
mov eax, 0x13
mov word [edx + 0x90], ax
mov eax, 0x4013
mov word [edx + 0x28], ax
lea eax, [esi + 0x40]
mov dword [edx + 0x30], eax
mov eax, dword [edx + 0x78]
or eax, 0x20
mov dword [edx + 0x78], eax
mov ecx, dword [esi + 8]
add ecx, 0xc
push edx
mov edi, dword [sym.imp.mfc140u.dll_Ordinal_2006]
call edi
push 0x148
call ebx
add esp, 4
mov dword [ebp - 0x14], eax
mov byte [ebp - 4], 9
test eax, eax
je 0x4a9f71
push 0x148
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
push 1
push dword [esi + 8]
push ecx
mov ecx, esp
mov dword [ebp - 0x1c], esp
push str.Reference_Count
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0xa
push ecx
mov ecx, esp
mov dword [ebp - 0x18], esp
push str.RefCount
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0xb
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x14]
call fcn.004b3310
mov edx, eax
jmp 0x4a9f73
xor edx, edx
mov byte [ebp - 4], 1
mov eax, 3
mov word [edx + 0x90], ax
mov eax, 0x4003
mov word [edx + 0x28], ax
lea eax, [esi + 0xc]
mov dword [edx + 0x30], eax
mov eax, dword [edx + 0x78]
or eax, 0x20
mov dword [edx + 0x78], eax
mov ecx, dword [esi + 8]
add ecx, 0xc
push edx
call edi
push 0x148
call ebx
add esp, 4
mov dword [ebp - 0x14], eax
mov byte [ebp - 4], 0xc
test eax, eax
je 0x4aa008
push 0x148
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
push 1
push dword [esi + 8]
push ecx
mov ecx, esp
mov dword [ebp - 0x1c], esp
push str.Port_characters_sent
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0xd
push ecx
mov ecx, esp
mov dword [ebp - 0x18], esp
push str.CharTx
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0xe
mov byte [ebp - 4], 0xc
mov ecx, dword [ebp - 0x14]
call fcn.004b3310
mov edx, eax
jmp 0x4aa00a
xor edx, edx
mov byte [ebp - 4], 1
mov eax, 0x13
mov word [edx + 0x90], ax
mov eax, 0x4013
mov word [edx + 0x28], ax
lea eax, [esi + 0x1a88]
mov dword [edx + 0x30], eax
mov eax, dword [edx + 0x78]
or eax, 0x20
mov dword [edx + 0x78], eax
mov ecx, dword [esi + 8]
add ecx, 0xc
push edx
call edi
push 0x148
call ebx
add esp, 4
mov dword [ebp - 0x14], eax
mov byte [ebp - 4], 0xf
test eax, eax
je 0x4aa0a2
push 0x148
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
push 1
push dword [esi + 8]
push ecx
mov ecx, esp
mov dword [ebp - 0x1c], esp
push str.Port_characters_received
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 - 0x18], esp
push str.CharRx
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, dword [ebp - 0x14]
call fcn.004b3310
mov edx, eax
jmp 0x4aa0a4
xor edx, edx
mov byte [ebp - 4], 1
mov eax, 0x13
mov word [edx + 0x90], ax
mov eax, 0x4013
mov word [edx + 0x28], ax
lea eax, [esi + 0x1a90]
mov dword [edx + 0x30], eax
mov eax, dword [edx + 0x78]
or eax, 0x20
mov dword [edx + 0x78], eax
mov ecx, dword [esi + 8]
add ecx, 0xc
push edx
call edi
push 0x148
call ebx
add esp, 4
mov dword [ebp - 0x14], eax
mov byte [ebp - 4], 0x12
test eax, eax
je 0x4aa13c
push 0x148
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
push 1
push dword [esi + 8]
push ecx
mov ecx, esp
mov dword [ebp - 0x1c], esp
push str.Port_messages_sent
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0x13
push ecx
mov ecx, esp
mov dword [ebp - 0x18], esp
push str.MesgTx
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0x14
mov byte [ebp - 4], 0x12
mov ecx, dword [ebp - 0x14]
call fcn.004b3310
mov edx, eax
jmp 0x4aa13e
xor edx, edx
mov byte [ebp - 4], 1
mov eax, 0x13
mov word [edx + 0x90], ax
mov eax, 0x4013
mov word [edx + 0x28], ax
lea eax, [esi + 0x1a98]
mov dword [edx + 0x30], eax
mov eax, dword [edx + 0x78]
or eax, 0x20
mov dword [edx + 0x78], eax
mov ecx, dword [esi + 8]
add ecx, 0xc
push edx
call edi
push 0x148
call ebx
add esp, 4
mov dword [ebp - 0x14], eax
mov byte [ebp - 4], 0x15
test eax, eax
je 0x4aa1d6
push 0x148
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
push 1
push dword [esi + 8]
push ecx
mov ecx, esp
mov dword [ebp - 0x1c], esp
push str.Port_messages_received
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0x16
push ecx
mov ecx, esp
mov dword [ebp - 0x18], esp
push str.MesgRx
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0x17
mov byte [ebp - 4], 0x15
mov ecx, dword [ebp - 0x14]
call fcn.004b3310
mov edx, eax
jmp 0x4aa1d8
xor edx, edx
mov byte [ebp - 4], 1
mov eax, 0x13
mov word [edx + 0x90], ax
mov eax, 0x4013
mov word [edx + 0x28], ax
lea eax, [esi + 0x1a9c]
mov dword [edx + 0x30], eax
mov eax, dword [edx + 0x78]
or eax, 0x20
mov dword [edx + 0x78], eax
mov ecx, dword [esi + 8]
add ecx, 0xc
push edx
call edi
push 0x148
call ebx
add esp, 4
mov dword [ebp - 0x14], eax
mov byte [ebp - 4], 0x18
test eax, eax
je 0x4aa270
push 0x148
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
push 1
push dword [esi + 8]
push ecx
mov ecx, esp
mov dword [ebp - 0x1c], esp
push str.Parameters_written_via_Port
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0x19
push ecx
mov ecx, esp
mov dword [ebp - 0x18], esp
push str.ParamTx
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0x1a
mov byte [ebp - 4], 0x18
mov ecx, dword [ebp - 0x14]
call fcn.004b3310
mov edx, eax
jmp 0x4aa272
xor edx, edx
mov byte [ebp - 4], 1
mov eax, 0x13
mov word [edx + 0x90], ax
mov eax, 0x4013
mov word [edx + 0x28], ax
lea eax, [esi + 0x1aa0]
mov dword [edx + 0x30], eax
mov eax, dword [edx + 0x78]
or eax, 0x20
mov dword [edx + 0x78], eax
mov ecx, dword [esi + 8]
add ecx, 0xc
push edx
call edi
push 0x148
call ebx
add esp, 4
mov dword [ebp - 0x14], eax
mov byte [ebp - 4], 0x1b
test eax, eax
je 0x4aa30a
push 0x148
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
push 1
push dword [esi + 8]
push ecx
mov ecx, esp
mov dword [ebp - 0x1c], esp
push str.Parameters_read_via_Port
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0x1c
push ecx
mov ecx, esp
mov dword [ebp - 0x18], esp
push str.ParamRx
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0x1d
mov byte [ebp - 4], 0x1b
mov ecx, dword [ebp - 0x14]
call fcn.004b3310
mov edx, eax
jmp 0x4aa30c
xor edx, edx
mov byte [ebp - 4], 1
mov eax, 0x13
mov word [edx + 0x90], ax
mov eax, 0x4013
mov word [edx + 0x28], ax
lea eax, [esi + 0x1aa4]
mov dword [edx + 0x30], eax
mov eax, dword [edx + 0x78]
or eax, 0x20
mov dword [edx + 0x78], eax
mov ecx, dword [esi + 8]
add ecx, 0xc
push edx
call edi
push 0x148
call ebx
add esp, 4
mov dword [ebp - 0x14], eax
mov byte [ebp - 4], 0x1e
test eax, eax
je 0x4aa3a4
push 0x148
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
push 1
push dword [esi + 8]
push ecx
mov ecx, esp
mov dword [ebp - 0x1c], esp
push str.Port_comms_timeouts
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0x1f
push ecx
mov ecx, esp
mov dword [ebp - 0x18], esp
push str.TimeoutErrs
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0x20
mov byte [ebp - 4], 0x1e
mov ecx, dword [ebp - 0x14]
call fcn.004b3310
mov edx, eax
jmp 0x4aa3a6
xor edx, edx
mov byte [ebp - 4], 1
mov eax, 0x13
mov word [edx + 0x90], ax
mov eax, 0x4013
mov word [edx + 0x28], ax
lea eax, [esi + 0x1a78]
mov dword [edx + 0x30], eax
mov eax, dword [edx + 0x78]
or eax, 0x20
mov dword [edx + 0x78], eax
mov ecx, dword [esi + 8]
add ecx, 0xc
push edx
call edi
push 0x148
call ebx
add esp, 4
mov dword [ebp - 0x14], eax
mov byte [ebp - 4], 0x21
test eax, eax
je 0x4aa43e
push 0x148
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
push 1
push dword [esi + 8]
push ecx
mov ecx, esp
mov dword [ebp - 0x1c], esp
push str.Port_read_failures_despite_automatic_read_retries
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0x22
push ecx
mov ecx, esp
mov dword [ebp - 0x18], esp
push str.ReadErrs
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0x23
mov byte [ebp - 4], 0x21
mov ecx, dword [ebp - 0x14]
call fcn.004b3310
mov edx, eax
jmp 0x4aa440
xor edx, edx
mov byte [ebp - 4], 1
mov eax, 0x13
mov word [edx + 0x90], ax
mov eax, 0x4013
mov word [edx + 0x28], ax
lea eax, [esi + 0x1a7c]
mov dword [edx + 0x30], eax
mov eax, dword [edx + 0x78]
or eax, 0x20
mov dword [edx + 0x78], eax
mov ecx, dword [esi + 8]
add ecx, 0xc
push edx
call edi
push 0x148
call ebx
add esp, 4
mov dword [ebp - 0x14], eax
mov byte [ebp - 4], 0x24
test eax, eax
je 0x4aa4d8
push 0x148
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
push 1
push dword [esi + 8]
push ecx
mov ecx, esp
mov dword [ebp - 0x1c], esp
push str.Port_comms_parity_errors
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0x25
push ecx
mov ecx, esp
mov dword [ebp - 0x18], esp
push str.ParityErrs
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0x26
mov byte [ebp - 4], 0x24
mov ecx, dword [ebp - 0x14]
call fcn.004b3310
mov edx, eax
jmp 0x4aa4da
xor edx, edx
mov byte [ebp - 4], 1
mov eax, 0x13
mov word [edx + 0x90], ax
mov eax, 0x4013
mov word [edx + 0x28], ax
lea eax, [esi + 0x1a80]
mov dword [edx + 0x30], eax
mov eax, dword [edx + 0x78]
or eax, 0x20
mov dword [edx + 0x78], eax
mov ecx, dword [esi + 8]
add ecx, 0xc
push edx
call edi
push 0x148
call ebx
add esp, 4
mov dword [ebp - 0x14], eax
mov byte [ebp - 4], 0x27
test eax, eax
je 0x4aa572
push 0x148
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
push 1
push dword [esi + 8]
push ecx
mov ecx, esp
mov dword [ebp - 0x1c], esp
push str.Number_of_times_the_port_has_been_connected
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0x28
push ecx
mov ecx, esp
mov dword [ebp - 0x18], esp
push str.ConnectCount
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0x29
mov byte [ebp - 4], 0x27
mov ecx, dword [ebp - 0x14]
call fcn.004b3310
mov edx, eax
jmp 0x4aa574
xor edx, edx
mov byte [ebp - 4], 1
mov eax, 0x13
mov word [edx + 0x90], ax
mov eax, 0x4013
mov word [edx + 0x28], ax
lea eax, [esi + 0x1ab8]
mov dword [edx + 0x30], eax
mov eax, dword [edx + 0x78]
or eax, 0x20
mov dword [edx + 0x78], eax
mov ecx, dword [esi + 8]
add ecx, 0xc
push edx
call edi
push 0x148
call ebx
add esp, 4
mov dword [ebp - 0x14], eax
mov byte [ebp - 4], 0x2a
test eax, eax
je 0x4aa60c
push 0x148
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
push 1
push dword [esi + 8]
push ecx
mov ecx, esp
mov dword [ebp - 0x1c], esp
push str.Number_of_times_the_port_connection_failed
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0x2b
push ecx
mov ecx, esp
mov dword [ebp - 0x18], esp
push str.ConnectFailureCount
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0x2c
mov byte [ebp - 4], 0x2a
mov ecx, dword [ebp - 0x14]
call fcn.004b3310
mov edx, eax
jmp 0x4aa60e
xor edx, edx
mov byte [ebp - 4], 1
mov eax, 0x13
mov word [edx + 0x90], ax
mov eax, 0x4013
mov word [edx + 0x28], ax
lea eax, [esi + 0x1abc]
mov dword [edx + 0x30], eax
mov eax, dword [edx + 0x78]
or eax, 0x20
mov dword [edx + 0x78], eax
mov ecx, dword [esi + 8]
add ecx, 0xc
push edx
call edi
push 0x148
call ebx
add esp, 4
mov dword [ebp - 0x14], eax
mov byte [ebp - 4], 0x2d
test eax, eax
je 0x4aa6a6
push 0x148
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
push 1
push dword [esi + 8]
push ecx
mov ecx, esp
mov dword [ebp - 0x1c], esp
push str.Count_of_devices_and_ports_using_this_port_connection
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0x2e
push ecx
mov ecx, esp
mov dword [ebp - 0x18], esp
push str.Reference_Count
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0x2f
mov byte [ebp - 4], 0x2d
mov ecx, dword [ebp - 0x14]
call fcn.004b3310
mov edx, eax
jmp 0x4aa6a8
xor edx, edx
mov byte [ebp - 4], 1
mov eax, 3
mov word [edx + 0x90], ax
mov eax, 0x4003
mov word [edx + 0x28], ax
lea eax, [esi + 0xc]
mov dword [edx + 0x30], eax
mov eax, dword [edx + 0x78]
or eax, 0x20
mov dword [edx + 0x78], eax
mov ecx, dword [esi + 8]
add ecx, 0xc
push edx
call edi
push 0x148
call ebx
add esp, 4
mov dword [ebp - 0x14], eax
mov byte [ebp - 4], 0x30
test eax, eax
je 0x4aa73d
push 0x148
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
push 0
push dword [esi + 8]
push ecx
mov ecx, esp
mov dword [ebp - 0x1c], esp
push str.Port_default_timeout
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0x31
push ecx
mov ecx, esp
mov dword [ebp - 0x18], esp
push 0x5a22b0
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0x32
mov byte [ebp - 4], 0x30
mov ecx, dword [ebp - 0x14]
call fcn.004b3310
mov edx, eax
jmp 0x4aa73f
xor edx, edx
mov byte [ebp - 4], 1
mov eax, 0x13
mov word [edx + 0x90], ax
mov eax, 0x4013
mov word [edx + 0x28], ax
lea eax, [esi + 0x10]
mov dword [edx + 0x30], eax
mov eax, dword [edx + 0x78]
or eax, 0x20
mov dword [edx + 0x78], eax
mov ecx, dword [esi + 8]
add ecx, 0xc
push edx
call edi
push 0x148
call ebx
add esp, 4
mov dword [ebp - 0x14], eax
mov byte [ebp - 4], 0x33
test eax, eax
je 0x4aa7d4
push 0x148
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
push 0
push dword [esi + 8]
push ecx
mov ecx, esp
mov dword [ebp - 0x1c], esp
push str.Port_receive_failure_timeout
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0x34
push ecx
mov ecx, esp
mov dword [ebp - 0x18], esp
push str.ReceiveFailureTimeout
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0x35
mov byte [ebp - 4], 0x33
mov ecx, dword [ebp - 0x14]
call fcn.004b3310
mov edx, eax
jmp 0x4aa7d6
xor edx, edx
mov byte [ebp - 4], 1
mov eax, 0x13
mov word [edx + 0x90], ax
mov eax, 0x4013
mov word [edx + 0x28], ax
lea eax, [esi + 0x14]
mov dword [edx + 0x30], eax
mov eax, dword [edx + 0x78]
or eax, 0x20
mov dword [edx + 0x78], eax
mov ecx, dword [esi + 8]
add ecx, 0xc
push edx
call edi
push 0x148
call ebx
add esp, 4
mov dword [ebp - 0x14], eax
mov byte [ebp - 4], 0x36
test eax, eax
je 0x4aa86b
push 0x148
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
push 0
push dword [esi + 8]
push ecx
mov ecx, esp
mov dword [ebp - 0x1c], esp
push str.Disconnect_On_Idle_enable__port_is_closed_if_idle_
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0x37
push ecx
mov ecx, esp
mov dword [ebp - 0x18], esp
push str.DisconnectOnIdle
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0x38
mov byte [ebp - 4], 0x36
mov ecx, dword [ebp - 0x14]
call fcn.004b3310
mov edx, eax
jmp 0x4aa86d
xor edx, edx
mov byte [ebp - 4], 1
mov eax, 0xb
mov word [edx + 0x90], ax
mov eax, 0x400b
mov word [edx + 0x28], ax
lea eax, [esi + 0x46]
mov dword [edx + 0x30], eax
mov eax, dword [edx + 0x78]
or eax, 0x20
mov dword [edx + 0x78], eax
mov ecx, dword [esi + 8]
add ecx, 0xc
push edx
call edi
push 0x148
call ebx
add esp, 4
mov dword [ebp - 0x14], eax
mov byte [ebp - 4], 0x39
test eax, eax
je 0x4aa902
push 0x148
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
push 0
push dword [esi + 8]
push ecx
mov ecx, esp
mov dword [ebp - 0x1c], esp
push str.If_DisconnectOnIdle_enabled__how_long_the_port_needs_to_the_idle_before_disconnecting
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0x3a
push ecx
mov ecx, esp
mov dword [ebp - 0x18], esp
push str.DisconnectOnIdleTime
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0x3b
mov byte [ebp - 4], 0x39
mov ecx, dword [ebp - 0x14]
call fcn.004b3310
mov edx, eax
jmp 0x4aa904
xor edx, edx
mov byte [ebp - 4], 1
mov eax, 0x13
mov word [edx + 0x90], ax
mov eax, 0x4013
mov word [edx + 0x28], ax
lea eax, [esi + 0x48]
mov dword [edx + 0x30], eax
mov eax, dword [edx + 0x78]
or eax, 0x20
mov dword [edx + 0x78], eax
mov ecx, dword [esi + 8]
add ecx, 0xc
push edx
call edi
push 0x148
call ebx
add esp, 4
mov dword [ebp - 0x14], eax
mov byte [ebp - 4], 0x3c
test eax, eax
je 0x4aa999
push 0x148
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
push 1
push dword [esi + 8]
push ecx
mov ecx, esp
mov dword [ebp - 0x1c], esp
push str.Last_message_sent
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0x3d
push ecx
mov ecx, esp
mov dword [ebp - 0x18], esp
push str.LastMesgTx
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0x3e
mov byte [ebp - 4], 0x3c
mov ecx, dword [ebp - 0x14]
call fcn.004b3310
mov edx, eax
jmp 0x4aa99b
xor edx, edx
mov byte [ebp - 4], 1
mov eax, 8
mov word [edx + 0x90], ax
mov eax, 0x401e
mov word [edx + 0x28], ax
lea eax, [esi + 0x274]
mov dword [edx + 0x30], eax
mov eax, dword [edx + 0x78]
or eax, 0x20
mov dword [edx + 0x78], eax
mov ecx, dword [esi + 8]
add ecx, 0xc
push edx
call edi
push 0x148
call ebx
add esp, 4
mov dword [ebp - 0x14], eax
mov byte [ebp - 4], 0x3f
test eax, eax
je 0x4aaa33
push 0x148
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
push 1
push dword [esi + 8]
push ecx
mov ecx, esp
mov dword [ebp - 0x1c], esp
push str.Last_message_received
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0x40
push ecx
mov ecx, esp
mov dword [ebp - 0x18], esp
push str.LastMesgRx
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0x41
mov byte [ebp - 4], 0x3f
mov ecx, dword [ebp - 0x14]
call fcn.004b3310
mov edx, eax
jmp 0x4aaa35
xor edx, edx
mov byte [ebp - 4], 1
mov eax, 8
mov word [edx + 0x90], ax
mov eax, 0x401e
mov word [edx + 0x28], ax
lea eax, [esi + 0xa74]
mov dword [edx + 0x30], eax
mov eax, dword [edx + 0x78]
or eax, 0x20
mov dword [edx + 0x78], eax
mov ecx, dword [esi + 8]
add ecx, 0xc
push edx
call edi
push 0x148
call ebx
add esp, 4
mov dword [ebp - 0x14], eax
mov byte [ebp - 4], 0x42
test eax, eax
je 0x4aaacd
push 0x148
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
push 1
push dword [esi + 8]
push ecx
mov ecx, esp
mov dword [ebp - 0x1c], esp
push str.Comms_port_status
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0x43
push ecx
mov ecx, esp
mov dword [ebp - 0x18], esp
push str.PortStatus
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0x44
mov byte [ebp - 4], 0x42
mov ecx, dword [ebp - 0x14]
call fcn.004b3310
mov edx, eax
jmp 0x4aaacf
xor edx, edx
mov byte [ebp - 4], 1
mov eax, 8
mov word [edx + 0x90], ax
mov eax, 0x401e
mov word [edx + 0x28], ax
lea eax, [esi + 0x1274]
mov dword [edx + 0x30], eax
mov eax, dword [edx + 0x78]
or eax, 0x20
mov dword [edx + 0x78], eax
mov ecx, dword [esi + 8]
add ecx, 0xc
push edx
call edi
push 0x148
call ebx
add esp, 4
mov dword [ebp - 0x14], eax
mov byte [ebp - 4], 0x45
test eax, eax
je 0x4aab67
push 0x148
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
push 1
push dword [esi + 8]
push ecx
mov ecx, esp
mov dword [ebp - 0x1c], esp
push str.Successful_comms_transactions_are_being_receiving_from_at_least_one_device
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0x46
push ecx
mov ecx, esp
mov dword [ebp - 0x18], esp
push str.ReceivingSuccessfully
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0x47
mov byte [ebp - 4], 0x45
mov ecx, dword [ebp - 0x14]
call fcn.004b3310
mov edx, eax
jmp 0x4aab69
xor edx, edx
mov byte [ebp - 4], 1
mov eax, 0xb
mov word [edx + 0x90], ax
mov eax, 0x400b
mov word [edx + 0x28], ax
lea eax, [esi + 0x1ad0]
mov dword [edx + 0x30], eax
mov eax, dword [edx + 0x78]
or eax, 0x20
mov dword [edx + 0x78], eax
mov ecx, dword [esi + 8]
add ecx, 0xc
push edx
call edi
push 0x148
call ebx
add esp, 4
mov ebx, eax
mov dword [ebp - 0x1c], ebx
mov byte [ebp - 4], 0x48
test ebx, ebx
je 0x4aac02
push 0x148
push 0
push ebx
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
push 0
push dword [esi + 8]
push ecx
mov ecx, esp
mov dword [ebp - 0x18], esp
push str.Reset_port_statistics
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0x49
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
push str.Reset
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 0x4a
mov byte [ebp - 4], 0x48
mov ecx, ebx
call fcn.004b3310
mov edx, eax
jmp 0x4aac04
xor edx, edx
mov byte [ebp - 4], 1
mov eax, 0xb
mov word [edx + 0x90], ax
mov eax, 0x400b
mov word [edx + 0x28], ax
lea eax, [esi + 0x1a74]
mov dword [edx + 0x30], eax
mov eax, dword [edx + 0x78]
or eax, 0x20
mov dword [edx + 0x78], eax
mov ecx, dword [esi + 8]
add ecx, 0xc
push edx
call edi
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0xc]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov dword [ebp - 4], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0xc]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8