Function at 0x140053360
Capabilities:
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 - 0x1f]
sub rsp, 0xc0
xor r15b, r15b
movaps xmmword [rsp + 0xb0], xmm6
lea rbx, [rdx + 8]
movzx esi, r9b
mov r13, r8
mov r14, rdx
mov rdi, rcx
cmp rbx, r8
jge 0x1400534e9
movzx r12d, byte [rbp + 0x7f]
movsd xmm6, qword [0x14012c8e0]
nop
mov rcx, qword [rdi + 0x70]
xor r9d, r9d
xor r8d, r8d
mov rdx, r14
call qword [sym.imp.KERNEL32.dll_SetFilePointerEx]
mov rcx, qword [rdi + 0x70]
lea r9, [rbp - 0x71]
xor eax, eax
lea rdx, [rbp - 0x69]
mov dword [rbp - 0x71], eax
mov qword [rsp + 0x20], rax
lea r8d, [rax + 8]
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov ecx, dword [rbp - 0x65]
mov rax, qword [rbp - 0x69]
lea r14d, [rcx + 1]
add r14, rbx
and r14, 0xfffffffffffffffe
cmp eax, 0x544d4349
ja 0x14005350e
je 0x14005341b
cmp eax, 0x46464952
je 0x140053486
cmp eax, 0x4d414e49
je 0x14005341b
cmp eax, 0x504f4349
jne 0x1400534dc
test ecx, ecx
je 0x1400534dc
mov edx, eax
lea rcx, [rbp - 0x49]
call fcn.14008a080
test al, al
je 0x1400534dc
mov ecx, dword [rbp - 0x65]
call fcn.1400b609c
mov rbx, rax
test rax, rax
je 0x1400534dc
mov r8d, dword [rbp - 0x65]
lea r9, [rbp - 0x71]
mov rcx, qword [rdi + 0x70]
xor eax, eax
mov rdx, rbx
mov dword [rbp - 0x71], eax
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov r9d, dword [rbp - 0x65]
lea rcx, [rdi + 0x58]
mov edx, dword [rbp - 0x49]
mov r8, rbx
call fcn.140025fb0
mov rcx, rbx
call fcn.1400b60a4
jmp 0x1400534dc
mov rcx, qword [rdi + 0x70]
lea r9, [rbp - 0x71]
xor eax, eax
lea rdx, [rbp + 0x6f]
mov dword [rbp - 0x71], eax
mov qword [rsp + 0x20], rax
lea r8d, [rax + 4]
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [rbp + 0x6f]
cmp eax, 0x20495641
je 0x1400534bb
cmp eax, 0x58495641
jne 0x140053c69
movzx r9d, sil
mov byte [rsp + 0x20], r12b
mov r8, r14
lea rdx, [rbx + 4]
mov rcx, rdi
call fcn.140053360
mov ecx, eax
shr ecx, 0x1f
test cl, cl
jne 0x1400534eb
lea rbx, [r14 + 8]
cmp rbx, r13
jl 0x1400533b0
xor eax, eax
mov rbx, qword [rsp + 0x100]
movaps xmm6, xmmword [rsp + 0xb0]
add rsp, 0xc0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
cmp eax, 0x5453494c
je 0x140053bd5
cmp eax, 0x66727473
je 0x1400535d7
cmp eax, 0x68727473
jne 0x1400534dc
mov rcx, qword [rdi + 0x70]
lea r9, [rbp - 0x71]
xor eax, eax
lea rdx, [rbp - 0x41]
mov dword [rbp - 0x71], eax
mov qword [rsp + 0x20], rax
lea r8d, [rax + 0x40]
call qword [sym.imp.KERNEL32.dll_ReadFile]
test sil, sil
jne 0x140053556
inc dword [rdi + 0x2cc]
cmp dword [rbp - 0x41], 0x73647561
jne 0x1400534e9
mov ecx, dword [rdi + 0x28c]
lea eax, [rcx + 1]
mov dword [rdi + 0x28c], eax
cmp dword [rdi + 0x288], ecx
jne 0x1400534e9
test sil, sil
jne 0x1400535cf
mov eax, dword [rdi + 0x2cc]
mov ecx, dword [rbp - 0x29]
dec eax
mov dword [rdi + 0x2d0], eax
test ecx, ecx
je 0x1400535cf
mov eax, dword [rbp - 0x21]
xorps xmm1, xmm1
xorps xmm0, xmm0
cvtsi2sd xmm0, rcx
cvtsi2sd xmm1, rax
mov eax, dword [rbp - 0x2d]
divsd xmm1, xmm0
movsd qword [rdi + 0x2d8], xmm1
cmp eax, 1
jbe 0x1400535cf
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, xmm1
movsd qword [rdi + 0x2d8], xmm0
mov r15b, 1
jmp 0x1400534dc
test r15b, r15b
je 0x1400534dc
test sil, sil
jne 0x1400534dc
mov rcx, qword [rdi + 0x70]
lea r9, [rbp - 0x71]
xor eax, eax
lea rdx, [rbp - 0x59]
mov dword [rbp - 0x71], eax
mov qword [rsp + 0x20], rax
lea r8d, [rax + 0xe]
call qword [sym.imp.KERNEL32.dll_ReadFile]
movzx eax, word [rbp - 0x57]
mov dword [rdi + 0x20], eax
mov eax, dword [rbp - 0x55]
mov dword [rdi + 0x28], eax
movzx eax, word [rbp - 0x59]
mov ecx, eax
mov word [rdi + 0x2c8], ax
mov eax, 0x180
cmp ecx, eax
ja 0x140053988
je case.0x140053660.176
dec ecx
cmp ecx, 0xfe
ja case.0x140053660.3
movsxd rax, ecx
lea rdx, [0x140000000]
movzx eax, byte [rdx + rax + 0x53cb4]
mov ecx, dword [rdx + rax*4 + 0x53c88]
add rcx, rdx
jmp rcx
mov rcx, qword [rdi + 0x70]
lea r9, [rbp - 0x71]
xor eax, eax
lea rdx, [rbp + 0x67]
mov dword [rbp - 0x71], eax
mov qword [rsp + 0x20], rax
lea r8d, [rax + 2]
call qword [sym.imp.KERNEL32.dll_ReadFile]
movzx eax, word [rbp + 0x67]
mov dword [rdi + 0x2ac], eax
cmp eax, 0x20
ja 0x140053c7d
lea rcx, [rdi + 0x58]
mov r9d, 0xffffffff
lea edx, [r9 + 3]
cmp eax, 0x18
jbe 0x1400536b9
lea r8, [0x14012f1e8]
call fcn.140025fb0
jmp 0x140053bb0
cmp eax, 0x14
jbe 0x1400536cf
lea r8, [0x14012f1d8]
call fcn.140025fb0
jmp 0x140053bb0
cmp eax, 0x10
jbe 0x1400536e5
lea r8, [0x140130040]
call fcn.140025fb0
jmp 0x140053bb0
cmp eax, 0xc
jbe 0x1400536fb
lea r8, [0x14012f1c8]
call fcn.140025fb0
jmp 0x140053bb0
cmp eax, 8
jbe 0x140053711
lea r8, [0x140130030]
call fcn.140025fb0
jmp 0x140053bb0
lea r8, [0x14012f1f8]
call fcn.140025fb0
mov byte [rdi + 0x2c2], 1
jmp 0x140053bb0
mov r9d, 0xffffffff
lea rcx, [rdi + 0x58]
lea r8, [0x14012f280]
lea edx, [r9 + 3]
call fcn.140025fb0
mov dword [rdi + 0x2ac], 8
jmp 0x140053bb0
mov r9d, 0xffffffff
lea rcx, [rdi + 0x58]
lea r8, [0x14012f288]
lea edx, [r9 + 3]
call fcn.140025fb0
mov dword [rdi + 0x2ac], 8
jmp 0x140053bb0
mov rcx, qword [rdi + 0x70]
lea r9, [rbp - 0x71]
xor eax, eax
lea rdx, [rbp - 0x41]
mov dword [rbp - 0x71], eax
mov qword [rsp + 0x20], rax
lea r8d, [rax + 0x24]
call qword [sym.imp.KERNEL32.dll_ReadFile]
cmp word [rbp - 0x41], 4
jne 0x140053c73
mov r9d, 0xffffffff
lea rcx, [rdi + 0x58]
lea r8, [0x140140d60]
lea edx, [r9 + 3]
call fcn.140025fb0
movzx eax, word [rbp - 0x4d]
lea rcx, [rdi + 0x2ee]
mov dword [rdi + 0x314], eax
lea rdx, [rbp - 0x39]
movzx eax, word [rbp - 0x3d]
mov dword [rdi + 0x318], eax
movzx eax, word [rbp - 0x3b]
mov r8d, eax
mov dword [rdi + 0x2ac], 4
shl r8, 2
mov word [rdi + 0x2ec], ax
call fcn.1400b9e30
jmp 0x140053bb0
mov rcx, qword [rdi + 0x70]
lea r9, [rbp - 0x71]
xor eax, eax
lea rdx, [rbp - 0x61]
mov dword [rbp - 0x71], eax
mov qword [rsp + 0x20], rax
lea r8d, [rax + 6]
call qword [sym.imp.KERNEL32.dll_ReadFile]
movzx eax, word [rbp - 0x61]
cmp ax, 2
jne 0x140053838
lea r8, str.IMA_ADPCM_2_bit
jmp 0x140053858
cmp ax, 3
jne 0x140053847
lea r8, str.IMA_ADPCM_3_bit
jmp 0x140053858
cmp ax, 4
jne 0x140053c73
lea r8, [0x14013f6a0]
mov edx, 2
lea rcx, [rdi + 0x58]
lea r9d, [rdx - 3]
call fcn.140025fb0
movzx eax, word [rbp - 0x61]
mov dword [rdi + 0x2ac], eax
movzx eax, word [rbp - 0x4d]
mov dword [rdi + 0x3f4], eax
movzx eax, word [rbp - 0x5d]
mov dword [rdi + 0x3f8], eax
jmp 0x140053bb0
mov rcx, qword [rdi + 0x70]
lea r9, [rbp - 0x71]
xor eax, eax
lea rdx, [rbp - 0x41]
mov dword [rbp - 0x71], eax
mov qword [rsp + 0x20], rax
lea r8d, [rax + 0x1a]
call qword [sym.imp.KERNEL32.dll_ReadFile]
movzx eax, word [rbp - 0x37]
test al, 8
je 0x1400538bd
test al, 7
jne 0x140053c73
movzx ecx, word [rbp - 0x3d]
sub ecx, 1
je 0x1400538eb
sub ecx, 1
je 0x1400538e2
cmp ecx, 2
je 0x1400538d9
lea r8, [0x140140d90]
jmp 0x1400538f2
lea r8, [0x14012f208]
jmp 0x1400538f2
lea r8, [0x14012f220]
jmp 0x1400538f2
lea r8, [0x14012f238]
mov edx, 2
lea rcx, [rdi + 0x58]
lea r9d, [rdx - 3]
call fcn.140025fb0
mov dword [rdi + 0x2c], 0x480
jmp 0x140053bb0
mov rcx, qword [rdi + 0x70]
lea r9, [rbp - 0x71]
xor ebx, ebx
lea rdx, [rbp - 1]
mov dword [rbp - 0x71], ebx
mov qword [rsp + 0x20], rbx
lea r8d, [rbx + 0x10]
call qword [sym.imp.KERNEL32.dll_ReadFile]
lea rcx, [rdi + 0x58]
lea r9d, [rbx - 1]
lea r8, [0x14012f208]
lea edx, [rbx + 2]
call fcn.140025fb0
mov eax, 0x50
mov dword [rdi + 0x2c], 0x480
mov word [rdi + 0x2c8], ax
movzx eax, word [rbp + 9]
cmp eax, 1
jbe 0x140053c73
inc eax
mov ecx, eax
mov dword [rdi + 0x300], eax
call fcn.1400b609c
mov qword [rdi + 0x2f8], rax
mov dword [rdi + 0x304], ebx
jmp 0x140053bb0
cmp ecx, 0x2007
ja 0x140053a5e
mov eax, 0x2006
cmp ecx, eax
jae case.0x140053660.176
sub ecx, 0x241
je case.0x140053660.146
sub ecx, 0x1dbf
je case.0x140053660.146
cmp ecx, 1
jne case.0x140053660.3
mov eax, dword [rbp - 0x49]
lea rcx, [rdi + 0x58]
movups xmm0, xmmword [rbp - 0x59]
xor ebx, ebx
mov byte [rdi + 0x2e0], 1
lea r8, [0x140140d9c]
movups xmmword [rdi + 0x2f0], xmm0
mov dword [rdi + 0x300], eax
mov eax, 0x2001
lea r9d, [rbx - 1]
mov word [rdi + 0x2c8], ax
lea edx, [rbx + 2]
mov word [rdi + 0x2f0], ax
mov dword [rdi + 0x2fe], ebx
call fcn.140025fb0
jmp 0x140053bb0
mov eax, dword [rbp - 0x49]
lea rcx, [rdi + 0x58]
movups xmm0, xmmword [rbp - 0x59]
xor ebx, ebx
mov byte [rdi + 0x2e0], 1
lea r8, [0x14013f550]
movups xmmword [rdi + 0x2f0], xmm0
mov dword [rdi + 0x300], eax
mov eax, 0x2000
lea r9d, [rbx - 1]
mov word [rdi + 0x2c8], ax
lea edx, [rbx + 2]
mov word [rdi + 0x2f0], ax
mov dword [rdi + 0x2fe], ebx
call fcn.140025fb0
jmp 0x140053bb0
cmp ecx, 0x4143
je case.0x140053660.176
cmp ecx, 0xa106
je case.0x140053660.176
cmp dword [rbp - 0x65], 0x54
ja 0x140053c7d
mov rcx, qword [rdi + 0x70]
xor r9d, r9d
xor r8d, r8d
mov rdx, rbx
call qword [sym.imp.KERNEL32.dll_SetFilePointerEx]
mov r8d, dword [rbp - 0x65]
lea r9, [rbp - 0x71]
mov rcx, qword [rdi + 0x70]
lea rdx, [rdi + 0x2f0]
xor eax, eax
mov dword [rbp - 0x71], eax
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_ReadFile]
lea rcx, [rdi + 0x2f0]
call fcn.14002bfb0
test al, al
je 0x140053c7d
mov r9d, 0xffffffff
lea rcx, [rdi + 0x58]
lea r8, str.Windows_ACM
lea edx, [r9 + 3]
call fcn.140025fb0
jmp 0x140053bb0
cmp dword [rbp - 0x65], 4
jb 0x140053b58
mov rcx, qword [rdi + 0x70]
lea r9, [rbp - 0x71]
xor ebx, ebx
lea rdx, [rbp - 0x45]
mov dword [rbp - 0x71], ebx
mov qword [rsp + 0x20], rbx
lea r8d, [rbx + 4]
call qword [sym.imp.KERNEL32.dll_ReadFile]
movzx eax, word [rbp - 0x43]
test ax, ax
je 0x140053b58
cmp eax, 2
je 0x140053b23
mov ecx, 0xff
cmp word [rdi + 0x2c8], cx
jne 0x140053b58
mov rcx, rax
mov dword [rdi + 0x2f8], eax
call fcn.1400b609c
mov r8d, dword [rdi + 0x2f8]
lea r9, [rbp - 0x71]
mov rcx, qword [rdi + 0x70]
mov rdx, rax
mov qword [rdi + 0x2f0], rax
mov dword [rbp - 0x71], ebx
mov qword [rsp + 0x20], rbx
call qword [sym.imp.KERNEL32.dll_ReadFile]
movzx eax, word [rdi + 0x2c8]
mov ecx, 0x180
cmp ax, cx
je 0x140053b77
mov ecx, 0x2006
cmp ax, cx
je 0x140053b77
xor al, al
jmp 0x140053b79
mov al, 1
mov r9d, 0xffffffff
mov byte [rdi + 0x2fc], al
lea rcx, [rdi + 0x58]
lea r8, [0x14012f250]
lea edx, [r9 + 3]
call fcn.140025fb0
mov ecx, dword [rdi + 0x20]
call fcn.14003ef20
mov dword [rdi + 0x24], eax
mov eax, 0xff
mov word [rdi + 0x2c8], ax
mov eax, dword [rdi + 0x28]
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rdi + 0x2d8]
addsd xmm0, xmm6
cvttsd2si rax, xmm0
add qword [rdi + 0x18], rax
jmp 0x1400534dc
mov rcx, qword [rdi + 0x70]
lea r9, [rbp - 0x71]
xor eax, eax
lea rdx, [rbp + 0x6f]
mov dword [rbp - 0x71], eax
mov qword [rsp + 0x20], rax
lea r8d, [rax + 4]
call qword [sym.imp.KERNEL32.dll_ReadFile]
cmp dword [rbp + 0x6f], 0x69766f6d
jne 0x1400534bb
test sil, sil
je 0x1400534dc
cmp dword [rdi + 0x28c], 0
je 0x1400534dc
cmp dword [rdi + 0x2cc], 1
jne 0x140053c27
xor eax, eax
mov edx, eax
jmp 0x140053c50
mov ecx, dword [rdi + 0x2d0]
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
add edx, 0x62773030
add eax, eax
sub ecx, eax
shl ecx, 8
add edx, ecx
lea r8, [rbx + 4]
mov byte [rsp + 0x20], r12b
mov r9, r14
mov rcx, rdi
call fcn.140053dc0
jmp 0x1400534d3
mov eax, 0x8004020a
jmp 0x1400534eb
mov eax, 0x80040208
jmp 0x1400534eb
mov eax, 0x8004020b
jmp 0x1400534eb