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

Disassembly:
mov rax, rsp
mov qword [rax + 0x20], r9
mov qword [rax + 0x18], r8
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xa0
mov qword [rsp + 0x98], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov r14d, edx
mov rdi, rcx
xor r10d, r10d
cmp r9, r10
jne 0x140030376
xor eax, eax
jmp 0x140030cee
mov r13d, 1
mov esi, r13d
mov dword [rsp + 0x28], r13d
mov dword [rsp + 0x80], r10d
mov dword [rsp + 0x84], r10d
mov rax, qword [rcx + 0x68]
mov qword [rsp + 0x38], rax
test byte [rcx + 0x50], r13b
je 0x14003045c
mov r8d, dword [rcx + 0x8c]
mov edx, r10d
cmp r8d, r10d
cmovg edx, r8d
mov r9d, dword [rcx + 0x94]
mov ecx, r10d
cmp r9d, r10d
cmovg ecx, r9d
mov eax, dword [rdi + 0x60]
sub eax, dword [rdi + 0x58]
sub eax, ecx
sub eax, edx
mov ebp, dword [rsp + 0x38]
cmp ebp, eax
jg 0x1400303fd
mov ecx, r10d
cmp r8d, r10d
cmovg ecx, r8d
mov eax, r10d
cmp r9d, r10d
cmovg eax, r9d
mov ebp, dword [rdi + 0x60]
sub ebp, dword [rdi + 0x58]
sub ebp, eax
sub ebp, ecx
mov dword [rsp + 0x38], ebp
mov r8d, dword [rdi + 0x90]
mov edx, r10d
cmp r8d, r10d
cmovg edx, r8d
mov r9d, dword [rdi + 0x98]
mov ecx, r10d
cmp r9d, r10d
cmovg ecx, r9d
mov eax, dword [rdi + 0x64]
sub eax, dword [rdi + 0x5c]
sub eax, ecx
sub eax, edx
mov r12d, dword [rsp + 0x3c]
cmp r12d, eax
jg 0x140030465
mov ecx, r10d
cmp r8d, r10d
cmovg ecx, r8d
mov eax, r10d
cmp r9d, r10d
cmovg eax, r9d
mov r12d, dword [rdi + 0x64]
sub r12d, dword [rdi + 0x5c]
sub r12d, eax
sub r12d, ecx
mov dword [rsp + 0x3c], r12d
jmp 0x140030465
mov r12d, dword [rsp + 0x3c]
mov ebp, dword [rsp + 0x38]
mov r9d, dword [rdi + 0x4c]
mov dword [rsp + 0x44], r9d
mov rcx, qword [rdi + 0xa0]
cmp qword [rcx + 0x10], r10
je 0x14003057a
mov dword [rsp + 0x20], r10d
mov dword [rsp + 0x24], r10d
mov rcx, qword [rcx + 0x10]
mov rax, qword [rcx]
lea r8, [rsp + 0x20]
mov edx, dword [rdi + 0x44]
call qword [rax + 8]
mov r11d, dword [rsp + 0x20]
cmp dword [rsp + 0xf0], r11d
cmovg r11d, dword [rsp + 0xf0]
mov eax, dword [rdi + 0x84]
cmp r11d, eax
cmovg eax, r11d
mov dword [rsp + 0xf0], eax
mov ecx, dword [rsp + 0x24]
cmp dword [rsp + 0xf4], ecx
cmovg ecx, dword [rsp + 0xf4]
mov eax, dword [rdi + 0x88]
cmp ecx, eax
cmovg eax, ecx
mov dword [rsp + 0xf4], eax
mov rax, qword [rdi + 0xa0]
mov rcx, qword [rax + 0x10]
mov rax, qword [rcx]
lea r9, [rdi + 0x8c]
mov r8d, dword [rdi + 0x4c]
mov edx, dword [rdi + 0x44]
call qword [rax + 0x10]
xor r10d, r10d
mov edx, r10d
cmp dword [rdi + 0x8c], r10d
cmovg edx, dword [rdi + 0x8c]
mov eax, dword [rdi + 0x94]
mov ecx, r10d
cmp eax, r10d
cmovg ecx, eax
lea eax, [rcx + rdx]
mov r8d, dword [rsp + 0xf0]
add r8d, eax
mov dword [rsp + 0xf0], r8d
mov eax, dword [rdi + 0x90]
mov edx, r10d
cmp eax, r10d
cmovg edx, eax
mov eax, dword [rdi + 0x98]
mov ecx, r10d
cmp eax, r10d
cmovg ecx, eax
lea eax, [rcx + rdx]
mov edx, dword [rsp + 0xf4]
add edx, eax
mov dword [rsp + 0xf4], edx
mov r9d, dword [rsp + 0x44]
jmp 0x140030589
mov edx, dword [rsp + 0xf4]
mov r8d, dword [rsp + 0xf0]
test dword [rdi + 0x48], r14d
cmove r14d, r9d
mov dword [rsp + 0x2c], r10d
test r13b, r14b
je 0x1400305bc
sub r8d, ebp
mov ebp, r10d
cmp r8d, r10d
cmovg ebp, r8d
sub edx, r12d
mov r15d, r10d
cmp edx, r10d
cmovg r15d, edx
mov dword [rsp + 0x30], r15d
jmp 0x140030627
test r14d, 0x1f80
je 0x1400305f6
mov dword [rsp + 0x2c], r13d
sub r8d, ebp
mov ebp, r10d
cmp r8d, r10d
cmovg ebp, r8d
mov ecx, edx
sub ecx, r12d
mov eax, r10d
cmp ecx, r10d
cmovg eax, ecx
mov r15d, edx
cmp r14d, r9d
cmove r15d, eax
mov dword [rsp + 0x30], r15d
jmp 0x140030627
mov dword [rsp + 0x2c], 2
mov ecx, r8d
sub ecx, ebp
mov eax, r10d
cmp ecx, r10d
cmovg eax, ecx
mov ebp, r8d
cmp r14d, r9d
cmove ebp, eax
sub edx, r12d
mov r15d, r10d
cmp edx, r10d
cmovg r15d, edx
mov dword [rsp + 0x30], r15d
mov dword [rsp + 0x20], r10d
mov dword [rsp + 0x24], r10d
lea r8, [rsp + 0x20]
mov edx, r14d
mov rcx, rdi
call fcn.14002fc64
mov rbx, qword [rsp + 0x20]
mov qword [rsp + 0x48], rbx
mov rax, qword [rsp + 0xf8]
xor ecx, ecx
mov dword [rax], ecx
mov r12d, ebx
cmp ebp, ebx
jle 0x140030887
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x58], rcx
mov qword [rsp + 0x60], rcx
mov qword [rsp + 0x68], rcx
mov qword [rsp + 0x70], rcx
mov dword [rsp + 0x78], 0xa
lea r8, [rsp + 0x50]
mov edx, r14d
mov rcx, rdi
call fcn.140032570
mov esi, eax
xor r9d, r9d
mov dword [rsp + 0x40], r9d
mov rdx, qword [rsp + 0x60]
test rdx, rdx
je 0x140030784
test esi, esi
je 0x140030784
cmp ebp, r12d
jle 0x140030784
mov eax, r9d
cmp rax, rdx
jb 0x1400306c8
xor ecx, ecx
jmp 0x1400306e6
cmp qword [rsp + 0x50], 0
jne 0x1400306d4
xor ecx, ecx
jmp 0x1400306e6
mov rcx, qword [rsp + 0x50]
test r9d, r9d
je 0x1400306e6
mov rcx, qword [rcx]
sub rax, r13
jne 0x1400306de
xor eax, eax
test rcx, rcx
setne al
test eax, eax
je 0x140030779
mov r10, qword [rcx + 0x10]
mov rax, r10
neg rax
sbb ecx, ecx
and esi, ecx
je 0x140030763
mov ecx, dword [r10 + 0x4c]
call fcn.14002f6d8
mov dword [r10 + 0x4c], eax
mov rcx, qword [rdi]
test rcx, rcx
jne 0x140030720
mov rax, rdi
jmp 0x140030725
call fcn.140032710
test rax, rax
je 0x140030739
mov rcx, rax
call fcn.140030d10
mov esi, eax
mov r9d, dword [rsp + 0x40]
test esi, esi
je 0x14003075e
lea r8, [rsp + 0x20]
mov edx, r14d
mov rcx, rdi
call fcn.14002fc64
mov r12d, dword [rsp + 0x20]
mov rdx, qword [rsp + 0x60]
mov r9d, dword [rsp + 0x40]
jmp 0x140030763
mov rdx, qword [rsp + 0x60]
add r9d, r13d
mov dword [rsp + 0x40], r9d
mov eax, r9d
cmp rax, rdx
jb 0x1400306ab
jmp 0x140030784
mov ecx, 0x80004005
call fcn.140015f3c
int3
cmp dword [rsp + 0x2c], 2
jne 0x140030796
mov rax, qword [rsp + 0xf8]
mov dword [rax], r12d
cmp ebp, r12d
jle 0x14003086b
test esi, esi
je 0x14003086b
cmp dword [rsp + 0x100], 0
jne 0x14003086b
xor r10d, r10d
test r9d, r9d
je 0x14003083a
test esi, esi
je 0x14003086b
mov eax, r9d
cmp rax, rdx
ja 0x14003083a
mov eax, r10d
cmp rax, rdx
jb 0x1400307d9
xor ecx, ecx
jmp 0x1400307f7
cmp qword [rsp + 0x50], 0
jne 0x1400307e5
xor ecx, ecx
jmp 0x1400307f7
mov rcx, qword [rsp + 0x50]
test r10d, r10d
je 0x1400307f7
mov rcx, qword [rcx]
sub rax, r13
jne 0x1400307ef
xor eax, eax
test rcx, rcx
setne al
test eax, eax
je 0x14003082f
mov r11, qword [rcx + 0x10]
mov rax, r11
neg rax
sbb ecx, ecx
and esi, ecx
je 0x140030825
mov ecx, dword [r11 + 0x4c]
call fcn.14002f6d8
mov dword [r11 + 0x4c], eax
mov rdx, qword [rsp + 0x60]
add r10d, r13d
cmp r10d, r9d
jb 0x1400307bd
jmp 0x14003083a
mov ecx, 0x80004005
call fcn.140015f3c
int3
test esi, esi
je 0x14003086b
lea r8, [rsp + 0x20]
mov edx, r14d
mov rcx, rdi
call fcn.14002fc64
and dword [rsp + 0x28], 0
mov ebp, dword [rsp + 0x24]
mov r12d, dword [rsp + 0x20]
cmp r12d, ebx
jne 0x140030867
cmp ebp, dword [rsp + 0x4c]
je 0x14003086f
xor esi, esi
jmp 0x14003086f
mov ebp, dword [rsp + 0x24]
lea rcx, [rsp + 0x50]
call fcn.14001fcc8
xor ecx, ecx
cmp dword [rsp + 0x28], ecx
je 0x140030aa3
jmp 0x14003088b
mov ebp, dword [rsp + 0x24]
cmp r15d, ebp
jle 0x140030aa3
cmp esi, ecx
je 0x140030aa3
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x58], rcx
mov qword [rsp + 0x60], rcx
mov qword [rsp + 0x68], rcx
mov qword [rsp + 0x70], rcx
mov dword [rsp + 0x78], 0xa
lea r8, [rsp + 0x50]
mov edx, r14d
mov rcx, rdi
call fcn.140032570
mov esi, eax
xor r15d, r15d
mov rdx, qword [rsp + 0x60]
test rdx, rdx
je 0x1400309b4
mov r12d, dword [rsp + 0x30]
test esi, esi
je 0x1400309af
cmp r12d, ebp
jle 0x1400309af
mov eax, r15d
cmp rax, rdx
jb 0x140030902
xor ecx, ecx
jmp 0x140030920
cmp qword [rsp + 0x50], 0
jne 0x14003090e
xor ecx, ecx
jmp 0x140030920
mov rcx, qword [rsp + 0x50]
test r15d, r15d
je 0x140030920
mov rcx, qword [rcx]
sub rax, r13
jne 0x140030918
xor eax, eax
test rcx, rcx
setne al
test eax, eax
je 0x1400309a4
mov r9, qword [rcx + 0x10]
mov rax, r9
neg rax
sbb ecx, ecx
and esi, ecx
je 0x14003098e
mov ecx, dword [r9 + 0x4c]
call fcn.14002f6d8
mov dword [r9 + 0x4c], eax
mov rcx, qword [rdi]
test rcx, rcx
jne 0x140030956
mov rax, rdi
jmp 0x14003095b
call fcn.140032710
test rax, rax
je 0x14003096a
mov rcx, rax
call fcn.140030d10
mov esi, eax
test esi, esi
je 0x140030989
lea r8, [rsp + 0x20]
mov edx, r14d
mov rcx, rdi
call fcn.14002fc64
mov ebp, dword [rsp + 0x24]
mov rdx, qword [rsp + 0x60]
jmp 0x14003098e
mov rdx, qword [rsp + 0x60]
add r15d, r13d
mov eax, r15d
cmp rax, rdx
jb 0x1400308e5
mov r12d, dword [rsp + 0x20]
jmp 0x1400309b4
mov ecx, 0x80004005
call fcn.140015f3c
int3
mov r12d, dword [rsp + 0x20]
cmp dword [rsp + 0x2c], r13d
jne 0x1400309c5
mov rax, qword [rsp + 0xf8]
mov dword [rax], ebp
cmp dword [rsp + 0x30], ebp
jle 0x140030a99
test esi, esi
je 0x140030a99
cmp dword [rsp + 0x100], 0
jne 0x140030a99
xor r9d, r9d
test r15d, r15d
je 0x140030a6a
test esi, esi
je 0x140030a99
mov eax, r15d
cmp rax, rdx
ja 0x140030a6a
mov eax, r9d
cmp rax, rdx
jb 0x140030a09
xor ecx, ecx
jmp 0x140030a27
cmp qword [rsp + 0x50], 0
jne 0x140030a15
xor ecx, ecx
jmp 0x140030a27
mov rcx, qword [rsp + 0x50]
test r9d, r9d
je 0x140030a27
mov rcx, qword [rcx]
sub rax, r13
jne 0x140030a1f
xor eax, eax
test rcx, rcx
setne al
test eax, eax
je 0x140030a5f
mov r10, qword [rcx + 0x10]
mov rax, r10
neg rax
sbb ecx, ecx
and esi, ecx
je 0x140030a55
mov ecx, dword [r10 + 0x4c]
call fcn.14002f6d8
mov dword [r10 + 0x4c], eax
mov rdx, qword [rsp + 0x60]
add r9d, r13d
cmp r9d, r15d
jb 0x1400309ed
jmp 0x140030a6a
mov ecx, 0x80004005
call fcn.140015f3c
int3
test esi, esi
je 0x140030a99
lea r8, [rsp + 0x20]
mov edx, r14d
mov rcx, rdi
call fcn.14002fc64
and dword [rsp + 0x28], 0
mov ebp, dword [rsp + 0x24]
mov r12d, dword [rsp + 0x20]
cmp r12d, ebx
jne 0x140030a97
cmp ebp, dword [rsp + 0x4c]
je 0x140030a99
xor esi, esi
lea rcx, [rsp + 0x50]
call fcn.14001fcc8
xor edx, edx
cmp dword [rdi + 0x8c], edx
cmovg edx, dword [rdi + 0x8c]
mov eax, dword [rdi + 0x94]
xor ecx, ecx
test eax, eax
cmovg ecx, eax
lea eax, [rcx + rdx]
mov r8d, dword [rsp + 0xf0]
sub r8d, eax
mov dword [rsp + 0xf0], r8d
mov eax, dword [rdi + 0x90]
xor edx, edx
test eax, eax
cmovg edx, eax
mov eax, dword [rdi + 0x98]
xor ecx, ecx
test eax, eax
cmovg ecx, eax
lea eax, [rcx + rdx]
mov edx, dword [rsp + 0xf4]
sub edx, eax
mov dword [rsp + 0xf4], edx
mov ebx, dword [rsp + 0x28]
test ebx, ebx
je 0x140030c9f
lea rbx, [rsp + 0x38]
lea rax, [rsp + 0x80]
cmp r14d, dword [rsp + 0x44]
cmovne rbx, rax
mov rbx, qword [rbx]
mov qword [rsp + 0x20], rbx
lea eax, [rbx + r12]
cmp eax, r8d
cmovl r8d, eax
mov dword [rsp + 0x48], r8d
mov rcx, rbx
shr rcx, 0x20
add ecx, ebp
cmp ecx, edx
cmovl edx, ecx
mov dword [rsp + 0x4c], edx
mov dword [rdi + 0x4c], r14d
mov rcx, qword [rdi + 0xa0]
cmp dword [rcx + 0x40], 0
jne 0x140030c5c
lea rcx, [rsp + 0x88]
call qword [sym.imp.USER32.dll_SetRectEmpty]
mov rcx, qword [rdi]
test rcx, rcx
jne 0x140030b7e
mov rax, rdi
jmp 0x140030b83
call fcn.140032710
test rax, rax
je 0x140030b96
movdqu xmm0, xmmword [rax + 0x58]
movdqu xmmword [rsp + 0x88], xmm0
mov rcx, qword [rdi + 0xa0]
mov eax, dword [rcx + 0x30]
mov rdx, qword [rsp + 0x90]
sub eax, edx
sub eax, dword [rcx + 0x28]
mov r8, qword [rsp + 0x88]
add eax, r8d
test eax, eax
jle 0x140030bc9
mov eax, dword [rcx + 0x30]
sub eax, edx
sub eax, dword [rcx + 0x28]
add eax, r8d
jmp 0x140030bcb
xor eax, eax
add eax, ebx
cmp eax, dword [rsp + 0xf0]
jge 0x140030bfd
mov eax, dword [rcx + 0x30]
sub eax, dword [rcx + 0x28]
sub eax, edx
add eax, r8d
test eax, eax
jle 0x140030bf2
mov eax, dword [rcx + 0x30]
sub eax, dword [rcx + 0x28]
sub eax, edx
add eax, r8d
jmp 0x140030bf4
xor eax, eax
add eax, ebx
mov dword [rsp + 0xf0], eax
shr rdx, 0x20
shr r8, 0x20
mov eax, dword [rcx + 0x34]
sub eax, dword [rcx + 0x2c]
sub eax, edx
add eax, r8d
test eax, eax
jle 0x140030c21
mov eax, dword [rcx + 0x34]
sub eax, dword [rcx + 0x2c]
sub eax, edx
add eax, r8d
jmp 0x140030c23
xor eax, eax
mov r9d, dword [rsp + 0x24]
add eax, r9d
cmp eax, dword [rsp + 0xf4]
jge 0x140030c5c
mov eax, dword [rcx + 0x34]
sub eax, dword [rcx + 0x2c]
sub eax, edx
add eax, r8d
test eax, eax
jle 0x140030c50
mov eax, dword [rcx + 0x34]
sub eax, dword [rcx + 0x2c]
sub eax, edx
add eax, r8d
jmp 0x140030c52
xor eax, eax
add eax, r9d
mov dword [rsp + 0xf4], eax
mov rax, qword [rsp + 0x48]
cmp dword [rsp + 0x108], 0
cmovne rax, qword [rsp + 0xf0]
mov qword [rdi + 0x68], rax
cmp qword [rcx + 0x10], 0
je 0x140030c9b
mov rcx, qword [rcx + 0x10]
mov rax, qword [rcx]
lea r9, [rdi + 0x8c]
mov r8d, dword [rdi + 0x4c]
mov edx, dword [rdi + 0x44]
call qword [rax + 0x10]
mov ebx, dword [rsp + 0x28]
jmp 0x140030c9f
mov ebx, dword [rsp + 0x28]
lea rax, [rsp + 0x38]
lea rcx, [rsp + 0x80]
cmp r14d, dword [rsp + 0x44]
cmovne rax, rcx
mov rax, qword [rax]
mov edx, dword [rsp + 0x2c]
sub edx, r13d
je 0x140030cd2
cmp edx, r13d
jne 0x140030ce0
mov rcx, qword [rsp + 0xf8]
add dword [rcx], eax
jmp 0x140030ce0
shr rax, 0x20
mov rcx, qword [rsp + 0xf8]
add dword [rcx], eax
test esi, esi
je 0x140030ce8
test ebx, ebx
jne 0x140030ceb
xor r13d, r13d
mov eax, r13d
mov rbx, qword [rsp + 0xe0]
add rsp, 0xa0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret