Function at 0x140015de0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x98
mov rsi, rdx
mov rdi, rcx
mov dword [rsp + 0x20], 0
mov r12, qword [rdx + 8]
mov r14, qword [rdx + 0x10]
mov rbp, qword [rdx + 0x18]
xor r15d, r15d
jmp 0x140015e31
movzx eax, byte [rdx]
mov byte [rcx], al
add rbp, rbx
add r15, rbx
cmp r15, 3
ja 0x140015e8e
mov eax, 4
sub rax, r15
cmp rbp, r14
mov rdx, r14
cmovb rdx, rbp
lea rcx, [rsp + r15]
add rcx, 0x20
mov rbx, r14
sub rbx, rdx
add rdx, r12
cmp rax, rbx
cmovb rbx, rax
cmp rbx, 1
je 0x140015e20
mov r8, rbx
call sub.msvcrt.dll_memcpy
add rbp, rbx
test rbx, rbx
jne 0x140015e28
mov qword [rsi + 0x18], rbp
lea rdx, [0x1402ac77f]
mov r8d, 0x1c
mov cl, 0x27
call fcn.14001e310
jmp 0x140015f90
mov qword [rsi + 0x18], rbp
mov r15d, 1
cmp dword [rsp + 0x20], 0x46464952
jne 0x140015f6f
xor eax, eax
nop dword [rax + rax]
mov edx, 4
sub rdx, rax
mov r8, r14
sub r8, rbp
mov ecx, 0
cmovae rcx, r8
cmp rdx, rcx
cmovb rcx, rdx
add rbp, rcx
test rcx, rcx
je 0x140015f78
add rax, rcx
cmp rax, 3
jbe 0x140015eb0
mov qword [rsi + 0x18], rbp
mov dword [rsp + 0x20], 0
xor r13d, r13d
jmp 0x140015f15
movzx eax, byte [rdx]
mov byte [rcx], al
add rbp, rbx
add r13, rbx
cmp r13, 3
ja 0x140015fde
mov eax, 4
sub rax, r13
cmp rbp, r14
mov rdx, r14
cmovb rdx, rbp
lea rcx, [rsp + r13]
add rcx, 0x20
mov rbx, r14
sub rbx, rdx
add rdx, r12
cmp rax, rbx
cmovb rbx, rax
cmp rbx, 1
je 0x140015f00
mov r8, rbx
call sub.msvcrt.dll_memcpy
add rbp, rbx
test rbx, rbx
jne 0x140015f08
mov qword [rsi + 0x18], rbp
lea rdx, [0x1402ac77f]
mov r8d, 0x1c
mov cl, 0x27
call fcn.14001e310
jmp 0x140015f90
lea rax, [0x1402ac7bd]
jmp 0x140015f93
mov qword [rsi + 0x18], rbp
lea rdx, [0x1402ac77f]
mov r8d, 0x1c
mov cl, 0x27
call fcn.14001e310
xor r15d, r15d
mov qword [rdi + 8], r15
mov qword [rdi + 0x10], rax
mov qword [rdi + 0x18], 0x11
movabs rax, 0x8000000000000000
mov qword [rdi], rax
mov rdx, qword [rsi]
test rdx, rdx
je 0x140015fc7
mov rcx, qword [rsi + 8]
mov r8d, 1
call fcn.14002f7a0
mov rax, rdi
add rsp, 0x98
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov qword [rsi + 0x18], rbp
cmp dword [rsp + 0x20], 0x45564157
jne 0x140016677
mov bl, 2
mov dword [rsp + 0x38], 0
xor r13d, r13d
jmp 0x140016011
movzx eax, byte [rdx]
mov byte [rcx], al
add rbp, r15
add r13, r15
cmp r13, 3
ja 0x140016056
mov eax, 4
sub rax, r13
cmp rbp, r14
mov rdx, r14
cmovb rdx, rbp
lea rcx, [rsp + r13]
add rcx, 0x38
mov r15, r14
sub r15, rdx
add rdx, r12
cmp rax, r15
cmovb r15, rax
cmp r15, 1
je 0x140016000
mov r8, r15
call sub.msvcrt.dll_memcpy
add rbp, r15
test r15, r15
jne 0x140016008
jmp 0x140016683
mov qword [rsi + 0x18], rbp
mov dword [rsp + 0x20], 0
xor r13d, r13d
jmp 0x140016081
movzx eax, byte [rdx]
mov byte [rcx], al
add rbp, r15
add r13, r15
cmp r13, 3
ja 0x1400160c6
mov eax, 4
sub rax, r13
cmp rbp, r14
mov rdx, r14
cmovb rdx, rbp
lea rcx, [rsp + r13]
add rcx, 0x20
mov r15, r14
sub r15, rdx
add rdx, r12
cmp rax, r15
cmovb r15, rax
cmp r15, 1
je 0x140016070
mov r8, r15
call sub.msvcrt.dll_memcpy
add rbp, r15
test r15, r15
jne 0x140016078
jmp 0x14001669d
mov qword [rsi + 0x18], rbp
mov r13d, dword [rsp + 0x20]
movzx eax, byte [rsp + 0x38]
cmp eax, 0x64
je 0x140016153
cmp eax, 0x66
jne 0x14001616c
movzx eax, byte [rsp + 0x39]
cmp eax, 0x61
je 0x1400161d6
cmp eax, 0x6d
jne 0x14001616c
cmp byte [rsp + 0x3a], 0x74
jne 0x14001616c
cmp byte [rsp + 0x3b], 0x20
jne 0x14001616c
mov edx, 1
cmp r13d, 0x10
jb 0x140016810
mov word [rsp + 0x20], 0
cmp rbp, r14
mov rdx, r14
cmovb rdx, rbp
mov rbx, r14
sub rbx, rdx
add rdx, r12
cmp rbx, 2
mov r15d, 2
cmovb r15, rbx
cmp rbx, 1
jne 0x140016257
movzx eax, byte [rdx]
mov byte [rsp + 0x20], al
add r15, rbp
jmp 0x140016270
cmp byte [rsp + 0x39], 0x61
jne 0x14001616c
cmp byte [rsp + 0x3a], 0x74
jne 0x14001616c
cmp byte [rsp + 0x3b], 0x61
je 0x14001673d
test r13, r13
je 0x1400161c5
xor eax, eax
nop word cs:[rax + rax]
mov rdx, r13
sub rdx, rax
mov r8, r14
sub r8, rbp
mov ecx, 0
cmovae rcx, r8
cmp rdx, rcx
cmovb rcx, rdx
mov rdx, rcx
cmp rcx, 0x400
jb 0x1400161ad
mov edx, 0x400
add rbp, rdx
test rcx, rcx
je 0x1400166b7
add rax, rdx
cmp rax, r13
jb 0x140016180
mov qword [rsi + 0x18], rbp
mov r12, qword [rsi + 8]
mov r14, qword [rsi + 0x10]
mov rbp, qword [rsi + 0x18]
jmp 0x140015ff2
cmp byte [rsp + 0x3a], 0x63
jne 0x14001616c
cmp byte [rsp + 0x3b], 0x74
jne 0x14001616c
xor eax, eax
mov edx, 4
sub rdx, rax
mov r8, r14
sub r8, rbp
mov ecx, 0
cmovae rcx, r8
cmp rdx, rcx
cmovb rcx, rdx
add rbp, rcx
test rcx, rcx
je 0x140016225
add rax, rcx
cmp rax, 3
jbe 0x1400161e6
mov qword [rsi + 0x18], rbp
xor ecx, ecx
mov rdx, qword [rsp + 0x90]
jmp 0x140016245
mov qword [rsi + 0x18], rbp
mov r8d, 0x1c
mov cl, 0x27
lea rdx, [0x1402ac77f]
call fcn.14001e310
mov ecx, 1
mov rdx, rax
mov qword [rsp + 0x90], rdx
call fcn.1400150e0
jmp 0x1400161c5
lea rcx, [rsp + 0x20]
mov r8, r15
call sub.msvcrt.dll_memcpy
add r15, rbp
cmp r14, rbp
jbe 0x140016870
cmp rbx, 1
ja 0x14001629c
cmp r15, r14
mov rdx, r14
cmovb rdx, r15
add rdx, r12
xor ebp, ebp
cmp r14, r15
seta bpl
jbe 0x140016860
movzx eax, byte [rdx]
mov byte [rsp + 0x21], al
add r15, rbp
mov qword [rsi + 0x18], r15
movzx eax, word [rsp + 0x20]
mov dword [rsp + 0x8c], eax
mov word [rsp + 0x20], 0
cmp r15, r14
mov rdx, r14
cmovb rdx, r15
mov rbx, r14
sub rbx, rdx
add rdx, r12
cmp rbx, 2
mov ebp, 2
cmovb rbp, rbx
cmp rbx, 1
jne 0x1400162e5
movzx eax, byte [rdx]
mov byte [rsp + 0x20], al
add rbp, r15
jmp 0x1400162fe
lea rcx, [rsp + 0x20]
mov r8, rbp
call sub.msvcrt.dll_memcpy
add rbp, r15
cmp r14, r15
jbe 0x14001689d
cmp rbx, 1
ja 0x14001632b
cmp rbp, r14
mov rdx, r14
cmovb rdx, rbp
add rdx, r12
xor r15d, r15d
cmp r14, rbp
seta r15b
jbe 0x14001688d
movzx eax, byte [rdx]
mov byte [rsp + 0x21], al
add rbp, r15
mov qword [rsi + 0x18], rbp
movzx eax, word [rsp + 0x20]
mov word [rsp + 0x78], ax
mov dword [rsp + 0x20], 0
xor ebx, ebx
jmp 0x140016356
movzx eax, byte [rdx]
mov byte [rcx], al
add rbp, r15
add rbx, r15
cmp rbx, 3
ja 0x14001639b
mov eax, 4
sub rax, rbx
cmp rbp, r14
mov rdx, r14
cmovb rdx, rbp
lea rcx, [rsp + rbx]
add rcx, 0x20
mov r15, r14
sub r15, rdx
add rdx, r12
cmp rax, r15
cmovb r15, rax
cmp r15, 1
je 0x140016345
mov r8, r15
call sub.msvcrt.dll_memcpy
add rbp, r15
test r15, r15
jne 0x14001634d
jmp 0x1400166f8
mov qword [rsi + 0x18], rbp
mov eax, dword [rsp + 0x20]
mov dword [rsp + 0x88], eax
mov dword [rsp + 0x20], 0
xor ebx, ebx
jmp 0x1400163c7
movzx eax, byte [rdx]
mov byte [rcx], al
add rbp, r15
add rbx, r15
cmp rbx, 3
ja 0x14001640c
mov eax, 4
sub rax, rbx
cmp rbp, r14
mov rdx, r14
cmovb rdx, rbp
lea rcx, [rsp + rbx]
add rcx, 0x20
mov r15, r14
sub r15, rdx
add rdx, r12
cmp rax, r15
cmovb r15, rax
cmp r15, 1
je 0x1400163b6
mov r8, r15
call sub.msvcrt.dll_memcpy
add rbp, r15
test r15, r15
jne 0x1400163be
jmp 0x140016712
mov qword [rsi + 0x18], rbp
mov eax, dword [rsp + 0x20]
mov dword [rsp + 0x84], eax
mov word [rsp + 0x20], 0
cmp rbp, r14
mov rdx, r14
cmovb rdx, rbp
mov rbx, r14
sub rbx, rdx
add rdx, r12
cmp rbx, 2
mov r15d, 2
cmovb r15, rbx
cmp rbx, 1
jne 0x140016455
movzx eax, byte [rdx]
mov byte [rsp + 0x20], al
add r15, rbp
jmp 0x14001646e
lea rcx, [rsp + 0x20]
mov r8, r15
call sub.msvcrt.dll_memcpy
add r15, rbp
cmp r14, rbp
jbe 0x140016947
cmp rbx, 1
ja 0x14001649a
cmp r15, r14
mov rdx, r14
cmovb rdx, r15
add rdx, r12
xor ebp, ebp
cmp r14, r15
seta bpl
jbe 0x140016937
movzx eax, byte [rdx]
mov byte [rsp + 0x21], al
add r15, rbp
mov qword [rsi + 0x18], r15
movzx r11d, word [rsp + 0x20]
mov word [rsp + 0x20], 0
cmp r15, r14
mov rdx, r14
cmovb rdx, r15
mov rbx, r14
sub rbx, rdx
add rdx, r12
cmp rbx, 2
mov ebp, 2
cmovb rbp, rbx
cmp rbx, 1
jne 0x1400164dd
movzx eax, byte [rdx]
mov byte [rsp + 0x20], al
add rbp, r15
jmp 0x140016506
lea rcx, [rsp + 0x20]
mov r8, rbp
mov dword [rsp + 0x80], r11d
call sub.msvcrt.dll_memcpy
mov r11d, dword [rsp + 0x80]
add rbp, r15
cmp r14, r15
jbe 0x140016977
cmp rbx, 1
ja 0x140016535
cmp rbp, r14
mov rax, r14
cmovb rax, rbp
add r12, rax
xor r15d, r15d
cmp r14, rbp
seta r15b
jbe 0x140016964
movzx eax, byte [r12]
mov byte [rsp + 0x21], al
add rbp, r15
mov qword [rsi + 0x18], rbp
movzx r8d, word [rsp + 0x78]
test r8w, r8w
je 0x1400168ba
mov eax, r11d
xor edx, edx
div r8w
movzx r14d, ax
cmp r14d, 0x1fff
mov r10d, dword [rsp + 0x88]
ja 0x1400168d0
movzx r9d, byte [rsp + 0x21]
shl r9d, 8
movzx ecx, byte [rsp + 0x20]
or r9d, ecx
shl eax, 3
cmp r9w, ax
ja 0x1400168d0
mov eax, r11d
mul r10d
jo 0x1400168e6
cmp dword [rsp + 0x84], eax
jne 0x1400168e6
movzx eax, cx
test al, 7
jne 0x1400168fc
test r9w, r9w
mov eax, dword [rsp + 0x8c]
je 0x140016912
mov word [rsp + 0x3c], r8w
mov dword [rsp + 0x38], r10d
mov word [rsp + 0x3e], r9w
mov byte [rsp + 0x40], 1
cmp eax, 0xfffe
je 0x140016613
cmp eax, 3
je 0x1400165fc
cmp eax, 1
jne 0x140016994
lea rcx, [rsp + 0x20]
mov rdx, rsi
mov r8d, r13d
call fcn.140015190
jmp 0x140016628
lea rcx, [rsp + 0x20]
mov rdx, rsi
mov r8d, r13d
lea r9, [rsp + 0x38]
call fcn.140015c60
jmp 0x140016628
lea rcx, [rsp + 0x20]
mov rdx, rsi
mov r8d, r13d
lea r9, [rsp + 0x38]
call fcn.140015790
mov rdx, qword [rsp + 0x20]
cmp rdx, 6
jne 0x140016928
mov rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x38]
mov qword [rsp + 0x70], rcx
mov ebx, dword [rsp + 0x40]
movabs rcx, 0xffff000000000000
and rax, rcx
shl r14, 0x20
or r14, rax
or r14, rbx
mov rax, r14
shr rax, 8
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x48], r14
jmp 0x1400161c5
lea rax, [0x1402ac7ac]
jmp 0x140015f93
mov qword [rsi + 0x18], rbp
lea rdx, [0x1402ac77f]
mov r8d, 0x1c
mov cl, 0x27
call fcn.14001e310
jmp 0x1400166cf
mov qword [rsi + 0x18], rbp
lea rdx, [0x1402ac77f]
mov r8d, 0x1c
mov cl, 0x27
call fcn.14001e310
jmp 0x1400166cf
mov qword [rsi + 0x18], rbp
lea rdx, [0x1402ac77f]
mov r8d, 0x1c
mov cl, 0x27
call fcn.14001e310
mov qword [rsp + 0x54], 0
mov qword [rsp + 0x5c], rax
mov rax, qword [rsp + 0x54]
mov qword [rdi + 8], rax
mov rax, qword [rsp + 0x5c]
mov qword [rdi + 0x10], rax
mov qword [rdi + 0x18], rcx
jmp 0x140015fa3
mov qword [rsi + 0x18], rbp
lea rdx, [0x1402ac77f]
mov r8d, 0x1c
mov cl, 0x27
call fcn.14001e310
jmp 0x14001672a
mov qword [rsi + 0x18], rbp
lea rdx, [0x1402ac77f]
mov r8d, 0x1c
mov cl, 0x27
call fcn.14001e310
xor edx, edx
mov rcx, qword [rsp + 0x48]
mov qword [rsp + 0x54], rdx
mov qword [rsp + 0x5c], rax
jmp 0x1400166dd
cmp bl, 2
jne 0x140016761
mov qword [rsp + 0x54], 1
lea rax, [0x1402ac79b]
mov qword [rsp + 0x5c], rax
mov ecx, 0x11
jmp 0x1400166dd
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0x50], rax
mov byte [rsp + 0x58], bl
mov rcx, qword [rsp + 0x78]
mov dword [rsp + 0x59], ecx
mov eax, dword [rsp + 0x56]
mov dword [rsp + 0x68], eax
movzx eax, word [rsp + 0x5a]
mov word [rsp + 0x6c], ax
shr rcx, 0x18
test cx, cx
je 0x1400169a3
mov r10, rcx
mov eax, ecx
movzx ecx, ax
mov eax, r13d
xor edx, edx
div ecx
imul ecx, eax
cmp ecx, r13d
jne 0x1400167f0
mov rcx, qword [rsp + 0x70]
shr rcx, 0x20
test cx, cx
je 0x1400169b1
movzx r9d, cx
mov r8d, eax
xor edx, edx
div r9d
test edx, edx
je 0x140016821
mov qword [rdi + 8], 1
lea rax, str.invalid_data_chunk_lengthdata_chunk_length_is_not_a_multiple_of_sample_size
mov qword [rdi + 0x10], rax
mov qword [rdi + 0x18], 0x19
jmp 0x140015fa3
mov qword [rdi + 8], 1
lea rax, [0x1402ac951]
mov qword [rdi + 0x10], rax
mov qword [rdi + 0x18], 0x32
jmp 0x140015fa3
lea rax, [0x1402ac85b]
mov ecx, 0x16
jmp 0x140016731
movups xmm0, xmmword [rsi]
movups xmm1, xmmword [rsi + 0x10]
movups xmmword [rdi + 0x10], xmm1
movups xmmword [rdi], xmm0
mov eax, dword [rsp + 0x68]
mov dword [rdi + 0x26], eax
movzx eax, word [rsp + 0x6c]
mov word [rdi + 0x2a], ax
mov rax, qword [rsp + 0x70]
mov dword [rdi + 0x20], eax
mov word [rdi + 0x24], cx
mov dword [rdi + 0x2c], r8d
mov dword [rdi + 0x30], 0
mov word [rdi + 0x34], r10w
jmp 0x140015fc7
lea rcx, [rsp + 0x21]
mov r8, rbp
call sub.msvcrt.dll_memcpy
add r15, rbp
mov qword [rsi + 0x18], r15
lea rdx, [0x1402ac77f]
mov r8d, 0x1c
mov cl, 0x27
call fcn.14001e310
jmp 0x14001672a
lea rcx, [rsp + 0x21]
mov r8, r15
call sub.msvcrt.dll_memcpy
add rbp, r15
mov qword [rsi + 0x18], rbp
lea rdx, [0x1402ac77f]
mov r8d, 0x1c
mov cl, 0x27
call fcn.14001e310
jmp 0x14001672a
mov ecx, 0x1b
lea rax, [0x1402ac7ce]
mov edx, 1
jmp 0x140016731
lea rax, [0x1402ac7e9]
mov ecx, 0x22
mov edx, 1
jmp 0x140016731
lea rax, [0x1402ac845]
mov ecx, 0x16
mov edx, 1
jmp 0x140016731
mov ecx, 0x26
lea rax, [0x1402ac81f]
mov edx, 1
jmp 0x140016731
mov ecx, 0x14
lea rax, [0x1402ac80b]
mov edx, 1
jmp 0x140016731
mov rax, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x30]
jmp 0x140016731
lea rcx, [rsp + 0x21]
mov r8, rbp
call sub.msvcrt.dll_memcpy
add r15, rbp
mov qword [rsi + 0x18], r15
lea rdx, [0x1402ac77f]
mov r8d, 0x1c
mov cl, 0x27
call fcn.14001e310
jmp 0x14001672a
lea rcx, [rsp + 0x21]
mov rdx, r12
mov r8, r15
call sub.msvcrt.dll_memcpy
add rbp, r15
mov qword [rsi + 0x18], rbp
lea rdx, [0x1402ac77f]
mov r8d, 0x1c
mov cl, 0x27
call fcn.14001e310
jmp 0x14001672a
mov edx, 4
mov rax, qword [rsp + 0x70]
jmp 0x14001672c
lea rcx, str._home_zuzu_.cargo_registry_src_index.crates.io_6f17d22bba15001f_hound_3.5.1_src_read.rsFailed_to_read_enough_bytes.missing_fmt_chunkno_WAVE_tag_foundno_RIFF_tag_foundfile_contains_zero_channelssample_bits_exceeds_size_of_samplebits_per_sample_is_0bits_per_sample_is_not_a_multiple_of_8inconsistent_fmt_chunkinvalid_fmt_chunk_sizebits_per_sample_is_not_8_or_16unexpected_fmt_chunk_sizeunexpected_WAVEFORMATEXTENSIBLE_sizeunexpected_WAVEFORMATEX_sizebits_per_sample_is_not_32
call fcn.1401bbc40
jmp 0x1400169bd
lea rcx, str._home_zuzu_.cargo_registry_src_index.crates.io_6f17d22bba15001f_hound_3.5.1_src_read.rsFailed_to_read_enough_bytes.missing_fmt_chunkno_WAVE_tag_foundno_RIFF_tag_foundfile_contains_zero_channelssample_bits_exceeds_size_of_samplebits_per_sample_is_0bits_per_sample_is_not_a_multiple_of_8inconsistent_fmt_chunkinvalid_fmt_chunk_sizebits_per_sample_is_not_8_or_16unexpected_fmt_chunk_sizeunexpected_WAVEFORMATEXTENSIBLE_sizeunexpected_WAVEFORMATEX_sizebits_per_sample_is_not_32
call fcn.1401bbc80
ud2