Function at 0x43e3b0
Capabilities:
Check for time delay via gettickcount

Disassembly:
sub esp, 0xcc
mov eax, dword [0x479354]
push ebx
push ebp
push esi
push edi
mov dword [eax + 0x48], ecx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [0x479340]
mov edx, eax
sub edx, ecx
test edx, edx
mov dword [esp + 0x14], edx
fild dword [esp + 0x14]
jge 0x43e3e4
fadd qword [0x46e990]
fmul qword [0x46ec28]
mov dword [0x479340], eax
mov ebp, 2
fadd dword [0x47939c]
fstp dword [0x47939c]
fild dword [0x4793ac]
fld dword [0x47939c]
fcompp
fnstsw ax
test ah, 0x41
jne 0x43e456
mov eax, dword [0x4793ac]
add eax, 0xfffffffe
cmp eax, ebp
mov esi, ebp
jle 0x43e438
mov eax, esi
call fcn.0043dbd0
mov ecx, dword [0x4793ac]
inc esi
add ecx, 0xfffffffe
cmp esi, ecx
jl 0x43e423
fild dword [0x4793ac]
mov dword [0x473234], 0
fsubr dword [0x47939c]
fstp dword [0x47939c]
jmp 0x43e45f
mov eax, dword [0x473234]
test eax, eax
jne 0x43e4a5
fld dword [0x47939c]
fcomp qword [0x46ec20]
fnstsw ax
test ah, 0x41
jne 0x43e4a5
xor eax, eax
mov dword [0x473234], 1
call fcn.0043dbd0
mov eax, 1
call fcn.0043dbd0
mov eax, dword [0x4793ac]
add eax, 0xfffffffe
call fcn.0043dbd0
mov eax, dword [0x4793ac]
dec eax
call fcn.0043dbd0
mov eax, dword [0x47939c]
lea edx, [esp + 0x1c]
push edx
push eax
mov esi, 0x4793a4
call fcn.00413e94
add esp, 8
mov eax, 0x479334
mov ecx, dword [eax - 4]
mov ecx, dword [ecx + 0x60]
mov edx, dword [eax]
mov dword [edx + 0x60], ecx
mov edx, dword [eax - 4]
mov ecx, dword [eax]
mov edx, dword [edx + 0x64]
mov dword [ecx + 0x64], edx
mov ecx, dword [eax - 4]
mov edx, dword [eax]
mov ecx, dword [ecx + 0x68]
add eax, 0xfffffffc
cmp eax, 0x479318
mov dword [edx + 0x68], ecx
jg 0x43e4c2
mov eax, dword [0x479318]
fld dword [esp + 0x28]
fmul dword [0x46ec18]
mov ebx, dword [0x479354]
mov edx, dword [esp + 0x20]
mov esi, dword [0x479348]
fadd dword [eax + 0x60]
mov edi, dword [0x479350]
push 0x437a0000
push ecx
fstp dword [eax + 0x60]
mov eax, dword [0x479318]
fld dword [esp + 0x34]
fmul dword [0x46ec18]
fadd dword [eax + 0x64]
fstp dword [eax + 0x64]
mov eax, dword [0x479318]
fld dword [esp + 0x34]
fmul dword [esp + 0x30]
fmul dword [0x46ec18]
fsubr dword [eax + 0x68]
fstp dword [eax + 0x68]
mov eax, dword [esp + 0x2c]
fld dword [esp + 0x24]
mov dword [ebx + 0x38], eax
fstp dword [ebx + 0x30]
mov eax, dword [0x479368]
fld dword [0x47939c]
mov dword [ebx + 0x34], edx
fsub qword [0x46ea00]
fld qword [0x46ec10]
fmul st(1)
fld st(0)
fsin
fmul qword [0x46ead0]
fstp dword [eax + 0x54]
fcos
fmul qword [0x46ec08]
fadd qword [0x46ec00]
fstp dword [eax + 0x58]
fmul qword [0x46ebf8]
fcos
fmul qword [0x46ead0]
fstp dword [eax + 0x5c]
fld dword [eax + 0x64]
fadd qword [0x46ebf0]
fstp dword [eax + 0x64]
fld dword [0x47939c]
fmul qword [0x46ec10]
fld st(0)
fsin
fmul qword [0x46ead0]
fst dword [esp + 0x1c]
fstp dword [esi + 0x54]
mov eax, dword [esp + 0x1c]
fcos
fmul qword [0x46ec08]
fadd qword [0x46ec00]
fst dword [esp + 0x20]
fstp dword [esi + 0x58]
mov edx, dword [esp + 0x20]
fld dword [0x47939c]
fmul qword [0x46ebf8]
fcos
fmul qword [0x46ead0]
fst dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
fstp dword [esi + 0x5c]
fld dword [esi + 0x64]
fadd qword [0x46ebf0]
fstp dword [esi + 0x64]
fld dword [0x4732a4]
fmul dword [0x46ea88]
fadd qword [str.333333]
fstp dword [esp]
push ecx
push edx
push eax
mov al, 6
call fcn.0043f4e0
fld dword [esi + 0x5c]
add esp, 8
fmul dword [0x46ebe0]
mov ecx, ebx
fstp dword [esp + 8]
fld dword [esi + 0x58]
fmul dword [0x46ebe0]
fadd qword [0x46ebd8]
fstp dword [esp + 4]
fld dword [esi + 0x54]
fmul dword [0x46ebe0]
fstp dword [esp]
call fcn.0043cec0
mov eax, dword [0x47936c]
add esp, 0xc
test eax, eax
mov dword [ebx + 0xc], 0x44bb8000
je 0x43e69c
mov eax, dword [eax]
test eax, eax
je 0x43e69c
call fcn.0043e250
mov ecx, dword [0x47936c]
mov eax, dword [ecx]
call fcn.0043e250
mov ebx, dword [0x479354]
mov edi, ebx
call fcn.00441f50
mov eax, dword [0x479350]
call fcn.00442000
mov edx, dword [0x479360]
push 0
push 0
push edx
call fcn.004420e0
call fcn.00442b80
mov edi, dword [0x479354]
call fcn.00441f50
mov eax, dword [0x479350]
call fcn.00442000
mov edi, dword [0x479370]
fld dword [edi + 0x68]
mov eax, dword [0x479348]
fadd qword [0x46e9b8]
push 0
push 0
push eax
fstp dword [edi + 0x68]
mov dword [0x4732a4], 0x3f4ccccd
fld dword [edi + 0x64]
fadd qword [0x46e9b8]
fstp dword [edi + 0x64]
call fcn.004420e0
mov eax, dword [0x47827c]
add esp, 0x18
test eax, eax
je 0x43e960
mov eax, dword [0x47b6e0]
test eax, eax
je 0x43e960
mov eax, dword [0x47b5fc]
test eax, eax
je 0x43e739
call dword [eax + 0x50]
jmp 0x43e73b
xor eax, eax
mov edx, dword [0x47827c]
lea ecx, [esp + 0x3c]
push ecx
push edx
push eax
call fcn.0042d02f
add esp, 0xc
test eax, eax
je 0x43e82f
cmp dword [0x47827c], ebp
jne 0x43e763
add eax, 0x4b
lea esi, [eax + 0x17]
lea ebx, [eax + 0x15]
xor ecx, ecx
jmp 0x43e770
movzx eax, byte [ebx]
movzx edx, byte [esi - 1]
cmp edx, eax
movzx edi, byte [esi]
mov dword [esp + 0x10], eax
jle 0x43e788
mov eax, edx
mov dword [esp + 0x10], eax
cmp edi, eax
jle 0x43e792
mov eax, edi
mov dword [esp + 0x10], eax
cmp dword [0x47827c], ebp
jne 0x43e7aa
add eax, 0xffffff80
cdq
and edx, 3
add eax, edx
sar eax, 2
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
mov eax, dword [ecx + 0x479318]
mov edx, dword [eax + 0x10]
fmul qword [0x46ebd0]
fcom dword [edx + 0x58]
fnstsw ax
test ah, 0x41
jne 0x43e7cc
fstp dword [edx + 0x58]
jmp 0x43e7e3
mov edx, dword [ecx + 0x479318]
fstp st(0)
mov eax, dword [edx + 0x10]
fld dword [eax + 0x58]
fmul qword [0x46ebc8]
fstp dword [eax + 0x58]
test ecx, ecx
je 0x43e81d
mov edx, dword [0x479318]
mov edx, dword [edx + 0x60]
mov eax, dword [ecx + 0x479318]
mov dword [eax + 0x60], edx
mov edx, dword [0x479318]
mov edx, dword [edx + 0x64]
mov eax, dword [ecx + 0x479318]
mov dword [eax + 0x64], edx
mov edx, dword [0x479318]
mov eax, dword [ecx + 0x479318]
mov edx, dword [edx + 0x68]
mov dword [eax + 0x68], edx
add ecx, 4
sub ebx, 3
sub esi, 3
cmp ecx, 0x20
jb 0x43e770
mov edi, dword [0x479370]
xor esi, esi
jmp 0x43e840
mov edx, dword [esi + 0x479318]
push 0
push 0
push edx
call fcn.004420e0
add esi, 4
add esp, 0xc
cmp esi, 0x20
jb 0x43e840
push 0
push 0
push edi
call fcn.004420e0
mov eax, dword [0x479368]
push 0
push 0
push eax
call fcn.004420e0
add esp, 0x18
call fcn.00442b80
mov eax, dword [0x473230]
test eax, eax
mov ebx, dword [sym.imp.KERNEL32.dll_GetTickCount]
je 0x43e9fb
call ebx
mov edx, dword [0x479398]
mov ecx, eax
sub ecx, edx
mov eax, 0x3e0f83e1
mul ecx
mov eax, edx
shr eax, 4
xor edx, edx
div dword [0x4732a0]
mov edi, edx
mov eax, edi
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [0x47933c]
mov ecx, edi
sar eax, 7
mov esi, dword [eax*4 + 0x473238]
and ecx, 0x7f
cmp eax, edx
je 0x43e9b0
cmp edi, 0x80
mov dword [0x47933c], eax
jge 0x43e8f4
mov dword [0x479344], 0
call ebx
mov dword [0x4793a0], eax
call fcn.00455bb1
mov edi, eax
mov al, byte [esi]
shr edi, 1
test al, al
mov ecx, esi
mov edx, 1
je 0x43e91d
lea ebx, [ebx]
cmp al, 0xa
jne 0x43e915
inc edx
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x43e910
mov eax, dword [0x479354]
mov ecx, dword [eax + 0x24]
mov eax, edx
shl eax, 4
add eax, edx
cdq
sub eax, edx
mov ebp, ecx
sar eax, 1
shr ebp, 1
sub ebp, eax
xor edx, edx
mov eax, edi
div ebp
shr ecx, 2
add edx, ecx
mov dword [0x479374], edx
call fcn.00455bb1
xor ecx, ecx
shr eax, 1
xor edx, edx
cmp byte [esi], cl
je 0x43e991
cmp byte [esi], 0xa
jne 0x43e984
xor ecx, ecx
jmp 0x43e985
xor eax, eax
mov ecx, dword [eax + 0x479318]
mov ecx, dword [ecx + 0x10]
fld dword [ecx + 0x58]
add eax, 4
cmp eax, 0x20
fmul qword [0x46ebc8]
fstp dword [ecx + 0x58]
jb 0x43e962
jmp 0x43e835
inc ecx
inc esi
cmp ecx, edx
jle 0x43e98c
mov edx, ecx
cmp byte [esi], 0
jne 0x43e957
lea ecx, [edx + edx*8]
mov edx, dword [0x479354]
mov esi, dword [edx + 0x1c]
sub esi, ecx
sub esi, 0x14
cdq
idiv esi
add edx, 0xa
mov dword [0x479358], edx
jmp 0x43e9fb
cmp ecx, 0x70
jl 0x43e9be
mov eax, 0x7f
sub eax, ecx
jmp 0x43e9d2
cmp ecx, 0x20
jl 0x43e9ca
mov eax, 0xf
jmp 0x43e9d6
cmp ecx, 0x10
jl 0x43e9fb
lea eax, [ecx - 0x10]
test eax, eax
je 0x43e9fb
cmp byte [esi], 0
je 0x43e9fb
mov ecx, dword [0x479358]
push eax
mov eax, dword [0x479374]
push 0
push eax
push ecx
mov ecx, dword [0x479354]
mov eax, esi
call fcn.00442f50
add esp, 0x10
call ebx
mov esi, dword [0x4793a0]
mov edx, eax
sub edx, esi
mov eax, 0x10624dd3
mul edx
mov ecx, edx
shr ecx, 6
test ecx, ecx
je 0x43ea21
mov eax, dword [0x479344]
cdq
idiv ecx
jmp 0x43ea23
xor eax, eax
push eax
push str._dfps
mov eax, 0x20
lea edi, [esp + 0x24]
call fcn.0040258b
mov al, byte [esp + 0x24]
add esp, 8
test al, al
mov edx, edi
mov ecx, 1
je 0x43ea5d
lea esp, [esp]
cmp al, 0xa
jne 0x43ea55
inc ecx
mov al, byte [edx + 1]
inc edx
test al, al
jne 0x43ea50
mov eax, ecx
shl eax, 4
add eax, ecx
mov ecx, dword [0x479354]
mov edx, dword [ecx + 0x24]
push 4
sub edx, eax
push 0
inc edx
push edx
push 3
lea eax, [esp + 0x2c]
call fcn.00442f50
mov edx, dword [0x479344]
mov eax, dword [0x47935c]
add esp, 0x10
inc edx
test eax, eax
mov dword [0x479344], edx
je 0x43ead3
mov cl, dl
test cl, 0x7f
jne 0x43ead3
mov esi, dword [eax]
mov edx, dword [0x4835b0]
add esi, 0x400
cmp edx, 1
mov edx, dword [0x47934c]
mov dword [eax], esi
mov ecx, esi
jge 0x43eac7
sub esi, edx
cmp esi, 0x3000
jge 0x43ead1
sub ecx, edx
cmp ecx, 0x3400
jl 0x43ead3
mov dword [eax], edx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xcc
ret