Function at 0x140067c60
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x37]
sub rsp, 0xa0
mov rsi, r8
mov r15, rcx
mov qword [rbp + 7], rcx
lea rax, vtable.Assimp::AssbinChunkWriter.0
mov qword [rbp - 0x41], rax
xor r14d, r14d
mov qword [rbp - 0x39], r14
mov dword [rbp - 0x31], 0x1237
mov qword [rbp - 0x29], rdx
mov qword [rbp - 0x21], r14
mov qword [rbp - 0x19], r14
mov qword [rbp - 0x11], 0x1000
mov eax, dword [r8]
mov dword [rbp - 0x49], eax
mov rax, qword [0x1403582b8]
lea r9d, [r14 + 1]
lea r8d, [r14 + 4]
lea rdx, [rbp - 0x49]
lea rcx, [rbp - 0x41]
call rax
mov eax, dword [rsi + 4]
mov dword [rbp - 0x49], eax
mov rax, qword [rbp - 0x41]
lea r9d, [r14 + 1]
lea r8d, [r14 + 4]
lea rdx, [rbp - 0x49]
lea rcx, [rbp - 0x41]
call qword [rax + 0x10]
mov eax, dword [rsi + 8]
mov dword [rbp - 0x49], eax
mov rax, qword [rbp - 0x41]
lea r9d, [r14 + 1]
lea r8d, [r14 + 4]
lea rdx, [rbp - 0x49]
lea rcx, [rbp - 0x41]
call qword [rax + 0x10]
mov eax, dword [rsi + 0xd8]
mov dword [rbp - 0x49], eax
mov rax, qword [rbp - 0x41]
lea r9d, [r14 + 1]
lea r8d, [r14 + 4]
lea rdx, [rbp - 0x49]
lea rcx, [rbp - 0x41]
call qword [rax + 0x10]
mov eax, dword [rsi + 0xe8]
mov dword [rbp - 0x49], eax
mov rax, qword [rbp - 0x41]
lea r9d, [r14 + 1]
lea r8d, [r14 + 4]
lea rdx, [rbp - 0x49]
lea rcx, [rbp - 0x41]
call qword [rax + 0x10]
mov eax, r14d
cmp qword [rsi + 0x10], rax
setne al
mov ecx, eax
or ecx, 2
cmp qword [rsi + 0x18], r14
cmove ecx, eax
mov edx, ecx
cmp qword [rsi + 0x20], r14
je 0x140067d7b
cmp qword [rsi + 0x28], r14
je 0x140067d7b
or edx, 4
mov ecx, r14d
lea r13, [rsi + 0x70]
mov qword [rbp - 9], r13
mov r8, r13
nop dword [rax]
cmp qword [r8], 0
je 0x140067daa
mov eax, 0x100
shl eax, cl
or edx, eax
inc ecx
add r8, 8
cmp ecx, 8
jb 0x140067d90
mov ecx, r14d
lea r12, [rsi + 0x30]
mov r8, r12
cmp qword [r8], 0
je 0x140067dce
mov eax, 0x10000
shl eax, cl
or edx, eax
inc ecx
add r8, 8
cmp ecx, 8
jb 0x140067db4
mov dword [rbp - 0x49], edx
mov rax, qword [rbp - 0x41]
mov r9d, 1
lea r8d, [r9 + 3]
lea rdx, [rbp - 0x49]
lea rcx, [rbp - 0x41]
call qword [rax + 0x10]
mov rbx, qword [rsi + 0x10]
test rbx, rbx
je 0x140067e74
mov eax, dword [rsi + 4]
cmp byte [r15], 0
je 0x140067e11
mov r8d, eax
mov rdx, rbx
lea rcx, [rbp - 0x41]
call fcn.140066af0
jmp 0x140067e74
test eax, eax
je 0x140067e74
add rbx, 8
mov rdi, rax
nop dword [rax]
mov rax, qword [rbp - 0x41]
lea rdx, [rbx - 8]
mov r9d, 1
lea r8d, [r9 + 3]
lea rcx, [rbp - 0x41]
call qword [rax + 0x10]
mov rax, qword [rbp - 0x41]
lea rdx, [rbx - 4]
mov r9d, 1
lea r8d, [r9 + 3]
lea rcx, [rbp - 0x41]
call qword [rax + 0x10]
mov rax, qword [rbp - 0x41]
mov r9d, 1
lea r8d, [r9 + 3]
mov rdx, rbx
lea rcx, [rbp - 0x41]
call qword [rax + 0x10]
add rbx, 0xc
sub rdi, 1
jne 0x140067e20
mov rbx, qword [rsi + 0x18]
test rbx, rbx
je 0x140067ef6
mov eax, dword [rsi + 4]
cmp byte [r15], 0
je 0x140067e97
mov r8d, eax
mov rdx, rbx
lea rcx, [rbp - 0x41]
call fcn.140066af0
jmp 0x140067ef6
test eax, eax
je 0x140067ef6
add rbx, 8
mov rdi, rax
mov rax, qword [rbp - 0x41]
lea rdx, [rbx - 8]
mov r9d, 1
lea r8d, [r9 + 3]
lea rcx, [rbp - 0x41]
call qword [rax + 0x10]
mov rax, qword [rbp - 0x41]
lea rdx, [rbx - 4]
mov r9d, 1
lea r8d, [r9 + 3]
lea rcx, [rbp - 0x41]
call qword [rax + 0x10]
mov rax, qword [rbp - 0x41]
mov r9d, 1
lea r8d, [r9 + 3]
mov rdx, rbx
lea rcx, [rbp - 0x41]
call qword [rax + 0x10]
add rbx, 0xc
sub rdi, 1
jne 0x140067ea2
mov rcx, qword [rsi + 0x20]
test rcx, rcx
je 0x140068014
mov rbx, qword [rsi + 0x28]
test rbx, rbx
je 0x140068014
mov eax, dword [rsi + 4]
cmp byte [r15], 0
je 0x140067f3e
mov r8d, eax
mov rdx, rcx
lea rcx, [rbp - 0x41]
call fcn.140066af0
mov r8d, dword [rsi + 4]
mov rdx, qword [rsi + 0x28]
lea rcx, [rbp - 0x41]
call fcn.140066af0
jmp 0x140068014
test eax, eax
je 0x140068014
lea rbx, [rcx + 8]
mov rdi, rax
nop dword [rax]
mov rax, qword [rbp - 0x41]
lea rdx, [rbx - 8]
mov r9d, 1
lea r8d, [r9 + 3]
lea rcx, [rbp - 0x41]
call qword [rax + 0x10]
mov rax, qword [rbp - 0x41]
lea rdx, [rbx - 4]
mov r9d, 1
lea r8d, [r9 + 3]
lea rcx, [rbp - 0x41]
call qword [rax + 0x10]
mov rax, qword [rbp - 0x41]
mov r9d, 1
lea r8d, [r9 + 3]
mov rdx, rbx
lea rcx, [rbp - 0x41]
call qword [rax + 0x10]
add rbx, 0xc
sub rdi, 1
jne 0x140067f50
mov eax, dword [rsi + 4]
mov rbx, qword [rsi + 0x28]
test eax, eax
je 0x140068014
add rbx, 8
mov edi, eax
nop word [rax + rax]
mov rax, qword [rbp - 0x41]
lea rdx, [rbx - 8]
mov r9d, 1
lea r8d, [r9 + 3]
lea rcx, [rbp - 0x41]
call qword [rax + 0x10]
mov rax, qword [rbp - 0x41]
lea rdx, [rbx - 4]
mov r9d, 1
lea r8d, [r9 + 3]
lea rcx, [rbp - 0x41]
call qword [rax + 0x10]
mov rax, qword [rbp - 0x41]
mov r9d, 1
lea r8d, [r9 + 3]
mov rdx, rbx
lea rcx, [rbp - 0x41]
call qword [rax + 0x10]
add rbx, 0xc
sub rdi, 1
jne 0x140067fc0
mov r15d, r14d
mov r13, qword [rbp + 7]
nop dword [rax + rax]
mov rbx, qword [r12]
test rbx, rbx
je 0x1400681ae
mov eax, dword [rsi + 4]
cmp byte [r13], 0
je 0x140068125
xorps xmm0, xmm0
movups xmmword [rbp + 0xf], xmm0
xorps xmm1, xmm1
movups xmmword [rbp + 0x1f], xmm1
lea r9, [rbp + 0x1f]
lea r8, [rbp + 0xf]
mov edx, eax
mov rcx, rbx
call fcn.140066080
mov rax, qword [rbp - 0x41]
mov r9d, 1
lea r8d, [r9 + 3]
lea rdx, [rbp + 0xf]
lea rcx, [rbp - 0x41]
call qword [rax + 0x10]
mov rax, qword [rbp - 0x41]
mov r9d, 1
lea r8d, [r9 + 3]
lea rdx, [rbp + 0x13]
lea rcx, [rbp - 0x41]
call qword [rax + 0x10]
mov rax, qword [rbp - 0x41]
mov r9d, 1
lea r8d, [r9 + 3]
lea rdx, [rbp + 0x17]
lea rcx, [rbp - 0x41]
call qword [rax + 0x10]
mov rax, qword [rbp - 0x41]
mov r9d, 1
lea r8d, [r9 + 3]
lea rdx, [rbp + 0x1b]
lea rcx, [rbp - 0x41]
call qword [rax + 0x10]
mov rax, qword [rbp - 0x41]
mov r9d, 1
lea r8d, [r9 + 3]
lea rdx, [rbp + 0x1f]
lea rcx, [rbp - 0x41]
call qword [rax + 0x10]
mov rax, qword [rbp - 0x41]
mov r9d, 1
lea r8d, [r9 + 3]
lea rdx, [rbp + 0x23]
lea rcx, [rbp - 0x41]
call qword [rax + 0x10]
mov rax, qword [rbp - 0x41]
mov r9d, 1
lea r8d, [r9 + 3]
lea rdx, [rbp + 0x27]
lea rcx, [rbp - 0x41]
call qword [rax + 0x10]
mov rax, qword [rbp - 0x41]
mov r9d, 1
lea r8d, [r9 + 3]
lea rdx, [rbp + 0x2b]
lea rcx, [rbp - 0x41]
call qword [rax + 0x10]
jmp 0x14006819d
test eax, eax
je 0x14006819d
add rbx, 8
mov rdi, rax
mov rax, qword [rbp - 0x41]
lea rdx, [rbx - 8]
mov r9d, 1
lea r8d, [r9 + 3]
lea rcx, [rbp - 0x41]
call qword [rax + 0x10]
mov rax, qword [rbp - 0x41]
lea rdx, [rbx - 4]
mov r9d, 1
lea r8d, [r9 + 3]
lea rcx, [rbp - 0x41]
call qword [rax + 0x10]
mov rax, qword [rbp - 0x41]
mov r9d, 1
lea r8d, [r9 + 3]
mov rdx, rbx
lea rcx, [rbp - 0x41]
call qword [rax + 0x10]
mov rax, qword [rbp - 0x41]
lea rdx, [rbx + 4]
mov r9d, 1
lea r8d, [r9 + 3]
lea rcx, [rbp - 0x41]
call qword [rax + 0x10]
add rbx, 0x10
sub rdi, 1
jne 0x140068130
inc r15d
add r12, 8
cmp r15d, 8
jb 0x140068020
mov r15d, r14d
lea r12, [rsi + 0xb0]
mov r13, qword [rbp - 9]
mov r14, qword [rbp + 7]
cmp qword [r13], 0
je 0x140068339
mov eax, dword [r12]
mov dword [rbp - 0x49], eax
mov rax, qword [rbp - 0x41]
mov r9d, 1
lea r8d, [r9 + 3]
lea rdx, [rbp - 0x49]
lea rcx, [rbp - 0x41]
call qword [rax + 0x10]
mov eax, dword [rsi + 4]
mov rbx, qword [r13]
cmp byte [r14], 0
je 0x1400682c4
mov qword [rbp - 9], 0
mov dword [rbp - 1], 0
mov qword [rbp + 0xf], 0
mov dword [rbp + 0x17], 0
lea r9, [rbp + 0xf]
lea r8, [rbp - 9]
mov edx, eax
mov rcx, rbx
call fcn.140066560
mov rax, qword [rbp - 0x41]
mov r9d, 1
lea r8d, [r9 + 3]
lea rdx, [rbp - 9]
lea rcx, [rbp - 0x41]
call qword [rax + 0x10]
mov rax, qword [rbp - 0x41]
mov r9d, 1
lea r8d, [r9 + 3]
lea rdx, [rbp - 5]
lea rcx, [rbp - 0x41]
call qword [rax + 0x10]
mov rax, qword [rbp - 0x41]
mov r9d, 1
lea r8d, [r9 + 3]
lea rdx, [rbp - 1]
lea rcx, [rbp - 0x41]
call qword [rax + 0x10]
mov rax, qword [rbp - 0x41]
mov r9d, 1
lea r8d, [r9 + 3]
lea rdx, [rbp + 0xf]
lea rcx, [rbp - 0x41]
call qword [rax + 0x10]
mov rax, qword [rbp - 0x41]
mov r9d, 1
lea r8d, [r9 + 3]
lea rdx, [rbp + 0x13]
lea rcx, [rbp - 0x41]
call qword [rax + 0x10]
mov rax, qword [rbp - 0x41]
mov r9d, 1
lea r8d, [r9 + 3]
lea rdx, [rbp + 0x17]
lea rcx, [rbp - 0x41]
call qword [rax + 0x10]
jmp 0x140068324
test eax, eax
je 0x140068324
add rbx, 8
mov rdi, rax
nop
mov rax, qword [rbp - 0x41]
lea rdx, [rbx - 8]
mov r9d, 1
lea r8d, [r9 + 3]
lea rcx, [rbp - 0x41]
call qword [rax + 0x10]
mov rax, qword [rbp - 0x41]
lea rdx, [rbx - 4]
mov r9d, 1
lea r8d, [r9 + 3]
lea rcx, [rbp - 0x41]
call qword [rax + 0x10]
mov rax, qword [rbp - 0x41]
mov r9d, 1
lea r8d, [r9 + 3]
mov rdx, rbx
lea rcx, [rbp - 0x41]
call qword [rax + 0x10]
add rbx, 0xc
sub rdi, 1
jne 0x1400682d0
inc r15d
add r12, 4
add r13, 8
cmp r15d, 8
jb 0x1400681c0
mov ebx, dword [rsi + 8]
mov rcx, r14
cmp byte [r14], 0
mov r14d, 0
je 0x140068485
mov edi, r14d
mov r15d, 0x200
cmp ebx, r15d
cmova ebx, r15d
test ebx, ebx
je 0x140068529
nop word [rax + rax]
mov edx, r14d
mov r10d, r14d
test ebx, ebx
je 0x14006844e
mov r11, qword [rsi + 0xd0]
nop word [rax + rax]
lea r8d, [r10 + rdi]
add r8, r8
mov r9d, dword [r11 + r8*8]
movzx ecx, r9w
add ecx, edx
mov eax, r9d
shr eax, 0x10
shl eax, 0xb
xor eax, ecx
shl ecx, 0x10
xor ecx, eax
mov eax, ecx
shr eax, 0xb
add ecx, eax
lea eax, [rcx*8]
xor ecx, eax
mov eax, ecx
shr eax, 5
add ecx, eax
mov eax, ecx
shl eax, 4
xor ecx, eax
mov eax, ecx
shr eax, 0x11
add ecx, eax
mov eax, ecx
shl eax, 0x19
xor ecx, eax
mov edx, ecx
shr edx, 6
add edx, ecx
test r9d, r9d
je 0x140068442
mov r8, qword [r11 + r8*8 + 8]
nop
mov eax, dword [r8]
movzx ecx, ax
add ecx, edx
shr eax, 0x10
shl eax, 0xb
xor eax, ecx
shl ecx, 0x10
xor ecx, eax
mov eax, ecx
shr eax, 0xb
add ecx, eax
lea eax, [rcx*8]
xor ecx, eax
mov eax, ecx
shr eax, 5
add ecx, eax
mov eax, ecx
shl eax, 4
xor ecx, eax
mov eax, ecx
shr eax, 0x11
add ecx, eax
mov eax, ecx
shl eax, 0x19
xor ecx, eax
mov edx, ecx
shr edx, 6
add edx, ecx
lea r8, [r8 + 4]
sub r9, 1
jne 0x1400683f0
inc r10d
cmp r10d, ebx
jb 0x140068390
mov dword [rbp - 0x49], edx
mov rax, qword [rbp - 0x41]
mov r9d, 1
lea r8d, [r9 + 3]
lea rdx, [rbp - 0x49]
lea rcx, [rbp - 0x41]
call qword [rax + 0x10]
add edi, ebx
mov ebx, dword [rsi + 8]
sub ebx, edi
cmp ebx, r15d
cmova ebx, r15d
test ebx, ebx
jne 0x140068370
jmp 0x140068525
mov r15d, r14d
test ebx, ebx
je 0x140068529
mov edi, r15d
shl rdi, 4
add rdi, qword [rsi + 0xd0]
movzx eax, word [rdi]
mov word [rbp - 9], ax
mov rax, qword [rbp - 0x41]
mov r9d, 1
lea r8d, [r9 + 1]
lea rdx, [rbp - 9]
lea rcx, [rbp - 0x41]
call qword [rax + 0x10]
mov ebx, r14d
cmp dword [rdi], r14d
jbe 0x140068518
nop word [rax + rax]
mov eax, ebx
mov rcx, qword [rdi + 8]
mov r9d, 1
cmp dword [rsi + 4], 0x10000
jae 0x1400684f7
movzx eax, word [rcx + rax*4]
mov word [rbp - 0x49], ax
lea r8d, [r9 + 1]
lea rdx, [rbp - 0x49]
jmp 0x140068507
mov eax, dword [rcx + rax*4]
mov dword [rbp - 9], eax
mov r8d, 4
lea rdx, [rbp - 9]
mov rax, qword [rbp - 0x41]
lea rcx, [rbp - 0x41]
call qword [rax + 0x10]
inc ebx
cmp ebx, dword [rdi]
jb 0x1400684d0
inc r15d
cmp r15d, dword [rsi + 8]
jb 0x140068490
mov rcx, qword [rbp + 7]
mov eax, dword [rsi + 0xd8]
test eax, eax
je 0x140068567
nop dword [rax]
nop word [rax + rax]
mov r8d, r14d
mov rax, qword [rsi + 0xe0]
mov r8, qword [rax + r8*8]
lea rdx, [rbp - 0x41]
call fcn.140066e30
inc r14d
cmp r14d, dword [rsi + 0xd8]
mov rcx, qword [rbp + 7]
jb 0x140068540
lea rax, vtable.Assimp::AssbinChunkWriter.0
mov qword [rbp - 0x41], rax
mov rcx, qword [rbp - 0x29]
test rcx, rcx
je 0x1400685bf
mov rax, qword [rcx]
mov r9d, 1
lea r8d, [r9 + 3]
lea rdx, [rbp - 0x31]
call qword [rax + 0x10]
mov rcx, qword [rbp - 0x29]
mov rax, qword [rcx]
mov r9d, 1
lea r8d, [r9 + 3]
lea rdx, [rbp - 0x19]
call qword [rax + 0x10]
mov rcx, qword [rbp - 0x29]
mov rax, qword [rcx]
mov r9, qword [rbp - 0x19]
mov r8d, 1
mov rdx, qword [rbp - 0x39]
call qword [rax + 0x10]
mov rcx, qword [rbp - 0x39]
test rcx, rcx
je 0x1400685ce
call fcn.1401a68e0
nop
lea r11, [rsp + 0xa0]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret