Function at 0x14009e3a0
Capabilities:
Hide graphical window

Disassembly:
push rbp
push r13
push r15
lea rbp, [rsp - 0x100]
sub rsp, 0x200
mov rax, qword [0x140153558]
xor rax, rsp
mov qword [rbp + 0xd0], rax
mov r13, rcx
xor ecx, ecx
call fcn.14004e430
call fcn.140043650
mov r15, qword [r13 + 8]
cmp qword [r15 + 8], 0
je 0x14009e3fe
mov rcx, r15
call fcn.14005a410
cmp qword [rax + 0xc8], 0
jne 0x14009e3fe
and dword [r15 + 0x60], 0xfffffffd
xor eax, eax
jmp 0x14009ec84
mov rax, qword gs:[0x58]
mov ecx, dword [0x14016db58]
mov qword [rsp + 0x228], rbx
mov qword [rsp + 0x230], rsi
mov esi, 1
mov qword [rsp + 0x238], rdi
xor edi, edi
mov rdx, qword [rax + rcx*8]
mov qword [rsp + 0x1f8], r12
mov r8d, 4
mov qword [rsp + 0x1f0], r14
movaps xmmword [rsp + 0x1e0], xmm6
mov eax, dword [r8 + rdx]
cmp dword [0x14016b908], eax
jg 0x14009eca0
mov rcx, r15
call fcn.14005a4f0
mov rbx, rax
test rax, rax
jne 0x14009e483
mov rbx, qword [0x14016b910]
test rbx, rbx
jne 0x14009e493
lea rbx, str.FLTK
jmp 0x14009e48c
cmp qword [0x14016b910], rdi
jne 0x14009e493
mov qword [0x14016b910], rbx
mov r14, 0xffffffffffffffff
mov rdx, r14
nop dword [rax]
inc rdx
cmp byte [rbx + rdx], dil
jne 0x14009e4a0
mov r9d, 0x64
lea r8, [rbp]
mov rcx, rbx
call fcn.140042830
mov r11d, dword [0x14016b900]
mov r10d, edi
test r11d, r11d
jle 0x14009e507
mov r9, qword [0x14016b8f8]
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 0x14009e4f3
inc rax
test ecx, ecx
jne 0x14009e4e0
test edx, edx
je 0x14009e5ee
inc r10d
add r9, 8
cmp r10d, r11d
jl 0x14009e4d1
lea rax, [0x14009b570]
mov qword [rbp - 0x18], rdi
mov qword [rbp - 0x58], rax
mov rcx, r15
mov rax, qword [0x14016aa48]
mov qword [rbp - 0x48], rax
mov dword [rbp - 0x60], 0x50
mov dword [rbp - 0x5c], 0x2b
mov qword [rbp - 0x50], rdi
call fcn.14005a230
test rax, rax
jne 0x14009e561
mov rax, qword [r13 + 0x38]
cmp dword [rax + 0x10], edi
jne 0x14009e561
mov edx, 0x7f00
xor ecx, ecx
call qword [sym.imp.USER32.dll_LoadIconA]
mov rdx, rax
mov rcx, r15
call fcn.14005a210
mov rcx, r15
call fcn.14005a230
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 [0x14016b904]
cmp eax, dword [0x14016b900]
jne 0x14009e5ce
mov rcx, qword [0x14016b8f8]
add eax, 5
movsxd rdx, eax
shl rdx, 3
mov dword [0x14016b904], eax
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
mov qword [0x14016b8f8], rax
mov rcx, rbx
call fcn.14004deb0
movsxd rdx, dword [0x14016b900]
mov rcx, qword [0x14016b8f8]
mov qword [rcx + rdx*8], rax
inc dword [0x14016b900]
cmp dword [0x14016a9b0], edi
jne 0x14009e609
lea rcx, str.FLTK::ThreadWakeup
call qword [sym.imp.USER32.dll_RegisterWindowMessageW]
mov dword [0x14016a9b0], eax
cmp qword [r15 + 8], rdi
je 0x14009e626
mov rcx, r15
call fcn.14005a3c0
mov rcx, qword [rax + 0xd0]
mov rax, qword [rcx]
call qword [rax + select]
jmp 0x14009e673
mov rcx, qword [r15 + 0xd0]
call fcn.1400997b0
test eax, eax
je 0x14009e64a
mov rcx, qword [r15 + 0xd0]
cmp dword [rcx + 0x28], edi
jl 0x14009e64a
mov rax, qword [rcx]
call qword [rax + select]
jmp 0x14009e673
call fcn.140043310
test rax, rax
je 0x14009e659
mov rcx, rax
jmp 0x14009e612
call fcn.140044f90
lea r8, [rbp - 0x10]
mov rcx, rax
lea rdx, [rbp - 0x70]
mov r9, qword [rax]
call qword [r9 + 0x138]
mov rcx, qword [r15 + 0xd0]
mov ebx, eax
mov edx, ebx
mov rax, qword [rcx]
call qword [rax + 8]
call fcn.140044f90
mov edx, ebx
mov rcx, rax
mov r8, qword [rax]
call qword [r8 + select]
cmp qword [r15 + 8], 0
mov r12d, esi
movd xmm1, dword [r15 + 0x20]
movaps xmm6, xmm0
movd xmm2, dword [r15 + 0x24]
cvtdq2ps xmm1, xmm1
cvtdq2ps xmm2, xmm2
mulss xmm1, xmm6
mulss xmm2, xmm6
cvttss2si edi, xmm1
movd xmm1, dword [r15 + 0x28]
cvttss2si ebx, xmm2
mov dword [rsp + 0x78], edi
movd xmm2, dword [r15 + 0x2c]
cvtdq2ps xmm1, xmm1
mov dword [rsp + 0x70], ebx
cvtdq2ps xmm2, xmm2
mulss xmm1, xmm6
mulss xmm2, xmm6
cvttss2si eax, xmm1
mov dword [rbp - 0x7c], eax
cvttss2si eax, xmm2
mov dword [rbp - 0x80], eax
je 0x14009e729
mov rcx, r15
mov dword [rsp + 0x74], 0x46000000
mov dword [rsp + 0x7c], 0x10100
call fcn.14005a410
mov rsi, qword [rax + 0xc8]
test rsi, rsi
je 0x14009e720
mov rsi, qword [rsi]
jmp 0x14009e9da
xor eax, eax
mov esi, eax
jmp 0x14009e9da
mov rcx, r13
call fcn.140099c30
test al, al
jne 0x14009e7ac
mov rax, qword [r15 + 0x88]
mov r8d, dword [r15 + 0x2c]
test rax, rax
je 0x14009e78a
mov r9d, dword [rax + 0x28]
mov edx, 0x64
mov eax, dword [rax + 0x2c]
cmp r9d, 0x64
mov r10d, r9d
mov ecx, eax
cmovg r10d, edx
cmp eax, edx
cmovg ecx, edx
mov edx, dword [r15 + 0x28]
xor ebx, ebx
sub edx, r9d
mov dword [rsp + 0x38], ebx
sub r8d, eax
mov dword [rsp + 0x30], ebx
add edx, r10d
add r8d, ecx
mov dword [rsp + 0x28], ebx
xor r9d, r9d
mov dword [rsp + 0x20], ebx
jmp 0x14009e7a4
mov edx, dword [r15 + 0x28]
xor eax, eax
mov dword [rsp + 0x38], eax
mov r9d, edx
mov dword [rsp + 0x30], eax
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], r8d
mov rcx, r15
call fcn.14005a370
mov eax, 0x10100
mov dword [rsp + 0x7c], eax
mov eax, dword [r15 + 0x60]
shr eax, 3
not eax
test sil, al
je 0x14009e839
cmp qword [r15 + 8], 0
jne 0x14009e839
mov rcx, r13
call fcn.140099c30
test al, al
je 0x14009e81e
mov rcx, r13
call fcn.140099950
mov rcx, r13
mov ebx, eax
call fcn.140099970
cmp ebx, eax
jne 0x14009e802
mov rcx, r13
call fcn.140099940
mov rcx, r13
mov ebx, eax
call fcn.140099960
cmp ebx, eax
je 0x14009e81e
test dword [r15 + 0x60], 0x4000
mov dword [rsp + 0x74], 0x6cd0000
jne 0x14009e849
mov dword [rsp + 0x74], 0x6cf0000
jmp 0x14009e849
test dword [r15 + 0x60], 0x4000
mov eax, 0x6ca0000
mov ecx, 0x6c00000
cmovne eax, ecx
mov dword [rsp + 0x74], eax
jmp 0x14009e849
mov dword [rsp + 0x74], 0x86000000
mov dword [rsp + 0x7c], 0x10180
mov eax, dword [rsp + 0x70]
mov rcx, r13
mov dword [rbp - 0x74], eax
mov dword [rbp - 0x78], edi
call fcn.140099c30
mov rcx, r13
movzx r14d, al
call fcn.140099960
mov rcx, r13
mov esi, eax
call fcn.140099940
mov rcx, r13
mov edi, eax
call fcn.140099970
mov rcx, r13
mov ebx, eax
call fcn.140099950
mov byte [rsp + 0x60], r14b
lea r9, [rbp - 0x6c]
mov dword [rsp + 0x58], esi
lea r8, [rbp - 0x74]
mov dword [rsp + 0x50], edi
lea rdx, [rbp - 0x78]
mov dword [rsp + 0x48], ebx
mov rcx, r15
mov dword [rsp + 0x40], eax
mov eax, dword [rsp + 0x7c]
mov dword [rsp + 0x38], eax
mov eax, dword [rsp + 0x74]
mov dword [rsp + 0x30], eax
lea rax, [rbp - 0x70]
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x10]
mov qword [rsp + 0x20], rax
call fcn.14009d510
mov edi, dword [rbp - 0x6c]
mov esi, dword [rbp - 0x70]
mov r14d, dword [rbp - 0x10]
lea eax, [rdi + rsi]
test eax, eax
je 0x14009e8f1
mov eax, dword [rbp - 0x7c]
lea eax, [rax + r14*2]
mov dword [rbp - 0x7c], eax
lea eax, [rdi + rsi*2]
add dword [rbp - 0x80], eax
mov rcx, r13
call fcn.1400997b0
mov rcx, qword [0x140167548]
test eax, eax
jne 0x14009e90f
mov ebx, 0x80000000
mov dword [rsp + 0x70], ebx
jmp 0x14009e965
test rcx, rcx
jne 0x14009e957
mov ebx, dword [rbp - 0x78]
mov rcx, r13
mov eax, dword [rbp - 0x74]
mov dword [rsp + 0x70], eax
movd xmm0, ebx
cvtdq2ps xmm0, xmm0
divss xmm0, xmm6
cvttss2si edx, xmm0
call fcn.140099cb0
movd xmm0, dword [rsp + 0x70]
mov rcx, r13
cvtdq2ps xmm0, xmm0
divss xmm0, xmm6
cvttss2si edx, xmm0
call fcn.140099cc0
mov rcx, qword [0x140167548]
jmp 0x14009e95b
mov ebx, dword [rsp + 0x78]
sub ebx, r14d
lea eax, [rdi + rsi]
sub dword [rsp + 0x70], eax
xor edx, edx
mov dword [rsp + 0x78], ebx
test dword [r15 + 0x60], 0x4020
mov esi, edx
je 0x14009eb8c
mov rax, qword [0x1401674c0]
test rax, rax
je 0x14009eb8c
cmp dword [0x14016aa40], edx
jne 0x14009eb8c
mov rax, qword [rax + 8]
cmp qword [rax + 8], rdx
je 0x14009e9b1
mov rcx, rax
call fcn.14005a410
cmp qword [rax + 8], rsi
jne 0x14009e9a1
xor edx, edx
mov rsi, qword [rax + 0xc8]
test rsi, rsi
je 0x14009e9c2
mov rsi, qword [rsi]
jmp 0x14009e9c5
mov rsi, rdx
mov r12d, dword [rax + 0x60]
shr r12d, 1
not r12d
and r12d, 1
mov r14, 0xffffffffffffffff
mov ecx, 0x20
call fcn.1400fbf00
mov rdi, rax
mov edx, 0x7f00
xor eax, eax
mov qword [r13 + 0x20], rax
mov qword [rdi + 8], r15
mov rcx, qword [r13 + 8]
mov qword [rcx + 0xc8], rdi
mov qword [rdi + 0x10], rax
mov rcx, qword [r15 + 0xd0]
mov qword [rcx + 0x30], rax
xor ecx, ecx
call qword [sym.imp.USER32.dll_LoadCursorA]
movaps xmm6, xmmword [rsp + 0x1e0]
mov qword [r13 + 0x40], rax
xor eax, eax
mov dword [r13 + 0x48], eax
cmp dword [0x140168ce8], eax
jne 0x14009ea39
call fcn.14009deb0
xor eax, eax
mov rcx, qword [r15 + 0x30]
mov rbx, rax
test rcx, rcx
je 0x14009ea88
inc r14
cmp byte [rcx + r14], 0
jne 0x14009ea45
xor r9d, r9d
xor r8d, r8d
mov edx, r14d
call fcn.140042830
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 rcx, qword [r15 + 0x30]
mov r9d, ebx
mov r8, rax
mov edx, r14d
mov rbx, rax
call fcn.140042830
mov ecx, eax
xor eax, eax
mov word [rbx + rcx*2], ax
mov rcx, qword [0x14016aa48]
lea rdx, [rbp]
mov r9d, dword [rsp + 0x74]
mov r8, rbx
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x48], rax
mov eax, dword [rbp - 0x80]
mov qword [rsp + 0x40], rsi
mov esi, dword [rsp + 0x7c]
mov ecx, esi
mov dword [rsp + 0x38], eax
mov eax, dword [rbp - 0x7c]
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x70]
mov dword [rsp + 0x28], eax
mov eax, dword [rsp + 0x78]
mov dword [rsp + 0x20], eax
call qword [sym.imp.USER32.dll_CreateWindowExW]
mov qword [rdi], rax
test rbx, rbx
je 0x14009eaea
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rax, qword [0x1401674c0]
mov rcx, r13
mov qword [rdi + 0x18], rax
mov qword [0x1401674c0], rdi
call fcn.1400a0070
test dword [r15 + 0x60], 0x40000
je 0x14009eb3b
mov rcx, qword [rdi]
lea rdx, [rbp - 0x10]
call qword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [rbp - 4]
mov rcx, r13
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.140098dc0
call fcn.1400433a0
test al, al
jne 0x14009eb6c
cmp qword [0x14016a9f0], 0
jne 0x14009eb6c
mov rcx, qword [rdi]
mov qword [0x14016a9f0], rcx
mov byte [0x140151ca0], 1
call qword [sym.imp.USER32.dll_SetClipboardViewer]
mov qword [0x14016aa50], rax
mov r14d, 1
mov dword [r13 + 0x18], r14d
cmp byte [0x140167fd0], 0
je 0x14009ebb8
xor eax, eax
mov r12d, eax
mov byte [0x140167fd0], al
jmp 0x14009ebee
test rcx, rcx
je 0x14009e9d3
mov rsi, qword [rcx + 0xc8]
mov r14, 0xffffffffffffffff
test rsi, rsi
je 0x14009ebb0
mov rsi, qword [rsi]
jmp 0x14009e9da
mov rsi, rdx
jmp 0x14009e9da
test r12d, r12d
je 0x14009ebee
and dword [r15 + 0x60], 0xfffffffd
mov edx, select
mov ebx, dword [0x1401674d8]
mov rcx, r15
mov dword [0x1401674d8], 0x10
mov rax, qword [r15]
call qword [rax + select]
mov rcx, r15
mov dword [0x1401674d8], ebx
call fcn.140044980
test dword [r15 + 0x60], 0x4000
mov rbx, qword [rsp + 0x228]
je 0x14009ec0c
mov qword [0x140167540], r15
call fcn.140043440
test r12d, r12d
mov r12, qword [rsp + 0x1f8]
jne 0x14009ec21
mov r14d, 7
jmp 0x14009ec36
cmp qword [0x140167548], 0
jne 0x14009ec30
test sil, sil
jns 0x14009ec36
mov r14d, 4
mov rcx, qword [rdi]
mov edx, r14d
call qword [sym.imp.USER32.dll_ShowWindow]
mov rdx, qword [0x140151ea8]
mov rcx, qword [rdi]
call qword [sym.imp.ole32.dll_RegisterDragDrop]
cmp byte [0x140151ca1], 0
mov r14, qword [rsp + 0x1f0]
mov rsi, qword [rsp + 0x230]
jne 0x14009ec79
mov rcx, qword [rdi]
xor r8d, r8d
xor edx, edx
call qword [0x14016a9f8]
mov rax, rdi
mov rdi, qword [rsp + 0x238]
mov rcx, qword [rbp + 0xd0]
xor rcx, rsp
call fcn.1400fbfe0
add rsp, 0x200
pop r15
pop r13
pop rbp
ret
lea rcx, [0x14016b908]
call fcn.1400fc3d8
cmp dword [0x14016b908], 0xffffffff
jne 0x14009e45e
mov ecx, 8
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
lea rcx, [0x1400fded0]
mov dword [0x14016b904], esi
mov qword [0x14016b8f8], rax
mov dword [0x14016b900], edi
call fcn.1400fc268
lea rcx, [0x14016b908]
call fcn.1400fc378
jmp 0x14009e45e