Function at 0x10023780
Capabilities:
Create process on windows
Create thread
Link many functions at runtime
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1008dca7
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x128c4
call fcn.1003a8e0
mov eax, dword [0x100c6084]
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 edi, dword [ebp + 8]
mov dword [ebp - 0x128b4], edi
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 0x128a8], ebx
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x128c0], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x128b0], eax
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0x128a4], eax
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 0x128a0], eax
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0x1289c], eax
mov eax, dword [ebp + 0x24]
mov byte [ebp - 0x128b8], al
xor eax, eax
mov dword [ebp - 0x128c8], eax
mov dword [ebp - 0x128bc], eax
push str.HiFi2_Board_Initialize
push dword [edi]
lea ecx, [ebp - 0x128d4]
call fcn.10007820
mov dword [ebp - 4], 0
push 0x1b54
call fcn.10036de0
add esp, 4
mov dword [ebp - 0x1c], eax
mov byte [ebp - 4], 1
test eax, eax
je 0x1002384e
mov ecx, eax
call fcn.10021190
mov esi, eax
mov dword [ebp - 0x128ac], eax
jmp 0x10023856
xor esi, esi
mov dword [ebp - 0x128ac], esi
mov byte [ebp - 4], 0
mov dword [ebx + 0x48], esi
push 0x4c
push 0
push esi
call fcn.10038880
add esp, 0xc
mov eax, dword [edi]
cmp byte [eax + 0x1e10], 0
je 0x1002395e
cmp dword [ebp - 0x128b0], 0
je 0x100238cd
lea ecx, [ebp - 0x2e64]
call fcn.10020c00
mov byte [ebp - 4], 2
mov dword [ebp - 0x128c8], 1
push dword [ebp - 0x128b0]
lea ecx, [ebp - 0x2e7c]
push ecx
mov ecx, eax
call fcn.10028980
mov ecx, eax
mov dword [ebp - 4], 3
mov eax, 3
mov dword [ebp - 0x128c8], eax
cmp dword [ecx + 0x14], 8
jb 0x100238cf
mov ecx, dword [ecx]
jmp 0x100238cf
xor ecx, ecx
push dword [ebp - 0x1289c]
push ecx
push dword [ebp - 0x128c0]
push str.Platform___i__CommandLine___s__HostType___i_n
push dword [edi]
call fcn.10007490
add esp, 0x14
mov dword [ebp - 4], 2
mov eax, dword [ebp - 0x128c8]
test al, 2
je 0x1002393f
and eax, 0xfffffffd
mov dword [ebp - 0x128c8], eax
cmp dword [ebp - 0x2e68], 8
jb 0x10023922
push dword [ebp - 0x2e7c]
call fcn.10036d8f
add esp, 4
mov eax, dword [ebp - 0x128c8]
mov dword [ebp - 0x2e68], 7
mov dword [ebp - 0x2e6c], 0
xor ecx, ecx
mov word [ebp - 0x2e7c], cx
mov dword [ebp - 4], 0
test al, 1
je 0x1002395e
and eax, 0xfffffffe
mov dword [ebp - 0x128c8], eax
lea ecx, [ebp - 0x2e64]
call fcn.10021ba0
mov eax, dword [ebp - 0x128c0]
test eax, eax
jne 0x10023f1a
cmp dword [esi + 0x30], eax
jne 0x100239c3
mov eax, dword [edi]
cmp byte [eax + 0x1e10], 0
je 0x1002398a
push str.Loading_RTKUSB32.dll..._n
push eax
call fcn.10007490
add esp, 8
push str.RTKUSB32.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov dword [esi + 0x30], eax
push 0x400
lea eax, [ebp - 0x121c]
push eax
push dword [0x10113580]
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x121c]
push eax
push 1
call dword [sym.imp.KERNEL32.dll_GetModuleHandleExW]
mov eax, dword [esi + 0x30]
test eax, eax
je 0x10023eae
push str.RTKUSB_Initialize
push eax
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
call esi
mov ecx, dword [ebp - 0x128ac]
mov dword [ecx + 0x34], eax
push str.RTKUSB_Free
push dword [ecx + 0x30]
call esi
mov ecx, dword [ebp - 0x128ac]
mov dword [ecx + 0x38], eax
push str.RTKUSB_WriteUInt16
push dword [ecx + 0x30]
call esi
mov ecx, dword [ebp - 0x128ac]
mov dword [ecx + 0x3c], eax
push str.RTKUSB_ReadUInt16
push dword [ecx + 0x30]
call esi
mov ecx, dword [ebp - 0x128ac]
mov dword [ecx + 0x40], eax
push str.RTKUSB_ReadUInt32
push dword [ecx + 0x30]
call esi
mov ecx, dword [ebp - 0x128ac]
mov dword [ecx + 0x44], eax
push str.RTKUSB_WriteUInt32
push dword [ecx + 0x30]
call esi
mov esi, dword [ebp - 0x128ac]
mov dword [esi + 0x48], eax
push 0x400
lea eax, [ebp - 0xa1c]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push 0x100
lea eax, [ebp - 0x241c]
push eax
push 0x100
lea eax, [ebp - 0x261c]
push eax
push 0x100
lea eax, [ebp - 0x21c]
push eax
push 3
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0xa1c]
push eax
call fcn.1003a640
add esp, 0x24
cmp byte [0x100cb30e], 0
jne 0x10023ef2
mov eax, dword [edi]
cmp byte [eax + 0x1e10], 0
je 0x10023ab7
push str.Reading_firmware_check_id_and_its_version..._n
push eax
call fcn.10007490
add esp, 8
mov eax, dword [ebx + 0x28]
mov dword [eax + 4], 0
mov eax, dword [ebx + 0x28]
mov dword [eax], 0
mov eax, dword [ebx + 0x28]
mov dword [eax + 8], 0
push 0xc
push 0x5ffcb440
push str.r_alc5677_software_check.bin_0x_X__X
push 0x400
lea eax, [ebp - 0x121c]
push eax
call fcn.10039e72
add esp, 0x14
xor ecx, ecx
jmp 0x10023b00
movzx eax, word [ebp + ecx - 0x1c]
mov word [ebp + ecx - 0x221c], ax
lea ecx, [ecx + 2]
test ax, ax
jne 0x10023b00
lea edx, [ebp - 0x21c]
mov esi, edx
lea ecx, [ecx]
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x10023b20
sub edx, esi
lea edi, [ebp - 0x221c]
add edi, 0xfffffffe
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x10023b36
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
xor ecx, ecx
jmp 0x10023b60
movzx eax, word [ebp + ecx - 0x221c]
mov word [ebp + ecx - 0x1a1c], ax
lea ecx, [ecx + 2]
test ax, ax
jne 0x10023b60
lea edi, [ebp - 0x1a1c]
add edi, 0xfffffffe
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x10023b81
mov ecx, 8
mov esi, str.RTKUSB_dump.exe
rep movsd dword es:[edi], dword [esi]
push str.RTKUSB_dump.exe
call fcn.10025200
push 0x3c
push 0
lea eax, [ebp - 0x2e58]
push eax
call fcn.10038880
add esp, 0x10
mov dword [ebp - 0x2e58], 0x3c
mov dword [ebp - 0x2e54], 0x40
mov dword [ebp - 0x2e50], 0
mov dword [ebp - 0x2e4c], str.open
lea eax, [ebp - 0x1a1c]
mov dword [ebp - 0x2e48], eax
lea eax, [ebp - 0x121c]
mov dword [ebp - 0x2e44], eax
lea eax, [ebp - 0x221c]
mov dword [ebp - 0x2e40], eax
mov dword [ebp - 0x2e3c], 0
mov dword [ebp - 0x2e38], 0
lea eax, [ebp - 0x2e58]
push eax
call dword [sym.imp.SHELL32.dll_ShellExecuteExW]
test eax, eax
je 0x10023cf7
push 0xffffffffffffffff
push dword [ebp - 0x2e20]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
xor ecx, ecx
jmp 0x10023c40
movzx eax, word [ebp + ecx - 0x221c]
mov word [ebp + ecx - 0x2e1c], ax
lea ecx, [ecx + 2]
test ax, ax
jne 0x10023c40
lea edi, [ebp - 0x2e1c]
add edi, 0xfffffffe
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x10023c61
mov ecx, 0xd
mov esi, str.alc5677_software_check.bin
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
push 0x10094808
lea eax, [ebp - 0x2e1c]
push eax
call fcn.10039e8e
add esp, 8
mov esi, eax
test esi, esi
je 0x10023ccf
push esi
push 0xc
push 1
push dword [ebx + 0x28]
call fcn.100395d3
add esp, 0x10
mov edi, dword [ebp - 0x128b4]
mov eax, dword [edi]
cmp byte [eax + 0x1e10], 0
je 0x10023cc4
push 0x10094548
push eax
call fcn.10007490
add esp, 8
push esi
call fcn.10038ac4
add esp, 4
jmp 0x10023d24
mov edi, dword [ebp - 0x128b4]
mov eax, dword [edi]
cmp byte [eax + 0x1e10], 0
je 0x10023d24
lea ecx, [ebp - 0x2e1c]
push ecx
push str.Filed_to_open__s_file._n
push eax
call fcn.10007490
add esp, 0xc
jmp 0x10023d24
mov edi, dword [ebp - 0x128b4]
mov eax, dword [edi]
cmp byte [eax + 0x1e10], 0
je 0x10023d24
lea ecx, [ebp - 0x121c]
push ecx
lea ecx, [ebp - 0x1a1c]
push ecx
push str.Filed_to_execute__s_with_command_line_arguments__s._n
push eax
call fcn.10007490
add esp, 0x10
mov eax, dword [ebx + 0x28]
cmp dword [eax + 4], 0xcd16445c
jne 0x10023d42
cmp dword [eax], 0xf6d29618
jne 0x10023d42
cmp byte [eax + 0xa], 0xf
je 0x10023ea6
mov eax, dword [edi]
cmp byte [eax + 0x1e10], 0
je 0x10023d5b
push str.Incorrect_firmware_or_its_version__re_programming..._n
push eax
call fcn.10007490
add esp, 8
xor ecx, ecx
lea ecx, [ecx]
movzx eax, word [ebp + ecx - 0x1c]
mov word [ebp + ecx - 0x1a1c], ax
lea ecx, [ecx + 2]
test ax, ax
jne 0x10023d60
lea edx, [ebp - 0x21c]
mov esi, edx
lea ecx, [ecx]
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x10023d80
sub edx, esi
lea edi, [ebp - 0x1a1c]
add edi, 0xfffffffe
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x10023d96
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
xor ecx, ecx
jmp 0x10023dc0
movzx eax, word [ebp + ecx - 0x1a1c]
mov word [ebp + ecx - 0x121c], ax
lea ecx, [ecx + 2]
test ax, ax
jne 0x10023dc0
lea edi, [ebp - 0x121c]
add edi, 0xfffffffe
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x10023de1
mov ecx, 9
mov esi, str.RTKUSB_program.bat
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
push 0x38
push 0
lea eax, [ebp - 0x2e54]
push eax
call fcn.10038880
add esp, 0xc
mov dword [ebp - 0x2e58], 0x3c
mov dword [ebp - 0x2e54], 0x40
mov dword [ebp - 0x2e50], 0
mov dword [ebp - 0x2e4c], str.open
lea eax, [ebp - 0x121c]
mov dword [ebp - 0x2e48], eax
mov dword [ebp - 0x2e44], 0x10093f00
lea eax, [ebp - 0x1a1c]
mov dword [ebp - 0x2e40], eax
mov dword [ebp - 0x2e3c], 9
mov dword [ebp - 0x2e38], 0
lea eax, [ebp - 0x2e58]
push eax
call dword [sym.imp.SHELL32.dll_ShellExecuteExW]
push 0xffffffffffffffff
push dword [ebp - 0x2e20]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov edi, dword [ebp - 0x128b4]
mov eax, dword [edi]
cmp byte [eax + 0x1e10], 0
je 0x10023ea6
push 0x10094548
push eax
call fcn.10007490
add esp, 8
mov esi, dword [ebp - 0x128ac]
jmp 0x10023ef2
cmp dword [ebp - 0x1289c], 3
jne 0x10023ec0
cmp byte [edi + 0x1e10], 0
je 0x10023ef2
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Failed_to_access_HiFi2_hardware._Check_if_board_is_connected_and_NI_VISA_driver_is_installed._Error_code:__i
lea eax, [ebp - 0xa1c]
push eax
call fcn.10037779
lea eax, [ebp - 0xa1c]
push eax
push 0xffffffffffffffff
push 0
push dword [ebp - 0x128a0]
call dword [ebp - 0x128a4]
add esp, 0x1c
cmp dword [esi + 0x30], 0
je 0x10024318
mov eax, dword [esi + 0x34]
call eax
mov edx, eax
mov dword [ebp - 0x128bc], edx
test edx, edx
jne 0x10023f23
cmp byte [0x100cb30e], al
jne 0x10023f23
jmp 0x1002432b
cmp eax, 1
jne 0x10024314
cmp byte [esi], 0
jne 0x10023f35
lea eax, [esi + 4]
push eax
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov byte [esi], 1
lea edi, [esi + 0x24]
mov ebx, 2
lea ecx, [ecx]
push 0
push 0
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateEventW]
mov dword [edi], eax
lea edi, [edi + 4]
dec ebx
jne 0x10023f40
lea eax, [esi + 4]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea ecx, [esi + 0x4c]
mov dword [ebp - 0x1c], ecx
mov eax, dword [ecx]
mov eax, dword [eax + 4]
mov dword [ebp - 0x128c4], eax
cmp byte [eax + 0xd], bl
mov ebx, dword [ebp - 0x128a8]
mov edi, dword [ebp - 0x128b4]
jne 0x10023fc2
mov esi, eax
mov ebx, eax
mov edi, ecx
jmp 0x10023f90
push dword [esi + 8]
mov ecx, edi
call fcn.10025b70
mov esi, dword [esi]
push ebx
call fcn.10036d8f
add esp, 4
mov ebx, esi
cmp byte [esi + 0xd], 0
je 0x10023f90
mov ebx, dword [ebp - 0x128a8]
mov edi, dword [ebp - 0x128b4]
mov esi, dword [ebp - 0x128ac]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ecx]
mov dword [eax + 4], eax
mov eax, dword [ecx]
mov dword [eax], eax
mov eax, dword [ecx]
mov dword [eax + 8], eax
mov dword [ecx + 4], 0
lea eax, [esi + 4]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 0x1e70
call fcn.10036de0
add esp, 4
mov dword [ebp - 0x1c], eax
mov byte [ebp - 4], 4
test eax, eax
je 0x1002402f
push ebx
push dword [ebp - 0x128b8]
push dword [ebp - 0x1289c]
push dword [ebp - 0x128a0]
push dword [ebp - 0x128a4]
push dword [ebp - 0x128b0]
push dword [ebp - 0x128c0]
mov ecx, eax
call fcn.10020ed0
mov ecx, eax
mov dword [ebp - 0x128b0], eax
jmp 0x10024037
xor ecx, ecx
mov dword [ebp - 0x128b0], ecx
mov byte [ebp - 4], 0
mov eax, dword [edi]
cmp byte [eax + 0x1e10], 0
je 0x1002408b
lea eax, [ecx + 0x2c]
push eax
lea ecx, [ebp - 0x128b8]
call fcn.100077e0
mov ecx, eax
mov byte [ebp - 4], 5
mov eax, dword [ebx + 0x20]
cdq
push edx
push eax
call fcn.10007810
push eax
push dword [ebp - 0x1289c]
push str.HostType___i__OutDeviceID___s__iSSTModule__0x_X_n
push dword [edi]
call fcn.10007490
add esp, 0x18
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x128b8]
call fcn.10007800
cmp dword [ebp - 0x1289c], 3
je 0x100240c7
mov ecx, dword [ebp - 0x128b0]
add ecx, 0x2c
mov edx, 0x1009406c
mov dword [ebp - 0x1c], 0xc
lea esp, [esp]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100240c7
add ecx, 4
add edx, 4
sub dword [ebp - 0x1c], 4
jae 0x100240b0
jmp 0x100242bc
cmp dword [ebx + 0x20], 0
jne 0x100242bc
mov eax, dword [edi]
cmp dword [ebx + 0x24], 0
jne 0x100242a5
cmp byte [eax + 0x1e10], 0
je 0x100240f4
push str.Loading_iSST_module..._n
push eax
call fcn.10007490
add esp, 8
lea eax, [ebp - 0x2e74]
push eax
push str.D46F9D72_81A4_47FD_B301_8E39D17C0981
call dword [sym.imp.ole32.dll_CLSIDFromString]
mov eax, dword [ebp - 0x128b0]
movdqu xmm0, xmmword [eax + 0x2c]
movdqu xmmword [ebp - 0x2e8c], xmm0
push 0x14
call fcn.10036de0
add esp, 4
mov dword [ebp - 0x128b8], eax
mov byte [ebp - 4], 6
test eax, eax
je 0x10024148
push dword [ebp - 0x1289c]
push dword [edi]
mov ecx, eax
call fcn.10020d50
mov dword [ebp - 0x128c4], eax
jmp 0x10024152
mov dword [ebp - 0x128c4], 0
mov byte [ebp - 4], 0
mov byte [ebp - 4], 7
push 0x34
call fcn.10036de0
add esp, 4
mov ecx, eax
mov dword [ebp - 0x128b8], ecx
mov byte [ebp - 4], 8
test ecx, ecx
je 0x100241a5
push dword [ebp - 0x128c4]
push 0
sub esp, 0x10
mov eax, esp
movdqu xmm0, xmmword [ebp - 0x2e8c]
movdqu xmmword [eax], xmm0
sub esp, 0x10
mov eax, esp
movdqu xmm0, xmmword [ebp - 0x2e74]
movdqu xmmword [eax], xmm0
call fcn.10020cd0
jmp 0x100241a7
xor eax, eax
mov byte [ebp - 4], 7
mov dword [ebx + 0x24], eax
mov eax, dword [edi]
cmp byte [eax + 0x1e10], 0
je 0x100241c7
push 0x10094548
push eax
call fcn.10007490
add esp, 8
mov dword [ebp - 4], 0
jmp 0x100242bc
cmp byte [eax + 0x1e10], 0
je 0x100242bc
push str.iSST_module_is_already_loaded._n
push eax
call fcn.10007490
add esp, 8
mov eax, dword [edi]
cmp byte [eax + 0x1e10], 0
je 0x100242d5
push str.Creating_parameterization_thread..._n
push eax
call fcn.10007490
add esp, 8
push 0
push 0
push dword [ebp - 0x128b0]
push 0x10022bd0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [esi + 0x1c], eax
mov eax, dword [edi]
cmp byte [eax + 0x1e10], 0
je 0x1002430a
push 0x10094548
push eax
call fcn.10007490
add esp, 8
mov byte [ebx + 0x2c], 1
mov eax, dword [ebp - 0x128c0]
test eax, eax
jne 0x10024325
cmp byte [0x100cb30e], 0
jne 0x1002458c
mov edx, dword [ebp - 0x128bc]
mov ecx, 0xc
mov eax, dword [ebx + 0x28]
mov dword [ecx + eax], 0
add ecx, 4
cmp ecx, 0x30c
jl 0x10024330
mov eax, dword [ebp - 0x128c0]
cmp eax, 1
jne 0x100248e0
mov eax, dword [edi]
cmp byte [eax + 0x1e10], 0
je 0x1002436d
push str.Reading_iSST_parameter_addresses..._n
push eax
call fcn.10007490
add esp, 8
mov eax, dword [ebx + 0x28]
mov byte [eax + 8], 1
mov eax, dword [ebx + 0x28]
mov byte [eax + 9], 1
mov eax, dword [ebx + 0x28]
mov byte [eax + 0xa], 9
mov eax, dword [ebx + 0x28]
mov byte [eax + 0xb], 0
mov ecx, dword [ebx + 0x24]
test ecx, ecx
je 0x100245d8
push 0
push 0
lea eax, [ebp - 0x12898]
push eax
call fcn.1002a9c0
mov ecx, eax
test ecx, ecx
je 0x10024419
cmp dword [ebp - 0x12898], 4
jne 0x10024419
mov ecx, dword [ebx + 0x28]
movzx eax, byte [ebp - 0x12894]
mov byte [ecx + 8], al
mov ecx, dword [ebx + 0x28]
movzx eax, byte [ebp - 0x12893]
mov byte [ecx + 9], al
mov ecx, dword [ebx + 0x28]
movzx eax, byte [ebp - 0x12892]
mov byte [ecx + 0xa], al
mov ecx, dword [ebx + 0x28]
movzx eax, byte [ebp - 0x12891]
mov byte [ecx + 0xb], al
mov edx, dword [edi]
cmp byte [edx + 0x1e10], 0
je 0x10024457
mov ecx, dword [ebx + 0x28]
movzx eax, byte [ecx + 0xb]
push eax
movzx eax, byte [ecx + 0xa]
push eax
movzx eax, byte [ecx + 9]
push eax
movzx eax, byte [ecx + 8]
push eax
push str.The_reported_iSST_module_version:__i._i._i._i_n
push edx
call fcn.10007490
add esp, 0x18
jmp 0x10024457
mov eax, dword [edi]
cmp byte [eax + 0x1e10], 0
je 0x1002443b
push 0
push 0xf
push 1
push 1
push ecx
push str.Failed_to_read_iSST_version_with_code_0x_X__using__i._i._i._i._n
push eax
call fcn.10007490
add esp, 0x1c
mov eax, dword [ebx + 0x28]
mov byte [eax + 8], 1
mov eax, dword [ebx + 0x28]
mov byte [eax + 9], 1
mov eax, dword [ebx + 0x28]
mov byte [eax + 0xa], 0xf
mov eax, dword [ebx + 0x28]
mov byte [eax + 0xb], 0
mov ecx, dword [ebx + 0x28]
mov dl, byte [ecx + 8]
cmp dl, 1
ja 0x1002480d
cmp byte [ecx + 9], 1
ja 0x1002480d
cmp byte [ecx + 0xa], 0xf
ja 0x1002480d
cmp byte [ecx + 0xb], 0
ja 0x1002480d
mov eax, dword [edi]
cmp byte [eax + 0x1e10], 0
je 0x100244a2
push 0xc0
push str.Generating_addresses_for__i_parameters..._n
push eax
call fcn.10007490
add esp, 0xc
xor edi, edi
xor edx, edx
lea ecx, [edi + 0xc]
mov esi, 0x10000
mov edi, edi
mov eax, dword [ebx + 0x28]
mov bl, byte [eax + 8]
cmp byte [edx + eax + 0x30c], bl
mov ebx, dword [ebp - 0x128a8]
ja 0x10024555
mov bl, byte [eax + 8]
cmp byte [edx + eax + 0x310], bl
mov ebx, dword [ebp - 0x128a8]
jb 0x10024555
mov bl, byte [eax + 9]
cmp byte [edx + eax + 0x30d], bl
mov ebx, dword [ebp - 0x128a8]
ja 0x10024555
mov bl, byte [eax + 9]
cmp byte [edx + eax + 0x311], bl
mov ebx, dword [ebp - 0x128a8]
jb 0x10024555
mov bl, byte [eax + 0xa]
cmp byte [edx + eax + 0x30e], bl
mov ebx, dword [ebp - 0x128a8]
ja 0x10024555
mov bl, byte [eax + 0xa]
cmp byte [edx + eax + 0x312], bl
mov ebx, dword [ebp - 0x128a8]
jb 0x10024555
mov bl, byte [eax + 0xb]
cmp byte [edx + eax + 0x30f], bl
mov ebx, dword [ebp - 0x128a8]
ja 0x10024555
mov bl, byte [eax + 0xb]
cmp byte [edx + eax + 0x313], bl
mov ebx, dword [ebp - 0x128a8]
jb 0x10024555
mov dword [ecx + eax], esi
inc edi
add esi, 0x10000
add ecx, 4
add edx, 8
cmp ecx, 0x30c
jl 0x100244b0
mov dword [ebp - 0x1c], edi
mov edi, dword [ebp - 0x128b4]
mov eax, dword [edi]
cmp byte [eax + 0x1e10], 0
je 0x1002458c
push dword [ebp - 0x1c]
push str.Done.__i_addresses_generated._n
push eax
call fcn.10007490
add esp, 0xc
mov esi, dword [ebp - 0x128a4]
mov edi, dword [ebp - 0x128a0]
cmp dword [ebx + 0x24], 0
jne 0x100245aa
push 0
push 0xffffffffffffffff
push 0xffffffffffffffff
push edi
call esi
add esp, 0x10
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x128d4]
call fcn.100078a0
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.100368c4
mov esp, ebp
pop ebp
ret
cmp dword [ebx + 0x20], 0
je 0x10024871
mov eax, dword [edi]
cmp byte [eax + 0x1e10], 0
je 0x100245fb
push str.iSST_simulation._n
push eax
call fcn.10007490
add esp, 8
mov eax, dword [edi]
cmp byte [eax + 0x1e10], 0
je 0x10024614
push str.Reading_iSST_parameter_addresses..._n
push eax
call fcn.10007490
add esp, 8
mov dword [ebp - 0x1c], 4
mov dword [ebp - 0x128b8], 0
lea eax, [ebp - 0x128b8]
push eax
lea eax, [ebp - 0x128b0]
push eax
lea eax, [ebp - 0x1c]
push eax
push ecx
mov eax, esp
mov dword [eax], 3
mov ecx, dword [ebx + 0x20]
mov eax, dword [ecx]
push 0
call dword [eax + 0x14]
cmp dword [ebp - 0x1c], 4
jne 0x100246b6
mov ecx, dword [ebx + 0x28]
movzx eax, byte [ebp - 0x128b0]
mov byte [ecx + 8], al
mov ecx, dword [ebx + 0x28]
movzx eax, byte [ebp - 0x128af]
mov byte [ecx + 9], al
mov ecx, dword [ebx + 0x28]
movzx eax, byte [ebp - 0x128ae]
mov byte [ecx + 0xa], al
mov ecx, dword [ebx + 0x28]
movzx eax, byte [ebp - 0x128ad]
mov byte [ecx + 0xb], al
mov edx, dword [edi]
cmp byte [edx + 0x1e10], 0
je 0x100246cf
mov ecx, dword [ebx + 0x28]
movzx eax, byte [ecx + 0xb]
push eax
movzx eax, byte [ecx + 0xa]
push eax
movzx eax, byte [ecx + 9]
push eax
movzx eax, byte [ecx + 8]
push eax
push str.The_reported_iSST_module_version:__i._i._i._i_n
push edx
call fcn.10007490
add esp, 0x18
jmp 0x100246cf
mov eax, dword [edi]
cmp byte [eax + 0x1e10], 0
je 0x100246cf
push str.Failed_to_read_iSST_version__using_default_1.1.9.0._n
push eax
call fcn.10007490
add esp, 8
mov ecx, dword [ebx + 0x28]
mov dl, byte [ecx + 8]
cmp dl, 1
ja 0x1002480d
cmp byte [ecx + 9], 1
ja 0x1002480d
cmp byte [ecx + 0xa], 0xf
ja 0x1002480d
cmp byte [ecx + 0xb], 0
ja 0x1002480d
mov eax, dword [edi]
cmp byte [eax + 0x1e10], 0
je 0x1002471a
push 0xc0
push str.Generating_addresses_for__i_parameters..._n
push eax
call fcn.10007490
add esp, 0xc
xor edi, edi
xor edx, edx
lea ecx, [edi + 0xc]
mov esi, 0x10000
jmp 0x10024730
mov eax, dword [ebx + 0x28]
mov bl, byte [eax + 8]
cmp byte [edx + eax + 0x30c], bl
mov ebx, dword [ebp - 0x128a8]
ja 0x100247d5
mov bl, byte [eax + 8]
cmp byte [edx + eax + 0x310], bl
mov ebx, dword [ebp - 0x128a8]
jb 0x100247d5
mov bl, byte [eax + 9]
cmp byte [edx + eax + 0x30d], bl
mov ebx, dword [ebp - 0x128a8]
ja 0x100247d5
mov bl, byte [eax + 9]
cmp byte [edx + eax + 0x311], bl
mov ebx, dword [ebp - 0x128a8]
jb 0x100247d5
mov bl, byte [eax + 0xa]
cmp byte [edx + eax + 0x30e], bl
mov ebx, dword [ebp - 0x128a8]
ja 0x100247d5
mov bl, byte [eax + 0xa]
cmp byte [edx + eax + 0x312], bl
mov ebx, dword [ebp - 0x128a8]
jb 0x100247d5
mov bl, byte [eax + 0xb]
cmp byte [edx + eax + 0x30f], bl
mov ebx, dword [ebp - 0x128a8]
ja 0x100247d5
mov bl, byte [eax + 0xb]
cmp byte [edx + eax + 0x313], bl
mov ebx, dword [ebp - 0x128a8]
jb 0x100247d5
mov dword [ecx + eax], esi
inc edi
add esi, 0x10000
add ecx, 4
add edx, 8
cmp ecx, 0x30c
jl 0x10024730
mov dword [ebp - 0x128bc], edi
mov edi, dword [ebp - 0x128b4]
mov eax, dword [edi]
cmp byte [eax + 0x1e10], 0
je 0x1002458c
push dword [ebp - 0x128bc]
jmp 0x1002457e
cmp dword [ebp - 0x1289c], 3
jne 0x10024823
cmp byte [edi + 0x1e10], 0
je 0x1002458c
push 0
push 0xf
push 1
push 1
movzx eax, byte [ecx + 0xb]
push eax
movzx eax, byte [ecx + 0xa]
push eax
movzx eax, byte [ecx + 9]
push eax
movzx eax, dl
push eax
push str.Incompatible_version_of_iSST_module__i._i._i._i._Must_be_less_or_equal__i._i._i._i.
lea eax, [ebp - 0xa1c]
push eax
call fcn.10037779
lea eax, [ebp - 0xa1c]
push eax
push 0xffffffffffffffff
push 0
mov edi, dword [ebp - 0x128a0]
push edi
mov esi, dword [ebp - 0x128a4]
call esi
add esp, 0x38
jmp 0x10024598
cmp dword [ebp - 0x1289c], 4
jne 0x1002458c
mov eax, dword [edi]
cmp byte [eax + 0x1e10], 0
je 0x1002489c
push 0xc0
push str.PresetManager:_Generating_addresses_for__i_parameters..._n
push eax
call fcn.10007490
add esp, 0xc
mov ecx, 0xc
mov edx, 0x10000
jmp 0x100248b0
mov eax, dword [ebx + 0x28]
mov dword [ecx + eax], edx
add edx, 0x10000
add ecx, 4
cmp ecx, 0x30c
jl 0x100248b0
mov eax, dword [edi]
cmp byte [eax + 0x1e10], 0
je 0x1002458c
push 0xc0
jmp 0x1002457e
test eax, eax
jne 0x1002458c
cmp byte [0x100cb30e], al
jne 0x1002458c
cmp dword [esi + 0x30], eax
je 0x10024bbb
test edx, edx
jne 0x10024916
mov eax, dword [esi + 0x34]
call eax
test eax, eax
jne 0x10024916
cmp byte [0x100cb30e], al
je 0x10024bbb
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call esi
mov dword [ebp - 0x128b8], eax
mov ecx, dword [edi]
cmp byte [ecx + 0x1e10], 0
je 0x1002493d
push str.Checking_if_Sound_Research_software_is_running_on_the_board..._n
push ecx
call fcn.10007490
add esp, 8
mov edi, dword [ebp - 0x128ac]
mov eax, dword [ebx + 0x28]
cmp dword [eax + 4], 0xcd16445c
jne 0x10024969
cmp dword [eax], 0xf6d29618
je 0x10024995
call esi
mov ecx, dword [ebp - 0x128b8]
add ecx, 0x3e8
cmp eax, ecx
jae 0x10024995
xor esi, esi
jmp 0x10024970
mov eax, dword [ebx + 0x28]
add eax, esi
push eax
lea eax, [esi + 0x5ffcb440]
push eax
mov eax, dword [edi + 0x44]
call eax
add esp, 8
add esi, 4
cmp esi, 0xc
jl 0x10024970
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
jmp 0x10024943
mov eax, dword [ebx + 0x28]
cmp dword [eax + 4], 0xcd16445c
mov edi, dword [ebp - 0x128b4]
jne 0x10024b65
cmp dword [eax], 0xf6d29618
jne 0x10024b65
mov eax, dword [edi]
cmp byte [eax + 0x1e10], 0
je 0x100249d0
push 0x10094548
push eax
call fcn.10007490
add esp, 8
mov edx, dword [edi]
cmp byte [edx + 0x1e10], 0
je 0x10024a00
mov ecx, dword [ebx + 0x28]
movzx eax, byte [ecx + 0xb]
push eax
movzx eax, byte [ecx + 0xa]
push eax
movzx eax, byte [ecx + 9]
push eax
movzx eax, byte [ecx + 8]
push eax
push str.Software_version:__i._i._i._i_n
push edx
call fcn.10007490
add esp, 0x18
mov eax, dword [edi]
cmp byte [eax + 0x1e10], 0
je 0x10024a19
push str.Reading_parameter_addresses_via_RTKUSB..._n
push eax
call fcn.10007490
add esp, 8
mov ecx, dword [ebx + 0x28]
mov dl, byte [ecx + 8]
cmp dl, 1
ja 0x10024afe
cmp byte [ecx + 9], 1
ja 0x10024afe
cmp byte [ecx + 0xa], 0xf
ja 0x10024afe
cmp byte [ecx + 0xb], 0
ja 0x10024afe
xor esi, esi
mov edi, 0x5ffcb44c
lea ecx, [ecx]
mov eax, dword [ebx + 0x28]
mov cl, byte [eax + 8]
cmp byte [eax + esi*8 + 0x30c], cl
ja 0x10024ac0
cmp byte [eax + esi*8 + 0x310], cl
jb 0x10024ac0
mov cl, byte [eax + 9]
cmp byte [eax + esi*8 + 0x30d], cl
ja 0x10024ac0
cmp byte [eax + esi*8 + 0x311], cl
jb 0x10024ac0
mov cl, byte [eax + 0xa]
cmp byte [eax + esi*8 + 0x30e], cl
ja 0x10024ac0
cmp byte [eax + esi*8 + 0x312], cl
jb 0x10024ac0
mov cl, byte [eax + 0xb]
cmp byte [eax + esi*8 + 0x30f], cl
ja 0x10024ac0
cmp byte [eax + esi*8 + 0x313], cl
jb 0x10024ac0
lea eax, [eax + esi*4]
add eax, 0xc
push eax
push edi
mov eax, dword [ebp - 0x128ac]
mov eax, dword [eax + 0x44]
call eax
add esp, 8
add edi, 4
cmp esi, 0xffffffff
jne 0x10024ad9
push 0x100a3439
lea eax, [ebp - 0x1289c]
push eax
call fcn.10037779
add esp, 8
inc esi
cmp esi, 0xc0
jl 0x10024a50
mov esi, dword [ebp - 0x128a4]
mov edi, dword [ebp - 0x128a0]
mov byte [0x100cb30e], 1
jmp 0x10024598
cmp dword [ebp - 0x1289c], 3
jne 0x10024b10
cmp byte [edi + 0x1e10], 0
je 0x10024ae6
push 0
push 0xf
push 1
push 1
movzx eax, byte [ecx + 0xb]
push eax
movzx eax, byte [ecx + 0xa]
push eax
movzx eax, byte [ecx + 9]
push eax
movzx eax, dl
push eax
push str.Board_is_running_incompatible_version_of_Sound_Research_software:__i._i._i._i._Failed_to_re_program_to_version__i._i._i._i.
lea eax, [ebp - 0xa1c]
push eax
call fcn.10037779
lea eax, [ebp - 0xa1c]
push eax
push 0xffffffffffffffff
push 0
mov edi, dword [ebp - 0x128a0]
push edi
mov esi, dword [ebp - 0x128a4]
call esi
add esp, 0x38
mov byte [0x100cb30e], 1
jmp 0x10024598
mov eax, dword [edi]
cmp byte [eax + 0x1e10], 0
je 0x10024b7e
push str.Failed._n
push eax
call fcn.10007490
add esp, 8
cmp dword [ebp - 0x1289c], 3
jne 0x10024b94
cmp byte [edi + 0x1e10], 0
je 0x10024ae6
push str.Board_is_not_running_Sound_Research_software.
push 0xffffffffffffffff
push 0
mov edi, dword [ebp - 0x128a0]
push edi
mov esi, dword [ebp - 0x128a4]
call esi
add esp, 0x10
mov byte [0x100cb30e], 1
jmp 0x10024598
cmp dword [ebp - 0x1289c], 3
jne 0x10024bd1
cmp byte [edi + 0x1e10], 0
je 0x1002458c
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Failed_to_initialize_communication_channel_with_HiFi2_hardware._Check_if_board_is_connected_and_not_in_use_by_other_application._Error_code:__i
lea eax, [ebp - 0xa1c]
push eax
call fcn.10037779
lea eax, [ebp - 0xa1c]
push eax
push 0xffffffffffffffff
push 0
mov edi, dword [ebp - 0x128a0]
push edi
mov esi, dword [ebp - 0x128a4]
call esi
add esp, 0x1c
jmp 0x10024598