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

Disassembly:
mov qword [rsp + 0x20], rbx
mov qword [rsp + 0x10], rdx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x340]
sub rsp, 0x440
mov rax, qword [0x14011b040]
xor rax, rsp
mov qword [rbp + 0x330], rax
mov r15, r8
mov qword [rbp - 0x58], r8
mov rbx, rcx
mov qword [rbp + 0x110], r8
mov rcx, qword [rcx + 0x20]
cmp byte [rcx + 0x11], 0
je 0x14004257f
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x58], xmm0
mov rax, qword [r8 + 8]
test rax, rax
je 0x140042545
lock inc dword [rax + 8]
mov rax, qword [r8]
mov qword [rbp - 0x58], rax
mov rax, qword [r8 + 8]
mov qword [rbp - 0x50], rax
lea r8, [rbp - 0x58]
mov rdx, qword [rbp + 0x388]
mov rcx, rbx
call fcn.140043640
nop
mov rdi, qword [r15 + 8]
test rdi, rdi
je 0x140043607
mov ebx, 0xffffffff
jmp 0x1400435e0
xor r12d, r12d
mov qword [rsp + 0x38], r12
mov r13d, dword [rbx + 0xc]
mov dword [rsp + 0x58], r13d
mov dword [rsp + 0x30], r13d
mov esi, dword [rbx + 0x5c]
add esi, dword [rbx + 8]
mov dword [rsp + 0x34], esi
mov r14d, dword [rbx + 0x60]
add r14d, r13d
test dword [rcx + 0x1ec], 0xff000000
je 0x140042750
mov qword [rbp - 0x80], r12
mov rax, qword [rbx]
mov rdi, qword [rax + 0x90]
xorps xmm0, xmm0
mov rax, qword [r8 + 8]
cmp qword [rcx + 0x148], r12
je 0x140042662
movdqu xmmword [rbp + 8], xmm0
test rax, rax
je 0x1400425f4
lock inc dword [rax + 8]
mov r13d, dword [rsp + 0x30]
mov dword [rsp + 0x58], r13d
mov esi, dword [rsp + 0x34]
mov rcx, qword [r8]
mov qword [rbp + 8], rcx
mov rax, qword [r8 + 8]
mov qword [rbp + 0x10], rax
mov rcx, qword [rcx + 0x28]
mov qword [rbp - 0x48], rcx
test rcx, rcx
je 0x140042617
mov rax, qword [rcx]
call qword [rax + 8]
nop
lea rax, [0x1400fc7a8]
mov qword [rbp + 0xa0], rax
mov qword [rbp + 0xa8], 1
movaps xmm0, xmmword [rbp + 0xa0]
movdqa xmmword [rbp + 0x130], xmm0
lea rax, [rbp - 0x80]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 8]
lea r9, [rbp - 0x48]
mov r8d, 1
lea rdx, [rbp + 0x130]
jmp 0x1400426f9
movdqu xmmword [rbp + 0x18], xmm0
test rax, rax
je 0x14004267e
lock inc dword [rax + 8]
mov r13d, dword [rsp + 0x30]
mov dword [rsp + 0x58], r13d
mov esi, dword [rsp + 0x34]
mov rcx, qword [r8]
mov qword [rbp + 0x18], rcx
mov rax, qword [r8 + 8]
mov qword [rbp + 0x20], rax
mov rcx, qword [rcx + 0x28]
mov qword [rbp - 0x40], rcx
test rcx, rcx
je 0x1400426a1
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rax, qword [rbx + 0x20]
mov r8, qword [rax + 0x148]
lea rcx, [rax + 0x138]
cmp qword [rax + 0x150], 7
jbe 0x1400426c4
mov rcx, qword [rax + 0x138]
mov qword [rbp + 0xb0], rcx
mov qword [rbp + 0xb8], r8
movaps xmm0, xmmword [rbp + 0xb0]
movdqa xmmword [rbp + 0x140], xmm0
lea rax, [rbp - 0x80]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x18]
lea r9, [rbp - 0x40]
lea rdx, [rbp + 0x140]
mov qword [rsp + 0x20], rax
mov rcx, rbx
call rdi
mov edx, dword [rbp - 0x80]
mov dword [rbx + 0x10], edx
mov eax, dword [rbp - 0x7c]
mov dword [rbx + 0x18], eax
mov rcx, qword [rbx + 0x20]
cmp qword [rcx + 0x148], 0
jne 0x140042733
mov eax, edx
cdq
sub eax, edx
sar eax, 1
mov edx, eax
mov dword [rbx + 0x10], eax
cmp qword [rcx + 0x148], 0
je 0x140042739
add edx, dword [rcx + 0x17c]
mov dword [rbx + 0x14], edx
test dword [rcx + 0x1ec], 0xff000000
je 0x140042750
mov ecx, edx
mov dword [rsp + 0x64], edx
jmp 0x140042755
mov dword [rsp + 0x64], r12d
mov qword [rsp + 0x70], r12
mov qword [rsp + 0x78], r12
mov rax, qword [rbx]
mov rdi, qword [rax + 0x90]
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x28], xmm0
mov rax, qword [r15 + 8]
test rax, rax
je 0x14004278c
lock inc dword [rax + 8]
mov r13d, dword [rsp + 0x30]
mov dword [rsp + 0x58], r13d
mov esi, dword [rsp + 0x34]
mov rcx, qword [r15]
mov qword [rbp + 0x28], rcx
mov rax, qword [r15 + 8]
mov qword [rbp + 0x30], rax
mov rcx, qword [rcx + 0x20]
mov qword [rbp - 0x38], rcx
test rcx, rcx
je 0x1400427af
mov rax, qword [rcx]
call qword [rax + 8]
nop
lea rcx, [rbx + 0x1bf8]
cmp qword [rbx + 0x1c10], 7
jbe 0x1400427c7
mov rcx, qword [rbx + 0x1bf8]
mov rax, qword [rbx + 0x1c08]
mov qword [rbp + 0xc0], rcx
mov qword [rbp + 0xc8], rax
movaps xmm0, xmmword [rbp + 0xc0]
movdqa xmmword [rbp + 0x150], xmm0
lea rax, [rsp + 0x70]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x28]
mov qword [rsp + 0x20], rax
lea r9, [rbp - 0x38]
mov r8, qword [rbx + 0x1c08]
lea rdx, [rbp + 0x150]
mov rcx, rbx
call rdi
mov rax, qword [rbx]
mov rdi, qword [rax + 0x90]
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x38], xmm0
mov rax, qword [r15 + 8]
test rax, rax
je 0x140042842
lock inc dword [rax + 8]
mov r13d, dword [rsp + 0x30]
mov dword [rsp + 0x58], r13d
mov esi, dword [rsp + 0x34]
mov rcx, qword [r15]
mov qword [rbp + 0x38], rcx
mov rax, qword [r15 + 8]
mov qword [rbp + 0x40], rax
mov rcx, qword [rcx + 0x20]
mov qword [rbp - 0x30], rcx
test rcx, rcx
je 0x140042865
mov rax, qword [rcx]
call qword [rax + 8]
nop
lea rcx, [rbx + 0x1c18]
cmp qword [rbx + 0x1c30], 7
jbe 0x14004287d
mov rcx, qword [rbx + 0x1c18]
mov rax, qword [rbx + 0x1c28]
mov qword [rbp + 0xd0], rcx
mov qword [rbp + 0xd8], rax
movaps xmm0, xmmword [rbp + 0xd0]
movdqa xmmword [rbp + 0x160], xmm0
lea rax, [rsp + 0x78]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x38]
mov qword [rsp + 0x20], rax
lea r9, [rbp - 0x30]
mov r8, qword [rbx + 0x1c28]
lea rdx, [rbp + 0x160]
mov rcx, rbx
call rdi
mov rax, qword [rbx + 0x20]
test dword [rax + 0x1f0], 0xff000000
je 0x140042916
test dword [rax + 0x1f4], 0xff000000
je 0x140042916
mov byte [rsp + 0x40], 1
mov ecx, dword [rax + 0x184]
mov eax, dword [rax + 0x17c]
lea eax, [rax + rcx*2]
add eax, dword [rsp + 0x7c]
add eax, dword [rsp + 0x74]
mov dword [rsp + 0x68], eax
mov edi, dword [rsp + 0x78]
cmp dword [rsp + 0x70], edi
cmovg edi, dword [rsp + 0x70]
jmp 0x140042923
mov byte [rsp + 0x40], 0
mov dword [rsp + 0x68], r12d
mov edi, r12d
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x80]
test al, al
jne 0x140042a6f
mov rax, qword [rbx + 0x28]
cmp qword [rax + 0x10], 0
je 0x140042a6f
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x48], xmm0
mov rax, qword [r15 + 8]
test rax, rax
je 0x140042964
lock inc dword [rax + 8]
mov r13d, dword [rsp + 0x30]
mov esi, dword [rsp + 0x34]
mov rcx, qword [r15]
mov qword [rbp + 0x48], rcx
mov rax, qword [r15 + 8]
mov qword [rbp + 0x50], rax
mov rcx, qword [rcx + 0x20]
mov qword [rbp - 0x28], rcx
test rcx, rcx
je 0x140042987
mov rax, qword [rcx]
call qword [rax + 8]
nop
lea rax, [rbp + 0x48]
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x28]
mov qword [rsp + 0x20], rax
mov r9, qword [rbx + 0x28]
mov r8, qword [rbp + 0x388]
lea rdx, [rbp + 0x118]
mov rcx, rbx
call fcn.14003e730
mov rcx, qword [rax]
mov qword [rsp + 0x38], rcx
cmp ecx, edi
cmovg edi, ecx
cmp dword [0x14012357c], edi
jl 0x1400429e9
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x88]
test al, al
je 0x1400429e9
mov eax, dword [0x14012357c]
sub eax, edi
cdq
sub eax, edx
sar eax, 1
mov edi, eax
jmp 0x1400429ec
mov edi, r12d
lea rcx, [rbx + 0x78]
mov r8d, dword [rsp + 0x3c]
add r8d, r14d
mov r9d, dword [rsp + 0x38]
add r9d, edi
add r9d, esi
lea edx, [rdi + rsi]
mov dword [rsp + 0x20], r8d
mov r8d, r14d
call qword [sym.imp.USER32.dll_SetRect]
mov rax, qword [rbx + 0x20]
mov eax, dword [rax + 0x174]
dec eax
lea eax, [rax + rdi*2]
add eax, dword [rsp + 0x38]
add esi, eax
mov dword [rsp + 0x34], esi
mov eax, dword [rbx + 0x60]
add eax, dword [rbx + 0xc]
add eax, dword [rsp + 0x3c]
mov ecx, dword [rsp + 0x68]
add ecx, eax
cmp r13d, ecx
cmovle r13d, ecx
mov dword [rsp + 0x58], r13d
mov dword [rsp + 0x30], r13d
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x88]
test al, al
je 0x140042a6f
add r13d, dword [0x14012357c]
mov dword [rsp + 0x58], r13d
mov dword [rsp + 0x30], r13d
mov rax, qword [rbx + 0x28]
cmp qword [rax + 0x48], 0
je 0x140042b89
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x58], xmm0
mov rax, qword [r15 + 8]
test rax, rax
je 0x140042a9c
lock inc dword [rax + 8]
mov r13d, dword [rsp + 0x30]
mov esi, dword [rsp + 0x34]
mov rcx, qword [r15]
mov qword [rbp + 0x58], rcx
mov rax, qword [r15 + 8]
mov qword [rbp + 0x60], rax
mov rcx, qword [rcx + 0x20]
mov qword [rbp - 0x20], rcx
test rcx, rcx
je 0x140042abf
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov r9, qword [rbx + 0x28]
add r9, 0x38
lea rax, [rbp + 0x58]
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x20]
mov qword [rsp + 0x20], rax
mov r8, qword [rbp + 0x388]
lea rdx, [rbp + 0x120]
mov rcx, rbx
call fcn.14003e730
mov rcx, qword [rax]
mov qword [rsp + 0x38], rcx
cmp dword [0x14012357c], ecx
jl 0x140042b26
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x88]
test al, al
je 0x140042b26
mov eax, dword [0x14012357c]
mov r8d, dword [rsp + 0x38]
sub eax, r8d
cdq
sub eax, edx
sar eax, 1
mov edi, eax
jmp 0x140042b2e
mov edi, r12d
mov r8d, dword [rsp + 0x38]
lea rcx, [rbx + 0x88]
mov r10d, dword [rsp + 0x3c]
add r10d, r14d
lea r9d, [rdi + r8]
add r9d, esi
lea edx, [rdi + rsi]
mov dword [rsp + 0x20], r10d
mov r8d, r14d
call qword [sym.imp.USER32.dll_SetRect]
mov rax, qword [rbx + 0x20]
mov ecx, dword [rax + 0x174]
lea eax, [rcx + rdi*2]
add eax, dword [rsp + 0x38]
dec esi
add esi, eax
mov dword [rsp + 0x34], esi
mov edx, dword [rbx + 0x60]
add edx, dword [rbx + 0xc]
add edx, dword [rsp + 0x3c]
cmp r13d, edx
cmovle r13d, edx
mov dword [rsp + 0x58], r13d
mov dword [rsp + 0x30], r13d
xor edx, edx
mov r8d, 0x190
lea rcx, [rbp + 0x1a0]
call fcn.1400c5d40
mov edi, esi
mov dword [rsp + 0x50], r12d
mov dword [rsp + 0x60], r12d
mov r10d, dword [rbx + 0x58]
test r10d, r10d
je 0x1400433ed
mov r14d, r12d
jle 0x14004306c
mov r13, r12
mov qword [rbp - 0x70], r12
mov qword [rbp - 0x78], r12
lea rax, [rbx + 0x136c]
mov qword [rbp - 8], rax
cmp r14d, 0x64
jge 0x14004305e
mov esi, dword [rbx + 0x60]
add esi, dword [rbx + 0xc]
add esi, dword [rsp + 0x64]
mov rax, qword [rbx]
mov r10, qword [rax + 0x78]
mov rax, qword [rbx + 0x20]
add rax, 0x118
cmp qword [rax + 0x18], 7
jbe 0x140042c04
mov rax, qword [rax]
mov qword [rsp + 0x20], rax
mov r9d, r14d
mov r8, qword [rbx + 0x48]
lea rdx, [rbp + 0x180]
mov rcx, rbx
call r10
nop
mov rax, qword [rbx]
mov rax, qword [rax + 0x90]
mov qword [rsp + 0x58], rax
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x68], xmm0
mov rax, qword [r15 + 8]
test rax, rax
je 0x140042c42
lock inc dword [rax + 8]
mov rcx, qword [r15]
mov qword [rbp + 0x68], rcx
mov rax, qword [r15 + 8]
mov qword [rbp + 0x70], rax
mov rcx, qword [rcx + 0x30]
mov qword [rbp - 0x18], rcx
test rcx, rcx
je 0x140042c65
mov rax, qword [rcx]
call qword [rax + 8]
nop
lea rax, [rbp + 0x180]
cmp qword [rbp + 0x198], 7
cmova rax, qword [rbp + 0x180]
mov qword [rbp + 0xe0], rax
mov r8, qword [rbp + 0x190]
mov qword [rbp + 0xe8], r8
movaps xmm0, xmmword [rbp + 0xe0]
movdqa xmmword [rbp + 0x170], xmm0
lea rax, [rsp + 0x38]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x68]
mov qword [rsp + 0x20], rax
lea r9, [rbp - 0x18]
lea rdx, [rbp + 0x170]
mov rcx, rbx
call qword [rsp + 0x58]
movsxd rax, r14d
shl rax, 4
mov qword [rsp + 0x48], rax
lea rcx, [rbx + 0x6e8]
add rcx, rax
mov edx, dword [rsp + 0x3c]
add edx, esi
mov r9d, dword [rsp + 0x38]
imul r9d, dword [rbx + 0x64]
add r9d, edi
mov dword [rsp + 0x20], edx
mov r8d, esi
mov edx, edi
call qword [sym.imp.USER32.dll_SetRect]
mov ecx, dword [rbx + 0x64]
mov eax, ecx
imul eax, dword [rsp + 0x3c]
add esi, eax
mov eax, esi
cmp dword [rsp + 0x60], esi
cmovg eax, dword [rsp + 0x60]
mov dword [rsp + 0x60], eax
mov eax, dword [rsp + 0x38]
test eax, eax
cmovs eax, r12d
mov dword [rsp + 0x58], eax
mov rax, qword [rbx + 0x20]
imul ecx, dword [rax + 0x17c]
add esi, ecx
mov rax, qword [rbx + 0x38]
mov rdx, qword [rax]
mov rcx, qword [rax + 8]
sub rcx, rdx
sar rcx, 3
movabs rax, 0x6db6db6db6db6db7
imul rcx, rax
cmp rcx, r13
jbe 0x140043631
mov rax, qword [rbp - 0x78]
add rax, rdx
mov r13, rax
cmp qword [rax + 0x18], 7
jbe 0x140042d70
mov r13, qword [rax]
mov rdx, qword [rax + 0x10]
mov qword [rbp + 0x98], rdx
mov rax, qword [rbx]
mov rax, qword [rax + 0x90]
mov qword [rbp - 0x60], rax
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x78], xmm0
mov rax, qword [r15 + 8]
test rax, rax
je 0x140042d9e
lock inc dword [rax + 8]
mov rcx, qword [r15]
mov qword [rbp + 0x78], rcx
mov rax, qword [r15 + 8]
mov qword [rbp + 0x80], rax
mov rcx, qword [rcx + 0x28]
mov qword [rbp], rcx
test rcx, rcx
je 0x140042dca
mov rax, qword [rcx]
call qword [rax + 8]
mov rdx, qword [rbp + 0x98]
mov qword [rbp + 0xf0], r13
mov qword [rbp + 0xf8], rdx
lea rax, [rsp + 0x38]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x78]
mov qword [rsp + 0x20], rax
lea r9, [rbp]
mov r8, rdx
lea rdx, [rbp + 0xf0]
mov rcx, rbx
call qword [rbp - 0x60]
mov rcx, qword [rsp + 0x48]
add rcx, 0xd28
add rcx, rbx
mov edx, dword [rsp + 0x3c]
add edx, esi
mov r9d, dword [rsp + 0x38]
imul r9d, dword [rbx + 0x68]
add r9d, edi
mov dword [rsp + 0x20], edx
mov r8d, esi
mov edx, edi
call qword [sym.imp.USER32.dll_SetRect]
mov eax, dword [rsp + 0x3c]
imul eax, dword [rbx + 0x68]
add esi, eax
mov ecx, esi
cmp dword [rsp + 0x60], esi
cmovg ecx, dword [rsp + 0x60]
mov dword [rsp + 0x60], ecx
mov r13d, dword [rsp + 0x38]
cmp dword [rsp + 0x58], r13d
cmovg r13d, dword [rsp + 0x58]
mov rcx, qword [rbx + 0x20]
mov rax, qword [rbx + 0x50]
cmp r14d, dword [rax]
jne 0x140042f7e
test dword [rcx + 0x1e8], 0xff000000
jne 0x140042f8e
xor dl, dl
mov rax, qword [rbx + 0x40]
mov r8, qword [rax]
mov rcx, qword [rax + 8]
sub rcx, r8
sar rcx, 3
movabs rax, 0x6db6db6db6db6db7
imul rcx, rax
cmp rcx, qword [rbp - 0x70]
jbe 0x140043631
mov rsi, qword [rbp - 0x78]
add rsi, r8
mov r8, qword [rsi + 0x10]
mov qword [rsp + 0x48], r8
test r8, r8
je 0x140042f95
cmp dword [rbx + 0x6c], 0
je 0x140042f95
test dl, dl
je 0x140042f95
cmp qword [rsi + 0x18], 7
jbe 0x140042edb
mov rsi, qword [rsi]
mov rax, qword [rbx]
mov rax, qword [rax + 0x90]
mov qword [rbp - 0x60], rax
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x88], xmm0
mov rax, qword [r15 + 8]
test rax, rax
je 0x140042f01
lock inc dword [rax + 8]
mov rcx, qword [r15]
mov qword [rbp + 0x88], rcx
mov rax, qword [r15 + 8]
mov qword [rbp + 0x90], rax
mov rcx, qword [rcx + 0x38]
mov qword [rbp - 0x10], rcx
test rcx, rcx
je 0x140042f2e
mov rax, qword [rcx]
call qword [rax + 8]
mov r8, qword [rsp + 0x48]
mov qword [rbp + 0x100], rsi
mov qword [rbp + 0x108], r8
lea rax, [rsp + 0x38]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x88]
mov qword [rsp + 0x20], rax
lea r9, [rbp - 0x10]
lea rdx, [rbp + 0x100]
mov rcx, rbx
call qword [rbp - 0x60]
mov r9d, dword [rbx + 0x6c]
mov eax, r9d
imul eax, dword [rsp + 0x3c]
imul r9d, dword [rsp + 0x38]
add r9d, edi
mov dword [rsp + 0x20], eax
jmp 0x140042f9d
test dword [rcx + 0x1b8], 0xff000000
je 0x140042e7a
mov dl, 1
jmp 0x140042e7c
mov dword [rsp + 0x20], r12d
mov r9d, edi
movsxd rcx, r14d
shl rcx, 4
add rcx, 0x1368
xor r8d, r8d
mov edx, edi
add rcx, rbx
call qword [sym.imp.USER32.dll_SetRect]
mov edx, dword [rsp + 0x38]
cmp r13d, edx
cmovg edx, r13d
mov r13, qword [rbp - 0x70]
mov dword [rbp + r13*4 + 0x1a0], edx
mov rsi, qword [rbp - 8]
mov eax, dword [rsi + 8]
sub eax, dword [rsi]
cmp dword [rsp + 0x50], eax
cmovg eax, dword [rsp + 0x50]
mov dword [rsp + 0x50], eax
mov rax, qword [rbx + 0x20]
mov ecx, dword [rax + 0x178]
add ecx, edx
add edi, ecx
mov rdx, qword [rbp + 0x198]
cmp rdx, 7
jbe 0x14004303a
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x180]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140043035
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140043637
call fcn.14006d178
inc r14d
inc r13
mov qword [rbp - 0x70], r13
add qword [rbp - 0x78], 0x38
add rsi, 0x10
mov qword [rbp - 8], rsi
mov r10d, dword [rbx + 0x58]
cmp r14d, r10d
jl 0x140042bd5
mov r13d, dword [rsp + 0x30]
mov esi, dword [rsp + 0x34]
mov dword [rsp + 0x58], r13d
mov rcx, qword [rbx + 0x20]
sub edi, dword [rcx + 0x178]
cmp esi, edi
cmovg edi, esi
add edi, dword [rbx + 0x5c]
mov dword [rsp + 0x34], edi
test r10d, r10d
je 0x1400433f9
mov dword [rsp + 0x30], r12d
jle 0x140043237
lea r15, [rbp + 0x1a0]
lea rsi, [rbx + 0xd30]
mov r13d, r12d
nop word [rax + rax]
cmp r13d, 0x64
jge 0x14004322e
mov r9d, r12d
mov dword [rsp + 0x30], r12d
mov r14d, r12d
mov rcx, qword [rbx + 0x20]
mov eax, dword [rcx + 4]
cmp eax, 1
jne 0x14004311c
mov ecx, dword [rsi - 0x640]
sub ecx, dword [rsi - 0x648]
mov r8d, dword [r15]
mov eax, r8d
sub eax, ecx
cdq
sub eax, edx
sar eax, 1
mov r9d, eax
mov ecx, dword [rsi]
sub ecx, dword [rsi - 8]
mov eax, r8d
sub eax, ecx
cdq
sub eax, edx
sar eax, 1
mov dword [rsp + 0x30], eax
mov ecx, dword [rsi + 0x640]
sub ecx, dword [rsi + 0x638]
sub r8d, ecx
mov eax, r8d
cdq
sub eax, edx
sar eax, 1
mov r14d, eax
jmp 0x140043165
test eax, eax
jne 0x140043128
cmp byte [rcx + 0x10], r9b
je 0x140043165
jmp 0x140043133
cmp eax, 2
jne 0x140043165
cmp byte [rcx + 0x10], r9b
jne 0x140043165
mov eax, dword [rsi - 0x640]
mov r14d, dword [r15]
sub eax, dword [rsi - 0x648]
mov r9d, r14d
sub r9d, eax
mov eax, dword [rsi]
sub eax, dword [rsi - 8]
mov ecx, r14d
sub ecx, eax
mov eax, dword [rsi + 0x640]
sub eax, dword [rsi + 0x638]
sub r14d, eax
mov dword [rsp + 0x30], ecx
movsxd rdi, r13d
shl rdi, 4
lea rcx, [rbx + 0x6e8]
add rcx, rdi
xor r8d, r8d
mov edx, r9d
call qword [sym.imp.USER32.dll_OffsetRect]
lea rcx, [rbx + 0xd28]
add rcx, rdi
xor r8d, r8d
mov edx, dword [rsp + 0x30]
call qword [sym.imp.USER32.dll_OffsetRect]
lea rcx, [rbx + 0x1368]
add rcx, rdi
mov rax, qword [rbx + 0x20]
mov r8d, dword [rsp + 0x60]
add r8d, dword [rax + 0x17c]
mov edx, r14d
call qword [sym.imp.USER32.dll_OffsetRect]
mov ecx, dword [rsi - 0x648]
cmp ecx, dword [rsi - 8]
cmovge ecx, dword [rsi - 8]
mov eax, dword [rsi + 0x638]
cmp ecx, eax
cmovl eax, ecx
mov dword [rsi - 0xc88], eax
mov ecx, dword [rsi - 0x640]
cmp ecx, dword [rsi]
cmovle ecx, dword [rsi]
mov eax, dword [rsi + 0x640]
cmp ecx, eax
cmovg eax, ecx
mov dword [rsi - 0xc80], eax
mov eax, dword [rsi - 0x644]
sub eax, dword [rsp + 0x64]
mov dword [rsi - 0xc84], eax
mov ecx, dword [rsp + 0x50]
add ecx, dword [rsi + 0x63c]
mov dword [rsi - 0xc7c], ecx
inc r13d
add r15, 4
add rsi, 0x10
mov r10d, dword [rbx + 0x58]
cmp r13d, r10d
jl 0x1400430b0
mov r15, qword [rbp - 0x58]
mov r13d, dword [rsp + 0x58]
lea r11, [rbx + 0xb4]
mov r8d, dword [rbx + 0xac]
mov ecx, dword [r11]
sub ecx, r8d
add ecx, dword [rbx + 0xc]
add ecx, dword [rbx + 0x60]
cmp r13d, ecx
cmovle r13d, ecx
sub r8d, dword [rbx + 0x60]
add r8d, r13d
cmp r8d, dword [r11]
jle 0x140043298
test r10d, r10d
jle 0x140043298
mov rcx, r12
nop dword [rax]
cmp rcx, 0x64
jge 0x140043298
mov eax, dword [rbx + 0xac]
sub eax, dword [rbx + 0x60]
sub eax, dword [rbx + 0xc]
add eax, r13d
mov dword [r11], eax
inc r12d
inc rcx
add r11, 0x10
cmp r12d, dword [rbx + 0x58]
jl 0x140043270
mov rax, qword [rbx + 0x20]
cmp byte [rax + 0x10], 0
jne 0x140043403
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x80]
mov rcx, qword [rbx + 0x28]
test al, al
jne 0x1400432c6
cmp qword [rcx + 0x10], 0
je 0x1400432c6
mov eax, dword [rbx + 0x78]
jmp 0x1400432db
cmp qword [rcx + 0x48], 0
je 0x1400432d5
mov eax, dword [rbx + 0x88]
jmp 0x1400432db
mov eax, dword [rbx + 0xa8]
mov dword [rsp + 0x50], eax
mov r14d, dword [rbx + 0x58]
sub r14d, 1
js 0x140043380
movsxd r12, r14d
shl r12, 4
lea rsi, [rbx + 0x6e8]
add rsi, r12
mov r15d, eax
mov eax, dword [rbx + 0x58]
dec eax
cmp r14d, eax
jne 0x140043310
mov edi, r15d
jmp 0x140043322
mov rax, qword [rbx + 0x20]
mov edi, dword [rbx + r12 + 0xc0]
add edi, dword [rax + 0x178]
sub edi, dword [rbx + r12 + 0xa8]
lea rcx, [rsi - 0x640]
xor r8d, r8d
mov edx, edi
call qword [sym.imp.USER32.dll_OffsetRect]
xor r8d, r8d
mov edx, edi
mov rcx, rsi
call qword [sym.imp.USER32.dll_OffsetRect]
lea rcx, [rsi + 0x640]
xor r8d, r8d
mov edx, edi
call qword [sym.imp.USER32.dll_OffsetRect]
lea rcx, [rsi + 0xc80]
xor r8d, r8d
mov edx, edi
call qword [sym.imp.USER32.dll_OffsetRect]
sub rsi, 0x10
sub r12, 0x10
sub r14d, 1
jns 0x140043301
mov r15, qword [rbp - 0x58]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x80]
test al, al
jne 0x1400433bc
mov rax, qword [rbx + 0x28]
cmp qword [rax + 0x10], 0
je 0x1400433bc
lea rcx, [rbx + 0x78]
mov rax, qword [rbx + 0x20]
mov edx, dword [rax + 0x174]
add edx, dword [rbx + 0xb0]
sub edx, dword [rcx]
dec edx
xor r8d, r8d
call qword [sym.imp.USER32.dll_OffsetRect]
mov rax, qword [rbx + 0x28]
cmp qword [rax + 0x48], 0
je 0x140043403
lea rcx, [rbx + 0x88]
mov rax, qword [rbx + 0x20]
mov edx, dword [rax + 0x174]
add edx, dword [rbx + 0xb0]
sub edx, dword [rcx]
dec edx
xor r8d, r8d
call qword [sym.imp.USER32.dll_OffsetRect]
jmp 0x140043403
mov rcx, qword [rbx + 0x20]
cmp esi, edi
cmovg edi, esi
add edi, dword [rbx + 0x5c]
sub edi, dword [rcx + 0x174]
mov dword [rsp + 0x34], edi
add r13d, dword [rbx + 0x60]
mov dword [rsp + 0x30], r13d
mov rax, qword [rbx + 0x50]
movsxd rcx, dword [rax]
add rcx, rcx
movups xmm0, xmmword [rbx + rcx*8 + 0xa8]
movups xmmword [rbx + 0x98], xmm0
lea r8, [rsp + 0x30]
lea rdx, [rsp + 0x34]
mov rcx, rbx
call fcn.14003f530
mov edx, dword [rsp + 0x30]
add edx, dword [rbx + 0xc]
mov ecx, dword [rbx + 8]
add ecx, dword [rsp + 0x34]
mov dword [rbx + 0x70], ecx
mov dword [rbx + 0x74], edx
cmp byte [rsp + 0x40], 0
je 0x14004353a
cmp dword [rbx + 0x58], 0
je 0x14004353a
mov rax, qword [rbx + 0x20]
cmp byte [rax + 0x8c], 0
jne 0x14004353a
mov r8d, edx
sub r8d, dword [rbx + 0x60]
sub r8d, dword [rbx + 0xc]
add r8d, dword [rax + 0x184]
sub r8d, dword [rsp + 0x68]
mov eax, dword [rbx + 0x80]
add eax, dword [rbx + 0x78]
cdq
sub eax, edx
sar eax, 1
mov edi, eax
mov r9d, dword [rsp + 0x70]
mov eax, r9d
cdq
sub eax, edx
sar eax, 1
sub edi, eax
mov ecx, dword [rsp + 0x74]
add ecx, r8d
add r9d, edi
mov dword [rsp + 0x20], ecx
mov edx, edi
lea rcx, [rbx + 0x1bd4]
call qword [sym.imp.USER32.dll_SetRect]
mov rax, qword [rbx + 0x20]
mov r8d, dword [rax + 0x17c]
add r8d, dword [rbx + 0x1be0]
mov ecx, dword [rsp + 0x7c]
add ecx, r8d
mov r9d, dword [rsp + 0x78]
add r9d, edi
mov dword [rsp + 0x20], ecx
mov edx, edi
lea rcx, [rbx + 0x1be4]
call qword [sym.imp.USER32.dll_SetRect]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x88]
test al, al
je 0x14004353a
mov r8d, dword [0x14012357c]
neg r8d
xor edx, edx
lea rcx, [rbx + 0x1bd4]
call qword [sym.imp.USER32.dll_OffsetRect]
mov r8d, dword [0x14012357c]
neg r8d
xor edx, edx
lea rcx, [rbx + 0x1be4]
call qword [sym.imp.USER32.dll_OffsetRect]
lea rsi, [rbx + 0x19c8]
mov eax, dword [rbx + 0x74]
mov dword [rsp + 0x20], eax
mov r9d, dword [rbx + 0x70]
xor r8d, r8d
xor edx, edx
mov rcx, rsi
call qword [sym.imp.USER32.dll_SetRect]
mov rdx, rsi
lea rcx, [rbx + 0x19b8]
call qword [sym.imp.USER32.dll_CopyRect]
mov r8d, dword [rbx + 0xc]
not r8d
mov edx, dword [rbx + 8]
not edx
lea rcx, [rbx + 0x19b8]
call qword [sym.imp.USER32.dll_InflateRect]
lea rdx, [rbp + 0x388]
mov rcx, rbx
call fcn.14003f080
mov rax, qword [rbx + 0x20]
mov eax, dword [rax + 0x168]
cdq
sub eax, edx
sar eax, 1
mov r8d, eax
sub r8d, dword [rbx + 0xc]
sub eax, dword [rbx + 8]
mov edx, eax
mov rcx, rsi
call qword [sym.imp.USER32.dll_InflateRect]
mov rax, qword [rbx + 0x20]
mov ebx, 0xffffffff
test byte [rax + 0x168], 1
jne 0x1400435d7
mov r8d, ebx
mov edx, ebx
mov rcx, rsi
call qword [sym.imp.USER32.dll_InflateRect]
nop
mov rdi, qword [r15 + 8]
test rdi, rdi
je 0x140043607
mov eax, ebx
lock xadd dword [rdi + 8], eax
cmp eax, 1
jne 0x140043607
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax]
lock xadd dword [rdi + 0xc], ebx
cmp ebx, 1
jne 0x140043607
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 8]
mov rcx, qword [rbp + 0x330]
xor rcx, rsp
call fcn.14006ce40
mov rbx, qword [rsp + 0x498]
add rsp, 0x440
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.140024910
nop
call fcn.1400a5664
int3