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

Disassembly:
mov r8, qword [rcx + 0x10]
mov rdx, qword [rcx + 8]
lea rcx, vtable.CCampathDrawer.0
jmp 0x18003fa10
mov rax, rsp
mov qword [rax + 0x18], r8
mov qword [rax + 0x10], rdx
push rbp
push rbx
push rdi
push r12
push r13
push r15
lea rbp, [rax - 0x238]
sub rsp, 0x308
cmp qword [rcx + 0x70], 0
mov r12, r8
mov r13, rdx
mov r15, rcx
je 0x180040cdb
mov rcx, qword [rcx + 0x78]
test rcx, rcx
je 0x180040cdb
cmp qword [r15 + 0x120], 0
je 0x180040cdb
cmp qword [r15 + 0x110], 0
je 0x180040cdb
cmp qword [r15 + 0x160], 0
je 0x180040cdb
cmp qword [r15 + 0x158], 0
je 0x180040cdb
cmp qword [r15 + 0xe0], 0
je 0x180040cdb
cmp qword [r15 + 0xe8], 0
je 0x180040cdb
cmp qword [r15 + 0xa0], 0
je 0x180040cdb
cmp qword [r15 + 0xa8], 0
je 0x180040cdb
cmp qword [r15 + 0xb0], 0
je 0x180040cdb
cmp qword [r15 + 0xb8], 0
je 0x180040cdb
cmp qword [r15 + 0xc0], 0
je 0x180040cdb
cmp qword [r15 + 0xc8], 0
je 0x180040cdb
cmp qword [r15 + 0xd0], 0
je 0x180040cdb
cmp qword [r15 + 0xd8], 0
je 0x180040cdb
cmp qword [r15 + 0x80], 0
je 0x180040cdb
lea r8, [r15 + 0x90]
cmp qword [r8], 0
je 0x180040cdb
cmp qword [r15 + 0x88], 0
je 0x180040cdb
mov r9, qword [r15 + 0x98]
mov edx, 1
mov qword [rax - 0x38], rsi
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 esi, dword [r13 + 0xc]
mov edi, 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 esi, esi
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 [0x18004f8e8]
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 + 0x14], xmm0
movsd xmm0, qword [r13 + 0x68]
cvtpd2ps xmm0, xmm0
movss dword [rbp + 0x18], 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 0x18003fd0c
movd xmm0, esi
movaps xmm7, xmm6
cvtdq2ps xmm0, xmm0
divss xmm7, xmm0
jmp 0x18003fd0f
xorps xmm7, xmm7
test edi, edi
je 0x18003fd20
movd xmm0, edi
cvtdq2ps xmm0, xmm0
divss xmm6, xmm0
jmp 0x18003fd23
xorps xmm6, xmm6
mov rcx, qword [r15 + 0x78]
lea rdx, [rsp + 0x78]
mov qword [rsp + 0x28], rdx
xor edi, edi
mov rdx, qword [r15 + 0xe0]
xor r8d, r8d
mov dword [rsp + 0x20], edi
mov rax, qword [rcx]
lea r9d, [rdi + 4]
call qword [rax + 0x70]
test eax, eax
js 0x18003fecf
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 + 0x14]
movss dword [rax + 0x40], xmm1
mov rax, qword [rsp + 0x78]
movss xmm1, dword [rbp + 0x18]
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], edi
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], edi
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], edi
mov rax, qword [rsp + 0x78]
mov dword [rax + 0x6c], edi
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], dil
movsd xmm10, qword [r13]
movsd qword [rbp - 0x10], xmm10
movss dword [rsp + 0x70], xmm6
jp 0x18003ff14
je 0x18004034c
cmp qword [r15 + 0x150], rdi
je 0x18004034c
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 [r12 + 8]
mov ecx, edi
mov dword [rbp - 0x70], ecx
mov rbx, qword [rax]
mov qword [rbp - 0x68], rbx
cmp rbx, rax
je 0x180040344
movss xmm2, dword [0x180056a94]
mov r12d, edi
mov edx, ecx
test ecx, ecx
jle 0x18003ffe7
mov eax, 0xcccccccd
inc r12d
mul edx
shr edx, 3
test edx, edx
jg 0x18003ffd0
cmp r12d, 1
jge 0x18003ffed
mov r12d, 1
movups xmm0, xmmword [rbx + 0x18]
mov dword [rbp + 0x258], ecx
mov ecx, edi
movups xmm1, xmmword [rbx + 0x28]
movaps xmmword [rbp - 0x60], xmm0
movaps xmm14, xmm6
movups xmm0, xmmword [rbx + 0x38]
mulss xmm14, dword [0x180056ae4]
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 [0x180056a8c]
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 [0x180056a88]
addsd xmm1, qword [rbp - 0x60]
addsd xmm3, xmm0
movaps xmm0, xmm7
mulsd xmm0, qword [r13 + 0xa8]
movaps xmm10, xmm13
addss xmm10, dword [0x180056a90]
addsd xmm2, xmm0
movaps xmm0, xmm7
mulsd xmm0, qword [r13 + 0xa0]
addsd xmm1, xmm0
call fcn.180008750
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.180008750
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.180008750
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.180008750
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.18003e0b0
mov ecx, dword [rbp + 0x258]
movss xmm2, dword [0x180056a94]
cmp ecx, r12d
jl 0x180040040
mov rbx, qword [rbp - 0x68]
mov edi, 0
mov ecx, dword [rbp - 0x70]
mov r12, 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 [r12 + 8]
jne 0x18003ffc7
movsd xmm10, qword [rbp - 0x10]
mov rcx, r15
call fcn.18003dfc0
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 [r12 + 0x10], 2
mov esi, 0xff
movsd xmm13, qword [0x18004ef80]
mov edi, 0x80000000
movsd xmm6, qword [0x18004ef00]
xorps xmm14, xmm14
movsd xmm9, qword [0x180056ac8]
movsd xmm15, qword [0x180056ab8]
movsd xmm12, qword [0x18004ef10]
movsd xmm11, qword [0x180056ab0]
jb 0x180040884
cmp byte [r12 + 4], 0
je 0x180040884
movss xmm1, dword [0x180056ae0]
mov rcx, r15
call fcn.180041230
mov byte [r15 + 0x118], 1
lea rcx, [rbp + 0x30]
mov rbx, qword [r12 + 0x18]
xor dil, dil
mov byte [rbp + 0x258], dil
xor r13b, r13b
mov rbx, qword [rbx]
call fcn.18001a690
lea rcx, [rbp - 0x60]
call fcn.18001a690
lea rcx, [rbp + 0x80]
call fcn.18001a690
movsd xmm11, qword [rbp + 0x240]
test r13b, r13b
je 0x1800404e0
movaps xmm0, xmmword [rbp - 0x60]
mov dil, 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], dil
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 0x180040513
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 [r12 + 0x18]
je 0x180040561
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 0x180040588
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 dil, dil
jne 0x1800405a2
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 0x18004060d
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, esi
sub eax, edx
test cl, cl
cmovne edx, eax
mulsd xmm0, xmm15
cvttsd2si eax, xmm0
movzx r14d, al
shl r14d, 0x18
add r14d, 0x80000000
movzx eax, dl
shl eax, 0x10
or r14d, eax
mov eax, 0xff00
test cl, cl
cmovne eax, esi
jmp 0x180040697
comisd xmm12, xmm2
jbe 0x180040677
movzx edx, byte [rbp - 0x20]
subsd xmm2, xmm6
movaps xmm1, xmm6
mov r14d, 0xff00
subsd xmm1, xmm2
movaps xmm0, xmm1
mulsd xmm1, qword [0x180056ab0]
mulsd xmm0, xmm9
cvttsd2si eax, xmm0
movzx ecx, al
mov eax, esi
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, esi
jmp 0x180040697
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.180008750
movsd xmm3, qword [rbp - 0x50]
lea rcx, [rbp + 0x118]
movsd xmm2, qword [rbp - 0x58]
movsd xmm1, qword [rbp - 0x60]
mov qword [rbp - 0x10], rax
call fcn.180008750
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.180008750
mov ecx, dword [r15 + 0x130]
mov rdi, rax
add ecx, 2
mov qword [rbp - 0x68], rax
cmp ecx, 0xc8
jbe 0x180040720
mov rcx, r15
call fcn.18003dc10
cmp qword [r15 + 0x138], 0
mov eax, dword [r15 + 0x130]
mov dword [rsp + 0x70], eax
jne 0x180040745
mov rcx, r15
call fcn.18003f680
test al, al
je 0x180040852
mov eax, dword [r15 + 0x130]
imul r12, rax, 0x34
add r12, qword [r15 + 0x138]
cmp dword [rsp + 0x70], 0
jne 0x1800407c8
cmp byte [r15 + 0x118], 0
jne 0x1800407c8
mov rdx, rsi
lea rcx, [rsp + 0x78]
call fcn.1800087b0
mov rdx, rdi
lea rcx, [rbp + 0xd0]
mov rsi, rax
call fcn.1800087b0
lea rdx, [r15 + 0xf8]
mov rdi, rax
lea rcx, [rbp + 0xe8]
call fcn.1800087b0
mov r9d, dword [r15 + 0xf4]
mov rdx, rax
mov r8, rdi
mov qword [rsp + 0x28], r12
mov rcx, r15
mov qword [rsp + 0x20], rsi
call fcn.18003ebb0
add r12, 0x68
add dword [r15 + 0x130], 2
mov rdx, qword [rbp - 0x10]
lea rcx, [rbp + 0xe8]
call fcn.1800087b0
mov rdx, qword [rbp + 0x18]
lea rcx, [rbp + 0xd0]
mov rsi, rax
call fcn.1800087b0
mov rdx, qword [rbp - 0x68]
lea rcx, [rsp + 0x78]
mov rdi, rax
call fcn.1800087b0
mov rdx, rax
mov qword [rsp + 0x28], r12
mov r9d, r14d
mov qword [rsp + 0x20], rsi
mov r8, rdi
mov rcx, r15
call fcn.18003ebb0
mov rax, qword [rbp - 0x68]
add dword [r15 + 0x130], 2
mov r12, qword [rbp + 0x250]
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
movzx edi, byte [rbp + 0x258]
mov esi, 0xff
test r13b, r13b
jne 0x18004046d
mov rcx, r15
call fcn.18003dc10
movsd xmm11, qword [0x180056ab0]
mov edi, 0x80000000
mov r13, qword [rbp + 0x248]
movss xmm7, dword [0x180056ad0]
mov rcx, r15
movaps xmm1, xmm7
call fcn.180041230
mov rax, qword [r12 + 8]
xor r14b, r14b
mov rbx, qword [rax]
cmp rbx, rax
je 0x180040b6e
movsd xmm7, qword [0x180056aa8]
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 0x18004091c
test r14b, r14b
je 0x180040913
test al, al
je 0x180040913
comisd xmm10, xmm8
jb 0x180040913
comisd xmm3, xmm10
jae 0x18004091c
mov byte [rbp + 0x240], 0
jmp 0x180040923
mov byte [rbp + 0x240], 1
movaps xmm2, xmm10
movzx r14d, al
subsd xmm2, xmm3
movaps xmm8, xmm3
andps xmm2, xmm13
comisd xmm6, xmm2
jbe 0x180040992
subsd xmm2, xmm14
mov edx, 0xff
movaps xmm0, xmm2
mulsd xmm0, xmm9
cvttsd2si eax, xmm0
movaps xmm0, xmm6
movzx ecx, al
subsd xmm0, xmm2
mov eax, esi
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, 0xff00
shl ecx, 0x18
add ecx, edi
or esi, ecx
test r14b, r14b
cmovne eax, edx
or esi, eax
jmp 0x180040a19
comisd xmm12, xmm2
jbe 0x1800409f9
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, esi
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, 0xff
jmp 0x180040a17
test r14b, r14b
mov eax, 0x4000
mov esi, 0x40ff
cmovne esi, eax
movzx eax, r14b
shl esi, 0x10
neg al
sbb ecx, ecx
movzx ecx, cx
or esi, ecx
cmp byte [r13 + 0xbc], 0
je 0x180040b29
movsd xmm1, qword [rbp - 0x60]
lea rcx, [rbp + 0xe8]
movsd xmm3, qword [rbp - 0x50]
addsd xmm1, xmm7
movsd xmm2, qword [rbp - 0x58]
call fcn.180008750
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.180008750
mov rdx, rax
mov dword [rsp + 0x20], esi
mov r9, rdi
mov r8d, esi
mov rcx, r15
call fcn.18003dce0
movsd xmm2, qword [rbp - 0x58]
lea rcx, [rbp + 0xe8]
movsd xmm3, qword [rbp - 0x50]
addsd xmm2, xmm7
movsd xmm1, qword [rbp - 0x60]
call fcn.180008750
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.180008750
mov rdx, rax
mov dword [rsp + 0x20], esi
mov r9, rdi
mov r8d, esi
mov rcx, r15
call fcn.18003dce0
movsd xmm3, qword [rbp - 0x50]
lea rcx, [rbp + 0xe8]
movsd xmm2, qword [rbp - 0x58]
addsd xmm3, xmm7
movsd xmm1, qword [rbp - 0x60]
call fcn.180008750
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.180008750
mov rdx, rax
mov dword [rsp + 0x20], esi
mov r9, rdi
mov r8d, esi
mov rcx, r15
call fcn.18003dce0
cmp byte [r13 + 0xbd], 0
je 0x180040b4e
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.18003ee00
mov rbx, qword [rbx]
mov esi, 0xff
mov edi, 0x80000000
cmp rbx, qword [r12 + 8]
jne 0x1800408c0
movss xmm7, dword [0x180056ad0]
mov rcx, r15
call fcn.18003dfc0
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]
mov rsi, qword [rsp + 0x300]
je 0x180040c80
cmp byte [r12 + 4], 0
je 0x180040c80
cmp byte [r13 + 9], 0
je 0x180040c00
mov ebx, 0x80ff00ff
mov eax, 0x8000ff00
jmp 0x180040c0a
mov ebx, 0x80ffffff
mov eax, 0x80000000
movups xmm0, xmmword [r13 + 0xc0]
cmp byte [rbp + 0x240], 0
mov rcx, r15
movups xmm2, xmmword [r13 + 0xd0]
cmovne ebx, eax
movaps xmmword [rbp + 0x30], xmm0
movaps xmm1, xmm7
movups xmm0, xmmword [r13 + 0xe0]
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.180041230
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.18003ee00
mov rcx, r15
call fcn.18003dfc0
mov rcx, qword [r15 + 0x78]
lea r8, [rbp + 0x20]
xor eax, eax
xor edx, edx
mov qword [rbp + 0x20], rax
mov rax, qword [rcx]
call qword [rax + 0x390]
mov rdx, qword [rbp + 0x20]
movaps xmm7, xmmword [rsp + 0x2d0]
test rdx, rdx
je 0x180040cf8
mov rcx, qword [r15 + 0x80]
mov r8d, 1
mov rax, qword [rcx]
call qword [rax + 0x1d0]
mov rcx, qword [rbp + 0x20]
mov rax, qword [rcx]
call qword [rax + 0x10]
add rsp, 0x308
pop r15
pop r13
pop r12
pop rdi
pop rbx
pop rbp
ret
cmp byte [0x1800671c0], 0
je 0x180040cf8
lea rcx, str.AFXERROR:_CCampathDrawer::OnEndScene:_Missing_required_dependencies._n
mov byte [0x1800671c0], 0
call qword [case.0x18002567f.0]
add rsp, 0x308
pop r15
pop r13
pop r12
pop rdi
pop rbx
pop rbp
ret