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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x58
push ebx
push esi
xor ebx, ebx
mov esi, ecx
cmp dword [esi + 0xa5c], ebx
mov byte [ebp - 1], bl
jne 0x4478fd
push str.Image_file_not_open
call fcn.0044707b
pop ecx
xor al, al
jmp 0x447bc8
push edi
call dword [sym.imp.WS2_32.dll_WSACreateEvent]
cmp eax, ebx
mov dword [esi + 0x6b8], eax
jne 0x44791d
call fcn.0044b271
push str.WSACreateEvent_failed
jmp 0x447b8f
call dword [sym.imp.KERNEL32.dll_GetTickCount]
xor edi, edi
mov dword [ebp - 8], eax
inc edi
call fcn.00419eca
test al, al
jne 0x447b9b
cmp edi, ebx
jbe 0x447b9b
cmp dword [ebp + 0xc], ebx
jl 0x447b9b
jg 0x447952
cmp dword [ebp + 8], ebx
jbe 0x447b9b
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edi, eax
sub eax, dword [ebp - 8]
cmp eax, 0x3e8
jb 0x447992
push ebx
push ebx
mov ecx, esi
call fcn.0044722f
test al, al
je 0x447b97
push dword [esi + 0x6a8]
push dword [esi + 0x6a4]
push dword [esi + 0x6a0]
call fcn.00419e05
add esp, 0xc
mov dword [ebp - 8], edi
cmp dword [ebp + 0xc], ebx
mov eax, 0x7fff
mov ecx, eax
jg 0x4479a8
jl 0x4479a5
cmp dword [ebp + 8], eax
jae 0x4479a8
mov ecx, dword [ebp + 8]
push ecx
mov ecx, dword [esi + 0xa5c]
lea eax, [esi + 0x1a24]
push eax
call fcn.0040333e
mov eax, dword [esi + 0xa5c]
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
test byte [ecx + eax + 0x14], 2
jne 0x447b2f
mov edi, dword [eax + 4]
cmp edi, ebx
jne 0x447a17
push 0x18
call dword [sym.imp.WS2_32.dll_htons]
push ebx
mov word [ebp - 0x1c], ax
push 0xa
lea eax, [ebp - 0x1c]
push eax
push dword [esi + 0x6b4]
mov dword [ebp - 0x1a], ebx
mov dword [ebp - 0x16], ebx
call fcn.00450549
add esp, 0x10
cmp eax, 0xa
je 0x447929
call fcn.0044b271
push str.RML_send_failed
jmp 0x447b8f
push 1
push dword [esi + 0x6b8]
push dword [esi + 0x6b4]
call fcn.0044f0bd
add esp, 0xc
cmp eax, 0xffffffff
je 0x447b6d
push ebx
push ebx
push ebx
lea eax, [esi + 0x6b8]
push eax
push 1
call fcn.0044f28f
add esp, 0x14
cmp eax, 0xffffffff
je 0x447b55
cmp eax, ebx
jne 0x447a82
lea eax, [ebp - 0x58]
push eax
push dword [esi + 0x6b8]
push dword [esi + 0x6b4]
call fcn.0044f19c
add esp, 0xc
cmp eax, 0xffffffff
je 0x447b61
test byte [ebp - 0x58], 1
je 0x447a82
mov byte [ebp - 1], 1
push ebx
push ebx
push dword [esi + 0x6b4]
call fcn.0044f0bd
add esp, 0xc
cmp eax, 0xffffffff
je 0x447b6d
lea eax, [ebp - 0xc]
push eax
push 0x8004667e
push dword [esi + 0x6b4]
mov dword [ebp - 0xc], ebx
call fcn.0044feb7
add esp, 0xc
cmp eax, 0xffffffff
je 0x447b79
cmp byte [ebp - 1], bl
jne 0x447b9b
push 0x18
call dword [sym.imp.WS2_32.dll_htons]
push edi
mov word [ebp - 0x1c], ax
call dword [sym.imp.WS2_32.dll_htonl]
mov dword [ebp - 0x1a], eax
push ebx
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x28], eax
push ebx
lea eax, [esi + 0x1a24]
mov dword [ebp - 0x20], eax
push ebx
lea eax, [ebp - 0x10]
push eax
push 2
lea eax, [ebp - 0x2c]
push eax
push dword [esi + 0x6b4]
mov dword [ebp - 0x16], ebx
mov dword [ebp - 0x2c], 0xa
mov dword [ebp - 0x24], edi
call fcn.0045028e
add esp, 0x1c
cmp eax, 0xffffffff
je 0x447b85
lea eax, [esi + 0x6a0]
add dword [eax], edi
adc dword [eax + 4], ebx
sub dword [ebp + 8], edi
sbb dword [ebp + 0xc], ebx
jmp 0x447929
call fcn.004574ab
push dword [eax]
add esi, 0x958
call fcn.0045ab00
push eax
push esi
push str.Couldnt_read__s:__s
push esi
push 0xfffffffffffffffd
call fcn.00447031
add esp, 0x18
jmp 0x447b97
call fcn.0044b271
push str.RMLWaitForMultipleEvents_failed
jmp 0x447b8f
call fcn.0044b271
push str.RMLEnumNetworkEvents_failed
jmp 0x447b8f
call fcn.0044b271
push str.RMLEventSelect_failed
jmp 0x447b8f
call fcn.0044b271
push str.RML_ioctlsocket_failed
jmp 0x447b8f
call fcn.0044b271
push str.RMLSend_failed
mov edi, eax
call fcn.00446fee
pop ecx
xor al, al
jmp 0x447bc7
lea edi, [esi + 0x6b8]
push dword [edi]
call dword [sym.imp.WS2_32.dll_WSACloseEvent]
push dword [esi + 0x6a8]
mov dword [edi], ebx
push dword [esi + 0x6a4]
push dword [esi + 0x6a0]
call fcn.00419e05
add esp, 0xc
mov al, 1
pop edi
pop esi
pop ebx
leave
ret 8