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

Disassembly:
mov rax, rsp
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x888]
sub rsp, 0x948
movaps xmmword [rax - 0x58], xmm6
mov rax, qword [0x1400fe008]
xor rax, rsp
mov qword [rbp + 0x820], rax
xor r14d, r14d
mov dword [rsp + 0x6c], r9d
cmp dword [0x1401d4ee0], r14d
mov r12d, edx
mov dword [rsp + 0x68], r8d
mov r15, rcx
mov dword [rsp + 0x64], edx
mov ebx, r14d
mov qword [rbp - 0x80], rcx
je 0x1400106f2
test edx, edx
js 0x1400106f2
mov eax, edx
and eax, 0x7c000000
cmp eax, dword [0x1401d4f30]
jne 0x1400106f2
mov eax, edx
mov edx, 0x3ffff
and eax, edx
cmp eax, dword [0x1401d4f38]
jge 0x1400106f2
mov rax, qword [0x1401d4ee8]
mov ecx, r12d
and rcx, rdx
mov rsi, qword [rax + rcx*8]
mov qword [rsp + 0x78], rsi
test rsi, rsi
je 0x1400106f2
mov ecx, dword [rsi]
mov eax, r12d
shl ecx, 0x12
and eax, 0x3fc0000
cmp ecx, eax
jne 0x1400106f2
cmp dword [0x140122090], r14d
lea eax, [r14 + 1]
je 0x140010112
cmp dword [0x1401221ec], r14d
mov r13d, eax
je 0x140010115
mov r13d, r14d
mov eax, dword [rbp + 0x8d8]
lea rcx, [rbp - 0x78]
mov dword [rsp + 0x40], eax
mov rdx, r15
mov eax, dword [rbp + 0x8d0]
mov dword [rsp + 0x38], eax
mov eax, dword [rbp + 0x8c8]
mov dword [rsp + 0x30], eax
mov eax, dword [rbp + 0x8c0]
mov dword [rsp + 0x28], eax
mov eax, dword [rbp + 0x8b8]
mov dword [rsp + 0x20], eax
mov dword [rsp + 0x54], r13d
call fcn.14000fe38
mov cl, byte [rbp - 0x70]
mov r8d, 1
sub cl, r8b
cmp cl, 6
setbe r14b
test r13d, r13d
je 0x140010487
cmp qword [r15 + 0x88], rbx
je 0x140010185
mov ebx, r8d
jmp 0x140010472
mov edi, dword [r15 + 0x58]
lea rdx, [rbp - 0x60]
mov ecx, dword [rsp + 0x68]
mov dword [rsp + 0x28], r14d
mov dword [rsp + 0x20], edi
call fcn.140010828
mov ecx, dword [rsp + 0x6c]
lea rdx, [rbp - 0x20]
mov dword [rsp + 0x28], r14d
mov r13d, eax
mov dword [rsp + 0x20], edi
call fcn.140010828
mov ebx, eax
mov r8d, 1
imul ebx, r13d
cmp byte [rbp - 0x75], 0
mov dword [rsp + 0x50], ebx
je 0x1400101d7
cmp ebx, r8d
jg 0x1400106f2
and dword [rsp + 0x60], 0
cdqe
mov qword [rsp + 0x70], rax
test rax, rax
jle 0x1400102b7
mov ebx, dword [rsp + 0x60]
xor r14d, r14d
xor r15d, r15d
mov rsi, r13
and dword [rsp + 0x60], 0
lea r13, [r14 + r14]
test esi, esi
jle 0x14001028c
lea r8, [rsi + rsi]
movsxd rax, r15d
mov rcx, r8
lea rdi, [rbp + 0x620]
shr rcx, 1
lea rdx, [rbp + 0x220]
lea r12, [rax + rax]
movsx rax, word [rbp + r13 - 0x20]
add rdi, r12
add rdx, r12
rep stosw word [rdi], ax
mov rcx, r8
movsx rax, bx
shr rcx, 1
mov rdi, rdx
rep stosw word [rdi], ax
shr r8, 1
lea rdi, [rbp - 0x60]
lea rcx, [rbp + 0x420]
sub rdi, r12
add rcx, r12
lea rdx, [rbp - 0x60]
add r8, r8
call fcn.1400bea40
mov ecx, dword [rsp + 0x60]
mov rdx, rsi
mov r8d, 1
movsx eax, word [r12 + rdi]
mov word [rbp + r12 + 0x20], cx
lea r12, [r12 + 2]
add ecx, eax
sub rdx, r8
jne 0x140010275
movsx eax, word [rbp + r13 - 0x20]
add r15d, esi
add ebx, eax
add r14, r8
cmp r14, qword [rsp + 0x70]
jl 0x1400101f9
mov ebx, dword [rsp + 0x50]
mov rsi, qword [rsp + 0x78]
mov r15, qword [rbp - 0x80]
mov r12d, dword [rsp + 0x64]
cmp dword [0x1401220c0], 0
je 0x14001046d
movsxd r13, ebx
test ebx, ebx
jle 0x14001046d
xor r8d, r8d
lea eax, [r8 + 1]
movsx r9, word [rbp + r8*2 + 0x420]
movsx r10, word [rbp + r8*2 + 0x620]
cmp r9w, r10w
je 0x14001045c
mov ecx, r10d
mov edi, r9d
jge 0x1400103ab
mov eax, ecx
mov word [rbp + r8*2 + 0x620], r9w
movzx ecx, word [rbp + r8*2 + 0x220]
cdq
idiv edi
xor r11d, r11d
mov word [rsp + 0x58], cx
mov dword [rsp + 0x50], eax
lea r14d, [rax - 1]
test r14d, r14d
jle 0x140010453
movsxd rax, ebx
lea rdi, [rbp + 0x420]
movsxd rdx, r14d
lea r12d, [r11 + 1]
add rdx, rdx
mov rcx, rdx
shr rcx, 1
lea r10, [rax + rax]
add rdi, r10
mov rax, r9
rep stosw word [rdi], ax
mov rcx, rdx
lea rdi, [rbp + 0x620]
add rdi, r10
shr rcx, 1
rep stosw word [rdi], ax
movsx rax, word [rbp + r8*2 + 0x20]
lea rdi, [rbp + 0x20]
shr rdx, 1
add rdi, r10
mov rcx, rdx
rep stosw word [rdi], ax
movzx edi, word [rsp + 0x58]
lea eax, [r12 + r11]
add r11d, r12d
movsx edx, ax
lea r10, [r10 + 2]
imul edx, r9d
add dx, di
mov word [rbp + r10 + 0x21e], dx
cmp r11d, r14d
jl 0x140010383
jmp 0x14001044f
mov eax, edi
mov word [rbp + r8*2 + 0x420], r10w
cdq
xor r11d, r11d
idiv ecx
movzx ecx, word [rbp + r8*2 + 0x20]
mov dword [rsp + 0x50], eax
mov word [rsp + 0x58], cx
lea r14d, [rax - 1]
test r14d, r14d
jle 0x140010453
movsxd rax, ebx
lea rdi, [rbp + 0x620]
movsxd rdx, r14d
lea r12d, [r11 + 1]
add rdx, rdx
mov rcx, rdx
shr rcx, 1
lea r9, [rax + rax]
add rdi, r9
mov rax, r10
rep stosw word [rdi], ax
mov rcx, rdx
lea rdi, [rbp + 0x420]
add rdi, r9
shr rcx, 1
rep stosw word [rdi], ax
movsx rax, word [rbp + r8*2 + 0x220]
lea rdi, [rbp + 0x220]
shr rdx, 1
add rdi, r9
mov rcx, rdx
rep stosw word [rdi], ax
movzx edi, word [rsp + 0x58]
lea eax, [r12 + r11]
add r11d, r12d
movsx edx, ax
lea r9, [r9 + 2]
imul edx, r10d
add dx, di
mov word [rbp + r9 + 0x1e], dx
cmp r11d, r14d
jl 0x14001042f
mov eax, dword [rsp + 0x50]
dec eax
add ebx, eax
mov eax, 1
add r8, rax
cmp r8, r13
jl 0x1400102d6
mov r12d, dword [rsp + 0x64]
mov r13d, dword [rsp + 0x54]
imul edx, ebx, 0x38
lea edi, [rbx - 4]
mov ecx, edi
shl ecx, 5
add edx, 0xd0
add edx, ecx
jmp 0x140010491
mov edi, 0xfffffffc
mov edx, 0x78
mov ecx, edx
mov r8d, 0x6e14
lea rdx, str.DxGraphics.cpp
call fcn.140057a20
xor r10d, r10d
mov qword [rsi + 0x78], rax
mov r14, rax
test rax, rax
je 0x1400106f2
test r13d, r13d
je 0x1400104e9
movsxd rcx, edi
shl rcx, 5
add rcx, 0xd0
add rcx, rax
add rax, 0x50
test ebx, ebx
jle 0x1400104e9
mov edx, ebx
mov qword [rax], rcx
add rcx, 0x38
lea rax, [rax + 0x20]
sub rdx, 1
jne 0x1400104d8
or dword [r14 + 0x40], 0xffffffff
lea rcx, [r14 + 8]
movzx eax, word [rbp - 0x68]
mov edx, dword [rsp + 0x68]
mov edi, dword [rsp + 0x6c]
movups xmm6, xmmword [rbp - 0x78]
mov r13d, dword [rbp + 0x8e0]
movd xmm0, edx
movups xmmword [rcx], xmm6
mov word [rcx + 0x10], ax
mov al, byte [rbp - 0x66]
mov byte [rcx + 0x12], al
mov eax, dword [r15]
mov dword [r14 + 0x1c], eax
mov rax, qword [r15 + 0x88]
mov qword [r14 + 0x38], rax
mov eax, dword [r15 + 0x68]
mov dword [rsi + 0xbc], eax
mov eax, dword [r15 + 0x6c]
mov dword [rsi + 0xc0], eax
mov rax, qword [rsi + 0x78]
mov qword [rsi + 0x80], r10
mov qword [rsi + 0x88], r10
mov dword [rsi + 0x90], edx
mov dword [rsi + 0x94], edi
movd xmm1, edi
cvtdq2ps xmm0, xmm0
cvtdq2ps xmm1, xmm1
movss dword [rsi + 0x98], xmm0
movss dword [rsi + 0x9c], xmm1
mov dword [rax + 0x20], edx
mov rax, qword [rsi + 0x78]
mov dword [rax + 0x24], edi
mov rax, qword [rsi + 0x78]
mov esi, 1
mov dword [rax], esi
cmp byte [rcx], r10b
je 0x140010720
call fcn.14000e264
mov dword [r14 + 4], eax
psrldq xmm6, 9
movd eax, xmm6
mov dword [r14 + 0x4c], ebx
movzx eax, al
mov dword [r14 + 0x48], eax
cmp qword [r15 + 0x88], r10
je 0x1400105e5
mov eax, dword [r14 + 0x20]
mov dword [r14 + 0x60], eax
mov eax, dword [r14 + 0x24]
mov dword [r14 + 0x64], eax
mov qword [r14 + 0x58], r10
mov eax, dword [r14 + 0x20]
mov dword [r14 + 0x68], eax
mov eax, dword [r14 + 0x24]
mov dword [r14 + 0x6c], eax
jmp 0x140010698
movsxd r9, ebx
test ebx, ebx
jle 0x140010698
mov rdi, r10
lea rdx, [r14 + 0x64]
mov ecx, dword [r14 + 0x20]
movsx r10d, word [rbp + rdi*2 + 0x20]
movsx r11d, word [rbp + rdi*2 + 0x220]
sub ecx, r10d
movsx ebx, word [rbp + rdi*2 + 0x420]
mov dword [rdx - 4], ecx
mov r8d, dword [r14 + 0x24]
sub r8d, r11d
mov dword [rdx], r8d
cmp ecx, ebx
jle 0x140010629
mov dword [rdx - 4], ebx
movsx ecx, word [rbp + rdi*2 + 0x620]
cmp r8d, ecx
jle 0x140010638
mov dword [rdx], ecx
xorps xmm2, xmm2
add rdi, rsi
pinsrw xmm2, r10d, 0
pinsrw xmm2, r11d, 1
pinsrw xmm2, ebx, 2
pinsrw xmm2, ecx, 3
punpcklwd xmm2, xmm2
psrad xmm2, 0x10
movdqa xmm0, xmm2
movd dword [rdx - 0xc], xmm2
movdqa xmm1, xmm2
psrldq xmm0, 4
psrldq xmm1, 8
psrldq xmm2, 0xc
movd dword [rdx - 8], xmm0
movd dword [rdx + 4], xmm1
movd dword [rdx + 8], xmm2
add rdx, 0x20
cmp rdi, r9
jl 0x1400105f7
xor r10d, r10d
cmp byte [r14 + 0xb], r10b
je 0x1400106d1
cmp dword [r15 + 0x3c], r10d
je 0x1400106d1
mov dword [r14 + 0x28], esi
cmp dword [r15 + 0x48], 0x10
je 0x1400106cd
cmp dword [r15 + 0x48], 0x18
je 0x1400106c7
cmp dword [r15 + 0x48], 0x20
jne 0x1400106cd
mov dword [r14 + 0x2c], 2
jmp 0x1400106d1
mov dword [r14 + 0x2c], esi
jmp 0x1400106d1
mov dword [r14 + 0x2c], r10d
cmp dword [0x140234afc], 2
jne 0x14001080b
mov edx, r13d
mov rcx, r14
call fcn.140088ddc
cmp eax, 0xffffffff
jne 0x14001080b
or eax, 0xffffffff
mov rcx, qword [rbp + 0x820]
xor rcx, rsp
call fcn.1400bdaf0
movaps xmm6, xmmword [rsp + 0x930]
add rsp, 0x948
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
cmp byte [r14 + 0x17], sil
jne 0x140010742
mov dword [rsp + 0x38], r10d
mov dword [rsp + 0x30], r10d
mov dword [rsp + 0x28], 2
mov dword [rsp + 0x20], r10d
jmp 0x1400107f2
mov r8b, byte [r14 + 0x14]
movzx edx, byte [r14 + 0xa]
cmp r8b, 0x10
jne 0x140010762
mov al, dl
neg al
sbb ecx, ecx
neg ecx
add ecx, 0x33
mov dword [r14 + 4], ecx
jmp 0x140010778
test dl, dl
je 0x140010770
mov dword [r14 + 4], 0x36
jmp 0x140010778
mov dword [r14 + 4], 0x35
cmp byte [r14 + 0x18], sil
jne 0x140010786
mov r8d, 0xffff
jmp 0x1400107cb
movzx edi, byte [0x1401222f8]
cmp r8b, 0x10
movzx ebx, byte [0x1401222f9]
mov ecx, r10d
movzx esi, byte [0x1401222fa]
setne cl
xor r8d, r8d
call fcn.1400628b0
mov rcx, rax
mov dword [rsp + 0x20], 0xff
mov r9d, edi
mov r8d, ebx
mov edx, esi
call fcn.140052808
mov r8d, eax
xor r10d, r10d
cmp byte [r14 + 0x14], 0x10
mov edi, r10d
movzx eax, byte [r14 + 0xa]
movzx edx, byte [r14 + 0x18]
setne dil
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x30], edx
mov dword [rsp + 0x28], edi
mov dword [rsp + 0x20], r8d
mov r8d, dword [r14 + 0x24]
lea rcx, [r14 + 0x48]
mov edx, dword [r14 + 0x20]
call fcn.140061f04
test eax, eax
js 0x1400106f2
mov r8d, r13d
xor edx, edx
mov ecx, r12d
call fcn.140010e54
test eax, eax
js 0x1400106f2
xor eax, eax
jmp 0x1400106f5