Function at 0x40fe90
Capabilities:
Check for time delay via gettickcount
Delete file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4def7d
mov eax, dword fs:[0]
push eax
sub esp, 0x4c0
mov eax, dword [0x524a60]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [ebp + 0x10]
mov eax, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
mov dword [ebp - 0x4c0], eax
push dword [esi]
mov dword [ebp - 0x4a8], eax
push dword [edi]
mov eax, dword [ebp + 0x14]
push 0x4ec308
mov dword [ebp - 0x4a4], eax
call fcn.00433e30
mov eax, dword [esi]
sub eax, 0x10
push eax
call fcn.00404230
add esp, 0x10
mov dword [ebp - 0x4bc], eax
lea esi, [eax + 0x10]
mov dword [ebp - 0x4c4], esi
lea eax, [ebp - 0x4b8]
mov dword [ebp - 4], 0
push eax
mov dword [ebp - 0x4b8], 0
call fcn.0040db20
mov ecx, eax
call fcn.00443460
mov ebx, eax
push esi
mov ecx, ebx
mov dword [ebp - 0x498], ebx
mov eax, dword [ebx]
call dword [eax + 0x28]
push dword [edi]
mov eax, dword [ebx]
mov ecx, ebx
push 0
call dword [eax + 4]
mov ebx, dword [sym.imp.KERNEL32.dll_GetTickCount]
call ebx
mov edi, eax
mov dword [ebp - 0x4b0], edi
call dword [sym.imp.WINMM.dll_timeGetTime]
push 0x484
mov dword [ebp - 0x4b4], eax
lea eax, [ebp - 0x494]
push 0
push eax
call fcn.004b1030
mov eax, dword [ebp + 0x1c]
add esp, 0xc
sub eax, dword [ebp + 0x18]
movd xmm1, dword [ebp + 0x18]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
divsd xmm0, xmm1
movsd qword [ebp - 0x4cc], xmm0
call ebx
sub eax, edi
cmp eax, 0x1b7740
sbb ebx, ebx
or edi, 0xffffffff
inc ebx
cmp eax, 0x1b7740
jae 0x41017c
nop word [eax + eax]
mov ecx, dword [ebp - 0x498]
lea edx, [ebp - 0x494]
push edx
mov eax, dword [ecx]
call dword [eax + 0x34]
mov eax, dword [ebp - 0x490]
cmp eax, 2
je 0x41017c
cmp eax, 3
je 0x41017c
mov ebx, dword [sym.imp.WINMM.dll_timeGetTime]
call ebx
sub eax, dword [ebp - 0x4b4]
cmp eax, 0x3e8
jb 0x410155
call ebx
movd xmm1, dword [ebp + 0x18]
mov dword [ebp - 0x4b4], eax
mov eax, dword [ebp - 0x418]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x4ecc50]
mulsd xmm0, qword [ebp - 0x4cc]
addsd xmm0, xmm1
call fcn.004a17d1
mov ebx, eax
call fcn.004045a0
mov ecx, eax
cmp ebx, dword [ebp + 0x1c]
jbe 0x4100c6
test ecx, ecx
je 0x4102eb
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x49c], eax
push 0x4e8ad8
lea ecx, [ebp - 0x49c]
mov byte [ebp - 4], 1
call fcn.004040f0
test al, al
jne 0x41008d
push 0
push 0x4e8ad8
lea ecx, [ebp - 0x49c]
call fcn.00404e90
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 0x4ac], eax
mov eax, dword [ebp - 0x4a4]
mov byte [ebp - 4], 2
mov ecx, dword [eax + 0x24]
test ecx, ecx
je 0x4102f5
mov eax, dword [ecx]
lea edx, [ebp - 0x49c]
push edx
lea edx, [ebp - 0x4ac]
push edx
call dword [eax + 8]
mov edx, dword [ebp - 0x49c]
jmp 0x41013a
test ecx, ecx
je 0x4102eb
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x4a0], eax
push 0x4e8ad8
lea ecx, [ebp - 0x4a0]
mov byte [ebp - 4], 3
call fcn.004040f0
test al, al
jne 0x410106
push 0
push 0x4e8ad8
lea ecx, [ebp - 0x4a0]
call fcn.00404e90
mov eax, dword [ebp - 0x4a4]
mov byte [ebp - 4], 4
mov dword [ebp - 0x4ac], ebx
mov ecx, dword [eax + 0x24]
test ecx, ecx
je 0x4102f5
mov eax, dword [ecx]
lea edx, [ebp - 0x4a0]
push edx
lea edx, [ebp - 0x4ac]
push edx
call dword [eax + 8]
mov edx, dword [ebp - 0x4a0]
mov eax, edi
mov byte [ebp - 4], 0
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x410155
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [ebp - 0x4b0]
cmp eax, 0x1b7740
sbb ebx, ebx
inc ebx
cmp eax, 0x1b7740
jb 0x40ffc0
mov ecx, dword [ebp - 0x498]
mov eax, dword [ecx]
call dword [eax + 0xc]
cmp dword [ebp - 0x490], 3
jne 0x41020a
push str._DownloadSkinFile__failed
call fcn.00433e50
add esp, 4
push esi
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
call fcn.004045a0
mov ecx, eax
test ecx, ecx
je 0x4102eb
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ebx, dword [ebp - 0x4a8]
add eax, 0x10
mov dword [ebx], eax
push 0x4e8ad8
mov ecx, ebx
mov byte [ebp - 4], 5
call fcn.004040f0
test al, al
jne 0x4101e5
push 0
push 0x4e8ad8
mov ecx, ebx
call fcn.00404e90
mov dword [ebp - 4], 0xffffffff
add esi, 0xfffffff0
lock xadd dword [esi + 0xc], edi
dec edi
test edi, edi
jg 0x4102cd
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
jmp 0x4102cd
test ebx, ebx
je 0x410236
push str._DownloadSkinFile__timeout
call fcn.00433e50
add esp, 4
push esi
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov ebx, dword [ebp - 0x4a8]
mov ecx, ebx
push 0x4e8ad8
call fcn.00403650
jmp 0x4102b1
push 0x4e8ad8
lea ecx, [ebp - 0x498]
call fcn.00403650
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 0x4b0], eax
mov eax, dword [ebp - 0x4a4]
mov byte [ebp - 4], 6
mov ecx, dword [eax + 0x24]
test ecx, ecx
je 0x4102f5
mov eax, dword [ecx]
lea edx, [ebp - 0x498]
push edx
lea edx, [ebp - 0x4b0]
push edx
call dword [eax + 8]
mov edx, dword [ebp - 0x498]
mov eax, edi
mov byte [ebp - 4], 0
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x410298
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push dword [ebp - 0x4bc]
call fcn.00404230
mov ebx, dword [ebp - 0x4a8]
add esp, 4
add eax, 0x10
mov dword [ebx], eax
add esi, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lock xadd dword [esi + 0xc], edi
dec edi
test edi, edi
jg 0x4102cd
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004a1588
mov esp, ebp
pop ebp
ret
push 0x80004005
call fcn.00403f90
call fcn.0044386f
int3