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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
cmp dword [ebp + 8], 0x17
push ebx
push esi
mov esi, ecx
mov ebx, edx
mov dword [ebp - 0xc], esi
jae 0x44a5be
cmp dword [ebp + 8], 0x14
jae 0x44a5be
xor al, al
jmp 0x44a899
mov al, byte [ebx]
mov cl, al
and cl, 0xf
push edi
cmp cl, 1
jne 0x44a5f8
and al, 0xf0
cmp al, 0x50
jae 0x44a5f8
cmp byte [ebx + 1], 3
jae 0x44a5f8
movzx eax, word [ebx + 2]
push eax
mov byte [ebp - 0x10], cl
call dword [sym.imp.WS2_32.dll_ntohs]
cmp dword [ebp + 8], 0x14
movzx eax, ax
mov dword [ebp - 0x14], eax
jae 0x44a614
xor al, al
jmp 0x44a898
push dword [ebx]
mov byte [ebp - 0x10], 0
call dword [sym.imp.WS2_32.dll_ntohl]
cmp dword [ebp + 8], 0x17
mov edi, eax
mov dword [ebp - 0x14], edi
jb 0x44a5f1
mov al, byte [ebx + 0x12]
jmp 0x44a61c
mov al, byte [ebx]
mov edi, dword [ebp - 0x14]
shr al, 4
and dword [ebp - 8], 0
cmp dword [esi + 0x2c], 0
mov byte [ebp - 1], al
jbe 0x44a680
mov eax, dword [esi + 0x24]
mov ecx, dword [ebp - 8]
mov esi, dword [eax + ecx*4]
push dword [ebp + 0xc]
mov ecx, esi
call fcn.00404ab9
test al, al
jne 0x44a670
cmp byte [ebp - 1], 3
jne 0x44a65e
cmp dword [esi + 0x104], edi
je 0x44a75a
cmp dword [esi + 0x100], edi
je 0x44a75a
cmp byte [ebp - 1], 4
je 0x44a670
cmp dword [esi + 0x100], edi
je 0x44a7b8
inc dword [ebp - 8]
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 8]
mov esi, eax
cmp ecx, dword [eax + 0x2c]
jb 0x44a629
cmp byte [ebp - 1], 3
je 0x44a896
cmp byte [ebp - 0x10], 0
lea eax, [ebx + 0x13]
je 0x44a696
lea eax, [ebx + 0x10]
movzx eax, word [eax]
push eax
call dword [sym.imp.WS2_32.dll_ntohs]
cmp byte [ebp - 1], 4
movzx eax, ax
mov dword [ebp - 8], eax
je 0x44a815
xor ebx, ebx
cmp dword [esi + 0x38], ebx
jbe 0x44a6f1
mov dword [ebp + 8], ebx
mov eax, dword [esi + 0x30]
mov ecx, dword [ebp + 8]
add ecx, eax
cmp dword [ecx + 0x12], edi
jne 0x44a6e7
push dword [ebp + 0xc]
call fcn.00404ab9
test al, al
jne 0x44a6e7
mov eax, dword [esi + 0x30]
mov ecx, dword [ebp + 8]
movzx eax, word [ecx + eax + 0x1a]
cmp dword [ebp - 8], eax
je 0x44a801
add dword [ebp + 8], 0x1c
inc ebx
cmp ebx, dword [esi + 0x38]
jb 0x44a6ba
cmp dword [esi + 0x38], 0x3e8
ja 0x44a896
mov eax, dword [esi + 0x38]
add esi, 0x30
cmp eax, dword [esi + 4]
jb 0x44a710
mov ecx, esi
call fcn.00448f63
mov eax, dword [esi + 8]
mov ebx, eax
imul ebx, ebx, 0x1c
add ebx, dword [esi]
inc eax
mov dword [esi + 8], eax
mov esi, dword [ebp + 0xc]
mov edi, ebx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov edi, dword [ebp - 0x14]
mov esi, dword [ebp - 8]
mov dword [ebx + 0x12], edi
mov word [ebx + 0x1a], si
call dword [sym.imp.KERNEL32.DLL_GetTickCount]
push dword [ebp - 0x10]
mov dword [ebx + 0x16], eax
call sub.MSVCRT.dll_rand
push eax
push esi
push edi
push dword [ebp + 0xc]
push dword [ebp - 0xc]
call fcn.004488db
jmp 0x44a896
cmp dword [esi + 0x74], 0
je 0x44a7af
cmp dword [esi + 0x8c], 0
je 0x44a784
push 2
mov ecx, esi
call fcn.00447c48
mov ecx, dword [esi + 0x74]
movzx eax, ax
add eax, dword [ebp + 8]
xor dl, dl
push eax
call dword [esi + 0x8c]
mov eax, dword [esi + 0x88]
test eax, eax
je 0x44a896
mov ecx, dword [esi + 0x74]
xor edx, edx
cmp byte [esi + 0x3d], 1
setne dl
dec edx
and edx, 7
add edx, 0x2746
call eax
jmp 0x44a896
mov byte [esi + 0x3d], 8
jmp 0x44a896
mov edi, dword [ebp + 8]
push 0
push edi
mov edx, ebx
mov ecx, esi
call fcn.004492f0
cmp dword [esi + 0x74], 0
mov ebx, eax
je 0x44a896
cmp dword [esi + 0x8c], 0
je 0x44a896
push 4
mov ecx, esi
call fcn.00447c48
mov ecx, dword [esi + 0x74]
movzx eax, ax
sub edi, ebx
add eax, edi
push eax
xor dl, dl
call dword [esi + 0x8c]
jmp 0x44a896
imul ebx, ebx, 0x1c
add ebx, dword [esi + 0x30]
call dword [sym.imp.KERNEL32.DLL_GetTickCount]
mov dword [ebx + 0x16], eax
jmp 0x44a896
mov edx, dword [ebp + 0xc]
mov ecx, esi
call fcn.0044a39b
mov esi, eax
mov ax, word [ebp - 8]
mov dword [esi + 0xfc], edi
mov dword [esi + 0x104], edi
inc edi
mov dword [esi + 0x100], edi
mov word [esi + 0x46], ax
mov byte [esi + 0x3d], 2
call sub.MSVCRT.dll_rand
mov edi, dword [ebp + 8]
mov word [esi + 0x48], ax
mov word [esi + 0x4c], ax
mov al, byte [ebp - 0x10]
push 1
push edi
mov edx, ebx
mov ecx, esi
mov byte [esi + 0x3c], al
call fcn.004492f0
mov ecx, esi
mov ebx, eax
call fcn.0042e12f
cmp dword [esi + 0x74], 0
je 0x44a896
push 4
mov ecx, esi
call fcn.00447c48
mov ecx, dword [esi + 0x74]
movzx eax, ax
sub edi, ebx
add eax, edi
push eax
xor dl, dl
call dword [esi + 0x8c]
push 1
mov eax, esi
call fcn.004486f7
mov al, 1
pop edi
pop esi
pop ebx
leave
ret 8