[EXERCISE 0005] Mad #define constant

I really hate this. All I did was a simple #define in the C++ code and some very few lines of code (actually 4). Whatever… looking at the IDA output I am lost. What the hell is the code doing here? Can you help us to understand the code?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
.text:00401000 _main proc near
.text:00401000
.text:00401000 var_10= qword ptr -10h
.text:00401000 var_8= qword ptr -8
.text:00401000 argc= dword ptr  8
.text:00401000 argv= dword ptr  0Ch
.text:00401000 envp= dword ptr  10h
.text:00401000
.text:00401000 push    ebp
.text:00401001 mov     ebp, esp
.text:00401003 sub     esp, 10h
.text:00401006 fld     ds:__real@4014000000000000
.text:0040100C fstp    [ebp+var_10]
.text:0040100F fld     ds:__real@401921f9f01b866e
.text:00401015 fmul    [ebp+var_10]
.text:00401018 fstp    [ebp+var_8]
.text:0040101B xor     eax, eax
.text:0040101D mov     esp, ebp
.text:0040101F pop     ebp
.text:00401020 retn
.text:00401020 _main e