Function at 0x401040
Capabilities:
Allocate or change rwx memory
Encode data using xor
Execute shellcode via indirect call

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xb8
mov eax, dword [0x403004]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push 0x16
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov ecx, str.w3_r3ally_l0v3_devefun
mov dword [ebp - 0xb8], eax
mov esi, eax
add esp, 4
mov dl, 0x77
sub esi, ecx
mov byte [esi + ecx], dl
lea ecx, [ecx + 1]
mov dl, byte [ecx]
test dl, dl
jne 0x401071
movaps xmm2, xmmword [str.________________]
xor eax, eax
mov dword [ebp - 0xb4], 0xbfd9b569
mov dword [ebp - 0xb0], 0x79fa1cd0
mov dword [ebp - 0xac], 0x79fa4bde
mov dword [ebp - 0xa8], 0x79fa0fdf
mov dword [ebp - 0xa4], 0x79fa63d8
mov dword [ebp - 0xa0], 0x79fa4ed9
mov dword [ebp - 0x9c], 0x79fa0fda
mov dword [ebp - 0x98], 0x79fa5ddb
mov dword [ebp - 0x94], 0x79fa50d4
mov dword [ebp - 0x90], 0x79fa50d5
mov dword [ebp - 0x8c], 0x79fa45d6
mov dword [ebp - 0x88], 0x79fa63d7
mov dword [ebp - 0x84], 0x79fa50d0
mov dword [ebp - 0x80], 0x79fa0cd1
mov dword [ebp - 0x7c], 0x79fa4ad2
mov dword [ebp - 0x78], 0x79fa0fd3
mov dword [ebp - 0x74], 0x79fa63cc
mov dword [ebp - 0x70], 0x79fa58cd
mov dword [ebp - 0x6c], 0x79fa59ce
mov dword [ebp - 0x68], 0x79fa4acf
mov dword [ebp - 0x64], 0x79fa59c8
mov dword [ebp - 0x60], 0x79fa5ac9
mov dword [ebp - 0x5c], 0x79fa49ca
mov dword [ebp - 0x58], 0x41bf52cb
mov dword [ebp - 0x54], 0x3b482a30
mov dword [ebp - 0x50], 0x3c3c3c84
mov dword [ebp - 0x4c], 0xfb7cd73c
mov dword [ebp - 0x48], 0x3c3dc079
mov dword [ebp - 0x44], 0x79fb3c3c
mov dword [ebp - 0x40], 0x3c3c3cc4
mov dword [ebp - 0x3c], 0xb71bd73c
mov dword [ebp - 0x38], 0x79b73469
mov dword [ebp - 0x34], 0x33ec3dc4
mov dword [ebp - 0x30], 0x71b12c8a
mov dword [ebp - 0x2c], 0xc479b7de
mov dword [ebp - 0x28], 0x8a33f43d
mov dword [ebp - 0x24], 0x48fe043c
mov dword [ebp - 0x20], 0xc079fb35
mov dword [ebp - 0x1c], 0x3c3c3c3c
mov dword [ebp - 0x18], 0x79bf36d7
mov dword [ebp - 0x14], 0x41bf3dc4
mov dword [ebp - 0x10], 0xef4a29c4
mov dword [ebp - 0xc], 0xf5c079b7
mov byte [ebp - 8], 0xff
nop
movups xmm0, xmmword [ebp + eax - 0xb4]
movaps xmm1, xmm2
xorps xmm1, xmm0
movups xmmword [ebp + eax - 0xb4], xmm1
movups xmm0, xmmword [ebp + eax - 0xa4]
movaps xmm1, xmm2
xorps xmm1, xmm0
movups xmmword [ebp + eax - 0xa4], xmm1
movups xmm0, xmmword [ebp + eax - 0x94]
movaps xmm1, xmm2
xorps xmm1, xmm0
movups xmmword [ebp + eax - 0x94], xmm1
movups xmm0, xmmword [ebp + eax - 0x84]
movaps xmm1, xmm2
xorps xmm1, xmm0
movups xmmword [ebp + eax - 0x84], xmm1
add eax, 0x40
cmp eax, 0x80
jb 0x4011e0
cmp eax, 0xad
jae 0x401260
nop dword [eax]
xor byte [ebp + eax - 0xb4], 0x3c
inc eax
cmp eax, 0xad
jb 0x401250
push 0x40
push 0x1000
push 0xad
push 0
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov ebx, eax
test ebx, ebx
jne 0x40129a
push str.Memory_allocation_failed_n
call fcn.00401010
add esp, 4
lea eax, [ebx + 1]
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004012ef
mov esp, ebp
pop ebp
ret
push edi
mov ecx, 0x2b
lea esi, [ebp - 0xb4]
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
push 0x16
movsb byte es:[edi], byte [esi]
mov esi, dword [ebp - 0xb8]
push esi
call ebx
push eax
push str.Result:__d_n
call fcn.00401010
add esp, 0x10
push 0x8000
push 0
push ebx
call dword [sym.imp.KERNEL32.dll_VirtualFree]
push esi
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov ecx, dword [ebp - 4]
add esp, 4
xor ecx, ebp
xor eax, eax
pop edi
pop esi
pop ebx
call fcn.004012ef
mov esp, ebp
pop ebp
ret