Function at 0x10045fa
Capabilities:
Connect socket
Connect udp socket
Create udp socket
Get common file path
Get local ipv4 addresses
Get socket information
Initialize winsock library
Terminate process

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x80c
mov eax, dword [0x100a370]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [ebp + 0xc]
push edi
xor ebx, ebx
push ebx
push ebx
xor edi, edi
inc edi
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_HeapSetInformation]
push ebx
call dword [sym.imp.KERNEL32.dll_SetThreadUILanguage]
push 0x100eee0
push 0x202
call dword [sym.imp.WS2_32.dll_WSAStartup]
cmp eax, ebx
je 0x1004657
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x2772
call fcn.01005b70
push edi
call dword [sym.imp.msvcrt.dll_exit]
push 4
push ebx
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov dword [0x100b8bc], eax
cmp eax, ebx
jne 0x1004680
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
push 0x2710
push eax
call fcn.01005f9f
pop ecx
pop ecx
jmp 0x1004650
push 0x1001590
push 0x1001334
call dword [sym.imp.WS2_32.dll_getservbyname]
cmp eax, ebx
jne 0x100469e
push 0x15
call dword [sym.imp.WS2_32.dll_htons]
jmp 0x10046a2
mov ax, word [eax + 8]
mov word [0x100c2e8], ax
mov eax, 0x2000
push 0x100b940
mov dword [0x100c368], edi
mov dword [0x100c78c], edi
mov dword [0x100c364], edi
mov dword [0x100c2d4], ebx
mov dword [0x100c280], ebx
mov dword [0x100c2c8], 0xffff
mov dword [0x100c794], ebx
mov dword [0x100c798], eax
mov dword [0x100c2e0], eax
mov dword [0x100eec0], 3
mov dword [0x100c2d0], ebx
mov dword [0x100abcc], ebx
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
dec dword [ebp + 8]
add esi, 4
mov dword [ebp - 0x804], esi
jmp 0x1004ac4
mov eax, dword [ebp - 0x804]
mov esi, dword [eax]
mov al, byte [esi]
cmp al, 0x2d
je 0x1004aaf
cmp al, 0x2f
je 0x1004aaf
push dword [sym.imp.msvcrt.dll__iob]
call dword [sym.imp.msvcrt.dll__fileno]
push eax
call dword [sym.imp.msvcrt.dll__isatty]
mov esi, dword [sym.imp.msvcrt.dll__mbscpy]
push 0x10012d0
push 0x100c340
mov dword [0x100c788], eax
call esi
push 0x100158c
push 0x100c2a0
mov dword [0x100c2c4], edi
call esi
add esp, 0x18
mov dword [0x100c2dc], 8
cmp dword [0x100c788], ebx
je 0x1004788
inc dword [0x100c790]
dec dword [0x100eec4]
lea eax, [ebp - 0x7d4]
push eax
push 0x7d0
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
cmp eax, ebx
je 0x1004ad2
lea eax, [ebp - 0x7d4]
mov dword [0x100ba84], eax
jmp 0x1004adc
movsx eax, al
cmp eax, 0x6e
jg 0x10048aa
je 0x100489f
sub eax, 0x41
je 0x1004894
sub eax, 0x20
je 0x1004889
dec eax
je 0x1004817
dec eax
dec eax
je 0x1004806
sub eax, 3
je 0x10047fb
dec eax
dec eax
jne 0x1004ae1
mov dword [0x100c78c], ebx
jmp 0x1004aaf
mov dword [0x100c368], ebx
jmp 0x1004aaf
or dword [0x100c2d8], edi
inc dword [0x100c274]
jmp 0x1004aaf
xor eax, eax
inc esi
mov dword [0x100eec0], eax
cmp byte [esi], 0x3a
jne 0x1004ae1
inc esi
mov cl, byte [esi]
test cl, cl
je 0x1004ae1
jmp 0x1004858
cmp cl, 0x39
jg 0x100485d
mov edx, eax
imul edx, edx, 0xa
movsx ecx, cl
lea ecx, [edx + ecx - 0x30]
cmp ecx, eax
jl 0x1004ae1
mov eax, ecx
inc esi
mov dword [0x100eec0], eax
mov cl, byte [esi]
cmp cl, 0x30
jge 0x1004835
mov cl, byte [esi]
cmp cl, 0x20
je 0x100487b
cmp cl, 9
je 0x100487b
test cl, cl
je 0x100487b
cmp cl, 0xa
je 0x100487b
cmp cl, 0xd
jne 0x1004ae1
dec esi
cmp eax, ebx
jle 0x1004ae1
jmp 0x1004aaf
mov dword [0x100c2d0], edi
jmp 0x1004aaf
mov dword [0x100abcc], edi
jmp 0x1004aaf
mov dword [0x100c364], ebx
jmp 0x1004aaf
sub eax, 0x72
je 0x1004a40
dec eax
je 0x10049c7
sub eax, 3
je 0x10049bb
dec eax
je 0x1004943
dec eax
jne 0x1004ae1
inc esi
mov dword [0x100c798], eax
cmp byte [esi], 0x3a
jne 0x1004ae1
inc esi
mov cl, byte [esi]
test cl, cl
je 0x1004ae1
jmp 0x100490c
cmp cl, 0x39
jg 0x1004911
mov edx, eax
imul edx, edx, 0xa
movsx ecx, cl
lea ecx, [edx + ecx - 0x30]
cmp ecx, eax
jl 0x1004ae1
mov eax, ecx
inc esi
mov dword [0x100c798], eax
mov cl, byte [esi]
cmp cl, 0x30
jge 0x10048e9
mov cl, byte [esi]
cmp cl, 0x20
je 0x100492f
cmp cl, 9
je 0x100492f
test cl, cl
je 0x100492f
cmp cl, 0xa
je 0x100492f
cmp cl, 0xd
jne 0x1004ae1
dec esi
cmp eax, ebx
jl 0x1004ae1
push eax
push 0x1001570
jmp 0x1004aa7
xor eax, eax
inc esi
mov dword [0x100c2c8], eax
cmp byte [esi], 0x3a
jne 0x1004ae1
inc esi
mov cl, byte [esi]
test cl, cl
je 0x1004ae1
jmp 0x1004984
cmp cl, 0x39
jg 0x1004989
mov edx, eax
imul edx, edx, 0xa
movsx ecx, cl
lea ecx, [edx + ecx - 0x30]
cmp ecx, eax
jl 0x1004ae1
mov eax, ecx
inc esi
mov dword [0x100c2c8], eax
mov cl, byte [esi]
cmp cl, 0x30
jge 0x1004961
mov cl, byte [esi]
cmp cl, 0x20
je 0x10049a7
cmp cl, 9
je 0x10049a7
test cl, cl
je 0x10049a7
cmp cl, 0xa
je 0x10049a7
cmp cl, 0xd
jne 0x1004ae1
dec esi
cmp eax, ebx
jle 0x1004ae1
mov dword [0x100c794], edi
jmp 0x1004aaf
or dword [0x100c790], 0xffffffff
jmp 0x1004aaf
inc esi
mov dword [0x100c2d4], edi
cmp byte [esi], 0x3a
jne 0x1004ae1
inc esi
mov eax, esi
mov dword [0x100c280], eax
cmp byte [esi], bl
je 0x1004ae1
inc esi
cmp byte [esi], bl
jne 0x10049e7
push 0x100156c
push eax
dec esi
call dword [sym.imp.msvcrt.dll_fopen]
pop ecx
pop ecx
mov dword [0x100c2c0], eax
cmp eax, ebx
jne 0x1004aaf
push dword [0x100c280]
call fcn.0100565b
mov esi, eax
cmp esi, ebx
je 0x1004ae1
mov eax, dword [sym.imp.msvcrt.dll__iob]
push esi
add eax, 0x40
push 0x2713
push eax
call fcn.01005f9f
add esp, 0xc
push esi
call dword [sym.imp.KERNEL32.dll_LocalFree]
jmp 0x1004ae1
xor eax, eax
inc esi
mov dword [0x100c2e0], eax
cmp byte [esi], 0x3a
jne 0x1004ae1
inc esi
mov cl, byte [esi]
test cl, cl
je 0x1004ae1
jmp 0x1004a7d
cmp cl, 0x39
jg 0x1004a82
mov edx, eax
imul edx, edx, 0xa
movsx ecx, cl
lea ecx, [edx + ecx - 0x30]
cmp ecx, eax
jl 0x1004ae1
mov eax, ecx
inc esi
mov dword [0x100c2e0], eax
mov cl, byte [esi]
cmp cl, 0x30
jge 0x1004a5e
mov cl, byte [esi]
cmp cl, 0x20
je 0x1004a9c
cmp cl, 9
je 0x1004a9c
test cl, cl
je 0x1004a9c
cmp cl, 0xa
je 0x1004a9c
cmp cl, 0xd
jne 0x1004ae1
dec esi
cmp eax, ebx
jl 0x1004ae1
push eax
push 0x1001550
call dword [sym.imp.msvcrt.dll_printf]
pop ecx
pop ecx
inc esi
mov al, byte [esi]
test al, al
jne 0x10047b8
dec dword [ebp + 8]
add dword [ebp - 0x804], 4
cmp dword [ebp + 8], ebx
jg 0x1004717
jmp 0x1004731
mov dword [0x100ba84], 0x1001338
cmp dword [ebp + 8], edi
jle 0x1004afd
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
push 0x2712
push eax
call fcn.01005f9f
pop ecx
pop ecx
push 2
jmp 0x1004651
cmp dword [ebp + 8], ebx
jle 0x1004b2d
push ebx
push 0x100c300
call sub.msvcrt.dll__setjmp3
pop ecx
pop ecx
test eax, eax
je 0x1004b19
push ebx
jmp 0x1004651
mov eax, dword [ebp - 0x804]
add eax, 0xfffffffc
push eax
mov eax, dword [ebp + 8]
inc eax
push eax
call fcn.01001a1e
push ebx
mov ebx, dword [sym.imp.WS2_32.dll_socket]
push 2
push 2
call ebx
mov esi, dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [0x100a368], eax
cmp eax, 0xffffffff
je 0x1004c29
xor eax, eax
lea edi, [ebp - 0x7e4]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
push 2
stosd dword es:[edi], eax
pop eax
push 0
mov dword [ebp - 0x80c], 0x10
mov word [ebp - 0x7e4], ax
call dword [sym.imp.WS2_32.dll_htons]
push 0x7f000001
mov word [ebp - 0x7e2], ax
call dword [sym.imp.WS2_32.dll_htonl]
mov dword [ebp - 0x7e0], eax
push 0x10
lea eax, [ebp - 0x7e4]
push eax
push dword [0x100a368]
call dword [sym.imp.WS2_32.dll_bind]
cmp eax, 0xffffffff
jne 0x1004bc8
call esi
push eax
push 0x275a
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
push eax
call fcn.01005f9f
add esp, 0xc
push 3
jmp 0x1004651
xor eax, eax
lea edi, [ebp - 0x7e4]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
lea eax, [ebp - 0x80c]
push eax
lea eax, [ebp - 0x7e4]
push eax
push dword [0x100a368]
call dword [sym.imp.WS2_32.dll_getsockname]
cmp eax, 0xffffffff
jne 0x1004c01
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push 0x275d
jmp 0x1004bb0
push 0x10
lea eax, [ebp - 0x7e4]
push eax
push dword [0x100a368]
call dword [sym.imp.WS2_32.dll_connect]
cmp eax, 0xffffffff
jne 0x1004c3f
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push 0x275c
jmp 0x1004bb0
call esi
cmp eax, 0x273f
je 0x1004c3f
call esi
push eax
push 0x2758
jmp 0x1004bb0
push 0
push 2
push 0x17
call ebx
mov dword [0x100a36c], eax
cmp eax, 0xffffffff
je 0x1004d0a
push 0x1c
pop ebx
push 7
pop ecx
xor eax, eax
push 0x17
lea edi, [ebp - 0x800]
rep stosd dword es:[edi], eax
pop eax
push 0
mov dword [ebp - 0x808], ebx
mov word [ebp - 0x800], ax
call dword [sym.imp.WS2_32.dll_htons]
mov word [ebp - 0x7fe], ax
xor eax, eax
lea edi, [ebp - 0x7f8]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
push ebx
lea eax, [ebp - 0x800]
push eax
push dword [0x100a36c]
mov byte [ebp - 0x7e9], 1
call dword [sym.imp.WS2_32.dll_bind]
cmp eax, 0xffffffff
jne 0x1004cb7
call esi
jmp 0x1004baa
push 7
pop ecx
xor eax, eax
lea edi, [ebp - 0x800]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x808]
push eax
lea eax, [ebp - 0x800]
push eax
push dword [0x100a36c]
call dword [sym.imp.WS2_32.dll_getsockname]
cmp eax, 0xffffffff
jne 0x1004cea
call esi
jmp 0x1004bf9
push ebx
lea eax, [ebp - 0x800]
push eax
push dword [0x100a36c]
call dword [sym.imp.WS2_32.dll_connect]
cmp eax, 0xffffffff
jne 0x1004d17
call esi
jmp 0x1004c21
call esi
cmp eax, 0x273f
jne 0x1004c32
cmp dword [0x100a368], 0xffffffff
jne 0x1004d2d
cmp dword [0x100a36c], 0xffffffff
je 0x1004c32
push 1
push 0x1004474
call dword [sym.imp.KERNEL32.dll_SetConsoleCtrlHandler]
push 0
push 0x100c300
call sub.msvcrt.dll__setjmp3
mov esi, eax
neg esi
pop ecx
sbb esi, esi
pop ecx
inc esi
call fcn.010043a2
push esi
call fcn.01004492
int3