Function at 0x425758
Capabilities:
Get local ipv4 addresses
Get socket information
Get socket status
Receive data
Receive data on socket
Resolve dns
Resolve function by parsing pe exports
Send data
Send data on socket

Disassembly:
sub esp, 0x4f4
push ebx
push ebp
push esi
mov esi, ecx
push edi
mov dword [esp + 0x24], esi
call fcn.0041c2de
push 0x17
mov bp, ax
lea edx, [esp + 0x17]
pop ecx
xor eax, eax
mov word [esp + 0x18], bp
cmp bp, cx
mov ecx, esi
sete al
xor ebx, ebx
push ebx
push 1
mov dword [esp + 0x40], eax
call fcn.0041bce7
test al, al
je 0x425a0f
mov al, byte [esp + 0x13]
test al, al
je 0x425a0f
push ebx
movzx eax, al
lea edx, [esp + 0x304]
push eax
mov ecx, esi
call fcn.0041bce7
test al, al
je 0x425a0f
movzx eax, byte [esp + 0x13]
jmp 0x4257d8
dec eax
lea ecx, [esp + 0x300]
add ecx, eax
cmp byte [ecx], bl
je 0x4257de
test eax, eax
jne 0x4257ca
mov ecx, ebx
push 5
pop eax
test ecx, ecx
mov edi, 0xff05
push ebx
cmove eax, edi
movzx eax, ax
push 2
mov dword [esp + 0x24], eax
pop eax
push eax
lea eax, [esp + 0x24]
push eax
push esi
call dword [sym.imp.WS2_32.dll_send]
push 2
pop ecx
cmp eax, ecx
jne 0x425a0f
cmp word [esp + 0x1c], di
jne 0x42581c
mov al, 1
jmp 0x425a11
xor ecx, ecx
mov byte [esp + 0x14], bl
push ecx
push 4
pop eax
push eax
lea edx, [esp + 0x4c]
mov dword [esp + 0x58], eax
mov ecx, esi
call fcn.0041bce7
test al, al
je 0x425a0f
cmp byte [esp + 0x44], 5
jne 0x425a0f
push 0x17
pop eax
cmp bp, ax
jne 0x425860
push eax
pop ebp
push 2
pop edx
mov dword [esp + 0x54], ebp
mov dword [esp + 0x58], edx
jmp 0x42586e
push 2
pop edx
push 0x17
pop ebp
mov dword [esp + 0x54], edx
mov dword [esp + 0x58], ebp
movzx eax, byte [esp + 0x47]
xor ecx, ecx
mov edi, ecx
mov dword [esp + 0x30], edi
sub eax, 1
je 0x4259ac
sub eax, edx
je 0x4258d5
sub eax, 1
jne 0x425a0f
push ecx
push 0x10
lea edx, [esp + 0xf0]
mov ecx, esi
call fcn.0041bce7
test al, al
je 0x425a0f
push 0x1c
pop ecx
call fcn.004185cd
mov edi, eax
mov dword [esp + 0x30], edi
test edi, edi
je 0x4259d2
lea eax, [esp + 0xe8]
mov word [edi], bp
push 0x10
push eax
lea eax, [edi + 8]
jmp 0x4259ec
push ecx
push 1
lea edx, [esp + 0x1b]
mov ecx, esi
call fcn.0041bce7
test al, al
je 0x425a0f
mov al, byte [esp + 0x13]
test al, al
je 0x425a0f
xor ecx, ecx
movzx eax, al
push ecx
push eax
lea edx, [esp + 0x408]
mov ecx, esi
call fcn.0041bce7
test al, al
je 0x425a0f
movzx eax, byte [esp + 0x13]
xor ecx, ecx
mov dword [esp + 0x40], ecx
mov byte [esp + eax + 0x400], cl
lea eax, [esp + 0x40]
push eax
push ecx
push ecx
lea eax, [esp + 0x40c]
push eax
call dword [sym.imp.WS2_32.dll_getaddrinfo]
test eax, eax
je 0x425949
push 4
pop eax
mov bl, al
jmp 0x4259d4
xor ecx, ecx
mov dl, cl
mov ecx, dword [esp + 0x40]
test ecx, ecx
je 0x425968
movzx eax, dl
mov eax, dword [esp + eax*4 + 0x54]
cmp dword [ecx + 4], eax
je 0x425984
mov ecx, dword [ecx + 0x1c]
test ecx, ecx
jne 0x42595c
inc dl
cmp dl, 2
jb 0x42594d
push 4
pop eax
mov bl, al
mov byte [esp + 0x14], bl
push dword [esp + 0x40]
call dword [sym.imp.WS2_32.dll_freeaddrinfo]
jmp 0x4259f2
mov edx, dword [ecx + 0x10]
mov ecx, dword [ecx + 0x18]
call fcn.00418653
mov edi, eax
mov dword [esp + 0x30], edi
test edi, edi
jne 0x42599d
mov bl, 1
jmp 0x425974
cmp word [edi], bp
jne 0x425978
xor eax, eax
mov dword [edi + 0x18], eax
mov dword [edi + 4], eax
jmp 0x425978
push ecx
push 4
pop eax
push eax
lea edx, [esp + 0x64]
mov ecx, esi
call fcn.0041bce7
test al, al
je 0x425a0f
push 0x10
pop ecx
call fcn.004185cd
mov edi, eax
mov dword [esp + 0x30], edi
test edi, edi
jne 0x4259da
mov bl, 1
mov byte [esp + 0x14], bl
jmp 0x4259f2
push 2
pop eax
push 4
mov word [edi], ax
pop eax
push eax
lea eax, [esp + 0x60]
push eax
lea eax, [edi + 4]
push eax
call fcn.0041863c
xor eax, eax
lea edx, [esp + 0x3c]
push eax
push 2
pop eax
push eax
mov ecx, esi
call fcn.0041bce7
test al, al
jne 0x425a1c
mov ecx, edi
call fcn.00418601
xor al, al
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4f4
ret
mov bh, 1
test bl, bl
jne 0x4260f2
mov ax, word [esp + 0x3c]
mov word [edi + 2], ax
movzx eax, byte [esp + 0x45]
sub eax, 1
je 0x42609d
sub eax, 1
je 0x425fbc
sub eax, 1
je 0x425a53
add bl, 7
jmp 0x4260ad
mov eax, 0x80
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
lea eax, [esp + 0x60]
push eax
lea eax, [esp + 0x6c]
push eax
push esi
call dword [sym.imp.WS2_32.dll_getsockname]
test eax, eax
jne 0x425fb5
lea eax, [esp + 0x64]
push eax
lea eax, [esp + 0x284]
push eax
push esi
call dword [sym.imp.WS2_32.dll_getpeername]
test eax, eax
jne 0x425fb5
mov word [esp + 0x6a], ax
cmp word [esp + 0x68], bp
jne 0x425aac
mov dword [esp + 0x80], eax
mov dword [esp + 0x6c], eax
lea ecx, [esp + 0x68]
call fcn.0041c187
mov dword [esp + 0x34], eax
cmp eax, 0xffffffff
je 0x425fb5
mov ecx, 0xffff
call fcn.004185cd
mov ebp, eax
test ebp, ebp
jne 0x425add
mov bl, 1
mov byte [esp + 0x14], bl
jmp 0x425fac
push dword [esp + 0x38]
mov edx, dword [esp + 0x38]
xor eax, eax
push eax
mov ecx, esi
call fcn.0042565c
cmp eax, 1
jne 0x425f94
or dword [esp + 0x20], 0xffffffff
xor ecx, ecx
or dword [esp + 0x104], 0xffffffff
push 2
pop eax
push ecx
mov dword [esp + 0xfc], eax
mov eax, dword [esp + 0x38]
push ecx
mov dword [esp + 0x108], eax
lea eax, [esp + 0x100]
push ecx
push eax
push ecx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x110], esi
call dword [sym.imp.WS2_32.dll_select]
test eax, eax
jle 0x425f89
mov edi, dword [esp + 0x34]
lea edx, [esp + 0xf8]
mov ecx, esi
call fcn.0041bc4b
test al, al
je 0x425b77
xor eax, eax
push eax
push 0xffff
push ebp
push esi
call dword [sym.imp.WS2_32.dll_recv]
test eax, eax
jle 0x425f85
lea edx, [esp + 0xf8]
mov dword [esp + 0x18], 0x80
mov ecx, edi
call fcn.0041bc4b
test al, al
je 0x425e68
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x6c]
push eax
xor eax, eax
push eax
push 0xffff
push ebp
push edi
call dword [sym.imp.WS2_32.dll_recvfrom]
mov edx, eax
mov dword [esp + 0x1c], edx
test edx, edx
jle 0x425f85
cmp edx, 6
jb 0x425e68
mov cx, word [esp + 0x68]
cmp word [esp + 0x280], cx
jne 0x425e68
push 2
pop eax
cmp cx, ax
jne 0x425bf4
mov eax, dword [esp + 0x284]
cmp eax, dword [esp + 0x6c]
jne 0x425e68
jmp 0x425c1a
push 0x17
pop eax
cmp cx, ax
jne 0x425c1a
push 0x10
lea edx, [esp + 0x74]
lea ecx, [esp + 0x28c]
call fcn.0041866f
test eax, eax
jne 0x425e68
mov edx, dword [esp + 0x1c]
cmp byte [ebp + 2], 0
jne 0x425e68
xor eax, eax
cmp word [ebp], ax
jne 0x425e68
cmp dword [esp + 0x24], eax
jne 0x425c73
push dword [esp + 0x18]
lea eax, [esp + 0x6c]
push eax
lea eax, [esp + 0x208]
push eax
call fcn.0041863c
push 0x17
pop eax
cmp word [esp + 0x200], ax
jne 0x425c69
xor eax, eax
mov dword [esp + 0x218], eax
mov dword [esp + 0x204], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x24], eax
xor eax, eax
push 0x80
push eax
lea eax, [esp + 0x70]
push eax
call fcn.0041869b
movzx eax, byte [ebp + 3]
sub eax, 1
je 0x425d95
push 2
pop ecx
sub eax, ecx
je 0x425cd2
sub eax, 1
jne 0x425e68
push 0x16
pop eax
cmp edx, eax
jle 0x425e68
push 0x17
pop eax
mov word [esp + 0x68], ax
lea eax, [ebp + 4]
push 0x10
push eax
lea eax, [esp + 0x78]
mov dword [esp + 0x20], 0x1c
push eax
call fcn.0041863c
push 0x14
jmp 0x425dc2
mov al, byte [ebp + 4]
test al, al
je 0x425e68
movzx edx, al
lea eax, [edx + 7]
cmp dword [esp + 0x1c], eax
jle 0x425e68
push edx
lea eax, [ebp + 5]
push eax
lea eax, [esp + 0x308]
push eax
call fcn.0041863c
xor ecx, ecx
lea eax, [esp + 0x48]
push eax
push ecx
mov byte [esp + edx + 0x308], cl
lea eax, [esp + 0x308]
push ecx
add edx, 5
mov dword [esp + 0x54], ecx
push eax
mov dword [esp + 0x5c], edx
call dword [sym.imp.WS2_32.dll_getaddrinfo]
test eax, eax
jne 0x425e68
mov dl, al
mov ecx, dword [esp + 0x48]
test ecx, ecx
je 0x425d4d
movzx eax, dl
mov eax, dword [esp + eax*4 + 0x54]
cmp dword [ecx + 4], eax
je 0x425d59
mov ecx, dword [ecx + 0x1c]
test ecx, ecx
jne 0x425d41
inc dl
cmp dl, 2
jb 0x425d32
jmp 0x425e68
mov eax, dword [ecx + 0x10]
push eax
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x6c]
push dword [ecx + 0x18]
push eax
call fcn.0041863c
push 0x17
pop eax
cmp word [esp + 0x68], ax
jne 0x425d85
xor eax, eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x6c], eax
push dword [esp + 0x48]
call dword [sym.imp.WS2_32.dll_freeaddrinfo]
mov ecx, dword [esp + 0x4c]
jmp 0x425dc3
cmp edx, 0xa
jle 0x425e68
push 2
pop eax
push 4
mov word [esp + 0x6c], ax
pop eax
push eax
lea eax, [ebp + 4]
mov dword [esp + 0x1c], 0x10
push eax
lea eax, [esp + 0x74]
push eax
call fcn.0041863c
push 8
pop ecx
mov ax, word [ecx + ebp]
mov word [esp + 0x6a], ax
push 2
pop eax
add ecx, eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x4c], ecx
cmp eax, 0xffffffff
jne 0x425e38
push 0x80
xor eax, eax
push eax
lea eax, [esp + 0x308]
push eax
call fcn.0041869b
mov ax, word [esp + 0x68]
lea ecx, [esp + 0x300]
mov word [esp + 0x300], ax
movzx eax, ax
mov dword [esp + 0x28], eax
call fcn.0041c187
mov dword [esp + 0x20], eax
cmp eax, 0xffffffff
je 0x425f85
push 0xa
pop ecx
push 0x17
pop edx
cmp dword [esp + 0x28], edx
push 0x16
pop edx
cmove ecx, edx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x1c]
cmp edx, ecx
jle 0x425e75
movzx eax, word [esp + 0x68]
cmp dword [esp + 0x28], eax
jne 0x425e68
push dword [esp + 0x18]
lea eax, [esp + 0x6c]
sub edx, ecx
push eax
xor eax, eax
push eax
push edx
lea eax, [ecx + ebp]
push eax
push dword [esp + 0x34]
call dword [sym.imp.WS2_32.dll_sendto]
mov eax, dword [esp + 0x20]
cmp eax, 0xffffffff
je 0x425f3c
lea edx, [esp + 0xf8]
mov ecx, eax
call fcn.0041bc4b
test al, al
je 0x425f3c
mov edx, dword [esp + 0x2c]
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x6c]
push eax
xor eax, eax
lea ecx, [edx + ebp]
push eax
mov eax, 0xffff
sub eax, edx
push eax
push ecx
push dword [esp + 0x34]
call dword [sym.imp.WS2_32.dll_recvfrom]
mov edx, eax
test edx, edx
jg 0x425ec3
movzx ecx, word [esp + 0x68]
cmp dword [esp + 0x28], ecx
jne 0x425f3c
xor eax, eax
mov word [ebp], ax
mov byte [ebp + 2], al
inc eax
push 0x17
pop ecx
cmp word [esp + 0x68], cx
cmove eax, dword [esp + 0x50]
mov byte [ebp + 3], al
mov eax, dword [esp + 0x28]
cmp eax, ecx
jne 0x425eed
lea eax, [esp + 0x70]
push 0x10
jmp 0x425efa
push 2
pop ecx
cmp eax, ecx
jne 0x425f3c
lea eax, [esp + 0x6c]
push 4
pop ecx
push ecx
push eax
lea eax, [ebp + 4]
push eax
call fcn.0041863c
push 2
pop eax
push eax
lea eax, [esp + 0x6e]
push eax
mov eax, dword [esp + 0x34]
add eax, 0xfffffffe
add eax, ebp
push eax
call fcn.0041863c
push dword [esp + 0x24]
lea eax, [esp + 0x204]
push eax
xor eax, eax
push eax
mov eax, dword [esp + 0x38]
add eax, edx
push eax
push ebp
push edi
call dword [sym.imp.WS2_32.dll_sendto]
mov ecx, dword [esp + 0x20]
xor eax, eax
push 2
cmp ecx, 0xffffffff
mov dword [esp + 0x108], ecx
pop edx
setne al
mov dword [esp + 0xfc], esi
xor ecx, ecx
mov dword [esp + 0x100], edi
push ecx
add eax, edx
push ecx
mov dword [esp + 0x100], eax
lea eax, [esp + 0x100]
push ecx
push eax
push ecx
call dword [sym.imp.WS2_32.dll_select]
test eax, eax
jg 0x425b4d
mov edi, dword [esp + 0x30]
mov ecx, dword [esp + 0x20]
call fcn.0041c10a
jmp 0x425fa5
cmp eax, 0xffffffff
jne 0x425fa1
mov bl, 1
mov byte [esp + 0x14], bl
jmp 0x425fa5
xor eax, eax
mov bh, al
mov ecx, ebp
call fcn.00418601
mov ecx, dword [esp + 0x34]
jmp 0x4260ed
mov bl, 1
jmp 0x4260ad
xor eax, eax
mov word [edi + 2], ax
cmp word [edi], bp
jne 0x425fd5
push 0x10
push eax
lea eax, [edi + 8]
push eax
call fcn.0041869b
jmp 0x425fd8
mov dword [edi + 4], eax
xor edx, edx
mov ecx, edi
inc edx
call fcn.0041be4c
mov dword [esp + 0x1c], eax
cmp eax, 0xffffffff
je 0x4260ab
push dword [esp + 0x38]
xor ecx, ecx
mov edx, eax
push ecx
mov ecx, esi
call fcn.0042565c
mov ebp, eax
cmp ebp, 1
jne 0x426080
push ecx
lea eax, [esp + 0x28]
push eax
sub esp, 0xc
lea ecx, [esp + 0x30]
call fcn.0041c0de
mov ecx, dword [esp + 0x1c]
mov ebp, eax
call fcn.0041c10a
cmp ebp, 0xffffffff
jne 0x426037
mov esi, dword [esp + 0x24]
mov bl, 1
mov byte [esp + 0x14], bl
jmp 0x4260f2
mov ecx, ebp
call fcn.0041c165
mov esi, dword [esp + 0x24]
xor eax, eax
push 0x17
pop ecx
cmp word [esp + 0x18], cx
mov edx, ebp
push 2
pop ecx
sete al
add eax, ecx
mov ecx, esi
push eax
xor eax, eax
push eax
call fcn.0042565c
mov dword [esp + 0x50], eax
cmp eax, 1
jne 0x426073
mov edx, ebp
mov ecx, esi
call fcn.0041bf5d
mov ecx, ebp
call fcn.0041c10a
mov ebp, dword [esp + 0x50]
jmp 0x426089
mov ecx, dword [esp + 0x1c]
call fcn.0041c10a
cmp ebp, 0xffffffff
je 0x425fb5
cmp ebp, 1
je 0x4260f2
xor eax, eax
mov bh, al
jmp 0x4260f2
mov ecx, edi
call fcn.0041bd61
mov ebp, eax
cmp ebp, 0xffffffff
jne 0x4260b3
mov bl, 5
mov byte [esp + 0x14], bl
jmp 0x4260f2
mov ecx, ebp
call fcn.0041c165
push dword [esp + 0x38]
xor eax, eax
mov edx, ebp
push eax
mov ecx, esi
call fcn.0042565c
cmp eax, 1
jne 0x4260da
mov edx, ebp
mov ecx, esi
call fcn.0041bf5d
jmp 0x4260eb
cmp eax, 0xffffffff
jne 0x4260e7
mov bl, 1
mov byte [esp + 0x14], bl
jmp 0x4260eb
xor eax, eax
mov bh, al
mov ecx, ebp
call fcn.0041c10a
mov ecx, edi
call fcn.00418601
cmp bh, 1
jne 0x426119
test bl, bl
je 0x426119
push dword [esp + 0x38]
or edx, 0xffffffff
mov ecx, esi
push dword [esp + 0x18]
call fcn.0042565c
test eax, eax
setne bh
mov al, bh
jmp 0x425a11