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

Disassembly:
sub esp, 0x100
mov eax, dword [0x4a8cd4]
mov ecx, dword [esp + 0x104]
mov edx, dword [esp + 0x108]
push ebx
push ebp
mov ebp, dword [sym.imp.KERNEL32.dll_GetTickCount]
push esi
push edi
mov dword [eax + 0x48], ecx
mov dword [eax + 0x50], edx
call ebp
mov edx, dword [0x4a8cc0]
mov ecx, eax
sub ecx, edx
test ecx, ecx
mov dword [esp + 0x14], ecx
fild dword [esp + 0x14]
jge 0x436fd7
fadd qword [0x48e498]
fmul qword [0x48e490]
mov dword [0x4a8cc0], eax
fadd dword [0x4a8d1c]
fstp dword [0x4a8d1c]
fild dword [0x4a8d2c]
fcomp dword [0x4a8d1c]
fnstsw ax
test ah, 5
jp 0x437045
mov edx, dword [0x4a8d2c]
mov esi, 2
add edx, 0xfffffffe
cmp edx, esi
jle 0x437027
mov eax, esi
call fcn.00435f30
mov eax, dword [0x4a8d2c]
inc esi
add eax, 0xfffffffe
cmp esi, eax
jl 0x437013
fild dword [0x4a8d2c]
mov dword [0x49c7cc], 0
fsubr dword [0x4a8d1c]
fstp dword [0x4a8d1c]
jmp 0x43704e
mov eax, dword [0x49c7cc]
test eax, eax
jne 0x437094
fld dword [0x4a8d1c]
fcomp qword [0x48e488]
fnstsw ax
test ah, 0x41
jne 0x437094
xor eax, eax
mov dword [0x49c7cc], 1
call fcn.00435f30
mov eax, 1
call fcn.00435f30
mov eax, dword [0x4a8d2c]
add eax, 0xfffffffe
call fcn.00435f30
mov eax, dword [0x4a8d2c]
dec eax
call fcn.00435f30
mov edx, dword [0x4a8d1c]
lea ecx, [esp + 0x1c]
push ecx
push edx
push 0x4a8d24
call fcn.0041b53e
add esp, 0xc
mov eax, 0x4a8cb4
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, 0x4a8c98
mov dword [edx + 0x68], ecx
jg 0x4370b2
fld dword [esp + 0x28]
mov eax, dword [0x4a8c98]
fmul dword [0x48e480]
push 0x437a0000
fadd dword [eax + 0x60]
fstp dword [eax + 0x60]
mov eax, dword [0x4a8c98]
fld dword [esp + 0x30]
fmul dword [0x48e480]
fadd dword [eax + 0x64]
fstp dword [eax + 0x64]
mov eax, dword [0x4a8c98]
fld dword [esp + 0x30]
fmul dword [esp + 0x2c]
fmul dword [0x48e480]
fsubr dword [eax + 0x68]
fstp dword [eax + 0x68]
mov eax, dword [0x4a8cd4]
fld dword [esp + 0x20]
fstp dword [eax + 0x30]
mov edx, dword [esp + 0x24]
fld dword [0x4a8d1c]
mov dword [eax + 0x34], edx
fsub qword [0x48cca0]
mov ecx, dword [esp + 0x28]
fld qword [0x48e478]
mov dword [eax + 0x38], ecx
mov eax, dword [0x4a8ce8]
fmul st(1)
push ecx
fld st(0)
fsin
fmul qword [0x4881e8]
fstp dword [eax + 0x54]
fcos
fmul qword [0x48e470]
fadd qword [0x48e468]
fstp dword [eax + 0x58]
fmul qword [0x48e460]
fcos
fmul qword [0x4881e8]
fstp dword [eax + 0x5c]
fld dword [eax + 0x64]
fadd dword [0x48e45c]
fstp dword [eax + 0x64]
mov eax, dword [0x4a8cc8]
fld dword [0x4a8d1c]
fmul qword [0x48e478]
fld st(0)
fsin
fmul qword [0x4881e8]
fst dword [esp + 0x18]
fstp dword [eax + 0x54]
fcos
fmul qword [0x48e470]
fadd qword [0x48e468]
fst dword [esp + 0x1c]
fstp dword [eax + 0x58]
fld dword [0x4a8d1c]
fmul qword [0x48e460]
fcos
fmul qword [0x4881e8]
fst dword [esp + 0x20]
mov edx, dword [esp + 0x20]
fstp dword [eax + 0x5c]
fld dword [eax + 0x64]
fadd dword [0x48e45c]
fstp dword [eax + 0x64]
mov eax, dword [esp + 0x1c]
fld dword [0x49c84c]
fmul dword [0x4883a8]
fadd dword [0x48e458]
fstp dword [esp]
push edx
mov ecx, dword [esp + 0x1c]
mov edx, dword [0x4a8cd0]
push eax
push ecx
push 6
push edx
call fcn.004376c0
mov eax, dword [0x4a8cc8]
fld dword [eax + 0x5c]
add esp, 0x10
fmul dword [0x48e454]
fstp dword [esp + 8]
fld dword [eax + 0x58]
fmul dword [0x48e454]
fadd dword [0x48e450]
fstp dword [esp + 4]
fld dword [eax + 0x54]
mov eax, dword [0x4a8cd4]
fmul dword [0x48e454]
fstp dword [esp]
push eax
call fcn.004351b0
mov eax, dword [0x4a8cec]
mov ecx, dword [0x4a8cd4]
add esp, 0x10
test eax, eax
mov dword [ecx + 0xc], 0x44bb8000
je 0x437299
mov eax, dword [eax]
test eax, eax
je 0x437299
push eax
call fcn.00436160
mov edx, dword [0x4a8cec]
mov eax, dword [edx]
push eax
call fcn.00436160
add esp, 8
mov ecx, dword [0x4a8cd4]
push ecx
call fcn.0043a230
mov edx, dword [0x4a8cd0]
push edx
call fcn.0043a2f0
mov eax, dword [0x4a8ce0]
push eax
call fcn.0043ae60
call fcn.0043b010
mov ecx, dword [0x4a8cd4]
push ecx
call fcn.0043a230
mov edx, dword [0x4a8cd0]
push edx
call fcn.0043a2f0
mov eax, dword [0x4a8cf0]
fld dword [eax + 0x68]
mov dword [0x49c84c], 0x3f4ccccd
fadd qword [0x486c20]
fstp dword [eax + 0x68]
fld dword [eax + 0x64]
fadd qword [0x486c20]
fstp dword [eax + 0x64]
mov eax, dword [0x4a8cc8]
push eax
call fcn.0043ae60
mov eax, dword [0x4a8628]
add esp, 0x18
test eax, eax
je 0x437422
mov eax, dword [0x4ac35c]
test eax, eax
je 0x437422
mov edx, dword [0x4a8628]
lea ecx, [esp + 0x70]
push ecx
push edx
call fcn.0042b701
push eax
call fcn.0043467d
add esp, 0xc
test eax, eax
je 0x437441
cmp dword [0x4a8628], 2
jne 0x437356
add eax, 0x4b
lea esi, [eax + 0x17]
lea ebx, [eax + 0x15]
xor ecx, ecx
mov edi, edi
movzx eax, byte [ebx]
movzx edx, byte [esi - 1]
cmp edx, eax
movzx edi, byte [esi]
mov dword [esp + 0x10], eax
jle 0x437378
mov eax, edx
mov dword [esp + 0x10], eax
cmp edi, eax
jle 0x437382
mov eax, edi
mov dword [esp + 0x10], eax
cmp dword [0x4a8628], 2
jne 0x43739b
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 + 0x4a8c98]
mov edx, dword [eax + 0x10]
fmul dword [0x48e44c]
fcom dword [edx + 0x58]
fnstsw ax
test ah, 0x41
jne 0x4373bd
fstp dword [edx + 0x58]
jmp 0x4373d4
mov edx, dword [ecx + 0x4a8c98]
fstp st(0)
mov eax, dword [edx + 0x10]
fld dword [eax + 0x58]
fmul dword [str.fff_ff]
fstp dword [eax + 0x58]
test ecx, ecx
je 0x43740e
mov edx, dword [0x4a8c98]
mov edx, dword [edx + 0x60]
mov eax, dword [ecx + 0x4a8c98]
mov dword [eax + 0x60], edx
mov edx, dword [0x4a8c98]
mov edx, dword [edx + 0x64]
mov eax, dword [ecx + 0x4a8c98]
mov dword [eax + 0x64], edx
mov edx, dword [0x4a8c98]
mov eax, dword [ecx + 0x4a8c98]
mov edx, dword [edx + 0x68]
mov dword [eax + 0x68], edx
add ecx, 4
sub ebx, 3
sub esi, 3
cmp ecx, 0x20
jb 0x437360
jmp 0x437441
xor eax, eax
mov ecx, dword [eax + 0x4a8c98]
mov ecx, dword [ecx + 0x10]
fld dword [ecx + 0x58]
add eax, 4
cmp eax, 0x20
fmul dword [str.fff_ff]
fstp dword [ecx + 0x58]
jb 0x437424
xor esi, esi
mov edx, dword [esi + 0x4a8c98]
push edx
call fcn.0043ae60
add esi, 4
add esp, 4
cmp esi, 0x20
jb 0x437443
mov eax, dword [0x4a8cf0]
push eax
call fcn.0043ae60
mov ecx, dword [0x4a8ce8]
push ecx
call fcn.0043ae60
add esp, 8
call fcn.0043b010
mov eax, dword [0x49c7c8]
test eax, eax
je 0x4375d8
call ebp
mov esi, dword [0x4a8d18]
mov edx, eax
sub edx, esi
mov eax, 0x3e0f83e1
mul edx
mov eax, edx
shr eax, 4
xor edx, edx
div dword [0x49c848]
mov esi, edx
mov eax, esi
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [0x4a8cbc]
mov ecx, esi
sar eax, 7
mov edi, dword [eax*4 + 0x49c7d0]
and ecx, 0x7f
cmp eax, edx
je 0x43758e
cmp esi, 0x80
mov dword [0x4a8cbc], eax
jge 0x4374eb
mov dword [0x4a8cc4], 0
call ebp
mov dword [0x4a8d20], eax
xor eax, eax
mov ax, word [edi]
test ax, ax
mov ecx, edi
mov ebx, 1
je 0x437513
lea esp, [esp]
cmp ax, 0xa
jne 0x437507
inc ebx
mov ax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x437500
mov eax, dword [0x4a8cd4]
mov esi, dword [eax + 0x24]
call fcn.0046e4cd
mov ecx, eax
mov eax, ebx
shl eax, 4
add eax, ebx
cdq
sub eax, edx
sar eax, 1
mov ebx, esi
shr ebx, 1
sub ebx, eax
xor edx, edx
mov eax, ecx
div ebx
shr esi, 2
xor eax, eax
mov ecx, edi
add edx, esi
xor esi, esi
cmp word [edi], ax
mov dword [0x4a8cf4], edx
je 0x43756a
cmp word [ecx], 0xa
jne 0x43755a
xor eax, eax
jmp 0x43755b
inc eax
add ecx, 2
cmp eax, esi
jle 0x437564
mov esi, eax
cmp word [ecx], 0
jne 0x437550
call fcn.0046e4cd
mov ecx, dword [0x4a8cd4]
mov ecx, dword [ecx + 0x1c]
lea edx, [esi + esi*8]
sub ecx, edx
sub ecx, 0x14
cdq
idiv ecx
add edx, 0xa
mov dword [0x4a8cd8], edx
jmp 0x4375d8
cmp ecx, 0x70
jl 0x43759c
mov eax, 0x7f
sub eax, ecx
jmp 0x4375b0
cmp ecx, 0x20
jl 0x4375a8
mov eax, 0xf
jmp 0x4375b4
cmp ecx, 0x10
jl 0x4375d8
lea eax, [ecx - 0x10]
test eax, eax
je 0x4375d8
cmp word [edi], 0
je 0x4375d8
mov edx, dword [0x4a8cf4]
mov ecx, dword [0x4a8cd4]
push eax
mov eax, dword [0x4a8cd8]
push edi
push edx
push eax
push ecx
call fcn.0043b179
add esp, 0x14
call ebp
mov esi, dword [0x4a8d20]
mov edx, eax
sub edx, esi
mov eax, 0x10624dd3
mul edx
mov ecx, edx
shr ecx, 6
test ecx, ecx
je 0x4375fe
mov eax, dword [0x4a8cc4]
cdq
idiv ecx
jmp 0x437600
xor eax, eax
push eax
push str._dfps
lea eax, [esp + 0x38]
push 0x20
push eax
call fcn.00402fc5
mov eax, dword [esp + 0x40]
add esp, 0x10
test ax, ax
lea ecx, [esp + 0x30]
mov edx, 1
je 0x43763a
cmp ax, 0xa
jne 0x43762e
inc edx
mov ax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x437627
mov eax, edx
shl eax, 4
add eax, edx
push 4
lea ecx, [esp + 0x34]
push ecx
mov ecx, eax
mov eax, dword [0x4a8cd4]
mov edx, dword [eax + 0x24]
sub edx, ecx
inc edx
push edx
push 3
push eax
call fcn.0043b179
mov edx, dword [0x4a8cc4]
mov eax, dword [0x4a8cdc]
add esp, 0x14
inc edx
test eax, eax
mov dword [0x4a8cc4], edx
je 0x4376af
mov cl, dl
test cl, 0x7f
jne 0x4376af
mov esi, dword [eax]
add esi, 0x400
mov dword [eax], esi
cmp dword [0x4a4d64], 1
mov edx, dword [0x4a8ccc]
mov ecx, esi
jge 0x4376a3
sub esi, edx
cmp esi, 0x3000
jge 0x4376ad
sub ecx, edx
cmp ecx, 0x3400
jl 0x4376af
mov dword [eax], edx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x100
ret