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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x57a247
mov eax, dword fs:[0]
push eax
sub esp, 0x6c
mov eax, dword [0x640040]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov esi, ecx
mov dword [ebp - 0x54], esi
mov edx, dword [ebp + 8]
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 0x44], ebx
mov edi, dword [ebp + 0x14]
mov dword [ebp - 0x38], edi
mov dword [ebp - 4], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0
mov ecx, dword [ebx + 0x3c]
test ecx, ecx
je 0x4fa4e1
mov eax, dword [ecx]
lea edi, [ebp - 0x24]
push edi
push dword [ebp + 0x1c]
push edx
push ecx
call dword [eax + 0x88]
jmp 0x4fa4f2
mov eax, dword [ebx + 0x30]
mov ecx, dword [eax]
lea edi, [ebp - 0x28]
push edi
push dword [ebp + 0x1c]
push edx
push eax
call dword [ecx + 0x44]
test eax, eax
jne 0x4fac78
cmp dword [ebx + 0x3c], eax
mov eax, dword [ebp - 0x24]
jne 0x4fa505
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x14]
mov ecx, eax
mov edi, dword [sym.imp.ole32.dll_CoTaskMemFree]
test ecx, ecx
jne 0x4fabe6
cmp byte [esi], cl
je 0x4fabe6
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x2c], ecx
xor esi, esi
mov dword [ebp - 0x4c], esi
mov dword [ebp - 0x68], esi
xor eax, eax
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x64], eax
lea edx, [ebp - 0x18]
push edx
cmp dword [ebx + 0x3c], eax
je 0x4fa54d
mov eax, dword [ebp - 0x24]
lea edx, [ebp - 0x2c]
jmp 0x4fa553
mov eax, dword [ebp - 0x28]
lea edx, [ebp - 0x30]
push edx
push 0x14
mov ecx, dword [eax]
push eax
call dword [ecx + 0xc]
mov ecx, eax
mov dword [ebp - 0x50], ecx
test ecx, ecx
je 0x4fa56e
cmp ecx, 1
jne 0x4fabde
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x4fabde
xor ecx, ecx
mov dword [ebp - 0x60], ecx
nop
cmp ecx, eax
jae 0x4fabc0
mov eax, dword [ebp - 0x54]
cmp byte [eax], 0
je 0x4fabc0
cmp dword [ebx + 0x3c], 0
je 0x4fa5ab
lea ebx, [ecx + ecx*4]
shl ebx, 5
add ebx, dword [ebp - 0x2c]
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x64], ebx
jmp 0x4fa5ba
lea esi, [ecx + ecx*2]
shl esi, 4
add esi, dword [ebp - 0x30]
mov dword [ebp - 0x4c], esi
mov dword [ebp - 0x68], esi
push 0x148
call dword [sym.imp.mfc140u.dll_operator]
add esp, 4
mov edi, eax
mov dword [ebp - 0x6c], edi
mov byte [ebp - 4], 1
test edi, edi
je 0x4fa5f0
push 0x148
push 0
push edi
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov ecx, edi
call fcn.004b2ec0
mov ebx, eax
jmp 0x4fa5f2
xor ebx, ebx
mov byte [ebp - 4], 0
test ebx, ebx
jne 0x4fa63b
push 0x499
push str.c:DevjenkinsworkspaceiTools_for_IDMDeployer_V9.87_servermodbusdcmhandler.cpp
push 0x587798
mov eax, dword [0x641a88]
add eax, 0x32c
push eax
call fcn.004ec040
push str.Unable_to_add_new_tag___failed_to_create_memory_in_CIDMDeviceHandler::LoadDCMParameters
push 0x3e9
mov eax, dword [0x641a88]
add eax, 0x32c
push eax
call fcn.004ec2c0
add esp, 0x1c
jmp 0x4fab4f
mov dword [ebp - 0x3c], 0
mov ecx, dword [ebp - 0x38]
mov eax, dword [ecx]
call dword [eax + 0x74]
mov dword [ebx + 0x120], eax
mov eax, dword [ebp - 0x44]
mov ecx, ebx
cmp dword [eax + 0x3c], 0
je 0x4fa66f
mov eax, dword [ebp - 0x48]
mov edi, dword [eax + 0x58]
mov dword [ebp - 0x58], edi
mov dword [ebp - 0x3c], edi
push eax
call fcn.004b4190
jmp 0x4fa67e
mov edi, dword [esi + 0xc]
mov dword [ebp - 0x58], edi
mov dword [ebp - 0x3c], edi
push esi
call fcn.004b3b70
mov ecx, ebx
call fcn.004b5110
push ecx
push ebx
call fcn.00408c60
mov ecx, ebx
call fcn.004b5110
push ecx
push ebx
call fcn.00408d30
mov ecx, ebx
call fcn.004b5110
push eax
push ebx
call fcn.00408d60
cmp byte [0x641c90], 0
jne 0x4fa728
cmp byte [0x641c5e], 0
jne 0x4fa728
mov eax, 0xffff
cmp word [ebx + 0x9c], ax
je 0x4fa728
xorps xmm0, xmm0
movlpd qword [ebp - 0x20], xmm0
mov esi, dword [ebp - 0x38]
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x74]
movzx eax, byte [eax + 0x12d0]
push eax
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x74]
add eax, 0x12d4
push eax
lea ecx, [ebp - 0x20]
call fcn.004f6560
mov byte [ebp - 4], 2
push 0
movzx eax, word [ebx + 0x9c]
push eax
mov eax, dword [ebp - 0x44]
push dword [eax + 0x30]
mov ecx, dword [ebx + 0x120]
add ecx, 0x12ac
call fcn.0043a160
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x20]
call fcn.004f6620
mov al, byte [ebx + 0x72]
and al, 1
mov byte [ebp - 0x31], al
je 0x4fa79a
mov ecx, ebx
call fcn.004b5110
test eax, eax
je 0x4fa79a
mov eax, dword [ebx + 0x78]
shr eax, 0xd
and al, 1
mov byte [ebp - 0x31], al
je 0x4fa75a
mov ecx, ebx
call fcn.004b5110
cmp dword [eax + 0x1404], 0xffffffff
jne 0x4fa770
mov ecx, ebx
call fcn.004b55a0
mov esi, eax
mov ecx, ebx
call fcn.004b5110
mov dword [eax + 0x1404], esi
push dword [ebx + 0xa8]
push edi
push str._s._s
push ecx
mov ecx, ebx
call fcn.004b5110
add esp, 4
add eax, 0x140c
push eax
mov esi, dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__31]
call esi
add esp, 0x10
jmp 0x4fa7a0
mov esi, dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__31]
mov eax, dword [ebx + 0x70]
shr eax, 0x12
and al, 1
mov byte [ebp - 0x31], al
je 0x4fa7da
mov ecx, ebx
call fcn.004b5110
test eax, eax
je 0x4fa7da
push dword [ebx + 0xa8]
push edi
push str._s._s
push ecx
mov ecx, ebx
call fcn.004b5110
add esp, 4
add eax, 0x1410
push eax
call esi
add esp, 0x10
mov edi, dword [ebp - 0x38]
mov dword [ebp - 0x40], edi
mov edx, dword [ebp - 0x58]
mov esi, edx
mov dword [ebp - 0x5c], esi
nop dword [eax + eax]
movzx ecx, word [esi]
test cx, cx
je 0x4fa892
cmp ecx, 0x2e
jne 0x4fa88a
xor ecx, ecx
mov word [esi], cx
add esi, 2
mov dword [ebp - 0x5c], esi
test edi, edi
je 0x4fa844
movzx eax, word [ebx + 0x94]
push eax
push ecx
mov ecx, esp
mov dword [ebp - 0x70], esp
push edx
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], 0
mov ecx, edi
call dword [eax + 0x24]
mov edi, eax
mov dword [ebp - 0x40], edi
mov edx, esi
mov dword [ebp - 0x3c], edx
jmp 0x4fa7f0
push 0x4fe
push str.c:DevjenkinsworkspaceiTools_for_IDMDeployer_V9.87_servermodbusdcmhandler.cpp
push 0x587798
mov eax, dword [0x641a88]
add eax, 0x32c
push eax
call fcn.004ec040
push str.INTERNAL_ERROR___AddGroup_returned_NULL_group__
push 0x3e9
mov eax, dword [0x641a88]
add eax, 0x32c
push eax
call fcn.004ec2c0
add esp, 0x1c
mov edx, esi
mov dword [ebp - 0x3c], edx
jmp 0x4fa7f0
add esi, 2
jmp 0x4fa7e5
test edi, edi
je 0x4fa8bf
movzx eax, word [ebx + 0x94]
push eax
push ecx
mov ecx, esp
mov dword [ebp - 0x74], esp
push edx
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
mov byte [ebp - 4], 4
mov eax, dword [edi]
mov byte [ebp - 4], 0
mov ecx, edi
call dword [eax + 0x24]
mov dword [ebp - 0x40], eax
jmp 0x4fa8fb
push 0x50e
push str.c:DevjenkinsworkspaceiTools_for_IDMDeployer_V9.87_servermodbusdcmhandler.cpp
push 0x587798
mov eax, dword [0x641a88]
add eax, 0x32c
push eax
call fcn.004ec040
push str.INTERNAL_ERROR___AddGroup_returned_NULL_group__
push 0x3e9
mov eax, dword [0x641a88]
add eax, 0x32c
push eax
call fcn.004ec2c0
add esp, 0x1c
mov eax, dword [ebx + 0x70]
shr eax, 0x11
and al, 1
mov byte [ebp - 0x31], al
je 0x4fa9ad
mov ecx, ebx
call fcn.004b5110
test eax, eax
je 0x4fa9ad
mov ecx, ebx
call fcn.004b5110
cmp dword [eax + 0x1554], 0
je 0x4fa9a0
mov ecx, ebx
call fcn.004b5110
mov eax, dword [eax + 0x1554]
mov edi, dword [eax + 0xa8]
mov esi, dword [ebx + 0xa8]
mov ecx, ebx
call fcn.004b55a0
push eax
push esi
mov ecx, ebx
call fcn.004b5110
mov ecx, dword [eax + 0x1554]
call fcn.004b55a0
push eax
push edi
push str.WARNING___Multiple_items_flagged_as_Instrument_Units_items.__Previously_was__s__address__d_.__New_is__s__address__d_
push 0x3e9
mov eax, dword [0x641a88]
add eax, 0x32c
push eax
call fcn.004ec2c0
add esp, 0x1c
push 0x51e
push str.c:DevjenkinsworkspaceiTools_for_IDMDeployer_V9.87_servermodbusdcmhandler.cpp
push 0x587798
mov eax, dword [0x641a88]
add eax, 0x32c
push eax
call fcn.004ec040
add esp, 0x10
mov ecx, ebx
call fcn.004b5110
mov dword [eax + 0x1554], ebx
mov eax, dword [ebx + 0x74]
shr eax, 0xa
and al, 1
mov byte [ebp - 0x31], al
je 0x4fa9c8
mov ecx, ebx
call fcn.004b5110
mov byte [eax + 0x13e1], 1
mov esi, dword [ebp - 0x40]
test esi, esi
je 0x4faa15
mov eax, dword [ebx + 0x70]
test eax, 0x1000
je 0x4fa9f8
push ebx
lea ecx, [esi + 0x5c]
call dword [sym.imp.mfc140u.dll_Ordinal_2006]
test dword [ebx + 0x70], 0x2000
je 0x4faa51
mov eax, dword [esi]
push 0
push ebx
mov ecx, esi
call dword [eax + 0x18]
jmp 0x4faa51
test eax, 0x2000
je 0x4faa09
push ebx
lea ecx, [esi + 0x5c]
call dword [sym.imp.mfc140u.dll_Ordinal_2006]
mov eax, dword [esi]
push 0
push ebx
mov ecx, esi
call dword [eax + 0x18]
jmp 0x4faa51
push 0x548
push str.c:DevjenkinsworkspaceiTools_for_IDMDeployer_V9.87_servermodbusdcmhandler.cpp
push 0x587798
mov eax, dword [0x641a88]
add eax, 0x32c
push eax
call fcn.004ec040
push str.INTERNAL_ERROR___NewGroup_is_NULL__
push 0x3e9
mov eax, dword [0x641a88]
add eax, 0x32c
push eax
call fcn.004ec2c0
add esp, 0x1c
mov al, byte [ebx + 0x78]
and al, 1
mov byte [ebp - 0x31], al
je 0x4fab4f
test dword [ebx + 0x78], 0x10000
je 0x4faafa
mov ecx, ebx
call fcn.004b5110
test eax, eax
je 0x4faabe
mov ecx, ebx
call fcn.004b55a0
dec eax
push eax
push ecx
mov ecx, ebx
call fcn.004b5110
add esp, 4
mov ecx, eax
call fcn.004601e0
mov eax, dword [ebx + 0x78]
shr eax, 0x19
and al, 1
mov byte [ebp - 0x31], al
je 0x4faafa
mov ecx, ebx
call fcn.004ae920
sub eax, 2
push eax
push ecx
mov ecx, ebx
call fcn.004b5110
add esp, 4
mov ecx, eax
call fcn.004601e0
jmp 0x4faafa
push 0x560
push str.c:DevjenkinsworkspaceiTools_for_IDMDeployer_V9.87_servermodbusdcmhandler.cpp
push 0x587798
mov eax, dword [0x641a88]
add eax, 0x32c
push eax
call fcn.004ec040
push str.INTERNAL_ERROR___NewTag_has_no_device__
push 0x3e9
mov eax, dword [0x641a88]
add eax, 0x32c
push eax
call fcn.004ec2c0
add esp, 0x1c
test dword [ebx + 0x78], 0x20000
je 0x4fab4f
mov ecx, ebx
call fcn.004b5110
test eax, eax
je 0x4fab4f
mov ecx, ebx
call fcn.004b55a0
push eax
push ecx
mov ecx, ebx
call fcn.004b5110
add esp, 4
mov ecx, eax
call fcn.004601e0
mov eax, dword [ebx + 0x78]
shr eax, 0x19
and al, 1
mov byte [ebp - 0x31], al
je 0x4fab4f
mov ecx, ebx
call fcn.004ae920
push eax
push ecx
mov ecx, ebx
call fcn.004b5110
add esp, 4
mov ecx, eax
call fcn.004601e0
mov ebx, dword [ebp - 0x44]
cmp dword [ebx + 0x3c], 0
je 0x4fab78
mov ecx, dword [ebp - 0x48]
call fcn.005096d0
mov esi, dword [ebp - 0x4c]
mov edi, dword [sym.imp.ole32.dll_CoTaskMemFree]
mov ecx, dword [ebp - 0x60]
inc ecx
mov dword [ebp - 0x60], ecx
mov eax, dword [ebp - 0x18]
jmp 0x4fa580
mov esi, dword [ebp - 0x4c]
push dword [esi + 8]
mov edi, dword [sym.imp.ole32.dll_CoTaskMemFree]
call edi
mov dword [esi + 8], 0
push dword [esi + 0xc]
call edi
mov dword [esi + 0xc], 0
push dword [esi + 0x10]
call edi
mov dword [esi + 0x10], 0
push dword [esi + 0x14]
call edi
mov dword [esi + 0x14], 0
mov ecx, dword [ebp - 0x60]
inc ecx
mov dword [ebp - 0x60], ecx
mov eax, dword [ebp - 0x18]
jmp 0x4fa580
cmp dword [ebx + 0x3c], 0
je 0x4fabd6
push dword [ebp - 0x2c]
call edi
mov ecx, dword [ebp - 0x50]
mov esi, dword [ebp - 0x54]
jmp 0x4fa513
push dword [ebp - 0x30]
call edi
mov ecx, dword [ebp - 0x50]
mov esi, dword [ebp - 0x54]
jmp 0x4fa513
cmp dword [ebx + 0x3c], 0
mov eax, dword [ebp - 0x24]
jne 0x4fabf2
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov esi, dword [ebp - 0x38]
cmp byte [0x641c90], 0
jne 0x4fac0b
mov ecx, esi
call fcn.004705a0
mov ecx, esi
call fcn.004be780
mov ecx, esi
call fcn.004be4f0
mov ecx, esi
call fcn.004be3f0
mov eax, dword [ebp - 0x54]
cmp byte [eax], 0
je 0x4fac78
mov al, 1
jmp 0x4fac7a
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0055c86d
mov esp, ebp
pop ebp
ret 0x18