Function at 0x14004c250
Capabilities:
Read file on windows

Disassembly:
push rsi
sub rsp, 0x80
cmp byte [rcx + 0x2c0], 0
mov rsi, rcx
je 0x14004c272
add rsp, 0x80
pop rsi
jmp fcn.1400248c0
mov qword [rsp + 0xa8], rbx
mov edx, 2
add rcx, 0x58
mov qword [rsp + 0x68], r12
call fcn.140025da0
mov qword [rsp + 0x78], rbp
lea r8, [0x14013f700]
mov qword [rsp + 0x70], rdi
xor r12d, r12d
mov qword [rsp + 0x60], r13
mov edx, r12d
mov qword [rsp + 0x58], r14
mov qword [rsp + 0x50], r15
nop dword [rax]
nop word [rax + rax]
movzx ecx, word [rax + rdx*2]
cmp cx, word [r8 + rdx*2]
jne 0x14004c456
movzx ecx, word [rax + rdx*2 + 2]
cmp cx, word [r8 + rdx*2 + 2]
jne 0x14004c456
add rdx, 2
cmp rdx, 0x10
jne 0x14004c2c0
mov ecx, dword [rsi + 0x2c]
lea r9, [rsp + 0x90]
mov rdi, qword [rsi + 0x2b8]
mov rdx, qword [rsi + 0x2a0]
cmp rdi, rcx
mov dword [rsp + 0x90], r12d
cmovge edi, ecx
mov qword [rsp + 0x20], r12
mov rcx, qword [rsi + 0x70]
shr edi, 6
mov eax, edi
imul eax, dword [rsi + 0x20]
imul ebx, eax, 0x22
mov r8d, ebx
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x14004cad9
cmp dword [rsp + 0x90], ebx
jne 0x14004cad9
mov rbx, qword [rsi + 0x2a0]
mov eax, r12d
mov dword [rsp + 0x90], eax
mov r13b, 1
test edi, edi
je 0x14004c447
dec edi
mov ebp, r12d
mov qword [rsp + 0xa0], rdi
cmp dword [rsi + 0x20], r12d
jbe 0x14004c432
mov r8d, eax
mov qword [rsp + 0x98], r8
mov rax, qword [rsi + 0x2b0]
mov edx, ebp
mov rcx, qword [rax + rdx*8]
lea r14, [rcx + r8*4]
movzx ecx, word [rbx]
ror cx, 8
add rbx, 2
movzx eax, cl
and al, 0x7f
cmp al, 0x58
jae 0x14004c3af
movzx eax, cx
and eax, 0x7f
jmp 0x14004c3b4
mov eax, 0x58
mov dword [rsi + rdx*8 + 0x2d4], eax
test r13b, r13b
je 0x14004c3cd
movsx eax, cx
and eax, 0xffffff80
mov dword [rsi + rdx*8 + 0x2d0], eax
mov edi, r12d
movzx r8d, byte [rbx]
mov ecx, edi
and ecx, 1
je 0x14004c3e1
shr r8d, 4
jmp 0x14004c3e5
and r8d, 0xf
test ecx, ecx
lea rax, [rbx + 1]
mov edx, ebp
lea rcx, [rsi + 0x2d0]
cmove rax, rbx
mov rbx, rax
call fcn.14003da00
movss dword [r14], xmm0
inc edi
add r14, 4
cmp edi, 0x40
jl 0x14004c3d0
mov r8, qword [rsp + 0x98]
inc ebp
cmp ebp, dword [rsi + 0x20]
jb 0x14004c382
mov rdi, qword [rsp + 0xa0]
mov eax, dword [rsp + 0x90]
add eax, 0x40
xor r13b, r13b
mov dword [rsp + 0x90], eax
test edi, edi
jne 0x14004c360
mov edx, eax
mov rcx, rsi
call fcn.140025060
jmp 0x14004cae5
mov edx, 2
lea rcx, [rsi + 0x58]
call fcn.140025da0
lea r8, str.G.726_ADPCM
mov rdx, r12
nop
movzx ecx, word [rax + rdx*2]
cmp cx, word [r8 + rdx*2]
jne 0x14004c57f
movzx ecx, word [rax + rdx*2 + 2]
cmp cx, word [r8 + rdx*2 + 2]
jne 0x14004c57f
add rdx, 2
cmp rdx, 0xc
jne 0x14004c470
mov ecx, dword [rsi + 0x2ac]
call fcn.140024550
mov r8d, dword [rsi + 0x2c]
mov ecx, eax
mov eax, r8d
xor edx, edx
div ecx
mov rcx, qword [rsi + 0x2b8]
sub r8d, edx
lea rdx, [rsi + 0x70]
mov eax, r8d
cmp rcx, rax
cmovge ecx, r8d
mov r8, qword [rsi + 0x2a0]
imul ecx, dword [rsi + 0x2ac]
lea r9d, [rcx + 7]
shr r9d, 3
lea rcx, [rsi + 0x1960]
call fcn.1400235f0
test al, al
je 0x14004cad9
mov edx, dword [rsi + 0x2ac]
lea rcx, [rsi + 0x1960]
call fcn.140022fb0
test al, al
je 0x14004c56f
nop word [rax + rax]
mov edx, dword [rsi + 0x2ac]
lea rcx, [rsi + 0x1960]
call fcn.140024520
movzx edx, al
lea rcx, [rsi + 0x2d0]
call qword [rsi + 0x308]
mov edx, r12d
inc r12d
movsx ecx, ax
mov rax, qword [rsi + 0x2b0]
movd xmm0, ecx
mov rcx, qword [rax]
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [rsi + 0x304]
movss dword [rcx + rdx*4], xmm0
lea rcx, [rsi + 0x1960]
mov edx, dword [rsi + 0x2ac]
call fcn.140022fb0
test al, al
jne 0x14004c510
mov edx, r12d
mov rcx, rsi
call fcn.140025060
jmp 0x14004cae5
mov edx, 2
lea rcx, [rsi + 0x58]
call fcn.140025da0
lea r8, str.G.722_ADPCM
mov rdx, r12
nop word [rax + rax]
movzx ecx, word [rax + rdx*2]
cmp cx, word [r8 + rdx*2]
jne 0x14004c670
movzx ecx, word [rax + rdx*2 + 2]
cmp cx, word [r8 + rdx*2 + 2]
jne 0x14004c670
add rdx, 2
cmp rdx, 0xc
jne 0x14004c5a0
mov ecx, dword [rsi + 0x2c]
lea r9, [rsp + 0x90]
mov r15, qword [rsi + 0x2b8]
mov eax, ecx
mov edx, 0xfffffffe
mov dword [rsp + 0x90], r12d
and ecx, edx
mov qword [rsp + 0x20], r12
and rax, rdx
mov rdx, qword [rsi + 0x2a0]
cmp r15, rax
cmovge r15d, ecx
mov rcx, qword [rsi + 0x70]
lea ebx, [r15 + 1]
shr ebx, 1
mov r8d, ebx
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x14004cad9
cmp dword [rsp + 0x90], ebx
jne 0x14004cad9
mov rax, qword [rsi + 0x2b0]
mov rdi, qword [rsi + 0x2a0]
mov rbp, qword [rax]
test ebx, ebx
je 0x14004c660
movzx r8d, byte [rdi]
lea rcx, [rsi + 0x2d0]
mov rdx, rbp
call fcn.14002ddf0
add rbp, 8
lea rdi, [rdi + 1]
add ebx, 0xffffffff
jne 0x14004c640
mov edx, r15d
mov rcx, rsi
call fcn.140025060
jmp 0x14004cae5
mov edx, 2
lea rcx, [rsi + 0x58]
call fcn.140025da0
lea r8, str.G.728_LD_CELP
mov rdx, r12
nop dword [rax + rax]
movzx ecx, word [rax + rdx*2]
cmp cx, word [r8 + rdx*2]
jne 0x14004c7a2
movzx ecx, word [rax + rdx*2 + 2]
cmp cx, word [r8 + rdx*2 + 2]
jne 0x14004c7a2
add rdx, 2
cmp rdx, 0xe
jne 0x14004c690
mov rcx, qword [rsi + 0x2b8]
mov eax, 0xcccccccd
mul dword [rsi + 0x2c]
add rcx, 4
movabs rax, 0x6666666666666667
shr edx, 4
mov r8d, edx
imul rcx
mov ecx, r8d
sar rdx, 1
mov rax, rdx
shl rcx, 2
shr rax, 0x3f
add rdx, rax
lea eax, [r8*4]
mov r8, qword [rsi + 0x2a0]
cmp rdx, rcx
lea rcx, [rsi + 0x1960]
cmovge edx, eax
lea eax, [rdx + rdx*4]
lea r9d, [rax*2 + 7]
shr r9d, 3
lea rdx, [rsi + 0x70]
call fcn.1400235f0
test al, al
je 0x14004cad9
mov rax, qword [rsi + 0x2b0]
lea rcx, [rsi + 0x1960]
mov edx, 0xa
mov r14, qword [rax]
call fcn.140022f70
test al, al
je 0x14004c792
nop
mov eax, r12d
lea rcx, [rsi + 0x1960]
mov edx, 0xa
lea rbx, [r14 + rax*4]
call fcn.140024500
mov edx, eax
lea rcx, [rsi + 0x2d0]
mov r8, rbx
call fcn.140030050
mov edx, 0xa
lea rcx, [rsi + 0x1960]
add r12d, 5
call fcn.140022f70
test al, al
jne 0x14004c750
mov edx, r12d
mov rcx, rsi
call fcn.140025060
jmp 0x14004cae5
mov edx, 2
lea rcx, [rsi + 0x58]
call fcn.140025da0
lea r8, [0x14013f770]
mov rdx, r12
nop word [rax + rax]
movzx ecx, word [rax + rdx*2]
cmp cx, word [r8 + rdx*2]
jne 0x14004c894
movzx ecx, word [rax + rdx*2 + 2]
cmp cx, word [r8 + rdx*2 + 2]
jne 0x14004c894
add rdx, 2
cmp rdx, 0xa
jne 0x14004c7c0
mov eax, dword [rsi + 0x2c]
mov rcx, qword [rsi + 0x2b8]
add rcx, 0x9f
cmp rcx, rax
cmovge ecx, eax
cmp ecx, 0xa0
jb 0x14004c94e
mov eax, 0xcccccccd
mov dword [rsp + 0x90], r12d
mul ecx
mov rcx, qword [rsi + 0x70]
lea r9, [rsp + 0x90]
shr edx, 7
imul ebx, edx, 0x21
mov rdx, qword [rsi + 0x2a0]
mov qword [rsp + 0x20], r12
mov r8d, ebx
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x14004cad9
cmp dword [rsp + 0x90], ebx
jne 0x14004cad9
mov rdx, qword [rsi + 0x2b0]
lea rcx, [rsi + 0x2d0]
mov r8, qword [rsi + 0x2a0]
mov r9d, ebx
mov rdx, qword [rdx]
call fcn.140038f50
mov rcx, qword [rsi + 0x2b8]
mov edx, eax
cmp rdx, rcx
cmovge edx, ecx
mov rcx, rsi
call fcn.140025060
jmp 0x14004cae5
mov edx, 2
lea rcx, [rsi + 0x58]
call fcn.140025da0
mov rdx, r12
lea r8, str.MACE3
mov ebp, 6
movzx ecx, word [rax + rdx*2]
lea rdi, str.MACE6
inc rdx
cmp cx, word [r8 + rdx*2 - 2]
jne 0x14004c8ce
cmp rdx, rbp
jne 0x14004c8b1
jmp 0x14004c8f9
mov edx, 2
lea rcx, [rsi + 0x58]
call fcn.140025da0
mov r9, r12
nop
movzx r8d, word [rax + r9*2]
inc r9
cmp r8w, word [rdi + r9*2 - 2]
jne 0x14004cae0
cmp r9, rbp
jne 0x14004c8e0
mov edx, 2
lea rcx, [rsi + 0x58]
call fcn.140025da0
mov rdx, r12
nop word [rax + rax]
movzx r15d, word [rax + rdx*2]
inc rdx
movzx ecx, word [rdi + rdx*2 - 2]
sub r15d, ecx
jne 0x14004c927
cmp rdx, rbp
jne 0x14004c910
mov eax, dword [rsi + 0x2c]
mov r13, qword [rsi + 0x2b8]
lea rcx, [r13 + 5]
cmp rcx, rax
cmovge ecx, eax
mov eax, 0xaaaaaaab
mul ecx
mov r12d, edx
shr r12d, 2
test r12d, r12d
jne 0x14004c95d
mov rcx, qword [rsi + 0x10]
mov rax, qword [rcx]
call qword [rax + 0x18]
jmp 0x14004cae5
mov rdx, qword [rsi + 0x2a0]
lea eax, [r12 + r12*2]
add eax, eax
lea r9, [rsp + 0x90]
mov ecx, eax
cmp r13, rcx
mov rcx, qword [rsi + 0x70]
cmovge r13d, eax
xor edi, edi
mov ebx, edi
mov dword [rsp + 0x90], edi
test r15d, r15d
mov qword [rsp + 0x20], rdi
setne bl
inc ebx
imul ebx, r12d
imul ebx, dword [rsi + 0x20]
mov r8d, ebx
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x14004cad9
cmp dword [rsp + 0x90], ebx
jne 0x14004cad9
mov rbx, qword [rsi + 0x2a0]
mov eax, edi
movaps xmmword [rsp + 0x40], xmm6
movss xmm6, dword [0x14012bff4]
mov dword [rsp + 0x90], eax
nop word [rax + rax]
dec r12d
mov r14d, r13d
cmp r13d, 6
mov dword [rsp + 0x98], r12d
cmova r14d, ebp
sub r13d, r14d
cmp dword [rsi + 0x20], 0
jbe 0x14004cab0
mov r12d, dword [rsp + 0x90]
nop dword [rax + rax]
movzx r8d, byte [rbx]
lea rdx, [rsp + 0x30]
inc rbx
mov ebp, edi
test r15d, r15d
jne 0x14004ca35
lea rcx, [rbp + 0x2d]
shl rcx, 4
add rcx, rsi
call fcn.14003de40
jmp 0x14004ca4c
movzx r9d, byte [rbx]
lea rcx, [rsi + 0x2d0]
lea rcx, [rcx + rbp*4]
inc rbx
call fcn.14003dca0
mov rax, qword [rsi + 0x2b0]
lea rdx, [rsp + 0x30]
mov rcx, qword [rax + rbp*8]
lea r8, [rcx + r12*4]
mov ecx, r14d
test r14d, r14d
je 0x14004ca91
nop dword [rax + rax]
movsx eax, word [rdx]
lea r8, [r8 + 4]
lea rdx, [rdx + 2]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm6
movss dword [r8 - 4], xmm0
sub ecx, 1
jne 0x14004ca70
inc edi
cmp edi, dword [rsi + 0x20]
jb 0x14004ca10
mov r12d, dword [rsp + 0x98]
mov ebp, 6
mov eax, dword [rsp + 0x90]
add eax, r14d
mov edi, 0
mov dword [rsp + 0x90], eax
test r12d, r12d
jne 0x14004c9e0
mov edx, eax
mov rcx, rsi
call fcn.140025060
movaps xmm6, xmmword [rsp + 0x40]
jmp 0x14004cae5
mov eax, 0x80040205
jmp 0x14004cae5
mov eax, 0x80040208
mov r14, qword [rsp + 0x58]
mov r13, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x78]
mov rdi, qword [rsp + 0x70]
mov r15, qword [rsp + 0x50]
mov rbx, qword [rsp + 0xa8]
mov r12, qword [rsp + 0x68]
add rsp, 0x80
pop rsi
ret