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

Disassembly:
sub esp, 0x100
mov eax, dword [0x4915f4]
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 [0x4915e0]
mov ecx, eax
sub ecx, edx
test ecx, ecx
mov dword [esp + 0x14], ecx
fild dword [esp + 0x14]
jge 0x443467
fadd qword [0x4799a0]
fmul qword [0x479998]
mov dword [0x4915e0], eax
fadd dword [0x49163c]
fstp dword [0x49163c]
fild dword [0x49164c]
fcomp dword [0x49163c]
fnstsw ax
test ah, 5
jp 0x4434d5
mov edx, dword [0x49164c]
mov esi, 2
add edx, 0xfffffffe
cmp edx, esi
jle 0x4434b7
mov eax, esi
call fcn.004423c0
mov eax, dword [0x49164c]
inc esi
add eax, 0xfffffffe
cmp esi, eax
jl 0x4434a3
fild dword [0x49164c]
mov dword [0x4837d4], 0
fsubr dword [0x49163c]
fstp dword [0x49163c]
jmp 0x4434de
mov eax, dword [0x4837d4]
test eax, eax
jne 0x443524
fld dword [0x49163c]
fcomp qword [0x479990]
fnstsw ax
test ah, 0x41
jne 0x443524
xor eax, eax
mov dword [0x4837d4], 1
call fcn.004423c0
mov eax, 1
call fcn.004423c0
mov eax, dword [0x49164c]
add eax, 0xfffffffe
call fcn.004423c0
mov eax, dword [0x49164c]
dec eax
call fcn.004423c0
mov edx, dword [0x49163c]
lea ecx, [esp + 0x1c]
push ecx
push edx
push 0x491644
call fcn.004174b5
add esp, 0xc
mov eax, 0x4915d4
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, 0x4915b8
mov dword [edx + 0x68], ecx
jg 0x443542
fld dword [esp + 0x28]
mov eax, dword [0x4915b8]
fmul dword [0x479988]
push 0x437a0000
fadd dword [eax + 0x60]
fstp dword [eax + 0x60]
mov eax, dword [0x4915b8]
fld dword [esp + 0x30]
fmul dword [0x479988]
fadd dword [eax + 0x64]
fstp dword [eax + 0x64]
mov eax, dword [0x4915b8]
fld dword [esp + 0x30]
fmul dword [esp + 0x2c]
fmul dword [0x479988]
fsubr dword [eax + 0x68]
fstp dword [eax + 0x68]
mov eax, dword [0x4915f4]
fld dword [esp + 0x20]
fstp dword [eax + 0x30]
mov edx, dword [esp + 0x24]
fld dword [0x49163c]
mov dword [eax + 0x34], edx
fsub qword [0x477cb0]
mov ecx, dword [esp + 0x28]
fld qword [0x479980]
mov dword [eax + 0x38], ecx
mov eax, dword [0x491608]
fmul st(1)
push ecx
fld st(0)
fsin
fmul qword [0x473ef8]
fstp dword [eax + 0x54]
fcos
fmul qword [0x479978]
fadd qword [0x479970]
fstp dword [eax + 0x58]
fmul qword [0x479968]
fcos
fmul qword [0x473ef8]
fstp dword [eax + 0x5c]
fld dword [eax + 0x64]
fadd dword [0x479964]
fstp dword [eax + 0x64]
mov eax, dword [0x4915e8]
fld dword [0x49163c]
fmul qword [0x479980]
fld st(0)
fsin
fmul qword [0x473ef8]
fst dword [esp + 0x18]
fstp dword [eax + 0x54]
fcos
fmul qword [0x479978]
fadd qword [0x479970]
fst dword [esp + 0x1c]
fstp dword [eax + 0x58]
fld dword [0x49163c]
fmul qword [0x479968]
fcos
fmul qword [0x473ef8]
fst dword [esp + 0x20]
mov edx, dword [esp + 0x20]
fstp dword [eax + 0x5c]
fld dword [eax + 0x64]
fadd dword [0x479964]
fstp dword [eax + 0x64]
mov eax, dword [esp + 0x1c]
fld dword [0x483848]
fmul dword [0x474048]
fadd dword [0x479960]
fstp dword [esp]
push edx
mov ecx, dword [esp + 0x1c]
mov edx, dword [0x4915f0]
push eax
push ecx
push 6
push edx
call fcn.00443b50
mov eax, dword [0x4915e8]
fld dword [eax + 0x5c]
add esp, 0x10
fmul dword [0x47995c]
fstp dword [esp + 8]
fld dword [eax + 0x58]
fmul dword [0x47995c]
fadd dword [0x479958]
fstp dword [esp + 4]
fld dword [eax + 0x54]
mov eax, dword [0x4915f4]
fmul dword [0x47995c]
fstp dword [esp]
push eax
call fcn.00441640
mov eax, dword [0x49160c]
mov ecx, dword [0x4915f4]
add esp, 0x10
test eax, eax
mov dword [ecx + 0xc], 0x44bb8000
je 0x443729
mov eax, dword [eax]
test eax, eax
je 0x443729
push eax
call fcn.004425f0
mov edx, dword [0x49160c]
mov eax, dword [edx]
push eax
call fcn.004425f0
add esp, 8
mov ecx, dword [0x4915f4]
push ecx
call fcn.004466b0
mov edx, dword [0x4915f0]
push edx
call fcn.00446770
mov eax, dword [0x491600]
push eax
call fcn.004472e0
call fcn.00447490
mov ecx, dword [0x4915f4]
push ecx
call fcn.004466b0
mov edx, dword [0x4915f0]
push edx
call fcn.00446770
mov eax, dword [0x491610]
fld dword [eax + 0x68]
mov dword [0x483848], 0x3f4ccccd
fadd qword [0x472b40]
fstp dword [eax + 0x68]
fld dword [eax + 0x64]
fadd qword [0x472b40]
fstp dword [eax + 0x64]
mov eax, dword [0x4915e8]
push eax
call fcn.004472e0
mov eax, dword [0x48e8e0]
add esp, 0x18
test eax, eax
je 0x4438b2
mov eax, dword [0x492504]
test eax, eax
je 0x4438b2
mov edx, dword [0x48e8e0]
lea ecx, [esp + 0x70]
push ecx
push edx
call fcn.004272db
push eax
call fcn.0042f37f
add esp, 0xc
test eax, eax
je 0x4438d1
cmp dword [0x48e8e0], 2
jne 0x4437e6
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 0x443808
mov eax, edx
mov dword [esp + 0x10], eax
cmp edi, eax
jle 0x443812
mov eax, edi
mov dword [esp + 0x10], eax
cmp dword [0x48e8e0], 2
jne 0x44382b
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 + 0x4915b8]
mov edx, dword [eax + 0x10]
fmul dword [0x479954]
fcom dword [edx + 0x58]
fnstsw ax
test ah, 0x41
jne 0x44384d
fstp dword [edx + 0x58]
jmp 0x443864
mov edx, dword [ecx + 0x4915b8]
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 0x44389e
mov edx, dword [0x4915b8]
mov edx, dword [edx + 0x60]
mov eax, dword [ecx + 0x4915b8]
mov dword [eax + 0x60], edx
mov edx, dword [0x4915b8]
mov edx, dword [edx + 0x64]
mov eax, dword [ecx + 0x4915b8]
mov dword [eax + 0x64], edx
mov edx, dword [0x4915b8]
mov eax, dword [ecx + 0x4915b8]
mov edx, dword [edx + 0x68]
mov dword [eax + 0x68], edx
add ecx, 4
sub ebx, 3
sub esi, 3
cmp ecx, 0x20
jb 0x4437f0
jmp 0x4438d1
xor eax, eax
mov ecx, dword [eax + 0x4915b8]
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 0x4438b4
xor esi, esi
mov edx, dword [esi + 0x4915b8]
push edx
call fcn.004472e0
add esi, 4
add esp, 4
cmp esi, 0x20
jb 0x4438d3
mov eax, dword [0x491610]
push eax
call fcn.004472e0
mov ecx, dword [0x491608]
push ecx
call fcn.004472e0
add esp, 8
call fcn.00447490
mov eax, dword [0x4837d0]
test eax, eax
je 0x443a68
call ebp
mov esi, dword [0x491638]
mov edx, eax
sub edx, esi
mov eax, 0x3e0f83e1
mul edx
mov eax, edx
shr eax, 4
xor edx, edx
div dword [0x483844]
mov esi, edx
mov eax, esi
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [0x4915dc]
mov ecx, esi
sar eax, 7
mov edi, dword [eax*4 + 0x4837d8]
and ecx, 0x7f
cmp eax, edx
je 0x443a1e
cmp esi, 0x80
mov dword [0x4915dc], eax
jge 0x44397b
mov dword [0x4915e4], 0
call ebp
mov dword [0x491640], eax
xor eax, eax
mov ax, word [edi]
test ax, ax
mov ecx, edi
mov ebx, 1
je 0x4439a3
lea esp, [esp]
cmp ax, 0xa
jne 0x443997
inc ebx
mov ax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x443990
mov eax, dword [0x4915f4]
mov esi, dword [eax + 0x24]
call fcn.0045b790
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 [0x491614], edx
je 0x4439fa
cmp word [ecx], 0xa
jne 0x4439ea
xor eax, eax
jmp 0x4439eb
inc eax
add ecx, 2
cmp eax, esi
jle 0x4439f4
mov esi, eax
cmp word [ecx], 0
jne 0x4439e0
call fcn.0045b790
mov ecx, dword [0x4915f4]
mov ecx, dword [ecx + 0x1c]
lea edx, [esi + esi*8]
sub ecx, edx
sub ecx, 0x14
cdq
idiv ecx
add edx, 0xa
mov dword [0x4915f8], edx
jmp 0x443a68
cmp ecx, 0x70
jl 0x443a2c
mov eax, 0x7f
sub eax, ecx
jmp 0x443a40
cmp ecx, 0x20
jl 0x443a38
mov eax, 0xf
jmp 0x443a44
cmp ecx, 0x10
jl 0x443a68
lea eax, [ecx - 0x10]
test eax, eax
je 0x443a68
cmp word [edi], 0
je 0x443a68
mov edx, dword [0x491614]
mov ecx, dword [0x4915f4]
push eax
mov eax, dword [0x4915f8]
push edi
push edx
push eax
push ecx
call fcn.004475f9
add esp, 0x14
call ebp
mov esi, dword [0x491640]
mov edx, eax
sub edx, esi
mov eax, 0x10624dd3
mul edx
mov ecx, edx
shr ecx, 6
test ecx, ecx
je 0x443a8e
mov eax, dword [0x4915e4]
cdq
idiv ecx
jmp 0x443a90
xor eax, eax
push eax
push str._dfps
lea eax, [esp + 0x38]
push 0x20
push eax
call fcn.00402fb5
mov eax, dword [esp + 0x40]
add esp, 0x10
test ax, ax
lea ecx, [esp + 0x30]
mov edx, 1
je 0x443aca
cmp ax, 0xa
jne 0x443abe
inc edx
mov ax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x443ab7
mov eax, edx
shl eax, 4
add eax, edx
push 4
lea ecx, [esp + 0x34]
push ecx
mov ecx, eax
mov eax, dword [0x4915f4]
mov edx, dword [eax + 0x24]
sub edx, ecx
inc edx
push edx
push 3
push eax
call fcn.004475f9
mov edx, dword [0x4915e4]
mov eax, dword [0x4915fc]
add esp, 0x14
inc edx
test eax, eax
mov dword [0x4915e4], edx
je 0x443b3f
mov cl, dl
test cl, 0x7f
jne 0x443b3f
mov esi, dword [eax]
add esi, 0x400
mov dword [eax], esi
cmp dword [0x48b144], 1
mov edx, dword [0x4915ec]
mov ecx, esi
jge 0x443b33
sub esi, edx
cmp esi, 0x3000
jge 0x443b3d
sub ecx, edx
cmp ecx, 0x3400
jl 0x443b3f
mov dword [eax], edx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x100
ret