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

Disassembly:
sub esp, 0x3c
mov eax, dword [edi + 0x2a]
push ebx
push ebp
mov ebp, dword [esp + 0x48]
mov ecx, dword [ebp + 0x18]
sub ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x1c]
sub edx, dword [ebp + 0x14]
push esi
mov dword [esp + 0xc], eax
xor eax, eax
mov esi, 1
cmp dword [edi + 0x4a], esi
lea ebx, [edi + 0xec]
sete byte [esp + 0x4c]
cmp dword [ebx + 0x40], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], edx
je 0x466094
cmp dword [ebx], 0xffffffff
je 0x466094
cmp dword [ebx + 4], eax
jle 0x466094
cmp dword [ebx + 8], eax
jle 0x466094
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [edi + 0xb5]
cmp dword [edi + 0x4a], esi
mov edx, eax
jne 0x465f5e
mov ecx, dword [edi + 0x4e]
jmp 0x465f63
mov ecx, 0xff
mov eax, ecx
imul eax, edx
xor edx, edx
div dword [esp + 0xc]
mov edx, dword [edi + 0xf0]
shr edx, 1
sub ecx, eax
mov eax, dword [edi + 0x82]
mov esi, ecx
mov ecx, dword [edi + 0x86]
mov dword [edi + 0xe8], ecx
mov ecx, dword [edi + 0xf4]
shr ecx, 1
sub dword [edi + 0xe8], ecx
mov ecx, dword [edi + 0xe8]
mov dword [edi + 0xe4], eax
sub dword [edi + 0xe4], edx
test esi, esi
mov eax, dword [edi + 0xe4]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ecx
jle 0x466094
mov edx, dword [edi + 0x2e]
mov eax, esi
shl eax, 0x18
and edx, 0xffffff
or edx, eax
push ebx
push edx
mov eax, edi
call fcn.004668e0
cmp byte [esp + 0x4c], 0
je 0x466034
fild dword [edi + 0x22]
mov ecx, dword [edi + 0x2e]
fld dword [edi + 0x9d]
mov dword [esp + 0x18], ecx
fadd st(0), st(0)
fdivr st(1)
call fcn.006b24a0
fld dword [edi + 0x52]
push ecx
fstp dword [esp]
mov ebx, eax
fld dword [edi + 0x9d]
fmul dword [0x723750]
fdivp st(1)
call fcn.006b24a0
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
push eax
lea eax, [ebx + edx]
push eax
add ebx, ecx
push ebx
push esi
push ebp
lea eax, [esp + 0x30]
call fcn.00466a50
jmp 0x466094
cmp dword [edi + 0x4a], 0
jne 0x466094
fld1
mov edx, dword [edi + 0xf4]
push 1
sub esp, 0x14
test edx, edx
fstp dword [esp + 0x10]
fild dword [edi + 0xf4]
jge 0x46605b
fadd dword [0x7236cc]
mov eax, dword [edi + 0xf0]
fstp dword [esp + 0xc]
test eax, eax
fild dword [edi + 0xf0]
jge 0x466075
fadd dword [0x7236cc]
fstp dword [esp + 8]
lea eax, [edi + 0x40c]
fild dword [esp + 0x28]
fstp dword [esp + 4]
fild dword [esp + 0x2c]
fstp dword [esp]
push ebp
call fcn.0050ff30
cmp byte [edi + 0x6f], 0
jne 0x4660a0
cmp byte [edi + 0x6e], 0
je 0x4660ed
mov edx, dword [edi + 0x86]
mov eax, dword [edi + 0x410]
mov ecx, dword [edi + 0x82]
mov dword [edi + 0xd0], edx
cdq
sub eax, edx
sar eax, 1
sub eax, dword [edi + 0x140]
mov dword [edi + 0xcc], ecx
add dword [edi + 0xcc], eax
mov eax, dword [edi + 0x414]
cdq
sub eax, edx
sar eax, 1
sub eax, dword [edi + 0x144]
mov byte [edi + 0xbd], 1
add dword [edi + 0xd0], eax
cmp byte [edi + 0xbd], 0
jne 0x466100
cmp byte [edi + 0x6e], 0
je 0x4662d5
cmp dword [edi + 0x17c], 0
lea esi, [edi + 0x13c]
je 0x4662d5
cmp dword [esi], 0xffffffff
je 0x4662d5
cmp dword [esi + 4], 0
jle 0x4662d5
cmp dword [esi + 8], 0
jle 0x4662d5
cmp byte [edi + 0x6e], 0
je 0x46613a
xor edx, edx
jmp 0x466148
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [edi + 0xa9]
mov edx, eax
mov ebx, dword [esp + 0xc]
cmp edx, ebx
jae 0x4662ce
cmp byte [esp + 0x4c], 0
je 0x466160
mov ecx, dword [edi + 0x56]
jmp 0x466165
mov ecx, 0xff
mov eax, ecx
imul eax, edx
xor edx, edx
div ebx
push esi
sub ecx, eax
mov eax, dword [edi + 0x32]
mov ebx, ecx
and eax, 0xffffff
shl ebx, 0x18
or eax, ebx
push eax
mov eax, edi
mov dword [esp + 0x24], ecx
call fcn.004668e0
mov eax, dword [edi + 0x140]
mov ecx, dword [edi + 0xcc]
mov esi, dword [edi + 0xd0]
cdq
sub eax, edx
sar eax, 1
add eax, ecx
mov dword [esp + 0x38], eax
mov eax, dword [edi + 0x144]
cdq
sub eax, edx
sar eax, 1
add eax, esi
mov dword [esp + 0x34], esi
mov dword [esp + 0x14], esi
lea edx, [esp + 0x20]
lea esi, [esp + 0x30]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x3c], eax
call fcn.00402480
test al, al
je 0x4662d5
cmp byte [esp + 0x4c], 0
je 0x46626c
mov ecx, dword [edi + 0x32]
fild dword [edi + 0x26]
fld dword [edi + 0x5a]
and ecx, 0xffffff
or ecx, ebx
push ecx
fstp dword [esp]
mov ebx, dword [edi + 0x410]
fld dword [edi + 0x9d]
lea esi, [edi + 0xc0]
fmul dword [0x723750]
mov dword [esi], ecx
fdivr st(1)
call fcn.006b24a0
fld st(0)
fdiv dword [edi + 0x9d]
push eax
mov eax, ebx
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x20], eax
fisub dword [esp + 0x20]
call fcn.006b24a0
fdiv dword [edi + 0x9d]
add eax, dword [esp + 0x1c]
push eax
call fcn.006b24a0
mov ecx, eax
mov eax, ebx
cdq
sub eax, edx
mov edx, dword [esp + 0x28]
sar eax, 1
sub ecx, eax
add ecx, dword [esp + 0x1c]
mov eax, esi
push ecx
push edx
push ebp
call fcn.00466a50
jmp 0x4662d5
cmp dword [edi + 0x4a], 0
jne 0x4662d5
fld1
mov eax, dword [edi + 0x144]
push 1
sub esp, 0x14
test eax, eax
fstp dword [esp + 0x10]
fild dword [edi + 0x144]
jge 0x466293
fadd dword [0x7236cc]
mov ecx, dword [edi + 0x140]
fstp dword [esp + 0xc]
test ecx, ecx
fild dword [edi + 0x140]
jge 0x4662ad
fadd dword [0x7236cc]
fstp dword [esp + 8]
lea eax, [edi + 0x40c]
fild dword [esp + 0x2c]
fstp dword [esp + 4]
fild dword [esp + 0x28]
fstp dword [esp]
push ebp
call fcn.0050ff30
jmp 0x4662d5
mov byte [edi + 0xbd], 0
cmp byte [edi + 0x73], 0
jne 0x4662e1
cmp byte [edi + 0x72], 0
je 0x466325
mov eax, dword [edi + 0x86]
mov edx, dword [edi + 0x82]
mov dword [edi + 0xd8], eax
mov eax, dword [edi + 0x410]
mov dword [edi + 0xd4], edx
cdq
sub eax, edx
sar eax, 1
mov ecx, eax
sub ecx, dword [edi + 0x190]
sub eax, dword [edi + 0x194]
add dword [edi + 0xd4], ecx
add dword [edi + 0xd8], eax
mov byte [edi + 0xbe], 1
cmp byte [edi + 0xbe], 0
jne 0x466338
cmp byte [edi + 0x72], 0
je 0x4664c7
cmp byte [edi + 0x72], 0
je 0x466342
xor edx, edx
jmp 0x466350
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [edi + 0xad]
mov edx, eax
cmp edx, dword [esp + 0xc]
jae 0x4664c0
cmp byte [esp + 0x4c], 0
je 0x466366
mov ecx, dword [edi + 0x5e]
jmp 0x46636b
mov ecx, 0xff
mov eax, ecx
imul eax, edx
xor edx, edx
div dword [esp + 0xc]
lea edx, [edi + 0x18c]
push edx
sub ecx, eax
mov eax, dword [edi + 0x36]
mov ebx, ecx
and eax, 0xffffff
shl ebx, 0x18
or eax, ebx
push eax
mov eax, edi
mov dword [esp + 0x24], ecx
call fcn.004668e0
mov eax, dword [edi + 0x190]
mov ecx, dword [edi + 0xd4]
mov esi, dword [edi + 0xd8]
cdq
sub eax, edx
sar eax, 1
add eax, ecx
mov dword [esp + 0x38], eax
mov eax, dword [edi + 0x194]
cdq
sub eax, edx
sar eax, 1
add eax, esi
mov dword [esp + 0x34], esi
mov dword [esp + 0x14], esi
lea edx, [esp + 0x20]
lea esi, [esp + 0x30]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x3c], eax
call fcn.00402480
test al, al
je 0x4664c7
cmp byte [esp + 0x4c], 0
je 0x46645e
fild dword [edi + 0x26]
mov ecx, dword [edi + 0x36]
and ecx, 0xffffff
or ecx, ebx
fld st(0)
lea esi, [edi + 0xc4]
fdiv dword [edi + 0x9d]
mov dword [esi], ecx
call fcn.006b24a0
fld dword [edi + 0x62]
push ecx
fstp dword [esp]
mov ebx, eax
fld dword [edi + 0x9d]
mov eax, dword [edi + 0x410]
fmul dword [0x723750]
cdq
sub eax, edx
sar eax, 1
fdivp st(1)
sub ebx, eax
call fcn.006b24a0
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
push eax
mov eax, dword [esp + 0x18]
add edx, ebx
push edx
add eax, ebx
push eax
push ecx
push ebp
mov eax, esi
call fcn.00466a50
jmp 0x4664c7
cmp dword [edi + 0x4a], 0
jne 0x4664c7
fld1
mov edx, dword [edi + 0x194]
push 1
sub esp, 0x14
test edx, edx
fstp dword [esp + 0x10]
fild dword [edi + 0x194]
jge 0x466485
fadd dword [0x7236cc]
mov eax, dword [edi + 0x190]
fstp dword [esp + 0xc]
test eax, eax
fild dword [edi + 0x190]
jge 0x46649f
fadd dword [0x7236cc]
fstp dword [esp + 8]
lea eax, [edi + 0x40c]
fild dword [esp + 0x2c]
fstp dword [esp + 4]
fild dword [esp + 0x28]
fstp dword [esp]
push ebp
call fcn.0050ff30
jmp 0x4664c7
mov byte [edi + 0xbe], 0
cmp byte [edi + 0x77], 0
jne 0x4664d3
cmp byte [edi + 0x76], 0
je 0x466517
mov edx, dword [edi + 0x86]
mov eax, dword [edi + 0x410]
mov ecx, dword [edi + 0x82]
mov dword [edi + 0xe0], edx
cdq
sub eax, edx
sar eax, 1
mov dword [edi + 0xdc], ecx
mov ecx, eax
sub ecx, dword [edi + 0x1e0]
sub eax, dword [edi + 0x1e4]
add dword [edi + 0xdc], ecx
add dword [edi + 0xe0], eax
mov byte [edi + 0xbf], 1
cmp byte [edi + 0xbf], 0
jne 0x46652a
cmp byte [edi + 0x76], 0
je 0x4666ab
cmp byte [edi + 0x76], 0
je 0x466534
xor edx, edx
jmp 0x466542
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [edi + 0xb1]
mov edx, eax
cmp edx, dword [esp + 0xc]
jae 0x4666a4
mov ecx, dword [edi + 0x66]
mov eax, ecx
imul eax, edx
xor edx, edx
div dword [esp + 0xc]
lea edx, [edi + 0x1dc]
push edx
sub ecx, eax
mov eax, dword [edi + 0x3a]
mov ebx, ecx
and eax, 0xffffff
shl ebx, 0x18
or eax, ebx
push eax
mov eax, edi
mov dword [esp + 0x24], ecx
call fcn.004668e0
mov eax, dword [edi + 0x1e0]
mov ecx, dword [edi + 0xdc]
mov esi, dword [edi + 0xe0]
cdq
sub eax, edx
sar eax, 1
add eax, ecx
mov dword [esp + 0x38], eax
mov eax, dword [edi + 0x1e4]
cdq
sub eax, edx
sar eax, 1
add eax, esi
mov dword [esp + 0x34], esi
mov dword [esp + 0x14], esi
lea edx, [esp + 0x20]
lea esi, [esp + 0x30]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x3c], eax
call fcn.00402480
test al, al
je 0x4666ab
cmp byte [esp + 0x4c], 0
je 0x466642
fild dword [edi + 0x26]
mov ecx, dword [edi + 0x3a]
and ecx, 0xffffff
or ecx, ebx
fld st(0)
lea esi, [edi + 0xc8]
fdiv dword [edi + 0x9d]
mov dword [esi], ecx
call fcn.006b24a0
fld dword [edi + 0x6a]
push ecx
fstp dword [esp]
mov ebx, eax
fld dword [edi + 0x9d]
mov eax, dword [edi + 0x410]
fmul dword [0x723750]
cdq
sub eax, edx
sar eax, 1
fdivp st(1)
sub ebx, eax
call fcn.006b24a0
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
push eax
mov eax, dword [esp + 0x18]
add edx, ebx
push edx
add eax, ebx
push eax
push ecx
push ebp
mov eax, esi
call fcn.00466a50
jmp 0x4666ab
cmp dword [edi + 0x4a], 0
jne 0x4666ab
fld1
mov edx, dword [edi + 0x1e4]
push 1
sub esp, 0x14
test edx, edx
fstp dword [esp + 0x10]
fild dword [edi + 0x1e4]
jge 0x466669
fadd dword [0x7236cc]
mov eax, dword [edi + 0x1e0]
fstp dword [esp + 0xc]
test eax, eax
fild dword [edi + 0x1e0]
jge 0x466683
fadd dword [0x7236cc]
fstp dword [esp + 8]
lea eax, [edi + 0x40c]
fild dword [esp + 0x2c]
fstp dword [esp + 4]
fild dword [esp + 0x28]
fstp dword [esp]
push ebp
call fcn.0050ff30
jmp 0x4666ab
mov byte [edi + 0xbf], 0
cmp byte [edi + 0x9b], 0
je 0x4668cc
mov edx, dword [edi + 0xa5]
lea ecx, [esp + 0x30]
push ecx
push 0x18
push edx
call dword [sym.imp.GDI32.dll_GetObjectW]
test eax, eax
jne 0x4666d6
xor esi, esi
xor ebx, ebx
jmp 0x4666de
mov esi, dword [esp + 0x34]
mov ebx, dword [esp + 0x38]
mov ecx, dword [edi + 0x410]
add ecx, ecx
mov eax, 0x55555556
imul ecx
mov ecx, dword [ebp + 0x18]
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp + 0x1c]
sub edx, dword [ebp + 0x14]
sub ecx, eax
sub ecx, dword [ebp + 0x10]
mov al, byte [edi + 0x6e]
add ecx, esi
mov dword [esp + 0x4c], ecx
add edx, ebx
test al, al
fild dword [esp + 0x4c]
mov dword [esp + 0x4c], edx
fld dword [0x6bf9f0]
fmul st(1), st(0)
fimul dword [esp + 0x4c]
jne 0x4667c6
cmp byte [edi + 0x72], al
jne 0x4667be
cmp byte [edi + 0x76], al
jne 0x4667be
mov eax, dword [edi + 0x7e]
test eax, eax
jle 0x46677d
fld1
push 1
sub esp, 0x14
fstp dword [esp + 0x10]
fild dword [edi + 0x374]
lea eax, [edi + 0x36c]
fstp dword [esp + 0xc]
fild dword [edi + 0x370]
fstp dword [esp + 8]
fstp dword [esp + 4]
fstp dword [esp]
push ebp
call fcn.0050ff30
pop esi
pop ebp
pop ebx
add esp, 0x3c
ret 4
jge 0x4668c8
fld1
push 1
sub esp, 0x14
fstp dword [esp + 0x10]
fild dword [edi + 0x3c4]
lea eax, [edi + 0x3bc]
fstp dword [esp + 0xc]
fild dword [edi + 0x3c0]
fstp dword [esp + 8]
fstp dword [esp + 4]
fstp dword [esp]
push ebp
call fcn.0050ff30
pop esi
pop ebp
pop ebx
add esp, 0x3c
ret 4
test al, al
je 0x466846
cmp byte [edi + 0x72], 0
je 0x466807
fld1
push 1
sub esp, 0x14
fstp dword [esp + 0x10]
fild dword [edi + 0x284]
lea eax, [edi + 0x27c]
fstp dword [esp + 0xc]
fild dword [edi + 0x280]
fstp dword [esp + 8]
fstp dword [esp + 4]
fstp dword [esp]
push ebp
call fcn.0050ff30
pop esi
pop ebp
pop ebx
add esp, 0x3c
ret 4
test al, al
je 0x466846
fld1
push 1
sub esp, 0x14
fstp dword [esp + 0x10]
fild dword [edi + 0x234]
lea eax, [edi + 0x22c]
fstp dword [esp + 0xc]
fild dword [edi + 0x230]
fstp dword [esp + 8]
fstp dword [esp + 4]
fstp dword [esp]
push ebp
call fcn.0050ff30
pop esi
pop ebp
pop ebx
add esp, 0x3c
ret 4
cmp byte [edi + 0x72], 0
je 0x466887
fld1
push 1
sub esp, 0x14
fstp dword [esp + 0x10]
fild dword [edi + 0x2d4]
lea eax, [edi + 0x2cc]
fstp dword [esp + 0xc]
fild dword [edi + 0x2d0]
fstp dword [esp + 8]
fstp dword [esp + 4]
fstp dword [esp]
push ebp
call fcn.0050ff30
pop esi
pop ebp
pop ebx
add esp, 0x3c
ret 4
cmp byte [edi + 0x76], 0
je 0x4668c8
fld1
push 1
sub esp, 0x14
fstp dword [esp + 0x10]
fild dword [edi + 0x324]
lea eax, [edi + 0x31c]
fstp dword [esp + 0xc]
fild dword [edi + 0x320]
fstp dword [esp + 8]
fstp dword [esp + 4]
fstp dword [esp]
push ebp
call fcn.0050ff30
pop esi
pop ebp
pop ebx
add esp, 0x3c
ret 4
fstp st(1)
fstp st(0)
pop esi
pop ebp
pop ebx
add esp, 0x3c
ret 4