Function at 0x140028f40
Capabilities:
Check mutex on windows
Hide graphical window

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
lea rbp, [rsp - 0x10]
sub rsp, 0x110
mov rax, qword [0x1401973d0]
xor rax, rsp
mov qword [rbp + 8], rax
mov r13d, r9d
mov rbx, r8
mov rdi, rcx
call qword [sym.imp.KERNEL32.dll_AllocConsole]
call qword [sym.imp.KERNEL32.dll_GetConsoleWindow]
mov rcx, rax
xor edx, edx
call qword [sym.imp.USER32.dll_ShowWindow]
xor esi, esi
mov qword [rbp - 0x78], rdi
xorps xmm0, xmm0
mov qword [rsp + 0x70], rsi
lea rax, [0x140029240]
mov qword [rbp - 0x80], rsi
lea r14, str.NProgram
mov qword [rbp - 0x68], rsi
lea edx, [rsi + 0x66]
movdqa xmmword [rbp - 0x60], xmm0
mov rcx, rdi
mov qword [rsp + 0x78], rax
mov qword [rbp - 0x50], r14
call qword [sym.imp.USER32.dll_LoadIconW]
mov r8, r14
xor edx, edx
xor ecx, ecx
mov qword [rbp - 0x70], rax
call qword [sym.imp.KERNEL32.dll_CreateMutexW]
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x1400291f9
lea rcx, [rsp + 0x70]
call qword [sym.imp.USER32.dll_RegisterClassW]
mov qword [rsp + 0x58], rsi
mov r9d, 0xc80000
mov qword [rsp + 0x50], rdi
mov r8, r14
mov qword [rsp + 0x48], rsi
mov rdx, r14
mov qword [rsp + 0x40], rsi
xor ecx, ecx
mov dword [rsp + 0x38], 0x64
mov dword [rsp + 0x30], 0x166
mov dword [rsp + 0x28], 0x80000000
mov dword [rsp + 0x20], 0x80000000
call qword [sym.imp.USER32.dll_CreateWindowExW]
mov r12, rax
test rax, rax
je 0x1400291f9
mov qword [0x1401a6bd8], rax
call fcn.140004ec0
call fcn.14000fb60
mov rcx, rax
test rax, rax
je 0x1400291ee
mov rax, qword [rax]
mov qword [rsp + 0x158], r15
call qword [rax + 0x18]
add rax, 0x18
lea r14, [rsi - 1]
mov qword [rbp - 0x40], rax
test rbx, rbx
je 0x1400290ac
cmp rbx, 0x10000
jae 0x140029097
movzx edx, bx
lea rcx, [rbp - 0x40]
call fcn.14000c690
jmp 0x1400290bb
mov r8, r14
nop word [rax + rax]
inc r8
cmp word [rbx + r8*2], si
jne 0x1400290a0
jmp 0x1400290af
mov r8d, esi
mov rdx, rbx
lea rcx, [rbp - 0x40]
call fcn.14000c910
mov r15, qword [rbp - 0x40]
lea rcx, [r15 - 0x18]
call fcn.14000c810
add rax, 0x18
lea rcx, [rsp + 0x60]
mov qword [rsp + 0x60], rax
call fcn.140027a10
xorps xmm0, xmm0
lea rdx, [rbp - 0x38]
mov rcx, r12
movups xmmword [rbp - 0x38], xmm0
call qword [sym.imp.USER32.dll_GetWindowRect]
mov esi, dword [rbp - 0x30]
mov ecx, 0x10
mov edi, dword [rbp - 0x2c]
sub esi, dword [rbp - 0x38]
sub edi, dword [rbp - 0x34]
call qword [sym.imp.USER32.dll_GetSystemMetrics]
mov ecx, 0x11
mov ebx, eax
call qword [sym.imp.USER32.dll_GetSystemMetrics]
mov dword [rsp + 0x28], 0
mov r9d, esi
cdq
mov dword [rsp + 0x20], edi
sub eax, edx
sar eax, 1
mov r8d, eax
mov eax, edi
cdq
sub eax, edx
sar eax, 1
sub r8d, eax
mov eax, ebx
cdq
sub eax, edx
sar eax, 1
mov ecx, eax
mov eax, esi
cdq
sub eax, edx
sar eax, 1
sub ecx, eax
mov edx, ecx
mov rcx, r12
call qword [sym.imp.USER32.dll_MoveWindow]
mov edx, r13d
mov rcx, r12
call qword [sym.imp.USER32.dll_ShowWindow]
xorps xmm0, xmm0
lea rcx, [rbp - 0x28]
xor r9d, r9d
xor r8d, r8d
xor edx, edx
movups xmmword [rbp - 0x28], xmm0
movups xmmword [rbp - 0x18], xmm0
movups xmmword [rbp - 8], xmm0
call qword [sym.imp.USER32.dll_GetMessageW]
test eax, eax
jle 0x1400291ac
lea rcx, [rbp - 0x28]
call qword [sym.imp.USER32.dll_TranslateMessage]
lea rcx, [rbp - 0x28]
call qword [sym.imp.USER32.dll_DispatchMessageW]
xor r9d, r9d
lea rcx, [rbp - 0x28]
xor r8d, r8d
xor edx, edx
call qword [sym.imp.USER32.dll_GetMessageW]
test eax, eax
jg 0x140029182
lock xadd dword [r15 - 8], r14d
sub r14d, 1
jg 0x1400291c6
mov rcx, qword [r15 - 0x18]
lea rdx, [r15 - 0x18]
mov rax, qword [rcx]
call qword [rax + 8]
mov r15, qword [rsp + 0x158]
xor eax, eax
mov rcx, qword [rbp + 8]
xor rcx, rsp
call fcn.14011e030
add rsp, 0x110
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov ecx, 0x80004005
call fcn.14000fc90
int3
mov rcx, 0xffffffffffffffff
call fcn.14012c640
int3