Function at 0x1401c7350
Capabilities:
Encrypt data using speck

Disassembly:
mov rax, rsp
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0xa28]
sub rsp, 0xae8
movaps xmmword [rax - 0x58], xmm6
movaps xmmword [rax - 0x68], xmm7
movaps xmmword [rax - 0x78], xmm8
movaps xmmword [rax - 0x88], xmm9
movaps xmmword [rax - 0x98], xmm10
movaps xmmword [rax - 0xa8], xmm11
movaps xmmword [rax - 0xb8], xmm12
mov rax, qword [0x140424b58]
xor rax, rsp
mov qword [rbp + 0x960], rax
mov r13, r9
mov rbx, r8
mov qword [rbp - 0x80], rbx
mov r15, rdx
mov r12, rcx
mov qword [rbp - 0x78], rcx
xor edi, edi
mov dword [rsp + 0x70], edi
lea rsi, [rcx + 0x98]
cmp rsi, rdx
je 0x1401c73e7
cmp qword [rdx + 0x18], 0x10
jb 0x1401c73db
mov rdx, qword [rdx]
mov r8, qword [r15 + 0x10]
mov rcx, rsi
call fcn.140028740
mov qword [r12 + 0xf8], rbx
mov qword [r12 + 0x100], r13
mov rbx, 0xffffffffffffffff
mov r8, rbx
lea rdx, [0x140380c54]
mov rcx, rsi
call fcn.1400f2d50
lea rcx, [rax + 1]
mov r14, rdi
cmp rax, rbx
cmovne r14, rcx
mov qword [rbp + 0x70], rdi
mov eax, 0xf
mov qword [rbp + 0x78], rax
mov byte [rbp + 0x60], dil
mov rax, qword [rsi + 0x10]
cmp rax, r14
jb 0x1401c922c
sub rax, r14
mov rdi, rbx
cmp rax, rbx
cmovb rdi, rax
mov rax, rsi
cmp qword [rsi + 0x18], 0x10
jb 0x1401c7456
mov rax, qword [rsi]
lea rcx, [rax + r14]
mov qword [rsp + 0x50], rcx
movabs rax, 0x7fffffffffffffff
cmp rdi, 0xf
ja 0x1401c748c
mov qword [rbp + 0x70], rdi
mov r8, rdi
mov rdx, rcx
lea rcx, [rbp + 0x60]
call sub.VCRUNTIME140.dll_memmove
mov byte [rbp + rdi + 0x60], 0
jmp 0x1401c752d
cmp rdi, rax
ja 0x1401c9232
mov rbx, rdi
or rbx, 0xf
cmp rbx, rax
jbe 0x1401c74ce
mov rbx, rax
movabs rax, 0x8000000000000027
mov rcx, rax
call fcn.14032af80
test rax, rax
je 0x1401c761a
lea r12, [rax + 0x27]
and r12, 0xffffffffffffffe0
mov qword [r12 - 8], rax
jmp 0x1401c7508
mov eax, 0x16
cmp rbx, rax
cmovb rbx, rax
lea rcx, [rbx + 1]
cmp rcx, 0x1000
jb 0x1401c74f6
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x1401c9226
jmp 0x1401c74ae
test rcx, rcx
je 0x1401c7505
call fcn.14032af80
mov r12, rax
jmp 0x1401c7508
xor r12d, r12d
mov qword [rbp + 0x70], rdi
mov qword [rbp + 0x78], rbx
mov r8, rdi
mov rdx, qword [rsp + 0x50]
mov rcx, r12
call sub.VCRUNTIME140.dll_memcpy
mov byte [r12 + rdi], 0
mov qword [rbp + 0x60], r12
mov r12, qword [rbp - 0x78]
lea rdi, [r12 + 0xd8]
lea rdx, [rbp + 0x60]
mov rcx, rdi
call fcn.140023640
mov qword [rbp + 0xd0], 0
mov eax, 0xf
mov qword [rbp + 0xd8], rax
mov byte [rbp + 0xc0], 0
cmp qword [rsi + 0x10], r14
cmovb r14, qword [rsi + 0x10]
cmp qword [rsi + 0x18], 0x10
jb 0x1401c7572
mov rsi, qword [rsi]
mov r8, r14
mov rdx, rsi
lea rcx, [rbp + 0xc0]
call fcn.140028740
mov r14d, 6
mov dword [rsp + 0x44], r14d
lea rcx, [r12 + 0xb8]
lea rdx, [rbp + 0xc0]
call fcn.140023640
mov rdx, qword [rbp + 0xd8]
cmp rdx, 0x10
jb 0x1401c75e8
inc rdx
mov rcx, qword [rbp + 0xc0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1401c75e2
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1401c75e2
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1401a68e0
nop
mov rdx, qword [rbp + 0x78]
cmp rdx, 0x10
jb 0x1401c7626
inc rdx
mov rcx, qword [rbp + 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1401c7621
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1401c7621
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1401a68e0
mov rbx, rdi
cmp qword [rdi + 0x18], 0x10
jb 0x1401c7633
mov rbx, qword [rdi]
mov rcx, rdi
cmp qword [rdi + 0x18], 0x10
jb 0x1401c7640
mov rcx, qword [rdi]
add rcx, qword [rdi + 0x10]
cmp rbx, rcx
je 0x1401c7659
movsx ecx, byte [rbx]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_tolower]
mov byte [rbx], al
inc rbx
jmp 0x1401c7633
cmp byte [r12 + 0x34], 0
je 0x1401c7671
mov rcx, r12
call fcn.1401ca960
test al, al
jne 0x1401c91d6
mov ebx, 0xf
mov qword [rbp + 0x78], rbx
mov qword [rbp + 0x70], 2
movzx eax, word [0x1403546f0]
mov word [rbp + 0x60], ax
mov byte [rbp + 0x62], 0
mov rax, qword [r13]
lea r8, [rbp + 0x60]
mov rdx, r15
cmp qword [r15 + 0x18], 0x10
jb 0x1401c76a6
mov rdx, qword [r15]
mov rcx, r13
call qword [rax + 0x18]
mov r12, rax
mov qword [rbp + 0x40], rax
mov rdx, qword [rbp + 0x78]
cmp rdx, 0x10
jb 0x1401c76f1
inc rdx
mov rcx, qword [rbp + 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1401c76ec
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1401c76ec
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1401a68e0
xor esi, esi
mov qword [rbp + 0x70], rsi
mov qword [rbp + 0x78], rbx
mov byte [rbp + 0x60], sil
test r12, r12
je 0x1401c9238
mov rax, qword [r12]
mov rcx, r12
call qword [rax + 0x28]
mov rcx, rax
mov r15, qword [rbp - 0x78]
mov dword [r15 + 0x90], eax
cmp eax, 0x6c
jb 0x1401c9283
mov ebx, eax
xorps xmm0, xmm0
movdqu xmmword [rbp + 8], xmm0
mov qword [rbp + 0x18], rsi
test eax, eax
je 0x1401c77a7
cmp rbx, 0x1000
jb 0x1401c776d
lea rcx, [rbx + 0x27]
cmp rcx, rbx
jbe 0x1401c92b8
call fcn.14032af80
test rax, rax
je 0x1401c91bb
lea rdi, [rax + 0x27]
and rdi, 0xffffffffffffffe0
mov qword [rdi - 8], rax
jmp 0x1401c7778
mov rcx, rbx
call fcn.14032af80
mov rdi, rax
mov qword [rbp], rdi
mov qword [rbp + 8], rdi
lea rsi, [rdi + rbx]
mov qword [rbp + 0x18], rsi
mov r8, rsi
sub r8, rdi
xor edx, edx
mov rcx, rdi
call sub.VCRUNTIME140.dll_memset
mov qword [rbp + 0x10], rsi
mov ecx, dword [r15 + 0x90]
xor esi, esi
jmp 0x1401c77af
mov rdi, qword [rbp + 8]
mov qword [rbp], rdi
mov rax, qword [r12]
mov r9d, ecx
mov r8d, 1
mov rdx, rdi
mov rcx, r12
call qword [rax + 8]
mov qword [r15 + 0x88], rdi
mov qword [r15 + 0x80], rdi
mov rcx, r15
call fcn.1401ccfa0
mov rcx, qword [r15 + 0x80]
mov rax, qword [r15 + 0x88]
mov r13d, dword [rcx + 0x64]
add r13, rax
mov qword [rsp + 0x58], r13
mov edx, dword [rcx + 0x60]
add rdx, rax
mov qword [rbp + 0x38], rdx
mov edx, dword [rcx + 0x54]
mov rbx, qword [rbp - 0x80]
mov dword [rbx + 0x10], edx
mov rax, qword [r15 + 0x80]
mov ecx, dword [rax + 0x54]
test ecx, ecx
je 0x1401c92be
cmp ecx, 0x32916
ja 0x1401c92f3
mov eax, 8
mul rdx
mov rdi, 0xffffffffffffffff
cmovo rax, rdi
mov rcx, rax
call fcn.1401a68d0
mov qword [rbx + 0x18], rax
mov rax, qword [r15 + 0x80]
mov ecx, dword [rax + 0x54]
mov dword [rbx + 0x20], ecx
mov ecx, dword [rbx + 0x10]
mov eax, 8
mul rcx
cmovo rax, rdi
mov rcx, rax
call fcn.1401a68d0
mov qword [rbx + 0x28], rax
mov r8d, dword [rbx + 0x10]
shl r8, 3
xor edx, edx
mov rcx, qword [rbx + 0x18]
call sub.VCRUNTIME140.dll_memset
mov r8d, dword [rbx + 0x20]
shl r8, 3
xor edx, edx
mov rcx, qword [rbx + 0x28]
call sub.VCRUNTIME140.dll_memset
mov qword [rbp - 0x40], rsi
mov qword [rbp - 0x38], rsi
lea ecx, [rdi + 0x59]
call fcn.14032af80
mov qword [rax], rax
mov qword [rax + 8], rax
mov qword [rbp - 0x40], rax
lea rdx, [rbp - 0x40]
mov rcx, r15
call fcn.1401cc570
mov qword [rbp - 0x60], rsi
mov qword [rbp - 0x58], rsi
lea ecx, [rdi + 0x49]
call fcn.14032af80
mov qword [rax], rax
mov qword [rax + 8], rax
mov qword [rbp - 0x60], rax
lea rdx, [rbp - 0x60]
mov rcx, r15
call fcn.1401cbc70
mov rcx, qword [r15 + 0x80]
lea rax, [rcx + 8]
mov qword [rbp + 0x20], rax
cmp qword [rbp - 0x58], 0
je 0x1401c7986
mov rax, qword [rbp - 0x60]
mov rdi, qword [rax]
cmp rdi, rax
je 0x1401c7986
mov r13, qword [rbp + 0x20]
lea rdx, [rdi + 0x10]
cmp qword [rdi + 0x28], 0x10
jb 0x1401c791f
mov rdx, qword [rdi + 0x10]
lea r9, [rdi + 0x10]
mov r8, r13
mov rcx, r15
call fcn.1401c6fd0
mov rax, qword [rdi + 0x38]
mov rbx, qword [rax]
cmp rbx, rax
je 0x1401c7968
nop word [rax + rax]
lea r9, [rbx + 0x10]
mov rdx, r9
cmp qword [r9 + 0x18], 0x10
jb 0x1401c7951
mov rdx, qword [r9]
mov r8, r13
mov rcx, r15
call fcn.1401c6fd0
mov rax, qword [rbx]
mov rbx, rax
cmp rax, qword [rdi + 0x38]
jne 0x1401c7940
mov rax, qword [rdi]
mov rdi, rax
cmp rax, qword [rbp - 0x60]
jne 0x1401c7910
mov rcx, qword [r15 + 0x80]
mov r13, qword [rsp + 0x58]
mov rbx, qword [rbp - 0x80]
xor esi, esi
mov eax, dword [rcx + 0x54]
mov dword [rsp + 0x60], esi
test eax, eax
je 0x1401c8be4
movss xmm12, dword [0x140354214]
movss xmm10, dword [0x140380e1c]
movss xmm11, dword [0x140380e20]
movzx r15d, byte [rsp + 0x40]
movzx edi, byte [rsp + 0x40]
movzx esi, byte [rsp + 0x40]
movzx r14d, byte [rsp + 0x40]
nop word [rax + rax]
dec eax
mov dword [rbp - 0x64], eax
mov r8d, r13d
mov rax, qword [rbp - 0x78]
sub r8d, dword [rax + 0x88]
mov r10d, dword [r13 + 0x54]
mov r9d, dword [rax + 0x90]
mov ecx, dword [r13 + 0x58]
add ecx, r8d
lea rax, [r10 + r10*2]
lea rcx, [rcx + rax*4]
cmp rcx, r9
ja 0x1401c93b6
mov r11d, dword [r13 + 0x4c]
mov ecx, dword [r13 + 0x5c]
add ecx, r8d
imul rax, r11, 0x44
add rcx, rax
cmp rcx, r9
ja 0x1401c93b6
mov edx, dword [r13 + 0x50]
shl rdx, 3
mov eax, dword [r13 + 0x60]
add eax, r8d
add rax, rdx
cmp rax, r9
ja 0x1401c93b6
mov eax, dword [r13 + 0x64]
add eax, r8d
add rax, rdx
cmp rax, r9
ja 0x1401c93b6
cmp r10d, 0x2000
jbe 0x1401c7a70
call fcn.1400f2ee0
lea rdx, str.MD3:_Quake_III_triangle_limit_exceeded
mov rcx, rax
call fcn.1400f2f30
mov r11d, dword [r13 + 0x4c]
cmp r11d, 0x100
jbe 0x1401c7a8d
call fcn.1400f2ee0
lea rdx, str.MD3:_Quake_III_shader_limit_exceeded
mov rcx, rax
call fcn.1400f2f30
cmp dword [r13 + 0x50], 0x1000
jbe 0x1401c7aab
call fcn.1400f2ee0
lea rdx, str.MD3:_Quake_III_vertex_limit_exceeded
mov rcx, rax
call fcn.1400f2f30
cmp dword [r13 + 0x48], 0x400
jbe 0x1401c7ac9
call fcn.1400f2ee0
lea rdx, str.MD3:_Quake_III_frame_limit_exceeded
mov rcx, rax
call fcn.1400f2f30
mov eax, dword [r13 + 0x64]
add rax, r13
mov qword [rbp + 0x48], rax
mov eax, dword [r13 + 0x58]
add rax, r13
mov qword [rbp - 8], rax
mov eax, dword [r13 + 0x60]
add rax, r13
mov qword [rbp + 0x30], rax
mov eax, dword [r13 + 0x5c]
add rax, r13
mov qword [rbp - 0x48], rax
cmp dword [r13 + 0x50], 0
je 0x1401c8ebb
cmp dword [r13 + 0x54], 0
je 0x1401c8ebb
mov ecx, 0x510
call fcn.14032af80
mov rdx, rax
mov qword [rsp + 0x50], rax
xor r8d, r8d
mov qword [rax], r8
mov dword [rax + 8], r8d
mov qword [rax + 0x10], r8
mov qword [rax + 0x18], r8
mov qword [rax + 0x20], r8
mov qword [rax + 0x28], r8
mov qword [rax + 0xd0], r8
mov dword [rax + 0xd8], r8d
mov qword [rax + 0xe0], r8
mov dword [rax + 0xe8], r8d
mov qword [rax + 0xf0], r8
mov byte [rax + 0xf8], r8b
mov dword [rax + 0x4f8], r8d
mov qword [rax + 0x500], r8
mov dword [rax + 0x508], r8d
mov qword [rax + 0xb0], r8
mov qword [rax + 0x70], r8
mov qword [rax + 0x78], r8
mov qword [rax + 0xb8], r8
mov qword [rax + 0x80], r8
mov qword [rax + 0x88], r8
mov qword [rax + 0xc0], r8
mov qword [rax + 0x90], r8
mov qword [rax + 0x98], r8
mov qword [rax + 0xc8], r8
mov qword [rax + 0xa0], r8
mov qword [rax + 0xa8], r8
mov qword [rax + 0x30], r8
mov qword [rax + 0x38], r8
mov qword [rax + 0x40], r8
mov qword [rax + 0x48], r8
mov qword [rax + 0x50], r8
mov qword [rax + 0x58], r8
mov qword [rax + 0x60], r8
mov qword [rax + 0x68], r8
mov ecx, dword [rbp - 0x64]
mov rax, qword [rbx + 0x18]
mov qword [rax + rcx*8], rdx
mov rax, qword [rbx + 0x18]
mov rdx, qword [rax + rcx*8]
mov qword [rbp - 0x50], rdx
mov qword [rbp + 0xd0], r8
mov r9d, 0xf
mov qword [rbp + 0xd8], r9
mov byte [rbp + 0xc0], r8b
mov edx, r8d
mov qword [rsp + 0x68], rdx
mov rcx, qword [rbp - 0x40]
mov qword [rsp + 0x50], rcx
mov rbx, qword [rcx]
lea rax, [r13 + 4]
mov qword [rsp + 0x78], rax
cmp rbx, rcx
je 0x1401c7faa
nop dword [rax]
lea r13, [rbx + 0x10]
mov qword [rbp - 0x70], r13
mov qword [rbp + 0x90], r8
mov qword [rbp + 0x98], r9
mov byte [rbp + 0x80], 0
mov r8, 0xffffffffffffffff
inc r8
cmp byte [rax + r8], 0
jne 0x1401c7c64
mov rdx, rax
lea rcx, [rbp + 0x80]
call fcn.140028740
mov rdx, qword [r13 + 0x10]
cmp qword [r13 + 0x18], 0x10
jb 0x1401c7c90
mov r13, qword [r13]
mov qword [rbp - 0x70], r13
lea rcx, [rbp + 0x80]
cmp qword [rbp + 0x98], 0x10
setae byte [rsp + 0x40]
mov r13, qword [rbp + 0x80]
cmovae rcx, r13
mov r8, qword [rbp + 0x90]
cmp r8, rdx
jne 0x1401c7ccd
mov rdx, qword [rbp - 0x70]
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
mov byte [rsp + 0x48], 1
je 0x1401c7cd2
mov byte [rsp + 0x48], 0
cmp byte [rsp + 0x40], 0
je 0x1401c7d10
mov rdx, qword [rbp + 0x98]
inc rdx
mov rax, r13
cmp rdx, 0x1000
jb 0x1401c7d08
add rdx, 0x27
mov r13, qword [r13 - 8]
sub rax, r13
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1401c8ef9
mov rcx, r13
call fcn.1401a68e0
cmp byte [rsp + 0x48], 0
jne 0x1401c7d37
mov rax, qword [rbx]
mov rbx, rax
cmp rax, qword [rsp + 0x50]
mov rax, qword [rsp + 0x78]
mov r8d, 0
lea r9d, [r8 + 0xf]
jne 0x1401c7c40
mov rcx, qword [rbp - 0x40]
mov rdx, qword [rsp + 0x68]
cmp rbx, rcx
je 0x1401c7faa
lea rdx, [rbx + 0x30]
lea rax, [rbp + 0xc0]
cmp rax, rdx
je 0x1401c7d73
mov r8, qword [rdx + 0x10]
cmp qword [rdx + 0x18], 0x10
jb 0x1401c7d67
mov rdx, qword [rdx]
lea rcx, [rbp + 0xc0]
call fcn.140028740
lea rax, [rbp + 0xc0]
cmp qword [rbp + 0xd8], 0x10
cmovae rax, qword [rbp + 0xc0]
mov qword [rsp + 0x68], rax
call fcn.1400f2ee0
mov r13, rax
lea r8, [rbx + 0x30]
mov rdx, qword [r8 + 0x10]
movabs rcx, 0x7fffffffffffffff
sub rcx, rdx
cmp rcx, 0x1c
jb 0x1401c9363
mov rcx, r8
cmp qword [r8 + 0x18], 0x10
jb 0x1401c7dc3
mov rcx, qword [r8]
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], 0x1c
lea r9, str.MD3:_Assigning_skin_texture
movzx edx, r15b
lea rcx, [rbp + 0x80]
call fcn.140029020
or dword [rsp + 0x44], 8
mov r8d, 0xc
lea rdx, str._to_surface
lea rcx, [rbp + 0x80]
call fcn.14002d730
xor ecx, ecx
mov qword [rbp + 0xf0], rcx
mov qword [rbp + 0xf8], rcx
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0xe0], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0xf0], xmm1
mov qword [rax + 0x10], rcx
mov qword [rax + 0x18], 0xf
mov byte [rax], cl
or dword [rsp + 0x44], 0x10
mov r8, 0xffffffffffffffff
mov rdx, qword [rsp + 0x78]
nop
inc r8
cmp byte [rdx + r8], 0
jne 0x1401c7e50
lea rcx, [rbp + 0xe0]
call fcn.14002d730
xor ecx, ecx
mov qword [rbp + 0xb0], rcx
mov qword [rbp + 0xb8], rcx
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0xa0], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0xb0], xmm1
mov qword [rax + 0x10], rcx
mov qword [rax + 0x18], 0xf
mov byte [rax], cl
or dword [rsp + 0x44], 0x20
lea rdx, [rbp + 0xa0]
cmp qword [rbp + 0xb8], 0x10
cmovae rdx, qword [rbp + 0xa0]
mov rcx, r13
call fcn.1400f2ea0
nop
mov rdx, qword [rbp + 0xb8]
cmp rdx, 0x10
jb 0x1401c7eff
inc rdx
mov rcx, qword [rbp + 0xa0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1401c7efa
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1401c8ecf
call fcn.1401a68e0
xor r13d, r13d
mov qword [rbp + 0xb0], r13
mov eax, 0xf
mov qword [rbp + 0xb8], rax
mov byte [rbp + 0xa0], r13b
mov rdx, qword [rbp + 0xf8]
cmp rdx, 0x10
jb 0x1401c7f62
inc rdx
mov rcx, qword [rbp + 0xe0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1401c7f58
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1401c8ed6
call fcn.1401a68e0
mov eax, 0xf
mov qword [rbp + 0xf0], r13
mov qword [rbp + 0xf8], rax
mov byte [rbp + 0xe0], 0
mov r8, qword [rbp + 0x98]
cmp r8, 0x10
jb 0x1401c7f9a
inc r8
mov rdx, qword [rbp + 0x80]
lea rcx, [rbp + 0x80]
call fcn.14002d7c0
mov byte [rbx + 0x50], 1
mov rdx, qword [rsp + 0x68]
test rdx, rdx
jne 0x1401c7fbb
jmp 0x1401c7fad
xor r13d, r13d
mov rax, qword [rsp + 0x58]
cmp dword [rax + 0x4c], 0
cmovne rdx, qword [rbp - 0x48]
mov r9, r13
mov qword [rbp + 0x70], r13
mov ebx, 0xf
mov eax, ebx
mov qword [rbp + 0x78], rbx
mov byte [rbp + 0x60], 0
test rdx, rdx
je 0x1401c7fef
lea r9, [rbp + 0x60]
mov r8, qword [rbp + 0x20]
mov rcx, qword [rbp - 0x78]
call fcn.1401c6fd0
mov rax, qword [rbp + 0x78]
mov r9, qword [rbp + 0x70]
mov qword [rbp - 0x70], r13
cmp qword [rbp - 0x58], 0
je 0x1401c82ad
lea rcx, [rbp + 0x60]
cmp rax, 0x10
setae r11b
mov r10, qword [rbp + 0x60]
cmovae rcx, r10
test r9, r9
je 0x1401c8049
lea rax, [r9 - 1]
mov r8, 0xffffffffffffffff
cmp rax, r8
cmovb r8, rax
add r8, rcx
cmp byte [r8], 0x2e
je 0x1401c8040
cmp r8, rcx
je 0x1401c8049
dec r8
cmp byte [r8], 0x2e
jne 0x1401c8032
sub r8, rcx
cmp r8, 0xffffffffffffffff
jne 0x1401c804c
mov r8, r9
mov qword [rbp + 0xb0], r13
mov qword [rbp + 0xb8], rbx
mov byte [rbp + 0xa0], 0
cmp r9, r8
cmovb r8, r9
lea rdx, [rbp + 0x60]
test r11b, r11b
cmovne rdx, r10
lea rcx, [rbp + 0xa0]
call fcn.140028740
or dword [rsp + 0x44], 0x40
mov r13, qword [rbp - 0x60]
mov rbx, qword [r13]
cmp rbx, r13
je 0x1401c8195
nop word [rax + rax]
lea rdx, [rbx + 0x10]
mov eax, dword [rdx + 0x10]
cmp eax, dword [rbp + 0xb0]
jne 0x1401c80da
cmp qword [rdx + 0x18], 0x10
jb 0x1401c80b9
mov rdx, qword [rdx]
lea rcx, [rbp + 0xa0]
cmp qword [rbp + 0xb8], 0x10
cmovae rcx, qword [rbp + 0xa0]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__stricmp]
test eax, eax
je 0x1401c80e5
mov rax, qword [rbx]
mov rbx, rax
cmp rax, r13
jne 0x1401c80a0
mov r13, qword [rbp - 0x60]
cmp rbx, r13
je 0x1401c8195
add rbx, 0x10
mov qword [rbp - 0x70], rbx
call fcn.1400f2ee0
mov rbx, rax
movabs rax, 0x7fffffffffffffff
mov rdx, qword [rbp + 0xb0]
sub rax, rdx
cmp rax, 0x18
jb 0x1401c9369
lea rcx, [rbp + 0xa0]
cmp qword [rbp + 0xb8], 0x10
cmovae rcx, qword [rbp + 0xa0]
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], 0x18
lea r9, str.Found_shader_record_for
lea r8, [rbp + 0xa0]
movzx edx, dil
lea rcx, [rbp + 0x80]
call fcn.140029020
or dword [rsp + 0x44], 0x80
lea rdx, [rbp + 0x80]
cmp qword [rbp + 0x98], 0x10
cmovae rdx, qword [rbp + 0x80]
mov rcx, rbx
call fcn.1400f2ef0
nop
jmp 0x1401c822b
call fcn.1400f2ee0
mov rbx, rax
movabs rax, 0x7fffffffffffffff
mov rdx, qword [rbp + 0xb0]
sub rax, rdx
cmp rax, 0x21
jb 0x1401c936f
lea rcx, [rbp + 0xa0]
cmp qword [rbp + 0xb8], 0x10
cmovae rcx, qword [rbp + 0xa0]
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], 0x21
lea r9, str.Unable_to_find_shader_record_for
lea r8, [rbp + 0xa0]
movzx edx, sil
lea rcx, [rbp + 0x80]
call fcn.140029020
or dword [rsp + 0x44], 0x100
lea rdx, [rbp + 0x80]
cmp qword [rbp + 0x98], 0x10
cmovae rdx, qword [rbp + 0x80]
mov rcx, rbx
call fcn.1400f2f30
nop
mov r8, qword [rbp + 0x98]
cmp r8, 0x10
jb 0x1401c824f
inc r8
mov rdx, qword [rbp + 0x80]
lea rcx, [rbp + 0x80]
call fcn.14002d7c0
nop
mov rdx, qword [rbp + 0xb8]
cmp rdx, 0x10
jb 0x1401c8290
inc rdx
mov rcx, qword [rbp + 0xa0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1401c828b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1401c8edd
call fcn.1401a68e0
xor r13d, r13d
mov qword [rbp + 0xb0], r13
mov eax, 0xf
mov qword [rbp + 0xb8], rax
mov byte [rbp + 0xa0], r13b
mov ecx, 0x10
call fcn.14032af80
mov qword [rbp + 0x58], rax
mov rcx, rax
call fcn.1401f0d90
mov rbx, rax
mov qword [rsp + 0x50], rax
mov dword [rbp - 0x18], 2
mov dword [rsp + 0x30], 4
mov dword [rsp + 0x28], r13d
mov dword [rsp + 0x20], r13d
lea r9, str._mat.shadingm
mov r8d, 4
lea rdx, [rbp - 0x18]
mov rcx, rax
call fcn.1401f0e30
mov dword [rbp - 0x30], 0x3d4ccccd
mov dword [rbp - 0x2c], 0x3d4ccccd
mov dword [rbp - 0x28], 0x3d4ccccd
mov dword [rsp + 0x30], 1
mov dword [rsp + 0x28], r13d
mov dword [rsp + 0x20], r13d
lea r9, str._clr.ambient
mov r8d, 0xc
lea rdx, [rbp - 0x30]
mov rcx, rbx
call fcn.1401f0e30
mov dword [rbp - 0x30], 0x3f800000
mov dword [rbp - 0x2c], 0x3f800000
mov dword [rbp - 0x28], 0x3f800000
mov dword [rsp + 0x30], 1
mov dword [rsp + 0x28], r13d
mov dword [rsp + 0x20], r13d
lea r9, str._clr.diffuse
mov r8d, 0xc
lea rdx, [rbp - 0x30]
mov rcx, rbx
call fcn.1401f0e30
mov dword [rsp + 0x30], 1
mov dword [rsp + 0x28], r13d
mov dword [rsp + 0x20], r13d
lea r9, str._clr.specular
mov r8d, 0xc
lea rdx, [rbp - 0x30]
mov rcx, rbx
call fcn.1401f0e30
mov qword [rbp + 0x550], r13
mov byte [rbp + 0x558], 0
mov r8, qword [rbp - 0x78]
add r8, 0x38
mov rcx, qword [r8 + 0x10]
movabs rax, 0x7fffffffffffffff
sub rax, rcx
cmp rax, 5
jb 0x1401c93b0
mov rax, r8
cmp qword [r8 + 0x18], 0x10
jb 0x1401c83e6
mov rax, qword [r8]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 5
lea r9, str.MD3__
movzx edx, r14b
lea rcx, [rbp + 0x100]
call fcn.140029020
mov ebx, dword [rsp + 0x44]
bts ebx, 9
mov r8d, 2
lea rdx, [0x140380d4c]
lea rcx, [rbp + 0x100]
call fcn.14002d730
mov qword [rbp + 0x90], r13
mov qword [rbp + 0x98], r13
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0x80], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0x90], xmm1
mov qword [rax + 0x10], r13
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
bts ebx, 0xa
mov r8, 0xffffffffffffffff
mov rax, qword [rsp + 0x78]
inc r8
cmp byte [rax + r8], 0
jne 0x1401c8473
mov rdx, rax
lea rcx, [rbp + 0x80]
call fcn.14002d730
mov qword [rbp + 0xf0], r13
mov qword [rbp + 0xf8], r13
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0xe0], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0xf0], xmm1
mov qword [rax + 0x10], r13
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
bts ebx, 0xb
mov r8d, 1
lea rdx, [0x14035c41c]
lea rcx, [rbp + 0xe0]
call fcn.14002d730
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0x120], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0x130], xmm1
mov qword [rax + 0x10], r13
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
bts ebx, 0xc
mov dword [rsp + 0x44], ebx
mov r13, qword [rbp + 0x138]
mov rbx, qword [rbp + 0x120]
movq r8, xmm1
cmp r8, 0x3ff
ja 0x1401c8554
mov qword [rbp + 0x550], r8
lea rdx, [rbp + 0x120]
cmp r13, 0x10
cmovae rdx, rbx
lea rcx, [rbp + 0x558]
call sub.VCRUNTIME140.dll_memcpy
mov rax, qword [rbp + 0x550]
mov byte [rbp + rax + 0x558], 0
cmp r13, 0x10
jb 0x1401c858c
lea rdx, [r13 + 1]
mov rax, rbx
cmp rdx, 0x1000
jb 0x1401c8583
add rdx, 0x27
mov rbx, qword [rbx - 8]
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1401c8ee4
mov rcx, rbx
call fcn.1401a68e0
nop
mov rdx, qword [rbp + 0xf8]
cmp rdx, 0x10
jb 0x1401c85cd
inc rdx
mov rcx, qword [rbp + 0xe0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1401c85c8
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1401c8eeb
call fcn.1401a68e0
xor r13d, r13d
mov qword [rbp + 0xf0], r13
mov ebx, 0xf
mov qword [rbp + 0xf8], rbx
mov byte [rbp + 0xe0], r13b
mov rdx, qword [rbp + 0x98]
cmp rdx, 0x10
jb 0x1401c862b
inc rdx
mov rcx, qword [rbp + 0x80]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1401c8626
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1401c8ef2
call fcn.1401a68e0
mov qword [rbp + 0x90], r13
mov qword [rbp + 0x98], rbx
mov byte [rbp + 0x80], 0
lea rcx, [rbp + 0x100]
call fcn.140023380
mov dword [rsp + 0x20], r13d
xor r9d, r9d
lea r8, [0x1403537a0]
lea rdx, [rbp + 0x550]
mov rbx, qword [rsp + 0x50]
mov rcx, rbx
call fcn.1401f1010
mov rax, qword [rbp - 0x70]
test rax, rax
jne 0x1401c8768
mov qword [rbp + 0x140], r13
mov byte [rbp + 0x148], al
mov r8, qword [rbp + 0x70]
test r8, r8
je 0x1401c86cd
cmp r8, 0x3ff
ja 0x1401c870e
mov qword [rbp + 0x140], r8
lea rdx, [rbp + 0x60]
cmp qword [rbp + 0x78], 0x10
cmovae rdx, qword [rbp + 0x60]
lea rcx, [rbp + 0x148]
call sub.VCRUNTIME140.dll_memcpy
mov rax, qword [rbp + 0x140]
mov byte [rbp + rax + 0x148], 0
jmp 0x1401c870e
call fcn.1400f2ee0
lea rdx, str.Texture_file_name_has_zero_length._Using_default_name
mov rcx, rax
call fcn.1400f2f30
mov qword [rbp + 0x140], 0x11
movups xmm0, xmmword [str.dummy_texture.bmp]
movups xmmword [rbp + 0x148], xmm0
movzx eax, byte [0x140380da0]
mov byte [rbp + 0x158], al
mov byte [rbp + 0x159], 0
mov dword [rsp + 0x20], r13d
mov r9d, 1
lea r8, str._tex.file
lea rdx, [rbp + 0x140]
mov rcx, rbx
call fcn.1401f1010
mov dword [rsp + 0x70], 4
mov dword [rsp + 0x30], 4
mov dword [rsp + 0x28], r13d
mov dword [rsp + 0x20], 1
lea r9, str._tex.flags
mov r8d, 4
lea rdx, [rsp + 0x70]
mov rcx, rbx
call fcn.1401f0e30
jmp 0x1401c8773
mov rdx, rax
mov rcx, rbx
call fcn.1401c7110
mov edx, dword [rsp + 0x60]
mov rax, qword [rbp - 0x80]
mov rax, qword [rax + 0x28]
mov qword [rax + rdx*8], rbx
mov eax, edx
inc edx
mov dword [rsp + 0x60], edx
mov rdx, qword [rbp - 0x50]
mov dword [rdx + 0xe8], eax
mov dword [rdx], 4
mov r8, qword [rsp + 0x58]
mov eax, dword [r8 + 0x54]
lea ecx, [rax + rax*2]
mov dword [rdx + 4], ecx
mov eax, dword [r8 + 0x54]
mov dword [rdx + 8], eax
mov r13d, dword [r8 + 0x54]
mov qword [rbp + 0x50], r13
mov eax, 0x10
mul r13
mov rcx, 0xffffffffffffffff
cmovo rax, rcx
add rax, 8
cmovb rax, rcx
mov rcx, rax
call fcn.1401a68d0
mov qword [rbp + 0x28], rax
mov qword [rax], r13
lea rbx, [rax + 8]
lea rax, [0x140023630]
mov qword [rsp + 0x20], rax
lea r9, [0x1400232c0]
mov r8d, r13d
mov edx, 0x10
mov rcx, rbx
call fcn.14032b670
nop
mov r13, qword [rbp - 0x50]
mov qword [r13 + 0xd0], rbx
mov ebx, dword [r13 + 4]
mov qword [rsp + 0x50], rbx
mov eax, 0xc
mul rbx
mov rcx, 0xffffffffffffffff
cmovo rax, rcx
mov rcx, rax
call fcn.1401a68d0
mov qword [rsp + 0x50], rax
test rbx, rbx
je 0x1401c8860
lea rcx, [rax + 8]
xor edx, edx
nop word [rax + rax]
mov qword [rcx - 8], rdx
mov dword [rcx], edx
lea rcx, [rcx + 0xc]
sub rbx, 1
jne 0x1401c8850
mov qword [r13 + 0x18], rax
mov ebx, dword [r13 + 4]
mov qword [rsp + 0x50], rbx
mov eax, 0xc
mul rbx
mov rcx, 0xffffffffffffffff
cmovo rax, rcx
mov rcx, rax
call fcn.1401a68d0
mov qword [rsp + 0x50], rax
test rbx, rbx
je 0x1401c88b0
lea rcx, [rax + 8]
xor edx, edx
nop dword [rax + rax]
mov qword [rcx - 8], rdx
mov dword [rcx], edx
lea rcx, [rcx + 0xc]
sub rbx, 1
jne 0x1401c88a0
mov qword [r13 + 0x10], rax
mov ebx, dword [r13 + 4]
mov qword [rsp + 0x50], rbx
mov eax, 0xc
mul rbx
mov rcx, 0xffffffffffffffff
cmovo rax, rcx
mov rcx, rax
call fcn.1401a68d0
mov qword [rsp + 0x50], rax
xor edx, edx
test rbx, rbx
je 0x1401c8900
lea rcx, [rax + 8]
nop dword [rax + rax]
mov qword [rcx - 8], rdx
mov dword [rcx], edx
lea rcx, [rcx + 0xc]
sub rbx, 1
jne 0x1401c88f0
mov qword [r13 + 0x70], rax
mov dword [r13 + 0xb0], 2
mov ebx, edx
mov dword [rsp + 0x78], edx
mov r13d, edx
mov dword [rsp + 0x68], edx
mov rax, qword [rsp + 0x58]
cmp dword [rax + 0x54], 0
jbe 0x1401c8b2e
nop dword [rax + rax]
mov ecx, 0xc
call fcn.1401a68d0
mov r8d, r13d
shl r8, 4
mov qword [rsp + 0x50], r8
mov r10, qword [rbp - 0x50]
mov rcx, qword [r10 + 0xd0]
mov qword [r8 + rcx + 8], rax
mov rax, qword [r10 + 0xd0]
mov dword [r8 + rax], 3
mov dword [rbp - 0x68], 0
xor edx, edx
mov qword [rbp - 0x48], rdx
nop dword [rax]
nop word [rax + rax]
mov rax, qword [r10 + 0xd0]
mov rcx, qword [r8 + rax + 8]
mov dword [rdx + rcx], ebx
mov eax, ebx
lea rcx, [rax + rax*2]
mov qword [rbp - 0x10], rcx
mov r8, qword [r10 + 0x10]
mov rax, qword [rbp - 8]
mov eax, dword [rdx + rax]
mov rdx, qword [rsp + 0x58]
cmp eax, dword [rdx + 0x50]
jae 0x1401c9375
mov r13d, eax
mov rdx, qword [rbp + 0x48]
movsx eax, word [rdx + rax*8]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm10
movss dword [r8 + rcx*4], xmm0
movsx eax, word [rdx + r13*8 + 2]
movd xmm1, eax
cvtdq2ps xmm1, xmm1
mulss xmm1, xmm10
movss dword [r8 + rcx*4 + 4], xmm1
movsx eax, word [rdx + r13*8 + 4]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm10
movss dword [r8 + rcx*4 + 8], xmm0
mov rbx, qword [r10 + 0x18]
movzx ecx, word [rdx + r13*8 + 6]
movzx eax, cx
shr ax, 8
movzx eax, ax
movd xmm8, eax
cvtdq2ps xmm8, xmm8
mulss xmm8, xmm11
mov eax, 0xff
and cx, ax
movzx eax, cx
movd xmm9, eax
cvtdq2ps xmm9, xmm9
mulss xmm9, xmm11
movaps xmm0, xmm8
call sub.api_ms_win_crt_math_l1_1_0.dll_cosf
movaps xmm6, xmm0
movaps xmm0, xmm9
call sub.api_ms_win_crt_math_l1_1_0.dll_sinf
movaps xmm7, xmm0
movaps xmm1, xmm0
mulss xmm1, xmm6
mov rax, qword [rbp - 0x10]
movss dword [rbx + rax*4], xmm1
movaps xmm0, xmm8
call sub.api_ms_win_crt_math_l1_1_0.dll_sinf
mulss xmm7, xmm0
mov rax, qword [rbp - 0x10]
movss dword [rbx + rax*4 + 4], xmm7
movaps xmm0, xmm9
call sub.api_ms_win_crt_math_l1_1_0.dll_cosf
mov rdx, qword [rbp - 0x10]
movss dword [rbx + rdx*4 + 8], xmm0
mov r10, qword [rbp - 0x50]
mov rcx, qword [r10 + 0x70]
mov r8, qword [rbp + 0x30]
mov eax, dword [r8 + r13*8]
mov dword [rcx + rdx*4], eax
movaps xmm0, xmm12
subss xmm0, dword [r8 + r13*8 + 4]
mov rax, qword [r10 + 0x70]
movss dword [rax + rdx*4 + 4], xmm0
mov r9d, dword [rbp - 0x68]
inc r9d
mov dword [rbp - 0x68], r9d
mov rdx, qword [rbp - 0x48]
add rdx, 4
mov qword [rbp - 0x48], rdx
mov ebx, dword [rsp + 0x78]
inc ebx
mov dword [rsp + 0x78], ebx
cmp r9d, 3
mov r8, qword [rsp + 0x50]
jb 0x1401c8980
mov rax, qword [rbp - 0x70]
test rax, rax
je 0x1401c8af5
cmp dword [rax + 0x20], 1
jne 0x1401c8b0d
mov rax, qword [r10 + 0xd0]
mov rdx, qword [r8 + rax + 8]
mov ecx, dword [rdx + 8]
mov eax, dword [rdx + 4]
mov dword [rdx + 8], eax
mov dword [rdx + 4], ecx
add qword [rbp - 8], 0xc
mov r13d, dword [rsp + 0x68]
inc r13d
mov dword [rsp + 0x68], r13d
mov rax, qword [rsp + 0x58]
cmp r13d, dword [rax + 0x54]
jb 0x1401c8930
mov r13, qword [rsp + 0x58]
movsxd rax, dword [r13 + 0x68]
add r13, rax
mov qword [rsp + 0x58], r13
mov rdx, qword [rbp + 0x78]
cmp rdx, 0x10
jb 0x1401c8b7a
inc rdx
mov rcx, qword [rbp + 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1401c8b75
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1401c8ef9
call fcn.1401a68e0
mov qword [rbp + 0x70], 0
mov eax, 0xf
mov qword [rbp + 0x78], rax
mov byte [rbp + 0x60], 0
mov rdx, qword [rbp + 0xd8]
cmp rdx, 0x10
jb 0x1401c8bd0
inc rdx
mov rcx, qword [rbp + 0xc0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1401c8bcb
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1401c8f00
call fcn.1401a68e0
mov rbx, qword [rbp - 0x80]
mov eax, dword [rbp - 0x64]
test eax, eax
jne 0x1401c79d0
mov r14d, dword [rsp + 0x44]
call fcn.1400f2f10
test al, al
jne 0x1401c8df3
mov rcx, qword [rbp - 0x40]
mov rbx, qword [rcx]
cmp rbx, rcx
je 0x1401c8df3
movzx edi, byte [rsp + 0x40]
cmp byte [rbx + 0x50], 0
jne 0x1401c8ddf
call fcn.1400f2ee0
mov r15, rax
lea r14, [rbx + 0x30]
mov rdx, qword [rbx + 0x20]
movabs rax, 0x7fffffffffffffff
sub rax, rdx
cmp rax, 0x1a
jb 0x1401c9220
lea rcx, [rbx + 0x10]
cmp qword [rbx + 0x28], 0x10
jb 0x1401c8c46
mov rcx, qword [rbx + 0x10]
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], 0x1a
lea r9, str.MD3:_Failed_to_match_skin
lea r8, [rbx + 0x10]
movzx edx, dil
lea rcx, [rbp + 0x100]
call fcn.140029020
mov esi, dword [rsp + 0x44]
bts esi, 0xd
mov r8d, 0xc
lea rdx, str._to_surface
lea rcx, [rbp + 0x100]
call fcn.14002d730
xor r13d, r13d
mov qword [rbp + 0xd0], r13
mov qword [rbp + 0xd8], r13
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0xc0], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0xd0], xmm1
mov qword [rax + 0x10], r13
mov qword [rax + 0x18], 0xf
mov byte [rax], r13b
bts esi, 0xe
mov r8, qword [r14 + 0x10]
cmp qword [r14 + 0x18], 0x10
jb 0x1401c8cdc
mov r14, qword [r14]
mov rdx, r14
lea rcx, [rbp + 0xc0]
call fcn.14002d730
mov qword [rbp + 0x70], r13
mov qword [rbp + 0x78], r13
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0x60], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0x70], xmm1
mov qword [rax + 0x10], r13
mov r14d, 0xf
mov qword [rax + 0x18], r14
mov byte [rax], 0
bts esi, 0xf
mov dword [rsp + 0x44], esi
lea rdx, [rbp + 0x60]
cmp qword [rbp + 0x78], 0x10
cmovae rdx, qword [rbp + 0x60]
mov rcx, r15
call fcn.1400f2ec0
nop
mov rdx, qword [rbp + 0x78]
cmp rdx, 0x10
jb 0x1401c8d6d
inc rdx
mov rcx, qword [rbp + 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1401c8d68
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1401c8f07
call fcn.1401a68e0
mov qword [rbp + 0x70], r13
mov qword [rbp + 0x78], r14
mov byte [rbp + 0x60], 0
mov rdx, qword [rbp + 0xd8]
cmp rdx, 0x10
jb 0x1401c8dba
inc rdx
mov rcx, qword [rbp + 0xc0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1401c8db5
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1401c8f0e
call fcn.1401a68e0
mov qword [rbp + 0xd0], r13
mov qword [rbp + 0xd8], r14
mov byte [rbp + 0xc0], 0
lea rcx, [rbp + 0x100]
call fcn.140023380
mov rcx, qword [rbp - 0x40]
mov rax, qword [rbx]
mov rbx, rax
cmp rax, rcx
jne 0x1401c8c06
mov r14d, dword [rsp + 0x44]
mov r13, qword [rbp - 0x80]
cmp dword [r13 + 0x10], 0
je 0x1401c9328
mov eax, dword [rsp + 0x60]
mov dword [r13 + 0x20], eax
mov ecx, 0x478
call fcn.14032af80
mov rbx, rax
mov qword [rbp + 0x28], rax
mov qword [rbp + 0xd0], 0
mov eax, 0xf
mov qword [rbp + 0xd8], rax
mov byte [rbp + 0xc0], 0
lea r8d, [rax - 6]
lea rdx, str._MD3Root_
lea rcx, [rbp + 0xc0]
call fcn.140028740
nop
or r14d, 1
mov dword [rsp + 0x70], r14d
lea rdx, [rbp + 0xc0]
mov rcx, rbx
call fcn.140313ce0
nop
mov qword [r13 + 8], rax
test r14b, 1
je 0x1401c8f1e
mov rdx, qword [rbp + 0xd8]
cmp rdx, 0x10
jb 0x1401c8f1e
inc rdx
mov rcx, qword [rbp + 0xc0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1401c8f15
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1401c8f15
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
movsxd rax, dword [r13 + 0x68]
add r13, rax
mov qword [rsp + 0x58], r13
dec dword [rbx + 0x10]
jmp 0x1401c8bd4
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call fcn.1401a68e0
mov rax, qword [r13 + 8]
mov ecx, dword [r13 + 0x10]
mov dword [rax + 0x460], ecx
mov ecx, dword [r13 + 0x10]
mov eax, 4
mul rcx
mov rbx, 0xffffffffffffffff
cmovo rax, rbx
mov rcx, rax
call fcn.1401a68d0
mov rcx, qword [r13 + 8]
mov qword [rcx + 0x468], rax
mov r15, qword [rbp - 0x78]
mov rcx, qword [r15 + 0x80]
mov edx, dword [rcx + 0x50]
test edx, edx
je 0x1401c90d2
mov rcx, qword [r13 + 8]
mov dword [rcx + 0x450], edx
mov rcx, qword [r15 + 0x80]
mov edx, dword [rcx + 0x50]
mov eax, 8
mul rdx
cmovo rax, rbx
mov rcx, rax
call fcn.1401a68d0
mov rcx, qword [r13 + 8]
mov qword [rcx + 0x458], rax
xor r14d, r14d
mov rax, qword [r15 + 0x80]
cmp dword [rax + 0x50], r14d
jbe 0x1401c90d2
mov rsi, qword [rbp + 0x38]
add rsi, 0x44
mov r12, rbx
nop word [rax + rax]
mov ecx, 0x478
call fcn.14032af80
mov qword [rbp + 0x28], rax
mov rcx, rax
call fcn.140313da0
mov rdi, rax
mov rcx, qword [r13 + 8]
mov rdx, qword [rcx + 0x458]
mov qword [rdx + r14*8], rax
lea rdx, [rsi - 0x44]
mov rbx, r12
nop
inc rbx
cmp byte [rdx + rbx], 0
jne 0x1401c8ff0
cmp rbx, 0x3ff
ja 0x1401c9016
mov qword [rax], rbx
lea rcx, [rax + 8]
mov r8, rbx
call sub.VCRUNTIME140.dll_memcpy
mov byte [rdi + rbx + 8], 0
mov rax, qword [r13 + 8]
mov qword [rdi + 0x448], rax
mov eax, dword [rsi - 4]
mov dword [rdi + 0x414], eax
mov eax, dword [rsi]
mov dword [rdi + 0x424], eax
mov eax, dword [rsi + 4]
mov dword [rdi + 0x434], eax
xor r9d, r9d
lea r10, [rsi + 8]
lea r11d, [r9 + 3]
nop word [rax + rax]
xor ecx, ecx
mov r8, r10
movss xmm0, dword [r8]
mov eax, ecx
test ecx, ecx
je 0x1401c906f
sub eax, 1
je 0x1401c9089
sub eax, 1
je 0x1401c909e
cmp eax, 1
je 0x1401c9092
lea rax, [rdi + 0x408]
movss dword [r9 + rax], xmm0
inc ecx
add r8, 4
cmp ecx, 3
jae 0x1401c90a8
jmp 0x1401c9055
lea rax, [rdi + 0x418]
jmp 0x1401c9076
movss dword [r9 + rdi + 0x438], xmm0
jmp 0x1401c90a8
movss dword [r9 + rdi + 0x428], xmm0
add r9, 4
add r10, 0xc
sub r11, 1
jne 0x1401c9050
inc r14d
add rsi, 0x70
mov rax, qword [r15 + 0x80]
cmp r14d, dword [rax + 0x50]
jb 0x1401c8fc0
mov r12, qword [rbp + 0x40]
xor r8d, r8d
cmp dword [r13 + 0x10], r8d
jbe 0x1401c90f8
nop dword [rax + rax]
mov rax, qword [r13 + 8]
mov rcx, qword [rax + 0x468]
mov dword [rcx + r8*4], r8d
inc r8d
cmp r8d, dword [r13 + 0x10]
jb 0x1401c90e0
movaps xmm0, xmmword [0x140354540]
movaps xmm1, xmmword [0x140354570]
movaps xmm2, xmmword [0x140354560]
movaps xmm3, xmmword [0x140354580]
mov rax, qword [r13 + 8]
movups xmmword [rax + 0x408], xmm0
movups xmmword [rax + 0x418], xmm1
movups xmmword [rax + 0x428], xmm2
movups xmmword [rax + 0x438], xmm3
mov rcx, qword [rbp - 0x60]
mov rax, qword [rcx + 8]
mov qword [rax], 0
mov rdi, qword [rcx]
test rdi, rdi
je 0x1401c9171
nop dword [rax + rax]
mov rbx, qword [rdi]
lea rcx, [rdi + 0x10]
call fcn.1401c6de0
mov edx, 0x48
mov rcx, rdi
call fcn.1401a68e0
mov rdi, rbx
test rbx, rbx
jne 0x1401c9150
mov edx, 0x48
mov rcx, qword [rbp - 0x60]
call fcn.1401a68e0
nop
lea rcx, [rbp - 0x40]
call fcn.1401c6b90
nop
mov rcx, qword [rbp]
test rcx, rcx
je 0x1401c91c8
mov rdx, qword [rbp + 0x18]
sub rdx, rcx
mov rax, rcx
cmp rdx, 0x1000
jb 0x1401c91c2
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1401c91c2
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1401a68e0
nop
mov rax, qword [r12]
mov edx, 1
mov rcx, r12
call qword [rax]
mov rcx, qword [rbp + 0x960]
xor rcx, rsp
call fcn.14032b620
lea r11, [rsp + 0xae8]
movaps xmm6, xmmword [r11 - 0x18]
movaps xmm7, xmmword [r11 - 0x28]
movaps xmm8, xmmword [r11 - 0x38]
movaps xmm9, xmmword [r11 - 0x48]
movaps xmm10, xmmword [r11 - 0x58]
movaps xmm11, xmmword [r11 - 0x68]
movaps xmm12, xmmword [r11 - 0x78]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
call fcn.140028540
nop
call fcn.1400072b0
int3
call fcn.140073a30
int3
call fcn.140028540
nop
mov r8, r15
lea rdx, str.Failed_to_open_MD3_file
lea rcx, [rbp + 0x100]
call fcn.140028c30
nop
lea r8, [0x1403552bc]
mov rdx, rax
lea rcx, [rbp + 0x120]
call fcn.140028aa0
nop
mov rdx, rax
lea rcx, [rbp + 8]
call fcn.140022450
lea rdx, [0x1404167f0]
lea rcx, [rbp + 8]
call sub.VCRUNTIME140.dll__CxxThrowException
nop
lea rdx, str.MD3_File_is_too_small.
lea rcx, [rbp + 0x100]
call fcn.1400223b0
nop
lea rdx, [rbp + 0x100]
lea rcx, [rbp + 8]
call fcn.140022450
lea rdx, [0x1404167f0]
lea rcx, [rbp + 8]
call sub.VCRUNTIME140.dll__CxxThrowException
nop
call fcn.1400072b0
nop
lea rdx, str.MD3:_No_surfaces
lea rcx, [rbp + 0x100]
call fcn.1400223b0
nop
lea rdx, [rbp + 0x100]
lea rcx, [rbp - 0x30]
call fcn.140022450
lea rdx, [0x1404167f0]
lea rcx, [rbp - 0x30]
call sub.VCRUNTIME140.dll__CxxThrowException
nop
lea rdx, str.MD3:_Too_many_surfaces__would_run_out_of_memory
lea rcx, [rbp + 0x100]
call fcn.1400223b0
nop
lea rdx, [rbp + 0x100]
lea rcx, [rbp - 0x30]
call fcn.140022450
lea rdx, [0x1404167f0]
lea rcx, [rbp - 0x30]
call sub.VCRUNTIME140.dll__CxxThrowException
nop
lea rdx, str.MD3:_File_contains_no_valid_mesh
lea rcx, [rbp + 0x100]
call fcn.1400223b0
nop
lea rdx, [rbp + 0x100]
lea rcx, [rbp + 0xe0]
call fcn.140022450
lea rdx, [0x1404167f0]
lea rcx, [rbp + 0xe0]
call sub.VCRUNTIME140.dll__CxxThrowException
nop
call fcn.140028540
nop
call fcn.140028540
int3
call fcn.140028540
nop
lea rdx, str.MD3:_Invalid_vertex_index
lea rcx, [rbp + 0x100]
call fcn.1400223b0
nop
lea rdx, [rbp + 0x100]
lea rcx, [rbp + 0xe0]
call fcn.140022450
lea rdx, [0x1404167f0]
lea rcx, [rbp + 0xe0]
call sub.VCRUNTIME140.dll__CxxThrowException
nop
call fcn.140028540
nop
lea rdx, str.Invalid_MD3_surface_header:_some_offsets_are_outside_the_file
lea rcx, [rbp + 0x100]
call fcn.1400223b0
nop
lea rdx, [rbp + 0x100]
lea rcx, [rbp + 0xe0]
call fcn.140022450
lea rdx, [0x1404167f0]
lea rcx, [rbp + 0xe0]
call sub.VCRUNTIME140.dll__CxxThrowException
int3