Function at 0x10030940
Capabilities:
Check for time delay via gettickcount
Get common file path
Get system information on windows
Terminate process

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x208
mov eax, dword [0x1009400c]
xor eax, esp
mov dword [esp + 0x204], eax
cmp byte [0x1009410b], 0
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
mov eax, dword [ebp + 0x10]
mov dword [esp + 4], eax
mov eax, dword [ebp + 0x14]
push esi
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 0x18]
push edi
mov edi, dword [ebp + 8]
mov dword [esp + 0x18], eax
mov dword [0x100fdbf0], 5
jne 0x100309a2
mov eax, dword [0x101f3f18]
push 0xf
push 0xa8
push eax
mov ecx, dword [eax]
call dword [ecx + 0xe4]
mov ecx, dword [0x101f46f8]
mov esi, dword [ecx]
cmp esi, ecx
je 0x100309d3
nop
push 0x40
push dword [esi + 0x2c]
call fcn.1004d7a1
push 0x40
push dword [esi + 0x30]
call fcn.1004d7a1
mov esi, dword [esi]
add esp, 0x10
mov ecx, dword [0x101f46f8]
cmp esi, ecx
jne 0x100309b0
mov eax, dword [ecx + 4]
mov dword [eax], 0
mov eax, dword [ecx]
test eax, eax
je 0x100309f5
mov esi, dword [eax]
push 0x38
push eax
call fcn.1004d7a1
add esp, 8
mov eax, esi
test esi, esi
jne 0x100309e2
mov eax, dword [0x101f46f8]
mov dword [eax], eax
mov eax, dword [0x101f46f8]
mov dword [eax + 4], eax
cmp byte [0x101db554], 0
mov dword [0x101f46fc], 0
je 0x10030aa5
push 0
call dword [sym.imp.api_ms_win_crt_time_l1_1_0.dll__time64]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x58]
mov dword [esp + 0x1c], edx
push eax
call dword [sym.imp.api_ms_win_crt_time_l1_1_0.dll__localtime64_s]
lea eax, [esp + 0x5c]
push eax
push str.Freeworlds__Y__m__d__H__M__S.png
lea eax, [esp + 0x9c]
push 0x78
push eax
call dword [sym.imp.api_ms_win_crt_time_l1_1_0.dll_strftime]
add esp, 0x1c
lea eax, [esp + 0x100]
push eax
push 0
push 0
push 0x27
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathA]
lea eax, [esp + 0x88]
push eax
lea eax, [esp + 0x104]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendA]
push 0
push 0
push dword [0x101f425c]
lea eax, [esp + 0x10c]
push 3
push eax
call dword [sym.imp.d3dx9_43.dll_D3DXSaveSurfaceToFileA]
mov byte [0x101db554], 0
push dword [esp + 0x18]
mov eax, dword [edi + 4]
push dword [esp + 0x24]
push dword [esp + 0x14]
mov ecx, dword [eax]
push dword [esp + 0x14]
push eax
call dword [ecx + 0x44]
mov dword [esp + 0xc], eax
cmp eax, 0x88760868
jne 0x10030b5f
call fcn.10030050
mov esi, dword [sym.imp.USER32.dll_PeekMessageA]
xorps xmm0, xmm0
movaps xmmword [esp + 0x50], xmm0
movq qword [esp + 0x60], xmm0
mov dword [esp + 0x68], 0
nop
push 0x32
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [edi]
push edi
call dword [eax + 0xc]
cmp eax, 0x88760869
jg 0x10030b56
je 0x10030b44
cmp eax, 0x88760827
je 0x10030cad
cmp eax, 0x88760868
jne 0x10030af0
push 1
push 0
push 0
push 0
lea eax, [esp + 0x60]
push eax
call esi
test eax, eax
je 0x10030af0
lea eax, [esp + 0x50]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [esp + 0x50]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageA]
jmp 0x10030af0
mov eax, dword [0x101f3f18]
push 0x101f414c
push eax
mov ecx, dword [eax]
call dword [ecx + 0x40]
jmp 0x10030af0
test eax, eax
jne 0x10030af0
call fcn.1002fc80
cmp dword [0x101db494], 0
je 0x10030bb4
mov ecx, dword [0x101f3f20]
test ecx, ecx
je 0x10030bb4
mov eax, dword [ecx]
push 1
push ecx
call dword [eax + 0x18]
mov eax, dword [0x101f3f20]
xor esi, esi
push 1
push 4
push 0x101f3f40
mov ecx, dword [eax]
push eax
call dword [ecx + 0x1c]
cmp eax, 1
jne 0x10030bb4
inc esi
cmp esi, 0x64
ja 0x10030bb4
mov eax, dword [0x101f3f20]
push 1
push 4
push 0x101f3f40
mov ecx, dword [eax]
push eax
call dword [ecx + 0x1c]
cmp eax, 1
je 0x10030b95
call fcn.1002b970
sub eax, dword [0x101da4c0]
cdq
mov esi, eax
mov eax, dword [0x101da4e4]
xor esi, edx
sub esi, edx
test eax, eax
je 0x10030c03
cmp esi, dword [0x101da4c8]
jbe 0x10030c03
cmp esi, eax
jbe 0x10030c03
cmp dword [0x101da4e0], 0x10
mov eax, 0x101da4cc
cmovae eax, dword [0x101da4cc]
push eax
push esi
push str.Spent__d_ms_in__s__longest_so_far.
call fcn.1002b7a0
add esp, 0xc
mov dword [0x101da4c8], esi
add dword [0x100b3018], esi
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call esi
sub eax, dword [0x101f3f28]
cmp eax, 0x3e8
jbe 0x10030fc1
mov eax, dword [0x100b3024]
test eax, eax
je 0x10030cb5
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1008bb80]
mov eax, dword [0x100b3018]
cvtpd2ps xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
shr eax, 0x1f
movss dword [esp + 8], xmm1
addsd xmm0, qword [eax*8 + 0x1008bb80]
cvtpd2ps xmm0, xmm0
divss xmm0, xmm1
mulss xmm0, dword [0x1008b9b4]
call fcn.1007b560
mov ecx, dword [0x100b3028]
xorps xmm0, xmm0
mov edi, eax
cvtsi2sd xmm0, ecx
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x1008bb80]
cvtpd2ps xmm0, xmm0
divss xmm0, dword [esp + 8]
mulss xmm0, dword [0x1008b9b4]
call fcn.1007b560
jmp 0x10030cb9
push 0xffffffffffffffff
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
xor edi, edi
xor eax, eax
mov dword [0x100b301c], eax
mov eax, 1
mov dword [0x100b3020], edi
movzx edi, word [0x101da4a8]
mov dword [0x100b3024], 0
mov dword [0x100b3018], 0
mov dword [0x100b3028], 0
lock xadd dword [0x101da4b8], eax
inc eax
cmp eax, 1
jne 0x10030e64
call esi
xor ecx, ecx
sub eax, dword [0x101da4b0]
sbb ecx, dword [0x101da4b4]
mov dword [esp + 0x34], ecx
jne 0x10030d21
cmp eax, 0xfa
jbe 0x10030e64
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x40]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemTimes]
test eax, eax
je 0x10030e64
lea eax, [esp + 0x10]
push eax
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x48]
push eax
lea eax, [esp + 0x54]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcessTimes]
test eax, eax
je 0x10030e64
mov eax, dword [0x101da4b0]
or eax, dword [0x101da4b4]
je 0x10030e04
mov edi, dword [esp + 0x18]
sub edi, dword [0x101da490]
mov eax, dword [esp + 0x1c]
sbb eax, dword [0x101da494]
sub edi, dword [0x101da488]
sbb eax, dword [0x101da48c]
add edi, dword [esp + 0x20]
adc eax, dword [esp + 0x24]
mov dword [esp + 8], eax
jne 0x10030daa
test edi, edi
je 0x10030e04
mov ecx, dword [esp + 0x10]
sub ecx, dword [0x101da4a0]
mov edx, dword [esp + 0x14]
sbb edx, dword [0x101da4a4]
sub ecx, dword [0x101da498]
sbb edx, dword [0x101da49c]
add ecx, dword [esp + 0x28]
adc edx, dword [esp + 0x2c]
call fcn.1007b6a0
mulsd xmm0, qword [0x1008b938]
mov ecx, edi
mov edx, dword [esp + 8]
movsd qword [esp + 0x30], xmm0
call fcn.1007b6a0
movsd xmm1, qword [esp + 0x30]
divsd xmm1, xmm0
cvttsd2si eax, xmm1
mov word [0x101da4a8], ax
mov eax, dword [esp + 0x20]
mov dword [0x101da488], eax
mov eax, dword [esp + 0x24]
mov dword [0x101da48c], eax
mov eax, dword [esp + 0x18]
mov dword [0x101da490], eax
mov eax, dword [esp + 0x1c]
mov dword [0x101da494], eax
mov eax, dword [esp + 0x28]
mov dword [0x101da498], eax
mov eax, dword [esp + 0x2c]
mov dword [0x101da49c], eax
mov eax, dword [esp + 0x10]
mov dword [0x101da4a0], eax
mov eax, dword [esp + 0x14]
mov dword [0x101da4a4], eax
call esi
movzx edi, word [0x101da4a8]
mov dword [0x101da4b0], eax
mov dword [0x101da4b4], 0
lock dec dword [0x101da4b8]
lea eax, [esp + 0x50]
mov word [0x101f3f2c], di
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov eax, dword [0x101f3f44]
mov dword [0x101f3f3c], eax
mov dword [0x101f3f44], 0
call esi
mov ecx, dword [0x101f3f3c]
mov dword [0x101f3f28], eax
mov eax, dword [0x101db484]
add eax, ecx
mov esi, dword [0x100940dc]
mov dword [0x101db484], ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1008bb80]
cvtpd2ps xmm1, xmm0
mulss xmm1, dword [0x1008b864]
movss dword [0x101db48c], xmm1
cmp esi, 0xffffffff
je 0x10030fc7
mov dl, byte [0x100940e5]
mov cl, byte [0x100940d0]
test dl, dl
jne 0x10030efa
test cl, cl
je 0x10030fc7
cmp dword [0x100940fc], 0
je 0x10030fc7
cmp byte [0x101db47d], 0
je 0x10030fc7
lea eax, [esi - 5]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm0, xmm1
jbe 0x10030f64
test dl, dl
je 0x10030f4a
movss xmm0, dword [0x1009411c]
comiss xmm0, dword [0x1008b974]
jb 0x10030f4a
divss xmm0, dword [0x1008b8bc]
movss dword [0x1009411c], xmm0
jmp 0x10030fc7
test cl, cl
je 0x10030fc7
mov eax, dword [0x101db49c]
cmp eax, 0x3e8
jge 0x10030fc7
add eax, 0xa
mov dword [0x101db49c], eax
jmp 0x10030fc7
movd xmm0, esi
cvtdq2ps xmm0, xmm0
comiss xmm1, xmm0
jbe 0x10030fc7
test cl, cl
je 0x10030f87
mov eax, dword [0x101db49c]
test eax, eax
jle 0x10030f87
sub eax, 5
mov dword [0x101db49c], eax
jmp 0x10030fc7
test dl, dl
je 0x10030fc7
lea eax, [esi + 5]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm1, xmm0
jb 0x10030fc7
movss xmm0, dword [0x1008b9e4]
movss xmm1, dword [0x1009411c]
comiss xmm0, xmm1
jb 0x10030fc7
mulss xmm1, dword [0x1008b8bc]
movss dword [0x1009411c], xmm1
jmp 0x10030fc7
inc dword [0x101f3f44]
mov ecx, dword [esp + 0x20c]
mov eax, dword [esp + 0xc]
pop edi
pop esi
xor ecx, esp
call fcn.1004d763
mov esp, ebp
pop ebp
ret 0x14