Function at 0x140012330
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 8], rcx
sub rsp, 0x28
mov rax, qword [0x140101ac0]
cmp dword [rax + 0x1a3672c], 0
je 0x140012564
test byte [rax + 0x11b0b44], 4
jne 0x140012564
call qword [sym.imp.WINMM.dll_timeGetTime]
mov rdx, qword [0x140101ac0]
mov ecx, eax
sub ecx, dword [0x140101ab8]
cmp ecx, dword [rdx + 0x18cc320]
jb 0x140012564
mov dword [0x140101ab8], eax
mov eax, dword [rdx + 0x18cc3b8]
test eax, eax
jne 0x14001264d
cmp dword [rdx + 0x1a36738], 1
lea rcx, [rdx + 0x11b0ee0]
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x20], rdi
jne 0x140012569
lea rdx, [0x140041b20]
call fcn.140023d70
mov rdi, rax
test rax, rax
je 0x14001257d
mov rcx, qword [0x140101ac0]
mov edx, 0x80
add rcx, 0x11b12e0
mov r9, rax
lea r8d, [rdx - 0x7f]
call fcn.1400251d0
mov rcx, qword [0x140101ac0]
xor esi, esi
mov eax, dword [rcx + 0x18cc38c]
inc eax
test eax, eax
jle 0x140012517
nop dword [rax]
nop word [rax + rax]
mov edx, 0x20
add rcx, 0x11b12e0
mov r9, rdi
lea r8d, [rdx - 0x1f]
call fcn.1400251d0
cmp eax, 1
jl 0x1400124d6
mov rcx, qword [0x140101ac0]
mov r9, rdi
mov r8d, 1
movzx eax, byte [rcx + 0x11b12e9]
movzx ebx, byte [rcx + 0x11b12e8]
shl ebx, 8
or ebx, eax
movzx eax, byte [rcx + 0x11b12ea]
shl ebx, 8
or ebx, eax
movzx eax, byte [rcx + 0x11b12eb]
shl ebx, 8
or ebx, eax
movzx eax, byte [rcx + 0x11b12fc]
mov byte [rsp + 0x30], al
movzx eax, byte [rcx + 0x11b12fd]
mov byte [rsp + 0x31], al
movzx eax, byte [rcx + 0x11b12fe]
mov byte [rsp + 0x32], al
movzx eax, byte [rcx + 0x11b12ff]
mov byte [rsp + 0x33], al
lea eax, [rbx - 0x20]
movss xmm0, dword [rsp + 0x30]
cvtps2pd xmm0, xmm0
movsxd rdx, eax
movsd qword [rcx + 0x18cc3e8], xmm0
add rcx, 0x11b1300
call fcn.1400251d0
mov rcx, qword [0x140101ac0]
inc esi
mov eax, dword [rcx + 0x18cc38c]
inc eax
cmp esi, eax
jl 0x140012410
jmp 0x14001251b
mov rcx, rdi
call fcn.140024288
mov rax, qword [0x140101ac0]
mov rsi, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x20]
mov dword [rax + 0x1a3672c], 0
or dword [rax + 0x11b0b44], 0x400
or dword [rax + 0x11b0b48], 0x80000
add rsp, 0x28
ret
mov ebx, dword [rsp + 0x30]
mov rcx, rdi
call fcn.140024288
mov rdi, qword [0x140101ac0]
add ebx, 0xffffffe0
movsxd r8, ebx
lea rdx, [rdi + 0x11b1300]
lea rcx, [rdi + 0xa0]
call fcn.14001be50
mov eax, ebx
cdq
sub eax, edx
sar eax, 1
mov dword [rdi + 0x18cc2e0], eax
call fcn.140012bd0
mov rsi, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x20]
add rsp, 0x28
ret
lea rdx, [0x140041c9c]
call fcn.140023d70
mov rsi, rax
test rax, rax
jne 0x1400125a2
mov rax, qword [0x140101ac0]
mov rsi, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x20]
mov dword [rax + 0x1a3672c], 0
add rsp, 0x28
ret
mov rcx, qword [0x140101ac0]
mov r8, rsi
add rcx, 0x18b12e0
mov edx, 0x18000
call fcn.1400246d8
mov rbx, qword [0x140101ac0]
xor edi, edi
cmp dword [rbx + 0x18cc38c], edi
jle 0x1400125f5
nop
lea rcx, [rbx + 0x18b12e0]
mov r8, rsi
mov edx, 0x18000
call fcn.1400246d8
mov rbx, qword [0x140101ac0]
inc edi
cmp edi, dword [rbx + 0x18cc38c]
jl 0x1400125d0
xor edx, edx
lea rcx, [rbx + 0x18b12e0]
mov r8d, 0x18000
call fcn.140019d10
mov r8, rsi
lea rcx, [rbx + 0x18b12e0]
mov edx, 0x18000
call fcn.1400246d8
mov rcx, rsi
test rax, rax
je 0x1400124d9
call fcn.140024288
mov rdx, qword [0x140101ac0]
lea r8, [rdx + 0xa0]
add rdx, 0x18b12e0
call fcn.14000fc70
jmp 0x140012550
cmp eax, 3
jne 0x14001265b
add rsp, 0x28
jmp 0x140012670
add rsp, 0x28
jmp 0x1400129c0
push rbp
sub rsp, 0xa0
mov rax, qword [0x140049010]
xor rax, rsp
mov qword [rsp + 0x90], rax
mov rcx, qword [0x140101ac0]
lea rdx, [0x140041c9c]
add rcx, 0x11b0ee0
call fcn.140023d70
mov rbp, rax
test rax, rax
jne 0x1400126bf
mov rax, qword [0x140101ac0]
mov dword [rax + 0x1a3672c], ebp
jmp 0x140012971
mov qword [rsp + 0xb0], rbx
mov rbx, qword [0x140101ac0]
mov qword [rsp + 0xb8], rsi
mov qword [rsp + 0xc0], rdi
mov eax, dword [rbx + 0x58]
cmp dword [rbx + 0x1a36730], 1
lea ecx, [rax + 1]
cmovne ecx, eax
add ecx, 3
imul ecx, dword [rbx + 0x18cc38c]
test ecx, ecx
jle 0x140012721
mov edi, ecx
nop
lea rcx, [rbx + 0x18b12e0]
mov r8, rbp
mov edx, 0x18000
call fcn.1400246d8
mov rbx, qword [0x140101ac0]
sub rdi, 1
jne 0x140012700
cmp dword [rbx + 0x1a36730], 1
jne 0x140012818
lea rcx, [rbx + 0x18b12e0]
mov r8, rbp
mov edx, 0x18000
call fcn.1400246d8
mov rbx, qword [0x140101ac0]
lea rdx, [rsp + 0x50]
add rbx, 0x18b12e0
movabs rdi, 0x100100002401
xor r8d, r8d
movzx ecx, byte [rbx]
cmp cl, 0x2c
ja 0x140012770
bt rdi, rcx
jb 0x140012786
mov byte [rdx], cl
inc rbx
inc rdx
inc r8d
cmp r8d, 0x100
jl 0x140012762
jmp 0x140012789
mov byte [rdx], 0
lea rcx, [rsp + 0x50]
call fcn.14002040c
inc rbx
lea rdx, [rsp + 0x50]
xor r8d, r8d
nop
movzx ecx, byte [rbx]
cmp cl, 0x2c
ja 0x1400127ae
bt rdi, rcx
jb 0x1400127c4
mov byte [rdx], cl
inc rbx
inc rdx
inc r8d
cmp r8d, 0x100
jl 0x1400127a0
jmp 0x1400127c7
mov byte [rdx], 0
lea rcx, [rsp + 0x50]
call fcn.14002040c
xor r8d, r8d
lea rax, [rsp + 0x70]
sub rbx, rax
lea rcx, [rsp + 0x70]
movzx edx, byte [rbx + rcx + 1]
cmp dl, 0x2c
ja 0x1400127f1
bt rdi, rdx
jb 0x140012804
mov byte [rcx], dl
inc r8d
inc rcx
cmp r8d, 0x100
jl 0x1400127e1
jmp 0x140012807
mov byte [rcx], 0
lea rcx, [rsp + 0x70]
call fcn.14002040c
mov rbx, qword [0x140101ac0]
xor edi, edi
xor esi, esi
cmp dword [rbx + 0x58], esi
jle 0x140012868
lea rcx, [rbx + 0x18b12e0]
mov r8, rbp
mov edx, 0x18000
call fcn.1400246d8
test rax, rax
je 0x14001298a
mov rbx, qword [0x140101ac0]
movsxd rax, edi
lea r8, [rbx + 0x18cc674]
add r8, rax
lea rdx, [rbx + 0x18b12e0]
call fcn.14000fbb0
add edi, dword [rbx + 0x50]
inc esi
cmp esi, dword [rbx + 0x58]
jl 0x140012821
mov rcx, rbp
call fcn.140024288
mov r8, qword [0x140101ac0]
or dword [r8 + 0x11b0b44], 4
lea rdx, [r8 + 0x18cc674]
mov eax, dword [r8 + 0x2c]
lea rcx, [r8 + 0x11b0b50]
movsd xmm0, qword [r8 + 0x78]
mov r9d, dword [r8 + 0x58]
mov dword [rsp + 0x30], eax
mov eax, dword [r8 + 0x28]
mov r8d, dword [r8 + 0x50]
mov dword [rsp + 0x28], eax
movsd qword [rsp + 0x20], xmm0
call fcn.140003210
mov rdx, qword [0x140101ac0]
movd xmm0, dword [rdx + 0x11b0b50]
lea r8, [rdx + 0x11b10e0]
mov eax, dword [rdx + 0x11b0b5c]
lea rcx, [rdx + 0x11b0a44]
mov r9d, dword [rdx + 0x18cc38c]
movsd xmm1, qword [rdx + 0x18]
inc r9d
mov dword [rsp + 0x48], eax
mov eax, dword [rdx + 0x11b0b54]
mov dword [rsp + 0x40], eax
mov eax, dword [rdx + 0x1a36734]
cvtdq2pd xmm0, xmm0
divsd xmm0, qword [0x140042f88]
movsd qword [rsp + 0x38], xmm0
movsd xmm0, qword [rdx + 0x80]
lea rdx, str.Playback__s__No._d__d_max_.3lfm___.3lfm_bin__peak_pos_.3lf_angle_d__ddB
movsd qword [rsp + 0x30], xmm0
movsd qword [rsp + 0x28], xmm1
mov dword [rsp + 0x20], eax
call fcn.140001180
mov rax, qword [0x140101ac0]
or dword [rax + 0x11b0b44], 0x10
inc dword [rax + 0x18cc38c]
call qword [sym.imp.WINMM.dll_timeGetTime]
mov rcx, qword [0x140101ac0]
mov dword [rcx + 0x18cc390], eax
mov rsi, qword [rsp + 0xb8]
mov rbx, qword [rsp + 0xb0]
mov rdi, qword [rsp + 0xc0]
mov rcx, qword [rsp + 0x90]
xor rcx, rsp
call fcn.140018440
add rsp, 0xa0
pop rbp
ret
mov rcx, rbp
call fcn.140024288
mov rax, qword [0x140101ac0]
mov dword [rax + 0x1a3672c], 0
or dword [rax + 0x11b0b44], 0x400
or dword [rax + 0x11b0b48], 0x80000
jmp 0x140012959
push rsi
sub rsp, 0x30
mov rcx, qword [0x140101ac0]
lea rdx, [0x140041c9c]
add rcx, 0x11b0ee0
call fcn.140023d70
mov rsi, rax
test rax, rax
jne 0x1400129fb
mov rax, qword [0x140101ac0]
mov dword [rax + 0x1a3672c], esi
add rsp, 0x30
pop rsi
ret
mov rcx, qword [0x140101ac0]
mov r8, rsi
add rcx, 0x18b12e0
mov qword [rsp + 0x40], rbx
mov edx, 0x18000
mov qword [rsp + 0x48], rdi
call fcn.1400246d8
mov rbx, qword [0x140101ac0]
xor edi, edi
cmp dword [rbx + 0x18cc38c], edi
jle 0x140012a56
lea rcx, [rbx + 0x18b12e0]
mov r8, rsi
mov edx, 0x18000
call fcn.1400246d8
mov rbx, qword [0x140101ac0]
inc edi
cmp edi, dword [rbx + 0x18cc38c]
jl 0x140012a31
xor edx, edx
lea rcx, [rbx + 0x18b12e0]
mov r8d, 0x18000
call fcn.140019d10
mov r8, rsi
lea rcx, [rbx + 0x18b12e0]
mov edx, 0x18000
call fcn.1400246d8
mov rcx, rsi
test rax, rax
jne 0x140012ac0
call fcn.140024288
mov rax, qword [0x140101ac0]
mov rbx, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x48]
mov dword [rax + 0x1a3672c], 0
or dword [rax + 0x11b0b44], 0x400
or dword [rax + 0x11b0b48], 0x80000
add rsp, 0x30
pop rsi
ret
call fcn.140024288
mov rbx, qword [0x140101ac0]
xor r10d, r10d
lea rdi, [rbx + 0x18b12e0]
mov r11, rdi
nop dword [rax]
xor r8d, r8d
xor r9d, r9d
xor eax, eax
nop dword [rax + rax]
movzx edx, byte [rax + r11]
lea ecx, [rdx - 0x30]
cmp cl, 9
ja 0x140012b0a
movsx ecx, cl
lea edx, [r8 + r8*4]
lea r8d, [rcx + rdx*2]
jmp 0x140012b15
cmp dl, 0x2d
jne 0x140012b20
mov r9d, 1
inc rax
cmp rax, 0x10
jl 0x140012af0
jmp 0x140012b28
cmp dl, 0x2c
jne 0x140012b28
inc rax
add r11, rax
mov eax, r8d
neg eax
cmp r9d, 1
cmovne eax, r8d
mov dword [rbx + r10*4 + 0x11b0b50], eax
movzx ecx, byte [r11]
lea eax, [rcx - 0x30]
cmp al, 9
jbe 0x140012b53
sub cl, 0x2c
cmp cl, 1
ja 0x140012b5f
inc r10
cmp r10, 0x1000
jl 0x140012ae0
or dword [rbx + 0x11b0b44], 4
lea r8, [rbx + 0x11b10e0]
mov r9d, dword [rbx + 0x18cc38c]
lea rcx, [rbx + 0x11b0a44]
mov eax, dword [rbx + 0x1a36734]
lea rdx, str.Playback__s__No._d__d__s
inc r9d
mov qword [rsp + 0x28], rdi
mov dword [rsp + 0x20], eax
call fcn.140001180
mov rax, qword [0x140101ac0]
or dword [rax + 0x11b0b44], 0x10
inc dword [rax + 0x18cc38c]
call qword [sym.imp.WINMM.dll_timeGetTime]
mov rcx, qword [0x140101ac0]
mov rbx, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x48]
mov dword [rcx + 0x18cc390], eax
add rsp, 0x30
pop rsi
ret