Function at 0x429bf0
Capabilities:
Contain obfuscated stackstrings
Resolve function by parsing pe exports
Send data
Send data on socket
Set socket configuration

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x644
mov eax, dword [esp + 0x658]
cmp eax, 0xe
jb 0x42a812
movzx esi, word [edx + 0xc]
rol si, 8
movzx esi, si
cmp esi, 0x806
je 0x429d67
cmp esi, 0x800
jne 0x42a812
mov dword [esp], ecx
add eax, 0xfffffff2
pxor xmm0, xmm0
movdqu xmmword [esp + 0x2c], xmm0
mov dword [esp + 0x3c], 0
movdqu xmmword [esp + 0x40], xmm0
mov dword [esp + 0x50], 0
cmp eax, 0x14
jb 0x42a812
movzx ecx, byte [edx + 0x15]
movzx esi, byte [edx + 0x14]
and esi, 0x3f
shl esi, 8
or si, cx
jne 0x42a812
movzx ecx, byte [edx + 0x11]
movzx ebx, byte [edx + 0x10]
shl ebx, 8
or ebx, ecx
cmp ebx, eax
ja 0x42a812
lea eax, [edx + 0xe]
mov dword [esp + 0xc], eax
movzx edi, byte [edx + 0xe]
shl edi, 2
and edi, 0x3c
mov eax, dword [edx + 0x1a]
mov dword [esp + 0x44], eax
mov ebp, dword [edx + 0x1e]
mov dword [esp + 0x30], ebp
movzx edx, byte [edx + 0x17]
cmp edx, 1
je 0x429edd
cmp edx, 0x11
je 0x429e17
cmp edx, 6
jne 0x42a812
mov ecx, dword [esp + 0xc]
movzx eax, word [ecx + edi]
rol ax, 8
mov word [esp + 0x42], ax
movzx eax, word [ecx + edi + 2]
rol ax, 8
mov word [esp + 0x2e], ax
mov eax, dword [ecx + edi + 4]
mov dword [esp + 8], eax
mov eax, dword [ecx + edi + 8]
mov dword [esp + 0x18], eax
movzx eax, byte [ecx + edi + 0xc]
shr eax, 2
and eax, 0x3c
mov dword [esp + 0x14], eax
movzx eax, byte [ecx + edi + 0xd]
mov dword [esp + 0x24], eax
movzx edx, word [ecx + edi + 0xe]
mov ecx, 1
xor eax, eax
mov ebp, dword [esp]
lock cmpxchg dword [ebp], ecx
mov word [esp + 4], dx
jne 0x42aaaa
mov dword [ebp + 4], str.tap_user.c_577
movzx eax, word [esp + 0x2e]
shl eax, 0x10
movzx edx, word [esp + 0x42]
or edx, eax
cmp word [esp + 0x2c], 1
mov ecx, dword [esp + 0x30]
mov esi, dword [esp + 0x44]
jne 0x42a0f4
add ecx, edx
add ecx, esi
add ecx, dword [esp + 0x38]
add ecx, dword [esp + 0x4c]
jmp 0x42a0f8
add eax, 0xfffffff2
cmp eax, 0x1c
jb 0x42a812
movzx eax, word [edx + 0x14]
rol ax, 8
cmp ax, 1
jne 0x42a812
movzx eax, word [edx + 0x10]
rol ax, 8
movzx eax, ax
cmp eax, 0x800
jne 0x42a812
mov eax, dword [edx + 0x1c]
cmp eax, dword [edx + 0x26]
je 0x42a812
movzx eax, word [ecx + 0x50]
mov word [esp + 0x5c], ax
mov eax, dword [ecx + 0x4c]
mov dword [esp + 0x58], eax
mov dword [esp + 0x5e], 0xde970800
mov word [esp + 0x62], 0xdec0
movq xmm0, qword [0x438480]
movq qword [esp + 0x64], xmm0
mov word [esp + 0x6c], 0x200
mov dword [esp + 0x6e], 0xde970800
mov word [esp + 0x72], 0xdec0
mov eax, dword [edx + 0x26]
mov dword [esp + 0x74], eax
mov edx, dword [ecx + 0x4c]
mov dword [esp + 0x78], edx
movzx edx, word [ecx + 0x50]
mov word [esp + 0x7c], dx
mov dword [esp + 0x7e], eax
lea eax, [esp + 0x58]
push 0x2a
push eax
push dword [ecx + 8]
call dword [ecx + 0xc]
jmp 0x42a80f
sub ebx, edi
cmp ebx, 8
jb 0x42a812
mov ecx, dword [esp + 0xc]
add ecx, edi
movzx eax, word [ecx]
rol ax, 8
mov word [esp + 0x42], ax
movzx eax, word [ecx + 2]
rol ax, 8
mov word [esp + 0x2e], ax
mov dword [esp + 0xc], ecx
movzx ecx, word [ecx + 4]
rol cx, 8
movzx eax, cx
cmp ebx, eax
jb 0x42a812
add ecx, 0xfffffff8
mov dword [esp + 0x18], ecx
mov ecx, 1
xor eax, eax
mov edi, dword [esp]
lock cmpxchg dword [edi], ecx
jne 0x42aabf
mov dword [edi + 4], str.tap_user.c_410
mov eax, dword [esp + 0xc]
add eax, 8
mov dword [esp + 4], eax
lea eax, [edi + 0x14]
mov dword [esp + 0x1c], eax
movzx eax, word [esp + 0x42]
mov ebx, eax
shl ebx, 0x15
mov dword [esp + 8], eax
add eax, ebx
shr ebx, 0x11
xor ebx, eax
mov eax, dword [edi + 0x14]
mov ebp, dword [edi + 0x18]
mov esi, 0xff
mov dword [esp + 0x24], ebx
mov ecx, ebx
and ecx, ebp
mov edi, dword [eax + ecx*8 + 4]
mov edx, dword [esp + 8]
cmp dword [eax + ecx*8], edx
je 0x429ffa
sub esi, 1
setb dl
test edi, edi
je 0x42a002
inc ebx
test dl, dl
je 0x429eb0
jmp 0x42a002
sub ebx, edi
mov dword [esp + 8], ecx
lea ecx, [ebx - 4]
cmp ecx, 0x5af
ja 0x42a812
mov ecx, dword [esp + 0xc]
add ecx, edi
mov esi, ecx
movzx ecx, word [ecx]
rol cx, 8
movzx ecx, cx
cmp ecx, 0x800
jne 0x42a812
mov edx, dword [esp]
movzx ecx, word [edx + 0x50]
mov word [esp + 0x5c], cx
mov edi, edx
mov ecx, dword [edx + 0x4c]
mov dword [esp + 0x58], ecx
mov dword [esp + 0x5e], 0xde970800
mov word [esp + 0x62], 0xdec0
mov dword [esp + 0x64], 0x450008
lea ecx, [ebx + 0x14]
mov byte [esp + 0x69], cl
mov byte [esp + 0x68], ch
mov dword [esp + 0x6a], 0x400000
mov word [esp + 0x6e], 0x140
mov dword [esp + 0x72], ebp
mov dword [esp + 0x76], eax
mov ecx, ebp
shr ecx, 0x18
mov edx, eax
rol dx, 8
movzx edx, dx
add edx, ecx
mov ecx, eax
shr ecx, 0x18
shr eax, 8
and eax, 0xff00
add eax, ecx
add eax, ebx
add eax, edx
mov ecx, ebp
shr ebp, 8
and ebp, 0xff00
add eax, ebp
rol cx, 8
movzx ecx, cx
lea eax, [ecx + eax + 0x1c514]
movzx ecx, ax
shr eax, 0x10
add ecx, eax
mov eax, ecx
shr eax, 0x10
add eax, ecx
not eax
mov byte [esp + 0x71], al
mov byte [esp + 0x70], ah
lea eax, [esp + 0x7a]
push ebx
push esi
push eax
call sub.MSVCR70.dll_memcpy
add esp, 0xc
mov ecx, ebx
and ecx, 0x7fe
mov dword [esp + 0x7a], 0
je 0x42a6c5
lea ebp, [ecx - 1]
shr ebp, 1
inc ebp
mov edx, ebp
and edx, 3
cmp ecx, 7
jae 0x42a731
mov esi, 0xffff
xor edi, edi
jmp 0x42a7a7
test edi, edi
jne 0x42a422
cmp word [esp + 0x2e], 0x43
jne 0x42a018
mov eax, dword [esp + 0x44]
bswap eax
test eax, eax
je 0x42a4ac
mov ecx, 0x43af7e
call fcn.0042e350
test eax, eax
je 0x42a3b0
mov esi, eax
mov eax, dword [eax + 0xc]
mov dword [esp + 0x58], 1
lea ecx, [esp + 0x58]
push ecx
push 0x8004667e
push eax
call dword [sym.imp.WS2_32.dll_ioctlsocket]
push 0x20
push 1
call sub.MSVCR70.dll_calloc
add esp, 8
test eax, eax
je 0x42aad0
mov edi, eax
mov dword [esp + 0xc], esi
mov dword [eax], esi
mov eax, dword [esp + 0x50]
mov dword [edi + 0x18], eax
movq xmm0, qword [esp + 0x40]
movq xmm1, qword [esp + 0x48]
movq qword [edi + 0x10], xmm1
movq qword [edi + 8], xmm0
mov eax, dword [esp]
mov ecx, dword [eax + 0x14]
mov edx, dword [eax + 0x18]
mov esi, 0x100
mov ebp, dword [esp + 0x24]
mov ebx, ebp
and ebx, edx
mov eax, dword [esp + 8]
cmp dword [ecx + ebx*8], eax
lea eax, [ecx + ebx*8 + 4]
je 0x42a3f4
cmp dword [eax], 0
je 0x42a3ff
lea ebx, [ebp + 1]
and ebx, edx
mov eax, dword [esp + 8]
cmp dword [ecx + ebx*8], eax
lea eax, [ecx + ebx*8 + 4]
je 0x42a3f4
cmp dword [eax], 0
je 0x42a3ff
add ebp, 2
add esi, 0xfffffffe
jne 0x42a093
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 8]
push edi
call fcn.00402e00
mov esi, dword [esp + 4]
add esp, 4
mov edx, dword [edi]
jmp 0x42a414
add ecx, edx
add ecx, esi
add dword [esp + 0xc], edi
sub ebx, edi
mov dword [esp + 0x1c], ebx
mov eax, dword [esp + 8]
bswap eax
mov dword [esp + 8], eax
mov eax, dword [esp + 0x18]
bswap eax
mov dword [esp + 0x18], eax
rol word [esp + 4], 8
mov eax, ecx
shl eax, 0x15
xor eax, ecx
mov edx, eax
shr edx, 0x11
xor edx, eax
mov edi, dword [ebp + 0x24]
mov ebp, dword [ebp + 0x28]
mov esi, 0xff
nop word cs:[eax + eax]
nop
mov eax, edx
and eax, ebp
mov ebx, dword [edi + eax*8 + 4]
cmp dword [edi + eax*8], ecx
je 0x42a165
sub esi, 1
setb al
test ebx, ebx
je 0x42a2b3
inc edx
test al, al
je 0x42a140
jmp 0x42a2b3
test ebx, ebx
je 0x42a2b3
mov eax, dword [ebx + 8]
test eax, eax
je 0x42a2b3
mov edx, dword [ebx]
xor ebp, ebp
movdqu xmm0, xmmword [esp + 0x40]
movd xmm1, dword [esp + 0x50]
jmp 0x42a199
inc ebp
cmp ebp, eax
jae 0x42a2b3
mov edi, dword [edx + ebp*4]
movdqu xmm2, xmmword [edi + 8]
pcmpeqb xmm2, xmm0
movd xmm3, dword [edi + 0x18]
pcmpeqb xmm3, xmm1
pand xmm3, xmm2
pmovmskb ecx, xmm3
cmp ecx, 0xffff
jne 0x42a190
mov ecx, dword [edi]
lea esi, [ecx + 0x10]
test ecx, ecx
cmove esi, ecx
movdqu xmm2, xmmword [esi]
movdqu xmm3, xmmword [esp + 0x2c]
pcmpeqb xmm3, xmm2
movd xmm2, dword [esi + 0x10]
movd xmm4, dword [esp + 0x3c]
pcmpeqb xmm4, xmm2
pand xmm4, xmm3
pmovmskb ecx, xmm4
cmp ecx, 0xffff
jne 0x42a190
mov esi, dword [edi + 4]
mov eax, dword [esp + 0x24]
mov ecx, eax
and ecx, 4
mov dword [esp + 0x54], ecx
shr ecx, 2
mov dword [esp + 0x20], ecx
mov ebx, dword [esp + 8]
cmp ebx, dword [esi + 0xc]
movzx ecx, word [esp + 4]
mov word [esi + 0x14], cx
setne byte [esp + 0x13]
mov dword [edi + 0x1c], 1
test al, 0x10
mov dword [esp + 4], esi
jne 0x42a81d
mov dword [esp + 0x28], 0
mov esi, dword [esp + 0x1c]
mov ebp, dword [esp]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 4]
movzx eax, byte [eax + 0x16]
test al, 2
je 0x42a9b7
test al, 4
je 0x42a9b7
cmp cl, 0x14
jb 0x42a9b7
mov eax, esi
sub eax, ecx
jbe 0x42a9b7
mov ecx, ebx
mov edx, dword [esp + 4]
mov ebx, dword [edx + 0xc]
sub ebx, ecx
mov byte [esp + 0x13], 1
sub eax, ebx
jbe 0x42a9af
mov ecx, dword [edi]
mov edx, dword [esp + 0xc]
add edx, dword [esp + 0x14]
add edx, ebx
push eax
call fcn.0042e2f0
add esp, 4
test eax, eax
js 0x42a99b
mov ecx, dword [esp + 4]
add dword [ecx + 0xc], eax
jmp 0x42a9af
cmp dword [esp + 0x24], 2
mov ebp, dword [esp]
jne 0x42a3da
mov ebx, ebp
lea ecx, [esp + 0x2c]
call fcn.0042dbb0
test eax, eax
je 0x42a3ca
mov edi, eax
push 0x20
push 1
call sub.MSVCR70.dll_calloc
add esp, 8
test eax, eax
je 0x42aad0
mov esi, eax
mov dword [eax], edi
movq xmm0, qword [esp + 0x40]
movq xmm1, qword [esp + 0x48]
movq qword [eax + 8], xmm0
movq qword [eax + 0x10], xmm1
mov eax, dword [esp + 0x50]
mov dword [esi + 0x18], eax
push 0x18
push 1
call sub.MSVCR70.dll_calloc
add esp, 8
test eax, eax
je 0x42aad0
mov edi, eax
mov dword [esi + 4], eax
mov byte [eax + 0x16], 4
mov eax, dword [esp + 8]
inc eax
mov dword [edi + 0xc], eax
movzx eax, word [esp + 4]
mov word [edi + 0x14], ax
mov ecx, 0x3b9aca00
xor edx, edx
call fcn.0040d0a0
add eax, dword [0x456328]
adc edx, dword [0x45632c]
mov ecx, edx
shr ecx, 0x11
xor ecx, edx
shld edx, eax, 0xf
xor edx, eax
mov eax, ecx
shld eax, edx, 0x15
mov ebp, edx
shl ebp, 0x15
xor eax, ecx
xor ebp, edx
mov ecx, eax
shld ecx, ebp, 0x1c
shl edx, 0x1c
xor ecx, eax
xor edx, ebp
mov dword [0x45632c], ecx
shr ecx, 0x11
xor ecx, edx
mov dword [0x456328], ecx
mov dword [edi + 8], ecx
mov dword [edi + 0x10], ecx
mov edi, ebx
mov ecx, ebx
mov edx, esi
call fcn.0042b090
mov ecx, dword [ebx + 0x10]
mov edx, dword [esi]
push esi
push 2
call fcn.0042e5d0
mov ebp, ebx
add esp, 8
jmp 0x42a3da
xor edx, edx
mov ecx, dword [esp]
xchg dword [ecx], edx
cmp edx, 1
je 0x42a812
call fcn.0040f821
jmp 0x42a812
mov eax, dword [0x4401cc]
cmp eax, 2
mov ebp, ebx
jne 0x42aba4
xor edx, edx
xchg dword [ebp], edx
cmp edx, 1
je 0x42a812
mov ecx, ebp
call fcn.0040f821
jmp 0x42a812
mov edx, dword [esp + 0xc]
mov dword [eax], edi
mov esi, dword [esp]
jmp 0x42a414
mov esi, dword [esp]
inc dword [esi + 0x1c]
mov eax, dword [esp + 8]
mov dword [ecx + ebx*8], eax
mov dword [ecx + ebx*8 + 4], edi
mov edx, dword [esp + 0xc]
mov ecx, dword [esi + 0x10]
push edi
push 1
call fcn.0042e5d0
add esp, 8
cmp dword [edi + 0x1c], 0xffff
je 0x42a432
mov dword [edi + 0x1c], 0
xor edx, edx
mov eax, dword [esp]
xchg dword [eax], edx
cmp edx, 1
mov ecx, dword [esp + 0x18]
jne 0x42aada
cmp word [esp + 0x2c], 0
je 0x42aaf2
mov eax, dword [edi]
test eax, eax
je 0x42a812
movzx ecx, cx
movzx edx, word [eax + 0x10]
cmp edx, 1
je 0x42a6d1
test edx, edx
jne 0x42a812
mov dword [esp + 0x64], 0
mov dword [esp + 0x60], 0
movzx edx, word [esp + 0x2e]
rol dx, 8
mov word [esp + 0x58], 2
mov word [esp + 0x5a], dx
mov edx, dword [esp + 0x30]
mov dword [esp + 0x5c], edx
lea edx, [esp + 0x58]
push 0x10
jmp 0x42a71b
xor edx, edx
mov eax, dword [esp]
xchg dword [eax], edx
cmp edx, 1
jne 0x42abdd
movzx eax, word [esp + 0x18]
cmp eax, 0xf3
jb 0x42a812
mov esi, 0xf2
mov ecx, dword [esp + 0xc]
cmp byte [ecx + 0xf8], 0x35
je 0x42a50e
mov ecx, dword [esp + 0xc]
lea edi, [ecx + 0xf8]
mov edx, 0xf0
movzx ecx, byte [edi + 1]
lea esi, [edx + ecx + 4]
cmp esi, eax
jae 0x42a812
lea edx, [edx + ecx + 2]
mov ecx, dword [esp + 4]
lea edi, [ecx + edx]
cmp byte [ecx + edx], 0x35
jne 0x42a4ed
mov eax, dword [esp + 4]
movzx ebx, byte [eax + esi]
cmp bl, 0xff
je 0x42a812
mov edi, dword [esp]
movzx eax, word [edi + 0x50]
mov word [esp + 0x5c], ax
mov eax, dword [edi + 0x4c]
mov dword [esp + 0x58], eax
mov dword [esp + 0x5e], 0xde970800
mov word [esp + 0x62], 0xdec0
movsd xmm0, qword [0x438490]
movsd qword [esp + 0x64], xmm0
mov dword [esp + 0x6c], 0x11400040
mov dword [esp + 0x72], 0x100a8c0
mov dword [esp + 0x76], 0xffffffff
mov word [esp + 0x70], 0x1379
movzx eax, word [esp + 0x42]
movzx ecx, word [esp + 0x2e]
mov byte [esp + 0x7b], cl
mov byte [esp + 0x7a], ch
mov byte [esp + 0x7d], al
mov byte [esp + 0x7c], ah
movsd xmm0, qword [0x4384a0]
movsd qword [esp + 0x7e], xmm0
mov esi, dword [esp + 0xc]
mov eax, dword [esi + 0xc]
mov dword [esp + 0x86], eax
mov dword [esp + 0x8a], 0
mov eax, dword [esp + 0x44]
mov dword [esp + 0x8e], eax
mov dword [esp + 0x92], 0x6400a8c0
mov dword [esp + 0x96], 0x100a8c0
mov dword [esp + 0x9a], 0
movsd xmm0, qword [esi + 0x24]
movq xmm1, qword [esi + 0x2c]
movsd qword [esp + 0x9e], xmm0
movq qword [esp + 0xa6], xmm1
lea eax, [esp + 0xb8]
push 0xb6
push 0
push eax
call sub.MSVCR70.dll_memset
add esp, 0xc
mov dword [esp + 0xae], 0x4d565652
mov dword [esp + 0xb2], 0x43484420
mov word [esp + 0xb6], 0x50
mov eax, dword [esi + 0xf4]
mov dword [esp + 0x16e], eax
mov word [esp + 0x172], 0x135
xor eax, eax
cmp bl, 1
setne al
lea eax, [eax + eax*2 + 2]
mov byte [esp + 0x174], al
movsd xmm0, qword [0x4384b0]
movsd qword [esp + 0x175], xmm0
mov dword [esp + 0x17d], 0x100a8c0
movq xmm0, qword [0x4384c0]
movq qword [esp + 0x181], xmm0
mov dword [esp + 0x189], 0x100a8c0
mov word [esp + 0x18d], 0x806
mov dword [esp + 0x18f], 0x1010101
mov dword [esp + 0x193], 0x8080808
lea eax, [esp + 0x58]
push 0x13f
push eax
push dword [edi + 8]
call dword [edi + 0xc]
jmp 0x42a80f
mov esi, 0xffff
mov ebp, edi
jmp 0x42a7d3
pxor xmm0, xmm0
movq qword [esp + 0x6c], xmm0
movq qword [esp + 0x64], xmm0
movq qword [esp + 0x5c], xmm0
mov word [esp + 0x58], 0x17
movzx edx, word [esp + 0x2e]
rol dx, 8
mov word [esp + 0x5a], dx
lea edx, [esp + 0x30]
movq xmm0, qword [edx]
movq xmm1, qword [edx + 8]
movq qword [esp + 0x60], xmm0
movq qword [esp + 0x68], xmm1
lea edx, [esp + 0x58]
push 0x1c
push edx
push 0
push ecx
push dword [esp + 0x14]
push dword [eax + 0xc]
call dword [sym.imp.WS2_32.dll_sendto]
jmp 0x42a812
mov dword [esp + 0x1c], ebx
and ebp, 0x7ffffffc
lea eax, [ecx - 7]
and eax, 0xfffffff8
mov dword [esp + 0xc], eax
mov esi, 0xffff
lea eax, [esp + 0x81]
nop word cs:[eax + eax]
nop dword [eax + eax]
movzx ebx, word [eax - 7]
movzx edi, word [eax - 5]
rol bx, 8
movzx ebx, bx
add ebx, esi
rol di, 8
movzx esi, di
movzx edi, word [eax - 3]
rol di, 8
movzx edi, di
add edi, esi
add edi, ebx
movzx esi, word [eax - 1]
rol si, 8
movzx esi, si
add esi, edi
add eax, 8
add ebp, 0xfffffffc
jne 0x42a760
mov edi, dword [esp + 0xc]
add edi, 8
mov ebx, dword [esp + 0x1c]
test edx, edx
mov ebp, dword [esp]
je 0x42a7d3
lea eax, [esp + 0x58]
lea eax, [edi + eax + 0x23]
nop word cs:[eax + eax]
movzx edi, word [eax - 1]
rol di, 8
movzx edi, di
add esi, edi
add eax, 2
dec edx
jne 0x42a7c0
test byte [esp + 8], 1
je 0x42a7e4
movzx eax, byte [esp + ecx + 0x7a]
shl eax, 8
add esi, eax
mov eax, esi
shr eax, 0x10
movzx ecx, si
add ecx, eax
mov eax, ecx
shr eax, 0x10
add eax, ecx
not eax
rol ax, 8
mov word [esp + 0x7c], ax
add ebx, 0x22
lea eax, [esp + 0x58]
push ebx
push eax
push dword [ebp + 8]
call dword [ebp + 0xc]
add esp, 0xc
add esp, 0x644
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esi]
test eax, eax
je 0x42a85d
xor ebp, ebp
mov ecx, dword [esi + 0x10]
mov esi, dword [esp + 0x18]
sub esi, ecx
test esi, esi
cmovle esi, ebp
mov edx, dword [eax + 4]
cmp esi, edx
mov esi, dword [esp + 4]
jb 0x42a85d
add edx, ecx
mov dword [esi + 0x10], edx
mov ecx, dword [eax]
mov dword [esi], ecx
push eax
call sub.MSVCR70.dll_free
add esp, 4
mov dword [edi + 0x1c], 0
mov eax, dword [esi]
test eax, eax
jne 0x42a825
cmp byte [esi + 0x17], 0
mov ecx, esi
mov esi, dword [esp + 0x1c]
je 0x42a8b0
test byte [ecx + 0x16], 8
mov ebp, dword [esp]
je 0x42a8b3
mov eax, dword [ecx + 8]
sub eax, dword [ecx + 0x10]
movzx ecx, word [ecx + 0x14]
cmp eax, ecx
jae 0x42a8b3
mov ecx, dword [ebp + 0x10]
mov edx, dword [edi]
push edi
push 1
call fcn.0042e5d0
add esp, 8
test al, al
jne 0x42a8a8
mov eax, dword [0x456340]
mov cl, 1
mov dword [esp + 0x20], ecx
cmp eax, 2
jne 0x42ac7f
mov eax, dword [esp + 4]
mov byte [eax + 0x17], 0
mov ebp, dword [esp]
mov ecx, dword [esp + 4]
mov eax, dword [ecx + 8]
mov ecx, dword [ecx + 0x10]
inc ecx
mov dword [esp + 0x28], 0
cmp eax, ecx
jne 0x42a243
cmp dword [esp + 0x18], eax
jne 0x42a243
mov edx, dword [esp + 4]
movzx eax, byte [edx + 0x16]
mov ecx, eax
and cl, 0xa
cmp cl, 2
jne 0x42a8fc
mov ecx, dword [esp + 0x18]
mov dword [edx + 0x10], ecx
cmp al, 2
sete cl
mov dword [esp + 0x28], ecx
jmp 0x42a904
mov dword [esp + 0x28], 0
cmp al, 0xc
jne 0x42a92c
mov ecx, dword [ebp + 0x10]
mov edx, dword [edi]
push edi
push 1
call fcn.0042e5d0
add esp, 8
test al, al
je 0x42a932
mov eax, dword [esp + 4]
or byte [eax + 0x16], 2
inc dword [eax + 0x10]
jmp 0x42a240
mov ecx, dword [esp + 0x14]
jmp 0x42a955
mov eax, dword [0x456340]
cmp eax, 2
mov ecx, dword [esp + 0x14]
jne 0x42abfa
mov eax, dword [esp + 4]
movzx eax, byte [eax + 0x16]
mov dl, 1
mov dword [esp + 0x20], edx
mov ebp, dword [esp]
test byte [esp + 0x24], 2
je 0x42a247
cmp al, 8
jne 0x42a247
mov ecx, dword [ebp + 0x10]
mov edx, dword [edi]
push edi
push 1
call fcn.0042e5d0
add esp, 8
test al, al
je 0x42aa8a
mov ecx, dword [esp + 4]
or byte [ecx + 0x16], 6
lea eax, [ebx + 1]
mov dword [ecx + 0xc], eax
inc dword [ecx + 0x10]
mov byte [esp + 0x13], 1
jmp 0x42a240
cmp eax, 0xfffffffe
movzx eax, byte [esp + 0x20]
mov ecx, 1
cmove ecx, eax
mov dword [esp + 0x20], ecx
mov ebx, dword [esp + 8]
mov ecx, dword [esp + 0x14]
test byte [esp + 0x24], 1
je 0x42aa16
add ebx, esi
sub ebx, ecx
mov eax, dword [esp + 4]
cmp ebx, dword [eax + 0xc]
jne 0x42aa16
mov esi, dword [esp + 4]
movzx eax, byte [esi + 0x16]
test al, 4
je 0x42a9fe
mov edx, dword [edi]
test edx, edx
je 0x42a9f5
push 1
push dword [edx + 0xc]
mov esi, ebp
call dword [sym.imp.WS2_32.dll_shutdown]
mov esi, dword [esp + 4]
movzx eax, byte [esi + 0x16]
mov ebx, dword [esi + 0xc]
and al, 0xfb
mov byte [esi + 0x16], al
inc ebx
mov dword [esi + 0xc], ebx
cmp al, 2
movzx eax, byte [esp + 0x28]
mov ebx, 1
cmovne ebx, eax
cmp byte [esp + 0x20], 0
je 0x42aa28
jmp 0x42aa40
cmp byte [esp + 0x20], 0
mov ebx, dword [esp + 0x28]
jne 0x42aa3c
cmp byte [esp + 0x13], 0
je 0x42aa72
mov esi, ebp
mov ecx, ebp
mov edx, edi
push 0
push 0x10
call fcn.0042acc0
add esp, 8
jmp 0x42aa72
mov esi, dword [esp + 4]
cmp dword [esp + 0x54], 0
jne 0x42aa5d
mov esi, ebp
mov ecx, ebp
mov edx, edi
push 0
push 4
call fcn.0042acc0
mov esi, dword [esp + 0xc]
add esp, 8
movzx eax, byte [esi + 0x16]
mov ecx, eax
shr ecx, 1
shr eax, 3
xor eax, ecx
test al, 1
mov byte [esi + 0x16], 0
jne 0x42aa7a
test bl, bl
je 0x42a3da
mov esi, ebp
mov ecx, ebp
mov edx, edi
call fcn.0042ae50
jmp 0x42a3da
mov eax, dword [0x456340]
mov cl, 1
mov dword [esp + 0x20], ecx
cmp eax, 2
mov ecx, dword [esp + 0x14]
jne 0x42ac3d
mov ebp, dword [esp]
jmp 0x42a247
mov ecx, dword [esp]
mov edx, str.tap_user.c_577
call fcn.0040f5ee
mov ebp, dword [esp]
jmp 0x429d33
mov ecx, edi
mov edx, str.tap_user.c_410
call fcn.0040f5ee
jmp 0x429e7a
push str.Out_of_memory_
call fcn.00410c90
mov ecx, dword [esp]
call fcn.0040f821
mov ecx, dword [esp + 0x18]
cmp word [esp + 0x2c], 0
jne 0x42a452
movzx eax, byte [esp + 0x30]
test eax, eax
je 0x42a812
cmp eax, 0x7f
je 0x42a812
mov ecx, eax
and cl, 0xf0
cmp cl, 0xe0
je 0x42a812
cmp eax, 0xff
movzx edx, byte [esp + 0x31]
jne 0x42ab39
cmp dl, 0xff
jne 0x42ab39
cmp byte [esp + 0x32], 0xff
jne 0x42ab39
cmp byte [esp + 0x33], 0xff
je 0x42a812
mov ecx, dword [esp]
cmp byte [ecx + 0x52], 0
mov ecx, dword [esp + 0x18]
je 0x42a452
cmp eax, 0xab
jg 0x42ab73
cmp eax, 0xa
je 0x42a812
cmp eax, 0xa9
jne 0x42a452
cmp dl, 0xfe
jne 0x42a452
jmp 0x42a812
cmp eax, 0xc0
je 0x42ab96
cmp eax, 0xac
jne 0x42a452
and dl, 0xf0
cmp dl, 0x10
jne 0x42a452
jmp 0x42a812
cmp dl, 0xa8
jne 0x42a452
jmp 0x42a812
mov ecx, 1
xor eax, eax
lock cmpxchg dword [0x4401cc], ecx
jne 0x42abcc
push str.net_tcp_connect___failed_
call fcn.00410c10
add esp, 4
mov dword [0x4401cc], 2
mov ecx, 0x4401cc
call fcn.00410d70
mov ebp, ebx
jmp 0x42a3da
mov ecx, dword [esp]
call fcn.0040f821
movzx eax, word [esp + 0x18]
cmp eax, 0xf3
jb 0x42a812
jmp 0x42a4cc
mov ecx, 1
xor eax, eax
lock cmpxchg dword [0x456340], ecx
jne 0x42ac22
push str.net_poll_add___failed_
call fcn.00410c10
add esp, 4
mov dword [0x456340], 2
mov ecx, 0x456340
call fcn.00410d70
mov esi, dword [esp + 0x1c]
mov ebx, dword [esp + 8]
mov ecx, dword [esp + 0x14]
jmp 0x42a944
mov ecx, 1
xor eax, eax
lock cmpxchg dword [0x456340], ecx
jne 0x42ac65
push str.net_poll_add___failed_
call fcn.00410c10
add esp, 4
mov dword [0x456340], 2
mov ecx, 0x456340
call fcn.00410d70
mov ebp, dword [esp]
mov esi, dword [esp + 0x1c]
mov ebx, dword [esp + 8]
jmp 0x42a243
mov ecx, 1
xor eax, eax
lock cmpxchg dword [0x456340], ecx
jne 0x42aca7
push str.net_poll_add___failed_
call fcn.00410c10
add esp, 4
mov dword [0x456340], 2
mov ecx, 0x456340
call fcn.00410d70
mov esi, dword [esp + 0x1c]
mov ebx, dword [esp + 8]
jmp 0x42a8a8