Function at 0x44a1f7
Capabilities:
Check for time delay via gettickcount
Get local ipv4 addresses
Get socket information
Set socket configuration

Disassembly:
push ebp
lea ebp, [esp - 0x2414]
mov eax, 0x2494
call fcn.004535b0
mov eax, dword [0x493bd0]
xor eax, ebp
mov dword [ebp + 0x2410], eax
mov eax, dword [ebp + 0x241c]
push ebx
mov ebx, dword [ebp + 0x2420]
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp + 0x2424]
push esi
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp + 0x2448]
mov esi, ecx
push edi
mov dword [esi + 0x188], eax
mov eax, dword [ebp + 0x244c]
push 0x474ff1
push 0x49a1f0
mov dword [ebp - 0x30], ebx
mov dword [esi + 0x18c], eax
call fcn.00453940
mov edi, 0x100
push edi
lea eax, [ebp + 0xdc]
push ebx
push eax
call fcn.0045a910
push edi
push dword [ebp - 0x3c]
xor ebx, ebx
push esi
mov byte [ebp + 0x1db], bl
call fcn.0045a910
push dword [ebp - 0x30]
mov byte [esi + 0xff], bl
call fcn.00453e90
inc eax
push eax
call fcn.0040196a
add esp, 0x28
cmp eax, ebx
mov dword [ebp - 0x34], eax
jne 0x44a2ba
push str...RMLSUtil.cpp:2420
push str._s:_Memory_allocation_failure___trying_anyway_with_non_lowercased_session_name_n
push 0x1e
call fcn.00451d25
mov edi, dword [ebp - 0x30]
add esp, 0xc
jmp 0x44a314
push dword [ebp - 0x30]
mov dword [ebp - 0x2c], ebx
call fcn.00453e90
test eax, eax
pop ecx
jbe 0x44a309
mov edi, dword [ebp - 0x30]
mov eax, dword [ebp - 0x34]
sub eax, edi
mov dword [ebp - 0x44], eax
movzx eax, byte [edi]
push eax
call fcn.00456f53
test eax, eax
pop ecx
je 0x44a2ef
movzx eax, byte [edi]
push eax
call fcn.0045aca8
pop ecx
jmp 0x44a2f1
mov al, byte [edi]
mov ecx, dword [ebp - 0x44]
push dword [ebp - 0x30]
inc dword [ebp - 0x2c]
mov byte [ecx + edi], al
inc edi
call fcn.00453e90
cmp dword [ebp - 0x2c], eax
pop ecx
jb 0x44a2d5
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x2c]
mov byte [eax + ecx], bl
mov edi, ecx
push 0x1c
push str.GhostCast
call fcn.004515cd
lea eax, [ebp + 0x2400]
push edi
push eax
call fcn.00451646
lea eax, [ebp + 0x2400]
push 0x2c
push eax
call fcn.004515fa
add esp, 0x18
call fcn.004514d5
cmp edi, dword [ebp - 0x30]
je 0x44a34f
push edi
call fcn.00401990
pop ecx
mov eax, dword [ebp + 0x2428]
cmp eax, ebx
mov ecx, dword [ebp + 0x242c]
push 2
mov dword [esi + 0x104], ecx
mov dword [esi + 0x100], eax
pop ecx
jle 0x44a3a1
cmp eax, ecx
jle 0x44a391
cmp eax, 4
jg 0x44a3a1
mov eax, dword [ebp + 0x2460]
mov dword [esi + 0x950], ecx
mov dword [esi + 0x108], eax
mov dword [ebp + 0x245c], ebx
jmp 0x44a3a1
mov dword [esi + 0x950], 1
mov dword [esi + 0x108], ebx
cmp dword [esi + 0x950], ecx
jne 0x44a3c3
push 2
pop edi
push str.Server_is_in_image_dump_mode___will_force_client_into_unicast_mode_n
push 0x14
mov byte [ebp + 0x2464], 1
call fcn.00451d25
pop ecx
pop ecx
jmp 0x44a3c9
mov edi, dword [ebp + 0x2468]
cmp byte [ebp + 0x2464], bl
jne 0x44a3fa
cmp byte [ebp + 0x2430], bl
je 0x44a3fa
cmp dword [ebp + 0x2434], 1
jne 0x44a3fa
push 2
pop edi
push str.Server_has_only_1_client___will_force_client_into_unicast_mode_n
push 0x14
mov byte [ebp + 0x2464], 1
call fcn.00451d25
pop ecx
pop ecx
push edi
push dword [ebp + 0x2464]
mov ecx, esi
mov dword [ebp - 0x6c], edi
call fcn.00448b77
push dword [ebp - 0x4c]
call fcn.004474fa
push 0x5000
mov dword [esi + 0x158], 0x400
call fcn.0040196a
cmp eax, ebx
pop ecx
mov dword [esi + 0x150], eax
jne 0x44a444
push str.Couldnt_allocate_memory_for_clients
call fcn.0044707b
pop ecx
xor al, al
jmp 0x44b16e
mov eax, dword [esi + 0x158]
shl eax, 2
push eax
call fcn.0040196a
cmp eax, ebx
pop ecx
mov dword [esi + 0x190], eax
jne 0x44a465
push str.Couldnt_allocate_memory_for_close_events
jmp 0x44a437
call fcn.0044f452
cmp eax, ebx
je 0x44a47c
push str.RMLStartup_failed
mov edi, eax
call fcn.00446fee
jmp 0x44a43c
mov ecx, esi
mov byte [esi + 0x1a18], 1
call fcn.00447181
test al, al
je 0x44a43d
push 0xa
push ebx
push ebx
push 0xb1
push 1
push 2
call fcn.0044f5f7
or edi, 0xffffffff
add esp, 0x18
cmp eax, edi
mov dword [esi + 0x6b4], eax
jne 0x44a4bc
call fcn.0044b271
push str.RMLSocket_failed
jmp 0x44a473
push 4
lea ecx, [ebp + 0x2450]
push ecx
push 0x1001
push 0xffff
push eax
call fcn.0044fdbe
add esp, 0x14
cmp eax, edi
jne 0x44a4e8
call fcn.0044b271
push str.RML_setsockopt_failed
jmp 0x44a473
cmp byte [ebp + 0x2464], 1
jne 0x44a525
push ebx
push ebx
lea eax, [ebp - 0x50]
push eax
push ebx
push ebx
push 4
lea eax, [ebp - 0x6c]
push eax
push 0x9fff0003
push dword [esi + 0x6b4]
call fcn.0044ff1e
add esp, 0x24
cmp eax, edi
jne 0x44a525
call fcn.0044b271
push str.RMLIoctl_failed
jmp 0x44a473
cmp dword [ebp + 0x2454], edi
jne 0x44a541
mov dword [ebp + 0x2454], 0xe04d0200
mov dword [ebp + 0x2458], 0xe04dffff
push dword [ebp + 0x2454]
mov eax, dword [ebp + 0x2458]
push dword [ebp - 0x30]
call fcn.0044711d
pop ecx
pop ecx
push eax
call dword [sym.imp.WS2_32.dll_htonl]
push ebx
push ebx
mov dword [ebp - 0x68], eax
lea eax, [ebp - 0x50]
push eax
push ebx
push ebx
push 4
lea eax, [ebp - 0x68]
push eax
push 0x9fff0001
push dword [esi + 0x6b4]
call fcn.0044ff1e
add esp, 0x24
cmp eax, edi
je 0x44a516
push ebx
push ebx
lea eax, [ebp - 0x50]
push eax
push ebx
push ebx
push 4
lea eax, [ebp + 0x245c]
push eax
push 0x9fff0002
push dword [esi + 0x6b4]
call fcn.0044ff1e
add esp, 0x24
cmp eax, edi
je 0x44a516
push 0x10
lea eax, [ebp + 0x1f0]
push ebx
push eax
call fcn.00452b30
push 0x10
lea eax, [ebp + 0x1f0]
push eax
push dword [esi + 0x6b4]
mov word [ebp + 0x1f0], 2
call fcn.0044fced
add esp, 0x18
cmp eax, edi
jne 0x44a5f4
call fcn.0044b271
push str.RML_bind_failed
jmp 0x44a473
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp + 0x1e0]
push eax
push dword [esi + 0x6b4]
mov dword [ebp - 0x38], 0x10
call fcn.004500a9
add esp, 0xc
cmp eax, edi
jne 0x44a627
call fcn.0044b271
push str.RML_getsockname_failed
jmp 0x44a473
mov ax, word [ebp + 0x1e2]
mov word [ebp + 0x1dc], ax
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp + 0x2300]
push eax
push ebx
push dword [ebp - 0x38]
lea eax, [ebp + 0x1e0]
push eax
mov dword [ebp - 0x48], 0x100
call dword [sym.imp.WS2_32.dll_WSAAddressToStringA]
lea eax, [ebp + 0x2300]
push eax
push str.Bound_RML_socket_to__s_n
push 0x14
call fcn.00451d25
push dword [ebp + 0x246c]
push str.Setting_multicast_scope_to__lu_n
push 0x14
call fcn.00451d25
push ebx
push ebx
lea eax, [ebp - 0x50]
push eax
push ebx
push ebx
push 4
lea eax, [ebp + 0x246c]
push eax
push 0x8800000a
push dword [esi + 0x6b4]
call fcn.0044ff1e
add esp, 0x3c
cmp eax, edi
je 0x44a516
push 4
lea eax, [ebp - 0x40]
push eax
push 0x80
push 0xffff
push dword [esi + 0x6b4]
mov word [ebp - 0x40], 1
mov word [ebp - 0x3e], bx
call fcn.0044fdbe
add esp, 0x14
cmp eax, edi
je 0x44a4dc
push 5
push dword [esi + 0x6b4]
call fcn.0045082e
cmp eax, edi
pop ecx
pop ecx
jne 0x44a6fb
call fcn.0044b271
push str.RML_listen_failed
jmp 0x44a473
call dword [sym.imp.WS2_32.dll_WSACreateEvent]
cmp eax, ebx
mov dword [esi + 0x6bc], eax
jne 0x44a71b
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push str.WSACreateEvent_failed
jmp 0x44a473
push 8
push eax
push dword [esi + 0x6b4]
call fcn.0044f0bd
add esp, 0xc
cmp eax, edi
jne 0x44a73f
call fcn.0044b271
push str.RMLEventSelect_failed
jmp 0x44a473
push ebx
push 1
push 2
call dword [sym.imp.WS2_32.dll_socket]
cmp eax, edi
mov dword [esi + 0x6b0], eax
jne 0x44a764
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push str.gh_socket_failed
jmp 0x44a473
push 0x10
lea eax, [ebp + 0x1f0]
push ebx
push eax
call fcn.00452b30
mov eax, dword [esi + 0x6b0]
add esp, 0xc
push 0x10
lea ecx, [ebp + 0x1f0]
push ecx
push eax
mov word [ebp + 0x1f0], 2
call dword [sym.imp.WS2_32.dll_bind]
cmp eax, edi
jne 0x44a7a9
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push str.gh_bind_failed
jmp 0x44a473
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp + 0x1e0]
push eax
push dword [esi + 0x6b0]
mov dword [ebp - 0x38], 0x10
call dword [sym.imp.WS2_32.dll_getsockname]
cmp eax, edi
jne 0x44a7db
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push str.getsockname_failed
jmp 0x44a473
mov ax, word [ebp + 0x1e2]
mov word [ebp + 0x1de], ax
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp + 0x2300]
push eax
push ebx
push dword [ebp - 0x38]
lea eax, [ebp + 0x1e0]
push eax
mov dword [ebp - 0x48], 0x100
call dword [sym.imp.WS2_32.dll_WSAAddressToStringA]
lea eax, [ebp + 0x2300]
push eax
push str.Bound_TCP_socket_to__s_n
push 0x14
call fcn.00451d25
add esp, 0xc
push 0x20
push dword [esi + 0x6b0]
call dword [sym.imp.WS2_32.dll_listen]
cmp eax, edi
jne 0x44a844
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push str.listen_failed
jmp 0x44a473
call dword [sym.imp.WS2_32.dll_WSACreateEvent]
cmp eax, ebx
mov dword [esi + 0x6c4], eax
je 0x44a70b
push 8
push eax
push dword [esi + 0x6b0]
call dword [sym.imp.WS2_32.dll_WSAEventSelect]
cmp eax, edi
jne 0x44a87b
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push str.WSAEventSelect_failed
jmp 0x44a473
push 0x14
push ebx
push ebx
push ebx
push 2
push 2
call dword [sym.imp.WS2_32.dll_WSASocketA]
cmp eax, edi
mov dword [esi + 0x6ac], eax
jne 0x44a8a4
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push str.WSASocket_failed
jmp 0x44a473
push 4
lea ecx, [ebp - 0x70]
push ecx
push 4
push 0xffff
push eax
mov dword [ebp - 0x70], 1
call dword [sym.imp.WS2_32.dll_setsockopt]
cmp eax, edi
jne 0x44a8ca
push ebx
call dword [sym.imp.WS2_32.dll_WSASetLastError]
push 0x10
lea eax, [ebp + 0x1f0]
push ebx
push eax
call fcn.00452b30
add esp, 0xc
push 0x1a0a
mov word [ebp + 0x1f0], 2
call dword [sym.imp.WS2_32.dll_htons]
push 0x10
lea ecx, [ebp + 0x1f0]
mov word [ebp + 0x1f2], ax
mov eax, dword [esi + 0x6ac]
push ecx
push eax
call dword [sym.imp.WS2_32.dll_bind]
cmp eax, edi
je 0x44a799
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp + 0x1e0]
push eax
push dword [esi + 0x6ac]
mov dword [ebp - 0x38], 0x10
call dword [sym.imp.WS2_32.dll_getsockname]
cmp eax, edi
je 0x44a7cb
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp + 0x2300]
push eax
push ebx
push dword [ebp - 0x38]
lea eax, [ebp + 0x1e0]
push eax
mov dword [ebp - 0x48], 0x100
call dword [sym.imp.WS2_32.dll_WSAAddressToStringA]
lea eax, [ebp + 0x2300]
push eax
push str.Bound_UDP_socket_to__s_n
push 0x14
call fcn.00451d25
add esp, 0xc
push 0xe04d0000
call dword [sym.imp.WS2_32.dll_htonl]
xor edi, edi
cmp dword [esi + 0x14c], ebx
mov dword [ebp - 0x58], eax
jbe 0x44aa34
lea eax, [esi + 0x10c]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
mov eax, dword [eax]
mov dword [ebp - 0x54], eax
lea eax, [ebp - 0x58]
push eax
push dword [esi + 0x6ac]
call fcn.004507f0
cmp eax, 0xffffffff
pop ecx
pop ecx
jne 0x44aa09
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push edi
push dword [ebp - 0x54]
call dword [sym.imp.WS2_32.dll_inet_ntoa]
push eax
push str._s_interface_skipped___d____code__d_n
push 0x14
call fcn.00451d25
mov eax, dword [esi + 0x14c]
add esp, 0x14
dec eax
cmp edi, eax
mov ecx, edi
jae 0x44a9fc
mov eax, dword [ebp - 0x30]
mov edx, dword [eax + 4]
mov dword [eax], edx
mov edx, dword [esi + 0x14c]
inc ecx
add eax, 4
dec edx
cmp ecx, edx
jb 0x44a9e8
dec dword [esi + 0x14c]
dec edi
sub dword [ebp - 0x30], 4
jmp 0x44aa23
push edi
push dword [ebp - 0x54]
call dword [sym.imp.WS2_32.dll_inet_ntoa]
push eax
push str.Interface__s___d__ws2AddMembership_succeeded_n
push 0x14
call fcn.00451d25
add esp, 0x10
add dword [ebp - 0x30], 4
inc edi
cmp edi, dword [esi + 0x14c]
jb 0x44a999
call dword [sym.imp.WS2_32.dll_WSACreateEvent]
cmp eax, ebx
mov dword [esi + 0x6c0], eax
jne 0x44aa4e
call fcn.0044b271
jmp 0x44a711
push 1
push eax
push dword [esi + 0x6ac]
call dword [sym.imp.WS2_32.dll_WSAEventSelect]
cmp eax, 0xffffffff
je 0x44a86b
mov dword [esi + 0x154], ebx
mov dword [esi + 0x180], ebx
mov dword [esi + 0x184], ebx
mov byte [esi + 0x69c], bl
jmp 0x44abdf
call fcn.00419eca
test al, al
jne 0x44abec
cmp byte [ebp + 0x2430], bl
je 0x44aaaa
mov eax, dword [esi + 0x154]
cmp eax, dword [ebp + 0x2434]
jae 0x44abec
cmp byte [ebp + 0x2438], bl
je 0x44aadf
push ebx
call fcn.00454e62
push edx
push eax
push dword [ebp + 0x2440]
push dword [ebp + 0x243c]
call fcn.0045aa6d
fcomp qword [0x47a940]
add esp, 0x14
fnstsw ax
test ah, 0x41
jne 0x44abec
cmp byte [ebp + 0x2444], bl
je 0x44ab0e
push ebx
call fcn.00454e62
mov edi, eax
mov eax, dword [esi + 0x184]
cmp edx, eax
pop ecx
mov ecx, dword [esi + 0x180]
jl 0x44ab0e
jg 0x44ab06
cmp edi, ecx
jb 0x44ab0e
or ecx, eax
jne 0x44abec
push ebx
push 0x3e8
push ebx
lea eax, [esi + 0x6bc]
push eax
mov eax, dword [esi + 0x698]
add eax, 3
push eax
call fcn.0044f28f
add esp, 0x14
cmp eax, 0xffffffff
mov dword [ebp - 0x34], eax
je 0x44ac54
cmp eax, 0x102
je 0x44ab96
sub eax, ebx
mov ecx, esi
je 0x44ab89
dec eax
je 0x44ab7b
dec eax
je 0x44ab74
mov edi, dword [ebp - 0x34]
lea eax, [ebp - 0x25]
push eax
add edi, 0xfffffffd
push edi
call fcn.0044a095
test al, al
jne 0x44ab96
push edi
mov ecx, esi
call fcn.00448dbc
cmp byte [ebp - 0x25], bl
jne 0x44a43d
jmp 0x44ab96
call fcn.004489b0
jmp 0x44ab96
lea eax, [ebp + 0xdc]
push eax
call fcn.004485e2
jmp 0x44ab8e
call fcn.00448b8e
test al, al
je 0x44a43d
cmp byte [esi + 0x69c], bl
je 0x44abb8
cmp dword [esi + 0x698], 0x20
jae 0x44abb8
mov ecx, esi
call fcn.004489b0
test al, al
je 0x44abb8
mov byte [esi + 0x69c], bl
call fcn.00419eca
test al, al
jne 0x44abce
cmp dword [ebp - 0x34], 0x102
jne 0x44ab0e
push ebx
push ebx
mov ecx, esi
call fcn.0044722f
test al, al
je 0x44a43d
call fcn.00419ec4
test al, al
je 0x44aa83
call fcn.00451593
cmp dword [esi + 0x14c], ebx
mov dword [ebp - 0x2c], ebx
jbe 0x44ac33
lea edi, [esi + 0x10c]
mov eax, dword [edi]
push 8
lea ecx, [ebp - 0x58]
push ecx
push 0xd
mov dword [ebp - 0x54], eax
mov eax, dword [esi + 0x6ac]
push ebx
push eax
call dword [sym.imp.WS2_32.dll_setsockopt]
cmp eax, 0xffffffff
je 0x44ac63
inc dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
add edi, 4
cmp eax, dword [esi + 0x14c]
jb 0x44ac02
push dword [esi + 0x6ac]
call dword [sym.imp.WS2_32.dll_closesocket]
cmp eax, 0xffffffff
jne 0x44ac73
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push str.closesocket_failed
jmp 0x44a473
call fcn.0044b271
push str.RMLWaitForMultipleEvents_failed
jmp 0x44a473
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push str.gh_setsockopt_failed
jmp 0x44a473
push dword [esi + 0x6c0]
mov edi, dword [sym.imp.WS2_32.dll_WSACloseEvent]
or dword [esi + 0x6ac], 0xffffffff
call edi
push dword [esi + 0x6b0]
mov dword [esi + 0x6c0], ebx
call dword [sym.imp.WS2_32.dll_closesocket]
cmp eax, 0xffffffff
je 0x44ac44
or dword [esi + 0x6b0], 0xffffffff
cmp dword [esi + 0x698], ebx
mov dword [ebp - 0x2c], ebx
jbe 0x44acf6
lea eax, [esi + 0x198]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x34]
push dword [eax]
call dword [sym.imp.WS2_32.dll_closesocket]
cmp eax, 0xffffffff
jne 0x44ace4
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push str.closesocket_failed
call fcn.004470a9
pop ecx
pop ecx
push ebx
call dword [sym.imp.WS2_32.dll_WSASetLastError]
inc dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
add dword [ebp - 0x34], 0x28
cmp eax, dword [esi + 0x698]
jb 0x44acba
push dword [esi + 0x6c4]
mov dword [esi + 0x698], ebx
call edi
push ebx
push ebx
push dword [esi + 0x6b4]
mov dword [esi + 0x6c4], ebx
call fcn.0044f0bd
add esp, 0xc
cmp eax, 0xffffffff
je 0x44a730
lea eax, [ebp - 0x74]
push eax
push 0x8004667e
push dword [esi + 0x6b4]
mov dword [ebp - 0x74], ebx
call fcn.0044feb7
add esp, 0xc
cmp eax, 0xffffffff
jne 0x44ad51
call fcn.0044b271
push str.RML_ioctlsocket_failed
jmp 0x44a473
push dword [esi + 0x6bc]
call edi
mov dword [esi + 0x6bc], ebx
mov dword [esi + 0x6a0], ebx
mov dword [esi + 0x6a4], ebx
mov dword [esi + 0x6a8], ebx
call fcn.00419eac
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x44], eax
mov byte [ebp - 0x25], bl
call fcn.00419eca
test al, al
jne 0x44b151
mov edi, dword [sym.imp.WS2_32.dll_ntohl]
cmp dword [esi + 0x154], ebx
jbe 0x44b059
cmp byte [ebp - 0x25], bl
jne 0x44b062
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x2c], eax
sub eax, dword [ebp - 0x44]
cmp eax, 0x3e8
jb 0x44adee
push ebx
push ebx
mov ecx, esi
call fcn.0044722f
test al, al
je 0x44a43d
push dword [esi + 0x6a8]
push dword [esi + 0x6a4]
push dword [esi + 0x6a0]
call fcn.00419e05
mov eax, dword [ebp - 0x2c]
add esp, 0xc
mov dword [ebp - 0x44], eax
lea eax, [ebp - 0x80]
push eax
push dword [esi + 0x6b4]
mov ecx, esi
call fcn.00447426
test al, al
je 0x44a43d
push dword [ebp - 0x7e]
call edi
push dword [ebp - 0x7a]
mov dword [ebp - 0x2c], eax
call edi
push dword [ebp - 0x80]
call dword [sym.imp.WS2_32.dll_ntohs]
movzx eax, ax
cmp eax, 0x18
jg 0x44af1f
je 0x44aed6
mov ecx, eax
sub ecx, ebx
je 0x44aecd
sub ecx, 9
je 0x44aec4
sub ecx, 0xc
je 0x44ae95
dec ecx
dec ecx
jne 0x44b0c3
push 0xc
lea eax, [ebp - 0x64]
push eax
push dword [esi + 0x6b4]
mov ecx, esi
call fcn.0044749a
test al, al
je 0x44a43d
push dword [ebp - 0x5c]
push dword [ebp - 0x60]
call fcn.00446f51
pop ecx
pop ecx
push dword [ebp - 0x64]
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], edx
call edi
push eax
push dword [ebp - 0x5c]
mov ecx, esi
push dword [ebp - 0x60]
mov dword [ebp - 0x64], eax
call fcn.00447d32
jmp 0x44af12
push dword [ebp - 0x2c]
lea eax, [ebp + 0x2200]
push eax
push dword [esi + 0x6b4]
mov ecx, esi
call fcn.0044749a
test al, al
je 0x44a43d
push bind
push 0xffffffffffffffff
mov ecx, esi
call fcn.00448467
jmp 0x44af12
mov ecx, esi
call fcn.004496dc
jmp 0x44af12
mov byte [ebp - 0x25], 1
jmp 0x44b04c
push 4
lea eax, [ebp - 0x34]
push eax
push dword [esi + 0x6b4]
mov ecx, esi
call fcn.0044749a
test al, al
je 0x44a43d
push dword [ebp - 0x34]
call edi
cmp eax, 0xffffffff
mov dword [ebp - 0x34], eax
jne 0x44af07
or eax, eax
mov ecx, bind
jmp 0x44af09
xor ecx, ecx
push ecx
push eax
mov ecx, esi
call fcn.004478d4
test al, al
je 0x44a43d
jmp 0x44b04c
mov ecx, eax
sub ecx, 0x1a
je 0x44af7d
dec ecx
je 0x44af44
sub ecx, 6
je 0x44b04c
sub ecx, 8
jne 0x44b0c3
mov ecx, esi
call fcn.004483f5
jmp 0x44af12
push 4
lea eax, [ebp - 0x30]
push eax
push dword [esi + 0x6b4]
mov ecx, esi
call fcn.0044749a
test al, al
je 0x44a43d
push dword [ebp - 0x30]
call edi
mov dword [ebp - 0x30], eax
mov dword [esi + 0x6a8], eax
mov eax, dword [ebp - 0x2c]
add eax, 0xfffffffc
push eax
mov ecx, esi
call fcn.00447bce
jmp 0x44af12
push 0x100
lea eax, [ebp - 0x24]
push eax
push dword [esi + 0x6b4]
mov ecx, esi
mov dword [ebp - 0x2c], ebx
call fcn.0044749a
test al, al
je 0x44a43d
lea eax, [ebp - 0x24]
push 0x2e
push eax
mov byte [ebp - 0x3c], bl
mov byte [ebp - 0x4c], bl
call fcn.0045aa40
mov edi, eax
cmp edi, ebx
pop ecx
pop ecx
je 0x44b02b
push str..ghs
push edi
call fcn.0046048c
test eax, eax
pop ecx
pop ecx
jne 0x44afda
lea eax, [ebp - 0x2c]
push eax
mov byte [ebp - 0x3c], 1
push 0x475fe0
add edi, 0xfffffffd
jmp 0x44b01d
push 0x476078
push edi
call fcn.0046048c
test eax, eax
pop ecx
pop ecx
jne 0x44b014
push 6
lea eax, [ebp - 0x24]
push str._MCCDR
push eax
call fcn.00457163
add esp, 0xc
test eax, eax
jne 0x44b014
lea eax, [ebp - 0x2c]
push eax
mov byte [ebp - 0x4c], 1
push 0x475fe0
add edi, 0xfffffffb
jmp 0x44b01d
lea eax, [ebp - 0x2c]
push eax
push 0x47c15c
push edi
call fcn.00454605
add esp, 0xc
cmp eax, 1
je 0x44b02e
mov dword [ebp - 0x2c], ebx
push dword [ebp - 0x4c]
mov ecx, esi
push dword [ebp - 0x3c]
push dword [ebp - 0x2c]
call fcn.00449be0
test al, al
je 0x44a43d
mov edi, dword [sym.imp.WS2_32.dll_ntohl]
call fcn.00419eca
test al, al
je 0x44ad95
cmp byte [ebp - 0x25], bl
je 0x44b151
push 4
lea eax, [ebp - 0x40]
push eax
push 0x80
push 0xffff
push dword [esi + 0x6b4]
mov dword [esi + 0x6a8], 0x64
mov word [ebp - 0x40], 1
mov word [ebp - 0x3e], 0x3c
call fcn.0044fdbe
or edi, 0xffffffff
add esp, 0x14
cmp eax, edi
je 0x44a4dc
push 1
push dword [esi + 0x6b4]
call fcn.0044fbda
cmp eax, edi
pop ecx
pop ecx
jne 0x44b0d4
call fcn.0044b271
push str.RML_shutdown_failed
jmp 0x44a473
push eax
push str.Unrecognized_file_command___d_
call fcn.0044707b
pop ecx
jmp 0x44a43c
push edi
push ebx
push 0x2000
lea eax, [ebp + 0x200]
push eax
push dword [esi + 0x6b4]
call fcn.0045011c
add esp, 0x14
cmp eax, edi
mov dword [ebp - 0x3c], eax
je 0x44b13c
call fcn.00419eca
test al, al
jne 0x44b105
cmp dword [ebp - 0x3c], ebx
jg 0x44b0d4
push 0x1388
push 1
mov ecx, esi
call fcn.0044722f
test al, al
je 0x44a43d
push edi
push dword [esi + 0x6b4]
call fcn.0045039b
cmp eax, edi
pop ecx
pop ecx
jne 0x44b14b
call fcn.0044b271
push str.RML_closesocket_failed
jmp 0x44a473
call fcn.0044b271
push str.RML_recv_failed
jmp 0x44a473
mov dword [esi + 0x6b4], edi
push dword [esi + 0x6a8]
push dword [esi + 0x6a4]
push dword [esi + 0x6a0]
call fcn.00419e05
mov al, byte [ebp - 0x25]
add esp, 0xc
mov ecx, dword [ebp + 0x2410]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004533e4
add ebp, 0x2414
leave
ret 0x54