Function at 0x18005f8f0
Capabilities:
Get common file path
Get file size
Read file on windows

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x440]
sub rsp, 0x540
mov rax, qword [0x180097ee8]
xor rax, rsp
mov qword [rbp + 0x430], rax
mov rax, qword [rbp + 0x4a0]
lea edi, [rcx + 0xc]
mov r11, qword [rsp + 0x60]
xor ebx, ebx
mov rsi, qword [rbp + 0x4a8]
mov r10, rdx
mov qword [rsp + 0x70], rdx
mov r15, r8
mov qword [rsp + 0x58], r9
mov r13d, ecx
mov dword [rsp + 0x4c], ecx
lea rdx, [0x180000000]
mov qword [rbp - 0x80], rax
mov dword [rsp + 0x44], edi
mov qword [rsp + 0x50], r11
cmp ecx, edi
jae 0x18005fc9f
mov rax, qword [rsp + 0x60]
lea r12d, [rcx - 0xa4]
mov r14, qword [rbp - 0x50]
mov rdi, qword [rbp - 0x50]
mov qword [rbp - 0x60], rax
mov eax, dword [rsp + 0x44]
nop word [rax + rax]
cmp r12d, 0x30
ja case.default.0x18005f9ad
movzx eax, byte [rdx + r12 + 0x6037c]
mov ecx, dword [rdx + rax*4 + 0x60348]
add rcx, rdx
jmp rcx
test rsi, rsi
je 0x18005fc97
mov r14, qword [rsi - 8]
cmp r14, qword [r15]
jb case.0x18005f9ad.12
mov rax, rsi
jmp 0x180060116
mov rax, qword [r15]
lea rdx, [rbp - 0x58]
mov qword [rbp - 0x58], rax
mov r8, r10
mov rax, qword [r9]
xor ecx, ecx
mov qword [rsp + 0x60], rax
mov r9d, 0x100
lea rax, [rsp + 0x60]
mov qword [rsp + 0x20], rax
call fcn.180048da0
mov qword [rbp - 0x68], rax
test rax, rax
je 0x18005fa30
mov rcx, qword [rbp - 0x80]
mov rdx, rsi
mov r8, qword [rcx]
mov rcx, rax
call sub.VCRUNTIME140.dll_memcpy
lea r8, [rdi + 8]
mov qword [rsp + 0x60], r14
mov r9, rsi
lea rdx, [rsp + 0x60]
mov ecx, 0x25
call fcn.1800151f0
mov r11, qword [rsp + 0x50]
jmp 0x18005fbf7
mov qword [r10 + 0x60], r9
jmp case.0x18005f9ad.12
mov eax, dword [0x18008df38]
mov dword [rbp + 0x9a], eax
movzx eax, word [0x18008df3c]
mov word [rbp + 0x9e], ax
mov word [rbp + 0xa0], bx
jmp case.0x18005f9ad.12
xor edx, edx
mov r8d, 0x288
mov rcx, r10
call sub.VCRUNTIME140.dll_memset
mov r10, qword [rsp + 0x70]
mov r11, qword [rsp + 0x50]
mov qword [r10 + 0x260], 0xffffffffffffffff
mov byte [r10 + reloc.SHELL32.dll_SHChangeNotification_Lock], 1
mov dword [r10 + 0x28], 0x238
jmp 0x18005fbfc
mov rax, qword [rbp - 0x68]
mov qword [rsp + 0x68], rax
jmp case.0x18005f9ad.12
mov rax, qword [r9]
lea rcx, [rax + rax*8]
mov rax, qword [r10 + 0x70]
mov r8, qword [rax + rcx*8]
lea rdi, [rax + rcx*8]
mov rdx, qword [r8 + 8]
cmp rdx, r14
jb 0x18005fc01
mov rcx, qword [r8]
sub rdx, r14
add rcx, rdx
cmp rcx, rsi
jne 0x18005fc01
mov r9, qword [r15]
add r9, rdx
cmp r9, qword [r8 + 0x10]
ja 0x18005fbfc
mov r8d, 0x83
nop dword [rax]
mov eax, r8d
sub eax, 0x83
je 0x18005fb28
sub eax, 1
je 0x18005fb1a
cmp eax, 1
je case.0x18005f9ad.6
jmp 0x18005fb3d
mov rax, qword [rdi]
mov qword [rsp + 0x68], rsi
mov qword [rax + 8], r9
jmp 0x18005fb3d
mov rcx, qword [rdi]
mov rax, qword [r15]
mov rdx, qword [rcx + 8]
mov rcx, qword [rcx]
sub rdx, r14
mov qword [rdx + rcx - 8], rax
inc r8d
cmp r8d, 0x86
jb 0x18005fb00
jmp 0x18005fbfc
mov r8d, 4
lea rdx, [0x18008dfa6]
lea rcx, [rbp + 0x80]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcsncat]
mov r11, qword [rsp + 0x50]
jmp 0x18005fbf7
mov r8d, 2
lea rdx, [0x18008e00c]
lea rcx, [rbp + 0x80]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcsncat]
mov r11, qword [rsp + 0x50]
jmp 0x18005fbf7
mov r8d, 4
lea rdx, [0x18008e0da]
lea rcx, [rbp + 0x80]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcsncpy]
mov eax, dword [0x18008e10e]
mov r11, qword [rsp + 0x50]
mov dword [rbp + 0x88], eax
movzx eax, word [0x18008e112]
mov word [rbp + 0x8c], ax
mov word [rbp + 0x8e], bx
jmp 0x18005fbf7
mov rax, qword [r10 + 0x40]
xor r8d, r8d
mov r9, rax
mov qword [rbp - 0x60], rax
mov edx, 0xbc
xor ecx, ecx
call fcn.180035100
mov r11, rax
mov qword [rsp + 0x50], rax
mov r10, qword [rsp + 0x70]
mov r9, qword [rsp + 0x58]
lea rdx, [0x180000000]
mov eax, dword [rsp + 0x44]
inc r13d
inc r12d
cmp r13d, eax
jb 0x18005f990
mov ecx, dword [rsp + 0x4c]
mov rdi, qword [rbp - 0x60]
lea esi, [rcx + 0x580]
mov dword [rsp + 0x44], esi
cmp ecx, esi
jae case.0x18005f9ad.6
mov r12, qword [rbp - 0x50]
movzx r13d, byte [rsp + 0x40]
movzx r14d, byte [rsp + 0x40]
mov r15d, dword [rbp - 0x68]
lea r8, [0x180064450]
cmp ecx, 0x1c8
ja 0x18005ff45
je 0x18005fd5d
mov eax, ecx
sub eax, 0xa4
je 0x18005fd37
sub eax, 0x24
je 0x18005fce9
sub eax, 0x5c
je 0x18005fcb7
sub eax, 0x24
je 0x18005fcad
cmp eax, 0x5c
jne 0x1800602b0
mov qword [r10 + 0x98], r8
mov byte [rsp + 0x68], bl
jmp 0x1800602b0
mov rax, rbx
jmp 0x180060116
mov rdi, qword [rsp + 0x60]
mov qword [rbp - 0x60], rdi
jmp 0x18005fc23
mov byte [rsp + 0x40], 1
jmp 0x1800602b0
mov qword [rsp + 0x28], rbx
mov r9d, 0x2f
xor r8d, r8d
mov qword [rsp + 0x20], rdi
xor edx, edx
mov rcx, r11
call fcn.18003b870
mov r11, qword [rsp + 0x50]
mov rax, qword [r11]
mov qword [rdi + 8], rax
mov qword [rdi + 0x10], rbx
jmp 0x1800602ac
cmp qword [r10 + 0x18], 8
mov rcx, r10
mov dword [rbp + 0xa0], 0x30003f
mov word [rbp + 0xa4], bx
jb 0x18005fd07
mov rcx, qword [r10]
xor r9d, r9d
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x28], 0x80
mov edx, 0x80000000
mov dword [rsp + 0x20], 3
lea r8d, [r9 + 3]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov qword [rbp - 0x80], rax
jmp 0x1800602a7
mov rax, qword [r10 + 0x40]
xor r9d, r9d
mov qword [rsp + 0x28], rax
xor edx, edx
mov r8d, 0x12c
mov qword [rsp + 0x20], rbx
mov rcx, r11
call fcn.180031a80
jmp 0x1800602a7
cmp qword [rbp - 0x80], 0xffffffffffffffff
jne 0x18005ff3d
mov esi, ebx
nop word [rax + rax]
cmp esi, 7
ja case.default.0x18005fd85
mov eax, esi
mov ecx, dword [rdx + rax*4 + 0x603b0]
add rcx, rdx
jmp rcx
movsd xmm0, qword [str.rror]
movabs rax, 0x20002e0070
mov qword [rbp + 0xc2], rax
mov eax, dword [0x18008e170]
mov dword [rbp + 0xc8], 0x45
movsd qword [rbp + 0xca], xmm0
mov dword [rbp + 0xd2], eax
jmp case.default.0x18005fd85
movsd xmm0, qword [str._1_x]
movzx eax, word [0x18008e180]
movsd qword [rbp + 0xd4], xmm0
mov word [rbp + 0xdc], ax
mov byte [rsp + 0x48], 1
jmp case.default.0x18005fd85
lea rcx, [rbp + 0xa8]
sub rcx, 2
cmp word [rcx + 2], bx
lea rcx, [rcx + 2]
jne 0x18005fdf6
mov eax, dword [0x18008e184]
mov dword [rcx], eax
movzx eax, word [0x18008e188]
mov word [rcx + 4], ax
jmp case.default.0x18005fd85
mov word [rbp + 0xa8], bx
jmp case.default.0x18005fd85
movzx eax, byte [rsp + 0x48]
cmp r12, 0xf
mov ecx, ebx
cmovbe ecx, eax
mov byte [rsp + 0x48], cl
cmp cl, 0
je case.default.0x18005fd85
mov edi, 0x19
cmp edi, 0x19
je 0x18005fe71
cmp edi, 0xa8c
je 0x18005fe68
cmp edi, 0x14ff
jne 0x18005fe88
lea rdx, [rbp - 0x28]
mov ecx, r12d
call qword [sym.imp.WINMM.dll_joyGetPosEx]
jmp 0x18005fe88
mov dword [rbp - 0x28], 0x34
jmp 0x18005fe88
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp - 0x28], xmm0
mov dword [rbp + 8], eax
mov r12, rbx
movups xmmword [rbp - 0x18], xmm0
movups xmmword [rbp - 8], xmm0
add edi, 0xa73
cmp edi, 0x1f59
jbe 0x18005fe44
jmp case.default.0x18005fd85
movups xmm0, xmmword [str.PCS_PSAD56_UTM_zone_18S]
movups xmm1, xmmword [0x18008e1a0]
movups xmmword [rbp + 0xe0], xmm0
movups xmm0, xmmword [0x18008e1b0]
movups xmmword [rbp + 0xf0], xmm1
movups xmmword [rbp + 0x100], xmm0
call qword [sym.imp.WINMM.dll_joyGetNumDevs]
mov r12d, eax
jmp case.default.0x18005fd85
movsd xmm0, qword [str._not]
lea rdx, str._Sto
movabs rax, 0x64006c0075
lea rcx, [rbp + 0xa8]
mov qword [rbp + 0xac], rax
mov r8d, 4
movzx eax, word [0x18008e1c8]
mov word [rbp + 0xba], ax
movsd qword [rbp + 0xb2], xmm0
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcsncat]
inc esi
lea rdx, [0x180000000]
lea eax, [rsi + 0x12a]
cmp eax, 0x132
jb 0x18005fd70
mov ecx, dword [rsp + 0x4c]
mov esi, dword [rsp + 0x44]
mov r11, qword [rsp + 0x50]
mov dword [rbp - 0x70], ebx
jmp 0x1800602b0
mov eax, ecx
sub eax, 0x224
je case.0x18005f9ad.6
sub eax, 0x24
je 0x1800601d1
sub eax, 0x80
je 0x1800601a9
sub eax, 0x80
je 0x18005ffd5
cmp eax, 0x80
jne 0x1800602b0
movzx r14d, byte [rsp + 0x40]
test r14b, r14b
je 0x18006033b
mov edi, dword [rbp - 0x68]
mov ebx, 0x78
nop
mov eax, ebx
sub eax, 0x78
je 0x180060324
sub eax, 1
je 0x18006031d
cmp eax, 1
jne 0x180060330
mov rsi, qword [rsp + 0x60]
lea rdx, [rbp - 0x40]
mov rcx, rsi
mov r9d, edi
xor r8d, r8d
call qword [sym.imp.WINMM.dll_mmioDescend]
test eax, eax
je 0x1800602f8
xor r14b, r14b
jmp 0x180060330
mov eax, dword [rsp + 0x78]
cmp eax, dword [rbp - 0x70]
je 0x180060182
mov esi, 1
nop word [rax + rax]
cmp esi, 0x1fd
ja 0x1800600fa
je 0x180060060
mov eax, esi
sub eax, 1
je 0x180060058
sub eax, 0x7f
je 0x180060050
sub eax, 0x7f
je 0x180060033
cmp eax, 0x7f
jne 0x18006016a
mov qword [r9 + 0x10], rbx
mov rax, r9
cmp qword [r9 + 0x18], 0x10
jb 0x180060029
mov rax, qword [r9]
mov byte [rax], bl
mov dword [rbp - 0x78], ebx
jmp 0x18006016a
mov qword [rbp - 0x50], rbx
mov dword [rbp - 0x74], 0x36
call qword [sym.imp.WINMM.dll_waveInGetNumDevs]
mov dword [rbp - 0x48], eax
mov qword [rbp - 0x58], rbx
jmp 0x18006016a
mov r14b, 1
jmp 0x18006016a
mov r13b, 1
jmp 0x18006016a
cmp dword [rbp - 0x48], ebx
mov ecx, ebx
mov r9d, dword [rbp - 0x78]
mov r8, qword [rbp - 0x58]
mov edx, dword [rbp - 0x74]
movzx eax, r14b
cmovne ecx, eax
lea rax, [rbp + 0x220]
movzx r14d, cl
mov qword [rsp + 0x20], rax
mov rcx, qword [rbp - 0x50]
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
mov dword [rbp - 0x68], eax
test r14b, r14b
je 0x18006016a
mov edi, 0xcc
mov ecx, edi
sub ecx, 0xcc
je 0x1800600eb
sub ecx, 1
je 0x1800600d3
cmp ecx, 1
jne 0x1800600ee
test r14b, r14b
je 0x1800600ee
mov r8d, 0x104
lea rdx, [rbp + 0x110]
mov ecx, r15d
call qword [sym.imp.WINMM.dll_waveInGetErrorTextA]
jmp 0x1800600ee
lea rdx, [rbp - 0x44]
xor ecx, ecx
call qword [sym.imp.WINMM.dll_waveInGetID]
mov r15d, eax
test eax, eax
jne 0x1800600ee
xor r14b, r14b
jmp 0x1800600ee
mov dword [rbp - 0x44], ebx
inc edi
cmp edi, 0xcf
jb 0x1800600a2
jmp 0x18006016a
mov eax, esi
sub eax, 0x27c
je 0x18006015f
sub eax, 0x7f
je 0x180060140
cmp eax, 0x7f
jne 0x18006016a
mov byte [rsp + 0x68], bl
mov rax, qword [rsp + 0x68]
mov rcx, qword [rbp + 0x430]
xor rcx, rsp
call fcn.180067b60
mov rbx, qword [rsp + 0x580]
add rsp, 0x540
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
test r13b, r13b
je 0x18006016a
mov r8d, dword [rbp - 0x78]
lea r9, [rbp + 0x220]
mov rdx, qword [rbp - 0x58]
mov ecx, dword [rbp - 0x74]
call qword [sym.imp.SHELL32.dll_SHSetFolderPathW]
jmp 0x18006016a
cmp dword [rbp - 0x68], ebx
movzx r13d, r13b
cmovne r13d, ebx
mov r9, qword [rsp + 0x58]
add esi, 0x7f
cmp esi, 0x3f8
jbe 0x18005fff0
mov esi, dword [rsp + 0x44]
xor r8d, r8d
xor ecx, ecx
lea edx, [r8 + 0x7f]
call qword [sym.imp.KERNEL32.dll_EnumTimeFormatsA]
movzx eax, byte [rsp + 0x40]
mov ecx, ebx
cmp qword [rsp + 0x60], rcx
cmovne ecx, eax
mov byte [rsp + 0x40], cl
jmp 0x1800602a7
mov rcx, qword [rbp - 0x80]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor r8d, r8d
lea rdx, [rbp + 0x10]
lea rcx, [rbp + 0x80]
call qword [sym.imp.WINMM.dll_mmioOpenW]
mov qword [rsp + 0x60], rax
jmp 0x1800602a7
mov rcx, qword [rbp - 0x80]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov rdi, qword [rsp + 0x58]
xorps xmm0, xmm0
mov dword [rsp + 0x78], eax
xor eax, eax
mov ecx, dword [rsp + 0x78]
movups xmmword [rbp + 0x10], xmm0
mov r8, qword [rdi + 0x10]
mov dword [rbp + 0x70], eax
movups xmmword [rbp + 0x20], xmm0
movups xmmword [rbp + 0x30], xmm0
movups xmmword [rbp + 0x40], xmm0
movups xmmword [rbp + 0x50], xmm0
movups xmmword [rbp + 0x60], xmm0
cmp rcx, r8
ja 0x180060229
mov qword [rdi + 0x10], rcx
mov rax, rdi
cmp qword [rdi + 0x18], 0x10
jb 0x180060224
mov rax, qword [rdi]
mov byte [rax + rcx], bl
jmp 0x180060282
mov rdx, qword [rdi + 0x18]
mov rsi, rcx
mov rax, rdx
sub rsi, r8
sub rax, r8
cmp rsi, rax
ja 0x180060269
mov qword [rdi + 0x10], rcx
mov rax, rdi
cmp rdx, 0x10
jb 0x18006024e
mov rax, qword [rdi]
lea rdi, [rax + r8]
xor edx, edx
mov rcx, rdi
mov r8, rsi
call sub.VCRUNTIME140.dll_memset
mov byte [rdi + rsi], bl
mov rdi, qword [rsp + 0x58]
jmp 0x18006027e
mov r9, rsi
mov byte [rsp + 0x20], bl
xor r8d, r8d
mov rdx, rsi
mov rcx, rdi
call fcn.180006da0
mov esi, dword [rsp + 0x44]
xor edx, edx
mov rcx, rdi
call fcn.1800082c0
mov r8d, dword [rsp + 0x78]
lea r9, [rbp - 0x70]
mov rcx, qword [rbp - 0x80]
mov rdx, rax
mov qword [rsp + 0x20], rbx
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov r11, qword [rsp + 0x50]
mov ecx, dword [rsp + 0x4c]
sub ecx, 0xffffff80
mov dword [rsp + 0x4c], ecx
cmp ecx, esi
jae case.0x18005f9ad.6
mov r9, qword [rsp + 0x58]
lea rdx, [0x180000000]
mov r10, qword [rsp + 0x70]
mov rdi, qword [rbp - 0x60]
jmp 0x18005fc49
mov r8d, 8
lea rdx, [rbp + 0xa8]
lea rcx, [rbp + 0xe0]
call qword [sym.imp.SHLWAPI.dll_StrCmpNIW]
jmp 0x18006010d
test r14b, r14b
je 0x180060330
mov r8d, edi
lea rdx, [rbp - 0x40]
mov rcx, rsi
call qword [sym.imp.WINMM.dll_mmioAscend]
mov edx, reloc.SHELL32.dll_ILFindLastID
mov rcx, rsi
call qword [sym.imp.WINMM.dll_mmioClose]
jmp 0x180060330
mov edi, reloc.SHELL32.dll_ILFindLastID
jmp 0x180060330
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp - 0x40], xmm0
mov dword [rbp - 0x30], eax
inc ebx
cmp ebx, 0x7b
jb 0x18005ff90
mov byte [rsp + 0x68], 1
jmp case.0x18005f9ad.6