Function at 0x402f80
Capabilities:
Accept command line arguments
Check for time delay via queryperformancecounter
Check os version
Write file on windows

Disassembly:
sub esp, 0x144
mov eax, dword [0x41f044]
xor eax, esp
mov dword [esp + 0x140], eax
push ebx
mov ebx, dword [esp + 0x14c]
push esi
mov esi, dword [sym.imp.USER32.dll_GetSystemMetrics]
push edi
push 0
call esi
push 1
mov dword [0x41f95c], eax
call esi
mov ecx, dword [0x41f95c]
mov dword [0x41f958], eax
mov dword [0x41f01c], eax
lea eax, [esp + 0x10]
push eax
mov dword [0x41f018], ecx
mov dword [esp + 0x14], 0
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov esi, 1
mov edi, eax
cmp dword [esp + 0x10], esi
jle 0x403172
push 0x4152c0
push dword [edi + esi*4]
call fcn.0040a8b9
add esp, 8
test eax, eax
jne 0x403023
inc esi
cmp esi, dword [esp + 0x10]
jge 0x4031ff
push dword [edi + esi*4]
call fcn.0040774c
mov dword [0x41f020], eax
jmp 0x403164
push 0x4152c8
push dword [edi + esi*4]
call fcn.0040a8b9
add esp, 8
test eax, eax
jne 0x403043
mov byte [0x41f952], 1
jmp 0x403167
push 0x4152d0
push dword [edi + esi*4]
call fcn.0040a8b9
add esp, 8
test eax, eax
jne 0x403086
inc esi
cmp esi, dword [esp + 0x10]
jge 0x4031ff
mov ecx, dword [edi + esi*4]
mov edx, 0x41f968
nop word [eax + eax]
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx], ax
lea edx, [edx + 2]
test ax, ax
jne 0x403070
jmp 0x403167
push 0x4152d8
push dword [edi + esi*4]
call fcn.0040a8b9
add esp, 8
test eax, eax
jne 0x4030b7
inc esi
cmp esi, dword [esp + 0x10]
jge 0x4031ff
push dword [edi + esi*4]
call fcn.0040774c
mov dword [0x41f01c], eax
jmp 0x403164
push 0x4152e0
push dword [edi + esi*4]
call fcn.0040a8b9
add esp, 8
test eax, eax
jne 0x4030e5
inc esi
cmp esi, dword [esp + 0x10]
jge 0x4031ff
push dword [edi + esi*4]
call fcn.0040774c
mov dword [0x41f018], eax
jmp 0x403164
push 0x4152e8
push dword [edi + esi*4]
call fcn.0040a8b9
add esp, 8
test eax, eax
jne 0x403100
mov byte [0x41f005], al
jmp 0x403167
push str._fire
push dword [edi + esi*4]
call fcn.0040a8b9
add esp, 8
test eax, eax
jne 0x40311b
mov byte [0x41f004], al
jmp 0x403167
push 0x4152fc
push dword [edi + esi*4]
call fcn.0040a8b9
add esp, 8
test eax, eax
jne 0x403138
mov byte [0x41f950], 1
jmp 0x403167
push 0x415304
push dword [edi + esi*4]
call fcn.0040a8b9
add esp, 8
test eax, eax
jne 0x403167
inc esi
cmp esi, dword [esp + 0x10]
jge 0x4031ff
push dword [edi + esi*4]
call fcn.0040774c
mov dword [0x41f964], eax
add esp, 4
inc esi
cmp esi, dword [esp + 0x10]
jl 0x402ff2
push dword [esp + 0x160]
push ebx
call fcn.00402090
add esp, 8
test eax, eax
js 0x4032c0
call fcn.00401f00
mov ecx, eax
test ecx, ecx
jns 0x403276
cmp ecx, 0x80040090
jne 0x403233
push pe_nt_image_headers32
lea eax, [esp + 0x38]
push 0
push eax
call fcn.00405750
add esp, 0xc
mov dword [esp + 0x30], 0x11c
lea eax, [esp + 0x30]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
cmp dword [esp + 0x34], 6
ja 0x403222
jne 0x403211
mov eax, dword [esp + 0x38]
cmp eax, 1
jae 0x403222
test eax, eax
jne 0x403211
cmp dword [esp + 0x3c], 0x1772
ja 0x403222
push 0x30
push str.Fluid3D
jne 0x403207
push str.Direct3D_11_components_were_not_found__but_are_available_for_this_version_of_Windows._nFor_details_see_Microsoft_Knowledge_Base_Article_971644_nhttp:__support.microsoft.com_default.aspx_kb_971644_
jmp 0x4032b3
or eax, 0xffffffff
jmp 0x4034d4
push str.Direct3D_11_components_were_not_found._Please_install_the_latest_Service_Pack._nFor_details_see_Microsoft_Knowledge_Base_Article_935791_n_http:__support.microsoft.com_default.aspx_kb_935791
jmp 0x4032b3
push 0x30
push str.Fluid3D
push str.Direct3D_11_is_not_supported_on_this_OS.
jmp 0x4032b3
push 0x30
push str.Fluid3D
push str.Direct3D_11_components_were_not_found.
jmp 0x4032b3
cmp ecx, 0x887a0004
jne 0x403249
push 0x30
push str.Fluid3D
push str.DirectX_11_is_not_supported_on_the_video_adapter
jmp 0x4032b3
cmp ecx, 0x80070057
jne 0x40326e
mov eax, dword [0x41f964]
cmp dword [eax*4 + 0x41fba0], 0
jne 0x40326e
push 0x30
push str.Fluid3D
push str.The_specified_video_adapter_does_not_exist._Please_select_a_valid_video_adapter.
jmp 0x4032b3
push ecx
push str.Unexpected_DirectX_11_error_occured__Error_code:_0x_08X_
jmp 0x40329a
call fcn.004016c0
test eax, eax
jns 0x4032ca
cmp eax, 0x887c0002
jne 0x403294
push 0x30
push str.Fluid3D
push str.Shader_source_file__fluid3D.hlsl__could_not_be_found._Please_ensure_this_file_exists_in_your_working_directory.
jmp 0x4032b3
push eax
push str.Unexpected_DirectX_11_error_occured_while_creating_resources__Error_code:_0x_08X_
push 0x41fd08
call fcn.00402f40
add esp, 0xc
push 0x30
push str.Fluid3D
push 0x41fd08
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
call fcn.00401440
mov eax, 1
jmp 0x4034d4
mov esi, dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
push 0x41fce8
call esi
push 0x41fcf0
call esi
mov ecx, dword [0x41fcf0]
sub ecx, dword [0x41fce8]
mov edx, dword [0x41fcf4]
sbb edx, dword [0x41fcec]
call fcn.00403b80
mov edx, dword [0x41fcfc]
mov ecx, dword [0x41fcf8]
cvtsd2ss xmm0, xmm0
movss dword [esp + 0xc], xmm0
call fcn.00403b80
movss xmm1, dword [esp + 0xc]
imul eax, dword [0x41f020], 0x3e8
cvtsd2ss xmm0, xmm0
divss xmm1, xmm0
movd xmm0, eax
mulss xmm1, dword [0x415c28]
cvtdq2ps xmm0, xmm0
comiss xmm0, xmm1
jbe 0x4033cf
mov edi, dword [sym.imp.USER32.dll_PeekMessageW]
nop dword [eax]
push 1
push 0
push 0
push 0
lea eax, [esp + 0x24]
push eax
call edi
call fcn.00402200
push 0x41fcf0
call esi
mov ecx, dword [0x41fcf0]
sub ecx, dword [0x41fce8]
mov edx, dword [0x41fcf4]
sbb edx, dword [0x41fcec]
call fcn.00403b80
mov edx, dword [0x41fcfc]
mov ecx, dword [0x41fcf8]
cvtsd2ss xmm0, xmm0
movss dword [esp + 0xc], xmm0
call fcn.00403b80
movss xmm1, dword [esp + 0xc]
imul eax, dword [0x41f020], 0x3e8
cvtsd2ss xmm0, xmm0
divss xmm1, xmm0
movd xmm0, eax
mulss xmm1, dword [0x415c28]
cvtdq2ps xmm0, xmm0
comiss xmm0, xmm1
ja 0x403350
push 0x41fcf0
call esi
mov edx, dword [0x41fcfc]
mov ecx, dword [0x41fcf8]
call fcn.00403b80
mov ecx, dword [0x41fcf0]
xorps xmm1, xmm1
sub ecx, dword [0x41fce8]
mov edx, dword [0x41fcf4]
sbb edx, dword [0x41fcec]
cvtsd2ss xmm1, xmm0
movd xmm0, dword [0x41f960]
cvtdq2ps xmm0, xmm0
mulss xmm1, xmm0
movss dword [esp + 0xc], xmm1
call fcn.00403b80
cmp word [0x41f968], 0
movss xmm1, dword [esp + 0xc]
cvtsd2ss xmm0, xmm0
divss xmm1, xmm0
movss dword [esp + 0xc], xmm1
je 0x4034cd
push 0
push 0x80
push 2
push 0
push 1
push 0x40000000
push 0x41f968
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
cmp esi, 0xffffffff
je 0x4034cd
movss xmm0, dword [esp + 0xc]
lea eax, [esp + 0x30]
cvtps2pd xmm0, xmm0
sub esp, 8
movsd qword [esp], xmm0
push str._.4f
push eax
call fcn.00402f40
lea ecx, [esp + 0x40]
mov dword [esp + 0x1c], 0
add esp, 0x10
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4034a0
sub ecx, edx
lea eax, [esp + 0xc]
push 0
sar ecx, 1
push eax
lea eax, [ecx + ecx]
push eax
lea eax, [esp + 0x3c]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_WriteFile]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
call fcn.00401440
xor eax, eax
mov ecx, dword [esp + 0x14c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00403819
add esp, 0x144
ret 0x10