Function at 0x4004e0
Capabilities:
Create thread
Terminate process
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x4c
push esi
push edi
push 0
push 0
push 0
push 0x40077d
push 0x10000
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
push 0x1f40
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov dword [0x400ba8], eax
mov eax, dword [0x400ba8]
add eax, 0xfa0
mov dword [0x400bb0], eax
push 0xfffffffffffffff5
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
mov dword [0x400bac], eax
push 0xfffffffffffffff6
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
mov dword [ebp - 0x34], eax
push dword [0x400240]
push dword [0x400bac]
call dword [sym.imp.KERNEL32.dll_SetConsoleScreenBufferSize]
push 0
push dword [0x400bac]
call dword [sym.imp.KERNEL32.dll_SetConsoleMode]
and dword [ebp - 0x30], 0
jmp 0x40056e
mov eax, dword [ebp - 0x30]
inc eax
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 8
jae 0x4005be
and dword [ebp - 0x40], 0
jmp 0x400581
mov eax, dword [ebp - 0x40]
inc eax
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0x50
jae 0x4005bc
push 0xf
pop eax
sub eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x30]
imul ecx, ecx, 0x50
add ecx, dword [ebp - 0x40]
mov edx, dword [0x400ba8]
mov byte [edx + ecx], al
push 0xf
pop eax
sub eax, dword [ebp - 0x30]
push 0x31
pop ecx
sub ecx, dword [ebp - 0x30]
imul ecx, ecx, 0x50
add ecx, dword [ebp - 0x40]
mov edx, dword [0x400ba8]
mov byte [edx + ecx], al
jmp 0x40057a
jmp 0x400567
and dword [ebp - 0x48], 0
jmp 0x4005cb
mov eax, dword [ebp - 0x48]
inc eax
mov dword [ebp - 0x48], eax
cmp dword [ebp - 0x48], 0xfa0
jae 0x4005e1
mov eax, dword [0x400bb0]
add eax, dword [ebp - 0x48]
and byte [eax], 0
jmp 0x4005c4
lea eax, [ebp - 0x44]
push eax
push 1
push dword [0x400bb0]
push dword [ebp - 0x34]
call dword [sym.imp.KERNEL32.dll_PeekConsoleInputA]
test eax, eax
je 0x400639
cmp dword [ebp - 0x44], 0
jbe 0x400639
lea eax, [ebp - 0x44]
push eax
push 1
push dword [0x400bb0]
push dword [ebp - 0x34]
call dword [sym.imp.KERNEL32.dll_ReadConsoleInputA]
mov eax, dword [0x400bb0]
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x4c]
movzx eax, word [eax]
cmp eax, 1
jne 0x400639
mov eax, dword [ebp - 0x4c]
movzx eax, word [eax + 0xa]
cmp eax, 0x1b
jne 0x400639
jmp 0x400749
fld qword [ebp - 0x3c]
fadd qword [0x4002f8]
push ecx
push ecx
fstp qword [esp]
fld qword [ebp - 8]
fdiv qword [0x4002f0]
push ecx
push ecx
fstp qword [esp]
call fcn.004003e5
add esp, 0x10
fld qword [ebp - 0x3c]
fadd qword [0x4002e8]
push ecx
push ecx
fstp qword [esp]
fld qword [ebp - 8]
fdiv qword [0x4002e8]
push ecx
push ecx
fstp qword [esp]
call fcn.004003e5
add esp, 0x10
fld qword [ebp - 0x3c]
fadd qword [0x4002e0]
push ecx
push ecx
fstp qword [esp]
fld qword [ebp - 8]
fdiv qword [0x4002d8]
push ecx
push ecx
fstp qword [esp]
call fcn.004003e5
add esp, 0x10
fld qword [ebp - 0x3c]
fadd qword [0x4002d0]
push ecx
push ecx
fstp qword [esp]
fld qword [ebp - 8]
fdiv qword [0x4002e0]
push ecx
push ecx
fstp qword [esp]
call fcn.004003e5
add esp, 0x10
fld qword [ebp - 0x3c]
fadd qword [0x4002c8]
push ecx
push ecx
fstp qword [esp]
fld qword [ebp - 8]
fdiv qword [0x4002d0]
push ecx
push ecx
fstp qword [esp]
call fcn.004003e5
add esp, 0x10
fld qword [ebp - 0x3c]
push ecx
push ecx
fstp qword [esp]
fld qword [ebp - 8]
push ecx
push ecx
fstp qword [esp]
call fcn.004003e5
add esp, 0x10
call fcn.00400300
fld qword [ebp - 8]
fadd qword [0x4002c0]
fstp qword [ebp - 8]
fld qword [ebp - 0x3c]
fsub qword [0x4002b8]
fstp qword [ebp - 0x3c]
fld qword [ebp - 0x3c]
fcomp qword [0x4002b0]
fnstsw ax
sahf
ja 0x40073c
fld qword [ebp - 0x3c]
fadd qword [0x4002c8]
fstp qword [ebp - 0x3c]
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x4005be
call fcn.00400300
push 9
pop ecx
mov esi, 0x400284
lea edi, [ebp - 0x2c]
rep movsd dword es:[edi], dword [esi]
push 0
push 0
push 0x24
lea eax, [ebp - 0x2c]
push eax
push dword [0x400bac]
call dword [sym.imp.KERNEL32.dll_WriteFile]
push 0
call dword [sym.imp.KERNEL32.dll_ExitProcess]