Function at 0x140059ff0
Capabilities:
Hide graphical window

Disassembly:
push rbp
push rdi
push r14
lea rbp, [rsp - 0xf0]
sub rsp, 0x1f0
mov rax, qword [0x140131048]
xor rax, rsp
mov qword [rbp + 0xc0], rax
mov r14, rcx
mov qword [rbp - 0x20], rcx
xor ecx, ecx
call fcn.14005e910
call fcn.140050950
mov rdi, qword [r14 + 8]
cmp qword [rdi + 8], 0
je 0x14005a053
mov rcx, rdi
call fcn.14005e340
test rax, rax
je 0x14005a04a
cmp qword [rax + 0xc8], 0
jne 0x14005a053
and dword [rdi + 0x60], 0xfffffffd
jmp 0x14005a7f1
mov ecx, dword [0x14013708c]
mov rax, qword gs:[0x58]
mov qword [rsp + 0x218], rbx
mov qword [rsp + 0x220], rsi
xor esi, esi
mov qword [rsp + 0x228], r12
mov rax, qword [rax + rcx*8]
mov qword [rsp + 0x1e8], r13
mov qword [rsp + 0x1e0], r15
mov r15d, 1
mov edx, 0xb4
movaps xmmword [rsp + 0x1d0], xmm6
mov eax, dword [rdx + rax]
cmp dword [0x1401334d8], eax
jg 0x14005a80c
mov rcx, rdi
call fcn.14005e430
mov rbx, rax
mov rax, qword [0x1401334e0]
test rbx, rbx
jne 0x14005a0d8
mov rbx, rax
test rax, rax
jne 0x14005a0e4
lea rbx, str.FLTK
test rax, rax
jne 0x14005a0e4
mov qword [0x1401334e0], rbx
mov r12, 0xffffffffffffffff
mov rdx, r12
nop
inc rdx
cmp byte [rbx + rdx], sil
jne 0x14005a0f0
mov r9d, 0x64
lea r8, [rbp - 0x10]
mov rcx, rbx
call fcn.1400811f0
mov r11d, dword [0x1401334d0]
mov r10d, esi
test r11d, r11d
jle 0x14005a157
mov r9, qword [0x1401334c8]
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 0x14005a143
inc rax
test ecx, ecx
jne 0x14005a130
test edx, edx
je 0x14005a27f
inc r10d
add r9, 8
cmp r10d, r11d
jl 0x14005a121
xor al, al
test al, al
jne 0x14005a248
lea rax, [0x140057140]
mov qword [rbp - 0x28], rsi
mov qword [rbp - 0x68], rax
mov rcx, rdi
mov rax, qword [0x1401325f8]
mov qword [rbp - 0x58], rax
mov dword [rbp - 0x70], 0x50
mov dword [rbp - 0x6c], 0x2b
mov qword [rbp - 0x60], rsi
call fcn.14005e0a0
test rax, rax
jne 0x14005a1bb
mov rax, qword [r14 + 0x30]
cmp dword [rax + 0x10], esi
jne 0x14005a1bb
mov edx, 0x7f00
xor ecx, ecx
call qword [sym.imp.USER32.dll_LoadIconA]
mov rdx, rax
mov rcx, rdi
call fcn.14005e080
mov rcx, rdi
call fcn.14005e0a0
mov edx, 0x7f00
mov qword [rbp - 0x28], rax
xor ecx, ecx
mov qword [rbp - 0x50], rax
call qword [sym.imp.USER32.dll_LoadCursorA]
mov qword [rbp - 0x48], rax
xorps xmm0, xmm0
lea rcx, [rbp - 0x70]
movdqa xmmword [rbp - 0x40], xmm0
lea rax, [rbp - 0x10]
mov qword [rbp - 0x30], rax
call qword [sym.imp.USER32.dll_RegisterClassExW]
mov eax, dword [0x1401334d4]
cmp eax, dword [0x1401334d0]
jne 0x14005a228
mov rcx, qword [0x1401334c8]
add eax, 5
movsxd rdx, eax
shl rdx, 3
mov dword [0x1401334d4], eax
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
mov qword [0x1401334c8], rax
mov rcx, rbx
call fcn.140082370
movsxd rdx, dword [0x1401334d0]
mov rcx, qword [0x1401334c8]
mov qword [rcx + rdx*8], rax
inc dword [0x1401334d0]
cmp dword [0x1401325b4], esi
jne 0x14005a263
lea rcx, str.FLTK::ThreadWakeup
call qword [sym.imp.USER32.dll_RegisterWindowMessageW]
mov dword [0x1401325b4], eax
cmp qword [rdi + 8], rsi
je 0x14005a288
mov rcx, rdi
call fcn.14005e300
mov rcx, qword [rax + 0xd0]
call fcn.140087b70
jmp 0x14005a2d5
movzx eax, r15b
jmp 0x14005a159
mov rcx, qword [rdi + 0xd0]
call fcn.140087650
test eax, eax
je 0x14005a2ab
mov rcx, qword [rdi + 0xd0]
cmp dword [rcx + 0x10], esi
jl 0x14005a2ab
call fcn.140087b70
jmp 0x14005a2d5
call fcn.1400506f0
test rax, rax
je 0x14005a2ba
mov rcx, rax
jmp 0x14005a26c
call fcn.140052140
lea r8, [rbp - 0x78]
mov rcx, rax
lea rdx, [rsp + 0x78]
mov r9, qword [rax]
call qword [r9 + 0x138]
mov ebx, eax
mov rax, qword [rdi + 0xd0]
mov dword [rax + 0x10], ebx
call fcn.140052140
mov edx, ebx
mov rcx, rax
mov r8, qword [rax]
call qword [r8 + select]
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 ebx, xmm0
mulss xmm1, xmm6
mov dword [rsp + 0x64], ebx
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 [rsp + 0x74], r15d
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 + 0x6c], eax
cvttss2si eax, xmm0
mov dword [rsp + 0x68], eax
cmp qword [rdi + 8], rsi
je 0x14005a39a
mov rcx, rdi
mov dword [rsp + 0x70], 0x10100
mov r15d, 0x46000000
call fcn.14005e340
test rax, rax
je 0x14005a392
mov r13, qword [rax + 0xc8]
test r13, r13
je 0x14005a392
mov r13, qword [r13]
jmp 0x14005a54b
mov r13, rsi
jmp 0x14005a54b
mov eax, dword [rdi + 0x60]
mov r13d, 0x10100
shr eax, 3
not eax
mov dword [rsp + 0x70], r13d
test r15b, al
je 0x14005a3ee
mov rcx, qword [r14 + 8]
call fcn.14005e140
test eax, eax
je 0x14005a3d6
test dword [rdi + 0x60], 0x4000
mov r15d, 0x6cd0000
jne 0x14005a3ff
mov r15d, 0x6cf0000
jmp 0x14005a3ff
test dword [rdi + 0x60], 0x4000
mov eax, 0x6c00000
mov r15d, 0x6ca0000
cmovne r15d, eax
jmp 0x14005a3ff
mov r13d, 0x10180
mov r15d, 0x86000000
mov dword [rsp + 0x70], r13d
mov eax, dword [rsp + 0x60]
lea r9, [rbp - 0x78]
mov dword [rsp + 0x7c], eax
lea r8, [rsp + 0x7c]
mov dword [rsp + 0x38], r13d
lea rax, [rsp + 0x78]
mov dword [rsp + 0x30], r15d
lea rdx, [rsp + 0x64]
mov qword [rsp + 0x28], rax
mov rcx, r14
lea rax, [rbp - 0x80]
mov dword [rsp + 0x64], ebx
mov qword [rsp + 0x20], rax
call fcn.140059190
mov ecx, dword [rsp + 0x78]
mov r13d, dword [rbp - 0x78]
lea eax, [rcx + r13]
test eax, eax
je 0x14005a46a
mov eax, dword [rbp - 0x80]
mov edx, dword [rsp + 0x6c]
lea edx, [rdx + rax*2]
lea eax, [rcx*2]
mov dword [rsp + 0x6c], edx
add eax, r13d
add dword [rsp + 0x68], eax
mov rcx, r14
call fcn.140087650
test eax, eax
jne 0x14005a481
mov ebx, 0x80000000
mov dword [rsp + 0x60], ebx
jmp 0x14005a4e6
cmp qword [0x140131f48], rsi
jne 0x14005a4d8
mov ebx, dword [rsp + 0x64]
mov eax, dword [rsp + 0x7c]
mov dword [rsp + 0x60], eax
movd xmm0, ebx
cvtdq2ps xmm0, xmm0
divss xmm0, xmm6
cvtps2pd xmm0, xmm0
call qword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_round]
cvttsd2si edx, xmm0
mov rcx, r14
call fcn.140087d40
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]
cvttsd2si edx, xmm0
mov rcx, r14
call fcn.140087d50
mov eax, dword [rsp + 0x78]
sub ebx, dword [rbp - 0x80]
add eax, r13d
sub dword [rsp + 0x60], eax
test dword [rdi + 0x60], 0x4020
mov r13, rsi
mov dword [rsp + 0x64], ebx
je 0x14005a54b
mov rax, qword [0x140131ec0]
test rax, rax
je 0x14005a54b
cmp dword [0x1401325b0], esi
jne 0x14005a54b
mov rax, qword [rax + 8]
cmp qword [rax + 8], rsi
je 0x14005a522
mov rcx, rax
call fcn.14005e340
cmp qword [rax + 8], rsi
jne 0x14005a514
mov r13, qword [rax + 0xc8]
test r13, r13
je 0x14005a534
mov r13, qword [r13]
jmp 0x14005a537
mov r13, rsi
mov eax, dword [rax + 0x60]
shr eax, 1
not al
test al, 1
mov eax, dword [rsp + 0x74]
cmove eax, esi
mov dword [rsp + 0x74], eax
mov ecx, 0x20
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
mov rbx, qword [rbp - 0x20]
mov edx, 0x7f00
mov r14, rax
mov qword [rbx + 0x18], rsi
mov qword [rax + 8], rdi
mov rcx, qword [rbx + 8]
mov qword [rcx + 0xc8], rax
mov qword [rax + 0x10], rsi
mov rcx, qword [rdi + 0xd0]
mov qword [rcx + 0x28], rsi
xor ecx, ecx
call qword [sym.imp.USER32.dll_LoadCursorA]
movaps xmm6, xmmword [rsp + 0x1d0]
mov qword [rbx + 0x38], rax
mov dword [rbx + 0x40], esi
cmp dword [0x1401355a8], esi
jne 0x14005a5a7
call fcn.140059af0
mov rcx, qword [rdi + 0x30]
mov rbx, rsi
test rcx, rcx
je 0x14005a5f3
inc r12
cmp byte [rcx + r12], bl
jne 0x14005a5b3
xor r9d, r9d
xor r8d, r8d
mov edx, r12d
call fcn.1400811f0
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 [rdi + 0x30]
mov r9d, ebx
mov r8, rax
mov edx, r12d
mov rbx, rax
call fcn.1400811f0
mov ecx, eax
mov word [rbx + rcx*2], si
mov rcx, qword [0x1401325f8]
lea rdx, [rbp - 0x10]
mov eax, dword [rsp + 0x60]
mov r9d, r15d
mov r12d, dword [rsp + 0x6c]
mov r8, rbx
mov r15d, dword [rsp + 0x70]
mov qword [rsp + 0x58], rsi
mov qword [rsp + 0x50], rcx
mov ecx, r15d
mov qword [rsp + 0x48], rsi
mov qword [rsp + 0x40], r13
mov r13d, dword [rsp + 0x68]
mov dword [rsp + 0x38], r13d
mov dword [rsp + 0x30], r12d
mov dword [rsp + 0x28], eax
mov eax, dword [rsp + 0x64]
mov dword [rsp + 0x20], eax
call qword [sym.imp.USER32.dll_CreateWindowExW]
mov qword [r14], rax
test rbx, rbx
je 0x14005a65b
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rax, qword [0x140131ec0]
mov rbx, qword [rbp - 0x20]
mov qword [r14 + 0x18], rax
mov rcx, rbx
mov qword [0x140131ec0], r14
call fcn.14005c260
test dword [rdi + 0x60], 0x40000
je 0x14005a6af
mov rcx, qword [r14]
lea rdx, [rbp - 0x20]
call qword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [rbp - 0x14]
mov rcx, rbx
mov r8d, dword [rbp - 0x1c]
sub eax, r8d
mov r9d, dword [rbp - 0x18]
mov edx, dword [rbp - 0x20]
sub r9d, edx
mov dword [rsp + 0x20], eax
call fcn.14008d480
call fcn.140050710
test al, al
jne 0x14005a6df
cmp qword [0x140132600], rsi
jne 0x14005a6df
mov rcx, qword [r14]
mov qword [0x140132600], rcx
mov byte [0x14012f108], 1
call qword [sym.imp.USER32.dll_SetClipboardViewer]
mov qword [0x140132608], rax
test r12d, r12d
je 0x14005a6e9
test r13d, r13d
jne 0x14005a705
mov eax, dword [rdi + 0x60]
shr eax, 3
not eax
test al, 1
jne 0x14005a705
cmp qword [rdi + 8], rsi
jne 0x14005a705
mov eax, esi
mov r13d, 1
jmp 0x14005a70e
mov r13d, 1
mov eax, r13d
mov dword [rbx + 0x14], eax
cmp byte [0x1401335a8], sil
je 0x14005a723
mov byte [0x1401335a8], sil
jmp 0x14005a760
mov r12d, dword [rsp + 0x74]
mov esi, r12d
test r12d, r12d
je 0x14005a760
and dword [rdi + 0x60], 0xfffffffd
mov edx, select
mov ebx, dword [0x140131ed0]
mov rcx, rdi
mov dword [0x140131ed0], 0x10
mov rax, qword [rdi]
call qword [rax + select]
mov rcx, rdi
mov dword [0x140131ed0], ebx
call fcn.140051c80
test dword [rdi + 0x60], 0x4000
mov r12, qword [rsp + 0x228]
mov rbx, qword [rsp + 0x218]
je 0x14005a785
mov qword [0x140131f40], rdi
call fcn.140050730
test esi, esi
mov rsi, qword [rsp + 0x220]
jne 0x14005a799
mov r13d, 7
jmp 0x14005a7ae
cmp qword [0x140131f48], 0
jne 0x14005a7a8
test r15b, r15b
jns 0x14005a7ae
mov r13d, 4
mov rcx, qword [r14]
mov edx, r13d
call qword [sym.imp.USER32.dll_ShowWindow]
mov rdx, qword [0x140130500]
mov rcx, qword [r14]
call qword [sym.imp.ole32.dll_RegisterDragDrop]
cmp byte [0x14012f109], 0
mov r15, qword [rsp + 0x1e0]
mov r13, qword [rsp + 0x1e8]
jne 0x14005a7f1
mov rcx, qword [r14]
xor r8d, r8d
xor edx, edx
call qword [0x140132618]
mov rcx, qword [rbp + 0xc0]
xor rcx, rsp
call fcn.1400ea730
add rsp, 0x1f0
pop r14
pop rdi
pop rbp
ret
lea rcx, [0x1401334d8]
call fcn.1400ea8a8
cmp dword [0x1401334d8], 0xffffffff
jne 0x14005a0b2
mov ecx, 8
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
lea rcx, [0x1400eee60]
mov dword [0x1401334d4], r15d
mov qword [0x1401334c8], rax
mov dword [0x1401334d0], esi
call fcn.1400eabf0
lea rcx, [0x1401334d8]
call fcn.1400ea848
jmp 0x14005a0b2