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

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0x138
lea rbp, [rsp + 0x80]
movsxd rax, dword [rcx + 0x920]
mov rdi, rax
mov dword [rbp - 0x1c], eax
lea rax, [rax + rax + 0xf]
and rax, 0xfffffffffffffff0
mov qword [rbp + 0x100], rcx
mov qword [rbp + 0x108], rdx
mov qword [rbp + 0x110], r8
call fcn.004582d0
mov ecx, dword [rcx + 0x918]
sub rsp, rax
lea rax, [rsp + 0x30]
mov qword [rbp - 0x30], rax
lea eax, [rcx + rdi]
cdqe
lea rax, [rax*4 + 0xf]
and rax, 0xfffffffffffffff0
call fcn.004582d0
sub rsp, rax
lea rax, [rsp + 0x30]
mov qword [rbp - 0x28], rax
mov rax, qword [rbp + 0x100]
movsxd rdx, dword [rax + 0x91c]
shl rdx, 2
lea rax, [rdx + 0xf]
and rax, 0xfffffffffffffff0
call fcn.004582d0
sub rsp, rax
lea rax, [rsp + 0x30]
mov qword [rbp - 0x38], rax
lea rax, [rdx + 0x4f]
and rax, 0xfffffffffffffff0
call fcn.004582d0
mov rdi, qword [rbp + 0x100]
movsx rdx, byte [rdi + 0xae6]
sub rsp, rax
lea rax, [rsp + 0x33]
shr rax, 2
mov qword [rbp - 0x40], rax
shl rax, 2
mov qword [rbp], rax
mov rax, qword [rbp + 0x100]
movzx eax, byte [rax + 0xae5]
mov r14d, eax
sar al, 1
cmp byte [rdi + 0xae7], 3
movsx rax, al
setle byte [rbp - 0x1d]
lea rdx, [rdx + rax*2]
mov rax, qword [0x0047cd40]
movsx ebx, word [rax + rdx*2]
movsx edx, byte [rdi + 0xaea]
test ecx, ecx
jle 0x4471db
lea r11d, [rcx - 1]
shl ebx, 4
mov ecx, 1
mov rsi, qword [rbp + 0x100]
add r11, 2
jmp 0x4471a8
sub eax, 0x500
mov dword [rsi + rcx*4], eax
add eax, ebx
mov r10d, eax
neg r10d
test edx, edx
cmovs eax, r10d
add edx, r8d
mov dword [rsi + rcx*4], eax
add rcx, 1
cmp r11, rcx
je 0x4471db
movsx r8d, word [r9 + rcx*2 - 2]
imul edx, edx, 0xbb38435
mov eax, r8d
shl eax, 0xe
add edx, 0x3619636b
test eax, eax
jg 0x447183
jne 0x4471d1
mov dword [rsi + rcx*4], 0
xor eax, eax
jmp 0x44718b
add eax, 0x500
mov dword [rsi + rcx*4], eax
jmp 0x44718b
mov rdi, qword [rbp + 0x100]
mov rax, qword [rbp + 0x100]
movdqu xmm5, xmmword [rdi + 0x504]
mov rdi, qword [rbp - 0x40]
add rax, 0x504
mov qword [rbp - 0x48], rax
movups xmmword [rdi*4], xmm5
movdqu xmm5, xmmword [rax + 0x10]
movups xmmword [rdi*4 + 0x10], xmm5
movdqu xmm5, xmmword [rax + 0x20]
movups xmmword [rdi*4 + 0x20], xmm5
movdqu xmm5, xmmword [rax + 0x30]
mov rax, qword [rbp + 0x100]
add rax, 4
movaps xmmword [rbp + 0x80], xmm5
mov qword [rbp - 8], rax
mov rax, qword [rbp + 0x100]
movups xmmword [rdi*4 + 0x30], xmm5
mov r10d, dword [rax + 0x914]
test r10d, r10d
jle 0x447b95
mov rax, qword [rbp + 0x108]
mov rdi, qword [rbp + 0x110]
mov qword [rbp + 8], 0
mov r12d, r14d
add rax, 0x60
mov r15, rdi
mov qword [rbp - 0x10], rax
lea rax, [rbp + 0x90]
mov qword [rbp - 0x18], rax
nop word [rax + rax]
mov rbx, qword [rbp + 8]
mov rax, qword [rbp + 0x100]
mov rcx, qword [rbp - 0x18]
mov edi, ebx
movsxd r8, dword [rax + 0x924]
mov r14d, ebx
sar edi, 1
movsxd rdi, edi
mov r13, r8
add r8, r8
add rdi, 1
shl rdi, 5
add rdi, qword [rbp + 0x108]
mov rdx, rdi
call sub.msvcrt.dll_memcpy
mov rax, qword [rbp + 0x108]
mov r8d, dword [rax + rbx*4 + 0x10]
mov eax, r8d
sar eax, 6
mov dword [rbp + 0x48], eax
test r8d, r8d
je 0x4477a0
mov eax, r8d
mov r10d, 0xe
sar eax, 0x1f
mov r9d, eax
xor r9d, r8d
sub r9d, eax
bsr r9d, r9d
xor r9d, 0x1f
lea r11d, [r9 - 1]
sub r10d, r11d
mov ecx, r11d
mov ebx, r8d
mov eax, 0x1fffffff
shl ebx, cl
cdq
mov ecx, ebx
movsxd rbx, ebx
sar ecx, 0x10
idiv ecx
mov rcx, rbx
movsx rsi, ax
movsxd rdx, eax
shl eax, 0x10
imul rcx, rsi
sar rcx, 0x10
shl ecx, 3
neg ecx
movsxd rcx, ecx
imul rcx, rdx
sar rcx, 0x10
add eax, ecx
mov ecx, r10d
mov edx, eax
sar edx, cl
mov dword [rbp + 0x80], edx
test r10d, r10d
jle 0x4478f0
mov rax, qword [rbp + 0x100]
mov ecx, 0x10000
mov eax, dword [rax]
cmp r8d, eax
jne 0x447702
mov rax, qword [rbp + 0x100]
mov r9d, dword [rax + 0x1058]
mov dword [rax], r8d
test r9d, r9d
je 0x44739e
cmp dword [rax + 0x105c], 2
je 0x447926
cmp r12b, 2
je 0x4477c0
mov rax, qword [rbp + 0x100]
mov ebx, dword [rax + 0x91c]
test ebx, ebx
jle 0x447690
mov r11, qword [rbp - 8]
cmp r13d, 0x10
je 0x4473d1
cmp r13d, 0xa
jne 0x447c8b
mov eax, r13d
movsx r14, word [rbp + 0x90]
movsx r12, word [rbp + 0x94]
xor r8d, r8d
sar eax, 1
movsx rdi, word [rbp + 0x9e]
movsx rsi, word [rbp + 0xa0]
mov dword [rbp + 0x80], eax
movsx rax, word [rbp + 0x92]
mov rdx, qword [rbp]
mov qword [rbp + 0x78], rax
movsx rax, word [rbp + 0x96]
mov qword [rbp + 0x70], rax
movsx rax, word [rbp + 0x98]
mov qword [rbp + 0x68], rax
movsx rax, word [rbp + 0x9a]
mov qword [rbp + 0x60], rax
movsx rax, word [rbp + 0x9c]
mov qword [rbp + 0x58], rax
movsx rax, word [rbp + 0xa2]
mov qword [rbp + 0x50], rax
movsx rax, word [rbp + 0xa4]
mov qword [rbp + 0x38], rax
movsx rax, word [rbp + 0xa6]
mov qword [rbp + 0x30], rax
movsx rax, word [rbp + 0xa8]
mov qword [rbp + 0x28], rax
movsx rax, word [rbp + 0xaa]
mov qword [rbp + 0x20], rax
movsx rax, word [rbp + 0xac]
mov qword [rbp + 0x18], rax
movsx rax, word [rbp + 0xae]
mov qword [rbp + 0x10], rax
movsxd rax, dword [rbp + 0x48]
mov qword [rbp + 0x48], rax
mov qword [rbp + 0x40], r11
jmp 0x447518
cmp eax, 0xf8000000
jl 0x447660
shl eax, 4
mov r11d, r9d
add r11d, eax
jns 0x44766f
mov r11d, r9d
mov ecx, 0x7fffffff
mov r10d, 0x7fffffff
or r11d, eax
js 0x44764c
imul rcx, qword [rbp + 0x48]
mov dword [rdx + 0x40], r10d
mov eax, 0x7fff
sar rcx, 0x10
sar ecx, 7
add ecx, 1
sar ecx, 1
cmp ecx, 0x7fff
jg 0x447502
cmp ecx, 0xffff8000
mov eax, 0xffff8000
cmovge eax, ecx
mov word [r15 + r8*2], ax
add r8, 1
add rdx, 4
cmp ebx, r8d
jle 0x447690
movsxd rcx, dword [rdx + 0x3c]
movsxd r9, dword [rdx + 0x34]
movsxd rax, dword [rdx + 0x38]
imul rax, qword [rbp + 0x78]
imul rcx, r14
imul r9, r12
sar rax, 0x10
sar rcx, 0x10
add eax, ecx
sar r9, 0x10
add eax, dword [rbp + 0x80]
movsxd rcx, dword [rdx + 0x30]
imul rcx, qword [rbp + 0x70]
lea r10d, [rax + r9]
movsxd rax, dword [rdx + 0x2c]
imul rax, qword [rbp + 0x68]
sar rcx, 0x10
lea r9d, [r10 + rcx]
sar rax, 0x10
movsxd r10, dword [rdx + 0x28]
imul r10, qword [rbp + 0x60]
lea ecx, [r9 + rax]
movsxd r9, dword [rdx + 0x24]
imul r9, qword [rbp + 0x58]
sar r10, 0x10
lea eax, [rcx + r10]
sar r9, 0x10
movsxd rcx, dword [rdx + 0x20]
lea r10d, [rax + r9]
movsxd rax, dword [rdx + 0x1c]
imul rcx, rdi
imul rax, rsi
sar rcx, 0x10
sar rax, 0x10
lea r9d, [r10 + rcx]
lea ecx, [r9 + rax]
movsxd rax, dword [rdx + 0x18]
imul rax, qword [rbp + 0x50]
sar rax, 0x10
add eax, ecx
cmp r13d, 0x10
jne 0x447625
movsxd rcx, dword [rdx + 0x14]
imul rcx, qword [rbp + 0x38]
sar rcx, 0x10
mov r9, rcx
movsxd rcx, dword [rdx + 0x10]
imul rcx, qword [rbp + 0x30]
sar rcx, 0x10
add ecx, r9d
movsxd r9, dword [rdx + 0xc]
imul r9, qword [rbp + 0x28]
sar r9, 0x10
lea r10d, [rcx + r9]
movsxd rcx, dword [rdx + 8]
imul rcx, qword [rbp + 0x20]
sar rcx, 0x10
lea r9d, [r10 + rcx]
movsxd rcx, dword [rdx + 4]
imul rcx, qword [rbp + 0x18]
sar rcx, 0x10
add ecx, r9d
movsxd r9, dword [rdx]
imul r9, qword [rbp + 0x10]
sar r9, 0x10
add ecx, r9d
add eax, ecx
mov rcx, qword [rbp + 0x40]
mov r9d, dword [rcx + r8*4]
cmp eax, 0x7ffffff
jle 0x4474a1
mov ecx, r9d
mov eax, 0x7ffffff0
add ecx, 0x7ffffff0
js 0x4474bb
lea r10d, [r9 + rax]
movsxd rcx, r10d
jmp 0x4474d2
mov eax, r9d
add eax, 0x80000000
mov eax, 0x80000000
js 0x44764c
mov rcx, 0xffffffff80000000
mov r10d, 0x80000000
test r9d, eax
js 0x4474d2
jmp 0x44764c
mov rsi, qword [rbp]
movsxd rdx, ebx
add qword [rbp + 8], 1
mov rdi, qword [rbp + 0x100]
lea r15, [r15 + rdx*2]
add qword [rbp - 0x10], 0xa
lea rcx, [rdx*4]
lea rax, [rsi + rcx]
add qword [rbp - 8], rcx
movdqu xmm0, xmmword [rax]
movups xmmword [rsi], xmm0
movdqu xmm1, xmmword [rax + 0x10]
movups xmmword [rsi + 0x10], xmm1
movdqu xmm2, xmmword [rax + 0x20]
movups xmmword [rsi + 0x20], xmm2
movdqu xmm3, xmmword [rax + 0x30]
mov rax, qword [rbp + 8]
movaps xmmword [rbp + 0x80], xmm3
movups xmmword [rsi + 0x30], xmm3
cmp dword [rdi + 0x914], eax
jle 0x447b95
movzx r12d, byte [rdi + 0xae5]
jmp 0x447290
test eax, eax
je 0x447a8c
mov ecx, eax
sar ecx, 0x1f
mov edx, ecx
xor edx, eax
sub edx, ecx
bsr edx, edx
xor edx, 0x1f
lea ecx, [rdx - 1]
add edx, 0x1c
shl eax, cl
sub edx, r11d
movsxd rcx, eax
imul rcx, rsi
sar rcx, 0x10
imul rbx, rcx
sar rbx, 0x20
lea r9d, [rbx*8]
sub eax, r9d
cdqe
imul rax, rsi
sar rax, 0x10
add eax, ecx
mov ecx, edx
sub ecx, 0x10
js 0x447ab1
cmp ecx, 0x1f
jg 0x447a82
sar eax, cl
movsxd r10, eax
mov rcx, r10
mov rax, qword [rbp]
mov rdx, rax
lea r9, [rax + 0x40]
nop word [rax + rax]
movsxd rax, dword [rdx]
add rdx, 4
imul rax, r10
sar rax, 0x10
mov dword [rdx - 4], eax
cmp r9, rdx
jne 0x447780
jmp 0x44737b
mov r10d, 0xffffffef
mov r11d, 0x1f
mov r9d, 0x20
jmp 0x44730f
mov rbx, qword [rbp + 0x108]
mov rax, qword [rbp + 8]
mov ebx, dword [rbx + rax*4]
test rax, rax
je 0x447988
cmp eax, 2
jne 0x4477e6
cmp byte [rbp - 0x1d], 0
jne 0x447b3c
cmp ecx, 0x10000
jne 0x447aee
mov eax, dword [rbp - 0x1c]
mov rdi, qword [rbp - 0x28]
sub eax, ebx
add eax, 2
cdqe
lea rdx, [rdi + rax*4]
mov rax, qword [rbp + 0x100]
mov ebx, dword [rax + 0x91c]
test ebx, ebx
jle 0x447690
mov rax, qword [rbp - 0x10]
mov rcx, qword [rbp - 0x28]
lea r9d, [rbx - 1]
mov qword [rbp + 0x80], r15
mov r13, qword [rbp - 8]
mov r14, qword [rbp - 0x38]
movsx rdi, word [rax]
movsx rsi, word [rax + 2]
movsx r12, word [rax + 4]
movsx r11, word [rax + 6]
movsx r10, word [rax + 8]
movsxd rax, dword [rbp - 0x1c]
lea r8, [rcx + rax*4]
xor ecx, ecx
jmp 0x447863
mov rcx, rax
movsxd r15, dword [rdx]
movsxd rax, dword [rdx - 4]
add rdx, 4
imul r15, rdi
imul rax, rsi
sar r15, 0x10
sar rax, 0x10
lea eax, [r15 + rax + 2]
movsxd r15, dword [rdx - 0xc]
imul r15, r12
sar r15, 0x10
add r15d, eax
movsxd rax, dword [rdx - 0x10]
imul rax, r11
sar rax, 0x10
add r15d, eax
movsxd rax, dword [rdx - 0x14]
imul rax, r10
sar rax, 0x10
add eax, r15d
mov r15d, dword [r13 + rcx*4]
lea eax, [r15 + rax*2]
mov dword [r14 + rcx*4], eax
add eax, eax
mov dword [r8 + rcx*4], eax
lea rax, [rcx + 1]
cmp r9, rcx
jne 0x447860
mov rax, qword [rbp + 0x100]
mov r15, qword [rbp + 0x80]
add dword [rbp - 0x1c], ebx
mov r11, qword [rbp - 0x38]
mov r13d, dword [rax + 0x924]
jmp 0x4473c1
lea ecx, [r9 - 0xf]
mov r10d, 0x80000000
mov edx, 0x7fffffff
sar r10d, cl
sar edx, cl
cmp r10d, edx
jle 0x447a9b
cmp eax, r10d
jle 0x447b75
mov edx, r10d
shl edx, cl
mov dword [rbp + 0x80], edx
jmp 0x447364
cmp r12b, 2
je 0x4477c0
cmp qword [rbp + 8], 1
ja 0x4473a8
mov rax, qword [rbp - 0x10]
xor edx, edx
mov r8d, 0x1000
mov rsi, qword [rbp + 0x108]
mov qword [rax], 0
mov word [rax + 8], dx
mov word [rax + 4], r8w
mov rax, qword [rbp + 0x100]
mov ebx, dword [rax + 0x904]
mov rax, qword [rbp + 8]
mov dword [rsi + rax*4], ebx
test eax, eax
jne 0x4477e6
mov rax, qword [rbp + 0x100]
mov r13d, dword [rax + 0x924]
mov rax, qword [rbp + 0x100]
mov r9d, dword [rax + 0x920]
mov eax, r9d
sub eax, ebx
sub eax, r13d
sub eax, 2
test eax, eax
jle 0x447b5c
mov rsi, qword [rbp + 0x100]
movsxd rcx, eax
sub r9d, eax
mov r8, rdi
imul r14d, dword [rsi + 0x91c]
mov dword [rsp + 0x20], r13d
lea edx, [r14 + rax]
movsxd rdx, edx
lea rdx, [rsi + rdx*2 + 0x544]
mov rsi, qword [rbp - 0x30]
lea rcx, [rsi + rcx*2]
mov esi, dword [rbp + 0x120]
mov dword [rsp + 0x28], esi
call fcn.00444070
cmp qword [rbp + 8], 0
jne 0x447a1e
mov rax, qword [rbp + 0x108]
movsxd r13, dword [rbp + 0x80]
movsx rdx, word [rax + 0x88]
imul rdx, r13
sar rdx, 0x10
lea eax, [rdx*4]
mov dword [rbp + 0x80], eax
cmp ebx, 0xffffffff
jl 0x4477f2
mov rax, qword [rbp + 0x100]
mov rdi, qword [rbp - 0x30]
movsxd rcx, dword [rbp - 0x1c]
mov rsi, qword [rbp - 0x28]
movsxd rax, dword [rax + 0x920]
movsxd r13, dword [rbp + 0x80]
lea rcx, [rsi + rcx*4]
add rax, rax
lea r8, [rdi + rax - 2]
lea rdx, [rdi + rax]
lea eax, [rbx + 1]
add rax, rax
sub r8, rax
movsx rax, word [rdx - 2]
sub rdx, 2
sub rcx, 4
imul rax, r13
sar rax, 0x10
mov dword [rcx], eax
cmp r8, rdx
jne 0x447a61
jmp 0x4477f2
xor r10d, r10d
xor ecx, ecx
jmp 0x44776c
mov edx, 0x3c
mov ecx, 0x1f
jmp 0x447721
cmp eax, edx
jg 0x447919
cmp eax, r10d
mov edx, r10d
cmovge edx, eax
jmp 0x447919
mov ecx, 0x10
mov r9d, 0x7fffffff
sub ecx, edx
mov edx, 0x80000000
sar edx, cl
sar r9d, cl
cmp edx, r9d
jle 0x447b7f
cmp eax, edx
jg 0x447b8d
cmp eax, r9d
cmovge r9d, eax
shl r9d, cl
movsxd r10, r9d
mov rcx, r10
jmp 0x44776c
cmp ebx, 0xffffffff
jl 0x4477f2
movsxd rax, dword [rbp - 0x1c]
mov rdi, qword [rbp - 0x28]
shl rax, 2
lea r8, [rdi + rax - 4]
lea rdx, [rdi + rax]
lea eax, [rbx + 1]
shl rax, 2
sub r8, rax
nop word cs:[rax + rax]
movsxd rax, dword [rdx - 4]
sub rdx, 4
imul rax, rcx
sar rax, 0x10
mov dword [rdx], eax
cmp r8, rdx
jne 0x447b20
jmp 0x4477f2
mov rax, qword [rbp + 0x100]
movsxd rax, dword [rax + 0x920]
mov esi, eax
sub esi, ebx
sub esi, r13d
sub esi, 2
test esi, esi
jg 0x447bf6
mov r8d, 0x90
lea rdx, str..._silk_decode_core.c
lea rcx, str.assertion_failed:_start_idx___0
call fcn.0040b720
cmp eax, edx
cmovge edx, eax
jmp 0x447919
cmp eax, r9d
jg 0x447ae0
cmp eax, edx
cmovge edx, eax
mov r9d, edx
jmp 0x447ae0
mov rax, qword [rbp - 0x40]
mov rdi, qword [rbp + 0x100]
movdqu xmm5, xmmword [rax*4]
movups xmmword [rdi + 0x504], xmm5
mov rdi, qword [rbp - 0x48]
movdqu xmm5, xmmword [rax*4 + 0x10]
movups xmmword [rdi + 0x10], xmm5
movdqu xmm5, xmmword [rax*4 + 0x20]
movups xmmword [rdi + 0x20], xmm5
movdqu xmm5, xmmword [rax*4 + 0x30]
movaps xmmword [rbp + 0x80], xmm5
movups xmmword [rdi + 0x30], xmm5
lea rsp, [rbp + 0xb8]
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov rdx, qword [rbp + 0x100]
lea rcx, [rdx + rax*2 + 0x544]
mov eax, dword [rdx + 0x91c]
mov rdx, qword [rbp + 0x110]
lea r8d, [rax + rax]
mov dword [rbp + 0x78], eax
movsxd r8, r8d
add r8, r8
call sub.msvcrt.dll_memcpy
mov rax, qword [rbp + 0x100]
mov rcx, qword [rbp - 0x30]
mov r8, rdi
mov rdx, qword [rbp + 0x100]
mov eax, dword [rax + 0x920]
mov dword [rbp + 0x78], eax
mov eax, dword [rdx + 0x91c]
mov r9d, dword [rbp + 0x78]
imul eax, r14d
sub r9d, esi
add eax, esi
cdqe
lea rdx, [rdx + rax*2 + 0x544]
movsxd rax, esi
lea rcx, [rcx + rax*2]
mov eax, dword [rbp + 0x120]
mov dword [rsp + 0x28], eax
mov rax, qword [rbp + 0x100]
mov eax, dword [rax + 0x924]
mov dword [rsp + 0x20], eax
call fcn.00444070
jmp 0x447a1e
mov r8d, 0xc7
lea rdx, str..._silk_decode_core.c
lea rcx, str.assertion_failed:_psDec__LPC_order__10__psDec__LPC_order__16
call fcn.0040b720
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop