Function at 0x14008c780
Capabilities:
Create thread
Extract resource via kernel32 functions

Disassembly:
mov r11, rsp
push rbp
push rbx
push rsi
push rdi
lea rbp, [r11 - 0x1e8]
sub rsp, 0x2c8
mov rax, qword [section..data]
xor rax, rsp
mov qword [rbp + 0x1a0], rax
mov qword [r11 + 0x18], r12
mov qword [r11 - 0x28], r13
mov esi, edx
mov qword [r11 - 0x30], r14
mov dword [rsp + 0x48], edx
mov rbx, rcx
call qword [sym.imp.USER32.dll_GetActiveWindow]
mov r14, rax
mov qword [rbp - 0x68], rax
call qword [sym.imp.USER32.dll_GetForegroundWindow]
lea rcx, [rbp + 0x60]
xor edx, edx
mov r8d, 0x140
mov qword [rsp + 0x58], rax
call fcn.1400e27d0
lea rdx, [rbp + 0x60]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov r12, rax
mov qword [rbp - 0x60], rax
call qword [sym.imp.USER32.dll_GetForegroundWindow]
xor ecx, ecx
mov edx, 0x2f9
mov r13, rax
lea r8d, [rcx + 0x1d]
call qword [sym.imp.KERNEL32.dll_FindResourceA]
or rdi, 0xffffffffffffffff
add eax, 0x1e
mov dword [rbp - 0x78], eax
cmp eax, 0x10
jne 0x14008cc5d
mov qword [rsp + 0x2b0], r15
mov rsi, rdi
inc rsi
cmp byte [rbx + rsi], 0
jne 0x14008c830
movzx eax, r12b
imul r13b
add al, 0xf
add sil, al
call qword [sym.imp.USER32.dll_GetActiveWindow]
mov qword [rsp + 0x68], rax
call qword [sym.imp.USER32.dll_GetActiveWindow]
movzx edx, sil
lea r8d, [rax*4]
mov dword [rsp + 0x44], edx
mov rcx, rdi
mov dword [rsp + 0x74], r8d
mov qword [rbp - 0x80], rax
inc rcx
cmp byte [rbx + rcx], 0
jne 0x14008c872
imul ecx, r14d
movsx rax, sil
imul eax, edx
add ecx, 6
mov edx, 0xd1
imul r14d, ecx, 0x36
imul eax, eax, 7
xor ecx, ecx
add r14d, eax
sub r14d, r8d
lea r8d, [rcx + 4]
mov dword [rsp + 0x50], r14d
call qword [sym.imp.KERNEL32.dll_FindResourceA]
mov r15, rax
mov qword [rsp + 0x60], rax
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessorNumber]
mov dword [rsp + 0x40], eax
call qword [sym.imp.USER32.dll_GetForegroundWindow]
mov qword [rbp - 0x70], rax
call qword [sym.imp.USER32.dll_GetActiveWindow]
movsxd r10, dword [rsp + 0x40]
mov r9, qword [rbp - 0x70]
movsx eax, r10b
mov r8d, r15d
mov ecx, eax
mov dword [rsp + 0x7c], eax
mov eax, r12d
imul r8d, r14d
imul ecx, r12d
add ecx, r9d
add r8d, ecx
mov rcx, rdi
imul eax, r15d
mov dword [rsp + 0x70], eax
inc rcx
cmp byte [rbx + rcx], 0
jne 0x14008c900
mov edx, dword [rsp + 0x48]
imul r8d, r9d
mov r14, rdi
imul ecx, edx
lea ecx, [rcx + rcx*8]
sub ecx, r8d
sub ecx, eax
movsx rax, r10b
sub ecx, dword [rsp + 0x44]
sub ecx, 0x26
mov dword [rsp + 0x78], ecx
nop
inc r14
cmp byte [rbx + r14], 0
jne 0x14008c930
lea eax, [rax*4]
sub eax, r9d
add eax, edx
mov rdx, qword [rbp - 0x68]
add eax, dword [rsp + 0x68]
add edx, 0xfffffffb
add eax, r13d
mov r13d, ecx
lea rcx, [rbp + 0x60]
add eax, r12d
add eax, dword [rbp - 0x80]
add eax, edx
mov edx, 0x104
add r14d, eax
mov eax, dword [rsp + 0x58]
imul eax, r14d
sub r13d, eax
add r13d, 0xc
call qword [sym.imp.KERNEL32.dll_FindFirstVolumeA]
xor ecx, ecx
lea r8d, [rcx + 0x1d]
mov edx, 0x1f2
call qword [sym.imp.KERNEL32.dll_FindResourceA]
call qword [sym.imp.KERNEL32.dll_GetMaximumProcessorGroupCount]
call qword [sym.imp.KERNEL32.dll_GetTickCount]
xor ecx, ecx
mov edx, 0x159
lea r8d, [rcx + 0x13]
call qword [sym.imp.KERNEL32.dll_FindResourceA]
mov r15, rdi
mov qword [rbp - 0x50], rax
inc r15
cmp byte [rbx + r15], 0
jne 0x14008c9b5
movzx ecx, byte [rsp + 0x60]
movzx eax, byte [rsp + 0x68]
shl cl, 2
imul byte [rbp - 0x80]
lea r8d, [rcx + rax]
movzx eax, r12b
shl r8b, 4
imul byte [rsp + 0x40]
sub r8b, al
mov rax, qword [rsp + 0x58]
movzx ecx, al
add cl, cl
lea edx, [rcx + rax]
xor ecx, ecx
shl dl, 2
add r8b, dl
mov edx, 0x37c
sub r8b, r13b
sub r8b, sil
add r8b, 0x36
add r15b, r8b
lea r8d, [rcx + 0xf]
call qword [sym.imp.KERNEL32.dll_FindResourceA]
xor ecx, ecx
mov rdx, rax
mov qword [rbp - 0x40], rax
call qword [sym.imp.KERNEL32.dll_LoadResource]
movsx r8, r15b
mov rcx, rdi
mov qword [rbp - 0x48], rax
mov qword [rbp - 0x38], r8
cmp byte [rbx + rcx + 1], 0
lea rcx, [rcx + 1]
jne 0x14008ca31
imul eax, dword [rsp + 0x58], 0x1b0
lea ecx, [rcx + rcx*2]
dec eax
imul eax, r12d
lea edx, [rax + rcx*2]
movsxd rcx, dword [rsp + 0x40]
movsx rax, cl
sub edx, eax
mov rax, qword [rsp + 0x60]
add edx, dword [rsp + 0x44]
add eax, 0xfb
add edx, r8d
add edx, dword [rsp + 0x68]
add edx, r14d
add eax, edx
mov dword [rsp + 0x4c], eax
call qword [sym.imp.USER32.dll_GetActiveWindow]
mov r12, rdi
mov r8, rax
mov qword [rbp - 0x58], rax
nop dword [rax]
inc r12
cmp byte [rbx + r12], 0
jne 0x14008ca90
movzx eax, byte [rbp - 0x68]
imul byte [rsp + 0x58]
movzx ecx, al
add cl, cl
lea edx, [rcx + rax]
movzx eax, sil
add dl, dl
imul sil
mov esi, dword [rsp + 0x48]
add dl, al
movzx eax, byte [rbp - 0x60]
shl dl, 2
imul byte [rbp - 0x40]
movzx ecx, al
movzx eax, byte [rsp + 0x40]
sub cl, dl
mov edx, 0x31c
add cl, 2
add cl, byte [rsp + 0x50]
imul byte [rsp + 0x60]
shl cl, 2
sub cl, al
lea rax, str.c0a1
sub cl, r14b
mov qword [rbp - 0x30], rax
sub cl, byte [rbp - 0x48]
add r12b, cl
xor ecx, ecx
add r12b, byte [rsp + 0x4c]
add r12b, sil
add r12b, r13b
add r12b, r8b
lea r8d, [rcx + 0xb]
add r12b, byte [rbp - 0x70]
call qword [sym.imp.KERNEL32.dll_FindResourceA]
mov dword [rbp - 0x20], 0x20
mov qword [rbp - 0x28], rax
lea rax, [0x1400ed4d4]
mov qword [rbp - 0x18], rax
mov qword [rbp - 0x10], rax
mov rax, rdi
inc rax
cmp byte [rbx + rax], 0
jne 0x14008cb31
mov r10, qword [rsp + 0x58]
mov r9d, dword [rsp + 0x4c]
mov rdx, qword [rbp - 0x58]
imul eax, esi
imul r13d, r14d
imul ecx, eax, 0x36
mov rax, qword [rsp + 0x68]
inc r13d
imul r13d, r10d
imul eax, dword [rbp - 0x80]
sub r13d, eax
mov eax, dword [rsp + 0x70]
imul eax, dword [rsp + 0x50]
add r13d, eax
imul eax, dword [rsp + 0x44], 0x2a
sub r13d, eax
mov eax, dword [rsp + 0x78]
add ecx, r13d
lea eax, [rax + rax*2]
lea ecx, [rcx + rax*4]
sub ecx, dword [rbp - 0x38]
sub ecx, r9d
add ecx, edx
add ecx, dword [rbp - 0x70]
mov dword [rbp - 8], ecx
mov rcx, rdi
inc rcx
cmp byte [rbx + rcx], 0
jne 0x14008cb97
mov r8, qword [rsp + 0x60]
imul ecx, esi
movsx eax, r15b
imul eax, dword [rsp + 0x7c]
imul edx, r9d
imul eax, dword [rbp - 0x50]
imul eax, r8d
shl eax, 6
inc eax
imul eax, r10d
sub ecx, eax
mov rax, qword [rbp - 0x60]
sub ecx, edx
add eax, 0xfffffeb8
mov rdx, r8
sub ecx, dword [rsp + 0x74]
add eax, ecx
xor ecx, ecx
mov dword [rbp - 4], eax
lea rax, str.rainbow
mov qword [rbp], rax
call qword [sym.imp.KERNEL32.dll_LoadResource]
lea r9, str.fill
movaps xmm0, xmmword [rbp - 0x30]
movaps xmm1, xmmword [rbp - 0x20]
mov qword [rbp + 8], rax
lea rax, str.c0a3
lea r8, str.c8a4
movaps xmmword [rbp + 0x20], xmm0
movaps xmm0, xmmword [rbp - 0x10]
movaps xmmword [rbp + 0x30], xmm1
mov qword [rsp + 0x30], rax
lea rax, [rbp + 0x20]
lea rcx, [rbp - 0x30]
movaps xmm1, xmmword [rbp]
movaps xmmword [rbp + 0x40], xmm0
mov qword [rsp + 0x28], rax
lea rax, str.fisherman
movzx edx, r12b
movaps xmmword [rbp + 0x50], xmm1
mov qword [rsp + 0x20], rax
call fcn.1400dae10
mov eax, dword [rbp - 0x78]
mov r15, qword [rsp + 0x2b0]
mov r14, qword [rsp + 0x2b8]
mov r13, qword [rsp + 0x2c0]
mov r12, qword [rsp + 0x300]
cmp eax, esi
jne 0x14008ccb1
mov ecx, 0xffff
call qword [sym.imp.KERNEL32.dll_GetActiveProcessorCount]
inc rdi
cmp byte [rbx + rdi], 0
jne 0x14008cc84
lea eax, [rsi - 0x46]
lea r8, [0x140001b00]
xor edx, edx
add edi, eax
xor eax, eax
xor ecx, ecx
mov qword [rsp + 0x28], rax
movsxd r9, edi
mov dword [rsp + 0x20], eax
call qword [sym.imp.KERNEL32.dll_CreateThread]
lea rax, str.c1a0
mov rcx, qword [rbp + 0x1a0]
xor rcx, rsp
call fcn.1400dd340
add rsp, 0x2c8
pop rdi
pop rsi
pop rbx
pop rbp
ret