Function at 0x4481c0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0x138
lea rbp, [rsp + 0x80]
mov ebx, dword [rbp + 0x130]
mov qword [rbp + 0x100], rcx
mov r12, rdx
mov r14, r8
mov qword [rbp + 0x118], r9
cmp ebx, 2
ja 0x4481a4
mov rdx, qword [r8 + 0x40]
movsx r8d, word [r8 + 2]
mov rcx, r12
call fcn.00444a70
movsx rax, word [r14]
mov rdx, rax
lea rax, [rax*4 + 0xf]
and rax, 0xfffffffffffffff0
call fcn.004582d0
sub rsp, rax
movsx eax, word [r14 + 2]
mov dword [rsp + 0x20], edx
lea rdi, [rsp + 0x50]
mov rdx, r12
mov dword [rsp + 0x28], eax
mov r9, qword [r14 + 0x10]
mov rcx, rdi
mov r8, qword [r14 + 8]
call 0x4481c0
movsxd rax, dword [rbp + 0x128]
lea rsi, [rax*4 + 0xf]
and rsi, 0xfffffffffffffff0
mov rax, rsi
call fcn.004582d0
mov r9d, dword [rbp + 0x128]
movsx r8d, word [r14]
sub rsp, rax
mov rcx, rdi
lea rax, [rsp + 0x50]
mov rdx, rax
mov qword [rbp - 0x18], rax
call fcn.004452c0
mov rax, rsi
call fcn.004582d0
sub rsp, rax
lea rax, [rsp + 0x53]
shr rax, 2
mov qword [rbp - 0x30], rax
shl rax, 2
mov qword [rbp - 0x20], rax
mov eax, dword [rbp + 0x128]
shl eax, 4
cdqe
call fcn.004582d0
sub rsp, rax
lea rax, [rsp + 0x50]
mov qword [rbp - 0x28], rax
mov eax, dword [rbp + 0x128]
test eax, eax
jle 0x4480e8
mov eax, dword [rbp + 0x120]
mov rdi, qword [rbp - 0x18]
sar ebx, 1
mov dword [rbp + 0x18], ebx
lea rbx, [rbp + 0x50]
sar eax, 2
mov qword [rbp + 0x28], rdi
cwde
mov dword [rbp + 0xc], eax
mov rax, qword [rbp - 0x20]
mov qword [rbp + 0x20], rax
mov rax, qword [rbp - 0x28]
mov qword [rbp + 0x10], rax
mov eax, dword [rbp + 0x128]
sub eax, 1
lea rax, [rdi + rax*4 + 4]
lea rdi, [rbp + 0x70]
mov qword [rbp], rax
lea rax, [rbp + 0x40]
mov qword [rbp - 8], rax
lea rax, [rbp + 0x90]
mov qword [rbp - 0x10], rax
nop dword [rax]
mov rax, qword [rbp + 0x28]
movsx esi, word [r14 + 2]
mov rdx, qword [r14 + 8]
mov rcx, qword [r14 + 0x10]
mov eax, dword [rax]
mov dword [rbp + 0x1c], eax
imul eax, esi
cdqe
test esi, esi
jle 0x448026
lea r13, [rcx + rax*2]
add rax, rdx
mov qword [rbp + 0x110], r14
xor r11d, r11d
mov r14, rax
jmp 0x447f91
mov eax, r8d
sar eax, 0x1f
mov r10d, eax
xor r10d, r8d
sub r10d, eax
bsr r10d, r10d
xor r10d, 0x1f
lea ecx, [r10 - 1]
add r10d, 0x1c
shl r8d, cl
mov ecx, 0x1f
test r9d, r9d
je 0x447f26
bsr ecx, r9d
xor ecx, 0x1f
sub ecx, 1
shl r9d, cl
mov eax, 0x1fffffff
sub r10d, ecx
mov r15d, r9d
cdq
movsxd r9, r9d
mov ecx, r10d
sar r15d, 0x10
idiv r15d
movsxd rdx, r8d
movsx rax, ax
imul rdx, rax
sar rdx, 0x10
imul r9, rdx
sar r9, 0x20
shl r9d, 3
sub r8d, r9d
movsxd r8, r8d
imul rax, r8
sar rax, 0x10
add edx, eax
sub ecx, 0x15
js 0x447fe0
sar edx, cl
mov eax, 0
cmp ecx, 0x20
cmovge edx, eax
mov word [rdi + r11*2], dx
add r11, 1
cmp esi, r11d
jle 0x44801f
movzx eax, byte [r14 + r11]
movzx ecx, word [r12 + r11*2]
movsx r9d, word [r13 + r11*2]
shl eax, 7
sub ecx, eax
movsx eax, cx
imul eax, r9d
imul r9d, r9d
sar eax, 0xe
mov word [rbx + r11*2], ax
mov rax, qword [rbp + 0x118]
movsx r8d, word [rax + r11*2]
test r8d, r8d
jne 0x447ef0
mov r10d, 0x3c
mov ecx, 0x1f
jmp 0x447f0f
mov ecx, 0x15
mov eax, 0x80000000
mov r8d, 0x7fffffff
sub ecx, r10d
sar eax, cl
sar r8d, cl
cmp eax, r8d
jle 0x448162
cmp edx, eax
jle 0x448180
mov edx, eax
shl edx, cl
mov word [rdi + r11*2], dx
add r11, 1
cmp esi, r11d
jg 0x447f91
mov r14, qword [rbp + 0x110]
mov rsi, qword [rbp - 0x10]
mov r13, qword [rbp - 8]
mov r8, r14
mov r15d, dword [rbp + 0x1c]
mov rcx, rsi
mov rdx, r13
mov r9d, r15d
call fcn.00432ae0
movsx eax, word [r14 + 2]
mov r9, r13
mov r8, rdi
mov rcx, qword [rbp + 0x10]
mov rdx, rbx
mov dword [rsp + 0x48], eax
mov eax, dword [rbp + 0x120]
mov dword [rsp + 0x40], eax
movsx eax, word [r14 + 6]
mov dword [rsp + 0x38], eax
movsx eax, word [r14 + 4]
mov dword [rsp + 0x30], eax
mov rax, qword [r14 + 0x38]
mov qword [rsp + 0x20], rsi
mov qword [rsp + 0x28], rax
call 0x4482d0
mov rsi, qword [rbp + 0x20]
mov dword [rsi], eax
movsx eax, word [r14]
imul eax, dword [rbp + 0x18]
cdqe
add rax, qword [r14 + 0x18]
test r15d, r15d
jne 0x448190
movzx eax, byte [rax]
mov ecx, 0x100
sub ecx, eax
call fcn.00434720
mov edx, 0x400
add qword [rbp + 0x28], 4
mov rsi, qword [rbp + 0x28]
sub edx, eax
mov rax, qword [rbp + 0x20]
add qword [rbp + 0x10], 0x10
movsx edx, dx
imul edx, dword [rbp + 0xc]
add dword [rax], edx
add rax, 4
mov qword [rbp + 0x20], rax
cmp qword [rbp], rsi
jne 0x447eb0
mov r8d, dword [rbp + 0x128]
mov rcx, qword [rbp - 0x20]
mov r9d, 1
lea rdx, [rbp + 0x3c]
call fcn.004452c0
movsxd rdx, dword [rbp + 0x3c]
mov rbx, qword [rbp - 0x18]
mov rax, rdx
mov edx, dword [rbx + rdx*4]
mov rbx, qword [rbp + 0x100]
shl eax, 4
mov byte [rbx], dl
movsx r8, word [r14 + 2]
lea rcx, [rbx + 1]
movsxd rdx, eax
add rdx, qword [rbp - 0x28]
call sub.msvcrt.dll_memcpy
mov rdx, qword [rbp + 0x100]
mov r8, r14
mov rcx, r12
call fcn.0043db50
mov rax, qword [rbp - 0x30]
mov eax, dword [rax*4]
lea rsp, [rbp + 0xb8]
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
cmp edx, r8d
jle 0x448171
mov edx, r8d
shl edx, cl
jmp 0x44800d
cmp edx, eax
cmovl edx, eax
shl edx, cl
jmp 0x44800d
cmp edx, r8d
cmovl edx, r8d
shl edx, cl
jmp 0x44800d
movsxd rdx, dword [rbp + 0x1c]
movzx ecx, byte [rax + rdx - 1]
movzx eax, byte [rax + rdx]
sub ecx, eax
jmp 0x4480af
mov r8d, 0x3f
lea rdx, str..._silk_NLSF_encode.c
lea rcx, str.assertion_failed:_signalType___0__signalType___2
call fcn.0040b720
nop
nop
nop
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x28
mov esi, dword [rsp + 0x88]
mov eax, dword [rsp + 0x80]
test sil, 1
jne 0x4482b5
test eax, eax
jle 0x44829b
movsxd rdi, esi
sub eax, 1
sub esi, 2
mov rbx, rcx
lea r12, [rdi + rdi]
lea rbp, [rcx + rax*4 + 4]
test esi, esi
js 0x4482b0
movsxd rcx, esi
xor eax, eax
xor r11d, r11d
movzx r13d, byte [r8 + rcx + 1]
movsx r10d, word [rdx + rcx*2 + 2]
sar eax, 1
shl r13d, 7
sub r10d, r13d
movsx r13d, word [r9 + rcx*2 + 2]
movsx r10d, r10w
imul r10d, r13d
mov r13d, r10d
sar r10d, 1
sub r13d, eax
mov eax, r13d
sar r13d, 0x1f
xor eax, r13d
sub eax, r13d
movzx r13d, byte [r8 + rcx]
add r11d, eax
movsx eax, word [rdx + rcx*2]
shl r13d, 7
sub eax, r13d
movsx r13d, word [r9 + rcx*2]
sub rcx, 2
cwde
imul eax, r13d
mov r13d, eax
sub r13d, r10d
mov r10d, r13d
sar r13d, 0x1f
xor r10d, r13d
sub r10d, r13d
add r11d, r10d
test ecx, ecx
jns 0x448211
mov dword [rbx], r11d
add rbx, 4
add r8, rdi
add r9, r12
cmp rbp, rbx
jne 0x448201
add rsp, 0x28
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
ret
xor r11d, r11d
jmp 0x448285
mov r8d, 0x31
lea rdx, str..._silk_NLSF_VQ.c
lea rcx, str.assertion_failed:___LPC_order__1____0
call fcn.0040b720
nop
nop
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x1a8
mov rax, 0xfffffffffffffff6
movsx r10d, word [rsp + 0x220]
mov edi, dword [rsp + 0x228]
mov r12d, dword [rsp + 0x238]
mov esi, r10d
shl esi, 0xa
mov qword [rsp + 0x1f0], rcx
lea rbx, [rsp + 0x100]
lea r11, [rsp + 0x150]
mov qword [rsp + 0x1f8], rdx
imul ecx, r10d, 0xffffd79a
mov qword [rsp + 0x200], r8
mov qword [rsp + 0x208], r9
jmp 0x448387
je 0x448850
mov edx, eax
shl edx, 0xa
lea ebp, [rdx + 0x466]
lea r8d, [rdx + 0x66]
add dx, 0x400
cmp eax, 0xffffffff
cmovne edx, ebp
movsx r8d, r8w
movsx edx, dx
add ecx, esi
imul r8d, r10d
imul edx, r10d
sar r8d, 0x10
sar edx, 0x10
mov dword [rbx + rax*4 + 0x28], r8d
mov dword [r11 + rax*4 + 0x28], edx
add rax, 1
test eax, eax
jle 0x448341
mov edx, ecx
add ecx, esi
sar edx, 0x10
mov dword [rbx + rax*4 + 0x28], edx
mov edx, ecx
sar edx, 0x10
mov dword [r11 + rax*4 + 0x28], edx
cmp eax, 9
jne 0x448383
xor ecx, ecx
movsx eax, r12w
mov dword [rsp + 0xa0], 0
mov word [rsp + 0x70], cx
mov dword [rsp + 0x5c], eax
sub eax, 1
js 0x4488c6
movzx ebx, word [rsp + 0x14c]
movsx edi, di
movsxd r14, eax
mov dword [rsp + 0x30], 1
mov dword [rsp + 0x1c], edi
lea rdi, [rsp + 0x70]
lea rax, [rsp + 0xc0]
movsx r13d, word [rsp + 0x230]
mov word [rsp + 0x34], bx
movzx ebx, word [rsp + 0x19c]
mov qword [rsp + 0x48], rdi
lea rdi, [rsp + 0xa0]
mov word [rsp + 0x36], bx
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x50], rax
add rax, r14
mov qword [rsp + 0x28], rax
xor eax, eax
nop dword [rax + rax]
mov rcx, qword [rsp + 0x40]
mov r8, qword [rsp + 0x48]
mov dword [rsp + 0x58], r14d
mov rdi, qword [rsp + 0x210]
mov r10, qword [rsp + 0x28]
mov qword [rsp + 0x38], rcx
mov rbp, r8
movsx rdx, word [rdi + r14*2]
mov rdi, qword [rsp + 0x1f8]
add rdx, qword [rsp + 0x218]
movsx ebx, word [rdi + r14*2]
mov qword [rsp + 0x20], rdx
mov edi, ebx
mov dword [rsp + 0x18], ebx
mov rbx, qword [rsp + 0x208]
movzx ebx, byte [rbx + r14]
mov dword [rsp + 0xc], ebx
mov rbx, qword [rsp + 0x200]
movsx r12d, word [rbx + r14*2]
movsxd rbx, dword [rsp + 0x30]
lea edx, [rbx - 1]
lea rdx, [rcx + rdx*4]
mov qword [rsp + 0x10], rdx
imul eax, dword [rsp + 0xc]
mov r9d, dword [rsp + 0x18]
sar eax, 8
sub r9d, eax
movsx r9d, r9w
imul r9d, dword [rsp + 0x1c]
sar r9d, 0x10
cmp r9d, 9
jg 0x448590
cmp r9d, 0xfffffff6
mov edx, 0xfffffff6
cmovge edx, r9d
lea r15d, [rdx + 0xa]
mov byte [r10], dl
movsxd r15, r15d
movzx r11d, word [rsp + r15*4 + 0x100]
add r11d, eax
add ax, word [rsp + r15*4 + 0x150]
mov word [r8], r11w
mov word [r8 + rbx*2], ax
cmp r9d, 2
jg 0x4488cd
cmp r9d, 0xfffffffd
jge 0x448641
cmp r9d, 0xfffffffc
je 0x4488b2
imul edx, edx, 0xffffffd5
lea r9d, [rdx + 0x6c]
add edx, 0x41
nop dword [rax]
mov esi, edi
mov r15d, dword [rcx]
imul r9d, r13d
add r8, 2
sub esi, r11d
imul edx, r13d
add r10, 0x10
movsx r11d, si
mov esi, edi
sub esi, eax
imul r11d, r11d
movsx eax, si
imul eax, eax
imul r11d, r12d
imul eax, r12d
add r11d, r15d
add r9d, r11d
add eax, r15d
mov dword [rcx], r9d
add eax, edx
mov dword [rcx + rbx*4], eax
cmp qword [rsp + 0x10], rcx
je 0x4485c0
movsx eax, word [r8]
add rcx, 4
jmp 0x4484a8
movzx esi, word [rsp + 0x34]
mov byte [r10], 9
mov edx, 0x21a
mov r9d, 0x1ef
lea r11d, [rsi + rax]
add ax, word [rsp + 0x36]
mov word [r8], r11w
mov word [r8 + rbx*2], ax
jmp 0x448530
mov edi, dword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
cmp edi, 2
jg 0x448660
lea rsi, [rsp + 0x1a0]
shl rbx, 4
movsxd rax, dword [rsp + 0x58]
add rbx, rsi
mov rsi, qword [rsp + 0x50]
movzx ecx, byte [rsi + r14]
lea edx, [rcx + 1]
mov byte [rsp + 0xc], cl
mov byte [rax + rbx - 0xe0], dl
cmp edi, 2
jne 0x448863
movzx edi, byte [rsi + r14 + 0x10]
mov dword [rsp + 0x30], 4
lea edx, [rdi + 1]
mov byte [rsp + 0xc], dil
mov byte [rsp + rax + 0xf0], dl
sub r14, 1
sub qword [rsp + 0x28], 1
test r14d, r14d
js 0x4487b3
movsx eax, word [rsp + 0x70]
jmp 0x448430
movsxd r9, edx
mov rsi, qword [rsp + 0x20]
add edx, 1
movsxd rdx, edx
movzx r9d, byte [rsi + r9 + 4]
movzx edx, byte [rsi + rdx + 4]
jmp 0x448530
xor eax, eax
lea r11, [rsp + 0x90]
lea rbx, [rsp + 0x60]
lea r10, [rsp + 0x80]
mov ecx, dword [rsi]
mov edx, dword [rsi + 0x10]
lea r8d, [rax + 4]
cmp ecx, edx
jle 0x448773
mov dword [r11 + rax*4], ecx
mov dword [r10 + rax*4], edx
mov dword [rsi], edx
movzx edx, word [rbp]
mov dword [rsi + 0x10], ecx
movzx ecx, word [rbp + 8]
mov dword [rbx + rax*4], r8d
mov word [rbp], cx
mov word [rbp + 8], dx
add rax, 1
add rsi, 4
add rbp, 2
cmp rax, 4
jne 0x448677
nop dword [rax + rax]
xor eax, eax
xor ecx, ecx
mov r8d, 0x7fffffff
xor esi, esi
xor edi, edi
mov edx, dword [r11 + rax*4]
mov r9d, eax
cmp edx, r8d
jge 0x4486df
mov r8d, edx
mov edi, eax
mov edx, dword [r10 + rax*4]
cmp edx, ecx
jle 0x4486ec
mov ecx, edx
mov esi, r9d
add rax, 1
cmp rax, 4
jne 0x4486ce
cmp r8d, ecx
jge 0x448783
movsxd rcx, edi
movsxd rax, esi
mov dword [rsp + rcx*4 + 0x90], 0x7fffffff
mov edx, dword [rsp + rcx*4 + 0x60]
shl rcx, 4
mov rsi, qword [rsp + rcx + 0xc0]
mov dword [rsp + rax*4 + 0x80], 0
xor edx, 4
mov dword [rsp + rax*4 + 0x60], edx
lea edx, [rdi + 4]
mov rdi, qword [rsp + rcx + 0xc8]
movsxd rdx, edx
mov r8d, dword [rsp + rdx*4 + 0xa0]
movzx edx, word [rsp + rdx*2 + 0x70]
mov dword [rsp + rax*4 + 0xa0], r8d
mov word [rsp + rax*2 + 0x70], dx
shl rax, 4
mov qword [rsp + rax + 0xc0], rsi
mov qword [rsp + rax + 0xc8], rdi
jmp 0x4486c0
mov dword [r10 + rax*4], ecx
mov dword [r11 + rax*4], edx
mov dword [rbx + rax*4], eax
jmp 0x4486a9
mov rax, qword [rsp + 0x28]
lea rcx, [rbx + 0x10]
mov edx, dword [rbx]
add rbx, 4
sar edx, 2
add byte [rax], dl
add rax, 0x10
cmp rcx, rbx
jne 0x44878c
sub r14, 1
sub qword [rsp + 0x28], 1
test r14d, r14d
jns 0x448637
mov ecx, dword [rsp + 0xa0]
xor edx, edx
mov eax, 0x7fffffff
xor r9d, r9d
jmp 0x4487d7
mov ecx, dword [rsp + rdx*4 + 0xa0]
cmp eax, ecx
jle 0x4487e0
mov eax, ecx
mov r9d, edx
add rdx, 1
cmp rdx, 8
jne 0x4487d0
mov edx, dword [rsp + 0x5c]
test edx, edx
jle 0x448825
mov edx, r9d
mov r10d, dword [rsp + 0x5c]
mov r11, qword [rsp + 0x1f0]
and edx, 3
shl rdx, 4
lea r8, [rsp + rdx + 0xc0]
xor edx, edx
movzx ecx, byte [r8 + rdx]
mov byte [r11 + rdx], cl
add rdx, 1
cmp r10d, edx
jg 0x448813
mov rdi, qword [rsp + 0x1f0]
sar r9d, 2
add byte [rdi], r9b
add rsp, 0x1a8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov r8d, eax
shl r8d, 0xa
lea edx, [r8 + 0x39a]
jmp 0x448361
shl dword [rsp + 0x30], 1
mov ebx, dword [rsp + 0x30]
cmp ebx, 4
je 0x448624
movsxd rdx, ebx
movzx ecx, byte [rsp + rax + 0xc0]
lea rdi, [rsp + 0x1a0]
shl rdx, 4
add rdx, rdi
mov byte [rax + rdx - 0xe0], cl
cmp ebx, 2
jne 0x448624
movzx edx, byte [rsp + rax + 0xd0]
mov byte [rsp + rax + 0xf0], dl
jmp 0x448624
mov rsi, qword [rsp + 0x20]
mov r9d, 0x118
movzx edx, byte [rsi + 1]
jmp 0x448530
xor ecx, ecx
jmp 0x4487ba
cmp r9d, 3
je 0x4488e5
imul edx, edx, 0x2b
lea r9d, [rdx + 0x6c]
add edx, 0x97
jmp 0x448530
mov rsi, qword [rsp + 0x20]
mov edx, 0x118
movzx r9d, byte [rsi + 7]
jmp 0x448530