Function at 0x140091e90
Capabilities:
Create thread
Extract resource via kernel32 functions
Query environment variable

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x190
mov rax, qword [section..data]
xor rax, rsp
mov qword [rsp + 0x180], rax
mov rbp, rcx
call qword [sym.imp.USER32.dll_GetActiveWindow]
lea rcx, [rsp + 0x70]
mov edx, 0x104
call qword [sym.imp.KERNEL32.dll_FindFirstVolumeA]
call qword [sym.imp.USER32.dll_GetActiveWindow]
call qword [sym.imp.KERNEL32.dll_GetActiveProcessorGroupCount]
movzx edi, ax
xor eax, eax
movsx rsi, bpl
mov qword [rsp + 0x28], rax
lea r8, [0x140001b00]
xor edx, edx
mov r9, rsi
xor ecx, ecx
mov dword [rsp + 0x20], eax
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov r15, rax
mov qword [rsp + 0x60], rax
call qword [sym.imp.KERNEL32.dll_GetEnvironmentStringsW]
call qword [sym.imp.USER32.dll_GetActiveWindow]
movsx r12d, bpl
mov ecx, r12d
call qword [sym.imp.KERNEL32.dll_GetStdHandle]
mov edx, 0x24
xor ecx, ecx
lea r8d, [rdx - 0x20]
call qword [sym.imp.KERNEL32.dll_FindResourceA]
mov r13, rax
call qword [sym.imp.KERNEL32.dll_GetTickCount]
xor ecx, ecx
lea r8d, [rcx + 0x1c]
mov edx, 0x375
mov r14d, eax
call qword [sym.imp.KERNEL32.dll_FindResourceA]
xor ecx, ecx
mov edx, 0x291
lea r8d, [rcx + 0x17]
mov qword [rsp + 0x68], rax
call qword [sym.imp.KERNEL32.dll_FindResourceA]
mov rcx, qword [rsp + 0x68]
lea rax, str.observatory
imul r15d, ecx
shl r15d, 2
sub r15d, edi
add r15d, r12d
add r15d, ebp
or rbx, 0xffffffffffffffff
inc rbx
cmp byte [rax + rbx], 0
jne 0x140091f92
mov eax, 0xffffffa0
sub eax, esi
add ebx, eax
cmp ebx, edi
jne 0x1400920c8
call qword [sym.imp.KERNEL32.dll_LockResource]
call qword [sym.imp.USER32.dll_GetForegroundWindow]
mov rcx, qword [rsp + 0x60]
imul r13d, ecx
mov eax, ecx
imul eax, r14d
lea esi, [rax*4 + 5]
imul esi, ebp
sub esi, r13d
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
call qword [sym.imp.USER32.dll_GetForegroundWindow]
call qword [sym.imp.USER32.dll_GetActiveWindow]
xor r13d, r13d
movsxd rdi, ebx
mov qword [rsp + 0x58], r13
mov qword [rsp + 0x50], r13
mov qword [rsp + 0x48], r13
mov qword [rsp + 0x40], rdi
mov dword [rsp + 0x38], ebx
mov dword [rsp + 0x30], r14d
lea r8, str.coil
lea rdx, str.c2a5
mov r9d, r12d
mov ecx, r12d
mov dword [rsp + 0x28], r15d
mov dword [rsp + 0x20], ebx
call qword [sym.imp.USER32.dll_CreateWindowExA]
call qword [sym.imp.USER32.dll_GetActiveWindow]
lea ecx, [rsi + 4]
call qword [sym.imp.KERNEL32.dll_GetStdHandle]
call qword [sym.imp.USER32.dll_GetActiveWindow]
call qword [sym.imp.KERNEL32.dll_GetCurrentThread]
mov qword [rsp + 0x58], r13
mov qword [rsp + 0x50], r13
mov qword [rsp + 0x48], r13
mov qword [rsp + 0x40], rdi
mov dword [rsp + 0x38], ebx
mov dword [rsp + 0x30], r12d
lea r8, str.wetsuit
lea rdx, str.wetsuit
lea ecx, [rsi + 4]
mov r9d, ebx
mov dword [rsp + 0x28], r15d
mov dword [rsp + 0x20], ebx
call qword [sym.imp.USER32.dll_CreateWindowExA]
lea rcx, [rsp + 0x70]
mov edx, 0x104
call qword [sym.imp.KERNEL32.dll_FindFirstVolumeA]
lea r8d, [r13 + 1]
mov edx, 0x1ec
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_FindResourceA]
lea rcx, [rsp + 0x70]
mov edx, 0x104
call qword [sym.imp.KERNEL32.dll_FindFirstVolumeA]
lea rcx, [rsp + 0x70]
mov edx, 0x104
call qword [sym.imp.KERNEL32.dll_FindFirstVolumeA]
call qword [sym.imp.USER32.dll_GetForegroundWindow]
xor ecx, ecx
mov edx, 0xae
lea r8d, [rcx + 7]
call qword [sym.imp.KERNEL32.dll_FindResourceA]
call qword [sym.imp.USER32.dll_GetActiveWindow]
cmp bpl, r14b
jne 0x1400920f0
call qword [sym.imp.USER32.dll_GetActiveWindow]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_LoadResource]
mov rcx, qword [rsp + 0x180]
xor rcx, rsp
call fcn.1400dd340
lea r11, [rsp + 0x190]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret