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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe4
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 4], ecx
mov edi, edx
mov esi, eax
xor eax, eax
push ebp
push 0x5e12ef
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 5], 0
xor ebx, ebx
mov eax, dword [ebp + 8]
xor edx, edx
mov dword [eax], edx
xor edx, edx
push ebp
push 0x5e12a4
push dword fs:[edx]
mov dword fs:[edx], esp
cmp byte [esi + 0xbde], 1
je 0x5e0d53
cmp byte [esi + 0x2ec], 0
jne 0x5e0d53
cmp byte [esi + 0xb8], 0
je 0x5e0d22
cmp byte [esi + 0xc0], 0
je 0x5e0d53
cmp byte [esi + 0xb8], 0
je 0x5e0d31
cmp di, 0xb
jne 0x5e0d53
cmp byte [esi + 0x369c], 0
jne 0x5e0d53
mov eax, esi
call fcn.006092bc
test al, al
jne 0x5e0d60
mov eax, dword [setsockopt]
cmp byte [eax + 0x6636], 0
jne 0x5e0d60
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x5e12d9
mov dl, 2
mov eax, esi
mov ecx, dword [eax]
call dword [ecx + 0x24]
mov eax, dword [esi + 0x39bc]
sub eax, 4
jae 0x5e0deb
mov eax, dword [esi + 0x39c0]
movzx edx, di
cmp eax, edx
jne 0x5e0deb
mov eax, edi
sub ax, 0x11
je 0x5e0d96
sub ax, 2
je 0x5e0db3
dec ax
je 0x5e0dd0
jmp 0x5e0deb
cmp byte [esi + 0x3984], 0
je 0x5e0deb
mov eax, dword [esi + 0x39bc]
cmp byte [esi + eax + 0x39b5], 0x6e
jne 0x5e0deb
mov bl, 1
jmp 0x5e0deb
cmp byte [esi + 0x398c], 0
je 0x5e0deb
mov eax, dword [esi + 0x39bc]
cmp byte [esi + eax + 0x39b5], 0x70
jne 0x5e0deb
mov bl, 1
jmp 0x5e0deb
cmp byte [esi + 0x3994], 0
je 0x5e0deb
mov eax, dword [esi + 0x39bc]
cmp byte [esi + eax + 0x39b5], 0x71
jne 0x5e0deb
mov bl, 1
test bl, bl
jne 0x5e0df9
mov dword [esi + 0x39bc], 0xffffffff
movzx eax, byte [ebp + 0xc]
xor al, 1
test al, al
je 0x5e0ead
test bl, bl
jne 0x5e0ead
call sub.kernel32.dll_GetTickCount_1
mov dword [ebp - 0x14], eax
movsx edx, byte [esi + 0x262]
movzx eax, word [esi + 0x34]
call fcn.004e4288
mov edx, dword [setsockopt]
mov edx, dword [edx + 0x6590]
sub edx, eax
mov dword [ebp - 0x18], edx
cmp dword [ebp - 0x18], 0
jge 0x5e0e43
xor eax, eax
mov dword [ebp - 0x18], eax
mov eax, dword [esi + 0xce0]
cmp eax, dword [ebp - 0x14]
jbe 0x5e0e7d
sub eax, dword [ebp - 0x14]
mov edx, dword [ebp + 8]
mov dword [edx], eax
mov eax, dword [setsockopt]
mov eax, dword [eax + 0x655c]
add dword [esi + 0xd00], eax
mov eax, dword [ebp - 0x18]
add dword [esi + 0xce0], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x5e12d9
cmp dword [esi + 0xd00], 0
jle 0x5e0e8c
dec dword [esi + 0xd00]
mov edx, dword [setsockopt]
mov edx, dword [edx + 0x6588]
mov eax, esi
call fcn.005dacc0
call sub.kernel32.dll_GetTickCount_1
add eax, dword [ebp - 0x18]
mov dword [esi + 0xce0], eax
movzx eax, byte [ebp + 0xc]
xor al, 1
test al, bl
je 0x5e0f25
call sub.kernel32.dll_GetTickCount_1
mov dword [ebp - 0x14], eax
mov eax, dword [esi + 0x39c4]
cmp eax, dword [ebp - 0x14]
jbe 0x5e0efa
sub eax, dword [ebp - 0x14]
mov edx, dword [ebp + 8]
mov dword [edx], eax
mov eax, dword [setsockopt]
mov eax, dword [eax + 0x655c]
add dword [esi + 0xd00], eax
add dword [esi + 0x39c4], 0x190
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x5e12d9
cmp dword [esi + 0xd00], 0
jle 0x5e0f09
dec dword [esi + 0xd00]
mov edx, 0x190
mov eax, esi
call fcn.005dacc0
call sub.kernel32.dll_GetTickCount_1
add eax, 0x190
mov dword [esi + 0x39c4], eax
mov byte [esi + 0xcf8], 0
mov eax, dword [esi + 0x24]
cmp eax, dword [ebp - 4]
jne 0x5e129a
mov eax, dword [esi + 0x28]
cmp eax, dword [ebp + 0x14]
jne 0x5e129a
mov byte [ebp - 5], 1
cmp di, 8
jne 0x5e1011
cmp word [esi + 0x4a2], 0
jbe 0x5e1011
mov dword [esi + 0x39bc], 0xffffffff
lea ecx, [ebp - 0x10]
lea edx, [ebp - 0xc]
mov eax, esi
call fcn.00617d9c
test al, al
je 0x5e1011
push 1
mov eax, dword [esi + 0x2e0]
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0xc]
call fcn.0066de44
test al, al
jne 0x5e1011
movzx edx, word [esi + 0x49a]
mov eax, dword [0x6c0ec4]
mov eax, dword [eax]
call fcn.005bf910
test eax, eax
je 0x5e1011
cmp byte [eax + 0x14], 0x13
jne 0x5e1011
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0xc]
mov eax, esi
call fcn.005fab70
test al, al
je 0x5e0fd5
mov ecx, 0x5e130c
xor edx, edx
mov eax, esi
mov ebx, dword [eax]
call dword [ebx + 0x98]
sub dword [esi + 0x378], 0x1e
sub dword [esi + 0x37c], 0x32
mov edx, dword [esi + 0x37c]
xor eax, eax
call fcn.004e3de0
mov dword [esi + 0x37c], eax
sub dword [esi + 0x248], 2
sub dword [esi + 0x250], 2
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x5e12d9
movzx eax, di
cmp eax, 0xf
jg 0x5e1052
je 0x5e115f
add eax, 0xfffffff9
cmp eax, 7
ja case.default.0x5e102b
jmp dword [eax*4 + 0x5e1032]
cmp eax, 0x15
jg 0x5e107b
je 0x5e11dd
sub eax, 0x11
je 0x5e11a7
sub eax, 2
je 0x5e11b9
dec eax
je 0x5e11cb
jmp case.default.0x5e102b
sub eax, 0x16
je 0x5e1195
sub eax, 0x36
je 0x5e1171
sub eax, 0x3b
je 0x5e1183
jmp case.default.0x5e102b
mov eax, dword [ebp + 0x10]
push eax
xor ecx, ecx
xor edx, edx
mov eax, esi
mov edi, dword [eax]
call dword [edi]
jmp case.default.0x5e102b
mov eax, dword [ebp + 0x10]
push eax
mov cx, 1
xor edx, edx
mov eax, esi
mov edi, dword [eax]
call dword [edi]
jmp case.default.0x5e102b
mov eax, dword [ebp + 0x10]
push eax
mov cx, 2
xor edx, edx
mov eax, esi
mov edi, dword [eax]
call dword [edi]
jmp case.default.0x5e102b
mov eax, dword [ebp + 0x10]
push eax
mov cx, 3
xor edx, edx
mov eax, esi
mov edi, dword [eax]
call dword [edi]
jmp case.default.0x5e102b
cmp byte [esi + 0xb8], 0
je 0x5e110b
mov eax, dword [ebp + 0x10]
push eax
mov cx, 0xb
xor edx, edx
mov eax, esi
mov edi, dword [eax]
call dword [edi]
jmp case.default.0x5e102b
mov eax, dword [ebp + 0x10]
push eax
mov cx, 4
xor edx, edx
mov eax, esi
mov edi, dword [eax]
call dword [edi]
jmp case.default.0x5e102b
mov eax, dword [ebp + 0x10]
push eax
mov cx, 5
xor edx, edx
mov eax, esi
mov edi, dword [eax]
call dword [edi]
jmp case.default.0x5e102b
mov eax, dword [ebp + 0x10]
push eax
mov cx, 7
xor edx, edx
mov eax, esi
mov edi, dword [eax]
call dword [edi]
jmp case.default.0x5e102b
mov eax, dword [ebp + 0x10]
push eax
mov cx, 8
xor edx, edx
mov eax, esi
mov edi, dword [eax]
call dword [edi]
jmp case.default.0x5e102b
mov eax, dword [ebp + 0x10]
push eax
mov cx, 9
xor edx, edx
mov eax, esi
mov edi, dword [eax]
call dword [edi]
jmp case.default.0x5e102b
mov eax, dword [ebp + 0x10]
push eax
mov cx, 0xa
xor edx, edx
mov eax, esi
mov edi, dword [eax]
call dword [edi]
jmp case.default.0x5e102b
mov eax, dword [ebp + 0x10]
push eax
mov cx, 0x2b
xor edx, edx
mov eax, esi
mov edi, dword [eax]
call dword [edi]
jmp case.default.0x5e102b
mov eax, dword [ebp + 0x10]
push eax
mov cx, 0x38
xor edx, edx
mov eax, esi
mov edi, dword [eax]
call dword [edi]
jmp case.default.0x5e102b
mov eax, dword [ebp + 0x10]
push eax
mov cx, 0x6e
xor edx, edx
mov eax, esi
mov edi, dword [eax]
call dword [edi]
jmp case.default.0x5e102b
mov eax, dword [ebp + 0x10]
push eax
mov cx, 0x70
xor edx, edx
mov eax, esi
mov edi, dword [eax]
call dword [edi]
jmp case.default.0x5e102b
mov eax, dword [ebp + 0x10]
push eax
mov cx, 0x71
xor edx, edx
mov eax, esi
mov edi, dword [eax]
call dword [edi]
jmp case.default.0x5e102b
mov eax, dword [ebp + 0x10]
push eax
mov cx, 0x7a
xor edx, edx
mov eax, esi
mov edi, dword [eax]
call dword [edi]
test bl, bl
je 0x5e11fa
xor edx, edx
mov eax, esi
call fcn.005e1a88
cmp dword [esi + 0x36c4], 0
je 0x5e126b
cmp word [esi + 0x4a2], 0
jbe 0x5e126b
cmp byte [esi + 0xb64], 0
jne 0x5e126b
dec byte [esi + 0x30c]
movzx eax, byte [esi + 0x30d]
cmp al, byte [esi + 0x30c]
jne 0x5e1243
mov byte [esi + 0xb64], 1
mov ecx, 0x5e131c
xor edx, edx
mov eax, esi
mov ebx, dword [eax]
call dword [ebx + 0x98]
cmp byte [esi + 0x30c], 0
ja 0x5e126b
mov eax, dword [esi + 0x36c4]
mov bl, 7
sub bl, byte [eax + 6]
mov byte [esi + 0x30c], bl
movzx eax, bl
call fcn.00403484
mov byte [esi + 0x30d], al
sub dword [esi + 0x378], 0x1e
sub dword [esi + 0x37c], 0x64
mov edx, dword [esi + 0x37c]
xor eax, eax
call fcn.004e3de0
mov dword [esi + 0x37c], eax
sub dword [esi + 0x248], 2
sub dword [esi + 0x250], 2
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x5e12d9
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5e12f6
lea eax, [ebp - 0x1c]
call fcn.00405394
ret