Function at 0x1400ae060
Capabilities:
Hide graphical window

Disassembly:
push rbp
push rdi
push r13
lea rbp, [rsp - 0x100]
sub rsp, 0x200
mov rax, qword [0x1401b3658]
xor rax, rsp
mov qword [rbp + 0xd0], rax
mov r13, rcx
mov qword [rbp - 0x10], rcx
xor ecx, ecx
call fcn.1400b0830
call fcn.140099210
mov rdi, qword [r13 + 8]
cmp qword [rdi + 8], 0
je 0x1400ae0c3
mov rcx, rdi
call fcn.14009cbb0
test rax, rax
je 0x1400ae0ba
cmp qword [rax + 0xc8], 0
jne 0x1400ae0c3
and dword [rdi + 0x60], 0xfffffffd
jmp 0x1400ae87b
mov ecx, dword [0x1401b9540]
mov rax, qword gs:[0x58]
mov qword [rsp + 0x228], rbx
mov qword [rsp + 0x230], rsi
mov esi, 1
mov qword [rsp + 0x238], r12
mov rax, qword [rax + rcx*8]
mov qword [rsp + 0x1f8], r14
xor r14d, r14d
mov edx, 0x80
mov qword [rsp + 0x1f0], r15
movaps xmmword [rsp + 0x1e0], xmm6
mov eax, dword [rdx + rax]
cmp dword [0x1401b5868], eax
jg 0x1400ae896
mov rcx, rdi
call fcn.14009cca0
mov rbx, rax
mov rax, qword [0x1401b5870]
test rbx, rbx
jne 0x1400ae148
mov rbx, rax
test rax, rax
jne 0x1400ae154
lea rbx, str.FLTK
test rax, rax
jne 0x1400ae154
mov qword [0x1401b5870], rbx
mov rdx, 0xffffffffffffffff
nop dword [rax + rax]
inc rdx
cmp byte [rbx + rdx], r14b
jne 0x1400ae160
mov r9d, 0x64
lea r8, [rbp]
mov rcx, rbx
call fcn.1400dd1a0
mov r11d, dword [0x1401b5860]
mov r10d, r14d
test r11d, r11d
jle 0x1400ae1c7
mov r9, qword [0x1401b5858]
mov rax, qword [r9]
mov r8, rbx
sub r8, rax
nop word [rax + rax]
movzx edx, byte [rax]
movzx ecx, byte [rax + r8]
sub edx, ecx
jne 0x1400ae1b3
inc rax
test ecx, ecx
jne 0x1400ae1a0
test edx, edx
je 0x1400ae2f8
inc r10d
add r9, 8
cmp r10d, r11d
jl 0x1400ae191
xor al, al
test al, al
jne 0x1400ae2b9
lea rax, [0x1400ab230]
mov qword [rbp - 0x18], r14
mov qword [rbp - 0x58], rax
mov rcx, rdi
mov rax, qword [0x1401b4988]
mov qword [rbp - 0x48], rax
mov dword [rbp - 0x60], 0x50
mov dword [rbp - 0x5c], 0x2b
mov qword [rbp - 0x50], r14
call fcn.14009c930
test rax, rax
jne 0x1400ae22c
mov rax, qword [r13 + 0x30]
cmp dword [rax + 0x10], r14d
jne 0x1400ae22c
mov edx, 0x7f00
xor ecx, ecx
call qword [sym.imp.user32.dll_LoadIconA]
mov rdx, rax
mov rcx, rdi
call fcn.14009c910
mov rcx, rdi
call fcn.14009c930
mov edx, 0x7f00
mov qword [rbp - 0x18], rax
xor ecx, ecx
mov qword [rbp - 0x40], rax
call qword [sym.imp.user32.dll_LoadCursorA]
mov qword [rbp - 0x38], rax
xorps xmm0, xmm0
lea rcx, [rbp - 0x60]
movdqa xmmword [rbp - 0x30], xmm0
lea rax, [rbp]
mov qword [rbp - 0x20], rax
call qword [sym.imp.user32.dll_RegisterClassExW]
mov eax, dword [0x1401b5864]
cmp eax, dword [0x1401b5860]
jne 0x1400ae299
mov rcx, qword [0x1401b5858]
add eax, 5
movsxd rdx, eax
shl rdx, 3
mov dword [0x1401b5864], eax
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
mov qword [0x1401b5858], rax
mov rcx, rbx
call fcn.1400dcaa0
movsxd rdx, dword [0x1401b5860]
mov rcx, qword [0x1401b5858]
mov qword [rcx + rdx*8], rax
inc dword [0x1401b5860]
cmp dword [0x1401b4944], r14d
jne 0x1400ae2d5
lea rcx, str.FLTK::ThreadWakeup
call qword [sym.imp.user32.dll_RegisterWindowMessageW]
mov dword [0x1401b4944], eax
cmp qword [rdi + 8], r14
je 0x1400ae301
mov rcx, rdi
call fcn.14009cb70
mov rcx, qword [rax + 0xd0]
call fcn.1400dc470
lea r12, [rdi + 0xd0]
jmp 0x1400ae361
movzx eax, sil
jmp 0x1400ae1c9
lea r12, [rdi + 0xd0]
mov rcx, qword [r12]
call fcn.1400dc040
test eax, eax
je 0x1400ae326
mov rcx, qword [r12]
cmp dword [rcx + 0x10], r14d
jl 0x1400ae326
call fcn.1400dc470
jmp 0x1400ae361
call fcn.140098fb0
test rax, rax
je 0x1400ae346
mov rcx, rax
call fcn.14009cb70
mov rcx, qword [rax + 0xd0]
call fcn.1400dc470
jmp 0x1400ae361
call fcn.14009a900
lea r8, [rsp + 0x68]
mov rcx, rax
lea rdx, [rbp - 0x70]
mov r9, qword [rax]
call qword [r9 + 0x130]
mov ebx, eax
mov rax, qword [r12]
mov dword [rax + 0x10], ebx
call fcn.14009a900
mov edx, ebx
mov rcx, rax
mov r8, qword [rax]
call qword [r8 + 0x10]
movd xmm1, dword [rdi + 0x20]
movaps xmm6, xmm0
cvtdq2ps xmm1, xmm1
mulss xmm1, xmm6
cvtps2pd xmm0, xmm1
call qword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_round]
movd xmm1, dword [rdi + 0x24]
cvtdq2ps xmm1, xmm1
cvttsd2si r15d, xmm0
mulss xmm1, xmm6
mov dword [rsp + 0x64], r15d
cvtps2pd xmm0, xmm1
call qword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_round]
movd xmm1, dword [rdi + 0x28]
cvttsd2si eax, xmm0
mov dword [rbp - 0x78], esi
movd xmm0, dword [rdi + 0x2c]
mov dword [rsp + 0x60], eax
cvtdq2ps xmm1, xmm1
cvtdq2ps xmm0, xmm0
mulss xmm1, xmm6
mulss xmm0, xmm6
cvttss2si eax, xmm1
mov dword [rsp + 0x74], eax
cvttss2si eax, xmm0
mov dword [rsp + 0x70], eax
cmp qword [rdi + 8], r14
je 0x1400ae429
mov rcx, rdi
mov dword [rsp + 0x78], 0x10100
mov r13d, 0x46000000
call fcn.14009cbb0
test rax, rax
je 0x1400ae41f
mov rax, qword [rax + 0xc8]
test rax, rax
je 0x1400ae41f
mov rax, qword [rax]
mov qword [rsp + 0x68], rax
jmp 0x1400ae5ed
mov qword [rsp + 0x68], r14
jmp 0x1400ae5ed
mov eax, dword [rdi + 0x60]
mov esi, 0x10100
shr eax, 3
not eax
mov dword [rsp + 0x78], esi
test al, 1
je 0x1400ae47a
mov rcx, qword [r13 + 8]
call fcn.14009c9b0
test eax, eax
je 0x1400ae462
test dword [rdi + 0x60], 0x4000
mov r13d, 0x6cd0000
jne 0x1400ae489
mov r13d, 0x6cf0000
jmp 0x1400ae489
test dword [rdi + 0x60], 0x4000
mov eax, 0x6c00000
mov r13d, 0x6ca0000
cmovne r13d, eax
jmp 0x1400ae489
mov esi, 0x10180
mov r13d, 0x86000000
mov dword [rsp + 0x78], esi
mov eax, dword [rsp + 0x60]
lea r9, [rbp - 0x70]
mov rcx, qword [rbp - 0x10]
lea r8, [rbp - 0x80]
mov dword [rbp - 0x80], eax
lea rdx, [rsp + 0x7c]
mov dword [rsp + 0x38], esi
lea rax, [rsp + 0x68]
mov dword [rsp + 0x30], r13d
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x7c]
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x7c], r15d
call fcn.1400ad210
mov esi, dword [rbp - 0x70]
mov r15d, dword [rsp + 0x68]
lea eax, [rsi + r15]
test eax, eax
je 0x1400ae4ed
mov eax, dword [rbp - 0x7c]
mov ecx, dword [rsp + 0x74]
lea ecx, [rcx + rax*2]
lea eax, [rsi + r15*2]
mov dword [rsp + 0x74], ecx
add dword [rsp + 0x70], eax
mov rcx, qword [rbp - 0x10]
call fcn.1400dc040
test eax, eax
jne 0x1400ae509
mov ecx, 0x80000000
mov dword [rsp + 0x64], ecx
mov dword [rsp + 0x60], ecx
jmp 0x1400ae578
cmp qword [0x1401b41f0], r14
jne 0x1400ae565
mov eax, dword [rsp + 0x7c]
mov ecx, dword [rbp - 0x80]
mov dword [rsp + 0x64], eax
mov dword [rsp + 0x60], ecx
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm0, xmm6
cvtps2pd xmm0, xmm0
call qword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_round]
mov rcx, qword [rbp - 0x10]
cvttsd2si edx, xmm0
call fcn.1400dc5e0
movd xmm0, dword [rsp + 0x60]
cvtdq2ps xmm0, xmm0
divss xmm0, xmm6
cvtps2pd xmm0, xmm0
call qword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_round]
mov rcx, qword [rbp - 0x10]
cvttsd2si edx, xmm0
call fcn.1400dc5f0
mov eax, dword [rsp + 0x64]
sub eax, dword [rbp - 0x7c]
mov dword [rsp + 0x64], eax
lea eax, [rsi + r15]
sub dword [rsp + 0x60], eax
test dword [rdi + 0x60], 0x4020
lea r15, [rdi + 0x60]
mov qword [rsp + 0x68], r14
je 0x1400ae5f1
mov rax, qword [0x1401b4168]
lea r15, [rdi + 0x60]
test rax, rax
je 0x1400ae5f1
cmp dword [0x1401b4940], r14d
lea r15, [rdi + 0x60]
jne 0x1400ae5f1
mov rax, qword [rax + 8]
cmp qword [rax + 8], r14
je 0x1400ae5bf
mov rcx, rax
call fcn.14009cbb0
cmp qword [rax + 8], r14
jne 0x1400ae5b1
mov rcx, qword [rax + 0xc8]
test rcx, rcx
je 0x1400ae5d5
mov rcx, qword [rcx]
mov qword [rsp + 0x68], rcx
jmp 0x1400ae5da
mov qword [rsp + 0x68], r14
mov eax, dword [rax + 0x60]
lea r15, [rdi + 0x60]
shr eax, 1
not eax
test al, 1
jne 0x1400ae5f1
mov dword [rbp - 0x78], r14d
lea r15, [rdi + 0x60]
mov ecx, 0x20
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
mov rbx, qword [rbp - 0x10]
mov edx, 0x7f00
mov rsi, rax
mov qword [rbx + 0x18], r14
mov qword [rax + 8], rdi
mov rcx, qword [rbx + 8]
mov qword [rcx + 0xc8], rax
mov qword [rax + 0x10], r14
mov rcx, qword [r12]
mov qword [rcx + 0x28], r14
xor ecx, ecx
call qword [sym.imp.user32.dll_LoadCursorA]
movaps xmm6, xmmword [rsp + 0x1e0]
mov qword [rbx + 0x38], rax
mov dword [rbx + 0x40], r14d
cmp dword [0x1401b8e38], r14d
jne 0x1400ae64c
call fcn.1400adb60
mov rcx, qword [rdi + 0x30]
mov r12, r14
test rcx, rcx
je 0x1400ae6a9
mov rax, 0xffffffffffffffff
nop
inc rax
cmp byte [rcx + rax], r12b
jne 0x1400ae660
xor r9d, r9d
mov qword [rbp - 0x70], rax
xor r8d, r8d
mov edx, eax
call fcn.1400dd1a0
lea ebx, [rax + 1]
mov ecx, ebx
add rcx, rcx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov rdx, qword [rbp - 0x70]
mov r9d, ebx
mov rcx, qword [rdi + 0x30]
mov r8, rax
mov r12, rax
call fcn.1400dd1a0
mov rbx, qword [rbp - 0x10]
mov ecx, eax
mov word [r12 + rcx*2], r14w
mov rcx, qword [0x1401b4988]
lea rdx, [rbp]
mov rax, qword [rsp + 0x68]
mov r9d, r13d
mov r13d, dword [rsp + 0x78]
mov r8, r12
mov qword [rsp + 0x58], r14
mov qword [rsp + 0x50], rcx
mov ecx, r13d
mov qword [rsp + 0x48], r14
mov qword [rsp + 0x40], rax
mov eax, dword [rsp + 0x70]
mov dword [rsp + 0x38], eax
mov eax, dword [rsp + 0x74]
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x60]
mov dword [rsp + 0x28], eax
mov eax, dword [rsp + 0x64]
mov dword [rsp + 0x20], eax
call qword [sym.imp.user32.dll_CreateWindowExW]
mov qword [rsi], rax
test r12, r12
je 0x1400ae712
mov rcx, r12
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rax, qword [0x1401b4168]
mov rcx, rbx
mov qword [rsi + 0x18], rax
mov qword [0x1401b4168], rsi
call fcn.1400afd00
test dword [r15], 0x40000
je 0x1400ae762
mov rcx, qword [rsi]
lea rdx, [rbp - 0x10]
call qword [sym.imp.user32.dll_GetWindowRect]
mov eax, dword [rbp - 4]
mov rcx, rbx
mov r8d, dword [rbp - 0xc]
sub eax, r8d
mov r9d, dword [rbp - 8]
mov edx, dword [rbp - 0x10]
sub r9d, edx
mov dword [rsp + 0x20], eax
call fcn.1400e2ab0
call fcn.140098fd0
test al, al
jne 0x1400ae792
cmp qword [0x1401b4990], r14
jne 0x1400ae792
mov rcx, qword [rsi]
mov qword [0x1401b4990], rcx
mov byte [0x1401b1910], 1
call qword [sym.imp.user32.dll_SetClipboardViewer]
mov qword [0x1401b4998], rax
mov dword [rbx + 0x14], 1
cmp byte [0x1401b43f0], r14b
je 0x1400ae7ab
mov byte [0x1401b43f0], r14b
jmp 0x1400ae7e7
mov r12d, dword [rbp - 0x78]
mov r14d, r12d
test r12d, r12d
je 0x1400ae7e7
and dword [r15], 0xfffffffd
mov edx, 0x10
mov ebx, dword [0x1401b4178]
mov rcx, rdi
mov dword [0x1401b4178], 0x10
mov rax, qword [rdi]
call qword [rax + 0x10]
mov rcx, rdi
mov dword [0x1401b4178], ebx
call fcn.14009a4c0
test dword [r15], 0x4000
mov r15, qword [rsp + 0x1f0]
mov r12, qword [rsp + 0x238]
mov rbx, qword [rsp + 0x228]
je 0x1400ae814
mov qword [0x1401b41e8], rdi
call fcn.140098ff0
test r14d, r14d
mov r14, qword [rsp + 0x1f8]
jne 0x1400ae828
mov eax, 7
jmp 0x1400ae841
cmp qword [0x1401b41f0], 0
jne 0x1400ae83c
mov eax, 1
test r13b, r13b
jns 0x1400ae841
mov eax, 4
mov rcx, qword [rsi]
mov edx, eax
call qword [sym.imp.user32.dll_ShowWindow]
mov rdx, qword [0x1401b3108]
mov rcx, qword [rsi]
call qword [sym.imp.ole32.dll_RegisterDragDrop]
cmp byte [0x1401b1911], 0
jne 0x1400ae873
mov rcx, qword [rsi]
xor r8d, r8d
xor edx, edx
call qword [0x1401b49a8]
mov rsi, qword [rsp + 0x230]
mov rcx, qword [rbp + 0xd0]
xor rcx, rsp
call fcn.14012cd90
add rsp, 0x200
pop r13
pop rdi
pop rbp
ret
lea rcx, [0x1401b5868]
call fcn.14012cf08
cmp dword [0x1401b5868], 0xffffffff
jne 0x1400ae122
mov ecx, 8
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
lea rcx, [0x140130e40]
mov dword [0x1401b5864], esi
mov qword [0x1401b5858], rax
mov dword [0x1401b5860], r14d
call fcn.14012d250
lea rcx, [0x1401b5868]
call fcn.14012cea8
jmp 0x1400ae122