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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x178
movaps xmmword [rsp + 0xf0], xmm6
movaps xmmword [rsp + 0x100], xmm7
movaps xmmword [rsp + 0x110], xmm8
movaps xmmword [rsp + 0x120], xmm9
movaps xmmword [rsp + 0x130], xmm10
movaps xmmword [rsp + 0x140], xmm11
movaps xmmword [rsp + 0x150], xmm12
movaps xmmword [rsp + 0x160], xmm13
mov rbx, rcx
mov rcx, qword [rcx]
mov r15, r8
mov r13, rdx
mov r14, r8
mov rbp, r9
shr r15, 0x20
test rcx, rcx
je 0x14006cd5e
cmp byte [rbx + 8], 0
je 0x14006d590
xor eax, eax
mov ecx, 0xc
movd xmm0, r14d
mov r12d, r15d
lea rdi, [rsp + 0x88]
lea rsi, [rsp + 0x70]
mov qword [rsp + 0x84], 0
mov qword [rsp + 0xe4], 0
rep stosq qword [rdi], rax
mov eax, r15d
mov dword [rsp + 0x70], 0x7c
neg eax
mov dword [rsp + 0x3c], r14d
mov qword [rsp + 0x48], 0
movd xmm7, eax
movabs rax, 0x300200001
punpckldq xmm0, xmm7
mov qword [rsp + 0x7c], rax
movq qword [rsp + 0x74], xmm0
movdqa xmm0, xmmword [0x140166f10]
movups xmmword [rsp + 0x98], xmm0
call qword [sym.imp.USER32.dll_GetDC]
mov rdx, rsi
xor r8d, r8d
lea r9, [rsp + 0x48]
mov rdi, rax
mov rcx, rax
mov dword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
call qword [sym.imp.GDI32.dll_CreateDIBSection]
xor ecx, ecx
mov rdx, rdi
mov rsi, rax
call qword [sym.imp.USER32.dll_ReleaseDC]
test rsi, rsi
je 0x14006d660
mov r8d, r15d
mov r9, qword [rsp + 0x48]
imul r8d, r14d
test r8, r8
je 0x14006ce94
lea rax, [r8 - 1]
cmp rax, 6
jbe 0x14006d5a8
mov rdx, r13
not rdx
lea rcx, [rdx + r9]
xor edx, edx
cmp rcx, 0x3e
ja 0x14006cf70
nop word [rax + rax]
movzx eax, byte [r13 + rdx*4]
movzx ecx, byte [r13 + rdx*4 + 3]
shl eax, 0x10
shl ecx, 0x18
or eax, ecx
movzx ecx, byte [r13 + rdx*4 + 2]
or eax, ecx
movzx ecx, byte [r13 + rdx*4 + 1]
shl ecx, 8
or eax, ecx
mov dword [r9 + rdx*4], eax
add rdx, 1
cmp r8, rdx
jne 0x14006ce60
mov qword [rsp + 0x20], 0
mov ecx, dword [rsp + 0x3c]
mov r9d, 1
mov edx, r12d
mov r8d, 1
call qword [sym.imp.GDI32.dll_CreateBitmap]
mov rdi, rax
test rax, rax
je 0x14006d5b0
pxor xmm0, xmm0
mov qword [rsp + 0x68], rsi
lea rcx, [rsp + 0x50]
movaps xmmword [rsp + 0x50], xmm0
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x54], rbp
call qword [sym.imp.USER32.dll_CreateIconIndirect]
mov rcx, rsi
mov byte [rbx + 8], 0
mov rsi, qword [sym.imp.GDI32.dll_DeleteObject]
mov qword [rbx], rax
call rsi
mov rcx, rdi
call rsi
cmp qword [rbx], 0
mov eax, 1
je 0x14006d640
movaps xmm6, xmmword [rsp + 0xf0]
movaps xmm7, xmmword [rsp + 0x100]
movaps xmm8, xmmword [rsp + 0x110]
movaps xmm9, xmmword [rsp + 0x120]
movaps xmm10, xmmword [rsp + 0x130]
movaps xmm11, xmmword [rsp + 0x140]
movaps xmm12, xmmword [rsp + 0x150]
movaps xmm13, xmmword [rsp + 0x160]
add rsp, 0x178
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
cmp rax, 0xe
jbe 0x14006d67a
lea r10, [r8 - 0x10]
mov rdx, r13
mov rax, r9
xor ecx, ecx
shr r10, 4
movdqa xmm7, xmmword [0x140166f20]
pxor xmm6, xmm6
pxor xmm2, xmm2
add r10, 1
nop
movdqu xmm1, xmmword [rdx]
movdqu xmm0, xmmword [rdx + 0x10]
movdqa xmm8, xmm7
add rcx, 1
movdqu xmm3, xmmword [rdx + 0x10]
movdqu xmm4, xmmword [rdx + 0x30]
add rax, 0x40
add rdx, 0x40
pand xmm0, xmm7
pand xmm1, xmm7
movdqu xmm5, xmmword [rdx - 0x20]
packuswb xmm1, xmm0
movdqu xmm0, xmmword [rdx - 0x40]
psrlw xmm3, 8
pand xmm4, xmm7
psrlw xmm5, 8
psrlw xmm0, 8
packuswb xmm0, xmm3
movdqu xmm3, xmmword [rdx - 0x20]
pand xmm3, xmm7
packuswb xmm3, xmm4
movdqu xmm4, xmmword [rdx - 0x10]
pand xmm8, xmm3
psrlw xmm3, 8
psrlw xmm4, 8
packuswb xmm5, xmm4
movdqa xmm4, xmm7
pand xmm4, xmm1
psrlw xmm1, 8
packuswb xmm4, xmm8
packuswb xmm1, xmm3
movdqa xmm8, xmm7
movdqa xmm3, xmm7
pand xmm8, xmm5
movdqa xmm11, xmm4
pand xmm3, xmm0
psrlw xmm5, 8
punpcklbw xmm11, xmm6
psrlw xmm0, 8
packuswb xmm3, xmm8
movdqa xmm12, xmm11
packuswb xmm0, xmm5
movdqa xmm10, xmm3
movdqa xmm9, xmm1
movdqa xmm5, xmm0
punpcklbw xmm10, xmm6
punpcklwd xmm12, xmm2
punpcklbw xmm5, xmm6
psllw xmm10, 8
punpcklbw xmm9, xmm6
movdqa xmm8, xmm5
pslld xmm12, 0x10
movdqa xmm13, xmm10
punpcklwd xmm8, xmm2
punpckhwd xmm5, xmm2
punpckhwd xmm11, xmm2
pslld xmm8, 0x18
punpcklwd xmm13, xmm2
punpckhwd xmm10, xmm2
por xmm8, xmm12
movdqa xmm12, xmm9
punpckhwd xmm9, xmm2
punpcklwd xmm12, xmm2
pslld xmm5, 0x18
por xmm9, xmm10
pslld xmm11, 0x10
por xmm12, xmm13
punpckhbw xmm0, xmm6
por xmm5, xmm11
punpckhbw xmm4, xmm6
por xmm8, xmm12
por xmm5, xmm9
movups xmmword [rax - 0x40], xmm8
punpckhbw xmm3, xmm6
punpckhbw xmm1, xmm6
movdqa xmm8, xmm4
movups xmmword [rax - 0x30], xmm5
movdqa xmm5, xmm0
punpckhwd xmm4, xmm2
punpcklwd xmm5, xmm2
punpcklwd xmm8, xmm2
punpckhwd xmm0, xmm2
psllw xmm3, 8
pslld xmm8, 0x10
pslld xmm5, 0x18
pslld xmm0, 0x18
movdqa xmm9, xmm3
por xmm5, xmm8
movdqa xmm8, xmm1
punpcklwd xmm9, xmm2
punpcklwd xmm8, xmm2
pslld xmm4, 0x10
punpckhwd xmm3, xmm2
punpckhwd xmm1, xmm2
por xmm8, xmm9
por xmm0, xmm4
por xmm1, xmm3
por xmm5, xmm8
por xmm0, xmm1
movups xmmword [rax - 0x20], xmm5
movups xmmword [rax - 0x10], xmm0
cmp rcx, r10
jb 0x14006cfa0
mov r11, r10
mov rcx, r8
shl r10, 6
shl r11, 4
lea rdx, [r13 + r10]
lea rax, [r9 + r10]
sub rcx, r11
cmp r8, r11
je 0x14006ce94
lea r10, [rcx - 1]
mov r8, rcx
cmp r10, 6
jbe 0x14006d416
lea r10, [r11*4]
movq xmm2, qword [0x140166f20]
add r13, r10
add r9, r10
movq xmm0, qword [r13]
movq xmm4, qword [r13 + 8]
movdqa xmm1, xmm2
movdqa xmm6, xmm2
movq xmm3, qword [r13 + 0x10]
movq xmm5, qword [r13 + 0x18]
pand xmm6, xmm4
psrlw xmm4, 8
pand xmm1, xmm0
psrlw xmm0, 8
packuswb xmm1, xmm6
movdqa xmm6, xmm2
packuswb xmm0, xmm4
movdqa xmm4, xmm2
pand xmm6, xmm5
pand xmm4, xmm3
psrlw xmm5, 8
pshufd xmm1, xmm1, 8
packuswb xmm4, xmm6
psrlw xmm3, 8
movdqa xmm6, xmm2
pshufd xmm4, xmm4, 8
packuswb xmm3, xmm5
movdqa xmm5, xmm2
pand xmm6, xmm4
pand xmm5, xmm1
pshufd xmm0, xmm0, 8
psrlw xmm4, 8
psrlw xmm1, 8
pshufd xmm3, xmm3, 8
packuswb xmm1, xmm4
movdqa xmm4, xmm2
pand xmm2, xmm3
pand xmm4, xmm0
psrlw xmm3, 8
packuswb xmm5, xmm6
psrlw xmm0, 8
pshufd xmm5, xmm5, 8
packuswb xmm4, xmm2
packuswb xmm0, xmm3
pxor xmm2, xmm2
pshufd xmm1, xmm1, 8
pshufd xmm0, xmm0, 8
pshufd xmm4, xmm4, 8
movdqa xmm7, xmm5
movdqa xmm3, xmm0
punpcklbw xmm7, xmm2
movdqa xmm9, xmm4
punpcklbw xmm3, xmm2
movdqa xmm8, xmm1
punpcklbw xmm0, xmm2
punpcklbw xmm8, xmm2
punpcklbw xmm5, xmm2
punpcklbw xmm9, xmm2
punpcklbw xmm4, xmm2
punpcklbw xmm1, xmm2
movdqa xmm6, xmm3
pxor xmm2, xmm2
movdqa xmm10, xmm7
pshufd xmm0, xmm0, 0x4e
punpcklwd xmm6, xmm2
punpcklwd xmm10, xmm2
punpcklwd xmm3, xmm2
psllw xmm9, 8
pslld xmm10, 0x10
punpcklwd xmm7, xmm2
pslld xmm6, 0x18
movdqa xmm11, xmm9
pshufd xmm3, xmm3, 0x4e
por xmm6, xmm10
movdqa xmm10, xmm8
punpcklwd xmm11, xmm2
punpcklwd xmm10, xmm2
pshufd xmm7, xmm7, 0x4e
punpcklwd xmm9, xmm2
por xmm10, xmm11
pslld xmm7, 0x10
pshufd xmm5, xmm5, 0x4e
por xmm6, xmm10
pslld xmm3, 0x18
pshufd xmm9, xmm9, 0x4e
movq qword [r9], xmm6
movdqa xmm6, xmm8
por xmm3, xmm7
pshufd xmm4, xmm4, 0x4e
punpcklwd xmm6, xmm2
psllw xmm4, 8
pshufd xmm1, xmm1, 0x4e
pshufd xmm6, xmm6, 0x4e
movdqa xmm7, xmm4
punpcklwd xmm4, xmm2
por xmm6, xmm9
punpcklwd xmm7, xmm2
pshufd xmm4, xmm4, 0x4e
por xmm3, xmm6
movdqa xmm6, xmm5
punpcklwd xmm5, xmm2
movq qword [r9 + 8], xmm3
movdqa xmm3, xmm0
punpcklwd xmm6, xmm2
punpcklwd xmm0, xmm2
punpcklwd xmm3, xmm2
pslld xmm6, 0x10
pshufd xmm0, xmm0, 0x4e
pslld xmm3, 0x18
pslld xmm0, 0x18
pshufd xmm5, xmm5, 0x4e
por xmm3, xmm6
pslld xmm5, 0x10
movdqa xmm6, xmm1
punpcklwd xmm1, xmm2
punpcklwd xmm6, xmm2
por xmm0, xmm5
pshufd xmm1, xmm1, 0x4e
por xmm6, xmm7
por xmm1, xmm4
por xmm3, xmm6
por xmm0, xmm1
movq qword [r9 + 0x10], xmm3
movq qword [r9 + 0x18], xmm0
mov r9, r8
and r9, 0xfffffffffffffff8
lea r10, [r9*4]
sub rcx, r9
add rdx, r10
add rax, r10
and r8d, 7
je 0x14006ce94
movzx r8d, byte [rdx + 3]
movzx r9d, byte [rdx]
shl r8d, 0x18
shl r9d, 0x10
or r8d, r9d
movzx r9d, byte [rdx + 2]
or r8d, r9d
movzx r9d, byte [rdx + 1]
shl r9d, 8
or r8d, r9d
mov dword [rax], r8d
cmp rcx, 1
je 0x14006ce94
movzx r8d, byte [rdx + 7]
movzx r9d, byte [rdx + 4]
shl r8d, 0x18
shl r9d, 0x10
or r8d, r9d
movzx r9d, byte [rdx + 6]
or r8d, r9d
movzx r9d, byte [rdx + 5]
shl r9d, 8
or r8d, r9d
mov dword [rax + 4], r8d
cmp rcx, 2
je 0x14006ce94
movzx r8d, byte [rdx + 0xb]
movzx r9d, byte [rdx + 8]
shl r8d, 0x18
shl r9d, 0x10
or r8d, r9d
movzx r9d, byte [rdx + 0xa]
or r8d, r9d
movzx r9d, byte [rdx + 9]
shl r9d, 8
or r8d, r9d
mov dword [rax + 8], r8d
cmp rcx, 3
je 0x14006ce94
movzx r8d, byte [rdx + 0xf]
movzx r9d, byte [rdx + 0xc]
shl r8d, 0x18
shl r9d, 0x10
or r8d, r9d
movzx r9d, byte [rdx + 0xe]
or r8d, r9d
movzx r9d, byte [rdx + 0xd]
shl r9d, 8
or r8d, r9d
mov dword [rax + 0xc], r8d
cmp rcx, 4
je 0x14006ce94
movzx r8d, byte [rdx + 0x13]
movzx r9d, byte [rdx + 0x10]
shl r8d, 0x18
shl r9d, 0x10
or r8d, r9d
movzx r9d, byte [rdx + 0x12]
or r8d, r9d
movzx r9d, byte [rdx + 0x11]
shl r9d, 8
or r8d, r9d
mov dword [rax + 0x10], r8d
cmp rcx, 5
je 0x14006ce94
movzx r8d, byte [rdx + 0x17]
movzx r9d, byte [rdx + 0x14]
shl r8d, 0x18
shl r9d, 0x10
or r8d, r9d
movzx r9d, byte [rdx + 0x16]
or r8d, r9d
movzx r9d, byte [rdx + 0x15]
shl r9d, 8
or r8d, r9d
mov dword [rax + 0x14], r8d
cmp rcx, 6
je 0x14006ce94
movzx ecx, byte [rdx + 0x1b]
movzx r8d, byte [rdx + 0x18]
shl ecx, 0x18
shl r8d, 0x10
or ecx, r8d
movzx r8d, byte [rdx + 0x1a]
movzx edx, byte [rdx + 0x19]
or ecx, r8d
shl edx, 8
or edx, ecx
mov dword [rax + 0x18], edx
jmp 0x14006ce94
call qword [sym.imp.USER32.dll_DestroyCursor]
mov qword [rbx], 0
jmp 0x14006cd5e
xor edx, edx
jmp 0x14006ce60
mov rcx, rsi
call qword [sym.imp.GDI32.dll_DeleteObject]
call method.sf.err__
mov r8d, 0x23
lea rdx, str.Failed_to_create_cursor_mask_bitmap
mov rbx, rax
mov rcx, rbx
call method.std::basic_ostream_char__std::char_traits_char____std::__ostream_insert_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const__long_long_
mov rax, qword [rbx]
mov rax, qword [rax - 0x18]
mov rsi, qword [rbx + rax + 0xf0]
test rsi, rsi
je 0x14006d68b
cmp byte [rsi + 0x38], 0
je 0x14006d610
movsx edx, byte [rsi + 0x43]
mov rcx, rbx
call method.std::ostream.put_char_
mov rcx, rax
call method.std::ostream.flush__
xor eax, eax
jmp 0x14006cf0c
mov rcx, rsi
call method.std::ctype_char_._M_widen_init___const
mov rax, qword [rsi]
mov edx, 0xa
lea rcx, [method.std::ctype_char_.do_widen_char__const]
mov rax, qword [rax + 0x30]
cmp rax, rcx
je 0x14006d5f8
mov rcx, rsi
call rax
movsx edx, al
jmp 0x14006d5f8
call method.sf.err__
mov r8d, 0x24
lea rdx, str.Failed_to_create_cursor_from_bitmaps
mov rbx, rax
jmp 0x14006d5ce
call method.sf.err__
mov r8d, 0x24
lea rdx, str.Failed_to_create_cursor_color_bitmap
mov rbx, rax
jmp 0x14006d5ce
mov rcx, r8
mov rax, r9
mov rdx, r13
xor r11d, r11d
jmp 0x14006d1b6
call method.std.__throw_bad_cast__
nop
nop
nop word cs:[rax + rax]
nop dword [rax]