Function at 0x140050c50
Capabilities:
Copy file

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1d0]
sub rsp, 0x2d0
mov rax, qword [section..data]
xor rax, rsp
mov qword [rbp + 0x1c0], rax
mov ecx, 0xffff
call qword [sym.imp.KERNEL32.dll_GetMaximumProcessorCount]
mov r14d, eax
mov dword [rsp + 0x70], eax
call qword [sym.imp.USER32.dll_GetForegroundWindow]
xorps xmm0, xmm0
mov rbx, rax
mov qword [rbp + 0x50], rax
movdqu xmmword [rbp + 0x58], xmm0
call qword [sym.imp.USER32.dll_GetForegroundWindow]
mov qword [rbp + 0x78], 0
lea r13, str.cormorant
movups xmm0, xmmword [rbp + 0x50]
mov qword [rbp + 0x68], rax
lea rax, str.meaning
lea r9, [rbp - 0x60]
movaps xmmword [rbp - 0x60], xmm0
movups xmm1, xmmword [rbp + 0x60]
mov qword [rbp + 0x70], rax
lea rax, str.others
lea rdx, str.streetcar
movaps xmmword [rbp - 0x50], xmm1
movups xmm0, xmmword [rbp + 0x70]
mov qword [rsp + 0x28], rax
lea rcx, [rbp - 0x30]
movzx r8d, r14b
movaps xmmword [rbp - 0x40], xmm0
mov qword [rsp + 0x20], r13
call fcn.1400c9690
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movaps xmmword [rbp + 0x10], xmm0
movaps xmmword [rbp + 0x20], xmm1
movups xmm0, xmmword [rax + 0x20]
mov eax, dword [rax + 0x30]
mov dword [rsp + 0x78], eax
lea edi, [rax - 0x2d]
mov byte [rsp + 0x60], dil
movaps xmmword [rbp + 0x30], xmm0
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov dword [rsp + 0x6c], eax
call qword [sym.imp.KERNEL32.dll_GetCurrentThread]
movzx r15d, r14b
mov rdx, r13
mov rcx, r13
mov r8d, r15d
mov r12, rax
mov qword [rbp - 0x80], rax
mov dword [rsp + 0x68], r15d
call qword [sym.imp.KERNEL32.dll_CopyFileA]
mov r14d, dword [rsp + 0x78]
mov r13d, eax
lea ecx, [rbx + rbx*2]
lea rax, str.songbird
add ecx, ecx
mov qword [rsp + 0x30], rax
add r14d, 9
sub ecx, r15d
mov r9, r12
mov r8d, esi
add r14d, ecx
lea rcx, [rbp + 0x50]
movzx edx, dil
mov dword [rsp + 0x28], r14d
mov dword [rsp + 0x64], r14d
mov dword [rsp + 0x20], r13d
call fcn.1400a4a90
or rbx, 0xffffffffffffffff
mov rdx, rbx
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movups xmm2, xmm0
movups xmmword [rbp - 0x60], xmm0
movups xmmword [rbp - 0x50], xmm1
psrldq xmm2, 8
movq rdi, xmm2
inc rdx
cmp byte [rdi + rdx], 0
jne 0x140050dd3
mov eax, dword [rbp + 0x28]
imul eax, esi
add eax, 3
lea ecx, [rax + rax*2]
lea eax, [r15 + r14*8]
lea r14d, [rax + rcx*2]
movzx eax, byte [rsp + 0x60]
add r14d, r12d
add r14d, r13d
sub r14d, edx
imul sil
movzx r15d, al
movzx eax, byte [rsp + 0x64]
add r15b, byte [rsp + 0x70]
movzx ecx, r15b
imul r13b
shl cl, 3
add r15b, cl
movzx ecx, al
movzx eax, byte [rbp - 0x60]
imul cl
sub r15b, al
mov ecx, r14d
sub r15b, r12b
movzx edx, r15b
call fcn.1400b71f0
mov byte [rsp + 0x61], al
cmp r14d, dword [rsp + 0x68]
jg 0x140050e47
call fcn.14008df70
call qword [sym.imp.USER32.dll_GetForegroundWindow]
movzx esi, r13b
shl sil, 3
mov r12, rax
sub sil, r14b
sub sil, byte [rsp + 0x6c]
sub sil, byte [rbp - 0x80]
add sil, 0x12
call qword [sym.imp.USER32.dll_GetForegroundWindow]
mov edx, dword [rbp - 0x80]
movsx rcx, byte [rsp + 0x60]
movsx r8, r15b
mov r9, rax
imul edx, dword [rsp + 0x64]
imul edx, dword [rsp + 0x6c]
mov qword [rbp - 0x78], rax
imul ecx, ecx, 0x36
sub ecx, edx
mov rdx, qword [rbp - 0x60]
add ecx, r8d
mov r8d, 0x20
lea ecx, [rcx + rdx*8]
movzx edx, sil
mov dword [rsp + 0x28], ecx
mov dword [rsp + 0x7c], ecx
mov rcx, r12
mov byte [rsp + 0x20], 0
call fcn.1400a6020
lea rcx, str.c0a0
mov dword [rsp + 0x74], eax
mov eax, dword [rsp + 0x68]
cmp r13d, eax
jg 0x14005105f
mov qword [rbp - 0x30], rcx
xor ecx, ecx
mov edx, 0xc3
lea r8d, [rcx + 3]
call qword [sym.imp.KERNEL32.dll_FindResourceA]
movzx r9d, byte [rsp + 0x61]
mov r8d, dword [rsp + 0x64]
mov qword [rbp - 0x28], rax
movsx ecx, sil
mov eax, r8d
mov edx, r14d
movsx r10, r15b
imul eax, r13d
imul ecx, r9d
imul ecx, r12d
sub edx, ecx
mov rcx, rbx
sub edx, eax
lea rax, str.c0a4
sub edx, dword [rbp + 0x38]
mov qword [rbp - 0x18], rax
lea rax, str.cormorant
sub edx, dword [rbp - 0x60]
mov qword [rbp - 0x10], rax
sub edx, r10d
inc edx
mov dword [rbp - 0x20], edx
movsx rdx, sil
nop
inc rcx
cmp byte [rdi + rcx], 0
jne 0x140050f40
movsx eax, byte [rsp + 0x60]
imul ecx, r14d
imul r9d, r12d
shl ecx, 3
imul eax, dword [rbp + 0x18]
sub eax, r9d
sub eax, ecx
mov rcx, qword [rbp - 0x78]
sub eax, ecx
sub eax, edx
add eax, 0x3f
add eax, dword [rbp - 0x80]
imul ecx, dword [rsp + 0x7c]
add eax, r10d
mov dword [rbp - 8], eax
movsx eax, r15b
imul eax, dword [rbp - 0x48]
sub ecx, eax
mov eax, r8d
imul eax, dword [rsp + 0x6c]
add ecx, eax
movsx rax, byte [rsp + 0x60]
sub ecx, eax
mov eax, dword [rsp + 0x78]
sub ecx, edx
add eax, 9
sub ecx, r12d
add ecx, dword [rsp + 0x74]
add eax, ecx
mov dword [rbp - 4], eax
lea rax, str.c0a0
mov qword [rbp], rax
call qword [sym.imp.KERNEL32.dll_GetCurrentThread]
mov qword [rbp + 8], rax
inc rbx
cmp byte [rdi + rbx], 0
jne 0x140050fc1
movzx eax, r14b
imul bl
movzx ecx, al
mov al, 0xf7
imul byte [rsp + 0x60]
movzx ebx, al
sub bl, cl
sub bl, r13b
sub bl, r12b
sub bl, byte [rsp + 0x70]
add bl, 0x29
add bl, byte [rsp + 0x6c]
add bl, byte [rbp - 0x78]
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
lea r8, str.gender
movaps xmm0, xmmword [rbp - 0x30]
movaps xmm1, xmmword [rbp - 0x20]
lea rdx, str.c0a4
lea rcx, [rbp + 0x10]
movzx r9d, bl
movaps xmmword [rbp + 0x10], xmm0
movaps xmm0, xmmword [rbp - 0x10]
movaps xmmword [rbp + 0x20], xmm1
mov dword [rsp + 0x20], eax
movaps xmm1, xmmword [rbp]
movaps xmmword [rbp + 0x30], xmm0
movaps xmmword [rbp + 0x40], xmm1
call fcn.1400c8b50
lea rcx, [rbp + 0x50]
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
call qword [sym.imp.KERNEL32.dll_GetCurrentThread]
lea rdx, str.c1a5
mov rcx, rax
call fcn.1400c3df0
call fcn.1400901a0
mov eax, dword [rsp + 0x68]
lea edi, [rax + rax*8]
movsx eax, r15b
mov r15, qword [rbp - 0x80]
mov dword [rsp + 0x70], eax
movsx edx, sil
mov esi, dword [rsp + 0x6c]
imul eax, dword [rbp - 0x60]
mov ecx, r15d
lea ebx, [rsi + 0x31]
lea r8, str.offence
mov dword [rbp - 0x70], edx
imul ecx, r13d
sub ecx, eax
mov eax, edx
imul eax, r12d
sub ecx, eax
movsx rax, byte [rsp + 0x60]
sub ecx, eax
sub ecx, dword [rsp + 0x78]
add ecx, edi
add ecx, dword [rsp + 0x64]
add ebx, ecx
lea rcx, str.wound
mov r9d, ebx
call fcn.140099ea0
movzx eax, byte [rsp + 0x61]
lea ecx, [rsi - 1]
imul ecx, r15d
imul eax, r14d
sub ecx, eax
mov eax, dword [rsp + 0x74]
mov rdx, r12
imul eax, dword [rsp + 0x7c]
sub ecx, eax
imul eax, dword [rsp + 0x68], 7
add ecx, eax
sub ecx, dword [rsp + 0x64]
sub ecx, r13d
sub ecx, 6
call fcn.140087f20
lea rcx, [rbp + 0x80]
xor edx, edx
mov r8d, 0x140
mov qword [rbp - 0x80], rax
call fcn.1400e27d0
lea rdx, [rbp + 0x80]
lea rcx, str.others
call qword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov qword [rbp + 0x58], 0
mov qword [rbp + 0x68], r15
imul ebx, r12d
imul ebx, dword [rsp + 0x7c]
mov r10, rax
add ebx, 3
lea rax, str.cummerbund
mov qword [rbp + 0x50], rax
mov rax, qword [rbp - 0x78]
lea edx, [rbx + rbx*4]
movups xmm0, xmmword [rbp + 0x50]
movsx ebx, byte [rsp + 0x60]
lea ecx, [r15 + rax*4]
movzx eax, byte [rsp + 0x61]
lea r8d, [rdx + rcx*8]
mov edx, eax
mov ecx, 4
sub r8d, eax
mov eax, ebx
sub r8d, dword [rbp - 0x50]
sub r8d, dword [rsp + 0x68]
imul eax, dword [rsp + 0x64]
sub r8d, esi
imul eax, r13d
sub ecx, eax
mov dword [rbp + 0x60], r8d
shl ecx, 3
sub ecx, r12d
add ecx, edi
mov rdi, qword [rbp - 0x80]
add ecx, edx
add ecx, edi
mov dword [rbp + 0x70], ecx
movups xmm1, xmmword [rbp + 0x60]
movaps xmmword [rbp - 0x60], xmm0
movsd xmm0, qword [rbp + 0x70]
lea r9, str.seaplane
lea r8, [rbp - 0x60]
lea rdx, str.c0a0
mov rcx, r10
movaps xmmword [rbp - 0x50], xmm1
movsd qword [rbp - 0x40], xmm0
call fcn.14006c730
movzx esi, byte [rsp + 0x61]
cmp bl, sil
je 0x140051251
mov edx, 0x3d
xor ecx, ecx
lea r8d, [rdx - 0x32]
call qword [sym.imp.KERNEL32.dll_FindResourceA]
mov r8d, dword [rsp + 0x74]
mov r9d, dword [rbp - 0x70]
mov ecx, dword [rsp + 0x68]
mov rbx, rax
xor eax, eax
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x48], rax
mov eax, dword [rsp + 0x70]
mov qword [rsp + 0x40], r8
mov dword [rsp + 0x38], r14d
mov dword [rsp + 0x30], 0x20
mov dword [rsp + 0x28], eax
movzx eax, sil
mov dword [rsp + 0x20], eax
lea rax, str.cormorant
mov r8, rax
mov rdx, rax
call qword [sym.imp.USER32.dll_CreateWindowExA]
mov r8, r12
mov rdx, rbx
mov r9, rax
mov rcx, rdi
call fcn.1400b6aa0
call fcn.140082ed0
xor eax, eax
mov rcx, qword [rbp + 0x1c0]
xor rcx, rsp
call fcn.1400dd340
lea r11, [rsp + 0x2d0]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret