Function at 0x140008de0
Capabilities:
Get common file path
Get file size
Print debug messages
Read file on windows

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0xac0]
sub rsp, 0xbc0
mov rax, qword [0x14004e038]
xor rax, rsp
mov qword [rbp + 0xab0], rax
mov r12, r8
mov qword [rsp + 0x48], r8
mov rsi, rdx
mov rbx, rcx
xor edx, edx
lea rcx, [rbp + 0x2b0]
mov r8d, 0x200
call fcn.140011520
xor r13b, r13b
mov dword [r12], 0xff
mov edx, 0x100
mov byte [rsp + 0x40], r13b
lea rcx, [rbp + 0x4b0]
mov byte [rsp + 0x41], r13b
mov byte [rsp + 0x42], r13b
call qword [sym.imp.api_ms_win_core_sysinfo_l1_1_0.dll_GetSystemDirectoryW]
lea r9, [rbp + 0x4b0]
mov qword [rsp + 0x20], rsi
lea r8, str._sdrivers_s
mov edx, 0x200
lea rcx, [rbp + 0x2b0]
call fcn.140001140
lea rdx, str..dat
lea rcx, [rbp + 0x2b0]
call qword [sym.imp.SHLWAPI.dll_StrStrIW]
mov rdi, rax
test rax, rax
je 0x14000905d
xor edx, edx
lea rcx, [rbp + 0x230]
mov r8d, 0x80
call fcn.140011520
xor edx, edx
lea rcx, [rsp + 0x60]
mov r8d, 0x250
call fcn.140011520
xor edx, edx
lea rcx, [rbp + 0x1b0]
mov r8d, 0x80
call fcn.140011520
lea rcx, [rbp + 0x230]
call fcn.140004430
lea r9, [rbp + 0x230]
mov edx, 8
lea r8, str.Metering::Get_DatIDFromDefaultSpk:_s_n
mov rcx, rbx
call fcn.140006650
lea r9, [rbp + 0x230]
mov edx, 0x80
lea r8, str.__s.dat
lea rcx, [rbp + 0x1b0]
call fcn.140001140
movaps xmm0, xmmword [rbp + 0x1b0]
lea rdx, [rsp + 0x60]
mov eax, dword [rbp + 0x1d8]
lea rcx, [rbp + 0x2b0]
movaps xmm1, xmmword [rbp + 0x1c0]
movups xmmword [rdi], xmm0
movsd xmm0, qword [rbp + 0x1d0]
movups xmmword [rdi + 0x10], xmm1
movsd qword [rdi + 0x20], xmm0
mov dword [rdi + 0x28], eax
movzx eax, word [rbp + 0x1dc]
mov word [rdi + 0x2c], ax
call qword [sym.imp.api_ms_win_core_file_l1_1_0.dll_FindFirstFileW]
mov r14, rax
cmp rax, 0xffffffffffffffff
je 0x140008fa9
lea rax, [rbp - 0x74]
mov edx, 0x200
lea r9, [rbp + 0x4b0]
mov qword [rsp + 0x20], rax
lea r8, str._sdrivers_s
lea rcx, [rbp + 0x2b0]
call fcn.140001140
mov rcx, r14
call qword [sym.imp.api_ms_win_core_file_l1_1_0.dll_FindClose]
jmp 0x14000905d
xor eax, eax
lea r9, [rbp + 0x230]
lea r8, str.__s.dat
mov qword [rbp + 0x240], rax
mov edx, 0x80
mov qword [rbp + 0x248], rax
lea rcx, [rbp + 0x1b0]
call fcn.140001140
movaps xmm2, xmmword [rbp + 0x1c0]
lea rdx, [rsp + 0x60]
movaps xmm0, xmmword [rbp + 0x1b0]
lea rcx, [rbp + 0x2b0]
movups xmmword [rdi], xmm0
movsd qword [rdi + 0x10], xmm2
movdqa xmm0, xmm2
pextrw eax, xmm2, 6
psrldq xmm0, 8
movd dword [rdi + 0x18], xmm0
mov word [rdi + 0x1c], ax
call qword [sym.imp.api_ms_win_core_file_l1_1_0.dll_FindFirstFileW]
lea r9, [rbp + 0x4b0]
mov edx, 0x200
lea r8, str._sdrivers_s
mov rdi, rax
lea rcx, [rbp + 0x2b0]
cmp rax, 0xffffffffffffffff
je 0x140009053
lea rax, [rbp - 0x74]
mov qword [rsp + 0x20], rax
call fcn.140001140
mov rcx, rdi
call qword [sym.imp.api_ms_win_core_file_l1_1_0.dll_FindClose]
jmp 0x14000905d
mov qword [rsp + 0x20], rsi
call fcn.140001140
lea r9, [rbp + 0x2b0]
mov edx, 8
lea r8, str.Metering::GetSupportFunctionFromDAT:_DAT_read:_s_n
mov rcx, rbx
call fcn.140006650
xor r15d, r15d
lea rcx, [rbp + 0x2b0]
mov qword [rsp + 0x30], r15
xor r9d, r9d
mov dword [rsp + 0x28], r15d
mov edx, 0x80000000
mov dword [rsp + 0x20], 3
lea r8d, [r15 + 1]
call qword [sym.imp.api_ms_win_core_file_l1_1_0.dll_CreateFileW]
mov rdi, rax
cmp rax, 0xffffffffffffffff
je 0x140009364
xor edx, edx
mov dword [rsp + 0x58], r15d
mov rcx, rax
call qword [sym.imp.api_ms_win_core_file_l1_1_0.dll_GetFileSize]
mov edx, eax
lea ecx, [r15 + 0x40]
mov esi, eax
mov r14d, eax
call qword [sym.imp.api_ms_win_core_heap_l2_1_0.dll_GlobalAlloc]
mov qword [rsp + 0x50], rax
mov r12, rax
mov rcx, rdi
test rax, rax
jne 0x14000910b
call qword [sym.imp.api_ms_win_core_handle_l1_1_0.dll_CloseHandle]
test byte [rbx + 0x270], 1
je 0x140009400
lea rcx, str.FMAPOService:_Cannot_allocate_param_memory_r_n
call qword [sym.imp.api_ms_win_core_debug_l1_1_0.dll_OutputDebugStringW]
xor al, al
jmp 0x1400093ae
lea r9, [rsp + 0x58]
mov qword [rsp + 0x20], r15
mov r8d, esi
mov rdx, r12
call qword [sym.imp.api_ms_win_core_file_l1_1_0.dll_ReadFile]
cmp dword [rsp + 0x58], esi
je 0x14000915a
mov rcx, r12
call qword [sym.imp.api_ms_win_core_heap_l2_1_0.dll_GlobalFree]
mov rcx, rdi
call qword [sym.imp.api_ms_win_core_handle_l1_1_0.dll_CloseHandle]
test byte [rbx + 0x270], 1
je 0x140009400
lea rcx, str.FMAPOService:_Read_param_file_fail_r_n
call qword [sym.imp.api_ms_win_core_debug_l1_1_0.dll_OutputDebugStringW]
xor al, al
jmp 0x1400093ae
mov eax, dword [r12]
add r14, r12
cmp eax, 0x99833642
jne 0x14000916f
mov esi, 0xc
jmp 0x14000917f
cmp eax, 0x9182da6c
jne 0x1400093d8
mov esi, 0x1c
mov rcx, rdi
call qword [sym.imp.api_ms_win_core_handle_l1_1_0.dll_CloseHandle]
lea rax, [r12 + 4]
cmp rax, r14
jae 0x140009356
cmp word [rax], r15w
jne 0x1400091a3
cmp word [rax + 2], r15w
je 0x1400091d1
mov rdx, rsi
nop word [rax + rax]
mov ecx, dword [rax + 4]
lea rax, [rax + 4]
add ecx, ecx
lea rax, [rax + rcx*2]
sub rdx, 1
jne 0x1400091b0
add rax, 4
cmp rax, r14
jb 0x140009196
jmp 0x140009356
mov ecx, dword [rax + 4]
add rax, 4
add ecx, ecx
lea rdx, [rax + rcx*2]
cmp rdx, r14
ja 0x140009356
mov r8d, dword [rdx + 4]
add rdx, 4
test r8d, r8d
je 0x140009356
mov r11, qword [rsp + 0x48]
mov esi, 0x150
xor r12b, r12b
lea ecx, [rsi + 1]
lea edi, [rsi + 0x3c]
lea r9d, [rsi + 2]
lea r10d, [rsi + 3]
add rdx, 4
cmp rdx, r14
ja 0x140009351
movzx eax, word [rdx]
cmp ax, si
jne 0x140009235
movzx eax, word [rdx + 2]
mov r13b, 1
mov dword [r11], eax
movzx eax, word [rdx]
cmp ax, cx
jne 0x14000924e
movzx eax, word [rdx + 2]
mov dword [rbx + 0x258], eax
mov byte [rbx + 0x25c], 1
movzx eax, word [rdx]
cmp ax, r9w
jne 0x140009268
movzx eax, word [rdx + 2]
mov dword [rbx + 0x260], eax
mov byte [rbx + 0x264], 1
movzx eax, word [rdx]
cmp ax, r10w
jne 0x1400092a1
movzx ecx, word [rdx + 2]
mov eax, 0xf
test cl, 4
mov r9d, 0x13
mov r10b, 1
cmove ax, r9w
mov byte [rsp + 0x40], r10b
mov word [rbx + 0x148], ax
mov eax, ecx
mov dword [rbx + 0x14c], ecx
movzx eax, word [rdx]
jmp 0x1400092a7
movzx r10d, byte [rsp + 0x40]
mov ecx, 0x154
cmp ax, cx
jne 0x1400092c7
movzx eax, word [rdx + 2]
mov cl, 1
mov word [rbx + 0x150], ax
movzx eax, word [rdx]
mov byte [rsp + 0x41], cl
jmp 0x1400092cc
movzx ecx, byte [rsp + 0x41]
mov r9d, 0x155
cmp ax, r9w
jne 0x1400092f0
movzx eax, word [rdx + 2]
mov r9b, 1
mov word [rbx + 0x152], ax
movzx eax, word [rdx]
mov byte [rsp + 0x42], r9b
jmp 0x1400092f6
movzx r9d, byte [rsp + 0x42]
cmp ax, di
jne 0x140009309
movzx eax, word [rdx + 2]
mov r12b, 1
mov word [rbx + 0x154], ax
cmp byte [rbx + 0x25c], 0
je 0x140009333
test r13b, r13b
je 0x140009333
cmp byte [rbx + 0x264], 0
je 0x140009333
test cl, cl
je 0x140009333
test r9b, r9b
je 0x140009333
test r10b, r10b
je 0x140009333
test r12b, r12b
jne 0x140009351
inc r15w
mov ecx, 0x151
movzx eax, r15w
lea r9d, [rcx + 1]
lea r10d, [rcx + 2]
cmp eax, r8d
jb 0x140009213
mov r12, qword [rsp + 0x50]
mov rcx, r12
call qword [sym.imp.api_ms_win_core_heap_l2_1_0.dll_GlobalFree]
mov r12, qword [rsp + 0x48]
test byte [rbx + 0x270], 0x40
je 0x1400093aa
mov r9d, dword [r12]
lea rax, [rbp + 0x2b0]
movzx ecx, r13b
lea r8, str.Support_function_0x_X__return__d___s__r_n
mov qword [rsp + 0x28], rax
mov edx, 0x400
mov dword [rsp + 0x20], ecx
lea rcx, [rbp + 0x6b0]
call fcn.140001140
lea rcx, [rbp + 0x6b0]
call qword [sym.imp.api_ms_win_core_debug_l1_1_0.dll_OutputDebugStringW]
movzx eax, r13b
mov rcx, qword [rbp + 0xab0]
xor rcx, rsp
call fcn.14000c610
mov rbx, qword [rsp + 0xc18]
add rsp, 0xbc0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov rcx, r12
call qword [sym.imp.api_ms_win_core_heap_l2_1_0.dll_GlobalFree]
mov rcx, rdi
call qword [sym.imp.api_ms_win_core_handle_l1_1_0.dll_CloseHandle]
test byte [rbx + 0x270], 1
je 0x140009400
lea rcx, str.FMAPOService:_Param_file_format_incorrect_r_n
call qword [sym.imp.api_ms_win_core_debug_l1_1_0.dll_OutputDebugStringW]
xor al, al
jmp 0x1400093ae