Function at 0x10021f20
Capabilities:
Get hostname
Initialize winsock library
Resolve dns

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100a3107
mov eax, dword fs:[0]
push eax
sub esp, 0x66c
mov eax, dword [0x100d01c4]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [ebp + 8]
mov dword [ebp - 0x448], 0
mov dword [ebp - 0x5e8], esi
mov dword [ebp - 0x438], 0
mov dword [ebp - 0x434], 0xf
mov byte [ebp - 0x448], 0
lea eax, [ebp - 0x5d8]
mov dword [ebp - 4], 0
push eax
push 2
call dword [sym.imp.WS2_32.dll_WSAStartup]
test eax, eax
je 0x10021fbf
push 0
mov dword [esi], 0
mov ecx, esi
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0xf
push 0x100b04e4
mov byte [esi], 0
call fcn.100140c0
jmp 0x10022403
push 0x400
lea eax, [ebp - 0x430]
push eax
call dword [sym.imp.WS2_32.dll_gethostname]
cmp eax, 0xffffffff
jne 0x10022006
call dword [sym.imp.WS2_32.dll_WSACleanup]
mov dword [esi], 0
mov ecx, esi
mov dword [esi + 0x10], 0
push 0
mov dword [esi + 0x14], 0xf
push 0x100b04e4
mov byte [esi], 0
call fcn.100140c0
jmp 0x100223f8
lea eax, [ebp - 0x430]
push eax
call dword [sym.imp.WS2_32.dll_gethostbyname]
test eax, eax
je 0x10021fd6
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov cl, byte [eax]
mov byte [ebp - 0x5d9], cl
mov cl, byte [eax + 1]
mov byte [ebp - 0x5da], cl
mov cl, byte [eax + 2]
mov al, byte [eax + 3]
mov byte [ebp - 0x5db], cl
mov byte [ebp - 0x5dc], al
call dword [sym.imp.WS2_32.dll_WSACleanup]
push 0xa
lea eax, [ebp - 0x18]
push eax
movzx eax, byte [ebp - 0x5d9]
push eax
call fcn.10075a4b
push 0xa
lea eax, [ebp - 0x20]
push eax
movzx eax, byte [ebp - 0x5da]
push eax
call fcn.10075a4b
push 0xa
lea eax, [ebp - 0x28]
push eax
movzx eax, byte [ebp - 0x5db]
push eax
call fcn.10075a4b
push 0xa
lea eax, [ebp - 0x30]
push eax
movzx eax, byte [ebp - 0x5dc]
push eax
call fcn.10075a4b
lea ecx, [ebp - 0x18]
add esp, 0x30
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100220a0
sub ecx, edx
lea eax, [ebp - 0x18]
push ecx
push eax
lea ecx, [ebp - 0x448]
call fcn.100140c0
mov edx, dword [ebp - 0x438]
mov eax, closesocket
sub eax, edx
cmp eax, 1
jb 0x10022420
cmp dword [ebp - 0x434], 0x10
lea eax, [ebp - 0x448]
mov edi, 0xf
mov dword [ebp - 0x600], 0
cmovae eax, dword [ebp - 0x448]
inc edx
mov dword [ebp - 0x5e8], eax
lea eax, [ebp - 0x600]
mov dword [ebp - 0x5f0], 0
mov dword [ebp - 0x5ec], 0
mov dword [ebp - 0x5e4], edx
mov dword [ebp - 0x5e0], eax
cmp edx, edi
jbe 0x1002218b
mov edi, edx
or edi, 0xf
cmp edi, 0x7fffffff
jbe 0x10022137
mov edi, closesocket
jmp 0x10022141
mov eax, 0x16
cmp edi, eax
cmovb edi, eax
xor ecx, ecx
mov eax, edi
add eax, 1
setb cl
neg ecx
or ecx, eax
cmp ecx, 0x1000
jb 0x10022168
push ecx
call fcn.10010870
mov edx, dword [ebp - 0x5e4]
add esp, 4
jmp 0x1002217f
test ecx, ecx
je 0x1002217d
push ecx
call fcn.1004799d
mov edx, dword [ebp - 0x5e4]
add esp, 4
jmp 0x1002217f
xor eax, eax
mov dword [ebp - 0x5e0], eax
mov dword [ebp - 0x600], eax
mov dword [ebp - 0x5ec], edi
mov edi, dword [ebp - 0x438]
push edi
push dword [ebp - 0x5e8]
mov dword [ebp - 0x5f0], edx
push eax
call fcn.10049890
mov eax, dword [ebp - 0x5e0]
add esp, 0xc
mov byte [edi + eax], 0x2e
mov byte [eax + edi + 1], 0
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 1
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100221c6
sub ecx, edx
lea eax, [ebp - 0x20]
push ecx
push eax
lea ecx, [ebp - 0x600]
call fcn.10013f30
mov dword [ebp - 0x660], 0
mov dword [ebp - 0x650], 0
mov dword [ebp - 0x64c], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x660], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x650], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
push 1
push 0x100b2c9c
lea ecx, [ebp - 0x660]
mov byte [ebp - 4], 2
call fcn.10013f30
mov dword [ebp - 0x648], 0
mov dword [ebp - 0x638], 0
mov dword [ebp - 0x634], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x648], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x638], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 3
lea edx, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10022290
sub ecx, edx
lea eax, [ebp - 0x28]
push ecx
push eax
lea ecx, [ebp - 0x648]
call fcn.10013f30
mov dword [ebp - 0x630], 0
mov dword [ebp - 0x620], 0
mov dword [ebp - 0x61c], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x630], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x620], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
push 1
push 0x100b2c9c
lea ecx, [ebp - 0x630]
mov byte [ebp - 4], 4
call fcn.10013f30
mov dword [ebp - 0x618], 0
mov dword [ebp - 0x608], 0
mov dword [ebp - 0x604], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x618], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x608], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 5
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10022355
sub ecx, edx
lea eax, [ebp - 0x30]
push ecx
push eax
lea ecx, [ebp - 0x618]
call fcn.10013f30
lea ecx, [ebp - 0x448]
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x678], xmm0
movq xmm0, qword [eax + 0x10]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
lea eax, [ebp - 0x678]
push eax
movq qword [ebp - 0x668], xmm0
call fcn.10021bb0
lea ecx, [ebp - 0x678]
call fcn.10011cd0
lea ecx, [ebp - 0x618]
call fcn.10011cd0
lea ecx, [ebp - 0x630]
call fcn.10011cd0
lea ecx, [ebp - 0x648]
call fcn.10011cd0
lea ecx, [ebp - 0x660]
call fcn.10011cd0
lea ecx, [ebp - 0x600]
call fcn.10011cd0
lea eax, [ebp - 0x448]
mov ecx, esi
push eax
call fcn.10021b10
lea ecx, [ebp - 0x448]
call fcn.10011cd0
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.100479e0
mov esp, ebp
pop ebp
ret
call fcn.10013f20
int3