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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xbc
mov eax, dword [0x57a040]
xor eax, esp
mov dword [esp + 0xb8], eax
push ebx
push esi
mov ebx, ecx
push edi
push ebx
mov dword [esp + 0x1c], ebx
call fcn.004d1710
cmp byte [ebx + 0x7a], 0
je 0x4bf0ca
cmp dword [ebx + 0x200], 2
jne 0x4bf0ca
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call esi
mov ecx, dword [ebx + 0x230]
sub eax, dword [ebx + 0x228]
add ecx, dword [ebx + 0x22c]
cmp eax, ecx
jb 0x4bf0ca
call esi
mov dword [ebx + 0x228], eax
mov al, byte [ebx + 0x149]
cmp al, 0xb
jb 0x4be9db
cmp al, 0x11
jbe 0x4be9ac
cmp al, 0x34
jne 0x4be9db
movzx eax, word [ebx + 0xcc]
mov edx, 0x83
mov ecx, eax
cmp ax, dx
je 0x4bf0ca
mov eax, 0x84
cmp cx, ax
jb 0x4be9db
mov eax, 0x86
cmp cx, ax
jbe 0x4bf0ca
movzx eax, word [ebx + 0x316]
mov ecx, eax
cmp ax, 0x33
jl 0x4bea2d
cmp cx, 0x3a
jg 0x4bea2d
mov ecx, dword [ebx]
push ecx
cmp ax, 0x3a
jne 0x4bea13
call fcn.004ad420
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xb8]
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret
call fcn.004ad150
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xb8]
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret
movzx eax, word [ebx + 0xcc]
mov ecx, 0x11b
cmp ax, cx
je 0x4bf0ca
mov ecx, 0x120
cmp ax, cx
je 0x4bf0ca
mov ecx, 0x116
cmp ax, cx
je 0x4bf0ca
cmp eax, 0x64
jb 0x4bea68
cmp eax, 0x6e
jbe 0x4bea72
mov ecx, 0x20b
cmp ax, cx
jne 0x4bea7e
mov ecx, ebx
call fcn.004bfaa0
jmp 0x4bebf3
mov ecx, 0xc8
cmp ax, cx
jne 0x4bebcf
movsx ecx, word [ebx + 0x146]
xor esi, esi
movsx edx, word [ebx + 0x144]
nop dword [eax]
mov eax, dword [esi*4 + 0xbf8c98]
cmp dword [eax + 0x48], 1
jne 0x4beadb
cmp edx, dword [eax + 0x68]
jl 0x4beac1
cmp edx, dword [eax + 0x70]
jg 0x4beac1
cmp ecx, dword [eax + 0x6c]
jl 0x4beac1
cmp ecx, dword [eax + 0x74]
jle 0x4beae6
cmp edx, dword [eax + 0x78]
jl 0x4beadb
cmp edx, dword [eax + 0x80]
jg 0x4beadb
cmp ecx, dword [eax + 0x7c]
jl 0x4beadb
cmp ecx, dword [eax + 0x84]
jle 0x4beaf0
inc esi
cmp esi, 1
jl 0x4beaa0
jmp 0x4bebf3
mov dword [esp + 0x14], 0
jmp 0x4beaf8
mov dword [esp + 0x14], 1
mov ecx, ebx
call fcn.004bc880
test esi, esi
js 0x4bf0ca
cmp esi, 1
jge 0x4bf0ca
cmp dword [esp + 0x14], 0
mov edi, dword [esi*4 + 0xbf8c98]
jne 0x4beb2c
mov esi, dword [edi + 0x8c]
mov edi, dword [edi + 0x88]
jmp 0x4beb38
mov esi, dword [edi + 0x88]
mov edi, dword [edi + 0x8c]
test esi, esi
je 0x4bf0ca
push 0x14
mov edx, edi
mov ecx, esi
call fcn.005256b0
add esp, 4
cmp eax, 1
jne 0x4bf0ca
cmp byte [esi + 0x592], al
jne 0x4bf0ca
sub esp, 8
mov edx, edi
mov ecx, esi
call fcn.00525590
movzx ecx, byte [esi + 0x593]
add esp, 8
call fcn.0040d4d0
test edi, edi
je 0x4bf0ca
mov word [esi + 0x590], 0
mov word [edi + 0x590], 0
mov eax, dword [esi + 0x58c]
test eax, eax
je 0x4bf0ca
mov dword [esi + 0x58c], 0
mov dword [eax + 0x58c], 0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xb8]
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret
mov ecx, 0x11f
cmp ax, cx
je 0x4bebec
mov ecx, 0x11e
cmp ax, cx
je 0x4bebec
mov ecx, ebx
call fcn.004bf310
jmp 0x4bebf3
push dword [ebx]
call fcn.004b9e70
cmp word [ebx + 0x316], 0x64
jne 0x4becf0
mov eax, dword [ebx + 0x2a8]
cmp eax, 0x1193
ja 0x4becf0
mov esi, dword [eax*4 + 0x20a514c]
mov al, byte [ebx + 0x149]
mov byte [esp + 0x13], al
movzx eax, word [esi + 0x144]
cwde
movsx edi, word [esi + 0x146]
movd xmm1, eax
movsx eax, word [ebx + 0x144]
cvtdq2ps xmm1, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
subss xmm1, xmm0
cvtps2pd xmm0, xmm1
movsd xmm1, qword [0x56a7a0]
call fcn.005462f0
movsx eax, word [ebx + 0x146]
movsd xmm1, qword [0x56a7a0]
movd xmm3, edi
cvtdq2ps xmm3, xmm3
movd xmm2, eax
cvtdq2ps xmm2, xmm2
movsd qword [esp + 0x20], xmm0
subss xmm3, xmm2
cvtps2pd xmm0, xmm3
call fcn.005462f0
addsd xmm0, qword [esp + 0x20]
xorps xmm1, xmm1
ucomisd xmm1, xmm0
ja 0x4bec9f
sqrtsd xmm0, xmm0
jmp 0x4beca4
call fcn.00547010
cvttsd2si eax, xmm0
cmp eax, 0xe
jg 0x4becb9
mov al, byte [esi + 0x149]
cmp byte [esp + 0x13], al
je 0x4becf0
movzx eax, word [esi + 0x144]
mov ecx, dword [ebx]
movzx edx, al
push edi
inc edx
call fcn.00521330
mov al, byte [esi + 0x149]
add esp, 4
mov byte [ebx + 0x149], al
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xb8]
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret
mov eax, dword [ebx + 0x1f8]
test al, 4
je 0x4bee82
push ebx
call fcn.00478780
test al, al
jne 0x4bee5e
push ebx
call fcn.00478810
test al, al
jne 0x4bee5e
mov al, byte [ebx + 0x144]
mov byte [esp + 0x33], al
mov al, byte [ebx + 0x146]
mov byte [esp + 0x34], al
movzx eax, byte [ebx + 0x149]
imul ecx, eax, 0x15d38
lea eax, [esp + 0x40]
push eax
movsx eax, word [ebx + 0x16c]
push eax
movsx eax, word [ebx + 0x16a]
push eax
movsx eax, word [ebx + 0x146]
add ecx, 0xd2f370
push eax
movsx eax, word [ebx + 0x144]
push eax
mov word [esp + 0x44], 0xdc1
mov byte [esp + 0x46], 0xd4
call fcn.004b3da0
test al, al
je 0x4bee5e
movsx eax, word [ebx + 0x144]
xor dl, dl
movsx ecx, word [ebx + 0x146]
xorps xmm0, xmm0
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x40]
movlpd qword [esp + 0x20], xmm0
cmp eax, 1
jle 0x4bee1a
lea esi, [esp + 0x44]
mov ebx, 1
mov edi, dword [esp + ebx*4 + 0x80]
mov edx, edi
mov esi, dword [esi + ebx*4]
sub edx, ecx
mov ecx, esi
sub ecx, dword [esp + 0x14]
call fcn.005261f0
mov dword [esp + 0x14], esi
mov dl, al
mov dword [esp + 0x1c], edi
lea esi, [ebx + 1]
mov ecx, esi
test ecx, ecx
jns 0x4bede1
add ecx, 1
sar ecx, 1
and ebx, 0x80000001
jns 0x4bedf0
dec ebx
or ebx, 0xfffffffe
inc ebx
cmp ebx, 1
jne 0x4bee00
mov al, dl
shl al, 4
mov byte [esp + ecx + 0x20], al
jmp 0x4bee04
or byte [esp + ecx + 0x20], dl
mov eax, dword [esp + 0x40]
mov ebx, esi
mov ecx, dword [esp + 0x1c]
lea esi, [esp + 0x44]
cmp ebx, eax
jl 0x4bedb2
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
dec al
and al, 0xf
shl dl, 4
add al, dl
mov dword [esp + 0x39], ecx
mov edx, dword [ebx]
lea ecx, [esp + 0x30]
mov byte [esp + 0x20], al
mov eax, dword [esp + 0x20]
mov dword [esp + 0x35], eax
call fcn.004e8410
and dword [ebx + 0x1f8], 0xfffffffb
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xb8]
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret
mov eax, dword [ebx + 0x1f8]
or eax, 4
mov dword [ebx + 0x1f8], eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xb8]
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret
test al, 2
je 0x4bf0ca
cmp dword [ebx + 4], 3
jne 0x4beea9
cmp word [ebx + 0x78], 2
jne 0x4beea9
mov eax, 0x1cb
cmp word [ebx + 0xcc], ax
je 0x4bf0ca
movzx eax, word [ebx + 0xcc]
cmp eax, 0x3e8
jae 0x4beee6
imul eax, eax, 0x58
cmp dword [eax + 0x2081ec8], 0xffffffff
je 0x4beee6
cmp dword [eax + 0x2081ecc], 0
je 0x4beee6
xor ecx, ecx
lea eax, [eax + 0x2081ed0]
cmp dword [eax], 0
je 0x4bef62
inc ecx
add eax, 4
cmp ecx, 0xa
jl 0x4beed4
cmp word [ebx + 0x312], 0x64
jl 0x4bef05
call fcn.00526930
cdq
mov ecx, 5
idiv ecx
test edx, edx
je 0x4bf06d
cmp word [ebx + 0x312], 0x32
je 0x4bf06d
movzx eax, word [ebx + 0x2b0]
test ax, ax
js 0x4bf0c3
cwde
mov edx, dword [eax*4 + 0x20a514c]
cmp dword [edx + 4], 2
jle 0x4bf0a5
cmp byte [edx + 0xa], 0xff
jne 0x4bf0a5
cmp byte [edx + 0x7a], 0
je 0x4bf0a5
cmp byte [edx + 0x214], 0
jne 0x4bf0c3
mov ecx, ebx
call fcn.004bd900
jmp 0x4bf0c3
movzx eax, word [ebx + 0x2b0]
mov ecx, 1
test ax, ax
jns 0x4befa6
or eax, 0xffffffff
mov dword [ebx + 0x22c], 0x3e8
and dword [ebx + 0x1f8], 0xffffff09
mov word [ebx + 0x2b0], ax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xb8]
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret
cwde
mov eax, dword [eax*4 + 0x20a514c]
cmp byte [eax + 0x7a], 0
je 0x4befbd
cmp byte [eax + 0x214], 0
je 0x4befbf
xor ecx, ecx
cmp dword [eax + 4], 2
jle 0x4bef73
cmp byte [eax + 0xa], 0xff
jne 0x4bef73
test ecx, ecx
je 0x4bef73
call fcn.00526930
and eax, reloc.WS2_32.dll_closesocket
jns 0x4befe2
dec eax
or eax, 0xfffffffc
add eax, 1
mov ecx, dword [ebx]
movsx edx, word [ebx + 0x2b0]
jne 0x4bf05d
mov eax, ecx
mov byte [esp + 0x24], cl
shr eax, 8
mov ecx, ebx
mov byte [esp + 0x23], al
mov al, byte [ebx + 0x148]
mov byte [esp + 0x25], al
mov eax, edx
shr eax, 8
mov byte [esp + 0x28], dl
lea edx, [esp + 0x20]
push 9
mov word [esp + 0x24], 0x9c1
mov byte [esp + 0x26], 0x18
mov byte [esp + 0x2a], 0x78
mov byte [esp + 0x2b], al
call fcn.005264a0
movsx eax, word [ebx + 0x2b0]
add esp, 4
mov ecx, 0x57ac4c
push 0
push 0
push 0
push 0
push 0
push 0
push dword [eax*4 + 0x20a514c]
push ebx
call fcn.00406af0
jmp 0x4bf0c3
push 0
push 0xffffffffffffffff
push 0
call fcn.004ca370
add esp, 0xc
jmp 0x4bf0c3
movzx eax, word [ebx + 0x2b0]
test ax, ax
js 0x4bf0c3
cwde
mov eax, dword [eax*4 + 0x20a514c]
cmp dword [eax + 4], 2
jle 0x4bf0a5
cmp byte [eax + 0xa], 0xff
jne 0x4bf0a5
cmp byte [eax + 0x7a], 0
je 0x4bf0a5
cmp byte [eax + 0x214], 0
jne 0x4bf0c3
mov ecx, ebx
call fcn.004bd600
jmp 0x4bf0c3
or eax, 0xffffffff
mov dword [ebx + 0x22c], 0x3e8
and dword [ebx + 0x1f8], 0xffffff09
mov word [ebx + 0x2b0], ax
and dword [ebx + 0x1f8], 0xfffffffd
mov ecx, dword [esp + 0xc4]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret