Function at 0x1400c9150
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, 0x238
mov rax, qword [section..data]
xor rax, rsp
mov qword [rsp + 0x220], rax
mov r12, qword [rsp + 0x2a8]
mov r15, qword [rsp + 0x2a0]
mov rdi, r9
mov qword [rsp + 0x88], r9
mov byte [rsp + 0x60], r8b
mov r13d, edx
mov qword [rsp + 0x78], r12
mov rbx, rcx
call qword [sym.imp.USER32.dll_GetForegroundWindow]
movzx edx, byte [rdi]
or rbp, 0xffffffffffffffff
mov r8, rax
mov qword [rsp + 0x70], rax
mov r14, rbp
nop dword [rax]
inc r14
cmp byte [rbx + r14], 0
jne 0x1400c91c0
mov edi, dword [rsp + 0x2b0]
movzx eax, r12b
mov rsi, rbp
imul dl
movzx ecx, al
movzx eax, dil
sub al, cl
add r14b, al
inc rsi
cmp byte [r15 + rsi], 0
jne 0x1400c91e6
mov rax, rbp
inc rax
cmp byte [rbx + rax], 0
jne 0x1400c91f3
add sil, al
movzx eax, r12b
movzx ecx, r8b
add cl, cl
imul dil
sub cl, al
sub cl, dl
sub cl, byte [rsp + 0x60]
add sil, cl
add sil, r13b
call qword [sym.imp.KERNEL32.dll_GetActiveProcessorGroupCount]
mov r9, rdi
movzx eax, ax
mov rdx, r15
xor ecx, ecx
mov dword [rsp + 0x68], eax
movzx eax, r14b
mov r8d, eax
mov qword [rsp + 0xa0], rax
call qword [sym.imp.KERNEL32.dll_EnumResourceNamesA]
mov dword [rsp + 0x64], eax
call qword [sym.imp.USER32.dll_GetForegroundWindow]
mov rcx, rbp
mov rdx, rax
mov qword [rsp + 0x98], rax
nop dword [rax]
inc rcx
cmp byte [rbx + rcx], 0
jne 0x1400c9260
mov rax, qword [rsp + 0x88]
movzx eax, byte [rax]
imul cl
movzx ecx, al
movzx eax, r13b
imul cl
mov rcx, qword [rsp + 0x70]
movzx r12d, al
movzx eax, dl
imul byte [rsp + 0x64]
sub r12b, al
movzx eax, sil
imul byte [rsp + 0x68]
sub r12b, al
movzx eax, cl
imul cl
sub r12b, al
sub r12b, dil
add r12b, 7
add r12b, byte [rsp + 0x78]
call qword [sym.imp.USER32.dll_GetActiveWindow]
mov qword [rsp + 0x90], rax
cmp byte [rsp + 0x60], r13b
jne 0x1400c93ea
mov rdx, qword [rsp + 0x78]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_LoadResource]
call qword [sym.imp.KERNEL32.dll_GetCurrentThread]
lea rcx, [rsp + 0xe0]
mov edx, 0x104
call qword [sym.imp.KERNEL32.dll_FindFirstVolumeA]
lea rcx, [rsp + 0xe0]
mov edx, 0x104
call qword [sym.imp.KERNEL32.dll_FindFirstVolumeA]
xor ecx, ecx
mov edx, 0x1d0
lea r8d, [rcx + 0x17]
call qword [sym.imp.KERNEL32.dll_FindResourceA]
xor ecx, ecx
mov edx, 0x2f4
lea r8d, [rcx + 3]
call qword [sym.imp.KERNEL32.dll_FindResourceA]
movzx edx, r14b
mov rcx, rbp
mov dword [rsp + 0x80], edx
inc rcx
cmp byte [r15 + rcx], 0
jne 0x1400c9333
mov rax, rbp
inc rax
cmp byte [rbx + rax], 0
jne 0x1400c9340
mov edi, dword [rsp + 0x64]
add eax, 0xfffffff0
mov r8d, 0x140
sub edi, edx
add ecx, eax
xor edx, edx
sub edi, r13d
sub edi, dword [rsp + 0x70]
add edi, ecx
lea rcx, [rsp + 0xe0]
call fcn.1400e27d0
lea rdx, [rsp + 0xe0]
lea rcx, [0x1400ed4d4]
call qword [sym.imp.KERNEL32.dll_FindFirstFileA]
xor ecx, ecx
mov edx, 0xe8
lea r8d, [rcx + 0xd]
call qword [sym.imp.KERNEL32.dll_FindResourceA]
xor ecx, ecx
movzx eax, sil
mov qword [rsp + 0x58], rcx
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x48], rcx
mov qword [rsp + 0x40], rax
mov eax, dword [rsp + 0x80]
mov dword [rsp + 0x38], r13d
mov dword [rsp + 0x30], eax
movzx edx, sil
mov r9d, r13d
mov dword [rsp + 0x28], edx
mov r8, r15
mov ecx, edi
mov rdx, rbx
mov dword [rsp + 0x20], 6
call qword [sym.imp.USER32.dll_CreateWindowExA]
mov edi, dword [rsp + 0x2b0]
call qword [sym.imp.USER32.dll_GetActiveWindow]
mov qword [rsp + 0xa8], rax
call qword [sym.imp.KERNEL32.dll_GetMaximumProcessorGroupCount]
call qword [sym.imp.KERNEL32.dll_GetCurrentThread]
call qword [sym.imp.KERNEL32.dll_GetActiveProcessorGroupCount]
lea rcx, [rsp + 0xe0]
mov edx, 0x104
movzx eax, ax
mov dword [rsp + 0xc0], eax
call qword [sym.imp.KERNEL32.dll_FindFirstVolumeA]
call qword [sym.imp.USER32.dll_GetActiveWindow]
call qword [sym.imp.KERNEL32.dll_GetEnvironmentStringsW]
call qword [sym.imp.USER32.dll_GetActiveWindow]
mov r13d, dword [rsp + 0xa8]
sub r13d, eax
mov rcx, rax
mov qword [rsp + 0x70], rax
mov rax, rbp
nop
inc rax
cmp byte [r15 + rax], 0
jne 0x1400c9450
imul eax, dword [rsp + 0x78]
movzx edx, r14b
mov r14d, dword [rsp + 0x64]
imul edx, edi
sub edx, eax
mov eax, ecx
mov rcx, rbp
imul eax, dword [rsp + 0x90]
add edx, eax
movsx rax, r12b
add edx, eax
sub edx, r14d
inc rcx
cmp byte [rbx + rcx], 0
jne 0x1400c9485
lea esi, [rdx + 7]
mov edx, 0xf1
add esi, r13d
add esi, ecx
xor ecx, ecx
lea r8d, [rcx + 7]
call qword [sym.imp.KERNEL32.dll_FindResourceA]
mov ecx, dword [rsp + 0x68]
mov rdi, rax
call qword [sym.imp.KERNEL32.dll_GetStdHandle]
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov r9, qword [rsp + 0xa0]
xor eax, eax
lea r8, [0x140001b00]
mov qword [rsp + 0x28], rax
xor edx, edx
xor ecx, ecx
mov dword [rsp + 0x20], eax
call qword [sym.imp.KERNEL32.dll_CreateThread]
lea rcx, [rsp + 0xe0]
xor edx, edx
mov r8d, 0x140
call fcn.1400e27d0
lea rdx, [rsp + 0xe0]
lea rcx, str.link
call qword [sym.imp.KERNEL32.dll_FindFirstFileA]
lea rcx, [rsp + 0xe0]
xor edx, edx
mov r8d, 0x140
call fcn.1400e27d0
lea rdx, [rsp + 0xe0]
lea rcx, str.cummerbund
call qword [sym.imp.KERNEL32.dll_FindFirstFileA]
lea rcx, [rsp + 0xe0]
xor edx, edx
mov r8d, 0x140
call fcn.1400e27d0
lea rdx, [rsp + 0xe0]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_FindFirstFileA]
xor ecx, ecx
mov edx, 0x3c0
lea r8d, [rcx + 0x10]
call qword [sym.imp.KERNEL32.dll_FindResourceA]
mov ecx, r13d
call qword [sym.imp.KERNEL32.dll_GetStdHandle]
movzx r15d, byte [rsp + 0x60]
xor eax, eax
mov qword [rsp + 0x28], rax
lea r8, [0x140001b00]
xor edx, edx
mov r9d, r15d
xor ecx, ecx
mov dword [rsp + 0x20], eax
call qword [sym.imp.KERNEL32.dll_CreateThread]
lea rcx, str.piracy
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rdx, rdi
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LoadResource]
cmp esi, r15d
je 0x1400c9661
nop dword [rax]
inc rbp
cmp byte [rbx + rbp], 0
jne 0x1400c95c0
movzx eax, r15b
imul bpl
movzx edi, al
movzx eax, byte [rsp + 0x98]
imul r14b
movzx ecx, al
mov al, 0xf6
imul cl
movzx ecx, al
movzx eax, byte [rsp + 0x70]
imul r13b
sub cl, al
movzx eax, byte [rsp + 0x90]
add dil, cl
mov ecx, dword [rsp + 0x68]
imul byte [rsp + 0xc0]
add dil, al
mov rax, qword [rsp + 0x88]
sub dil, byte [rax]
sub dil, byte [rsp + 0x2b0]
sub dil, r12b
add dil, 2
add dil, byte [rsp + 0x78]
call qword [sym.imp.KERNEL32.dll_GetStdHandle]
mov edx, 0x1c
lea r8d, [rdx - 0x17]
movsx ebx, dil
xor ecx, ecx
add ebx, eax
call qword [sym.imp.KERNEL32.dll_FindResourceA]
call qword [sym.imp.KERNEL32.dll_GetActiveProcessorGroupCount]
call qword [sym.imp.KERNEL32.dll_GetCurrentThread]
call qword [sym.imp.KERNEL32.dll_GetCurrentThread]
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_GetStdHandle]
lea rax, [0x1400ed3b4]
mov rcx, qword [rsp + 0x220]
xor rcx, rsp
call fcn.1400dd340
add rsp, 0x238
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret