Function at 0x406ef0
Capabilities:
Get local ipv4 addresses
Get mac address on windows
Hide graphical window
Manipulate console buffer

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x436f73
mov eax, dword fs:[0]
push eax
mov eax, 0x25c4
call fcn.00436990
mov eax, dword [0x47700c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
lea ecx, [ebp - 0x25b0]
call fcn.00427750
push 0
call dword [sym.imp.api_ms_win_crt_time_l1_1_0.dll__time64]
add esp, 4
mov esi, eax
push 0
push 0x270f
push edx
push esi
call fcn.004368e0
imul ecx, eax, 0x270f
sub esi, ecx
push esi
call dword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_srand]
mov ecx, dword [ebp - 0x25a0]
add esp, 4
mov dword [ebp - 0x1264], 0
xorps xmm0, xmm0
movss dword [ebp - 0x25d0], xmm0
mov dword [ebp - 0x1268], 0x41200000
mov dword [ebp - 0x129c], 0
test ecx, ecx
je 0x406fa0
mov eax, dword [ebp - 0x20c]
cdq
idiv ecx
inc eax
imul eax, ecx
mov dword [ebp - 0x20c], eax
mov edi, dword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov eax, 0x3a98
mov dword [ebp - 0x1278], 0
xor esi, esi
mov dword [ebp - 0x1274], 0
mov byte [ebp - 0x3d4], 0
mov dword [ebp - 0x25b4], eax
nop
push eax
push 0
call edi
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov ebx, eax
mov dword [ebp - 0x25b8], ebx
test ebx, ebx
je 0x407099
lea eax, [ebp - 0x25b4]
push eax
push ebx
push 0
push 0x10
push 0
call dword [sym.imp.IPHLPAPI.DLL_GetAdaptersAddresses]
cmp eax, 0x6f
jne 0x407023
push ebx
push 0
call edi
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
inc esi
cmp esi, 3
jae 0x407099
mov eax, dword [ebp - 0x25b4]
jmp 0x406fd0
test eax, eax
jne 0x40708d
lea edi, [ebp - 0x350]
nop dword [eax]
mov eax, dword [ebx + 0x34]
test eax, eax
je 0x40707a
xor esi, esi
test eax, eax
je 0x40707a
nop dword [eax]
dec eax
cmp esi, eax
movzx eax, byte [ebx + esi + 0x2c]
push eax
jne 0x40705d
push str._.2X...
push edi
call fcn.004011b0
mov eax, 5
jmp 0x40706d
push str._.2X_
push edi
call fcn.004011b0
mov eax, 3
add edi, eax
inc esi
mov eax, dword [ebx + 0x34]
add esp, 0xc
cmp esi, eax
jb 0x407040
mov ebx, dword [ebx + 8]
test ebx, ebx
jne 0x407030
mov ebx, dword [ebp - 0x25b8]
mov edi, dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push ebx
push 0
call edi
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
push 0xfffffffffffffff5
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
mov esi, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0
call esi
push 1
mov dword [ebp - 0x358], eax
call esi
mov dword [ebp - 0x354], eax
call dword [sym.imp.KERNEL32.dll_GetConsoleWindow]
push 1
push 0x258
push 0x320
push 0
push 0
push eax
call dword [sym.imp.USER32.dll_MoveWindow]
cmp byte [ebp - 0x1298], 0
jne 0x4070ec
lea ecx, [ebp - 0x25b0]
call fcn.00427260
mov edi, dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__kbhit]
xor ebx, ebx
mov esi, dword [sym.imp.KERNEL32.dll_Sleep]
mov dword [ebp - 0x25b4], ebx
cmp dword [ebp - 0x20c], ebx
jle 0x4077a9
nop dword [eax]
cmp byte [ebp - 0x1298], 0
jne 0x4077a9
lea eax, [ebx + 1]
mov dword [ebp - 0x1260], eax
xor eax, eax
push 0xfffffffffffffff5
mov dword [ebp - 0x25c4], eax
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
mov ebx, eax
cmp ebx, 0xffffffff
je 0x4071a3
lea eax, [ebp - 0x28]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
test eax, eax
je 0x4071a3
movsx eax, word [ebp - 0x28]
movsx ecx, word [ebp - 0x26]
mov esi, dword [ebp - 0x25c4]
imul ecx, eax
lea eax, [ebp - 0x25bc]
push eax
push esi
push ecx
push 0x20
push ebx
mov dword [ebp - 0x25b8], ecx
call dword [sym.imp.KERNEL32.dll_FillConsoleOutputCharacterW]
test eax, eax
je 0x40719d
lea eax, [ebp - 0x25bc]
push eax
push esi
push dword [ebp - 0x25b8]
push dword [ebp - 0x20]
push ebx
call dword [sym.imp.KERNEL32.dll_FillConsoleOutputAttribute]
test eax, eax
je 0x40719d
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
mov esi, dword [sym.imp.KERNEL32.dll_Sleep]
cmp byte [ebp - 0x3d4], 0
mov ebx, dword [ebp - 0x25b4]
je 0x407220
movss xmm0, dword [ebp - 0x1268]
dec ebx
cvttss2si eax, dword [ebp - 0x1268]
mov dword [ebp - 0x25b4], ebx
mulss xmm0, dword [0x4728f4]
push eax
push str.System_paused.__Type__p__to_continue._n_nNOTE:_pausing_costs__d_seconds.
addss xmm0, dword [ebp - 0x1278]
movss dword [ebp - 0x1278], xmm0
call fcn.00401070
add esp, 8
nop
call edi
test eax, eax
jne 0x407203
push 0x3e8
call esi
call edi
test eax, eax
je 0x4071f6
call dword [sym.imp.api_ms_win_crt_conio_l1_1_0.dll__getch]
cmp al, 0x70
jne 0x4071f0
mov byte [ebp - 0x3d4], 0
mov byte [ebp - 0x210], 1
call fcn.004350a0
call dword [sym.imp.api_ms_win_crt_time_l1_1_0.dll_clock]
movss xmm0, dword [ebp - 0x1278]
xorps xmm3, xmm3
mulss xmm0, dword [0x472838]
mov dword [ebp - 0x25c0], eax
movss dword [ebp - 0x25b8], xmm0
test ebx, ebx
je 0x40725b
movd xmm1, ebx
movaps xmm2, xmm0
cvtdq2ps xmm1, xmm1
divss xmm2, xmm1
jmp 0x407261
xorps xmm2, xmm2
xorps xmm1, xmm1
movd xmm0, dword [ebp - 0x1264]
cvtdq2ps xmm0, xmm0
movss dword [ebp - 0x25cc], xmm2
divss xmm0, xmm1
movss xmm1, dword [0x47284c]
comiss xmm1, xmm0
jbe 0x407288
xorps xmm0, xmm0
movss xmm1, dword [ebp - 0x1268]
subss xmm1, xmm2
mulss xmm1, xmm0
xorps xmm0, xmm0
movss dword [ebp - 0x25c8], xmm0
comiss xmm1, xmm3
jbe 0x4072b0
movss dword [ebp - 0x25c8], xmm1
lea eax, [ebp - 0x417]
push eax
lea eax, [ebp - 0x453]
push eax
push str.V2.0.0
push str.____s________s__s_n
call fcn.00401070
add esp, 0x10
cmp byte [ebp - 0x220], 0
je 0x4072e1
push dword [ebp - 0x21c]
jmp 0x4072ea
mov eax, dword [ebp - 0x20c]
sub eax, ebx
push eax
push ebx
push dword [ebp - 0x1264]
push str._________________d__d____________d_to_go_n
call fcn.00401070
cvttss2si eax, dword [ebp - 0x25b8]
add esp, 0x10
push eax
push str.________________Total_time__sec_:__d_n
call fcn.00401070
movss xmm0, dword [ebp - 0x25c8]
add esp, 8
mulss xmm0, dword [0x4728fc]
cvttss2si eax, xmm0
movss xmm0, dword [ebp - 0x25cc]
push eax
cvtps2pd xmm0, xmm0
sub esp, 8
movsd qword [esp], xmm0
push str.________________Avg_time:__5.2f_t_t_current_score:__d_n
call fcn.00401070
push str.___________________________________________________________________________n_n
call fcn.00401070
add esp, 0x14
cmp byte [ebp - 0x259c], 0
jne 0x4073d5
call dword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_rand]
cdq
idiv dword [ebp - 0x25a0]
mov eax, ebx
mov esi, edx
cdq
idiv dword [ebp - 0x25a0]
mov dword [ebp - 0x129c], esi
cmp dword [ebp + esi*4 - 0x1314], eax
jle 0x4073aa
call dword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_rand]
cdq
idiv dword [ebp - 0x25a0]
mov eax, ebx
mov esi, edx
cdq
idiv dword [ebp - 0x25a0]
mov dword [ebp - 0x129c], esi
cmp dword [ebp + esi*4 - 0x1314], eax
jg 0x407383
mov eax, esi
lea ecx, [ebp - 0x259b]
shl eax, 4
sub eax, esi
lea eax, [ecx + eax*2]
push eax
push str._n_n_s_n_n
call fcn.00401070
mov eax, dword [ebp - 0x129c]
add esp, 8
inc dword [ebp + eax*4 - 0x1314]
lea eax, [ebp - 0x1226]
mov word [ebp - 0x3d4], 0
push str.OOPS__No_question_was_created__n_Answer_is_0_
push eax
mov byte [ebp - 0x1270], 0
mov word [ebp - 0x127c], 0
call fcn.004011b0
lea eax, [ebp - 0xe3e]
push 0x4579f0
push eax
call fcn.004011b0
add esp, 0x10
cmp byte [ebp - 0x210], 0
je 0x407425
mov byte [ebp - 0x1297], 1
jmp 0x407471
cmp byte [ebp - 0x220], 0
je 0x407471
mov edx, dword [ebp - 0x218]
mov ecx, dword [edx + 4]
test ecx, ecx
je 0x407471
mov eax, dword [ecx + 0x88]
mov dword [edx + 4], eax
mov byte [ebp - 0x1297], 1
mov eax, dword [ecx]
mov dword [ebp - 0x1294], eax
mov eax, dword [ecx + 4]
mov dword [ebp - 0x1290], eax
mov eax, dword [ecx + 8]
dec dword [ebp - 0x21c]
mov dword [ebp - 0x128c], eax
mov dword [ebp - 0x214], ecx
lea ecx, [ebp - 0x25b0]
call fcn.0042b7b0
push 5
lea eax, [ebp - 0x1226]
push str.OOPS_
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncmp]
add esp, 0xc
test eax, eax
jne 0x40749d
dec ebx
jmp 0x407790
cmp byte [ebp - 0x1298], 0
jne 0x407790
cmp byte [ebp - 0x210], 0
je 0x4074c1
mov byte [ebp - 0x1297], 0
mov byte [ebp - 0x210], 0
cmp byte [ebp - 0x3d3], 0
je 0x407627
lea eax, [ebp - 0x3d2]
mov dword [ebp - 0x28], 0
push eax
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
mov byte [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
call fcn.00408b60
push 0
push ecx
push 3
push str.Image_Window
lea eax, [ebp - 0x28]
mov dword [ebp - 4], 0
push eax
lea ecx, [ebp - 0x208]
call fcn.00421070
push 0x32
push 0x33e
lea ecx, [ebp - 0x208]
mov byte [ebp - 4], 1
call fcn.00403fd0
push 1
push 0x12c
push 0x190
lea ecx, [ebp - 0x208]
call fcn.00403c20
call dword [sym.imp.KERNEL32.dll_GetConsoleWindow]
mov esi, eax
push esi
call dword [sym.imp.USER32.dll_SetForegroundWindow]
push esi
call dword [sym.imp.USER32.dll_SetActiveWindow]
lea ecx, [ebp - 0x25b0]
call fcn.00429ca0
cmp dword [ebp - 0x1fc], 0
mov ebx, eax
je 0x4075cc
cmp dword [ebp - 0x1f8], 0
je 0x4075cc
cmp byte [ebp - 0x1b4], 0
jne 0x4075cc
cmp byte [ebp - 0x1e4], 0
mov byte [ebp - 0x1b4], 1
je 0x4075aa
lea ecx, [ebp - 0x208]
call fcn.00403970
push 0
push dword [ebp - 0x148]
call dword [sym.imp.USER32.dll_ShowWindow]
mov dword [ebp - 0x1c4], 0
mov dword [ebp - 0x1c8], 0
call dword [sym.imp.KERNEL32.dll_GetConsoleWindow]
mov esi, eax
push esi
call dword [sym.imp.USER32.dll_SetForegroundWindow]
push esi
call dword [sym.imp.USER32.dll_SetActiveWindow]
lea ecx, [ebp - 0x208]
mov byte [ebp - 0x3d3], 0
call fcn.00403b50
push dword [ebp - 0x1d0]
call fcn.0043575c
push dword [ebp - 0x1cc]
call fcn.0043575c
add esp, 8
mov dword [ebp - 4], 0xffffffff
cmp byte [ebp - 0x18], 0
jne 0x407634
push dword [ebp - 0x14]
call fcn.0043575c
add esp, 4
jmp 0x407634
lea ecx, [ebp - 0x25b0]
call fcn.00429ca0
mov ebx, eax
cmp ebx, 2
jne 0x407677
lea ecx, [ebp - 0x25b0]
call fcn.0042a540
movss xmm0, dword [ebp - 0x1268]
mulss xmm0, dword [0x4728f4]
mov ebx, dword [ebp - 0x25b4]
dec ebx
mov byte [ebp - 0x210], 1
addss xmm0, dword [ebp - 0x1278]
movss dword [ebp - 0x1278], xmm0
jmp 0x40776c
test ebx, ebx
jne 0x407766
call dword [sym.imp.api_ms_win_crt_time_l1_1_0.dll_clock]
cmp byte [ebp - 0x1270], bl
jne 0x4076a4
sub eax, dword [ebp - 0x25c0]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ebp - 0x1274], xmm0
jmp 0x4076ac
movss xmm0, dword [ebp - 0x1274]
movss xmm1, dword [ebp - 0x1268]
mulss xmm1, dword [0x4728f8]
comiss xmm0, xmm1
jbe 0x4076cc
movaps xmm0, xmm1
movss dword [ebp - 0x1274], xmm0
addss xmm0, dword [ebp - 0x1278]
mov eax, dword [ebp - 0xd38]
lea eax, [eax + eax*2]
movss dword [ebp - 0x1278], xmm0
inc dword [ebp + eax*4 - 0xdb0]
cmp byte [ebp - 0x127b], 0
je 0x407705
mov eax, dword [ebp - 0xd38]
lea eax, [eax + eax*2]
inc dword [ebp + eax*4 - 0xdac]
mov eax, dword [ebp - 0xd38]
movss xmm0, dword [ebp - 0x25b8]
mov ebx, dword [ebp - 0x25b4]
movss dword [ebp - 0x25d0], xmm0
lea ecx, [eax + eax*2]
cvttss2si eax, dword [ebp - 0x1274]
add dword [ebp + ecx*4 - 0xda8], eax
cmp byte [ebp - 0x259c], 0
jne 0x40776c
mov eax, dword [ebp - 0x129c]
mov ecx, eax
movss xmm0, dword [ebp - 0x1274]
shl ecx, 4
sub ecx, eax
mov eax, dword [ebp + eax*4 - 0x1314]
lea eax, [eax + ecx*2]
movss dword [ebp + eax*4 - 0x2218], xmm0
jmp 0x40776c
mov ebx, dword [ebp - 0x25b4]
cmp byte [ebp - 0x220], 0
je 0x407790
cmp dword [ebp - 0x21c], 0
jne 0x407790
lea ecx, [ebp - 0x25b0]
call fcn.00429940
mov byte [ebp - 0x1298], 1
mov esi, dword [sym.imp.KERNEL32.dll_Sleep]
inc ebx
mov dword [ebp - 0x25b4], ebx
cmp ebx, dword [ebp - 0x20c]
jl 0x407110
xor eax, eax
push 0xfffffffffffffff5
mov dword [ebp - 0x25b8], eax
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
mov ebx, eax
cmp ebx, 0xffffffff
je 0x407820
lea eax, [ebp - 0x28]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
test eax, eax
je 0x407820
movsx eax, word [ebp - 0x28]
movsx ecx, word [ebp - 0x26]
mov esi, dword [ebp - 0x25b8]
imul ecx, eax
lea eax, [ebp - 0x25c0]
push eax
push esi
push ecx
push 0x20
push ebx
mov dword [ebp - 0x25bc], ecx
call dword [sym.imp.KERNEL32.dll_FillConsoleOutputCharacterW]
test eax, eax
je 0x407820
lea eax, [ebp - 0x25c0]
push eax
push esi
push dword [ebp - 0x25bc]
push dword [ebp - 0x20]
push ebx
call dword [sym.imp.KERNEL32.dll_FillConsoleOutputAttribute]
test eax, eax
je 0x407820
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
mov esi, dword [ebp - 0x25b4]
test esi, esi
je 0x4078f0
call dword [sym.imp.api_ms_win_crt_time_l1_1_0.dll_clock]
mov eax, dword [ebp - 0x1264]
sub esp, 0x10
movd xmm0, esi
cvtdq2ps xmm0, xmm0
movd xmm1, eax
cvtdq2ps xmm1, xmm1
divss xmm1, xmm0
movss xmm0, dword [ebp - 0x25d0]
cvtps2pd xmm0, xmm0
movss dword [ebp - 0x25bc], xmm1
movsd qword [esp + 8], xmm0
movaps xmm0, xmm1
mulss xmm0, dword [0x4728ec]
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push esi
push eax
push str._d_correct_out_of__d___.0f_____in__8.1f_seconds_n_n
call fcn.00401070
movss xmm0, dword [ebp - 0x1278]
add esp, 0x14
mulss xmm0, dword [0x472838]
movd xmm1, esi
cvtdq2ps xmm1, xmm1
divss xmm0, xmm1
movss dword [ebp - 0x25c0], xmm0
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push str.Average_time_per_question:__f_n_n
call fcn.00401070
movss xmm0, dword [ebp - 0x1268]
add esp, 0xc
subss xmm0, dword [ebp - 0x25c0]
mulss xmm0, dword [ebp - 0x25bc]
comiss xmm0, dword [0x472818]
ja 0x4078e6
xorps xmm0, xmm0
movss dword [ebp - 0x125c], xmm0
jmp 0x4078f3
xorps xmm0, xmm0
mulss xmm0, dword [0x4728fc]
cvttss2si eax, xmm0
push eax
push str.Score:__d_n_n
call fcn.00401070
add esp, 8
cmp byte [ebp - 0x259c], 0
jne 0x4079e1
xor esi, esi
cmp dword [ebp - 0x25a0], esi
jle 0x4079e1
lea edi, [ebp - 0x259b]
lea ebx, [ebp - 0x2214]
mov ecx, dword [ebp - 0x25b4]
test ecx, ecx
jle 0x407965
movss xmm0, dword [ebp + esi*4 - 0x1404]
mov eax, ebx
nop dword [eax]
addss xmm0, dword [eax]
add eax, 4
sub ecx, 1
jne 0x407950
movss dword [ebp + esi*4 - 0x1404], xmm0
mov eax, dword [ebp + esi*4 - 0x1314]
test eax, eax
jle 0x40798d
movss xmm1, dword [ebp + esi*4 - 0x1404]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm1, xmm0
movss dword [ebp + esi*4 - 0x1404], xmm1
movss xmm0, dword [ebp + esi*4 - 0x1404]
sub esp, 8
mulss xmm0, dword [0x472838]
movss dword [ebp + esi*4 - 0x1404], xmm0
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push eax
push dword [ebp + esi*4 - 0x138c]
push edi
push str._s:__d__d_t__f_n
call fcn.00401070
inc esi
add esp, 0x18
add ebx, 0x78
add edi, 0x1e
cmp esi, dword [ebp - 0x25a0]
jl 0x407934
mov edi, dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__kbhit]
lea ecx, [ebp - 0x25b0]
mov dword [ebp - 0x458], 2
call fcn.00429420
lea ecx, [ebp - 0x25b0]
call fcn.00429940
call edi
mov ebx, dword [sym.imp.api_ms_win_crt_conio_l1_1_0.dll__getch]
test eax, eax
je 0x407a0f
call ebx
push str.Press_any_key_to_exit_n
call fcn.00401070
add esp, 4
call edi
test eax, eax
jne 0x407a35
mov esi, dword [sym.imp.KERNEL32.dll_Sleep]
push 0xc8
call esi
call edi
test eax, eax
je 0x407a28
call ebx
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0043574b
mov esp, ebp
pop ebp
ret