Function at 0x45e390
Capabilities:
Create thread
Resume thread

Disassembly:
sub esp, 0x24
mov edx, dword [esp + 0x28]
push esi
mov esi, ecx
mov ecx, dword [esi + 0x5c]
mov eax, dword [esi + 0x58]
mov dword [esp + 0xc], ecx
mov ecx, dword [esi + 0x30]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x30]
mov dword [esi + 0x58], edx
mov dword [esi + 0x700], 1
test ecx, ecx
mov dword [esi + 0x5c], eax
je 0x45e5ae
push 0xffffffffffffffff
call fcn.00454890
test eax, eax
je 0x45e5ae
mov ecx, dword [esi + 0x30]
push edi
push 0xffffffffffffffff
call fcn.00454750
mov ecx, dword [esi + 0x30]
push 0xffffffffffffffff
mov edi, eax
call fcn.00454890
cmp edi, eax
jl 0x45e40f
mov ecx, dword [esi + 0x30]
push 0xffffffffffffffff
call fcn.004547c0
mov ecx, dword [esi + 0x30]
push 0xffffffffffffffff
mov edi, eax
call fcn.004548f0
cmp edi, eax
jge 0x45e535
mov edi, dword [esi + 0x30]
test edi, edi
je 0x45e491
push 0xffffffffffffffff
mov ecx, edi
call fcn.00454890
test eax, eax
je 0x45e491
push ebp
push 0xffffffffffffffff
mov ecx, edi
call fcn.004548f0
push 0xffffffffffffffff
mov ecx, edi
mov ebp, eax
call fcn.00454890
cmp eax, ebp
pop ebp
push 0xffffffffffffffff
mov ecx, edi
jle 0x45e469
call fcn.00454750
mov dword [esp + 8], eax
push 0xffffffffffffffff
fild dword [esp + 0xc]
mov ecx, edi
fstp qword [esp + 0x18]
call fcn.00454890
mov dword [esp + 8], eax
fild dword [esp + 8]
fdivr qword [esp + 0x14]
jmp 0x45e497
call fcn.004547c0
mov dword [esp + 8], eax
push 0xffffffffffffffff
fild dword [esp + 0xc]
mov ecx, edi
fstp qword [esp + 0x18]
call fcn.004548f0
mov dword [esp + 8], eax
fild dword [esp + 8]
fdivr qword [esp + 0x14]
jmp 0x45e497
fld qword [0x4d8778]
fld qword [esp + 0x30]
fsub st(1)
fcomp qword [0x4d8830]
fnstsw ax
test ah, 0x41
fstp st(0)
jne 0x45e535
mov ecx, dword [esi + 0x30]
push 8
push ecx
mov ecx, esi
call fcn.0045d120
push 0
push 1
mov ecx, esi
call fcn.0045d440
mov eax, dword [esi + 0x710]
test eax, eax
jne 0x45e535
mov edx, dword [esi + 0x70c]
mov dword [esi + 0x710], 1
push edx
mov dword [esi + 0x714], 0
call dword [sym.imp.kernel32.dll_ResetEvent]
mov eax, dword [esi + 0x708]
push eax
call dword [sym.imp.kernel32.dll_SetEvent]
lea ecx, [esp + 0x30]
push ecx
push 4
push esi
push 0x45e160
push 0
push 0
call fcn.004c8b54
add esp, 0x18
mov dword [esi + 0x704], eax
push 0
push eax
call dword [sym.imp.kernel32.dll_SetThreadPriority]
mov edx, dword [esi + 0x704]
push edx
call dword [sym.imp.kernel32.dll_ResumeThread]
mov ecx, dword [esi + 0x50]
lea eax, [esp + 0x1c]
push eax
push ecx
call dword [sym.imp.user32.dll_GetClientRect]
mov eax, dword [esp + 0x24]
cdq
sub eax, edx
mov edx, dword [esi + 0x10]
mov edi, eax
sar edi, 1
add edx, edi
mov dword [esp + 0x30], edx
fild dword [esp + 0x30]
fmul qword [esi + 0x58]
fdiv qword [esp + 0xc]
call fcn.004c836c
sub eax, edi
mov ecx, dword [esi + 0x14]
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0x28]
cdq
sub eax, edx
mov edi, eax
sar edi, 1
mov eax, edi
add eax, ecx
mov dword [esp + 0x30], eax
fild dword [esp + 0x30]
fmul qword [esi + 0x58]
fdiv qword [esp + 0xc]
call fcn.004c836c
sub eax, edi
mov ecx, esi
mov dword [esi + 0x14], eax
call fcn.0045deb0
mov ecx, dword [esi + 0x50]
push 1
push 0
push ecx
call dword [sym.imp.user32.dll_InvalidateRect]
pop edi
pop esi
add esp, 0x24
ret 8