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

Disassembly:
mov r8, qword [rcx + 0x10]
mov rdx, qword [rcx + 8]
lea rcx, vtable.CCampathDrawer.0
jmp 0x18003f4a0
mov rax, rsp
mov qword [rax + 0x18], r8
mov qword [rax + 0x10], rdx
push rbp
push rbx
push rsi
push rdi
push r13
push r15
lea rbp, [rax - 0x238]
sub rsp, 0x308
cmp qword [rcx + 0x70], 0
mov rdi, r8
mov r13, rdx
mov r15, rcx
je 0x180040793
mov rcx, qword [rcx + 0x78]
test rcx, rcx
je 0x180040793
cmp qword [r15 + 0x120], 0
je 0x180040793
cmp qword [r15 + 0x110], 0
je 0x180040793
cmp qword [r15 + 0x160], 0
je 0x180040793
cmp qword [r15 + 0x158], 0
je 0x180040793
cmp qword [r15 + 0xe0], 0
je 0x180040793
cmp qword [r15 + 0xe8], 0
je 0x180040793
cmp qword [r15 + 0xa0], 0
je 0x180040793
cmp qword [r15 + 0xa8], 0
je 0x180040793
cmp qword [r15 + 0xb0], 0
je 0x180040793
cmp qword [r15 + 0xb8], 0
je 0x180040793
cmp qword [r15 + 0xc0], 0
je 0x180040793
cmp qword [r15 + 0xc8], 0
je 0x180040793
cmp qword [r15 + 0xd0], 0
je 0x180040793
cmp qword [r15 + 0xd8], 0
je 0x180040793
cmp qword [r15 + 0x80], 0
je 0x180040793
lea r8, [r15 + 0x90]
cmp qword [r8], 0
je 0x180040793
cmp qword [r15 + 0x88], 0
je 0x180040793
mov r9, qword [r15 + 0x98]
mov edx, 1
mov qword [rax - 0x38], r12
mov qword [rax - 0x40], r14
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
movaps xmmword [rax - 0xc8], xmm13
movaps xmmword [rax - 0xd8], xmm14
movaps xmmword [rax - 0xe8], xmm15
mov rax, qword [rcx]
call qword [rax + 0x108]
mov rcx, qword [r15 + 0x78]
lea r9, [r15 + 0xb0]
xor edx, edx
mov rax, qword [rcx]
lea r8d, [rdx + 1]
call qword [rax + 0x50]
mov rcx, qword [r15 + 0x78]
mov r9d, 0xffffffff
mov rdx, qword [r15 + 0xc8]
xor r8d, r8d
mov rax, qword [rcx]
call qword [rax + 0x118]
mov rcx, qword [r15 + 0x78]
mov edx, 1
mov r8, qword [r15 + 0x88]
mov r14d, dword [r13 + 0xc]
mov esi, dword [r13 + 0x10]
mov rax, qword [rcx]
call qword [rax + 0x160]
movss xmm0, dword [r13 + 0x30]
xorps xmm8, xmm8
movss xmm9, dword [r13 + 0x14]
test r14d, r14d
movss xmm10, dword [r13 + 0x18]
movss xmm11, dword [r13 + 0x1c]
movss xmm12, dword [r13 + 0x20]
movss xmm13, dword [r13 + 0x24]
movss xmm14, dword [r13 + 0x28]
movss xmm15, dword [r13 + 0x2c]
movss xmm6, dword [0x18004f898]
movss dword [rbp + 0x240], xmm0
movss xmm0, dword [r13 + 0x34]
movss dword [rbp + 0x258], xmm0
movss xmm0, dword [r13 + 0x38]
movss dword [rbp - 0x70], xmm0
movss xmm0, dword [r13 + 0x3c]
movss dword [rbp - 8], xmm0
movss xmm0, dword [r13 + 0x40]
movss dword [rbp - 4], xmm0
movss xmm0, dword [r13 + 0x44]
movss dword [rbp], xmm0
movss xmm0, dword [r13 + 0x48]
movss dword [rbp + 4], xmm0
movss xmm0, dword [r13 + 0x4c]
movss dword [rbp + 8], xmm0
movss xmm0, dword [r13 + 0x50]
movss dword [rbp + 0xc], xmm0
movsd xmm0, qword [r13 + 0x58]
cvtpd2ps xmm0, xmm0
movss dword [rbp + 0x10], xmm0
movsd xmm0, qword [r13 + 0x60]
cvtpd2ps xmm0, xmm0
movss dword [rbp + 0x18], xmm0
movsd xmm0, qword [r13 + 0x68]
cvtpd2ps xmm0, xmm0
movss dword [rbp + 0x20], xmm0
movsd xmm0, qword [r13 + 0x70]
cvtpd2ps xmm0, xmm0
movss dword [rbp - 0x10], xmm0
movsd xmm0, qword [r13 + 0x78]
cvtpd2ps xmm0, xmm0
movss dword [rbp - 0x68], xmm0
movsd xmm0, qword [r13 + 0x80]
cvtpd2ps xmm0, xmm0
movss dword [rsp + 0x70], xmm0
je 0x18003f79d
movd xmm0, r14d
movaps xmm7, xmm6
cvtdq2ps xmm0, xmm0
divss xmm7, xmm0
jmp 0x18003f7a0
xorps xmm7, xmm7
test esi, esi
je 0x18003f7b1
movd xmm0, esi
cvtdq2ps xmm0, xmm0
divss xmm6, xmm0
jmp 0x18003f7b4
xorps xmm6, xmm6
mov rcx, qword [r15 + 0x78]
lea rdx, [rsp + 0x78]
mov qword [rsp + 0x28], rdx
xor esi, esi
mov rdx, qword [r15 + 0xe0]
xor r8d, r8d
mov dword [rsp + 0x20], esi
mov rax, qword [rcx]
lea r9d, [rsi + 4]
call qword [rax + 0x70]
test eax, eax
js 0x18003f960
mov rax, qword [rsp + 0x78]
xor r8d, r8d
movss xmm0, dword [rbp + 0x240]
movss xmm1, dword [rbp + 0x258]
movss dword [rax], xmm9
mov rax, qword [rsp + 0x78]
movss dword [rax + 4], xmm10
mov rax, qword [rsp + 0x78]
movss dword [rax + 8], xmm11
mov rax, qword [rsp + 0x78]
movss dword [rax + 0xc], xmm12
mov rax, qword [rsp + 0x78]
movss dword [rax + 0x10], xmm13
mov rax, qword [rsp + 0x78]
movss dword [rax + 0x14], xmm14
mov rax, qword [rsp + 0x78]
movss dword [rax + 0x18], xmm15
mov rax, qword [rsp + 0x78]
movss dword [rax + 0x1c], xmm0
mov rax, qword [rsp + 0x78]
movss xmm0, dword [rbp - 0x70]
movss dword [rax + 0x20], xmm1
mov rax, qword [rsp + 0x78]
movss xmm1, dword [rbp - 8]
movss dword [rax + 0x24], xmm0
mov rax, qword [rsp + 0x78]
movss xmm0, dword [rbp - 4]
movss dword [rax + 0x28], xmm1
mov rax, qword [rsp + 0x78]
movss xmm1, dword [rbp]
movss dword [rax + 0x2c], xmm0
mov rax, qword [rsp + 0x78]
movss xmm0, dword [rbp + 4]
movss dword [rax + 0x30], xmm1
mov rax, qword [rsp + 0x78]
movss xmm1, dword [rbp + 8]
movss dword [rax + 0x34], xmm0
mov rax, qword [rsp + 0x78]
movss xmm0, dword [rbp + 0xc]
movss dword [rax + 0x38], xmm1
mov rax, qword [rsp + 0x78]
movss xmm1, dword [rbp + 0x10]
movss dword [rax + 0x3c], xmm0
mov rax, qword [rsp + 0x78]
movss xmm0, dword [rbp + 0x18]
movss dword [rax + 0x40], xmm1
mov rax, qword [rsp + 0x78]
movss xmm1, dword [rbp + 0x20]
movss dword [rax + 0x44], xmm0
mov rax, qword [rsp + 0x78]
movss xmm0, dword [rbp - 0x10]
movss dword [rax + 0x48], xmm1
mov rax, qword [rsp + 0x78]
movss xmm1, dword [rbp - 0x68]
mov dword [rax + 0x4c], esi
mov rax, qword [rsp + 0x78]
movss dword [rax + 0x50], xmm0
mov rax, qword [rsp + 0x78]
movss xmm0, dword [rsp + 0x70]
movss dword [rax + 0x54], xmm1
mov rax, qword [rsp + 0x78]
movss dword [rax + 0x58], xmm0
mov rax, qword [rsp + 0x78]
mov dword [rax + 0x5c], esi
mov rax, qword [rsp + 0x78]
movss dword [rax + 0x60], xmm7
mov rax, qword [rsp + 0x78]
movss dword [rax + 0x64], xmm6
mov rax, qword [rsp + 0x78]
mov dword [rax + 0x68], esi
mov rax, qword [rsp + 0x78]
mov dword [rax + 0x6c], esi
mov rcx, qword [r15 + 0x78]
mov rdx, qword [r15 + 0xe0]
mov rax, qword [rcx]
call qword [rax + 0x78]
mov rcx, qword [r15 + 0x78]
lea r9, [r15 + 0xe0]
xor edx, edx
mov rax, qword [rcx]
lea r8d, [rdx + 1]
call qword [rax + 0x38]
movss xmm6, dword [r13 + 0xb8]
ucomiss xmm6, xmm8
mov byte [rbp + 0x240], sil
movsd xmm10, qword [r13]
movsd qword [rbp - 0x10], xmm10
movss dword [rsp + 0x70], xmm6
jp 0x18003f9a5
je 0x18003fddb
cmp qword [r15 + 0x150], rsi
je 0x18003fddb
mov rcx, qword [r15 + 0x78]
mov rdx, qword [r15 + 0xd0]
mov rax, qword [rcx]
call qword [rax + 0x88]
mov rcx, qword [r15 + 0x78]
xor r8d, r8d
mov rdx, qword [r15 + 0xa0]
mov rax, qword [rcx]
call qword [rax + 0x120]
mov rcx, qword [r15 + 0x78]
mov rdx, qword [r15 + 0xb8]
mov rax, qword [rcx]
call qword [rax + 0x158]
mov rcx, qword [r15 + 0x78]
xor r9d, r9d
mov rdx, qword [r15 + 0x158]
xor r8d, r8d
mov rax, qword [rcx]
call qword [rax + 0x58]
mov rcx, qword [r15 + 0x78]
xor r9d, r9d
mov rdx, qword [r15 + 0x160]
xor r8d, r8d
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rcx, qword [r15 + 0x78]
lea r9, [r15 + 0x150]
xor edx, edx
mov rax, qword [rcx]
lea r8d, [rdx + 1]
call qword [rax + 0x40]
mov rax, qword [rdi + 8]
mov ecx, esi
mov dword [rbp - 0x70], ecx
mov rbx, qword [rax]
mov qword [rbp - 0x68], rbx
cmp rbx, rax
je 0x18003fdd3
movss xmm2, dword [0x180056a34]
mov r12d, esi
mov edx, ecx
test ecx, ecx
jle 0x18003fa77
mov eax, 0xcccccccd
inc r12d
mul edx
shr edx, 3
test edx, edx
jg 0x18003fa60
cmp r12d, 1
jge 0x18003fa7d
mov r12d, 1
movups xmm0, xmmword [rbx + 0x18]
mov dword [rbp + 0x258], ecx
mov ecx, esi
movups xmm1, xmmword [rbx + 0x28]
movaps xmmword [rbp - 0x60], xmm0
movaps xmm14, xmm6
movups xmm0, xmmword [rbx + 0x38]
mulss xmm14, dword [0x180056a84]
movaps xmm15, xmm6
movaps xmmword [rbp - 0x50], xmm1
movups xmm1, xmmword [rbx + 0x48]
movaps xmmword [rbp - 0x40], xmm0
movsd xmm0, qword [rbx + 0x58]
mov ebx, dword [rbp + 0x258]
movsd qword [rbp - 0x20], xmm0
movaps xmmword [rbp - 0x30], xmm1
mulss xmm15, xmm2
nop dword [rax + rax]
xorps xmm6, xmm6
xorps xmm7, xmm7
cvtss2sd xmm7, xmm14
mov eax, 0x66666667
movaps xmm0, xmm15
xorps xmm8, xmm8
imul ebx
cvtss2sd xmm8, xmm15
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
add eax, eax
sub ebx, eax
inc ecx
mov eax, ebx
mov dword [rbp + 0x258], ecx
mov ebx, edx
cdq
and edx, 7
movd xmm1, ecx
add eax, edx
cvtdq2ps xmm1, xmm1
mov ecx, eax
and eax, 7
sar ecx, 3
sub eax, edx
shl ecx, 6
shl eax, 5
mulss xmm1, xmm14
movd xmm12, ecx
lea rcx, [rsp + 0x78]
cvtdq2ps xmm12, xmm12
addss xmm0, xmm1
movd xmm13, eax
mulss xmm12, dword [0x180056a2c]
cvtps2pd xmm9, xmm1
cvtss2sd xmm6, xmm0
movaps xmm0, xmm7
movaps xmm11, xmm12
mulsd xmm0, qword [r13 + 0xb0]
addss xmm11, xmm2
cvtdq2ps xmm13, xmm13
movaps xmm3, xmm6
movaps xmm2, xmm6
mulsd xmm3, qword [r13 + 0x98]
movaps xmm1, xmm6
mulsd xmm2, qword [r13 + 0x90]
mulsd xmm1, qword [r13 + 0x88]
addsd xmm3, qword [rbp - 0x50]
addsd xmm2, qword [rbp - 0x58]
mulss xmm13, dword [0x180056a28]
addsd xmm1, qword [rbp - 0x60]
addsd xmm3, xmm0
movaps xmm0, xmm7
mulsd xmm0, qword [r13 + 0xa8]
movaps xmm10, xmm13
addss xmm10, dword [0x180056a30]
addsd xmm2, xmm0
movaps xmm0, xmm7
mulsd xmm0, qword [r13 + 0xa0]
addsd xmm1, xmm0
call fcn.180008240
movaps xmm3, xmm6
movaps xmm2, xmm6
mulsd xmm3, qword [r13 + 0x98]
movaps xmm0, xmm8
mov r14, rax
mulsd xmm0, qword [r13 + 0xb0]
movaps xmm1, xmm8
mulsd xmm2, qword [r13 + 0x90]
addsd xmm3, qword [rbp - 0x50]
mulsd xmm6, qword [r13 + 0x88]
addsd xmm2, qword [rbp - 0x58]
mulsd xmm1, qword [r13 + 0xa0]
addsd xmm3, xmm0
movaps xmm0, xmm8
mulsd xmm0, qword [r13 + 0xa8]
addsd xmm6, qword [rbp - 0x60]
addsd xmm2, xmm0
addsd xmm1, xmm6
lea rcx, [rbp + 0x100]
call fcn.180008240
movaps xmm0, xmm7
lea rcx, [rbp + 0x118]
mulsd xmm0, qword [r13 + 0xb0]
movaps xmm3, xmm9
mov rsi, rax
mulsd xmm3, qword [r13 + 0x98]
movaps xmm2, xmm9
mulsd xmm2, qword [r13 + 0x90]
movaps xmm1, xmm9
mulsd xmm1, qword [r13 + 0x88]
addsd xmm3, qword [rbp - 0x50]
addsd xmm2, qword [rbp - 0x58]
addsd xmm1, qword [rbp - 0x60]
addsd xmm3, xmm0
movaps xmm0, xmm7
mulsd xmm0, qword [r13 + 0xa8]
mulsd xmm7, qword [r13 + 0xa0]
addsd xmm2, xmm0
addsd xmm1, xmm7
call fcn.180008240
movaps xmm3, xmm9
lea rcx, [rbp + 0x130]
mulsd xmm3, qword [r13 + 0x98]
movaps xmm2, xmm9
mov rdi, rax
mulsd xmm9, qword [r13 + 0x88]
movaps xmm0, xmm8
mulsd xmm0, qword [r13 + 0xb0]
mulsd xmm2, qword [r13 + 0x90]
addsd xmm9, qword [rbp - 0x60]
addsd xmm3, qword [rbp - 0x50]
addsd xmm2, qword [rbp - 0x58]
addsd xmm3, xmm0
movaps xmm0, xmm8
mulsd xmm8, qword [r13 + 0xa0]
mulsd xmm0, qword [r13 + 0xa8]
addsd xmm9, xmm8
addsd xmm2, xmm0
movaps xmm1, xmm9
call fcn.180008240
movss dword [rsp + 0x60], xmm11
mov rdx, rax
movss dword [rsp + 0x58], xmm10
movaps xmm3, xmm12
mov qword [rsp + 0x50], r14
movaps xmm2, xmm13
movss dword [rsp + 0x48], xmm12
mov rcx, r15
movss dword [rsp + 0x40], xmm10
mov qword [rsp + 0x38], rsi
movss dword [rsp + 0x30], xmm11
movss dword [rsp + 0x28], xmm13
mov qword [rsp + 0x20], rdi
call fcn.18003db40
mov ecx, dword [rbp + 0x258]
movss xmm2, dword [0x180056a34]
cmp ecx, r12d
jl 0x18003fad0
mov rbx, qword [rbp - 0x68]
mov esi, 0
mov ecx, dword [rbp - 0x70]
mov rdi, qword [rbp + 0x250]
inc ecx
movss xmm6, dword [rsp + 0x70]
mov rbx, qword [rbx]
mov dword [rbp - 0x70], ecx
mov qword [rbp - 0x68], rbx
cmp rbx, qword [rdi + 8]
jne 0x18003fa57
movsd xmm10, qword [rbp - 0x10]
mov rcx, r15
call fcn.18003da50
mov rcx, qword [r15 + 0x78]
mov rdx, qword [r15 + 0xd8]
mov rax, qword [rcx]
call qword [rax + 0x88]
mov rcx, qword [r15 + 0x78]
xor r8d, r8d
mov rdx, qword [r15 + 0xa8]
mov rax, qword [rcx]
call qword [rax + 0x120]
mov rcx, qword [r15 + 0x78]
mov rdx, qword [r15 + 0xc0]
mov rax, qword [rcx]
call qword [rax + 0x158]
mov rcx, qword [r15 + 0x78]
xor r9d, r9d
mov rdx, qword [r15 + 0x120]
xor r8d, r8d
mov rax, qword [rcx]
call qword [rax + 0x58]
mov rcx, qword [r15 + 0x78]
xor r9d, r9d
mov rdx, qword [r15 + 0x110]
xor r8d, r8d
mov rax, qword [rcx]
call qword [rax + 0x48]
cmp qword [rdi + 0x10], 2
mov r12d, 0xff
movsd xmm13, qword [0x18004ef30]
xorps xmm14, xmm14
movsd xmm6, qword [0x18004eeb0]
movsd xmm9, qword [0x180056a68]
movsd xmm15, qword [0x180056a58]
movsd xmm12, qword [0x18004eec0]
movsd xmm11, qword [0x180056a50]
jb 0x180040312
cmp byte [rdi + 4], 0
je 0x180040312
movss xmm1, dword [0x180056a80]
mov rcx, r15
call fcn.180040ce0
mov byte [r15 + 0x118], 1
lea rcx, [rbp + 0x30]
mov rbx, qword [rdi + 0x18]
xor sil, sil
mov byte [rbp + 0x258], sil
xor r13b, r13b
mov rbx, qword [rbx]
call fcn.18001a170
lea rcx, [rbp - 0x60]
call fcn.18001a170
lea rcx, [rbp + 0x80]
call fcn.18001a170
movsd xmm11, qword [rbp + 0x240]
test r13b, r13b
je 0x18003ff67
movaps xmm0, xmmword [rbp - 0x60]
mov sil, 1
movaps xmm1, xmmword [rbp - 0x50]
movaps xmm8, xmm11
movaps xmm2, xmmword [rbp + 0x80]
movaps xmm3, xmmword [rbp + 0x90]
movaps xmm4, xmmword [rbp + 0xa0]
movaps xmm5, xmmword [rbp + 0xb0]
movsd xmm7, qword [rbp + 0xc0]
movaps xmmword [rbp + 0x30], xmm0
movaps xmm0, xmmword [rbp - 0x40]
movaps xmmword [rbp + 0x50], xmm0
movsd xmm0, qword [rbp - 0x20]
movaps xmmword [rbp + 0x40], xmm1
movaps xmm1, xmmword [rbp - 0x30]
movsd qword [rbp + 0x70], xmm0
mov byte [rbp + 0x258], sil
movaps xmmword [rbp + 0x60], xmm1
movaps xmmword [rbp - 0x60], xmm2
movaps xmmword [rbp - 0x50], xmm3
movaps xmmword [rbp - 0x40], xmm4
movaps xmmword [rbp - 0x30], xmm5
movsd qword [rbp - 0x20], xmm7
jmp 0x18003ff9a
movups xmm2, xmmword [rbx + 0x18]
movsd xmm8, qword [rbx + 0x10]
movaps xmmword [rbp - 0x60], xmm2
movups xmm3, xmmword [rbx + 0x28]
movaps xmmword [rbp - 0x50], xmm3
movups xmm4, xmmword [rbx + 0x38]
movaps xmmword [rbp - 0x40], xmm4
movups xmm5, xmmword [rbx + 0x48]
movaps xmmword [rbp - 0x30], xmm5
movsd xmm7, qword [rbx + 0x58]
movsd qword [rbp - 0x20], xmm7
mov rbx, qword [rbx]
cmp rbx, qword [rdi + 0x18]
je 0x18003ffe7
movups xmm0, xmmword [rbx + 0x18]
mov r13b, 1
movsd xmm11, qword [rbx + 0x10]
movaps xmmword [rbp + 0x80], xmm0
movups xmm1, xmmword [rbx + 0x28]
movaps xmmword [rbp + 0x90], xmm1
movups xmm0, xmmword [rbx + 0x38]
movaps xmmword [rbp + 0xa0], xmm0
movups xmm1, xmmword [rbx + 0x48]
movaps xmmword [rbp + 0xb0], xmm1
movsd xmm0, qword [rbx + 0x58]
movsd qword [rbp + 0xc0], xmm0
mov rbx, qword [rbx]
jmp 0x18004000e
xor r13b, r13b
movaps xmmword [rbp + 0x80], xmm2
movaps xmmword [rbp + 0x90], xmm3
movaps xmmword [rbp + 0xa0], xmm4
movaps xmmword [rbp + 0xb0], xmm5
movsd qword [rbp + 0xc0], xmm7
test sil, sil
jne 0x180040028
movaps xmmword [rbp + 0x30], xmm2
movaps xmmword [rbp + 0x40], xmm3
movaps xmmword [rbp + 0x50], xmm4
movaps xmmword [rbp + 0x60], xmm5
movsd qword [rbp + 0x70], xmm7
movaps xmm2, xmm10
subsd xmm2, xmm8
andps xmm2, xmm13
comisd xmm6, xmm2
jbe 0x180040096
movzx ecx, byte [rbp - 0x20]
subsd xmm2, xmm14
movaps xmm0, xmm2
mulsd xmm0, xmm9
cvttsd2si eax, xmm0
movaps xmm0, xmm6
movzx edx, al
subsd xmm0, xmm2
mov eax, r12d
sub eax, edx
test cl, cl
cmovne edx, eax
mulsd xmm0, xmm15
cvttsd2si eax, xmm0
movzx r14d, al
mov eax, 0x80000000
shl r14d, 0x18
add r14d, eax
movzx eax, dl
shl eax, 0x10
or r14d, eax
mov eax, 0xff00
test cl, cl
cmovne eax, r12d
jmp 0x180040122
comisd xmm12, xmm2
jbe 0x180040102
movzx edx, byte [rbp - 0x20]
subsd xmm2, xmm6
movaps xmm1, xmm6
mov r14d, 0xff00
subsd xmm1, xmm2
movaps xmm0, xmm1
mulsd xmm1, qword [0x180056a50]
mulsd xmm0, xmm9
cvttsd2si eax, xmm0
movzx ecx, al
mov eax, r12d
sub eax, ecx
test dl, dl
cmovne ecx, eax
mov eax, 0
cmovne r14d, eax
movzx eax, cl
or r14d, eax
shl r14d, 8
cvttsd2si eax, xmm1
movzx ecx, al
shl ecx, 0x18
add ecx, 0x40000000
or r14d, ecx
neg dl
sbb eax, eax
and eax, r12d
jmp 0x180040122
movzx eax, byte [rbp - 0x20]
mov r14d, 0x40ff
test al, al
mov ecx, 0x4000
cmovne r14d, ecx
shl r14d, 0x10
neg al
sbb eax, eax
movzx eax, ax
movsd xmm3, qword [rbp + 0x90]
lea rcx, [rbp + 0x130]
movsd xmm2, qword [rbp + 0x88]
or r14d, eax
movsd xmm1, qword [rbp + 0x80]
call fcn.180008240
movsd xmm3, qword [rbp - 0x50]
lea rcx, [rbp + 0x118]
movsd xmm2, qword [rbp - 0x58]
movsd xmm1, qword [rbp - 0x60]
mov qword [rbp + 0x20], rax
call fcn.180008240
movsd xmm3, qword [rbp + 0x40]
lea rcx, [rbp + 0x100]
movsd xmm2, qword [rbp + 0x38]
mov rsi, rax
movsd xmm1, qword [rbp + 0x30]
mov qword [rbp + 0x18], rax
call fcn.180008240
mov ecx, dword [r15 + 0x130]
mov rdi, rax
add ecx, 2
mov qword [rbp - 0x10], rax
cmp ecx, 0xc8
jbe 0x1800401ab
mov rcx, r15
call fcn.18003d6a0
cmp qword [r15 + 0x138], 0
mov eax, dword [r15 + 0x130]
mov dword [rsp + 0x70], eax
jne 0x1800401d0
mov rcx, r15
call fcn.18003f110
test al, al
je 0x1800402e3
mov eax, dword [r15 + 0x130]
imul rax, rax, 0x34
add rax, qword [r15 + 0x138]
cmp dword [rsp + 0x70], 0
mov qword [rbp - 0x68], rax
jne 0x18004025c
cmp byte [r15 + 0x118], 0
jne 0x18004025c
mov rdx, rsi
lea rcx, [rsp + 0x78]
call fcn.1800082a0
mov rdx, rdi
lea rcx, [rbp + 0xd0]
mov rsi, rax
call fcn.1800082a0
lea rdx, [r15 + 0xf8]
mov rdi, rax
lea rcx, [rbp + 0xe8]
call fcn.1800082a0
mov r9d, dword [r15 + 0xf4]
mov rdx, rax
mov rax, qword [rbp - 0x68]
mov r8, rdi
mov qword [rsp + 0x28], rax
mov rcx, r15
mov qword [rsp + 0x20], rsi
call fcn.18003e640
add qword [rbp - 0x68], 0x68
add dword [r15 + 0x130], 2
mov rdx, qword [rbp + 0x20]
lea rcx, [rbp + 0xe8]
call fcn.1800082a0
mov rdx, qword [rbp + 0x18]
lea rcx, [rbp + 0xd0]
mov rsi, rax
call fcn.1800082a0
mov rdx, qword [rbp - 0x10]
lea rcx, [rsp + 0x78]
mov rdi, rax
call fcn.1800082a0
mov rdx, rax
mov r9d, r14d
mov rax, qword [rbp - 0x68]
mov r8, rdi
mov qword [rsp + 0x28], rax
mov rcx, r15
mov qword [rsp + 0x20], rsi
call fcn.18003e640
mov rax, qword [rbp - 0x10]
add dword [r15 + 0x130], 2
mov byte [r15 + 0x118], 0
mov dword [r15 + 0xf4], r14d
movups xmm0, xmmword [rax]
movups xmmword [r15 + 0xf8], xmm0
movsd xmm1, qword [rax + 0x10]
movsd qword [r15 + 0x108], xmm1
mov rdi, qword [rbp + 0x250]
movzx esi, byte [rbp + 0x258]
test r13b, r13b
jne 0x18003fef4
mov rcx, r15
call fcn.18003d6a0
movsd xmm11, qword [0x180056a50]
mov r13, qword [rbp + 0x248]
movss xmm7, dword [0x180056a70]
mov rcx, r15
movaps xmm1, xmm7
call fcn.180040ce0
mov rax, qword [rdi + 8]
xor r14b, r14b
mov rbx, qword [rax]
cmp rbx, rax
je 0x18004061b
movsd xmm7, qword [0x180056a48]
movsd xmm8, qword [rbp + 0x240]
nop dword [rax]
cmp byte [rbp + 0x240], 0
movups xmm0, xmmword [rbx + 0x18]
movups xmm1, xmmword [rbx + 0x28]
movsd xmm3, qword [rbx + 0x10]
movaps xmmword [rbp - 0x60], xmm0
movups xmm0, xmmword [rbx + 0x38]
movaps xmmword [rbp - 0x50], xmm1
movups xmm1, xmmword [rbx + 0x48]
movaps xmmword [rbp - 0x40], xmm0
movsd xmm0, qword [rbx + 0x58]
movsd qword [rbp - 0x20], xmm0
movzx eax, byte [rbp - 0x20]
movaps xmmword [rbp - 0x30], xmm1
jne 0x1800403ac
test r14b, r14b
je 0x1800403a3
test al, al
je 0x1800403a3
comisd xmm10, xmm8
jb 0x1800403a3
comisd xmm3, xmm10
jae 0x1800403ac
mov byte [rbp + 0x240], 0
jmp 0x1800403b3
mov byte [rbp + 0x240], 1
movaps xmm2, xmm10
movzx r14d, al
subsd xmm2, xmm3
movaps xmm8, xmm3
andps xmm2, xmm13
comisd xmm6, xmm2
jbe 0x180040435
subsd xmm2, xmm14
movaps xmm0, xmm2
mulsd xmm0, xmm9
cvttsd2si eax, xmm0
movaps xmm0, xmm6
movzx ecx, al
subsd xmm0, xmm2
mov eax, r12d
sub eax, ecx
test r14b, r14b
cmove eax, ecx
mulsd xmm0, xmm15
movzx esi, al
shl esi, 0x10
cvttsd2si eax, xmm0
movzx ecx, al
mov eax, 0x80000000
shl ecx, 0x18
add ecx, eax
movzx eax, r14b
or esi, ecx
neg al
mov eax, 0xff00
sbb ecx, ecx
and ecx, r12d
or esi, ecx
mov ecx, 0
test r14b, r14b
cmovne eax, ecx
or esi, eax
jmp 0x1800404ca
comisd xmm12, xmm2
jbe 0x18004049a
movaps xmm1, xmm6
subsd xmm2, xmm6
subsd xmm1, xmm2
movaps xmm0, xmm1
mulsd xmm1, xmm11
mulsd xmm0, xmm9
cvttsd2si eax, xmm0
movzx ecx, al
mov eax, r12d
sub eax, ecx
test r14b, r14b
cmove eax, ecx
mov ecx, 0
movzx esi, al
mov eax, 0xff00
cmovne eax, ecx
or esi, eax
shl esi, 8
cvttsd2si eax, xmm1
movzx ecx, al
movzx eax, r14b
shl ecx, 0x18
add ecx, 0x40000000
or esi, ecx
neg al
sbb ecx, ecx
and ecx, r12d
jmp 0x1800404c8
test r14b, r14b
mov eax, 0x4000
mov esi, 0x40ff
cmovne esi, eax
movzx eax, r14b
shl esi, 0x10
neg al
movzx eax, r14b
sbb ecx, ecx
and ecx, r12d
or esi, ecx
neg al
sbb ecx, ecx
and ecx, 0xff00
or esi, ecx
cmp byte [r13 + 0xbc], 0
je 0x1800405e1
movsd xmm1, qword [rbp - 0x60]
lea rcx, [rbp + 0xe8]
movsd xmm3, qword [rbp - 0x50]
addsd xmm1, xmm7
movsd xmm2, qword [rbp - 0x58]
call fcn.180008240
movsd xmm1, qword [rbp - 0x60]
lea rcx, [rbp + 0xd0]
movsd xmm3, qword [rbp - 0x50]
subsd xmm1, xmm7
movsd xmm2, qword [rbp - 0x58]
mov rdi, rax
call fcn.180008240
mov rdx, rax
mov dword [rsp + 0x20], esi
mov r9, rdi
mov r8d, esi
mov rcx, r15
call fcn.18003d770
movsd xmm2, qword [rbp - 0x58]
lea rcx, [rbp + 0xe8]
movsd xmm3, qword [rbp - 0x50]
addsd xmm2, xmm7
movsd xmm1, qword [rbp - 0x60]
call fcn.180008240
movsd xmm2, qword [rbp - 0x58]
lea rcx, [rbp + 0xd0]
movsd xmm3, qword [rbp - 0x50]
subsd xmm2, xmm7
movsd xmm1, qword [rbp - 0x60]
mov rdi, rax
call fcn.180008240
mov rdx, rax
mov dword [rsp + 0x20], esi
mov r9, rdi
mov r8d, esi
mov rcx, r15
call fcn.18003d770
movsd xmm3, qword [rbp - 0x50]
lea rcx, [rbp + 0xe8]
movsd xmm2, qword [rbp - 0x58]
addsd xmm3, xmm7
movsd xmm1, qword [rbp - 0x60]
call fcn.180008240
movsd xmm3, qword [rbp - 0x50]
lea rcx, [rbp + 0xd0]
movsd xmm2, qword [rbp - 0x58]
subsd xmm3, xmm7
movsd xmm1, qword [rbp - 0x60]
mov rdi, rax
call fcn.180008240
mov rdx, rax
mov dword [rsp + 0x20], esi
mov r9, rdi
mov r8d, esi
mov rcx, r15
call fcn.18003d770
mov rdi, qword [rbp + 0x250]
cmp byte [r13 + 0xbd], 0
je 0x180040606
mov eax, dword [r13 + 0x10]
lea rdx, [rbp - 0x60]
mov r9d, dword [r13 + 0xc]
mov r8d, esi
mov rcx, r15
mov dword [rsp + 0x20], eax
call fcn.18003e890
mov rbx, qword [rbx]
cmp rbx, qword [rdi + 8]
jne 0x180040350
movss xmm7, dword [0x180056a70]
mov rcx, r15
call fcn.18003da50
cmp byte [r13 + 8], 0
movaps xmm15, xmmword [rsp + 0x250]
movaps xmm14, xmmword [rsp + 0x260]
movaps xmm13, xmmword [rsp + 0x270]
movaps xmm12, xmmword [rsp + 0x280]
movaps xmm11, xmmword [rsp + 0x290]
movaps xmm10, xmmword [rsp + 0x2a0]
movaps xmm9, xmmword [rsp + 0x2b0]
movaps xmm8, xmmword [rsp + 0x2c0]
movaps xmm6, xmmword [rsp + 0x2e0]
mov r14, qword [rsp + 0x2f8]
je 0x180040731
cmp byte [rdi + 4], 0
je 0x180040731
cmp byte [r13 + 9], 0
movzx eax, byte [rbp + 0x240]
je 0x1800406aa
mov ebx, 0x80ff0000
mov ecx, 0x8000ff00
jmp 0x1800406b4
mov ebx, 0x80ffff00
mov ecx, 0x80000000
movups xmm0, xmmword [r13 + 0xc0]
test al, al
mov eax, 0
movups xmm2, xmmword [r13 + 0xd0]
cmovne ebx, ecx
cmovne r12d, eax
movaps xmmword [rbp + 0x30], xmm0
movaps xmm1, xmm7
movups xmm0, xmmword [r13 + 0xe0]
mov rcx, r15
or ebx, r12d
movaps xmmword [rbp + 0x40], xmm2
movups xmm2, xmmword [r13 + 0xf0]
movaps xmmword [rbp + 0x50], xmm0
movsd xmm0, qword [r13 + 0x100]
movsd qword [rbp + 0x70], xmm0
movaps xmmword [rbp + 0x60], xmm2
call fcn.180040ce0
mov eax, dword [r13 + 0x10]
lea rdx, [rbp + 0x30]
mov r9d, dword [r13 + 0xc]
mov r8d, ebx
mov rcx, r15
mov dword [rsp + 0x20], eax
call fcn.18003e890
mov rcx, r15
call fcn.18003da50
mov rcx, qword [r15 + 0x78]
lea r8, [rbp + 0x28]
xor eax, eax
xor edx, edx
mov qword [rbp + 0x28], rax
mov rax, qword [rcx]
call qword [rax + 0x390]
mov rdx, qword [rbp + 0x28]
movaps xmm7, xmmword [rsp + 0x2d0]
mov r12, qword [rsp + 0x300]
test rdx, rdx
je 0x1800407b0
mov rcx, qword [r15 + 0x80]
mov r8d, 1
mov rax, qword [rcx]
call qword [rax + 0x1d0]
mov rcx, qword [rbp + 0x28]
mov rax, qword [rcx]
call qword [rax + 0x10]
add rsp, 0x308
pop r15
pop r13
pop rdi
pop rsi
pop rbx
pop rbp
ret
cmp byte [0x1800671c0], 0
je 0x1800407b0
lea rcx, str.AFXERROR:_CCampathDrawer::OnEndScene:_Missing_required_dependencies._n
mov byte [0x1800671c0], 0
call qword [case.0x18002514f.0]
add rsp, 0x308
pop r15
pop r13
pop rdi
pop rsi
pop rbx
pop rbp
ret