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

Disassembly:
sub esp, 0x8c
push ebx
mov ebx, ecx
mov dword [esp + 0x1c], 0xf
push ebp
lea eax, [esp + 0x24]
mov dword [esp + 0x1c], 6
mov dword [esp + 0x18], eax
mov eax, dword [ebx + 0x1b08]
mov dword [esp + 0x24], eax
mov eax, dword [ebx + 0x1b44]
push esi
mov dword [esp + 0x2c], eax
mov eax, dword [ebx + 0x1b48]
push edi
mov dword [esp + 0x34], eax
xor edi, edi
mov eax, dword [ebx + 0x1c2c]
mov dword [esp + 0x38], eax
mov eax, dword [ebx + 0x1c3c]
push 0x1cff
mov dword [esp + 0x40], eax
mov eax, dword [ebx + 0x1c58]
push edi
mov dword [esp + 0x48], eax
lea eax, [esp + 0x34]
push edi
push eax
push 6
mov dword [esp + 0x30], edi
call dword [sym.imp.USER32.dll_MsgWaitForMultipleObjects]
mov esi, eax
cmp esi, 0xffffffff
je 0x10010791
lea eax, [ebx + 0x1b04]
lea ebp, [ebx + 0x1ca0]
cmp byte [eax + 0x14], 0
je 0x100101fc
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [ebx + 0x1b14]
sub ecx, eax
cmp ecx, 5
jg 0x100101fc
lea ecx, [ebx + 0x1b04]
mov byte [ebx + 0x1b18], 0
call fcn.1002b6f0
mov ecx, ebp
call fcn.10035cd0
cmp esi, 0x102
ja case.default.0x1001021e
je 0x10010363
cmp esi, 5
ja case.default.0x1001021e
jmp dword [esi*4 + 0x10010838]
lea ecx, [ebx + 0x1b04]
call fcn.1002b5e0
mov esi, eax
test esi, esi
je 0x10010252
cmp esi, 0x103
je 0x10010363
lea ecx, [ebx + 0x1b04]
call fcn.1002b5b0
jmp 0x10010363
mov ecx, dword [ebx + 0x1b24]
xor edi, edi
mov edx, dword [ebx + 0x1b28]
xor ebp, ebp
mov byte [esp + 0x14], 0xfe
mov dword [esp + 0x18], edi
mov al, byte [ecx + 4]
and al, 1
mov byte [esp + 0x13], al
movzx eax, byte [ecx]
dec eax
cmp eax, 6
ja case.default.0x10010281
jmp dword [eax*4 + 0x10010850]
mov byte [esp + 0x13], 1
cmp word [ebx + 0x1b1a], 0x27
jae 0x100102b8
cmp edx, 0x28
jb 0x100102b8
mov edi, dword [ecx + 0x10]
lea eax, [edx - 0x28]
mov ebp, dword [ecx + 0x14]
push eax
lea eax, [ecx + 0x28]
push eax
push ecx
mov ecx, ebx
call fcn.10011280
mov byte [esp + 0x14], al
jmp 0x10010332
cmp edx, 0x30
jae 0x100102c4
mov esi, 0x18
jmp 0x1001032e
mov eax, dword [ecx + 8]
mov edi, dword [ecx + 0x18]
mov ebp, dword [ecx + 0x1c]
mov dword [esp + 0x18], eax
lea eax, [edx - 0x30]
push eax
lea eax, [ecx + 0x30]
push eax
push ecx
mov ecx, ebx
call fcn.10010bb0
mov byte [esp + 0x14], al
jmp 0x10010332
cmp edx, 0x20
jae 0x100102f3
mov esi, 0x18
jmp 0x1001032e
mov edi, dword [ecx + 0x10]
lea eax, [edx - 0x20]
mov ebp, dword [ecx + 0x14]
push eax
lea eax, [ecx + 0x20]
push eax
push ecx
mov ecx, ebx
call fcn.10014f30
mov byte [esp + 0x14], al
jmp 0x10010332
cmp edx, 0x10
jae 0x1001031b
mov esi, 0x18
jmp 0x1001032e
push ecx
mov ecx, ebx
call fcn.10011310
mov byte [esp + 0x14], al
jmp 0x10010332
mov esi, 0x16
mov al, byte [esp + 0x14]
cmp byte [esp + 0x13], 0
je 0x1001034e
test al, al
je 0x1001034e
push dword [esp + 0x14]
mov ecx, ebx
push dword [esp + 0x1c]
push ebp
push edi
call fcn.10011640
test esi, esi
je 0x1001035d
lea ecx, [ebx + 0x1b04]
call fcn.1002b5b0
lea ebp, [ebx + 0x1ca0]
lea esi, [ebx + 0x1c5c]
lea ecx, [ebx + 0x1b04]
call fcn.1002b6f0
mov eax, dword [ebx + 0x1b0c]
cmp eax, 0xffffffff
je 0x10010390
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebx + 0x1b0c], 0xffffffff
mov ecx, esi
call fcn.10035560
cmp byte [ebx + 0x1b18], 0
jne 0x100107d2
or edi, 0xffffffff
jmp 0x100107e8
push 1
mov ecx, ebx
call fcn.100123a0
cmp byte [ebx + 0x1b18], 0
je 0x100103d0
lea ecx, [ebx + 0x1b04]
mov byte [ebx + 0x1b18], 0
call fcn.1002b6f0
lea esi, [ebx + 0x1c5c]
mov ecx, esi
call fcn.10035480
jmp 0x10010369
push ecx
mov ecx, ebx
call fcn.10014aa0
test al, al
je 0x10010363
push 0xffff
push 0xffff
mov ecx, ebx
call fcn.10010b60
jmp 0x10010363
push dword [ebx + 0x1c2c]
call dword [sym.imp.KERNEL32.dll_ResetEvent]
mov ecx, dword [0x1005ce50]
test ecx, ecx
je 0x10010363
mov eax, dword [ebx + 0x1b58]
mov esi, dword [ebx + 0x1b54]
lea eax, [eax + eax*4]
lea edi, [esi + eax*4]
cmp esi, edi
jae 0x10010363
lea esp, [esp]
lea eax, [esp + 0x18]
mov dword [esp + 0x18], 0
push eax
push dword [esi + 4]
call ecx
test eax, eax
jne 0x10010496
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x10010496
cmp ecx, dword [esi + 8]
je 0x10010496
mov dword [esi + 8], ecx
movzx eax, word [ebx + 0x1170]
imul eax, ecx
cmp byte [esi + 0x10], 0
mov dword [esi + 0xc], eax
je 0x1001048a
push 0xffff
push 0xffff
mov ecx, ebx
call fcn.10010b60
push esi
lea ecx, [ebx + 0x1c5c]
call fcn.100354d0
add esi, 0x14
cmp esi, edi
jae 0x1001035d
mov ecx, dword [0x1005ce50]
jmp 0x10010440
lea eax, [esp + 0x68]
push eax
push dword [ebx + 0x1c3c]
push dword [ebx + 0x1c38]
call dword [sym.imp.WS2_32.dll_WSAEnumNetworkEvents]
test byte [esp + 0x68], 8
je 0x10010363
push 0
push 0
push dword [ebx + 0x1c38]
call dword [sym.imp.WS2_32.dll_accept]
mov edi, eax
cmp edi, 0xffffffff
je 0x10010363
push 0x408
call dword [sym.imp.msvcrt.dll_malloc]
add esp, 4
test eax, eax
je 0x10010572
lea ecx, [ebx + 0x1c5c]
push ecx
push ebx
mov ecx, eax
call fcn.1002d0e0
mov esi, eax
test esi, esi
je 0x10010572
push edi
mov ecx, esi
call fcn.1002db70
test al, al
je 0x1001055c
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
mov esi, dword [esi + 0x48]
cmp ecx, eax
jb 0x1001054c
lea ecx, [esp + 0x2c]
add eax, 0xf
push ecx
push 4
push eax
lea ecx, [esp + 0x2c]
call fcn.100028f0
test eax, eax
je 0x10010363
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x20]
mov dword [eax + ecx*4], esi
inc dword [esp + 0x24]
jmp 0x10010363
mov ecx, esi
call fcn.1002d4b0
push esi
call dword [sym.imp.msvcrt.dll_free]
add esp, 4
jmp 0x10010363
push 2
push edi
call dword [sym.imp.WS2_32.dll_shutdown]
push edi
call dword [sym.imp.WS2_32.dll_closesocket]
jmp 0x10010363
push 0
lea eax, [esp + 0x98]
push eax
lea eax, [ebx + 0x1c44]
push eax
push dword [ebx + 0x1c40]
call dword [sym.imp.KERNEL32.dll_GetOverlappedResult]
push dword [ebx + 0x1c58]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_ResetEvent]
test esi, esi
je 0x10010652
push 0x408
call dword [sym.imp.msvcrt.dll_malloc]
add esp, 4
test eax, eax
je 0x10010639
lea ecx, [ebx + 0x1c5c]
push ecx
push ebx
mov ecx, eax
call fcn.1002d0e0
mov esi, eax
mov eax, dword [ebx + 0x1c40]
test esi, esi
je 0x1001063f
push eax
mov ecx, esi
call fcn.1002d830
test al, al
je 0x1001066f
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
mov esi, dword [esi + 0x48]
cmp ecx, eax
jb 0x10010622
lea ecx, [esp + 0x2c]
add eax, 0xf
push ecx
push 4
push eax
lea ecx, [esp + 0x2c]
call fcn.100028f0
test eax, eax
je 0x1001066f
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x20]
mov dword [eax + ecx*4], esi
mov ecx, ebx
inc dword [esp + 0x24]
call fcn.100100b0
jmp 0x10010363
mov eax, dword [ebx + 0x1c40]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, ebx
call fcn.100100b0
jmp 0x10010363
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x3e4
je 0x10010363
push dword [ebx + 0x1c40]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, ebx
call fcn.100100b0
jmp 0x10010363
mov eax, dword [esp + 0x24]
cmp esi, eax
jae 0x100106ba
mov eax, dword [esp + 0x20]
lea ecx, [ebx + 0x1c5c]
push dword [eax + esi*4]
call fcn.100353b0
test eax, eax
je 0x100106a8
mov ecx, eax
call fcn.1002d790
test al, al
jne 0x10010363
push 4
push ecx
push esi
lea ecx, [esp + 0x2c]
call fcn.10002950
jmp 0x10010363
jne 0x1001077e
push 1
push 0
push 0
push 0
lea eax, [esp + 0x78]
push eax
call dword [sym.imp.USER32.dll_PeekMessageW]
test eax, eax
je 0x10010363
jmp 0x100106e0
lea eax, [esp + 0x68]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
cmp dword [esp + 0x68], 0
jne 0x1001074e
mov eax, dword [esp + 0x6c]
cmp eax, 0xb1d6
ja 0x1001072c
je 0x1001071f
cmp eax, 0x10
je 0x10010718
cmp eax, 0xb1d4
jne 0x1001074e
push dword [esp + 0x70]
mov ecx, ebx
call fcn.10011c90
jmp 0x1001074e
mov edi, 0x4c7
jmp 0x1001074e
push dword [esp + 0x70]
mov ecx, ebx
call fcn.10011d40
jmp 0x1001074e
cmp eax, 0xb1d7
jne 0x1001074e
push dword [esp + 0x70]
mov ecx, ebp
call fcn.10035e40
test eax, eax
je 0x1001074e
push dword [esp + 0x74]
mov ecx, ebp
push eax
call fcn.10035f10
lea eax, [esp + 0x68]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
push 1
push 0
push 0
push 0
lea eax, [esp + 0x78]
push eax
call dword [sym.imp.USER32.dll_PeekMessageW]
test eax, eax
jne 0x100106e0
mov eax, dword [esp + 0x24]
mov dword [esp + 0x1c], edi
jmp 0x10010784
mov edi, esi
mov dword [esp + 0x1c], esi
test edi, edi
je 0x10010363
cmp esi, 0xffffffff
jne 0x100107a0
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
mov eax, dword [esp + 0x24]
lea ecx, [ecx]
mov ecx, eax
dec eax
test ecx, ecx
jne 0x100107a0
mov dword [esp + 0x24], eax
lea ecx, [esp + 0x2c]
mov eax, dword [esp + 0x20]
cmp eax, ecx
je 0x100107c5
test eax, eax
je 0x100107c5
push eax
call dword [sym.imp.msvcrt.dll_free]
add esp, 4
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x8c
ret
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edi, dword [ebx + 0x1b14]
sub edi, eax
mov eax, 0
cmovs edi, eax
mov ecx, ebp
call fcn.10035f80
lea ecx, [ebx + 0x1c5c]
mov esi, eax
call fcn.100355b0
cmp edi, esi
push 0x1cff
cmovb esi, edi
cmp esi, eax
cmovb eax, esi
push eax
push 0
push dword [esp + 0x2c]
push dword [esp + 0x34]
call dword [sym.imp.USER32.dll_MsgWaitForMultipleObjects]
mov edi, dword [esp + 0x1c]
mov esi, eax
lea eax, [ebx + 0x1b04]
cmp esi, 0xffffffff
jne 0x100101d1
jmp 0x10010791