Function at 0x14003e890
Capabilities:
Encode data using base64
Hash data using djb2

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x3f8
lea rbp, [rsp + 0x80]
movaps xmmword [rbp + 0x360], xmm6
mov qword [rbp + 0x358], 0xfffffffffffffffe
mov qword [rbp + 0x300], r9
mov rsi, rdx
lea rcx, [rbp + 0x290]
mov qword [rbp + 0x318], r8
mov rdx, r8
call fcn.140054730
lock inc dword [rbp + 0x298]
mov eax, dword [rbp + 0x2b8]
cmp eax, 0x52523633
mov qword [rbp + 0x280], rsi
jg 0x14003e90b
cmp eax, 0x52463634
je 0x14003e91d
cmp eax, 0x52494646
je 0x14003e91d
jmp 0x1400400b6
cmp eax, 0x52523634
je 0x14003e91d
cmp eax, 0x52524543
jne 0x1400400b6
mov dword [rbp + 0x2ec], eax
lea r12, [rbp + 0x290]
movss xmm6, dword [0x1400a7588]
xor eax, eax
mov qword [rbp + 0x310], rax
xor eax, eax
mov qword [rbp + 0x278], rax
xor ebx, ebx
mov dword [rbp + 0x32c], 0
xor eax, eax
mov qword [rbp + 0x2f0], rax
xor eax, eax
mov qword [rbp + 0x348], rax
nop word cs:[rax + rax]
cmp byte [rbp + 0x2e4], 0
jne 0x14003ff33
mov qword [rbp + 0x340], 0
mov rax, qword [rbp + 0x2c8]
test rax, rax
je 0x14003e99f
mov qword [rbp + 0x340], rax
lock inc dword [rax + 8]
lea rcx, [rbp + 0x340]
lea rdx, str.fmt
call fcn.140033cc0
test eax, eax
je 0x14003ea00
lea rcx, [rbp + 0x340]
lea rdx, str.ds64
call fcn.140033cc0
test eax, eax
je 0x14003ee60
lea rcx, [rbp + 0x340]
lea rdx, [0x1400a9da5]
call fcn.140033cc0
test eax, eax
jne 0x14003f080
jmp 0x14003fb2c
xor esi, esi
nop word cs:[rax + rax]
mov r8d, 2
sub r8, rsi
lea rdx, [rsi + rbp]
add rdx, 0x350
mov rax, qword [rbp + 0x290]
mov rcx, r12
call qword [rax + 0x18]
test rax, rax
je 0x14003fd3f
add rsi, rax
cmp rsi, 1
jbe 0x14003ea10
movzx r13d, word [rbp + 0x350]
xor esi, esi
nop dword [rax]
mov r8d, 2
sub r8, rsi
lea rdx, [rsi + rbp]
add rdx, 0x350
mov rax, qword [rbp + 0x290]
mov rcx, r12
call qword [rax + 0x18]
test rax, rax
je 0x14003fd58
add rsi, rax
cmp rsi, 1
jbe 0x14003ea50
movzx eax, word [rbp + 0x350]
mov qword [rbp + 0x2f0], rax
movzx eax, ax
mov dword [rbp + 0x330], eax
xor esi, esi
nop dword [rax]
mov r8d, 4
sub r8, rsi
lea rdx, [rsi + rbp]
add rdx, 0x350
mov rax, qword [rbp + 0x290]
mov rcx, r12
call qword [rax + 0x18]
test rax, rax
je 0x14003fd71
add rsi, rax
cmp rsi, 3
jbe 0x14003eaa0
mov eax, dword [rbp + 0x350]
mov dword [rbp + 0x32c], eax
xor esi, esi
nop word cs:[rax + rax]
mov r8d, 4
sub r8, rsi
lea rdx, [rsi + rbp]
add rdx, 0x350
mov rax, qword [rbp + 0x290]
mov rcx, r12
call qword [rax + 0x18]
test rax, rax
je 0x14003fd8a
add rsi, rax
cmp rsi, 3
jbe 0x14003eaf0
xor esi, esi
nop word cs:[rax + rax]
mov r8d, 2
sub r8, rsi
lea rdx, [rsi + rbp]
add rdx, 0x350
mov rax, qword [rbp + 0x290]
mov rcx, r12
call qword [rax + 0x18]
test rax, rax
je 0x14003fda3
add rsi, rax
cmp rsi, 1
jbe 0x14003eb30
movzx r15d, word [rbp + 0x350]
movzx eax, r15w
mov dword [rbp + 0x328], eax
xor esi, esi
nop word [rax + rax]
mov r8d, 2
sub r8, rsi
lea rdx, [rsi + rbp]
add rdx, 0x350
mov rax, qword [rbp + 0x290]
mov rcx, r12
call qword [rax + 0x18]
test rax, rax
je 0x14003fdbc
add rsi, rax
cmp rsi, 1
jbe 0x14003eb80
movzx ebx, word [rbp + 0x350]
movzx edx, bx
cmp r13d, 1
je 0x14003f028
cmp r13d, 3
je 0x14003ee39
cmp r13d, 0xfffe
jne 0x14003f050
mov dword [rbp + 0x33c], edx
xor esi, esi
nop word cs:[rax + rax]
mov r8d, 2
sub r8, rsi
lea rdx, [rsi + rbp]
add rdx, 0x350
mov rax, qword [rbp + 0x290]
mov rcx, r12
call qword [rax + 0x18]
test rax, rax
je 0x14003fe6b
add rsi, rax
cmp rsi, 1
jbe 0x14003ebf0
xor esi, esi
nop word cs:[rax + rax]
mov r8d, 2
sub r8, rsi
lea rdx, [rsi + rbp]
add rdx, 0x350
mov rax, qword [rbp + 0x290]
mov rcx, r12
call qword [rax + 0x18]
test rax, rax
je 0x14003fe84
add rsi, rax
cmp rsi, 1
jbe 0x14003ec30
xor esi, esi
nop word cs:[rax + rax]
mov r8d, 4
sub r8, rsi
lea rdx, [rsi + rbp]
add rdx, 0x350
mov rax, qword [rbp + 0x290]
mov rcx, r12
call qword [rax + 0x18]
test rax, rax
je 0x14003fe9d
add rsi, rax
cmp rsi, 3
jbe 0x14003ec70
xor esi, esi
nop word cs:[rax + rax]
mov r8d, 4
sub r8, rsi
lea rdx, [rsi + rbp]
add rdx, 0x350
mov rax, qword [rbp + 0x290]
mov rcx, r12
call qword [rax + 0x18]
test rax, rax
je 0x14003feb6
add rsi, rax
cmp rsi, 3
jbe 0x14003ecb0
mov eax, dword [rbp + 0x350]
mov dword [rbp + 0x2f8], eax
xor esi, esi
nop word cs:[rax + rax]
mov r8d, 2
sub r8, rsi
lea rdx, [rsi + rbp]
add rdx, 0x350
mov rax, qword [rbp + 0x290]
mov rcx, r12
call qword [rax + 0x18]
test rax, rax
je 0x14003fecf
add rsi, rax
cmp rsi, 1
jbe 0x14003ed00
movzx r14d, word [rbp + 0x350]
xor esi, esi
nop dword [rax]
mov r8d, 2
sub r8, rsi
lea rdx, [rsi + rbp]
add rdx, 0x350
mov rax, qword [rbp + 0x290]
mov rcx, r12
call qword [rax + 0x18]
test rax, rax
je 0x14003fee8
add rsi, rax
cmp rsi, 1
jbe 0x14003ed40
movzx esi, word [rbp + 0x350]
xor edi, edi
nop dword [rax]
mov r8d, 4
sub r8, rdi
lea rdx, [rdi + rbp]
add rdx, 0x350
mov rax, qword [rbp + 0x290]
mov rcx, r12
call qword [rax + 0x18]
test rax, rax
je 0x14003ff01
add rdi, rax
cmp rdi, 3
jbe 0x14003ed80
mov edi, dword [rbp + 0x350]
xor r13d, r13d
nop dword [rax]
mov r8d, 4
sub r8, r13
lea rdx, [r13 + 0x350]
add rdx, rbp
mov rax, qword [rbp + 0x290]
mov rcx, r12
call qword [rax + 0x18]
test rax, rax
je 0x14003ff1a
add r13, rax
cmp r13, 3
jbe 0x14003edc0
mov eax, dword [rbp + 0x350]
mov ecx, dword [rbp + 0x2f8]
cmp ecx, 3
jne 0x14003f002
test r14w, r14w
jne 0x14003f002
cmp si, 0x10
jne 0x14003f002
cmp edi, 0xaa000080
jne 0x14003f002
cmp eax, 0x719b3800
mov edx, dword [rbp + 0x33c]
jne 0x14003f050
lea r13, [0x1400c7a80]
cmp bx, 0x20
je 0x14003f063
cmp edx, 0x40
jne 0x14003f050
lea r13, [0x1400c7a98]
jmp 0x14003f063
xor esi, esi
nop word cs:[rax + rax]
mov r8d, 4
sub r8, rsi
lea rdx, [rsi + rbp]
add rdx, 0x350
mov rax, qword [rbp + 0x290]
mov rcx, r12
call qword [rax + 0x18]
test rax, rax
je 0x14003fdd5
add rsi, rax
cmp rsi, 3
jbe 0x14003ee70
xor esi, esi
nop word cs:[rax + rax]
mov r8d, 4
sub r8, rsi
lea rdx, [rsi + rbp]
add rdx, 0x350
mov rax, qword [rbp + 0x290]
mov rcx, r12
call qword [rax + 0x18]
test rax, rax
je 0x14003fdee
add rsi, rax
cmp rsi, 3
jbe 0x14003eeb0
xor esi, esi
nop word cs:[rax + rax]
mov r8d, 4
sub r8, rsi
lea rdx, [rsi + rbp]
add rdx, 0x350
mov rax, qword [rbp + 0x290]
mov rcx, r12
call qword [rax + 0x18]
test rax, rax
je 0x14003fe07
add rsi, rax
cmp rsi, 3
jbe 0x14003eef0
xor esi, esi
nop word cs:[rax + rax]
mov r8d, 4
sub r8, rsi
lea rdx, [rsi + rbp]
add rdx, 0x350
mov rax, qword [rbp + 0x290]
mov rcx, r12
call qword [rax + 0x18]
test rax, rax
je 0x14003fe20
add rsi, rax
cmp rsi, 3
jbe 0x14003ef30
xor esi, esi
nop word cs:[rax + rax]
mov r8d, 4
sub r8, rsi
lea rdx, [rsi + rbp]
add rdx, 0x350
mov rax, qword [rbp + 0x290]
mov rcx, r12
call qword [rax + 0x18]
test rax, rax
je 0x14003fe39
add rsi, rax
cmp rsi, 3
jbe 0x14003ef70
mov esi, dword [rbp + 0x350]
xor edi, edi
nop dword [rax + rax]
mov r8d, 4
sub r8, rdi
lea rdx, [rdi + rbp]
add rdx, 0x350
mov rax, qword [rbp + 0x290]
mov rcx, r12
call qword [rax + 0x18]
test rax, rax
je 0x14003fe52
add rdi, rax
cmp rdi, 3
jbe 0x14003efb0
mov eax, dword [rbp + 0x350]
shl rax, 0x20
or rax, rsi
mov qword [rbp + 0x310], rax
mov al, 1
mov qword [rbp + 0x278], rax
jmp 0x14003f080
cmp edi, 0xaa000080
mov edx, dword [rbp + 0x33c]
jne 0x14003f050
cmp si, 0x10
jne 0x14003f050
test r14w, r14w
jne 0x14003f050
cmp ecx, 1
jne 0x14003f050
cmp eax, 0x719b3800
jne 0x14003f050
lea eax, [rbx - 8]
shrd ax, bx, 3
cmp ax, 4
jae 0x14003f050
movsx rax, ax
lea rcx, [0x1400a7850]
mov r13, qword [rcx + rax*8]
jmp 0x14003f063
mov rax, qword [rbp + 0x348]
mov r13, rax
test rax, rax
je 0x14003ffab
mov ebx, dword [r13 + 0x10]
imul ebx, dword [rbp + 0x330]
cmp ebx, dword [rbp + 0x328]
jne 0x14003f0bc
mov ebx, r15d
mov qword [rbp + 0x348], r13
mov rcx, r12
call fcn.140054bf0
mov rcx, qword [rbp + 0x340]
test rcx, rcx
je 0x14003e970
mov qword [rbp + 0x340], 0
lock dec dword [rcx + 8]
jne 0x14003e970
mov rax, qword [rcx]
mov edx, 1
call qword [rax]
jmp 0x14003e970
mov dword [rbp + 0x33c], edx
mov eax, dword [0x1400c7868]
mov ecx, dword [0x1400c5bb8]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14003fa95
mov eax, dword [0x1400c78b0]
mov ecx, dword [0x1400c5bb8]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14003fae6
mov rax, qword [0x1400c7760]
lea rcx, [0x1400c7760]
call qword [rax + 8]
mov rax, qword [rbp + 0x300]
mov rax, qword [rax]
mov edi, 0x1505
test rax, rax
je 0x14003f161
movsxd rdx, dword [rax + 0x18]
lea rcx, [rdx - 1]
test ecx, ecx
je 0x14003f161
cmp edx, 2
jne 0x14003f217
xor edx, edx
test cl, 1
je 0x14003f161
mov rcx, qword [rax + 0x10]
mov ecx, dword [rcx + rdx*4]
add rcx, rdi
shl rdi, 5
add rcx, rdi
mov rdi, rcx
mov rcx, qword [0x1400c78a0]
mov qword [rbp + 0x288], rdi
and rcx, rdi
mov rdx, qword [0x1400c7888]
mov r8, rcx
shl r8, 4
mov r15, qword [rdx + r8 + 8]
cmp r15, qword [0x1400c7878]
je 0x14003f26d
add rcx, rcx
mov rcx, qword [rdx + rcx*8]
mov rdx, qword [r15 + 0x10]
test rdx, rdx
je 0x14003f1ec
movsxd r9, dword [rdx + 0x18]
lea r8, [r9 - 1]
test rax, rax
je 0x14003f203
cmp r9d, dword [rax + 0x18]
jne 0x14003f20c
mov sil, 1
test r8d, r8d
je 0x14003f960
xor r9d, r9d
cmp r9, 0x7fffffff
je 0x14003f1df
mov r10, qword [rax + 0x10]
mov r10d, dword [r10 + r9*4]
mov r11, qword [rdx + 0x10]
cmp r10d, dword [r11 + r9*4]
jne 0x14003f20c
inc r9
cmp r8, r9
jne 0x14003f1c4
jmp 0x14003f960
mov sil, 1
test rax, rax
je 0x14003f960
cmp dword [rax + 0x18], 1
jne 0x14003f20c
jmp 0x14003f960
test r8d, r8d
je 0x14003fa8d
cmp r15, rcx
je 0x14003f26a
mov r15, qword [r15 + 8]
jmp 0x14003f199
mov r8, rcx
and r8, 0xfffffffffffffffe
xor edx, edx
cmp rdx, 0x7ffffffe
je 0x14003f265
mov r9, qword [rax + 0x10]
mov r9d, dword [r9 + rdx*4 + 4]
mov r10, rdi
shl r10, 5
add r10, rdi
mov r11, qword [rax + 0x10]
mov r11d, dword [r11 + rdx*4]
add r11, r10
mov r10, r11
shl r10, 5
add r10, r11
mov edi, r9d
add rdi, r10
add rdx, 2
cmp r8, rdx
jne 0x14003f220
jmp 0x14003f148
xor r9d, r9d
jmp 0x14003f232
mov r15, rcx
movabs rax, 0xaaaaaaaaaaaaaaa
cmp qword [0x1400c7880], rax
je 0x140040129
lea rax, [0x1400c7878]
mov qword [rbp - 0x18], rax
mov ecx, 0x18
call fcn.1400574f8
mov rcx, rax
mov qword [rbp - 0x10], rax
mov qword [rax + 0x10], 0
mov rax, qword [rbp + 0x300]
mov rax, qword [rax]
test rax, rax
je 0x14003f2bf
mov qword [rcx + 0x10], rax
lock inc dword [rax + 8]
mov rax, qword [0x1400c7880]
inc rax
movss xmm0, dword [0x1400c7870]
mov qword [rbp + 0x320], rcx
js 0x14003f2e1
cvtsi2ss xmm1, rax
jmp 0x14003f2f6
mov rcx, rax
shr rcx, 1
and eax, 1
or rax, rcx
cvtsi2ss xmm1, rax
addss xmm1, xmm1
mov rax, qword [0x1400c78a8]
test rax, rax
js 0x14003f309
cvtsi2ss xmm2, rax
jmp 0x14003f320
mov rcx, rax
shr rcx, 1
mov edx, eax
and edx, 1
or rdx, rcx
cvtsi2ss xmm2, rdx
addss xmm2, xmm2
movaps xmm3, xmm1
divss xmm3, xmm2
ucomiss xmm3, xmm0
jbe 0x14003f8ae
divss xmm1, xmm0
xorps xmm0, xmm0
roundss xmm0, xmm1, 0xa
cvttss2si rdx, xmm0
mov r8, rdx
sar r8, 0x3f
subss xmm0, xmm6
cvttss2si rcx, xmm0
and rcx, r8
or rcx, rdx
cmp rcx, 9
mov edx, 8
cmovb rcx, rdx
cmp rax, rcx
jae 0x14003f386
lea rdx, [rax*8]
cmp rdx, rcx
cmovb rdx, rcx
cmp rax, 0x200
cmovae rdx, rcx
mov rax, rdx
movabs rcx, 0x800000000000001
cmp rax, rcx
jae 0x140040135
dec rax
or rax, 1
bsr rsi, rax
xor rsi, 0xffffffffffffffc0
add rsi, 0x41
mov r15d, 1
mov ecx, esi
shl r15, cl
mov r14d, 2
shl r14, cl
mov rdi, qword [0x1400c7878]
mov rax, qword [0x1400c7890]
mov rcx, qword [0x1400c7888]
mov rdx, rax
sub rdx, rcx
mov r8, rdx
sar r8, 3
cmp r8, r14
jae 0x14003f437
mov rax, r14
shr rax, 0x3d
jne 0x140040141
mov eax, 0x10
mov ecx, esi
shl rax, cl
cmp r14, 0x200
jb 0x14003f456
movabs rcx, 0x1ffffffffffffffc
cmp r14, rcx
jae 0x140040146
add rax, 0x27
mov rcx, rax
call fcn.1400574f8
mov r10, rax
add r10, 0x27
and r10, 0xffffffffffffffe0
mov qword [r10 - 8], rax
jmp 0x14003f461
cmp rcx, rax
je 0x14003f56c
add rdx, 0xfffffffffffffff8
cmp rdx, 0x18
jae 0x14003f526
mov r8, rcx
jmp 0x14003f560
mov rcx, rax
call fcn.1400574f8
mov r10, rax
mov rdx, qword [0x1400c7898]
mov rcx, qword [0x1400c7888]
sub rdx, rcx
je 0x14003f4ac
cmp rdx, 0x1000
mov qword [rbp + 0x348], r10
jb 0x14003f4a0
mov rax, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, rax
cmp rcx, 0x20
jae 0x14004014b
add rdx, 0x27
mov rcx, rax
call fcn.14005753c
mov r10, qword [rbp + 0x348]
mov qword [0x1400c7888], r10
lea rax, [r10 + r14*8]
mov edx, 0x10
mov ecx, esi
shl rdx, cl
mov qword [0x1400c7890], rax
mov qword [0x1400c7898], rax
add rdx, 0xfffffffffffffff8
cmp rdx, 0x18
jae 0x14003f4de
mov rcx, r10
jmp 0x14003f518
shr rdx, 3
inc rdx
mov r8, rdx
and r8, 0xfffffffffffffffc
lea rcx, [r10 + r8*8]
movq xmm0, rdi
pshufd xmm0, xmm0, 0x44
xor r9d, r9d
movdqu xmmword [r10 + r9*8], xmm0
movdqu xmmword [r10 + r9*8 + 0x10], xmm0
add r9, 4
cmp r8, r9
jne 0x14003f4fd
cmp rdx, r8
je 0x14003f56c
mov qword [rcx], rdi
add rcx, 8
cmp rcx, rax
jne 0x14003f518
jmp 0x14003f56c
shr rdx, 3
inc rdx
mov r9, rdx
and r9, 0xfffffffffffffffc
lea r8, [rcx + r9*8]
movq xmm0, rdi
pshufd xmm0, xmm0, 0x44
xor r10d, r10d
movdqu xmmword [rcx + r10*8], xmm0
movdqu xmmword [rcx + r10*8 + 0x10], xmm0
add r10, 4
cmp r9, r10
jne 0x14003f545
cmp rdx, r9
je 0x14003f56c
mov qword [r8], rdi
add r8, 8
cmp r8, rax
jne 0x14003f560
lea rcx, [r15 - 1]
mov qword [0x1400c78a0], rcx
mov qword [0x1400c78a8], r15
mov r15, qword [0x1400c7878]
mov rdx, qword [r15]
cmp rdx, rdi
je 0x14003f807
mov qword [rbp + 0x308], rdi
jmp 0x14003f5ab
mov qword [r8 + r9*8], rax
mov qword [r8 + rsi*8], rax
cmp rdx, rdi
je 0x14003f7f9
mov rax, rdx
mov rcx, qword [rdx + 0x10]
mov r10d, 0x1505
test rcx, rcx
je 0x14003f5f0
movsxd r8, dword [rcx + 0x18]
lea rdx, [r8 - 1]
test edx, edx
je 0x14003f5f0
cmp r8d, 2
jne 0x14003f696
xor r8d, r8d
test dl, 1
je 0x14003f5f0
mov rdx, qword [rcx + 0x10]
mov edx, dword [rdx + r8*4]
add rdx, r10
shl r10, 5
add rdx, r10
mov r10, rdx
mov rdx, qword [rax]
and r10, qword [0x1400c78a0]
mov r8, qword [0x1400c7888]
lea r9, [r10 + r10]
lea rsi, [r10*2 + 1]
shl r10, 4
mov r10, qword [r8 + r10]
cmp r10, rdi
je 0x14003f59a
mov qword [rbp + 0x2f8], r9
mov r11, qword [r8 + rsi*8]
mov r14, qword [r11 + 0x10]
test r14, r14
mov qword [rbp + 0x348], r8
je 0x14003f685
movsxd r9, dword [r14 + 0x18]
lea r15, [r9 - 1]
test rcx, rcx
je 0x14003f6ea
cmp r9d, dword [rcx + 0x18]
jne 0x14003f72d
test r15d, r15d
je 0x14003f6ef
xor r9d, r9d
cmp r9, 0x7fffffff
je 0x14003f67b
mov rdi, qword [rcx + 0x10]
mov edi, dword [rdi + r9*4]
mov r8, qword [r14 + 0x10]
cmp edi, dword [r8 + r9*4]
jne 0x14003f72d
inc r9
cmp r15, r9
jne 0x14003f65c
jmp 0x14003f6ef
test rcx, rcx
je 0x14003f6ef
cmp dword [rcx + 0x18], 1
jne 0x14003f72d
jmp 0x14003f6ef
mov r9, rdx
and r9, 0xfffffffffffffffe
xor r8d, r8d
cmp r8, 0x7ffffffe
je 0x14003f6e5
mov r11, qword [rcx + 0x10]
mov r11d, dword [r11 + r8*4 + 4]
mov rsi, r10
shl rsi, 5
add rsi, r10
mov r10, qword [rcx + 0x10]
mov r10d, dword [r10 + r8*4]
add r10, rsi
mov rsi, r10
shl rsi, 5
add rsi, r10
mov r10d, r11d
add r10, rsi
add r8, 2
cmp r9, r8
jne 0x14003f6a0
jmp 0x14003f5d6
xor r11d, r11d
jmp 0x14003f6b2
test r15d, r15d
jne 0x14003f72d
mov rcx, qword [r11]
cmp rcx, rax
je 0x14003f718
mov r8, qword [rax + 8]
mov qword [r8], rdx
mov r9, qword [rdx + 8]
mov qword [r9], rcx
mov r10, qword [rcx + 8]
mov qword [r10], rax
mov qword [rcx + 8], r9
mov qword [rdx + 8], r8
mov qword [rax + 8], r10
mov rcx, qword [rbp + 0x348]
mov qword [rcx + rsi*8], rax
jmp 0x14003f7e9
test r14d, r14d
je 0x14003f790
cmp r10, r11
je 0x14003f7b6
mov r11, qword [r11 + 8]
mov rsi, qword [r11 + 0x10]
test rsi, rsi
je 0x14003f785
movsxd r9, dword [rsi + 0x18]
lea r14, [r9 - 1]
test rcx, rcx
je 0x14003f728
cmp r9d, dword [rcx + 0x18]
jne 0x14003f72d
test r14d, r14d
je 0x14003f790
xor r9d, r9d
nop
cmp r9, 0x7fffffff
je 0x14003f77b
mov r8, qword [rcx + 0x10]
mov r8d, dword [r8 + r9*4]
mov rdi, qword [rsi + 0x10]
cmp r8d, dword [rdi + r9*4]
jne 0x14003f72d
inc r9
cmp r14, r9
jne 0x14003f760
jmp 0x14003f790
test rcx, rcx
je 0x14003f790
cmp dword [rcx + 0x18], 1
jne 0x14003f72d
mov rcx, qword [r11]
mov r8, qword [rax + 8]
mov qword [r8], rdx
mov r9, qword [rdx + 8]
mov qword [r9], rcx
mov r10, qword [rcx + 8]
mov qword [r10], rax
mov qword [rcx + 8], r9
mov qword [rdx + 8], r8
mov qword [rax + 8], r10
jmp 0x14003f7e9
mov rcx, qword [rax + 8]
mov qword [rcx], rdx
mov r8, qword [rdx + 8]
mov qword [r8], r10
mov r9, qword [r10 + 8]
mov qword [r9], rax
mov qword [r10 + 8], r8
mov qword [rdx + 8], rcx
mov qword [rax + 8], r9
mov rcx, qword [rbp + 0x348]
mov r8, qword [rbp + 0x2f8]
mov qword [rcx + r8*8], rax
mov rdi, qword [rbp + 0x308]
cmp rdx, rdi
jne 0x14003f5ab
mov rcx, qword [0x1400c78a0]
mov r15, qword [0x1400c7878]
and rcx, qword [rbp + 0x288]
mov rdx, qword [0x1400c7888]
mov rax, rcx
shl rax, 4
mov rax, qword [rdx + rax + 8]
cmp rax, r15
je 0x14003f8ae
add rcx, rcx
mov r15, qword [rdx + rcx*8]
mov rcx, qword [rax + 0x10]
test rcx, rcx
je 0x14003f884
movsxd r9, dword [rcx + 0x18]
lea rdx, [r9 - 1]
mov r8, qword [rbp + 0x320]
mov r8, qword [r8 + 0x10]
test r8, r8
je 0x14003f89c
cmp r9d, dword [r8 + 0x18]
jne 0x14003f8a0
test edx, edx
je 0x14003f8ab
xor r9d, r9d
cmp r9, 0x7fffffff
je 0x14003f87a
mov r10, qword [r8 + 0x10]
mov r10d, dword [r10 + r9*4]
mov r11, qword [rcx + 0x10]
cmp r10d, dword [r11 + r9*4]
jne 0x14003f8a0
inc r9
cmp rdx, r9
jne 0x14003f85f
jmp 0x14003f8ab
mov rcx, qword [rbp + 0x320]
mov rcx, qword [rcx + 0x10]
test rcx, rcx
je 0x14003f8ab
cmp dword [rcx + 0x18], 1
jne 0x14003f8a0
jmp 0x14003f8ab
test edx, edx
je 0x14003f8ab
cmp rax, r15
je 0x14003f8ae
mov rax, qword [rax + 8]
jmp 0x14003f831
mov r15, qword [rax]
mov qword [rbp - 0x10], 0
mov rax, qword [r15 + 8]
inc qword [0x1400c7880]
mov r10, qword [rbp + 0x320]
mov qword [r10], r15
mov qword [r10 + 8], rax
mov qword [rax], r10
mov qword [r15 + 8], r10
mov r8, qword [0x1400c7888]
mov r9, qword [rbp + 0x288]
and r9, qword [0x1400c78a0]
shl r9, 4
lea rcx, [r8 + r9]
lea rdx, [r8 + r9]
add rdx, 8
mov r8, qword [r8 + r9]
cmp r8, qword [0x1400c7878]
je 0x14003f917
cmp r8, r15
je 0x14003f91d
mov rcx, rdx
cmp qword [rdx], rax
jne 0x14003f927
jmp 0x14003f91d
mov qword [rcx], r10
mov rcx, rdx
mov rax, qword [rbp + 0x320]
mov qword [rcx], rax
mov rdi, qword [rbp - 0x10]
test rdi, rdi
je 0x14003f95e
mov rcx, qword [rdi + 0x10]
test rcx, rcx
je 0x14003f951
mov qword [rdi + 0x10], 0
lock dec dword [rcx + 8]
jne 0x14003f951
mov rax, qword [rcx]
mov edx, 1
call qword [rax]
mov edx, 0x18
mov rcx, rdi
call fcn.14005753c
xor esi, esi
mov rax, qword [0x1400c7760]
lea rcx, [0x1400c7760]
call qword [rax + 0x18]
test sil, sil
jne 0x14003f079
mov r8d, 0x20c
lea rsi, [rbp - 0x18]
mov rcx, rsi
xor edx, edx
call fcn.140094e00
mov dword [rbp + 0x1f4], 0x80
mov rcx, rsi
lea rdx, str.found_badly_encoded_wavefile:
call fcn.140033910
mov rcx, rsi
mov rdx, qword [rbp + 0x300]
call fcn.140033950
mov rcx, rsi
lea rdx, str._n_____blockAlign_
call fcn.140033910
mov rcx, rsi
mov edx, dword [rbp + 0x328]
call fcn.140033a50
mov rcx, rsi
lea rdx, str.__while_the_correct_blockAlign_would_be:
call fcn.140033910
mov rcx, rsi
mov edx, ebx
call fcn.140033b20
mov rcx, rsi
lea rdx, str.__because_channels_
call fcn.140033910
mov rcx, rsi
mov edx, dword [rbp + 0x330]
call fcn.140033a50
mov rcx, rsi
lea rdx, str._and_bitsPerSamples_
call fcn.140033910
mov rcx, rsi
mov edx, dword [rbp + 0x33c]
call fcn.140033a50
lea rcx, [rbp + 0x350]
mov rdx, rsi
call fcn.1400335f0
lea rcx, [rbp + 0x350]
call fcn.140040800
mov rcx, qword [rbp + 0x350]
test rcx, rcx
je 0x14003fa68
mov qword [rbp + 0x350], 0
lock dec dword [rcx + 8]
jne 0x14003fa68
mov rax, qword [rcx]
mov edx, 1
call qword [rax]
mov qword [rbp + 0x350], 0
mov rcx, qword [rbp + 0x1e8]
test rcx, rcx
je 0x14003f079
call fcn.140071418
jmp 0x14003f079
mov sil, 1
jmp 0x14003f960
lea rcx, [0x1400c7868]
call fcn.140058dc0
cmp dword [0x1400c7868], 0xffffffff
jne 0x14003f0e7
lea rax, vtable.base::core::Mutex.0
mov qword [0x1400c7760], rax
lea rcx, [0x1400c7768]
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
lea rcx, [0x140040700]
call fcn.140057578
lea rcx, [0x1400c7868]
call fcn.140058e74
jmp 0x14003f0e7
lea rcx, [0x1400c78b0]
call fcn.140058dc0
cmp dword [0x1400c78b0], 0xffffffff
jne 0x14003f10c
mov dword [rbp - 0x18], 0
lea rcx, [rbp - 0x18]
call fcn.140040c90
lea rcx, [0x140040720]
call fcn.140057578
lea rcx, [0x1400c78b0]
call fcn.140058e74
jmp 0x14003f10c
cmp qword [rbp + 0x348], 0
je 0x14003ffc9
movzx ebx, bx
mov ecx, dword [rbp + 0x2ec]
cmp ecx, 0x52523634
je 0x14003fb53
cmp ecx, 0x52463634
jne 0x14003fb6a
test byte [rbp + 0x278], 1
je 0x140040041
cmp ecx, 0x52524543
jne 0x14003fb83
jmp 0x14003fb8f
mov eax, dword [rbp + 0x2d0]
xor edx, edx
div ebx
mov qword [rbp + 0x310], rax
cmp ecx, 0x52524543
je 0x14003fb8f
cmp ecx, 0x52523634
jne 0x14003fc2b
mov rax, qword [rbp + 0x318]
mov rcx, qword [rax]
mov rax, qword [rcx]
call qword [rax + 0x48]
test al, al
je 0x14003fc2b
mov rax, qword [rbp + 0x318]
mov rcx, qword [rax]
mov rax, qword [rcx]
call qword [rax + 0x38]
test al, al
je 0x14003fc2b
mov ecx, 0x70
call fcn.1400574f8
movzx edx, word [rbp + 0x2f0]
mov rcx, qword [rbp + 0x310]
mov qword [rsp + 0x30], rcx
mov ecx, dword [rbp + 0x32c]
mov dword [rsp + 0x28], ecx
mov dword [rsp + 0x20], edx
mov dword [rsp + 0x38], 0x400
mov rcx, rax
mov qword [rbp + 0x330], rax
mov rdx, qword [rbp + 0x318]
mov r8, qword [rbp + 0x348]
mov r9d, ebx
call fcn.140056ad0
lea rax, vtable.dsp::RecordingWavAudioFrameReader.0
mov rcx, qword [rbp + 0x330]
mov qword [rcx], rax
mov rsi, qword [rbp + 0x280]
mov rax, rcx
jmp 0x14003fc8c
mov ecx, 0x70
call fcn.1400574f8
movzx edx, word [rbp + 0x2f0]
mov rcx, qword [rbp + 0x310]
mov qword [rsp + 0x30], rcx
mov ecx, dword [rbp + 0x32c]
mov dword [rsp + 0x28], ecx
mov dword [rsp + 0x20], edx
mov dword [rsp + 0x38], 0x400
mov qword [rbp + 0x330], rax
mov rcx, rax
mov rdx, qword [rbp + 0x318]
mov r8, qword [rbp + 0x348]
mov r9d, ebx
call fcn.140056ad0
mov rsi, qword [rbp + 0x280]
mov rax, qword [rbp + 0x330]
mov qword [rsi], rax
lock inc dword [rax + 8]
mov rcx, qword [rbp + 0x340]
test rcx, rcx
je 0x14003fcba
mov qword [rbp + 0x340], 0
lock dec dword [rcx + 8]
jne 0x14003fcba
mov rax, qword [rcx]
mov edx, 1
call qword [rax]
lea rax, vtable.base::core::RIFFInputStream.0
mov qword [rbp + 0x290], rax
mov rcx, qword [rbp + 0x2c8]
test rcx, rcx
je 0x14003fcef
mov qword [rbp + 0x2c8], 0
lock dec dword [rcx + 8]
jne 0x14003fcef
mov rax, qword [rcx]
mov edx, 1
call qword [rax]
mov qword [rbp + 0x2c8], 0
mov rcx, qword [rbp + 0x2b0]
test rcx, rcx
je 0x14003fd21
mov qword [rbp + 0x2b0], 0
lock dec dword [rcx + 8]
jne 0x14003fd21
mov rax, qword [rcx]
mov edx, 1
call qword [rax]
mov rax, rsi
movaps xmm6, xmmword [rbp + 0x360]
add rsp, 0x3f8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
lea rcx, [rbp - 0x18]
call fcn.140032850
lea rdx, [0x1400b9fc8]
lea rcx, [rbp - 0x18]
call fcn.14005c53c
lea rcx, [rbp - 0x18]
call fcn.140032850
lea rdx, [0x1400b9fc8]
lea rcx, [rbp - 0x18]
call fcn.14005c53c
lea rcx, [rbp - 0x18]
call fcn.140032850
lea rdx, [0x1400b9fc8]
lea rcx, [rbp - 0x18]
call fcn.14005c53c
lea rcx, [rbp - 0x18]
call fcn.140032850
lea rdx, [0x1400b9fc8]
lea rcx, [rbp - 0x18]
call fcn.14005c53c
lea rcx, [rbp - 0x18]
call fcn.140032850
lea rdx, [0x1400b9fc8]
lea rcx, [rbp - 0x18]
call fcn.14005c53c
lea rcx, [rbp - 0x18]
call fcn.140032850
lea rdx, [0x1400b9fc8]
lea rcx, [rbp - 0x18]
call fcn.14005c53c
lea rcx, [rbp - 0x18]
call fcn.140032850
lea rdx, [0x1400b9fc8]
lea rcx, [rbp - 0x18]
call fcn.14005c53c
lea rcx, [rbp - 0x18]
call fcn.140032850
lea rdx, [0x1400b9fc8]
lea rcx, [rbp - 0x18]
call fcn.14005c53c
lea rcx, [rbp - 0x18]
call fcn.140032850
lea rdx, [0x1400b9fc8]
lea rcx, [rbp - 0x18]
call fcn.14005c53c
lea rcx, [rbp - 0x18]
call fcn.140032850
lea rdx, [0x1400b9fc8]
lea rcx, [rbp - 0x18]
call fcn.14005c53c
lea rcx, [rbp - 0x18]
call fcn.140032850
lea rdx, [0x1400b9fc8]
lea rcx, [rbp - 0x18]
call fcn.14005c53c
lea rcx, [rbp - 0x18]
call fcn.140032850
lea rdx, [0x1400b9fc8]
lea rcx, [rbp - 0x18]
call fcn.14005c53c
lea rcx, [rbp - 0x18]
call fcn.140032850
lea rdx, [0x1400b9fc8]
lea rcx, [rbp - 0x18]
call fcn.14005c53c
lea rcx, [rbp - 0x18]
call fcn.140032850
lea rdx, [0x1400b9fc8]
lea rcx, [rbp - 0x18]
call fcn.14005c53c
lea rcx, [rbp - 0x18]
call fcn.140032850
lea rdx, [0x1400b9fc8]
lea rcx, [rbp - 0x18]
call fcn.14005c53c
lea rcx, [rbp - 0x18]
call fcn.140032850
lea rdx, [0x1400b9fc8]
lea rcx, [rbp - 0x18]
call fcn.14005c53c
lea rcx, [rbp - 0x18]
call fcn.140032850
lea rdx, [0x1400b9fc8]
lea rcx, [rbp - 0x18]
call fcn.14005c53c
lea rcx, [rbp - 0x18]
call fcn.140032850
lea rdx, [0x1400b9fc8]
lea rcx, [rbp - 0x18]
call fcn.14005c53c
lea rcx, [rbp - 0x18]
call fcn.140032850
lea rdx, [0x1400b9fc8]
lea rcx, [rbp - 0x18]
call fcn.14005c53c
lea rcx, [rbp - 0x18]
call fcn.140032850
lea rdx, [0x1400b9fc8]
lea rcx, [rbp - 0x18]
call fcn.14005c53c
lea rdx, str.No_data_chunk_found_in_wav_file
lea rcx, [rbp - 0x18]
call fcn.140032a10
mov dword [rbp + 0x260], 0
lea rax, vtable.base::core::Exception.0
mov qword [rbp + 0x258], rax
mov qword [rbp + 0x268], 0
mov rax, qword [rbp - 0x18]
test rax, rax
je 0x14003ff7a
mov qword [rbp + 0x268], rax
lock inc dword [rax + 8]
mov qword [rbp + 0x270], 0
lea rax, vtable.base::core::IOException.0
mov qword [rbp + 0x258], rax
lea rdx, [0x1400b8140]
lea rcx, [rbp + 0x258]
call fcn.14005c53c
jmp 0x140040129
lea rcx, [rbp - 0x38]
call fcn.140040610
lea rdx, [0x1400bbd38]
lea rcx, [rbp - 0x38]
call fcn.14005c53c
jmp 0x140040129
lea rdx, str.No_format_chunk_found_before_data_chunk
lea rcx, [rbp - 0x18]
call fcn.140032a10
mov dword [rbp + 0x220], 0
lea rax, vtable.base::core::Exception.0
mov qword [rbp + 0x218], rax
mov qword [rbp + 0x228], 0
mov rax, qword [rbp - 0x18]
test rax, rax
je 0x140040010
mov qword [rbp + 0x228], rax
lock inc dword [rax + 8]
mov qword [rbp + 0x230], 0
lea rax, vtable.base::core::IOException.0
mov qword [rbp + 0x218], rax
lea rdx, [0x1400b8140]
lea rcx, [rbp + 0x218]
call fcn.14005c53c
jmp 0x140040129
lea rdx, str.No_ds64_chunk_found_for_riff_64
lea rcx, [rbp - 0x18]
call fcn.140032a10
mov dword [rbp + 0x240], 0
lea rax, vtable.base::core::Exception.0
mov qword [rbp + 0x238], rax
mov qword [rbp + 0x248], 0
mov rax, qword [rbp - 0x18]
test rax, rax
je 0x140040088
mov qword [rbp + 0x248], rax
lock inc dword [rax + 8]
mov qword [rbp + 0x250], 0
lea rax, vtable.base::core::IOException.0
mov qword [rbp + 0x238], rax
lea rdx, [0x1400b8140]
lea rcx, [rbp + 0x238]
call fcn.14005c53c
jmp 0x140040129
lea rdx, str.Unsupported_RIFF_type_in_header
lea rcx, [rbp - 0x18]
call fcn.140032a10
mov dword [rbp + 0x200], 0
lea rax, vtable.base::core::Exception.0
mov qword [rbp + 0x1f8], rax
mov qword [rbp + 0x208], 0
mov rax, qword [rbp - 0x18]
test rax, rax
je 0x1400400fd
mov qword [rbp + 0x208], rax
lock inc dword [rax + 8]
mov qword [rbp + 0x210], 0
lea rax, vtable.base::core::IOException.0
mov qword [rbp + 0x1f8], rax
lea rdx, [0x1400b8140]
lea rcx, [rbp + 0x1f8]
call fcn.14005c53c
lea rcx, str.unordered_map_set_too_long
call fcn.140057fd8
lea rcx, str.invalid_hash_bucket_count
call fcn.140057fd8
call fcn.14002e7f0
call fcn.14002e7f0
call fcn.14006afb4
int3