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

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x3e8
mov rax, qword [section..data]
xor rax, rsp
mov qword [rsp + 0x3d0], rax
movsxd rbp, r9d
mov r15, r8
mov r14, rdx
mov r12, rcx
call qword [sym.imp.USER32.dll_GetForegroundWindow]
mov esi, r15d
lea rcx, [rsp + 0x1b0]
sub esi, r14d
mov edx, 0x104
add esi, dword [r12 + 0x20]
mov r13, rax
call qword [sym.imp.KERNEL32.dll_FindFirstVolumeA]
call qword [sym.imp.KERNEL32.dll_GetEnvironmentStringsW]
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessorNumber]
movzx ecx, sil
shl cl, 2
mov dword [rsp + 0x54], eax
xor eax, eax
lea ebx, [rcx + rsi]
sub bl, r14b
add bl, r13b
cmp ebp, esi
je 0x1400bf383
mov qword [rsp + 0x28], rax
lea r8, [0x140001b00]
mov r9, rbp
xor edx, edx
xor ecx, ecx
mov dword [rsp + 0x20], eax
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov ecx, 0xffff
call qword [sym.imp.KERNEL32.dll_GetMaximumProcessorCount]
xor ecx, ecx
mov edx, 0x26c
lea r8d, [rcx + 0xa]
call qword [sym.imp.KERNEL32.dll_FindResourceA]
lea rcx, [rsp + 0x78]
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
call qword [sym.imp.USER32.dll_GetForegroundWindow]
xor ecx, ecx
mov edx, 0x21a
lea r8d, [rcx + 1]
mov rdi, rax
call qword [sym.imp.KERNEL32.dll_FindResourceA]
mov qword [rsp + 0x48], rax
movzx eax, bl
mov ecx, eax
mov dword [rsp + 0x34], eax
call qword [sym.imp.KERNEL32.dll_GetStdHandle]
mov rbx, rax
mov qword [rsp + 0x68], rax
call qword [sym.imp.USER32.dll_GetActiveWindow]
movzx ecx, bl
mov rdx, rax
mov qword [rsp + 0x40], rax
movzx eax, byte [r12]
add cl, cl
add bl, cl
sub al, r15b
add bl, bl
sub al, 2
sub bl, byte [rsp + 0x48]
mov byte [rsp + 0x30], al
sub bl, al
add bl, dl
add bl, dil
call qword [sym.imp.KERNEL32.dll_GetTickCount]
lea rcx, [rsp + 0xa0]
mov edx, 0x104
mov dword [rsp + 0x50], eax
call qword [sym.imp.KERNEL32.dll_FindFirstVolumeA]
movsx r9, byte [rsp + 0x30]
mov r8d, dword [r12 + 0x10]
imul r8d, r14d
mov qword [rsp + 0x58], rax
inc r8d
movsx r10, bl
mov ecx, r13d
lea edi, [r9 - 0x2a]
mov qword [rsp + 0x70], r10
imul r8d, r15d
imul ecx, esi
lea edx, [rcx + rcx*2]
mov ecx, dword [rsp + 0x34]
add edx, edx
lea eax, [rcx*8]
sub r8d, edx
mov rdx, qword [rsp + 0x48]
sub r8d, eax
lea eax, [r9 - 0x1b]
sub r8d, r10d
sub r8d, edx
add eax, r8d
mov dword [rsp + 0x3c], eax
mov eax, r14d
imul eax, dword [r12 + 0x20]
sub eax, ecx
xor ecx, ecx
sub eax, dword [rsp + 0x40]
sub eax, edx
xor edx, edx
add eax, r13d
lea r8d, [rdx + 0x19]
add edi, eax
mov dword [rsp + 0x38], edi
call qword [sym.imp.KERNEL32.dll_FindResourceA]
mov rbx, rax
mov qword [rsp + 0x60], rax
cmp ebp, edi
jle 0x1400bf4b6
lea rcx, [rsp + 0x2c0]
mov edx, 0x104
call qword [sym.imp.KERNEL32.dll_FindFirstVolumeA]
call qword [sym.imp.USER32.dll_GetActiveWindow]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_LockResource]
mov eax, dword [rsp + 0x34]
movsx edx, byte [rsp + 0x30]
movsx rdi, byte [rsp + 0x50]
imul edx, dword [rsp + 0x40]
imul eax, esi
lea r9d, [r14 - 1]
lea r8, [0x140001b00]
imul ecx, eax, 0x1e
sub edx, ecx
lea eax, [r15 + r15*2]
xor ecx, ecx
shl eax, 5
sub edx, eax
xor eax, eax
add edx, dword [r12 + 8]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], eax
sub edx, edi
sub edx, dword [rsp + 0x58]
sub edx, dword [rsp + 0x38]
sub edx, dword [rsp + 0x3c]
add r9d, edx
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov rbx, rax
call qword [sym.imp.USER32.dll_GetForegroundWindow]
mov ecx, dword [rsp + 0x54]
mov edx, dword [rsp + 0x34]
shl edi, 4
imul eax, r13d
lea ecx, [rcx + rdx*8]
lea r8d, [rcx + rcx*4]
mov rcx, qword [rsp + 0x68]
imul ecx, dword [rsp + 0x48]
sub r8d, ecx
mov rcx, qword [rsp + 0x40]
sub r8d, eax
mov eax, dword [rsp + 0x38]
add ecx, 9
lea edx, [rcx + rcx*2]
add edx, edx
imul eax, dword [rsp + 0x3c]
sub r8d, edx
add r8d, eax
mov eax, dword [r12]
imul eax, r14d
add r8d, eax
imul eax, r15d, 0x47
add r8d, edi
sub r8d, eax
movsx rax, byte [rsp + 0x30]
sub r8d, ebp
sub r8d, dword [rsp + 0x60]
sub r8d, esi
add r8d, ebx
add r8d, dword [rsp + 0x58]
add r8d, dword [rsp + 0x70]
add eax, r8d
mov rcx, qword [rsp + 0x3d0]
xor rcx, rsp
call fcn.1400dd340
add rsp, 0x3e8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret