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

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x60
mov rax, qword [0x1800a98a0]
xor rax, rsp
mov qword [rsp + 0x50], rax
mov rax, qword [rcx + 0x128]
mov ebx, 1
mov r13, qword [rcx]
mov r14, r9
mov rsi, r8
mov r15d, edx
mov r12, rcx
mov ebp, ebx
mov rdi, qword [rax]
mov eax, 0xd0
cmp edx, eax
ja 0x18005d9fc
cmp edx, eax
je 0x18005d9f0
mov eax, 0x81
cmp edx, eax
ja 0x18005d88a
je 0x18005d877
cmp edx, 0xe
ja 0x18005d74f
je 0x18005d746
mov eax, edx
sub eax, ebx
je 0x18005d730
sub eax, 6
je 0x18005d642
sub eax, ebx
je 0x18005d59c
sub eax, 2
je 0x18005d572
sub eax, 2
je 0x18005d562
cmp eax, ebx
jne 0x18005df69
mov r9d, ebx
mov r8, r14
mov edx, esi
mov rcx, rdi
call fcn.180057e54
mov ebp, eax
jmp 0x18005dfab
mov rdx, r14
mov rcx, rdi
call fcn.18005bbf4
jmp 0x18005dfa8
mov ebp, dword [rdi + 0x74]
neg esi
sbb ecx, ecx
and ebp, 0xffffffdf
not ecx
and ecx, 0x20
or ebp, ecx
mov dword [rdi + 0x74], ebp
shr rbp, 5
and rbp, rbx
mov edx, ebx
mov rcx, rdi
call fcn.18005af9c
jmp 0x18005dfab
test rdi, rdi
je 0x18005dfab
mov rcx, qword gs:[0x30]
mov rax, qword [sym.USER32.dll_DwmGetDxRgn]
mov rcx, qword [rcx + 0x890]
call qword [case.0x18001f7d3.0]
test eax, eax
je 0x18005df69
mov rax, qword [sym.USER32.dll_DwmGetDxRgn]
mov rcx, r13
call qword [case.0x18001f7d3.0]
mov rbx, rax
test rax, rax
je 0x18005df69
test byte [rdi + 0x78], 2
jne 0x18005d600
test byte [rdi + 0x7c], 4
jne 0x18005d600
test byte [rdi + 0x78], 0x20
je 0x18005d62a
mov r8d, 4
jmp 0x18005d603
mov r8d, ebp
mov rax, qword [sym.USER32.dll_DwmGetDxRgn]
xor r9d, r9d
mov rcx, rbx
lea edx, [r9 + 0x15]
call qword [case.0x18001f7d3.0]
test byte [rdi + 0x78], 0x20
je 0x18005d62a
xor edx, edx
mov rcx, rdi
call fcn.18005ab00
mov rax, qword [sym.USER32.dll_DwmGetDxRgn]
mov rdx, rbx
mov rcx, r13
call qword [case.0x18001f7d3.0]
jmp 0x18005df69
test rdi, rdi
je 0x18005dfab
test byte [rdi + 0x74], 8
jne 0x18005df69
mov rax, qword gs:[0x30]
mov r12, qword [rax + 0x890]
mov rax, qword [sym.USER32.dll_DwmGetDxRgn]
mov rcx, r12
call qword [case.0x18001f7d3.0]
test eax, eax
je 0x18005d70c
mov rax, qword [sym.USER32.dll_DwmGetDxRgn]
mov rcx, r13
call qword [case.0x18001f7d3.0]
mov rbx, rax
test rax, rax
je 0x18005d6fe
test byte [rdi + 0x7c], 2
je 0x18005d6b6
xor r9d, r9d
mov rcx, rax
mov rax, qword [sym.USER32.dll_DwmGetDxRgn]
lea edx, [r9 + 0x15]
lea r8d, [r9 + 4]
call qword [case.0x18001f7d3.0]
mov rcx, rdi
call fcn.1800582dc
mov rax, qword [sym.USER32.dll_DwmGetDxRgn]
mov rcx, rbx
call qword [case.0x18001f7d3.0]
test rax, rax
je 0x18005d6eb
bts dword [rax + 0x16c], 0x12
mov rcx, rbx
mov rax, qword [sym.USER32.dll_DwmGetDxRgn]
call qword [case.0x18001f7d3.0]
mov rax, qword [sym.USER32.dll_DwmGetDxRgn]
mov rdx, rbx
mov rcx, r13
call qword [case.0x18001f7d3.0]
or dword [rdi + 0x160], 0xffffffff
or dword [rdi + 0x164], 0xffffffff
mov ecx, 0x400
call sym.USER32.dll_GetAppCompatFlags2
bt eax, 0x11
jb 0x18005df69
mov rdx, r12
mov rcx, rdi
call fcn.180058528
jmp 0x18005df69
test rdi, rdi
je 0x18005dfab
mov rcx, rdi
call fcn.180057d80
jmp 0x18005df69
movsxd rbp, dword [rdi + 0x10]
jmp 0x18005dfab
mov eax, r15d
sub eax, 0x30
je 0x18005d863
sub eax, ebx
je 0x18005d857
sub eax, 0x20
je 0x18005d7d8
sub eax, 0x1f
je 0x18005d91b
cmp eax, 0xb
jne 0x18005df69
mov edx, r14d
call fcn.180008ea8
add eax, 0xfffffffa
cmp eax, ebx
jbe 0x18005d7ce
movsx eax, r14w
shr r14, 0x10
test byte [r12 + 0x14], 8
mov dword [rsp + 0x38], eax
movsx eax, r14w
mov dword [rsp + 0x3c], eax
jne 0x18005dfbb
mov rcx, r12
call fcn.18005b01c
test eax, eax
je 0x18005dfbb
lea r8, [rsp + 0x38]
mov rdx, rdi
mov rcx, r13
call fcn.18005b13c
jmp 0x18005dfbb
mov edx, 0x7b
jmp 0x18005e041
test rdi, rdi
je 0x18005dfab
mov rax, qword gs:[0x30]
mov rcx, rdi
mov rbx, qword [rax + 0x890]
mov rdx, rbx
call fcn.180058528
test byte [rdi + 0x78], 0x20
je 0x18005d80c
xor edx, edx
mov rcx, rdi
call fcn.18005ab00
test byte [rdi + 0x74], 8
je 0x18005df69
mov rax, qword [sym.USER32.dll_DwmGetDxRgn]
mov rcx, rbx
call qword [case.0x18001f7d3.0]
test eax, eax
je 0x18005df69
mov rcx, rdi
call fcn.1800582dc
lea rcx, [rsp + 0x30]
call qword [sym.imp.win32u.dll_NtUserGetCaretPos]
mov r8d, dword [rsp + 0x34]
mov rcx, rdi
mov edx, dword [rsp + 0x30]
call fcn.180058394
jmp 0x18005df69
mov rbp, qword [rdi + 0xc0]
jmp 0x18005dfab
movzx r8d, r14w
mov rdx, rsi
mov rcx, rdi
call fcn.180058b6c
jmp 0x18005dfab
mov r8, r14
mov rdx, r12
mov rcx, rdi
call fcn.180058614
jmp 0x18005dfa8
mov eax, 0xba
cmp r15d, eax
ja 0x18005d931
je 0x18005d928
mov eax, r15d
sub eax, 0x82
je 0x18005d91b
sub eax, 0x2e
je 0x18005d8f0
sub eax, 2
je 0x18005d8e2
sub eax, 6
je 0x18005d8d3
cmp eax, ebx
jne 0x18005df69
neg rsi
sbb eax, eax
and dword [rdi + 0x74], 0xffffffef
and eax, 0x10
or dword [rdi + 0x74], eax
jmp 0x18005dfab
mov ebp, dword [rdi + 0x74]
shr rbp, 4
and rbp, rbx
jmp 0x18005dfab
movups xmm0, xmmword [rdi + 0x50]
movdqu xmmword [r9], xmm0
jmp 0x18005dfab
test rsi, rsi
je 0x18005d8fb
mov eax, dword [rdi + 0x18]
mov dword [r8], eax
test r14, r14
je 0x18005d906
mov eax, dword [rdi + 0x1c]
mov dword [r9], eax
movzx ecx, word [rdi + 0x1c]
movzx eax, word [rdi + 0x18]
shl ecx, 0x10
or ecx, eax
movsxd rbp, ecx
jmp 0x18005dfab
mov rdx, rdi
call fcn.1800587f4
jmp 0x18005dfbb
movsxd rbp, dword [rdi + 0x14]
jmp 0x18005dfab
mov eax, r15d
sub eax, 0xc5
je 0x18005d9c2
sub eax, ebx
je 0x18005d9b1
sub eax, 6
je 0x18005d9a2
sub eax, ebx
je 0x18005d991
cmp eax, 2
jne 0x18005df69
mov rax, rsi
mov edx, 0xd08
neg rax
sbb ecx, ecx
btr dword [rdi + 0x74], 0x13
and ecx, 0x80000
or dword [rdi + 0x74], ecx
mov rcx, r12
test rsi, rsi
je 0x18005d97f
call fcn.18007d800
jmp 0x18005d984
call fcn.18002f07c
mov rcx, rdi
call fcn.180057d80
jmp 0x18005d58d
lea rcx, [rdi + 0xa0]
call fcn.18005a70c
jmp 0x18005dfab
mov edx, esi
mov rcx, rdi
call fcn.180059208
jmp 0x18005dfab
xor ebp, ebp
cmp dword [rdi + 0xa0], ebp
setne bpl
jmp 0x18005dfab
test byte [rdi + 0x74], bl
je 0x18005d9df
test rsi, rsi
je 0x18005d9da
mov eax, 0x7ffffffe
cmp rsi, rax
jbe 0x18005d9df
mov esi, eax
jmp 0x18005d9df
mov esi, 0x7ffffffe
or eax, 0xffffffff
test rsi, rsi
cmovne eax, esi
mov dword [rdi + 0xc], eax
jmp 0x18005dfab
mov qword [rdi + 0x90], r14
jmp 0x18005dfab
mov edx, 0x10d
cmp r15d, edx
ja 0x18005dd54
je 0x18005dd46
lea eax, [rdx - 0x36]
cmp r15d, eax
ja 0x18005dada
je 0x18005da9c
mov eax, r15d
sub eax, 0xd1
je 0x18005da90
sub eax, ebx
je 0x18005da88
sub eax, ebx
je 0x18005da73
sub eax, ebx
je 0x18005da59
sub eax, ebx
je 0x18005da51
cmp eax, ebx
jne 0x18005df69
mov eax, dword [rdi + 0x10]
cmp rsi, rax
jb 0x18005df69
jmp 0x18005dad1
mov eax, dword [rdi + 0xc]
jmp 0x18005e05b
movzx eax, word [rdi + 0x10c]
movzx ecx, word [rdi + 0x110]
shl ecx, 0x10
or eax, ecx
cdqe
jmp 0x18005e05b
mov r9d, ebx
mov r8d, r14d
mov edx, esi
mov rcx, rdi
call fcn.1800590d4
jmp 0x18005dfbb
mov ebp, dword [rdi + 0x34]
jmp 0x18005dfab
mov rbp, qword [rdi + 0x90]
jmp 0x18005dfab
movsx eax, r14w
lea rdx, [rsp + 0x40]
mov dword [rsp + 0x30], eax
mov rax, r14
shr rax, 0x10
cwde
mov dword [rsp + 0x34], eax
call fcn.180008e18
mov rdx, qword [rsp + 0x30]
lea rcx, [rsp + 0x40]
call sym.USER32.dll_PtInRect
test eax, eax
jne 0x18005df69
or rax, 0xffffffffffffffff
jmp 0x18005e05b
mov eax, r15d
sub eax, 0xd8
je 0x18005dd33
sub eax, ebx
je 0x18005dd21
sub eax, 0x27
je 0x18005dc1c
sub eax, ebx
je 0x18005db25
cmp eax, 5
jne 0x18005df69
bt r14, 0xd
jae 0x18005db1b
cmp si, 8
jne 0x18005db1b
mov rax, rbx
jmp 0x18005e05b
mov edx, 0x106
jmp 0x18005e04a
test rdi, rdi
je 0x18005dfab
cmp qword [rdi + 0x120], 0
je 0x18005df69
mov r12d, dword [rdi + 0x74]
bt r12d, 0x1d
jae 0x18005df69
mov eax, 0x10000000
test eax, r12d
je 0x18005df69
mov ebx, 0xefffffff
mov rcx, r13
and r12d, ebx
mov ebx, 0xfffffff0
mov dword [rdi + 0x74], r12d
mov edx, ebx
shr r12d, 0x1f
call sym.USER32.dll_GetWindowLongW
and eax, 0xfffffffc
xor r9d, r9d
mov r8d, eax
mov edx, ebx
mov rcx, r13
call fcn.18002c134
mov ebx, dword [rdi + 0x78]
mov edx, 0xffffffec
mov rcx, r13
call sym.USER32.dll_GetWindowLongW
xor r9d, r9d
mov rcx, r13
lea edx, [r9 - 0x14]
test bl, 0x40
je 0x18005dbcc
and eax, 0xffff8fff
mov r8d, eax
call fcn.18002c134
mov rax, qword [rdi + 0x48]
movzx r8d, word [rax + 0x98]
or r8, 0x7000000
jmp 0x18005dbec
or eax, 0x7000
mov r8d, eax
call fcn.18002c134
mov rax, qword [rdi + 0x48]
movzx r8d, word [rax + 0x98]
or r8, 0x7010000
mov r9, qword [rdi + 0x40]
mov edx, 0x111
mov rcx, qword [rdi + 0x60]
call sym.USER32.dll_SendMessageW
mov eax, dword [rdi + 0x74]
shr eax, 0x1f
cmp r12d, eax
jne 0x18005df69
mov edx, ebp
mov rcx, rdi
call fcn.18005af9c
jmp 0x18005df69
test rdi, rdi
je 0x18005dfab
cmp qword [rdi + 0x120], 0
je 0x18005df69
mov eax, dword [rdi + 0x74]
mov ebx, 0xefffffff
and eax, ebx
mov dword [rdi + 0x74], eax
cmp rsi, 0x10
je 0x18005dc7a
cmp rsi, 0x25
je 0x18005dc68
cmp rsi, 0x27
jne 0x18005df69
test eax, eax
jns 0x18005df69
mov esi, 0x25
jmp 0x18005df69
test eax, eax
jns 0x18005df69
mov esi, 0x27
jmp 0x18005df69
bt eax, 0x1d
jae 0x18005df69
mov ecx, 0x11
call sym.USER32.dll_GetKeyState
mov r12d, 0x8000
test r12w, ax
je 0x18005df69
mov ecx, 0x12
call sym.USER32.dll_GetKeyState
test r12w, ax
jne 0x18005df69
xor r9d, r9d
mov eax, r14d
sar eax, 0x10
xor r8d, r8d
movzx ecx, al
lea edx, [r9 + 3]
call qword [sym.imp.win32u.dll_NtUserMapVirtualKeyEx]
mov ecx, dword [rdi + 0x74]
cmp eax, 0xa0
jne 0x18005dcfb
test ecx, ecx
js 0x18005dce6
test byte [rdi + 0x88], 2
jne 0x18005dce6
xor eax, eax
jmp 0x18005dceb
mov eax, 0x10000000
and ecx, ebx
or ecx, eax
or dword [rdi + 0x78], 0x40
mov dword [rdi + 0x74], ecx
jmp 0x18005df69
test ecx, ecx
jns 0x18005dd0c
test byte [rdi + 0x88], 2
jne 0x18005dd0c
xor eax, eax
jmp 0x18005dd11
mov eax, 0x10000000
and ecx, ebx
or ecx, eax
and dword [rdi + 0x78], 0xffffffbf
mov dword [rdi + 0x74], ecx
jmp 0x18005df69
cmp rsi, rbx
jne 0x18005dfab
movzx eax, word [rdi + 0x7c]
jmp 0x18005e05b
cmp rsi, rbx
jne 0x18005dfab
mov word [rdi + 0x7c], r14w
jmp 0x18005dfab
test byte [rdi + 0x78], bl
jne 0x18005dfab
jmp 0x18005e04a
mov eax, 0x205
cmp r15d, eax
ja 0x18005df4c
je 0x18005df34
mov eax, r15d
sub eax, 0x10e
je 0x18005de58
sub eax, ebx
je 0x18005de45
sub eax, 0xf1
je 0x18005de36
sub eax, ebx
je 0x18005dda0
cmp eax, 3
jne 0x18005df69
bts dword [rdi + 0x74], 0x1a
jmp 0x18005df69
call fcn.18005b01c
test eax, eax
je 0x18005dfab
mov eax, dword [rdi + 0x78]
mov ebx, eax
shr ebx, 6
sbb ebx, ebx
test ebx, ebx
jne 0x18005ddc3
test al, 0x10
je 0x18005df69
mov rcx, qword [rdi + 0x40]
and eax, 0xfffffffd
mov dword [rdi + 0x78], eax
mov rax, qword [sym.USER32.dll_DwmGetDxRgn]
call qword [case.0x18001f7d3.0]
mov r12, rax
test rax, rax
je 0x18005de1b
mov cl, bl
neg cl
mov rcx, rax
mov rax, qword [sym.USER32.dll_DwmGetDxRgn]
sbb r8d, r8d
xor r9d, r9d
and r8d, 3
inc r8d
lea edx, [r9 + 0x15]
call qword [case.0x18001f7d3.0]
mov rcx, qword [rdi + 0x40]
mov rdx, r12
mov rax, qword [sym.USER32.dll_DwmGetDxRgn]
call qword [case.0x18001f7d3.0]
test bl, bl
je 0x18005de29
xor edx, edx
mov rcx, rdi
call fcn.18005ab00
mov rcx, rdi
call fcn.180058a44
jmp 0x18005df69
test byte [rdi + 0x74], 4
jne 0x18005df69
jmp 0x18005dfab
mov r8, r14
mov rdx, rsi
mov rcx, rdi
call fcn.180057ed8
jmp 0x18005e05b
xor edx, edx
mov rcx, rdi
call fcn.18005ab00
mov eax, dword [rdi + 0x78]
test al, 2
je 0x18005df2a
mov edx, dword [rdi + 0x20]
and eax, 0xfffffffd
mov dword [rdi + 0x78], eax
mov eax, dword [rdi + 0x74]
and eax, 0x400000
mov dword [rdi + 0x18], edx
neg eax
sbb ecx, ecx
neg ecx
lea eax, [rbx + rcx]
mov rcx, rdi
add eax, edx
cmp eax, dword [rdi + 0x10]
cmovae eax, dword [rdi + 0x10]
mov dword [rdi + 0x1c], eax
test byte [rdi + 0x74], bl
je 0x18005df1d
call fcn.18005a12c
test eax, eax
je 0x18005df22
mov rax, qword [rdi + 0x48]
mov edx, 0x111
mov r9, qword [rdi + 0x40]
mov rcx, qword [rdi + 0x60]
movzx r8d, word [rax + 0x98]
bts r8, 0x1a
call sym.USER32.dll_SendMessageW
xor edx, edx
mov rcx, rdi
call fcn.18005aa50
xor r8d, r8d
mov rdx, rax
mov rcx, rdi
mov rbx, rax
call fcn.180063588
xor r8d, r8d
mov rdx, rbx
mov rcx, rdi
call fcn.18005b690
mov rax, qword [rdi + 0x48]
mov edx, 0x111
mov r9, qword [rdi + 0x40]
mov rcx, qword [rdi + 0x60]
movzx r8d, word [rax + 0x98]
or r8, 0x3000000
call sym.USER32.dll_SendMessageW
mov rbx, rbp
jmp 0x18005df22
call fcn.18005ee0c
mov rcx, rdi
call fcn.180058a44
mov edx, 0x10e
jmp 0x18005e041
mov eax, dword [rdi + 0x74]
bt eax, 0x1a
jae 0x18005dfbb
btr eax, 0x1a
test byte [rdi + 0x78], 0x20
mov dword [rdi + 0x74], eax
je 0x18005df69
jmp 0x18005dfbb
mov eax, r15d
sub eax, 0x281
je 0x18005dfd5
sub eax, 7
je 0x18005dfc2
sub eax, 0x78
je 0x18005dfb3
sub eax, ebx
je 0x18005dfa0
cmp eax, 2
je 0x18005df96
test rdi, rdi
je 0x18005dfab
mov r9, rsi
mov qword [rsp + 0x20], r14
mov r8d, r15d
mov rdx, rdi
mov rcx, r13
test byte [rdi + 0x74], bpl
je 0x18005df8f
call fcn.180063978
mov rbp, rax
jmp 0x18005dfab
call fcn.18005f738
jmp 0x18005df8a
mov rcx, rdi
call fcn.180059f94
jmp 0x18005dfbb
mov rcx, rdi
call fcn.180059fe0
movsxd rbp, eax
mov rax, rbp
jmp 0x18005e05b
mov rcx, rdi
call fcn.18005a0e4
xor eax, eax
jmp 0x18005e05b
mov r8, r14
mov rdx, rsi
mov rcx, rdi
call fcn.180059550
jmp 0x18005e05b
test byte [rdi + 0x78], bl
je 0x18005dfdf
btr r14d, 0x1f
test rsi, rsi
je 0x18005e03c
mov rax, qword [sym.USER32.dll_DwmGetDxRgn]
mov rcx, r13
call qword [case.0x18001f7d3.0]
mov rbx, rax
mov rcx, rax
mov rax, qword [sym.USER32.dll_DwmGetDxRgn]
call qword [case.0x18001f7d3.0]
test rax, rax
je 0x18005e024
btr dword [rax + 0x16c], 0x12
mov rcx, rbx
mov rax, qword [sym.USER32.dll_DwmGetDxRgn]
call qword [case.0x18001f7d3.0]
mov rax, qword [sym.USER32.dll_DwmGetDxRgn]
mov rdx, rbx
mov rcx, r13
call qword [case.0x18001f7d3.0]
mov ebx, 1
mov edx, 0x281
mov rcx, r12
mov r8, rsi
mov r9, r14
mov eax, dword [rdi + 0x74]
shr eax, 0x16
and eax, ebx
mov dword [rsp + 0x20], eax
call fcn.180009510
mov rcx, qword [rsp + 0x50]
xor rcx, rsp
call fcn.180033470
lea r11, [rsp + 0x60]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret