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

Disassembly:
mov byte [rsp + 0x20], r9b
mov qword [rsp + 0x18], r8
push rsi
push rdi
push r12
push r13
sub rsp, 0x98
mov eax, dword [rcx + 0x9e8]
movzx edi, r9b
mov r12, r8
mov r13d, edx
mov rsi, rcx
mov dword [rsp + 0x24], eax
test eax, eax
jne 0x140093029
mov rcx, r8
call qword [sym.imp.USER32.dll_SetRectEmpty]
add rsp, 0x98
pop r13
pop r12
pop rdi
pop rsi
ret
test edx, edx
js 0x140093575
cmp edx, eax
jge 0x140093575
mov qword [rsp + 0xc8], rbx
call fcn.1400818b0
mov rbx, rax
mov qword [rsp + 0x30], rax
movzx eax, byte [rax + 0xbc]
test al, 2
jne 0x14009306b
test al, 4
jne 0x14009306b
mov rcx, r12
call qword [sym.imp.USER32.dll_SetRectEmpty]
jmp 0x1400933c5
test dil, dil
je 0x140093079
lea rcx, [rbx + 0x88]
jmp 0x140093080
lea rcx, [rbx + 0x98]
mov eax, dword [rcx]
lea rdx, [rsp + 0x68]
mov dword [rdx], eax
mov eax, dword [rcx + 4]
mov dword [rdx + 4], eax
mov eax, dword [rcx + 8]
mov dword [rdx + 8], eax
mov eax, dword [rcx + 0xc]
lea rcx, [rsp + 0x68]
mov dword [rdx + 0xc], eax
call qword [sym.imp.USER32.dll_IsRectEmpty]
test eax, eax
jne 0x1400930bd
lea rdx, [rsp + 0x68]
mov rcx, r12
call qword [sym.imp.USER32.dll_CopyRect]
jmp 0x1400933c5
mov rax, qword [rsi]
mov qword [rsp + 0x90], rbp
lea rdx, [rsp + 0x48]
mov rcx, rsi
mov qword [rsp + 0x88], r14
mov qword [rsp + 0x80], r15
call qword [rax + 0x2f0]
mov r11d, dword [rsi + 0x454]
mov rax, qword [rsi]
add dword [rsp + 0x48], r11d
lea rdx, [rsp + 0x58]
mov rcx, rsi
call qword [rax + 0x4c0]
mov r14d, dword [rsp + 0x5c]
lea rcx, [rsp + 0x38]
add r14d, dword [rsi + 0x3e0]
mov dword [rsp + 0xc0], r14d
call qword [sym.imp.USER32.dll_SetRectEmpty]
cmp dword [rbx + 0xc], 0
jne 0x14009313d
mov r15d, dword [rsp + 0x58]
add r15d, 2
mov dword [rsp + 0x40], r15d
mov dword [rsp + 0x38], r15d
jmp 0x14009317f
test byte [rbx + 0xbc], 0x10
je 0x140093167
mov eax, dword [rsp + 0x58]
mov rcx, rbx
add eax, 2
mov dword [rsp + 0x38], eax
call fcn.140078ad0
mov r15d, dword [rsp + 0x38]
add eax, r15d
mov dword [rsp + 0x40], eax
jmp 0x14009317f
mov r15d, dword [rsp + 0x58]
mov eax, dword [rsi + 0x12c]
lea ecx, [r15 + rax]
mov dword [rsp + 0x38], r15d
mov dword [rsp + 0x40], ecx
xor eax, eax
xor ebx, ebx
xor ebp, ebp
mov edi, r15d
mov dword [rsp + 0x20], eax
test r13d, r13d
jle 0x1400932bd
mov r12d, dword [rsp + 0x24]
nop word [rax + rax]
cmp ebx, r12d
je 0x1400932b5
mov edx, ebx
mov rcx, rsi
call fcn.1400818b0
mov r14, rax
movzx eax, byte [rax + 0xbc]
test al, 2
jne 0x1400931c9
test al, 4
je 0x1400932a2
mov r8, qword [rsi]
mov edx, ebx
mov rcx, rsi
call qword [r8 + 0x508]
mov rcx, qword [r14 + 0x80]
mov r9d, dword [r14 + 0xc]
xor r10d, r10d
mov r8, rcx
movzx eax, al
shr r8, 0x20
mov dword [rsp + 0x28], r10d
mov dword [rsp + 0x2c], r10d
mov rdx, qword [rsp + 0x28]
mov r11d, 1
shr rdx, 0x20
add r8d, edx
test r9d, r9d
cmove eax, r11d
sub r8d, edx
mov edx, dword [rsp + 0x20]
cmp edx, r8d
cmovg r8d, edx
mov edx, r8d
mov dword [rsp + 0x20], edx
test al, al
je 0x140093279
mov r14d, dword [rsp + 0xc0]
mov edi, r15d
mov dword [rsp + 0x20], r10d
add r14d, edx
mov dword [rsp + 0xc0], r14d
test r9d, r9d
jne 0x14009326f
lea rcx, [rsi + 0xa8]
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rcx, rax
mov rdx, qword [rax]
call qword [rdx + 0x30]
lea r14d, [r14 + rax + 3]
mov dword [rsp + 0xc0], r14d
cmp ebx, r13d
jge 0x1400932aa
lea ebp, [rbx + 1]
jmp 0x1400932aa
add edi, ecx
cmp qword [r14 + 0xe8], r10
je 0x140093295
test ebx, ebx
mov eax, 6
mov ecx, 3
cmove eax, ecx
add edi, eax
mov r14d, dword [rsp + 0xc0]
add edi, 2
jmp 0x1400932aa
mov r14d, dword [rsp + 0xc0]
inc ebx
cmp ebx, r13d
jl 0x1400931a0
mov r12, qword [rsp + 0xd0]
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x4d8]
mov byte [rsp + 0xc0], al
test al, al
je 0x1400932e5
mov rdx, qword [rsi]
mov rcx, rsi
call qword [rdx + 0x4d0]
mov r15d, eax
jmp 0x1400932e8
xor r15d, r15d
mov edx, ebx
mov rcx, rsi
call fcn.1400818b0
mov r13, qword [rsp + 0x30]
mov rcx, r13
mov rdx, rax
call fcn.140091fe0
cmp dword [r13 + 0xc], 0
jne 0x1400933db
lea r8d, [r14 + 2]
lea rcx, [rsp + 0x38]
xor edx, edx
call qword [sym.imp.USER32.dll_OffsetRect]
mov r8, qword [rsp + 0x48]
mov edx, dword [rsp + 0x48]
lea rcx, [rsp + 0x38]
shr r8, 0x20
call qword [sym.imp.USER32.dll_OffsetRect]
mov r11d, dword [rsp + 0x50]
inc dword [rsp + 0x3c]
sub r11d, dword [rsp + 0x38]
lea rcx, [rsi + 0xa8]
add r11d, dword [rsp + 0x48]
mov rax, qword [rcx]
mov dword [rsp + 0x40], r11d
call qword [rax + 0x20]
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x30]
cmp byte [rsp + 0xc0], 0
mov ecx, dword [rsp + 0x3c]
lea eax, [rax + rcx + 3]
mov dword [rsp + 0x44], eax
je 0x14009338a
lea rcx, [rsp + 0x38]
mov r8d, r15d
xor edx, edx
call qword [sym.imp.USER32.dll_OffsetRect]
lea rcx, [rsp + 0x38]
mov eax, dword [rcx]
mov dword [r12], eax
mov eax, dword [rcx + 4]
mov dword [r12 + 4], eax
mov eax, dword [rcx + 8]
mov dword [r12 + 8], eax
mov eax, dword [rcx + 0xc]
mov dword [r12 + 0xc], eax
mov r14, qword [rsp + 0x88]
mov rbp, qword [rsp + 0x90]
mov r15, qword [rsp + 0x80]
mov rbx, qword [rsp + 0xc8]
add rsp, 0x98
pop r13
pop r12
pop rdi
pop rsi
ret
sub edi, dword [rsp + 0x38]
lea rcx, [rsp + 0x38]
xor r8d, r8d
mov edx, edi
call qword [sym.imp.USER32.dll_OffsetRect]
test ebx, ebx
je 0x14009340f
cmp qword [r13 + 0xe8], 0
je 0x14009340f
xor r8d, r8d
lea rcx, [rsp + 0x38]
lea edx, [r8 + 3]
call qword [sym.imp.USER32.dll_OffsetRect]
lea r8d, [r14 + 2]
lea rcx, [rsp + 0x38]
xor edx, edx
call qword [sym.imp.USER32.dll_OffsetRect]
mov r11, qword [r13 + 0x80]
mov r14d, dword [rsp + 0x24]
xor ecx, ecx
shr r11, 0x20
add r11d, dword [rsp + 0x3c]
mov dword [rsp + 0x28], ecx
mov dword [rsp + 0x2c], ecx
mov edi, ecx
mov dword [rsp + 0x44], r11d
cmp ebp, r14d
je 0x1400934ec
lea r12d, [rcx + 1]
mov edx, ebp
mov rcx, rsi
call fcn.1400818b0
mov rbx, rax
movzx ecx, byte [rax + 0xbc]
test cl, 2
jne 0x140093471
test cl, 4
je 0x1400934ba
mov r8, qword [rsi]
mov edx, ebp
mov rcx, rsi
call qword [r8 + 0x508]
mov rcx, qword [rbx + 0x80]
xor edx, edx
shr rcx, 0x20
mov dword [rsp + 0x28], edx
mov dword [rsp + 0x2c], edx
mov r8, qword [rsp + 0x28]
movzx edx, al
shr r8, 0x20
add ecx, r8d
cmp dword [rbx + 0xc], 0
cmove edx, r12d
sub ecx, r8d
cmp edi, ecx
cmovg ecx, edi
mov edi, ecx
test dl, dl
jne 0x1400934c1
inc ebp
cmp ebp, r14d
jne 0x140093453
mov r12, qword [rsp + 0xd0]
test edi, edi
jle 0x1400934ec
mov eax, dword [rsp + 0x3c]
lea rcx, [rsp + 0x38]
sub eax, dword [rsp + 0x44]
add eax, edi
cdq
sub eax, edx
xor edx, edx
sar eax, 1
mov r8d, eax
call qword [sym.imp.USER32.dll_OffsetRect]
mov r8, qword [rsp + 0x48]
mov edx, dword [rsp + 0x48]
lea rcx, [rsp + 0x38]
shr r8, 0x20
call qword [sym.imp.USER32.dll_OffsetRect]
cmp byte [rsp + 0xc0], 0
je 0x14009351e
lea rcx, [rsp + 0x38]
mov r8d, r15d
xor edx, edx
call qword [sym.imp.USER32.dll_OffsetRect]
cmp byte [rsp + 0xd8], 0
lea rcx, [rsp + 0x38]
mov eax, dword [rcx]
mov dword [r12], eax
mov eax, dword [rcx + 4]
mov dword [r12 + 4], eax
mov eax, dword [rcx + 8]
mov dword [r12 + 8], eax
mov eax, dword [rcx + 0xc]
mov dword [r12 + 0xc], eax
je 0x140093560
lea rcx, [r13 + 0x88]
mov rdx, r12
call qword [sym.imp.USER32.dll_CopyRect]
jmp 0x1400933ad
lea rcx, [r13 + 0x98]
mov rdx, r12
call qword [sym.imp.USER32.dll_CopyRect]
jmp 0x1400933ad
movzx r9d, dil
call fcn.140092a60
add rsp, 0x98
pop r13
pop r12
pop rdi
pop rsi
ret