Function at 0x5c5333
Capabilities:
Allocate thread local storage
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x2c
push ebx
push esi
push edi
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call edi
mov dword [0x6749ac], eax
call dword [sym.imp.wspcomm.dll_Ordinal_1]
cmp eax, 0x50700
je 0x5c5375
push 0x10
push 0x63e59c
push str.Error_in_wspcomm.dll__please_resetup_this_program_
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
or eax, 0xffffffff
jmp 0x5c55ad
call fcn.005c8a63
xor ebx, ebx
inc ebx
cmp eax, 5
jle 0x5c53a7
push str.ChangeWindowMessageFilter
push str.user32.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x5c53a2
push ebx
push 0x4a
call eax
call fcn.0049a6eb
cmp dword [0x673ec0], 0
je 0x5c555f
mov esi, dword [0x673ecc]
mov ebx, dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
test esi, esi
je 0x5c53dd
mov eax, 0x60000
xchg dword [esi], eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
lea ecx, [esi + 4]
xchg dword [ecx], eax
call ebx
lea ecx, [esi + 8]
xchg dword [ecx], eax
push dword [ebp + 0x10]
xorps xmm0, xmm0
lea ecx, [esp + 0x1c]
movups xmmword [esp + 0x1c], xmm0
call fcn.0049a194
push str.start
lea ecx, [esp + 0x1c]
call fcn.0044c4fb
mov ecx, dword [0x6731e8]
test eax, eax
push 1
pop eax
cmovne ecx, eax
mov dword [0x6731e8], ecx
lea ecx, [esp + 0x18]
call fcn.0049a157
cmp dword [esp + 0x1c], 0
je 0x5c542d
push dword [esp + 0x1c]
call fcn.0050524d
pop ecx
call dword [sym.imp.KERNEL32.dll_TlsAlloc]
mov dword [0x668af4], eax
call ebx
mov edx, str.wWinMain
mov ecx, eax
call fcn.0041bcf7
xor esi, esi
push esi
call dword [sym.imp.ole32.dll_OleInitialize]
xor eax, eax
mov dword [esp + 0x2c], esi
inc eax
mov dword [esp + 0x30], esi
mov dword [esp + 0x28], eax
lea eax, [esp + 0x28]
push esi
push eax
lea eax, [esp + 0x18]
mov dword [esp + 0x3c], esi
push eax
call dword [sym.imp.gdiplus.dll_GdiplusStartup]
lea eax, [esp + 0x18]
mov dword [esp + 0x18], 8
push eax
mov dword [esp + 0x20], 0x781
call dword [sym.imp.COMCTL32.dll_InitCommonControlsEx]
push ecx
call fcn.005c5c3e
call edi
push eax
call dword [sym.imp.wspcomm.dll_Ordinal_3]
pop ecx
call fcn.0049ab83
call dword [sym.imp.wspcomm.dll_Ordinal_200]
push ecx
push dword [ebp + 0x10]
call fcn.005c5689
mov ecx, 0x673ec0
mov edi, eax
call fcn.0049a79b
mov ecx, 0x6742f0
call fcn.0049a79b
call dword [sym.imp.wspcomm.dll_Ordinal_201]
mov ecx, 0x673eb4
call fcn.0049abe4
call fcn.005d3f2c
call fcn.005c7ef9
push dword [esp + 0x10]
call dword [sym.imp.gdiplus.dll_GdiplusShutdown]
call dword [sym.imp.ole32.dll_OleUninitialize]
push 0x637f78
push 0x67476c
lea ecx, [esp + 0x1c]
call fcn.0040d2ee
mov edx, eax
lea ecx, [esp + 0x1c]
call fcn.0040ce1d
mov ecx, dword [esp + 0x14]
mov ebx, 0x668010
add ecx, 0xfffffff4
cmp ecx, ebx
je 0x5c5525
call fcn.00407965
mov esi, dword [esp + 0x18]
mov ecx, 0x673570
push esi
call fcn.005bf788
mov eax, dword [0x673578]
mov dword [0x673cd4], eax
mov eax, dword [0x668af4]
cmp eax, 0xffffffff
je 0x5c554f
push eax
call dword [sym.imp.KERNEL32.dll_TlsFree]
lea ecx, [esi - 0xc]
cmp ecx, ebx
je 0x5c555b
call fcn.00407965
mov eax, edi
jmp 0x5c55ad
push dword [ebp + 0x10]
xorps xmm0, xmm0
lea ecx, [esp + 0x1c]
movups xmmword [esp + 0x1c], xmm0
call fcn.0049a194
push 0x1388
push dword [0x673ec4]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x5c5591
lea ecx, [esp + 0x18]
call fcn.005c55b6
lea ecx, [esp + 0x18]
call fcn.0049a157
cmp dword [esp + 0x1c], 0
je 0x5c55ab
push dword [esp + 0x1c]
call fcn.0050524d
pop ecx
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10