Function at 0x404fd0
Capabilities:
Check for time delay via queryperformancecounter
Get file version info

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x422756
mov eax, dword fs:[0]
push eax
mov eax, 0x4f00
call fcn.0040e930
mov eax, dword [0x42e430]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push 0x210
lea eax, [ebp - 0x1460]
push 0
push eax
call fcn.0040cae0
add esp, 0xc
lea ecx, [ebp - 0x1460]
call fcn.004023a0
push 0x3990
lea eax, [ebp - 0x4df0]
mov dword [ebp - 4], 0
push 0
push eax
call fcn.0040cae0
add esp, 0xc
lea ecx, [ebp - 0x4df0]
call fcn.00401260
lea eax, [ebp - 0x1234]
mov byte [ebp - 4], 1
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
lea eax, [ebp - 0x1224]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
lea eax, [ebp - 0x1250]
push eax
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
push 0x104
lea eax, [ebp - 0x218]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [ebp - 0x1238]
push eax
lea eax, [ebp - 0x218]
push eax
call sub.VERSION.dll_GetFileVersionInfoSizeW
mov esi, eax
push esi
call fcn.0040c1cf
mov ebx, eax
add esp, 4
mov dword [ebp - 0x4e04], ebx
test ebx, ebx
jne 0x405144
push esi
push str.OUT_OF_MEMORY__new__TYP___u_NULL
lea eax, [ebp - 0x1218]
push 0x400
push eax
call fcn.0040ca4d
add esp, 0x10
lea eax, [ebp - 0x1218]
push eax
push str._s_a_n
call fcn.0040ca18
add esp, 8
test ebx, ebx
je 0x4050f3
push ebx
call fcn.0040cc32
add esp, 4
lea eax, [ebp - 0x1250]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
mov esi, 1
lea ecx, [ebp - 0x4df0]
mov byte [ebp - 4], 0
call fcn.004012f0
lea ecx, [ebp - 0x1460]
mov dword [ebp - 4], 0xffffffff
call fcn.004023d0
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0040ca69
mov esp, ebp
pop ebp
ret
push ebx
push esi
push 0
lea eax, [ebp - 0x218]
push eax
call sub.VERSION.dll_GetFileVersionInfoW
push str.VarFileInfoTranslation
lea eax, [ebp - 0xa18]
push 0x400
push eax
call fcn.0040ca4d
add esp, 0xc
lea eax, [ebp - 0x121c]
push eax
lea eax, [ebp - 0x4df8]
push eax
lea eax, [ebp - 0xa18]
push eax
push ebx
call sub.VERSION.dll_VerQueryValueW
test eax, eax
je 0x405268
cmp dword [ebp - 0x121c], 0
je 0x405268
mov ecx, dword [ebp - 0x4df8]
movzx eax, word [ecx + 2]
push eax
movzx eax, word [ecx]
push eax
push str.StringFileInfo_04x_04xInternalName
lea eax, [ebp - 0xa18]
push 0x400
push eax
call fcn.0040ca4d
add esp, 0x14
lea eax, [ebp - 0x121c]
push eax
lea eax, [ebp - 0x4df4]
push eax
lea eax, [ebp - 0xa18]
push eax
push ebx
call sub.VERSION.dll_VerQueryValueW
mov ecx, dword [ebp - 0x4df8]
movzx eax, word [ecx + 2]
push eax
movzx eax, word [ecx]
push eax
push str.StringFileInfo_04x_04xFileVersion
lea eax, [ebp - 0xa18]
push 0x400
push eax
call fcn.0040ca4d
add esp, 0x14
lea eax, [ebp - 0x121c]
push eax
lea eax, [ebp - 0x4dfc]
push eax
lea eax, [ebp - 0xa18]
push eax
push ebx
call sub.VERSION.dll_VerQueryValueW
mov ecx, dword [ebp - 0x4df8]
movzx eax, word [ecx + 2]
push eax
movzx eax, word [ecx]
push eax
push str.StringFileInfo_04x_04xComments
lea eax, [ebp - 0xa18]
push 0x400
push eax
call fcn.0040ca4d
add esp, 0x14
lea eax, [ebp - 0x121c]
push eax
lea eax, [ebp - 0x4e00]
push eax
lea eax, [ebp - 0xa18]
push eax
push ebx
call sub.VERSION.dll_VerQueryValueW
jmp 0x405286
mov dword [ebp - 0x4df4], 0
mov dword [ebp - 0x4dfc], 0
mov dword [ebp - 0x4e00], 0
push 3
lea eax, [ebp - 0x4f08]
push str.Jun__2_2022
lea ecx, [ebp - 0x4f0c]
mov dword [ebp - 0x4f0c], eax
call fcn.00401720
push dword [ebp - 0x4f0c]
lea eax, [ebp - 0xa18]
push 0x400
push eax
call fcn.0040c9bc
mov eax, dword [ebp - 0x4f0c]
lea ecx, [ebp - 0x4f08]
add esp, 0xc
cmp eax, ecx
je 0x4052d7
push eax
call fcn.0040c91b
add esp, 4
lea eax, [ebp - 0xa18]
push 0x400
push eax
call fcn.0040cfad
lea eax, [ebp - 0xa18]
push eax
push str.___UNICODE__
push str.__CONSOLE32__
push dword [ebp - 0x4dfc]
push dword [ebp - 0x4df4]
push str._s__s__s_s___s__n
call fcn.0040ca18
add esp, 0x20
lea eax, [ebp - 0x1218]
lea ecx, [ebp - 0x1460]
push 0x400
push eax
push 0x66
call fcn.00402410
test eax, eax
jne 0x4050d2
lea eax, [ebp - 0x1218]
push eax
push str._LOADING__s_n
call fcn.0040ca18
push str._OPEN_VXL_API_...
call fcn.0040ca18
add esp, 0xc
lea eax, [ebp - 0x1218]
lea ecx, [ebp - 0x4df0]
push 0x400
push eax
call fcn.004017e0
test eax, eax
jne 0x4050d2
push 0x424b90
call fcn.0040ca18
xor edi, edi
add esp, 4
cmp dword [ebp - 0x4ddc], edi
jbe 0x405417
lea esi, [ebp - 0x4d8e]
mov ebx, 0x423e04
movzx eax, byte [esi + 7]
movzx ecx, byte [esi - 2]
push eax
movzx eax, byte [esi]
push eax
movzx eax, byte [esi - 1]
push eax
push dword [ecx*4 + section..data]
push ecx
push edi
push str.___02u_HW_TYPE_ui_03u___10s__HW_INDEX_u_HW_CHANNEL_u_CHANNEL_INDEX_02u
call fcn.0040ca18
mov eax, dword [esi + 0x14]
add esp, 0x1c
test eax, 0x10000
je 0x4053cf
mov eax, 0x424c30
jmp 0x4053ea
test eax, 0x40000
je 0x4053dd
mov eax, str.FLEXRAY
jmp 0x4053ea
test eax, 0x400000
mov eax, 0x424c48
cmove eax, ebx
push eax
push str.___8s
call fcn.0040ca18
push 0x424c60
call fcn.0040ca18
inc edi
add esp, 0xc
add esi, 0xe3
cmp edi, dword [ebp - 0x4ddc]
jb 0x405396
mov ebx, dword [ebp - 0x4e04]
push 0x424c64
call fcn.0040ca18
add esp, 4
lea eax, [ebp - 0xa18]
lea ecx, [ebp - 0x4df0]
push 0x400
push eax
call fcn.00401340
push 0x424b90
call fcn.0040ca18
add esp, 4
lea eax, [ebp - 0x122c]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov edx, dword [ebp - 0x1228]
mov ecx, dword [ebp - 0x122c]
call fcn.0040ecff
mov edx, dword [ebp - 0x1220]
mov ecx, dword [ebp - 0x1224]
movsd qword [ebp - 0x4e08], xmm0
call fcn.0040ecff
movsd xmm1, qword [ebp - 0x4e08]
mov edx, dword [ebp - 0x1230]
subsd xmm1, xmm0
mov ecx, dword [ebp - 0x1234]
movsd qword [ebp - 0x4e08], xmm1
call fcn.0040ecff
movsd xmm1, qword [ebp - 0x4e08]
sub esp, 8
divsd xmm1, xmm0
movsd qword [esp], xmm1
push dword [ebp - 0x4df4]
push str._s_FINISHED__T_cpu__f_s__n
call fcn.0040ca18
push ebx
call fcn.0040cc32
add esp, 0x14
lea eax, [ebp - 0x1250]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
xor esi, esi
jmp 0x405105