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

Disassembly:
push 0xffffffffffffffff
push 0x10039cc9
mov eax, dword fs:[0]
push eax
sub esp, 0x34
push ebx
push ebp
push esi
push edi
mov eax, dword [0x1004b3c8]
xor eax, esp
push eax
lea eax, [esp + 0x48]
mov dword fs:[0], eax
mov ebp, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
push 0x1004cdcc
mov dword [esp + 0x20], vtable.nfapi::AutoLock.0
mov dword [esp + 0x24], 0x1004cdcc
call ebp
cmp dword [0x1004ccbc], 0
mov esi, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov dword [esp + 0x50], 0
je case.0x100057e5.6
mov ebx, dword [esp + 0x58]
mov eax, dword [ebx]
cmp eax, 0x1d
ja case.0x100057e5.6
movzx eax, byte [eax + 0x100060ec]
jmp dword [eax*4 + 0x100060a0]
push dword [ebx + 8]
push dword [ebx + 4]
push dword [0x1004ccac]
call fcn.10001776
add esp, 0xc
test eax, eax
je 0x1000581f
add eax, 0xfffffff8
lea esi, [ebx + 0x10]
lea edi, [eax + 0x5c]
mov ecx, 0x10
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov esi, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x10005839
lea eax, [ebx + 0x10]
push eax
push dword [ebx + 8]
push dword [ebx + 4]
call fcn.10005080
add esp, 0xc
test eax, eax
je case.0x100057e5.6
mov byte [eax + 0xa5], 1
push 0x1c
add eax, 0x67
push eax
push dword [ebx + 8]
push dword [ebx + 4]
call fcn.10004f50
add esp, 0x10
mov dword [esp + 0x14], vtable.nfapi::AutoUnlock.0
push 0x1004cdcc
mov dword [esp + 0x1c], 0x1004cdcc
call esi
push ebx
mov ecx, 0x1004ce00
mov byte [esp + 0x54], 1
call fcn.10001b86
jmp 0x1000607b
lea eax, [ebx + 0x10]
push eax
push dword [ebx + 8]
push dword [ebx + 4]
call fcn.10005080
add esp, 0xc
mov dword [esp + 0x14], vtable.nfapi::AutoUnlock.0
push 0x1004cdcc
mov dword [esp + 0x1c], 0x1004cdcc
call esi
push ebx
mov ecx, 0x1004ce00
mov byte [esp + 0x54], 2
call fcn.10001b86
jmp 0x1000607b
cmp dword [ebx + 0xc], 0x10
jne 0x100058f0
push dword [ebx + 8]
push dword [ebx + 4]
push dword [0x1004ccac]
call fcn.10001776
add esp, 0xc
test eax, eax
je 0x100058f0
movq xmm0, qword [ebx + 0x10]
movq qword [eax + 0x3e], xmm0
movq xmm0, qword [ebx + 0x18]
movq qword [eax + 0x46], xmm0
push 0x1004cdcc
mov dword [esp + 0x18], vtable.nfapi::AutoUnlock.0
mov dword [esp + 0x1c], 0x1004cdcc
call esi
push ebx
mov ecx, 0x1004ce00
mov byte [esp + 0x54], 3
call fcn.10001b86
jmp 0x1000607b
push dword [ebx + 8]
push dword [ebx + 4]
push dword [0x1004ccac]
call fcn.10001776
add esp, 0xc
test eax, eax
je 0x10005a4e
lea edi, [eax - 8]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [edi + 0x58], eax
mov edx, dword [ebx + 0xc]
lea eax, [edi + 0x14]
test edx, edx
je 0x1000598d
cmp dword [eax], eax
je 0x1000598d
mov ecx, dword [eax + 4]
mov dword [esp + 0x14], ecx
mov eax, dword [ecx + 0x14]
add eax, edx
cmp eax, 0x20000
ja 0x1000598d
push edx
lea eax, [ebx + 0x10]
push eax
mov eax, dword [ecx + 0x14]
add ecx, 0x18
add eax, ecx
push eax
call fcn.10015de0
mov eax, dword [ebx + 0xc]
mov ecx, dword [esp + 0x20]
add esp, 0xc
add dword [ecx + 0x14], eax
mov eax, dword [ebx + 0xc]
add dword [edi + 0x1c], eax
jmp 0x100059f3
push 0
push 0x2001b
call fcn.10001e56
mov edx, eax
add esp, 8
mov dword [esp + 0x14], edx
test edx, edx
je case.0x100057e5.6
mov ecx, dword [ebx + 4]
mov dword [edx + 0xc], ecx
mov ecx, dword [ebx + 8]
mov dword [edx + 0x10], ecx
mov ecx, dword [ebx]
mov dword [edx + 8], ecx
mov eax, dword [ebx + 0xc]
mov dword [edx + 0x14], eax
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x100059dd
push eax
lea eax, [ebx + 0x10]
push eax
lea eax, [edx + 0x18]
push eax
call fcn.10015de0
mov edx, dword [esp + 0x20]
add esp, 0xc
mov eax, dword [ebx + 0xc]
add dword [edi + 0x1c], eax
mov eax, dword [edi + 0x18]
lea ecx, [edi + 0x14]
mov dword [edx], ecx
mov dword [edx + 4], eax
mov dword [eax], edx
mov dword [ecx + 4], edx
cmp dword [edi + 0x40], 0x100000
jae 0x10005a17
cmp dword [edi + 0x34], 0x100000
jae 0x10005a17
cmp dword [edi + 0x28], 0x40000
jae 0x10005a17
cmp dword [edi + 0x1c], 0x800000
jb 0x10005a22
push 1
push edi
call fcn.10004c80
add esp, 8
push 0x1004cdcc
mov dword [esp + 0x18], vtable.nfapi::AutoUnlock.0
mov dword [esp + 0x1c], 0x1004cdcc
call esi
push ebx
mov ecx, 0x1004ce00
mov byte [esp + 0x54], 4
call fcn.10001b86
jmp 0x1000607b
push dword [ebx + 0xc]
lea eax, [ebx + 0x10]
push eax
push dword [ebx + 8]
push dword [ebx + 4]
call sym.nfapi.dll_nf_tcpPostReceive
add esp, 0x10
jmp case.0x100057e5.6
push dword [ebx + 8]
push dword [ebx + 4]
push dword [0x1004ccac]
call fcn.10001776
add esp, 0xc
test eax, eax
je 0x10005b9a
lea edi, [eax - 8]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [edi + 0x58], eax
mov edx, dword [ebx + 0xc]
test edx, edx
je 0x10005ad9
lea eax, [edi + 0x20]
cmp dword [eax], eax
je 0x10005ad9
mov ecx, dword [eax + 4]
mov dword [esp + 0x14], ecx
mov eax, dword [ecx + 0x14]
add eax, edx
cmp eax, 0x20000
ja 0x10005ad9
push edx
lea eax, [ebx + 0x10]
push eax
mov eax, dword [ecx + 0x14]
add ecx, 0x18
add eax, ecx
push eax
call fcn.10015de0
mov eax, dword [ebx + 0xc]
mov ecx, dword [esp + 0x20]
add esp, 0xc
add dword [ecx + 0x14], eax
mov eax, dword [ebx + 0xc]
add dword [edi + 0x28], eax
jmp 0x10005b3f
push 0
push 0x2001b
call fcn.10001e56
mov edx, eax
add esp, 8
mov dword [esp + 0x14], edx
test edx, edx
je case.0x100057e5.6
mov ecx, dword [ebx + 4]
mov dword [edx + 0xc], ecx
mov ecx, dword [ebx + 8]
mov dword [edx + 0x10], ecx
mov ecx, dword [ebx]
mov dword [edx + 8], ecx
mov eax, dword [ebx + 0xc]
mov dword [edx + 0x14], eax
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x10005b29
push eax
lea eax, [ebx + 0x10]
push eax
lea eax, [edx + 0x18]
push eax
call fcn.10015de0
mov edx, dword [esp + 0x20]
add esp, 0xc
mov eax, dword [ebx + 0xc]
add dword [edi + 0x28], eax
mov eax, dword [edi + 0x24]
lea ecx, [edi + 0x20]
mov dword [edx], ecx
mov dword [edx + 4], eax
mov dword [eax], edx
mov dword [ecx + 4], edx
cmp dword [edi + 0x40], 0x100000
jae 0x10005b63
cmp dword [edi + 0x34], 0x100000
jae 0x10005b63
cmp dword [edi + 0x28], 0x40000
jae 0x10005b63
cmp dword [edi + 0x1c], 0x800000
jb 0x10005b6e
push 1
push edi
call fcn.10004c80
add esp, 8
push 0x1004cdcc
mov dword [esp + 0x18], vtable.nfapi::AutoUnlock.0
mov dword [esp + 0x1c], 0x1004cdcc
call esi
push ebx
mov ecx, 0x1004ce00
mov byte [esp + 0x54], 5
call fcn.10001b86
jmp 0x1000607b
push dword [ebx + 0xc]
lea eax, [ebx + 0x10]
push eax
push dword [ebx + 8]
push dword [ebx + 4]
call sym.nfapi.dll_nf_tcpPostSend
add esp, 0x10
jmp case.0x100057e5.6
push 0x1004cdcc
mov dword [esp + 0x18], vtable.nfapi::AutoUnlock.0
mov dword [esp + 0x1c], 0x1004cdcc
call esi
push ebx
mov ecx, 0x1004ce68
mov byte [esp + 0x54], 6
call fcn.100018d9
jmp 0x1000607b
push 0x1004cdcc
mov dword [esp + 0x18], vtable.nfapi::AutoUnlock.0
mov dword [esp + 0x1c], 0x1004cdcc
call esi
push ebx
mov ecx, 0x1004ce68
mov byte [esp + 0x54], 7
call fcn.100018d9
jmp 0x1000607b
push 0x1004cdcc
mov dword [esp + 0x18], vtable.nfapi::AutoUnlock.0
mov dword [esp + 0x1c], 0x1004cdcc
call esi
push 0x19
push dword [ebx + 8]
mov byte [esp + 0x58], 8
push dword [ebx + 4]
call fcn.10001564
jmp 0x10006078
push dword [ebx + 8]
push dword [ebx + 4]
push dword [0x1004ccac]
call fcn.10001776
add esp, 0xc
test eax, eax
je case.0x100057e5.6
mov byte [eax + 0x9f], 1
jmp case.0x100057e5.6
lea eax, [ebx + 0x10]
push eax
push dword [ebx + 8]
push dword [ebx + 4]
call fcn.10005200
add esp, 0xc
mov dword [esp + 0x14], vtable.nfapi::AutoUnlock.0
push 0x1004cdcc
mov dword [esp + 0x1c], 0x1004cdcc
call esi
push ebx
mov ecx, 0x1004ce00
mov byte [esp + 0x54], 9
call fcn.10001b86
jmp 0x1000607b
push dword [ebx + 8]
push dword [ebx + 4]
push dword [0x1004ccb8]
call fcn.10001776
add esp, 0xc
test eax, eax
je 0x10005ccd
lea esi, [ebx + 0x10]
lea edi, [eax + 0x6e]
mov ecx, 0x10
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov esi, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 0x1004cdcc
mov dword [esp + 0x18], vtable.nfapi::AutoUnlock.0
mov dword [esp + 0x1c], 0x1004cdcc
call esi
push ebx
mov ecx, 0x1004ce00
mov byte [esp + 0x54], 0xa
call fcn.10001b86
jmp 0x1000607b
cmp dword [ebx + 0xc], 0x10
jne 0x10005d2b
push dword [ebx + 8]
push dword [ebx + 4]
push dword [0x1004ccb8]
call fcn.10001776
add esp, 0xc
test eax, eax
je 0x10005d2b
movq xmm0, qword [ebx + 0x10]
movq qword [eax + 0x3c], xmm0
movq xmm0, qword [ebx + 0x18]
movq qword [eax + 0x44], xmm0
push 0x1004cdcc
mov dword [esp + 0x18], vtable.nfapi::AutoUnlock.0
mov dword [esp + 0x1c], 0x1004cdcc
call esi
push ebx
mov ecx, 0x1004ce00
mov byte [esp + 0x54], 0xb
call fcn.10001b86
jmp 0x1000607b
push dword [ebx + 8]
push dword [ebx + 4]
push dword [0x1004ccb8]
call fcn.10001776
add esp, 0xc
test eax, eax
jne 0x10005db6
xorps xmm0, xmm0
mov word [esp + 0x44], ax
mov ax, word [ebx + 0x10]
movq qword [esp + 0x24], xmm0
mov word [esp + 0x28], ax
lea eax, [esp + 0x24]
push eax
push dword [ebx + 8]
movq qword [esp + 0x34], xmm0
push dword [ebx + 4]
movq qword [esp + 0x40], xmm0
movq qword [esp + 0x48], xmm0
call fcn.10005200
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x10005db9
jmp case.0x100057e5.6
lea edi, [eax - 8]
push 0
push 0x2001b
call fcn.10001e56
mov edx, eax
add esp, 8
mov dword [esp + 0x14], edx
test edx, edx
je case.0x100057e5.6
mov ecx, dword [ebx + 4]
mov dword [edx + 0xc], ecx
mov ecx, dword [ebx + 8]
mov dword [edx + 0x10], ecx
mov ecx, dword [ebx]
mov dword [edx + 8], ecx
mov eax, dword [ebx + 0xc]
mov dword [edx + 0x14], eax
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x10005e09
push eax
lea eax, [ebx + 0x10]
push eax
lea eax, [edx + 0x18]
push eax
call fcn.10015de0
mov edx, dword [esp + 0x20]
add esp, 0xc
mov eax, dword [ebx + 0xc]
add dword [edi + 0x1c], eax
mov eax, dword [edi + 0x18]
lea ecx, [edi + 0x14]
mov dword [edx], ecx
mov dword [edx + 4], eax
mov dword [eax], edx
mov dword [ecx + 4], edx
cmp dword [edi + 0x40], 0x100000
jae 0x10005e43
cmp dword [edi + 0x34], 0x100000
jae 0x10005e43
cmp dword [edi + 0x28], 0x800000
jae 0x10005e43
cmp dword [edi + 0x1c], 0x800000
jb 0x10005e4e
push 1
push edi
call fcn.10004d60
add esp, 8
push 0x1004cdcc
mov dword [esp + 0x18], vtable.nfapi::AutoUnlock.0
mov dword [esp + 0x1c], 0x1004cdcc
call esi
push ebx
mov ecx, 0x1004ce00
mov byte [esp + 0x54], 0xc
call fcn.10001b86
jmp 0x1000607b
push dword [ebx + 8]
push dword [ebx + 4]
push dword [0x1004ccb8]
call fcn.10001776
add esp, 0xc
test eax, eax
jne 0x10005ed9
xorps xmm0, xmm0
mov word [esp + 0x44], ax
mov ax, word [ebx + 0x10]
movq qword [esp + 0x24], xmm0
mov word [esp + 0x28], ax
lea eax, [esp + 0x24]
push eax
push dword [ebx + 8]
movq qword [esp + 0x34], xmm0
push dword [ebx + 4]
movq qword [esp + 0x40], xmm0
movq qword [esp + 0x48], xmm0
call fcn.10005200
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x10005edc
jmp case.0x100057e5.6
lea edi, [eax - 8]
push 0
push 0x2001b
call fcn.10001e56
mov edx, eax
add esp, 8
mov dword [esp + 0x14], edx
test edx, edx
je case.0x100057e5.6
mov ecx, dword [ebx + 4]
mov dword [edx + 0xc], ecx
mov ecx, dword [ebx + 8]
mov dword [edx + 0x10], ecx
mov ecx, dword [ebx]
mov dword [edx + 8], ecx
mov eax, dword [ebx + 0xc]
mov dword [edx + 0x14], eax
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x10005f2c
push eax
lea eax, [ebx + 0x10]
push eax
lea eax, [edx + 0x18]
push eax
call fcn.10015de0
mov edx, dword [esp + 0x20]
add esp, 0xc
mov eax, dword [ebx + 0xc]
add dword [edi + 0x28], eax
mov eax, dword [edi + 0x24]
lea ecx, [edi + 0x20]
mov dword [edx], ecx
mov dword [edx + 4], eax
mov dword [eax], edx
mov dword [ecx + 4], edx
cmp dword [edi + 0x40], 0x100000
jae 0x10005f66
cmp dword [edi + 0x34], 0x100000
jae 0x10005f66
cmp dword [edi + 0x28], 0x800000
jae 0x10005f66
cmp dword [edi + 0x1c], 0x800000
jb 0x10005f71
push 1
push edi
call fcn.10004d60
add esp, 8
push 0x1004cdcc
mov dword [esp + 0x18], vtable.nfapi::AutoUnlock.0
mov dword [esp + 0x1c], 0x1004cdcc
call esi
push ebx
mov ecx, 0x1004ce00
mov byte [esp + 0x54], 0xd
call fcn.10001b86
jmp 0x1000607b
push 0x1004cdcc
mov dword [esp + 0x18], vtable.nfapi::AutoUnlock.0
mov dword [esp + 0x1c], 0x1004cdcc
call esi
push ebx
mov ecx, 0x1004ce68
mov byte [esp + 0x54], 0xe
call fcn.100018d9
jmp 0x1000607b
push 0x1004cdcc
mov dword [esp + 0x18], vtable.nfapi::AutoUnlock.0
mov dword [esp + 0x1c], 0x1004cdcc
call esi
push ebx
mov ecx, 0x1004ce68
mov byte [esp + 0x54], 0xf
call fcn.100018d9
jmp 0x1000607b
mov edi, dword [ebx + 0xc]
push 0x1004cdcc
sub edi, 0x16
mov dword [esp + 0x18], vtable.nfapi::AutoUnlock.0
mov dword [esp + 0x1c], 0x1004cdcc
call esi
mov ecx, dword [0x1004cdc8]
lea eax, [ebx + 0x10]
push eax
push edi
lea eax, [ebx + 0x26]
mov byte [esp + 0x58], 0x10
push eax
test ecx, ecx
je 0x10006030
mov eax, dword [ecx]
call eax
jmp 0x10006078
call sym.nfapi.dll_nf_ipPostReceive
jmp 0x10006078
mov edi, dword [ebx + 0xc]
push 0x1004cdcc
sub edi, 0x16
mov dword [esp + 0x18], vtable.nfapi::AutoUnlock.0
mov dword [esp + 0x1c], 0x1004cdcc
call esi
mov ecx, dword [0x1004cdc8]
lea eax, [ebx + 0x10]
push eax
push edi
lea eax, [ebx + 0x26]
mov byte [esp + 0x58], 0x11
push eax
test ecx, ecx
je 0x10006073
mov eax, dword [ecx + 4]
call eax
jmp 0x10006078
call sym.nfapi.dll_nf_ipPostSend
add esp, 0xc
push 0x1004cdcc
call ebp
push 0x1004cdcc
call esi
mov ecx, dword [esp + 0x48]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret