Function at 0x44e820
Capabilities:
Check for time delay via gettickcount
Set thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x50
mov esi, ecx
mov eax, dword [0x4ea418]
xor eax, ebp
mov dword [esp + 0x48], eax
push 0
push 1
call fcn.00451ea0
test al, al
je 0x44ed36
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [esi + 0x26ac], eax
mov edx, dword [esi + 0x2468]
cmp edx, 0xa
mov ecx, 0xa
cmovl ecx, edx
mov dword [esi + 0x2468], ecx
mov dword [esp + 4], eax
mov dword [esi + 0x26cc], eax
lea eax, [esi + 0x62cb8]
push eax
call fcn.004b34e7
add esp, 4
mov ecx, esi
push 0
call fcn.0044f3d0
test al, al
je 0x44ed36
lea eax, [esi + 0x26b4]
mov dword [esp + 8], eax
mov dword [esp + 0xc], esi
jmp 0x44e8b8
mov ecx, esi
push ebx
call fcn.004508a0
nop
test al, al
je case.default.0x44ebee
cmp dword [esi + 0x5d0f8], 7
je 0x44e8e2
cmp dword [esi + 0x26a8], 0
je 0x44e8e2
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esi + 0x26ac]
cmp eax, dword [esi + 0x26a8]
ja 0x44ed2c
lea eax, [esp + 0x20]
xorpd xmm0, xmm0
movsd qword [eax + 0x20], xmm0
xorpd xmm0, xmm0
movupd xmmword [eax + 0x10], xmm0
movupd xmmword [eax], xmm0
mov eax, dword [esi + 0x2464]
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x26d8]
mov ecx, dword [esi + 0x26dc]
sub ecx, eax
sar ecx, 2
cmp ecx, 0xb
mov edx, 0xb
cmovl edx, ecx
test ecx, ecx
jle 0x44ecca
neg edx
neg ecx
mov edi, 1
jmp 0x44e94e
mov dword [esp + edi*4 + 0x1c], ebx
lea esi, [edx + edi]
inc esi
inc edi
cmp esi, 1
je 0x44e970
lea esi, [ecx + edi]
cmp esi, 1
je 0x44ecf9
mov esi, dword [eax + edi*4 - 4]
mov ebx, dword [esi + 0x10]
test ebx, ebx
jne 0x44e940
mov ebx, dword [esi + 0xc]
jmp 0x44e940
push 0x1f4
push 0
lea eax, [esp + 0x24]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
mov edi, eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edx, eax
sub eax, dword [esp + 4]
cmp eax, 0x1f3
mov esi, dword [esp + 0xc]
jbe 0x44eac9
mov ecx, dword [esi + 0x26c0]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], eax
mov eax, dword [esi + 0x26b8]
cmp eax, dword [esi + 0x26bc]
mov dword [esp], edx
jae 0x44e9e0
test eax, eax
je 0x44ed58
movsd xmm0, qword [esp + 0x10]
movsd qword [eax], xmm0
add eax, 8
jmp 0x44e9ee
mov ecx, dword [esp + 8]
lea eax, [esp + 0x10]
push eax
call fcn.00452bd0
mov dword [esi + 0x26b8], eax
mov ebx, dword [esi + 0x26b4]
mov ecx, eax
sub ecx, ebx
cmp ecx, 0x31
jb 0x44ea4e
cmp eax, ebx
je 0x44ed67
mov dword [esp + 4], edi
lea ecx, [ebx + 8]
mov edi, eax
sub edi, ecx
je 0x44ea29
push edi
push ecx
push ebx
call fcn.0049d740
add esp, 0xc
mov eax, dword [esi + 0x26b8]
add ebx, edi
mov edi, dword [esp + 4]
nop
cmp eax, ebx
je 0x44ea40
add eax, 0xfffffff8
jne 0x44ea30
jmp 0x44ed49
mov dword [esi + 0x26b8], ebx
mov eax, ebx
mov ebx, dword [esi + 0x26b4]
sub eax, ebx
cmp eax, 0x30
jne 0x44eab8
xor ecx, ecx
xor edx, edx
xor eax, eax
nop dword [eax + eax]
add eax, dword [ebx + ecx*8 + 4]
add edx, dword [ebx + ecx*8]
inc ecx
cmp ecx, 6
jne 0x44ea60
movd xmm0, edx
movq xmm2, qword [0x4d3d80]
por xmm0, xmm2
subsd xmm0, xmm2
movd xmm1, eax
por xmm1, xmm2
subsd xmm1, xmm2
divsd xmm0, xmm1
mulsd xmm0, qword [0x4d9880]
cvttsd2si eax, xmm0
mov ecx, eax
subsd xmm0, qword [0x4d52f0]
cvttsd2si edx, xmm0
sar ecx, 0x1f
and edx, ecx
or edx, eax
mov dword [esi + 0x26b0], edx
mov dword [esi + 0x26c0], 0
mov eax, dword [esp]
mov dword [esp + 4], eax
mov dword [esp + 0x14], 0xffffffff
mov dword [esp + 0x10], 0xffffffff
lea eax, [esp + 0x10]
push eax
call fcn.004b34e7
add esp, 4
mov eax, dword [esp + 0x10]
sub eax, dword [esi + 0x62cb8]
mov ecx, dword [esp + 0x14]
sbb ecx, dword [esi + 0x62cbc]
mov dword [esi + 0x62cc0], eax
mov dword [esi + 0x62cc4], ecx
mov eax, dword [esi + 0x26b0]
test eax, eax
je 0x44eb50
mov ebx, edi
mov ecx, dword [esi + 0x5d100]
mov edx, dword [esi + 0x5d104]
mov edi, esi
mov esi, ecx
and esi, edx
cmp esi, 0xffffffff
je 0x44eb60
sub ecx, dword [edi + 0x5d110]
sbb edx, dword [edi + 0x5d114]
push 0
push eax
push edx
push ecx
call fcn.004bd930
jmp 0x44eb64
xor eax, eax
xor edx, edx
jmp 0x44eb68
xor eax, eax
xor edx, edx
mov esi, edi
mov edi, ebx
mov dword [esi + 0x62cc8], eax
mov dword [esi + 0x62ccc], edx
cmp edi, 0x102
je 0x44ec10
cmp edi, 0xffffffff
je 0x44ed08
test edi, edi
je 0x44ed11
lea ebx, [edi - 1]
mov eax, dword [esi + 0x26d8]
mov ecx, dword [esi + 0x26dc]
sub ecx, eax
sar ecx, 2
cmp ecx, ebx
jbe 0x44ecf9
mov dword [esp], 8
mov edi, dword [eax + edi*4 - 4]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [esi + 0x26c4], eax
mov eax, dword [edi + 0x10]
test eax, eax
je 0x44ebe2
push eax
call dword [sym.imp.KERNEL32.dll_CancelWaitableTimer]
push dword [edi + 0x10]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [edi + 0x10], 0
mov eax, dword [edi + 0x28]
cmp eax, 0xa
ja case.default.0x44ebee
jmp dword [eax*4 + 0x4d9ba0]
mov ecx, esi
push ebx
call fcn.0044fde0
jmp 0x44e8b0
cmp dword [esi + 0x246c], 6
jne 0x44e8b8
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, eax
sub ecx, dword [esi + 0x26a4]
cmp ecx, 0x3e9
jb 0x44e8b8
mov dword [esi + 0x26a4], eax
mov ecx, esi
push 0
push 6
call fcn.00451ea0
test al, al
jne 0x44e8b8
jmp 0x44ed36
mov ecx, esi
push ebx
call fcn.00451100
jmp 0x44e8b0
mov ecx, esi
push ebx
call fcn.0044ff80
jmp 0x44e8b0
mov ecx, esi
push ebx
call fcn.00450190
jmp 0x44e8b0
mov ecx, esi
push ebx
call fcn.00450c50
jmp 0x44e8b0
mov ecx, esi
push ebx
call fcn.0044fe90
jmp 0x44e8b0
mov ecx, esi
push ebx
call fcn.00450950
jmp 0x44e8b0
mov ecx, esi
push ebx
call fcn.00450a40
jmp 0x44e8b0
mov ecx, esi
push ebx
call fcn.004512a0
jmp 0x44e8b0
mov ecx, esi
push ebx
call fcn.00450fc0
jmp 0x44e8b0
cmp byte [esi + 0x26f0], 0
je 0x44ed36
mov eax, dword [esi + 0x5d110]
cmp eax, dword [esi + 0x5d100]
mov eax, dword [esi + 0x5d114]
sbb eax, dword [esi + 0x5d104]
jae 0x44ed36
mov dword [esi + 0x5d0f8], 8
jmp 0x44ed36
push str....._third_partylibc_srcinclude_vector:1393:_assertion___n___size___failed:_vector___index_out_of_bounds_n
push 0x4d348e
call fcn.00424574
mov dword [esp], 8
jmp case.default.0x44ebee
mov dword [esp], 9
cmp dword [esi + 0x5d0f8], 7
je 0x44ed36
mov eax, dword [esp]
mov dword [esi + 0x5d0f8], eax
jmp 0x44ed36
mov dword [esi + 0x5d0f8], 9
mov ecx, dword [esp + 0x48]
xor ecx, ebp
call fcn.004961ed
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push str....._third_partylibc_srcinclude__memoryconstruct_at.h:66:_assertion___loc___nullptr_failed:_null_pointer_given_to_destroy_at_n
push 0x4d348e
call fcn.00424574
push str....._third_partylibc_srcinclude__memoryconstruct_at.h:40:_assertion___location___nullptr_failed:_null_pointer_given_to_construct_at_n
push 0x4d348e
call fcn.00424574
push str....._third_partylibc_srcinclude_vector:1529:_assertion___position___end___failed:_vector::erase_iterator__called_with_a_non_dereferenceable_iterator_n
push 0x4d348e
call fcn.00424574
int3