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

Disassembly:
push rbp
push rsi
push r12
push r14
push r15
lea rbp, [rsp - 0x90]
sub rsp, 0x190
mov rax, qword [0x1400f1180]
xor rax, rsp
mov qword [rbp], rax
mov r14, qword [0x1400f8810]
mov rsi, rcx
mov eax, dword [rcx + 0xb0]
mov r12, rdx
inc eax
mov qword [rbp - 0x60], rdx
mov qword [rsp + 0x68], r14
movzx r8d, byte [rsi + 0xcc]
mov ecx, dword [r14 + 0x3f70]
mov dword [rsp + 0x48], eax
mov dword [rsp + 0x7c], ecx
test r8b, 0x40
je 0x14002e88a
mov byte [rsp + 0x32], 1
cmp eax, ecx
je 0x14002e88f
mov byte [rsp + 0x32], 0
xor r15d, r15d
lea r9d, [r15 + 1]
cmp dword [rsi + 0xc0], r15d
je 0x14002e8a8
mov dword [rsp + 0x4c], r9d
cmp eax, ecx
je 0x14002e8ad
mov dword [rsp + 0x4c], r15d
and r8b, 0xbf
mov dword [rsi + 0xc0], r15d
mov byte [rsi + 0xcc], r8b
mov rdx, rsi
mov rax, qword [rsi + 0x18]
mov qword [rsp + 0x50], rdx
test rax, rax
je 0x14002e8e3
mov qword [rsp + 0x50], rax
mov rax, qword [rax + 0x18]
test rax, rax
jne 0x14002e8d0
mov rdx, qword [rsp + 0x50]
mov rax, qword [r14 + 0x4c20]
mov qword [rsp + 0x180], r13
test rax, rax
je 0x14002e907
cmp qword [rax + 0x448], rsi
sete r13b
jmp 0x14002e9b7
mov rcx, qword [r14 + 0x4a98]
test rcx, rcx
je 0x14002e9b4
mov eax, dword [rsi]
cmp dword [rdx + 0xb8], eax
jne 0x14002e9b4
mov rcx, qword [rcx + 0x3b8]
test dword [rcx + 0x14], 0x10000000
je 0x14002e957
nop word [rax + rax]
mov rax, qword [rcx + 0x3a8]
mov rcx, qword [rax + 0x3b8]
test dword [rcx + 0x14], 0x10000000
jne 0x14002e940
mov rax, qword [rcx + 0x450]
test rax, rax
jne 0x14002e970
mov rax, qword [rcx + 0x448]
test rax, rax
je 0x14002e9b4
nop
mov rcx, qword [rax + 0x18]
test rcx, rcx
je 0x14002e98c
nop dword [rax]
mov rax, rcx
mov rcx, qword [rcx + 0x18]
test rcx, rcx
jne 0x14002e980
cmp rax, rdx
je 0x14002eae6
mov rax, qword [rax + 0x88]
test rax, rax
je 0x14002e9b4
mov rax, qword [rax + 0x3b8]
mov rax, qword [rax + 0x448]
test rax, rax
jne 0x14002e970
xor r13b, r13b
mov eax, dword [rsi + 0x10]
mov byte [rsp + 0x30], r13b
test eax, 0x3000
jne 0x14002fac5
movzx ecx, byte [r12 + 0xf0]
mov qword [rsp + 0x1d0], rbx
mov qword [rsp + 0x188], rdi
movaps xmmword [rsp + 0x170], xmm6
movaps xmmword [rsp + 0x160], xmm7
movaps xmmword [rsp + 0x150], xmm8
movaps xmmword [rsp + 0x140], xmm9
movaps xmmword [rsp + 0x130], xmm10
shr eax, 0xa
movaps xmmword [rsp + 0x120], xmm11
movaps xmmword [rsp + 0x110], xmm12
mov byte [rsp + 0x33], cl
test r9b, al
jne 0x14002ea3c
mov byte [r12 + 0xf0], r15b
mov dword [r12 + 0x190], r9d
mov ecx, dword [rsi]
call fcn.14001e5d0
mov rax, qword [rsi + 0x40]
mov qword [rbp - 0x80], rax
mov rdi, rax
test rax, rax
jne 0x14002ea5f
mov rcx, rsi
call fcn.14002fb60
mov rdi, qword [rsi + 0x40]
and byte [rsi + 0xcc], 0xfd
movzx eax, r13b
add al, al
mov dword [rsp + 0x34], r15d
or byte [rsi + 0xcc], al
xorps xmm6, xmm6
test dword [rsi + 0x10], 0x4000
jne 0x14002ebd6
cmp dword [r14 + 0x3900], 0xffffffff
je 0x14002ebd6
mov byte [rsp + 0x31], 1
call fcn.140022350
test al, al
je 0x14002ebe0
mov rbx, qword [0x1400f8810]
mov eax, dword [rdi + 0x1c]
movss xmm1, dword [rsi + 0x48]
mov dword [rsp + 0x38], eax
mov eax, 1
movss xmm0, dword [rbx + 0x3918]
addss xmm0, xmm0
addss xmm0, dword [rbx + 0x3d50]
addss xmm0, dword [rsi + 0x4c]
cmp dword [rbx + 0x3900], r15d
jne 0x14002eaef
xorps xmm2, xmm2
jmp 0x14002eafc
movzx r13d, r9b
jmp 0x14002e9b7
addss xmm1, dword [rsi + 0x50]
movss xmm2, dword [0x1400dc3f8]
or dword [rbx + 0x48f8], 1
lea rcx, str.WindowMenu
movss dword [rbx + 0x490c], xmm1
movss dword [rbx + 0x4910], xmm0
movss dword [rbx + 0x4914], xmm2
movss dword [rbx + 0x4918], xmm6
mov dword [rbx + 0x48fc], eax
mov byte [rbx + 0x4934], 1
call fcn.140022b80
test al, al
je 0x14002ebad
or byte [rsi + 0xcc], 2
mov r8, rdi
mov rdx, rsi
mov rcx, rbx
call qword [rbx + 0x5e10]
mov rbx, qword [0x1400f8810]
mov rcx, qword [rbx + 0x4018]
cmp qword [rbx + 0x4a98], rcx
jne 0x14002eb91
cmp byte [rbx + 0x4b11], r15b
je 0x14002eb91
cmp dword [rbx + 0x4ad0], r15d
jne 0x14002eb91
mov eax, dword [rbx + 0x4b14]
and eax, 0xfffffff2
or eax, 2
mov dword [rbx + 0x4b14], eax
test dword [rcx + 0x14], 0x1000000
je 0x14002eba1
mov byte [rbx + 0x3f82], 1
call fcn.14001d760
mov byte [rbx + 0x3f82], r15b
mov eax, dword [rdi + 0x1c]
test eax, eax
je 0x14002ebc2
cmp eax, dword [rsp + 0x38]
mov ecx, r15d
cmovne ecx, eax
mov dword [rsp + 0x34], ecx
movzx eax, byte [rsi + 0xcc]
shr al, 1
and al, 1
or al, r13b
mov byte [rsp + 0x30], al
jmp 0x14002ebe0
mov byte [rsp + 0x31], r15b
mov byte [rsp + 0x30], r13b
mov r9, qword [0x1400f8810]
movss xmm7, dword [rsi + 0x4c]
movss xmm10, dword [rsi + 0x48]
movaps xmm8, xmm7
movzx eax, byte [rsi + 0xcc]
movaps xmm9, xmm10
movss xmm3, dword [r9 + 0x3914]
movaps xmm4, xmm10
movss xmm2, dword [r9 + 0x3d50]
movaps xmm5, xmm3
movss xmm6, dword [r9 + 0x3918]
movaps xmm0, xmm2
movss dword [rsp + 0x3c], xmm7
addss xmm0, xmm7
movss dword [rbp - 0x70], xmm10
addss xmm6, xmm6
movss dword [rbp - 0x6c], xmm7
mov qword [rsp + 0x58], r15
addss xmm9, dword [rsi + 0x50]
addss xmm6, xmm0
movss xmm0, dword [r9 + 0x38ec]
addss xmm4, xmm0
movss dword [rbp - 0x68], xmm9
movaps xmm1, xmm9
subss xmm1, xmm0
movss dword [rsp + 0x44], xmm6
movss dword [rbp - 0x64], xmm6
addss xmm5, xmm4
subss xmm1, xmm3
movss dword [rsp + 0x38], xmm5
movss dword [rsp + 0x40], xmm1
test al, 8
je 0x14002eca9
subss xmm1, xmm2
movss dword [rsp + 0x5c], xmm7
movaps xmm0, xmm1
movss dword [rsp + 0x40], xmm1
subss xmm0, xmm3
movss dword [rsp + 0x58], xmm0
test al, 0x10
je 0x14002ecfd
cmp dword [r9 + 0x3900], r15d
jne 0x14002eccb
addss xmm2, dword [r9 + 0x392c]
addss xmm2, xmm5
movss dword [rsp + 0x38], xmm2
jmp 0x14002ecfd
cmp dword [r9 + 0x3900], 1
jne 0x14002ecfd
addss xmm3, xmm2
subss xmm1, xmm3
movss dword [rsp + 0x40], xmm1
unpcklps xmm1, xmm7
movaps xmm0, xmm1
movsd qword [rsp + 0x60], xmm1
movss xmm4, dword [rsp + 0x60]
shufps xmm0, xmm0, 0x55
movaps xmm8, xmm0
mov r13d, r15d
mov eax, dword [rdi]
movups xmm0, xmmword [rsp + 0x38]
mov dword [rsp + 0x78], eax
movss dword [rsp + 0x60], xmm4
movups xmmword [rbp - 0x58], xmm0
movss dword [rsp + 0x64], xmm8
cmp dword [rsi + 0x30], r15d
jle 0x14002edfe
mov rbx, r15
mov r12d, 0xffffffff
mov r14d, 0x400000
nop word [rax + rax]
mov rax, qword [rsi + 0x38]
mov r10, qword [rbx + rax]
mov edx, dword [r10 + 0xb0]
test edx, edx
je 0x14002ed81
mov r8d, dword [rdi]
mov eax, r15d
test r8d, r8d
jle 0x14002ed81
mov r11, qword [rdi + 8]
mov rcx, r11
cmp dword [rcx], edx
je 0x14002ed76
inc eax
add rcx, 0x38
cmp eax, r8d
jl 0x14002ed65
jmp 0x14002ed81
cdqe
imul rcx, rax, 0x38
add rcx, r11
jne 0x14002ede4
cmp byte [r10 + 0xf5], r15b
mov eax, 0x500000
mov qword [rbp - 0x28], r15
cmovne eax, r14d
mov dword [rbp - 0x20], r15d
mov dword [rbp - 0x3c], eax
mov eax, dword [rdi + 0x24]
mov qword [rbp - 0x10], r15
mov dword [rbp - 0x2c], r12d
mov qword [rbp - 0x1c], 0xffffffffbf800000
mov dword [rbp - 0x14], 0xffffffff
mov dword [rbp - 0x40], edx
mov dword [rbp - 0x30], eax
cmp eax, r12d
jne 0x14002edcd
mov eax, dword [r9 + 0x3f70]
dec eax
mov dword [rbp - 0x30], eax
lea rdx, [rbp - 0x40]
mov qword [rbp - 0x38], r10
mov rcx, rdi
call fcn.140087b80
mov r9, qword [0x1400f8810]
inc r13d
add rbx, 8
cmp r13d, dword [rsi + 0x30]
jl 0x14002ed40
mov r14, qword [rsp + 0x68]
mov r12, qword [rbp - 0x60]
movzx r13d, byte [rsp + 0x30]
test r13b, r13b
je 0x14002ee16
mov eax, dword [r14 + 0x3f70]
mov dword [rsi + 0xb4], eax
cmp byte [r12 + 0xee], r15b
je 0x14002ee27
mov eax, 0xc
jmp 0x14002ee34
test r13b, r13b
mov rax, r15
setne al
add rax, 0xa
add rax, 0xe
lea rcx, [rsp + 0x68]
add rax, rax
movups xmm0, xmmword [r9 + rax*8 + 0x38d8]
movups xmmword [rsp + 0x68], xmm0
shufps xmm0, xmm0, 0xff
mulss xmm0, dword [r9 + 0x38d8]
movss dword [rsp + 0x74], xmm0
call fcn.14000dea0
movss xmm3, dword [r14 + 0x39a4]
mov r11d, eax
movss xmm1, dword [r12 + 0x50]
movss xmm2, dword [r12 + 0x54]
movaps xmm0, xmm1
addss xmm1, dword [r12 + 0x58]
addss xmm0, xmm3
subss xmm1, xmm3
comiss xmm0, xmm10
movaps xmm0, xmm2
addss xmm2, dword [r12 + 0x5c]
setae dl
addss xmm0, xmm3
comiss xmm9, xmm1
subss xmm2, xmm3
setae r10b
comiss xmm0, xmm7
setae al
comiss xmm6, xmm2
setae r9b
test al, al
je 0x14002eecf
test dl, dl
je 0x14002eecf
mov ecx, 0x110
jmp 0x14002eed8
mov ecx, pe_nt_image_headers64
test al, al
je 0x14002eee3
mov r8d, 0x20
test r10b, r10b
jne 0x14002eee6
mov r8d, r15d
test r9b, r9b
je 0x14002eef6
test dl, dl
je 0x14002eef6
mov edx, 0x40
jmp 0x14002eefe
mov edx, r15d
test r9b, r9b
je 0x14002ef08
mov eax, 0x80
test r10b, r10b
jne 0x14002ef0b
mov eax, r15d
movss xmm0, dword [r12 + 0x88]
or eax, edx
or eax, ecx
lea rdx, [rbp - 0x70]
mov rcx, qword [r12 + 0x2d8]
or eax, r8d
mov dword [rsp + 0x28], eax
lea r8, [rbp - 0x68]
mov r9d, r11d
movss dword [rsp + 0x20], xmm0
call fcn.140069900
cmp byte [rsp + 0x31], r15b
je 0x14002f04b
movsxd rax, dword [r12 + 0x128]
lea rcx, str.COLLAPSE
mov r8, qword [r12 + 0x130]
xor edx, edx
mov r8d, dword [r8 + rax*4 - 4]
call fcn.14000d910
mov rcx, qword [r12]
mov ebx, eax
cmp dword [rcx + 0x4060], eax
jne 0x14002ef8d
lea r8, str.COLLAPSE
mov edx, 0xb
mov ecx, eax
call fcn.140034e20
mov r8, rsi
lea rdx, [rsp + 0x60]
mov ecx, ebx
call fcn.140079d00
test al, al
je 0x14002f02b
mov rax, qword [0x1400f8810]
lea rcx, str.WindowMenu
mov qword [rsp + 0x68], rax
xor edx, edx
mov rbx, qword [rax + 0x4018]
movsxd rax, dword [rbx + 0x128]
mov r8, qword [rbx + 0x130]
mov r8d, dword [r8 + rax*4 - 4]
call fcn.14000d910
mov rcx, qword [rbx]
mov dword [rsp + 0x38], eax
cmp dword [rcx + 0x4060], eax
jne 0x14002effe
lea r8, str.WindowMenu
mov edx, 0xb
mov ecx, eax
call fcn.140034e20
mov eax, dword [rsp + 0x38]
mov rcx, qword [rsp + 0x68]
test byte [rcx + 0x5f04], 4
je 0x14002f022
mov r8d, eax
lea rdx, str.WindowMenu
lea rcx, str._popup__OpenPopup___s_____0x_08X__n
call fcn.140034b80
mov ecx, dword [rsp + 0x38]
call fcn.140022460
mov rax, qword [0x1400f8810]
mov ecx, dword [rax + 0x4078]
test ecx, ecx
je 0x14002f04b
cmp ecx, dword [rax + 0x48b8]
jne 0x14002f04b
mov eax, dword [rdi + 0x18]
mov dword [rsp + 0x34], eax
mov ebx, dword [rdi]
mov dword [rsp + 0x38], ebx
lea ecx, [rbx - 1]
test ecx, ecx
js 0x14002f087
movsxd rax, ecx
imul rdx, rax, 0x38
nop
mov r8, qword [rdi + 8]
mov eax, dword [rdx + r8 + 4]
bt eax, 0x16
jae 0x14002f083
btr eax, 0x16
mov ebx, ecx
mov dword [rdx + r8 + 4], eax
sub rdx, 0x38
sub ecx, 1
jns 0x14002f060
mov dword [rsp + 0x38], ebx
mov r8d, dword [rdi]
cmp r8d, ebx
jle 0x14002f157
test byte [r14 + 0x5f04], 0x80
lea eax, [rbx + 1]
je 0x14002f0c6
mov edx, dword [rsi]
lea rcx, str.__will_sort_
cmp r8d, eax
lea r9, [0x1400d36de]
cmovg r9, rcx
sub r8d, ebx
lea rcx, str._docking__In_node_0x_08X:__d_new_appearing_tabs:_s_n
call fcn.140034b80
mov ecx, dword [rdi]
mov r13d, ebx
movsxd rax, ebx
imul rdx, rax, 0x38
mov qword [rsp + 0x68], rdx
cmp ebx, ecx
jge 0x14002f122
mov rbx, rdx
nop
test byte [r14 + 0x5f04], 0x80
je 0x14002f10b
mov rax, qword [rdi + 8]
lea rcx, str._docking____Tab__s_Order__d_n
mov rdx, qword [rbx + rax + 8]
movsx r8d, word [rdx + 0x42e]
mov rdx, qword [rdx + 8]
call fcn.140034b80
mov ecx, dword [rdi]
inc r13d
add rbx, 0x38
cmp r13d, ecx
jl 0x14002f0e0
mov ebx, dword [rsp + 0x38]
mov rdx, qword [rsp + 0x68]
lea eax, [rbx + 1]
cmp ecx, eax
jle 0x14002f151
sub ecx, ebx
movsxd r10, ecx
cmp r10, 1
jbe 0x14002f151
mov rcx, qword [rdi + 8]
lea r9, [0x14002e690]
add rcx, rdx
mov r8d, 0x38
mov rdx, r10
call qword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_qsort]
movzx r13d, byte [rsp + 0x30]
mov rax, qword [r14 + 0x4a98]
test rax, rax
je 0x14002f17c
mov rax, qword [rax + 0x3b8]
cmp qword [rax + 0x448], rsi
jne 0x14002f17c
mov eax, dword [rax + 0xb0]
mov dword [rdi + 0x18], eax
cmp qword [rbp - 0x80], r15
jne 0x14002f1b3
mov edx, dword [rsi + 0xbc]
test edx, edx
je 0x14002f1b3
mov r8d, dword [rdi]
mov eax, r15d
test r8d, r8d
jle 0x14002f1b3
mov r9, qword [rdi + 8]
mov rcx, r9
nop
cmp dword [rcx], edx
je 0x14002f6bb
inc eax
add rcx, 0x38
cmp eax, r8d
jl 0x14002f1a0
movsxd rax, dword [rdi]
cmp eax, dword [rsp + 0x78]
jle 0x14002f1d5
imul rcx, rax, 0x38
mov rax, qword [rdi + 8]
mov rcx, qword [rcx + rax - 0x30]
mov eax, dword [rcx + 0xb0]
mov dword [rdi + 0x1c], eax
mov dword [rdi + 0x18], eax
mov r8d, 0x500003
cmp byte [r12 + 0xee], r15b
jne 0x14002f1f1
test r13b, r13b
mov eax, 0x700003
cmovne r8d, eax
mov r9, rsi
lea rdx, [rbp - 0x58]
mov rcx, rdi
call fcn.140084440
movups xmm7, xmmword [r14 + 0x39b8]
mov dword [rsp + 0x38], r15d
movups xmm8, xmmword [r14 + 0x3bc8]
movups xmm9, xmmword [r14 + 0x3bd8]
movups xmm10, xmmword [r14 + 0x3be8]
movups xmm11, xmmword [r14 + 0x3bf8]
movups xmm12, xmmword [r14 + 0x3c08]
mov qword [rsi + 0x90], r15
cmp dword [rsi + 0x30], r15d
jle 0x14002f620
movss xmm6, dword [0x1400dc35c]
mov r13, r15
mov rax, qword [rsi + 0x38]
mov rbx, qword [rax + r13]
cmp byte [rsp + 0x32], r15b
jne 0x14002f26c
mov eax, dword [rsp + 0x4c]
cmp eax, dword [rbx + 0xb0]
jne 0x14002f282
cmp byte [rbx + 0xf5], r15b
je 0x14002f282
test dword [rbx + 0x14], 0x100000
je 0x14002f5fd
mov eax, dword [rbx + 0x298]
inc eax
cmp eax, dword [r14 + 0x3f70]
jge 0x14002f2a1
mov eax, dword [rsp + 0x7c]
cmp dword [rsp + 0x48], eax
je 0x14002f5fd
mov ecx, dword [rbx + 0x430]
xorps xmm3, xmm3
mov edx, dword [rbx + 0x2c]
xorps xmm2, xmm2
xorps xmm1, xmm1
xorps xmm0, xmm0
or edx, 1
mov eax, ecx
test dword [rbx + 0x14], 0x100000
cmove edx, dword [rbx + 0x2c]
mov r9d, edx
or r9d, 4
test byte [rdi + 0x10], 8
cmove r9d, edx
shr eax, 8
movzx eax, al
cvtsi2ss xmm3, rax
mov eax, ecx
shr eax, 0x10
movzx eax, al
cvtsi2ss xmm2, rax
mov eax, ecx
shr eax, 0x18
mulss xmm3, xmm6
cvtsi2ss xmm1, rax
movzx eax, cl
cvtsi2ss xmm0, rax
mulss xmm2, xmm6
mulss xmm1, xmm6
mulss xmm0, xmm6
movss dword [r14 + 0x39b8], xmm0
xorps xmm0, xmm0
movss dword [r14 + 0x39bc], xmm3
xorps xmm3, xmm3
movss dword [r14 + 0x39c0], xmm2
xorps xmm2, xmm2
movss dword [r14 + 0x39c4], xmm1
xorps xmm1, xmm1
mov ecx, dword [rbx + 0x434]
mov eax, ecx
shr eax, 8
movzx eax, al
cvtsi2ss xmm3, rax
mov eax, ecx
shr eax, 0x10
movzx eax, al
cvtsi2ss xmm2, rax
mov eax, ecx
shr eax, 0x18
mulss xmm3, xmm6
cvtsi2ss xmm1, rax
movzx eax, cl
cvtsi2ss xmm0, rax
mulss xmm2, xmm6
mulss xmm1, xmm6
mulss xmm0, xmm6
movss dword [r14 + 0x3bc8], xmm0
xorps xmm0, xmm0
movss dword [r14 + 0x3bcc], xmm3
xorps xmm3, xmm3
movss dword [r14 + 0x3bd0], xmm2
xorps xmm2, xmm2
movss dword [r14 + 0x3bd4], xmm1
xorps xmm1, xmm1
mov ecx, dword [rbx + 0x438]
mov eax, ecx
shr eax, 8
movzx eax, al
cvtsi2ss xmm3, rax
mov eax, ecx
shr eax, 0x10
movzx eax, al
cvtsi2ss xmm2, rax
mov eax, ecx
shr eax, 0x18
mulss xmm3, xmm6
cvtsi2ss xmm1, rax
movzx eax, cl
mulss xmm2, xmm6
mulss xmm1, xmm6
cvtsi2ss xmm0, rax
mulss xmm0, xmm6
movss dword [r14 + 0x3bd8], xmm0
xorps xmm0, xmm0
movss dword [r14 + 0x3bdc], xmm3
xorps xmm3, xmm3
movss dword [r14 + 0x3be0], xmm2
xorps xmm2, xmm2
movss dword [r14 + 0x3be4], xmm1
xorps xmm1, xmm1
mov ecx, dword [rbx + 0x43c]
mov eax, ecx
shr eax, 8
movzx eax, al
cvtsi2ss xmm3, rax
mov eax, ecx
shr eax, 0x10
movzx eax, al
cvtsi2ss xmm2, rax
mov eax, ecx
shr eax, 0x18
mulss xmm3, xmm6
cvtsi2ss xmm1, rax
movzx eax, cl
cvtsi2ss xmm0, rax
mulss xmm2, xmm6
mulss xmm0, xmm6
mulss xmm1, xmm6
movss dword [r14 + 0x3be8], xmm0
xorps xmm0, xmm0
movss dword [r14 + 0x3bec], xmm3
xorps xmm3, xmm3
movss dword [r14 + 0x3bf0], xmm2
xorps xmm2, xmm2
movss dword [r14 + 0x3bf4], xmm1
xorps xmm1, xmm1
mov ecx, dword [rbx + 0x440]
mov eax, ecx
shr eax, 8
movzx eax, al
cvtsi2ss xmm3, rax
mov eax, ecx
shr eax, 0x10
movzx eax, al
cvtsi2ss xmm2, rax
mov eax, ecx
shr eax, 0x18
mulss xmm3, xmm6
cvtsi2ss xmm1, rax
movzx eax, cl
cvtsi2ss xmm0, rax
mulss xmm2, xmm6
mulss xmm0, xmm6
mulss xmm1, xmm6
movss dword [r14 + 0x3bf8], xmm0
xorps xmm0, xmm0
movss dword [r14 + 0x3bfc], xmm3
xorps xmm3, xmm3
movss dword [r14 + 0x3c00], xmm2
xorps xmm2, xmm2
movss dword [r14 + 0x3c04], xmm1
xorps xmm1, xmm1
mov ecx, dword [rbx + 0x444]
mov eax, ecx
shr eax, 8
movzx eax, al
cvtsi2ss xmm3, rax
mov eax, ecx
shr eax, 0x10
movzx eax, al
cvtsi2ss xmm2, rax
mov eax, ecx
shr eax, 0x18
mulss xmm3, xmm6
cvtsi2ss xmm1, rax
movzx eax, cl
cvtsi2ss xmm0, rax
mulss xmm2, xmm6
mulss xmm0, xmm6
mulss xmm1, xmm6
movss dword [r14 + 0x3c08], xmm0
movss dword [r14 + 0x3c0c], xmm3
movss dword [r14 + 0x3c10], xmm2
lea r8, [rbp - 8]
movss dword [r14 + 0x3c14], xmm1
mov rcx, rdi
cmp byte [rbx + 0xf5], r15b
mov rdx, qword [rbx + 8]
cmove r8, r15
mov byte [rbp - 8], 1
mov qword [rsp + 0x20], rbx
call fcn.140086210
cmp byte [rbp - 8], r15b
jne 0x14002f5a3
mov eax, dword [rbx + 0xb0]
mov dword [rsi + 0xc0], eax
mov eax, dword [rbx + 0xb0]
cmp dword [rdi + 0x20], eax
jne 0x14002f5b5
mov qword [rsi + 0x90], rbx
mov eax, dword [r14 + 0x48c0]
mov dword [rbx + 0x45c], eax
movups xmm0, xmmword [r14 + 0x48c4]
movups xmmword [rbx + 0x460], xmm0
mov rax, qword [r14 + 0x4a98]
test rax, rax
je 0x14002f5fd
cmp qword [rax + 0x3b8], rbx
jne 0x14002f5fd
test byte [rbx + 0x194], 2
jne 0x14002f5fd
mov eax, dword [rbx + 0xb0]
mov dword [r12 + 0x3ec], eax
mov eax, dword [rsp + 0x38]
add r13, 8
inc eax
mov dword [rsp + 0x38], eax
cmp eax, dword [rsi + 0x30]
jl 0x14002f251
nop dword [rax]
nop dword [rax + rax]
movups xmmword [r14 + 0x39b8], xmm7
movups xmmword [r14 + 0x3bc8], xmm8
movups xmmword [r14 + 0x3bd8], xmm9
movups xmmword [r14 + 0x3be8], xmm10
movaps xmm10, xmmword [rsp + 0x130]
movups xmmword [r14 + 0x3bf8], xmm11
movaps xmm11, xmmword [rsp + 0x120]
movups xmmword [r14 + 0x3c08], xmm12
mov rcx, qword [rsi + 0x90]
movaps xmm12, xmmword [rsp + 0x110]
test rcx, rcx
je 0x14002f693
mov rax, qword [rsp + 0x50]
cmp byte [rsp + 0x30], r15b
jne 0x14002f68c
cmp qword [rax + 0x90], r15
jne 0x14002f693
mov qword [rax + 0x90], rcx
movzx eax, byte [rsi + 0xcc]
and al, 8
je 0x14002f6d5
mov rcx, qword [rsi + 0x90]
test rcx, rcx
je 0x14002f6d5
cmp byte [rcx + 0xf5], r15b
je 0x14002f6d5
mov r13b, 1
jmp 0x14002f7c8
cdqe
imul rcx, rax, 0x38
add rcx, r9
je 0x14002f1b3
mov dword [rdi + 0x1c], edx
mov dword [rdi + 0x18], edx
jmp 0x14002f1d5
test al, al
je 0x14002f8d2
mov rbx, qword [0x1400f8810]
mov eax, dword [rbx + 0x4898]
lea r13, [rbx + 0x49c8]
or eax, 4
mov dword [rbx + 0x4898], eax
mov ecx, dword [r13 + 4]
mov r8d, dword [r13]
mov dword [rsp + 0x48], eax
cmp r8d, ecx
jne 0x14002f73b
inc r8d
test ecx, ecx
je 0x14002f71d
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x14002f722
mov eax, 8
cmp eax, r8d
mov rcx, r13
cmovg r8d, eax
mov edx, r8d
call fcn.1400361f0
mov rbx, qword [0x1400f8810]
movsxd rcx, dword [r13]
mov rax, qword [r13 + 8]
mov edx, dword [rsp + 0x48]
mov dword [rbp - 0x58], r15d
mov dword [rax + rcx*4], edx
lea rcx, [rbx + 0x4988]
inc dword [r13]
lea rdx, [rbp - 0x58]
movups xmm0, xmmword [rbx + 0x39b8]
movss xmm8, dword [r14 + 0x39c4]
movss xmm9, dword [r14 + 0x39b8]
movss xmm6, dword [r14 + 0x39bc]
movss xmm7, dword [r14 + 0x39c0]
mulss xmm8, dword [0x1400dc3a4]
movups xmmword [rbp - 0x54], xmm0
call fcn.1400358b0
shufps xmm9, xmm9, 0xe1
xor r13b, r13b
movss xmm9, xmm6
shufps xmm9, xmm9, 0xc6
movss xmm9, xmm7
shufps xmm9, xmm9, 0x27
movss xmm9, xmm8
shufps xmm9, xmm9, 0x39
movups xmmword [rbx + 0x39b8], xmm9
movsxd rax, dword [r12 + 0x128]
lea rcx, [0x1400d4648]
mov r8, qword [r12 + 0x130]
xor edx, edx
mov r8d, dword [r8 + rax*4 - 4]
call fcn.14000d910
mov rcx, qword [r12]
mov ebx, eax
cmp dword [rcx + 0x4060], eax
jne 0x14002f80c
lea r8, [0x1400d4648]
mov edx, 0xb
mov ecx, eax
call fcn.140034e20
lea rdx, [rsp + 0x58]
mov ecx, ebx
call fcn.140079930
test al, al
je 0x14002f871
or byte [rsi + 0xcc], 0x40
mov r8d, r15d
cmp dword [rdi], r15d
jle 0x14002f871
mov rcx, r15
nop
mov rdx, qword [rdi + 8]
mov eax, dword [rcx + rdx + 4]
bt eax, 0x15
jb 0x14002f865
test al, 1
mov eax, dword [rcx + rdx]
jne 0x14002f85d
mov byte [rcx + rdx + 0x30], 1
cmp dword [rdi + 0x20], eax
jne 0x14002f865
mov dword [rcx + rdx + 0x10], 0xffffffff
mov qword [rdi + 0x18], r15
jmp 0x14002f865
cmp dword [rdi + 0x20], eax
je 0x14002f865
mov dword [rdi + 0x1c], eax
inc r8d
add rcx, 0x38
cmp r8d, dword [rdi]
jl 0x14002f830
test r13b, r13b
jne 0x14002f8d2
mov rbx, qword [0x1400f8810]
movsxd rax, dword [rbx + 0x4988]
cmp eax, 1
jl 0x14002f8af
mov rcx, qword [rbx + 0x4990]
lea rdx, [rax + rax*4]
movsxd rax, dword [rcx + rdx*4 - 0x14]
movups xmm0, xmmword [rcx + rdx*4 - 0x10]
add rax, rax
movups xmmword [rbx + rax*8 + 0x39b8], xmm0
dec dword [rbx + 0x4988]
movsxd rcx, dword [rbx + 0x49c8]
lea eax, [rcx - 1]
mov dword [rbx + 0x49c8], eax
mov rax, qword [rbx + 0x49d0]
mov ecx, dword [rax + rcx*4 - 8]
mov dword [rbx + 0x4898], ecx
jmp 0x14002f8d9
mov rbx, qword [0x1400f8810]
movsxd rax, dword [r12 + 0x128]
lea rcx, str.TITLEBAR
mov r8, qword [r12 + 0x130]
xor edx, edx
mov r8d, dword [r8 + rax*4 - 4]
call fcn.14000d910
mov rcx, qword [r12]
mov r13d, eax
movaps xmm9, xmmword [rsp + 0x140]
movaps xmm8, xmmword [rsp + 0x150]
movaps xmm7, xmmword [rsp + 0x160]
movaps xmm6, xmmword [rsp + 0x170]
cmp dword [rcx + 0x4060], eax
jne 0x14002f947
lea r8, str.TITLEBAR
mov edx, 0xb
mov ecx, eax
call fcn.140034e20
mov rbx, qword [0x1400f8810]
mov eax, dword [r14 + 0x4064]
test eax, eax
je 0x14002f964
cmp eax, r13d
je 0x14002f964
cmp dword [r14 + 0x4078], r13d
jne 0x14002fa1c
cmp dword [rbx + 0x4078], r13d
jne 0x14002f974
mov dword [rbx + 0x407c], r13d
cmp dword [rbx + 0x40a8], r13d
jne 0x14002f984
mov byte [rbx + 0x40ac], 1
lea r9, [rbp - 8]
mov dword [rsp + 0x20], 0x1000
xor r8d, r8d
lea rcx, [rbp - 0x70]
mov edx, r13d
call fcn.140078b40
cmp dword [r14 + 0x4064], r13d
jne 0x14002f9af
mov dword [r14 + 0x48b8], r13d
cmp byte [rbp - 8], r15b
je 0x14002fa1c
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call fcn.14001ee20
test al, al
je 0x14002f9cc
mov eax, dword [rdi + 0x18]
mov dword [rsp + 0x34], eax
mov edx, dword [rdi + 0x18]
test edx, edx
je 0x14002fa1c
mov r8d, dword [rdi]
mov eax, r15d
test r8d, r8d
jle 0x14002fa1c
mov r9, qword [rdi + 8]
mov rcx, r9
cmp dword [rcx], edx
je 0x14002f9f6
inc eax
add rcx, 0x38
cmp eax, r8d
jl 0x14002f9e5
jmp 0x14002fa1c
cdqe
imul rcx, rax, 0x38
add rcx, r9
je 0x14002fa1c
mov rcx, qword [rcx + 8]
test rcx, rcx
jne 0x14002fa11
mov rcx, qword [rsi + 0x88]
xor r8d, r8d
mov rdx, rsi
call fcn.140013810
mov edx, dword [rdi + 0x1c]
test edx, edx
cmove edx, dword [rsp + 0x34]
test edx, edx
je 0x14002fa77
mov r8d, dword [rdi]
mov eax, r15d
test r8d, r8d
jle 0x14002fa77
mov r9, qword [rdi + 8]
mov rcx, r9
nop dword [rax]
cmp dword [rcx], edx
je 0x14002fa51
inc eax
add rcx, 0x38
cmp eax, r8d
jl 0x14002fa40
jmp 0x14002fa77
cdqe
imul rbx, rax, 0x38
add rbx, r9
je 0x14002fa77
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x14002fa77
xor edx, edx
call fcn.14001db20
mov rcx, qword [rbx + 8]
xor edx, edx
call fcn.140024600
call fcn.140084810
mov rax, qword [0x1400f8810]
mov rdi, qword [rsp + 0x188]
mov rbx, qword [rsp + 0x1d0]
mov rcx, qword [rax + 0x4018]
dec dword [rcx + 0x128]
mov eax, dword [rsi + 0x10]
shr eax, 0xa
test al, 1
jne 0x14002fb32
movzx eax, byte [rsp + 0x33]
mov byte [r12 + 0xf0], al
mov dword [r12 + 0x190], r15d
jmp 0x14002fb32
cmp dword [rsi + 0x30], r15d
jle 0x14002fad2
mov rax, qword [rsi + 0x38]
mov r15, qword [rax]
and r8b, 0xfd
mov qword [rsi + 0x90], r15
movzx eax, r13b
add al, al
or al, r8b
mov byte [rsi + 0xcc], al
test r13b, r13b
je 0x14002fafe
mov eax, dword [r14 + 0x3f70]
mov dword [rsi + 0xb4], eax
test r15, r15
je 0x14002fb32
test r13b, r13b
jne 0x14002fb12
cmp qword [rdx + 0x90], 0
jne 0x14002fb19
mov qword [rdx + 0x90], r15
mov rdx, qword [rsi + 0x40]
test rdx, rdx
je 0x14002fb32
mov rax, qword [rsi + 0x90]
mov ecx, dword [rax + 0xb0]
mov dword [rdx + 0x20], ecx
mov r13, qword [rsp + 0x180]
mov rcx, qword [rbp]
xor rcx, rsp
call fcn.1400bed10
add rsp, 0x190
pop r15
pop r14
pop r12
pop rsi
pop rbp
ret