Function at 0x4011c0
Capabilities:
Check for time delay via gettickcount
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x44
mov eax, dword [0x43a074]
xor eax, esp
mov dword [esp + 0x40], eax
push edi
xor edi, edi
push 0x7f00
push edi
mov dword [0x43b788], 0x23
mov dword [0x43b78c], 0x401040
mov dword [0x43b794], edi
mov dword [0x43b790], edi
mov dword [0x43b798], edi
mov dword [0x43b79c], edi
call dword [sym.imp.USER32.dll_LoadCursorA]
push 0x43b788
mov dword [0x43b7a0], eax
mov dword [0x43b7a4], edi
mov dword [0x43b7a8], edi
mov dword [0x43b7ac], 0x43326c
call dword [sym.imp.USER32.dll_RegisterClassA]
test ax, ax
jne 0x401248
mov ecx, dword [esp + 0x44]
pop edi
xor ecx, esp
xor eax, eax
call fcn.00409fea
add esp, 0x44
ret 0x10
push edi
push 0x80c80000
lea eax, [esp + 0x10]
mov esi, 0x320
push eax
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], edi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], 0x258
call dword [sym.imp.USER32.dll_AdjustWindowRect]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
sub ecx, dword [esp + 0xc]
sub eax, dword [esp + 8]
push edi
push edi
push edi
push edi
push ecx
push eax
push 0x80000000
push 0x80000000
push 0xca0000
push str.raytracer
push str.raytracer
push edi
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], ecx
call dword [sym.imp.USER32.dll_CreateWindowExA]
push 1
push eax
mov dword [0x43b7b0], eax
call dword [sym.imp.USER32.dll_ShowWindow]
push 0x38
push edi
push 0x43b7b4
call fcn.0040a0b0
mov eax, dword [0x43b7b0]
add esp, 0xc
mov ecx, 1
mov edx, 0x20
push eax
mov dword [0x43b784], 0x43b7b4
mov dword [0x43b7b4], 0x28
mov word [0x43b7c0], cx
mov word [0x43b7c2], dx
mov dword [0x43b7c4], 3
mov dword [0x43b7b8], esi
mov dword [0x43b7bc], 0xfffffda8
mov dword [0x43b7dc], 0xff0000
mov dword [0x43b7e0], 0xff00
mov dword [0x43b7e4], 0xff
call dword [sym.imp.USER32.dll_GetDC]
push edi
push edi
push edi
push 0x11
mov dword [0x43b780], eax
call dword [sym.imp.USER32.dll_SystemParametersInfoA]
push 0x908
call fcn.00409f85
add esp, 4
cmp eax, edi
je 0x40136e
push 0x258
push esi
mov ecx, eax
call fcn.004092a0
jmp 0x401370
xor eax, eax
mov dword [0x43b7f0], eax
mov ecx, dword [eax]
mov dword [0x43b7f4], ecx
push edi
mov ecx, eax
call fcn.004092f0
mov ecx, dword [0x43b7f0]
call fcn.00409450
push 0xa50
call fcn.00409f85
add esp, 4
cmp eax, edi
je 0x4013aa
mov ecx, eax
call fcn.00402d90
jmp 0x4013ac
xor eax, eax
mov edx, dword [0x43b7f0]
push 0x258
mov dword [0x43b7f8], eax
mov ecx, dword [edx]
push esi
push ecx
mov ecx, eax
mov byte [esp + 0x13], 0
call fcn.00401fa0
mov esi, 0x3c
mov ebx, dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp byte [esp + 7], 0
jne 0x401423
mov edx, dword [0x43b7f8]
mov eax, dword [0x43b7f0]
mov ecx, dword [edx]
push eax
call fcn.00408fe0
test al, al
je 0x40141c
mov ecx, dword [0x43b7f0]
push edi
mov byte [esp + 0xb], 1
call fcn.004092f0
mov ecx, dword [0x43b7f0]
push 0xffffffffffffffff
push 2
push 2
push str.Timings:
call fcn.00409320
call fcn.00401110
jmp 0x4013d7
call ebx
fld dword [0x43325c]
fst dword [esp + 0x20]
lea ecx, [esp + 0x20]
fld dword [0x433258]
push ecx
mov ecx, dword [0x43b7f8]
fstp dword [esp + 0x28]
fld dword [0x433254]
lea edx, [esp + 0x30]
fstp dword [esp + 0x2c]
push edx
mov edi, eax
fstp dword [esp + 0x34]
fldz
fstp dword [esp + 0x38]
fld dword [0x43324c]
fstp dword [esp + 0x3c]
call fcn.00403c20
mov ecx, dword [0x43b7f8]
call fcn.00404400
test al, al
jne 0x401494
lea ecx, [ecx]
call fcn.00401110
mov ecx, dword [0x43b7f8]
call fcn.00404400
test al, al
je 0x401480
call ebx
mov ecx, eax
mov eax, dword [str.00:00.000]
mov dword [esp + 0x38], eax
mov ax, word [0x433248]
mov word [esp + 0x40], ax
mov edx, dword [0x433244]
mov dword [esp + 0x3c], edx
sub ecx, edi
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov edi, 0xa
idiv edi
mov eax, 0x66666667
mov dword [esp + 0x18], ecx
add dl, 0x30
mov byte [esp + 0x3e], dl
imul ecx
sar edx, 2
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
mov eax, ebx
cdq
idiv edi
mov al, bl
mov edi, 0x3c
add dl, 0x30
mov byte [esp + 0x3f], dl
mov dl, 0xa
imul dl
mov dl, cl
sub dl, al
add dl, 0x30
mov byte [esp + 0x40], dl
mov eax, 0x10624dd3
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
idiv edi
mov eax, 0x45e7b273
mov edi, 0xa
mov ebx, edx
imul ecx
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov ecx, 0x64
idiv ecx
mov eax, 0x66666667
mov ecx, edx
imul ebx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x1c], eax
cdq
idiv edi
mov al, byte [esp + 0x1c]
add dl, 0x30
mov byte [esp + 0x3b], dl
mov dl, 0xa
imul dl
sub bl, al
mov eax, 0x66666667
imul ecx
add bl, 0x30
sar edx, 2
mov byte [esp + 0x3c], bl
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
mov al, bl
mov dl, 0xa
imul dl
sub cl, al
add cl, 0x30
mov byte [esp + 0x39], cl
mov eax, ebx
cdq
mov ecx, edi
idiv ecx
mov ecx, dword [0x43b7f0]
push 0xffffffffffffffff
push 1
push esi
add dl, 0x30
mov byte [esp + 0x44], dl
lea edx, [esp + 0x44]
push edx
call fcn.00409320
movzx ecx, word [0x43323c]
mov eax, dword [0x433238]
mov edx, dword [0x43b7f8]
mov dword [esp + 0x38], eax
mov word [esp + 0x3c], cx
fild dword [edx + 0xa48]
fild dword [esp + 0x18]
fdiv qword [0x433230]
fdivp st(1)
call fcn.0040a000
mov ecx, eax
mov eax, 0x431bde83
imul ecx
sar edx, 0x12
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
idiv edi
mov eax, 0x14f8b589
push 0xffffffffffffffff
push 9
push esi
add byte [esp + 0x44], dl
imul ecx
sar edx, 0xd
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
idiv edi
mov eax, 0x68db8bad
add byte [esp + 0x45], dl
imul ecx
sar edx, 0xc
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
idiv edi
mov eax, 0x10624dd3
add byte [esp + 0x46], dl
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov ecx, edi
idiv ecx
mov ecx, dword [0x43b7f0]
add byte [esp + 0x47], dl
lea edx, [esp + 0x44]
push edx
call fcn.00409320
movzx ecx, word [0x433228]
mov eax, dword [str.00.0M]
mov edx, dword [0x43b7f8]
mov dword [esp + 0x38], eax
mov word [esp + 0x3c], cx
mov ecx, dword [edx + 0xa4c]
mov eax, 0x6b5fca6b
imul ecx
sar edx, 0x16
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
idiv edi
mov eax, 0x431bde83
push 0xffffffffffffffff
push 9
add byte [esp + 0x40], dl
imul ecx
sar edx, 0x12
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
idiv edi
mov eax, 0x14f8b589
add byte [esp + 0x41], dl
imul ecx
sar edx, 0xd
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov ecx, edi
idiv ecx
mov ecx, dword [0x43b7f0]
lea edi, [esi + 0x40]
lea eax, [esp + 0x40]
add byte [esp + 0x43], dl
lea edx, [edi - 0x1e]
push edx
push eax
call fcn.00409320
mov ecx, dword [str.00.0]
mov dl, byte [0x433220]
mov byte [esp + 0x3c], dl
mov dword [esp + 0x38], ecx
mov ecx, dword [0x43b7f8]
mov eax, dword [ecx + 0xa4c]
lea eax, [eax + eax*4]
add eax, eax
cdq
idiv dword [ecx + 0xa48]
mov ebx, 0xa
mov ebp, 0xa
push 0xffffffffffffffff
push 1
push edi
mov ecx, eax
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
idiv ebx
mov eax, 0x66666667
add byte [esp + 0x44], dl
imul ecx
sar edx, 2
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
mov eax, ebx
cdq
idiv ebp
mov al, bl
add byte [esp + 0x45], dl
mov dl, 0xa
imul dl
sub cl, al
add byte [esp + 0x47], cl
mov ecx, dword [0x43b7f0]
lea eax, [esp + 0x44]
push eax
call fcn.00409320
add esi, 0x78
xor edi, edi
jmp 0x4013d1