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

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x840]
sub rsp, 0x940
mov rax, qword [section..data]
xor rax, rsp
mov qword [rbp + 0x830], rax
xor r12d, r12d
mov dword [rsp + 0x70], r9d
cmp dword [0x140247378], r12d
mov r13d, r9d
mov r14d, r8d
mov dword [rsp + 0x58], r8d
mov dword [rsp + 0x74], edx
mov rdi, rcx
mov qword [rbp - 0x80], rcx
mov r15d, r12d
je 0x140016cec
test edx, edx
js 0x140016cec
mov eax, edx
and eax, 0x7c000000
cmp eax, dword [0x1402473c8]
jne 0x140016cec
mov eax, edx
and eax, 0x3ffff
cmp eax, dword [0x1402473d0]
jge 0x140016cec
mov rax, qword [0x140247380]
mov ecx, edx
and ecx, 0x3ffff
mov rsi, qword [rax + rcx*8]
mov qword [rsp + 0x78], rsi
test rsi, rsi
je 0x140016cec
mov ecx, dword [rsi]
mov eax, edx
shl ecx, 0x12
and eax, 0x3fc0000
cmp ecx, eax
jne 0x140016cec
cmp dword [0x14017adb0], r12d
je 0x1400166eb
cmp dword [0x14017af0c], r12d
mov dword [rsp + 0x5c], 1
je 0x1400166f0
mov dword [rsp + 0x5c], r12d
mov eax, dword [rbp + 0x8c8]
lea rcx, [rbp + 0x790]
mov dword [rsp + 0x40], eax
mov rdx, rdi
mov eax, dword [rbp + 0x8c0]
mov dword [rsp + 0x38], eax
mov eax, dword [rbp + 0x8b8]
mov dword [rsp + 0x30], eax
mov eax, dword [rbp + 0x8b0]
mov dword [rsp + 0x28], eax
mov eax, dword [rbp + 0x8a8]
mov dword [rsp + 0x20], eax
call fcn.1400163e0
movzx ecx, byte [rbp + 0x798]
mov ebx, r12d
dec cl
cmp cl, 6
mov ecx, 4
setbe bl
cmp dword [rsp + 0x5c], r12d
je 0x140016cc2
cmp qword [rdi + 0x88], r12
je 0x140016773
mov r13d, dword [rsp + 0x70]
mov r15d, 1
imul eax, r15d, 0x58
add eax, 0x50
jmp 0x140016cc7
mov eax, dword [rdi + 0x58]
test ebx, ebx
mov r11d, dword [0x14017adf0]
mov edi, 1
mov r15d, dword [0x14017adec]
cmovne edi, ecx
mov esi, dword [0x14017ade8]
test eax, eax
cmovne r11d, eax
test r15d, r15d
je 0x1400167a3
test esi, esi
je 0x1400167df
cmp r14d, r11d
jg 0x1400167df
test ebx, ebx
je 0x1400167cc
lea eax, [r14 + 3]
mov r14d, 1
cdq
and edx, 3
add eax, edx
and ax, 0xfffc
mov word [rbp + 0x7b0], ax
jmp 0x1400168c0
mov word [rbp + 0x7b0], r14w
mov r14d, 1
jmp 0x1400168c0
cmp edi, r14d
jl 0x1400167f6
mov word [rbp + 0x7b0], di
mov r14d, 1
jmp 0x1400168c0
mov r9d, r12d
mov ecx, r11d
cmp r11d, edi
jle 0x14001680c
cmp ecx, r14d
jle 0x14001680c
sar ecx, 1
cmp ecx, edi
jg 0x140016801
lea eax, [rcx + rcx]
cmp eax, r11d
jg 0x14001682d
cmp ecx, r14d
mov r14d, 1
cmovge ax, cx
mov word [rbp + 0x7b0], ax
jmp 0x1400168c0
mov r8d, r14d
lea r10, [rbp + 0x7b0]
nop word [rax + rax]
sub r8d, ecx
mov word [r10], cx
test r8d, r8d
jle 0x14001688b
lea eax, [rcx + rcx*2]
cdq
and edx, 3
add eax, edx
sar eax, 2
cmp r8d, eax
jle 0x140016862
cmp ecx, r11d
jl 0x14001687b
cmp r8d, ecx
jge 0x140016872
cmp ecx, edi
jle 0x140016872
sar ecx, 1
cmp r8d, ecx
jl 0x140016867
inc r9d
add r10, 2
jmp 0x140016840
movsxd rdx, r9d
add cx, cx
mov word [rbp + rdx*2 + 0x7b0], cx
jmp 0x14001688e
movsxd rdx, r9d
test r9d, r9d
jle 0x1400168bc
movsx ecx, word [rbp + rdx*2 + 0x7ae]
cmp cx, word [rbp + rdx*2 + 0x7b0]
jne 0x1400168bc
mov eax, ecx
add eax, eax
cmp eax, r11d
jg 0x1400168bc
dec r9d
add cx, cx
mov word [rbp + rdx*2 + 0x7ae], cx
lea r14d, [r9 + 1]
mov dword [rsp + 0x50], r14d
test r15d, r15d
je 0x1400168ce
test esi, esi
je 0x140016908
cmp r13d, r11d
jg 0x140016908
test ebx, ebx
je 0x1400168f6
lea eax, [r13 + 3]
cdq
and edx, 3
add eax, edx
and ax, 0xfffc
mov word [rbp + 0x7f0], ax
mov eax, 1
jmp 0x1400169f0
mov word [rbp + 0x7f0], r13w
mov eax, 1
jmp 0x1400169f0
cmp edi, r13d
jl 0x14001691e
mov word [rbp + 0x7f0], di
mov eax, 1
jmp 0x1400169f0
mov r9d, r12d
mov ecx, r11d
cmp r11d, edi
jle 0x14001693b
nop dword [rax]
cmp ecx, r13d
jle 0x14001693b
sar ecx, 1
cmp ecx, edi
jg 0x140016930
lea eax, [rcx + rcx]
cmp eax, r11d
jg 0x14001695b
cmp ecx, r13d
cmovge ax, cx
mov word [rbp + 0x7f0], ax
mov eax, 1
jmp 0x1400169f0
mov r8d, r13d
lea r10, [rbp + 0x7f0]
nop word [rax + rax]
sub r8d, ecx
mov word [r10], cx
test r8d, r8d
jle 0x1400169bb
lea eax, [rcx + rcx*2]
cdq
and edx, 3
add eax, edx
sar eax, 2
cmp r8d, eax
jle 0x140016992
cmp ecx, r11d
jl 0x1400169ab
cmp r8d, ecx
jge 0x1400169a2
cmp ecx, edi
jle 0x1400169a2
sar ecx, 1
cmp r8d, ecx
jl 0x140016997
inc r9d
add r10, 2
jmp 0x140016970
movsxd rdx, r9d
add cx, cx
mov word [rbp + rdx*2 + 0x7f0], cx
jmp 0x1400169be
movsxd rdx, r9d
test r9d, r9d
jle 0x1400169ec
movsx ecx, word [rbp + rdx*2 + 0x7ee]
cmp cx, word [rbp + rdx*2 + 0x7f0]
jne 0x1400169ec
mov eax, ecx
add eax, eax
cmp eax, r11d
jg 0x1400169ec
dec r9d
add cx, cx
mov word [rbp + rdx*2 + 0x7ee], cx
lea eax, [r9 + 1]
mov r15d, eax
mov dword [rsp + 0x54], eax
imul r15d, r14d
mov dword [rsp + 0x68], r15d
cmp byte [rbp + 0x793], r12b
je 0x140016a13
cmp r15d, 1
jg 0x140016cec
movsxd rcx, eax
mov r9d, r12d
mov qword [rbp - 0x78], rcx
mov dword [rsp + 0x60], r12d
test eax, eax
jle 0x140016b1a
xor r15d, r15d
mov eax, r15d
mov r13d, r15d
mov dword [rsp + 0x64], eax
nop word [rax + rax]
lea r12, [r13*2]
mov esi, r15d
test r14d, r14d
jle 0x140016ae6
cdqe
lea r8, [r14 + r14]
mov rcx, r8
lea rdi, [rbp + 0x190]
shr rcx, 1
lea rdx, [rbp + 0x590]
lea rbx, [rax + rax]
movsx rax, word [rbp + r12 + 0x7f0]
add rdi, rbx
add rdx, rbx
rep stosw word [rdi], ax
mov rcx, r8
movsx rax, r9w
shr rcx, 1
mov rdi, rdx
rep stosw word [rdi], ax
shr r8, 1
lea rdi, [rbp + 0x7b0]
lea rcx, [rbp - 0x70]
sub rdi, rbx
add rcx, rbx
lea rdx, [rbp + 0x7b0]
add r8, r8
call fcn.140124160
nop word [rax + rax]
movsx eax, word [rbx + rdi]
mov word [rbp + rbx + 0x390], si
lea rbx, [rbx + 2]
add esi, eax
sub r14, 1
jne 0x140016ac0
mov r9d, dword [rsp + 0x60]
mov r14d, dword [rsp + 0x50]
mov rcx, qword [rbp - 0x78]
movsx eax, word [rbp + r12 + 0x7f0]
inc r13
add r9d, eax
mov eax, dword [rsp + 0x64]
add eax, r14d
mov dword [rsp + 0x60], r9d
mov dword [rsp + 0x64], eax
cmp r13, rcx
jl 0x140016a40
mov r15d, dword [rsp + 0x68]
xor r12d, r12d
mov eax, dword [rsp + 0x54]
cmp dword [0x14017ade0], 0
je 0x140016caa
imul eax, r14d
movsxd r9, eax
mov qword [rsp + 0x68], r9
test eax, eax
jle 0x140016caa
mov rbx, r12
nop
movsx r10, word [rbp + rbx*2 - 0x70]
movsx r11, word [rbp + rbx*2 + 0x190]
cmp r10w, r11w
je 0x140016c9e
movsx rsi, word [rbp + rbx*2 + 0x390]
mov ecx, r11d
movsx r14, word [rbp + rbx*2 + 0x590]
mov edi, r10d
mov r8d, r12d
jge 0x140016c0a
mov eax, ecx
mov word [rbp + rbx*2 + 0x190], r10w
cdq
idiv edi
mov r13d, eax
lea r11d, [rax - 1]
test r11d, r11d
jle 0x140016c98
movsxd rax, r15d
lea rdi, [rbp - 0x70]
movsxd rdx, r11d
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 + 0x190]
shr rcx, 1
add rdi, r9
rep stosw word [rdi], ax
shr rdx, 1
lea rdi, [rbp + 0x390]
add rdi, r9
mov rax, rsi
mov rcx, rdx
rep stosw word [rdi], ax
lea eax, [r8 + 1]
inc r8d
movsx edx, ax
lea r9, [r9 + 2]
imul edx, r10d
add dx, r14w
mov word [rbp + r9 + 0x58e], dx
cmp r8d, r11d
jl 0x140016be1
jmp 0x140016c93
mov eax, edi
mov word [rbp + rbx*2 - 0x70], r11w
cdq
idiv ecx
mov r13d, eax
lea r10d, [rax - 1]
test r10d, r10d
jle 0x140016c98
movsxd rax, r15d
lea rdi, [rbp + 0x190]
movsxd rdx, r10d
add rdx, rdx
mov rcx, rdx
shr rcx, 1
lea r9, [rax + rax]
add rdi, r9
mov rax, r11
rep stosw word [rdi], ax
mov rcx, rdx
lea rdi, [rbp - 0x70]
shr rcx, 1
add rdi, r9
rep stosw word [rdi], ax
shr rdx, 1
lea rdi, [rbp + 0x590]
add rdi, r9
mov rax, r14
mov rcx, rdx
rep stosw word [rdi], ax
nop
lea eax, [r8 + 1]
inc r8d
movsx edx, ax
lea r9, [r9 + 2]
imul edx, r11d
add dx, si
mov word [rbp + r9 + 0x38e], dx
cmp r8d, r10d
jl 0x140016c70
mov r9, qword [rsp + 0x68]
dec r15d
add r15d, r13d
inc rbx
cmp rbx, r9
jl 0x140016b40
mov r14d, dword [rsp + 0x58]
mov rsi, qword [rsp + 0x78]
mov r13d, dword [rsp + 0x70]
imul eax, r15d, 0x58
add eax, 0x50
jmp 0x140016cc7
mov eax, 0x78
mov r9d, 0x6ea1
mov ecx, eax
lea r8, str.D:DocumentsdevelopmentDxLibMakeDxGraphics.cpp
mov ebx, eax
call fcn.140075550
mov rdi, rax
test rax, rax
jne 0x140016d1b
mov qword [rsi + 0xa0], r12
mov eax, 0xffffffff
mov rcx, qword [rbp + 0x830]
xor rcx, rsp
call fcn.140107200
mov rbx, qword [rsp + 0x990]
add rsp, 0x940
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
test rbx, rbx
je 0x140016d2d
mov r8, rbx
xor edx, edx
mov rcx, rdi
call fcn.140123da0
cmp dword [rsp + 0x5c], 0
mov rbx, rdi
mov qword [rsi + 0xa0], rdi
je 0x140016d71
lea eax, [r15 - 4]
cdqe
lea rcx, [rdi + 0x50]
shl rax, 5
add rax, 0xd0
add rax, rdi
test r15d, r15d
jle 0x140016d71
mov edx, r15d
nop dword [rax]
mov qword [rcx], rax
lea rcx, [rcx + 0x20]
add rax, 0x38
sub rdx, 1
jne 0x140016d60
movzx eax, word [rbp + 0x7a0]
lea rcx, [rbx + 8]
mov rdi, qword [rbp - 0x80]
movups xmm2, xmmword [rbp + 0x790]
mov dword [rbx + 0x40], 0xffffffff
movd xmm0, r14d
movups xmmword [rcx], xmm2
mov word [rcx + 0x10], ax
movzx eax, byte [rbp + 0x7a2]
mov byte [rcx + 0x12], al
mov eax, dword [rdi]
mov dword [rbx + 0x1c], eax
mov rax, qword [rdi + 0x88]
mov qword [rbx + 0x38], rax
mov eax, dword [rdi + 0x68]
mov dword [rsi + 0xe4], eax
mov eax, dword [rdi + 0x6c]
mov dword [rsi + 0xe8], eax
mov rax, qword [rsi + 0xa0]
mov dword [rsi + 0xb8], r14d
mov qword [rsi + 0xa8], 0
mov qword [rsi + 0xb0], 0
mov dword [rsi + 0xbc], r13d
movd xmm1, r13d
cvtdq2ps xmm0, xmm0
cvtdq2ps xmm1, xmm1
movss dword [rsi + 0xc0], xmm0
movss dword [rsi + 0xc4], xmm1
mov dword [rax + 0x20], r14d
mov rax, qword [rsi + 0xa0]
mov r14d, dword [rbp + 0x8d0]
mov dword [rax + 0x24], r13d
mov rax, qword [rsi + 0xa0]
mov dword [rax], 1
cmp byte [rcx], 0
je 0x140016fa6
call fcn.140013d50
mov dword [rbx + 4], eax
psrldq xmm2, 9
movd eax, xmm2
mov dword [rbx + 0x4c], r15d
movzx eax, al
mov dword [rbx + 0x48], eax
cmp qword [rdi + 0x88], 0
je 0x140016e82
mov eax, dword [rbx + 0x20]
mov dword [rbx + 0x60], eax
mov eax, dword [rbx + 0x24]
mov dword [rbx + 0x64], eax
mov qword [rbx + 0x58], 0
mov eax, dword [rbx + 0x20]
mov dword [rbx + 0x68], eax
mov eax, dword [rbx + 0x24]
mov dword [rbx + 0x6c], eax
jmp 0x140016f45
movsxd rsi, r15d
test r15d, r15d
jle 0x140016f45
mov rdi, r12
lea rdx, [rbx + 0x64]
nop word [rax + rax]
mov ecx, dword [rbx + 0x20]
movsx r9d, word [rbp + rdi*2 + 0x390]
movsx r10d, word [rbp + rdi*2 + 0x590]
sub ecx, r9d
movsx r11d, word [rbp + rdi*2 - 0x70]
mov dword [rdx - 4], ecx
mov r8d, dword [rbx + 0x24]
sub r8d, r10d
mov dword [rdx], r8d
cmp ecx, r11d
jle 0x140016ed4
mov dword [rdx - 4], r11d
movsx ecx, word [rbp + rdi*2 + 0x190]
cmp r8d, ecx
jle 0x140016ee3
mov dword [rdx], ecx
xorps xmm2, xmm2
inc rdi
pinsrw xmm2, r9d, 0
pinsrw xmm2, r10d, 1
pinsrw xmm2, r11d, 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, rsi
jl 0x140016ea0
mov rdi, qword [rbp - 0x80]
cmp byte [rbx + 0xb], 0
je 0x140016f80
cmp dword [rdi + 0x3c], 0
je 0x140016f80
mov dword [rbx + 0x28], 1
mov eax, dword [rdi + 0x48]
cmp eax, 0x10
je 0x140016f7c
cmp eax, 0x18
je 0x140016f73
cmp eax, 0x20
jne 0x140016f7c
mov dword [rbx + 0x2c], 2
jmp 0x140016f80
mov dword [rbx + 0x2c], 1
jmp 0x140016f80
mov dword [rbx + 0x2c], r12d
cmp dword [0x14024e0fc], 2
jne 0x140017087
mov edx, r14d
mov rcx, rbx
call fcn.1400cfe50
cmp eax, 0xffffffff
je 0x140016cec
jmp 0x140017087
cmp byte [rbx + 0x17], 1
jne 0x140016fc8
mov dword [rsp + 0x38], r12d
mov dword [rsp + 0x30], r12d
mov dword [rsp + 0x28], 2
mov dword [rsp + 0x20], r12d
jmp 0x14001706f
cmp byte [rbx + 0x14], 0x10
movzx ecx, byte [rbx + 0xa]
jne 0x140016fdf
test cl, cl
mov eax, r12d
setne al
add eax, 0x33
jmp 0x140016fed
mov eax, 0x36
test cl, cl
jne 0x140016fed
mov eax, 0x35
mov edx, 4
mov rcx, rbx
mov dword [rdx + rbx], eax
cmp byte [rbx + 0x18], 1
jne 0x140017005
mov eax, 0xffff
jmp 0x140017048
cmp byte [rbx + 0x14], 0x10
mov ecx, r12d
movzx edx, byte [rbx + 0xa]
movzx r9d, byte [0x14017b018]
setne cl
movzx edi, byte [0x14017b019]
xor r8d, r8d
movzx r10d, byte [0x14017b01a]
call fcn.140084a00
mov rcx, rax
mov dword [rsp + 0x20], 0xff
mov r8d, edi
mov edx, r10d
call fcn.140070720
cmp byte [rbx + 0x14], 0x10
mov r12d, 0
movzx edx, byte [rbx + 0xa]
movzx edi, byte [rbx + 0x18]
setne r12b
mov dword [rsp + 0x38], edx
mov dword [rsp + 0x30], edi
mov dword [rsp + 0x28], r12d
mov dword [rsp + 0x20], eax
mov r8d, dword [rbx + 0x24]
lea rcx, [rbx + 0x48]
mov edx, dword [rbx + 0x20]
call fcn.140083e90
test eax, eax
js 0x140016cec
mov ecx, dword [rsp + 0x74]
mov r8d, r14d
xor edx, edx
call fcn.140017700
test eax, eax
js 0x140016cec
xor eax, eax
jmp 0x140016cf1