Function at 0x719ddb65
Capabilities:
Resolve dns

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x1c
push ebx
xor ecx, ecx
push esi
push edi
mov dword [ebp - 4], ecx
mov dword [ebp - 8], ecx
mov dword [ebp - 0x10], ecx
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0xf6c]
mov esi, dword [eax + 0x20]
mov edi, dword [ebp + 0x14]
push edi
lea eax, [ebp - 4]
push eax
push ecx
push dword [ebp + 0x10]
mov dword [ebp - 0x1c], esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call sub.DNSAPI.dll_DnsQuery_A
mov ebx, eax
cmp ebx, 0x6ba
jne 0x719ddbb8
push 0x2afa
jmp 0x719dddeb
test ebx, ebx
je 0x719ddbdb
test edi, edi
je 0x719ddbcf
mov eax, dword [edi]
test eax, eax
je 0x719ddbcf
push eax
call sub.DNSAPI.dll_DnsApiFree
and dword [edi], 0
push ebx
call fcn.719dd0d4
push eax
jmp 0x719dddeb
mov eax, dword [ebp - 4]
jmp 0x719ddc06
mov ecx, dword [eax + 0xc]
and cl, 3
cmp cl, 1
jne 0x719ddc04
mov cx, word [eax + 8]
cmp cx, 1
je 0x719ddc01
cmp cx, 0x22
je 0x719ddc01
cmp cx, 0x1c
jne 0x719ddc04
inc dword [ebp - 0x10]
mov eax, dword [eax]
test eax, eax
jne 0x719ddbe0
mov ebx, dword [ebp + 0xc]
lea eax, [ebp - 0x18]
push eax
push ebx
push dword [ebp - 0x10]
call fcn.719c2710
and dword [esi], 0
mov dword [ebp - 0x10], eax
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0xf6c]
mov ecx, dword [esi + 4]
mov eax, dword [eax + 0x20]
mov edi, dword [ebp - 4]
mov dword [ebp - 0x14], ecx
mov ecx, dword [esi + 0xc]
add eax, 0x1b8
mov dword [ebp + 0x14], eax
mov dword [ebp + 0x10], 0x201
mov dword [ebp - 0xc], ecx
cmp bx, 1
je 0x719ddc5f
cmp bx, 0x22
je 0x719ddc5f
cmp bx, 0x1c
jne 0x719ddc8c
test edi, edi
je 0x719dddd6
mov ecx, dword [edi + 0xc]
and cl, 3
cmp cl, 1
jne 0x719ddc88
mov cx, word [edi + 8]
cmp cx, 1
je 0x719ddc8c
cmp cx, 0x22
je 0x719ddc8c
cmp cx, 0x1c
je 0x719ddc8c
mov edi, dword [edi]
jmp 0x719ddc4d
test edi, edi
je 0x719dddd6
cmp bx, 0xc
je 0x719ddcb0
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x719ddcb0
lea ebx, [ecx + 1]
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x719ddca4
sub ecx, ebx
inc ecx
jmp 0x719ddcb2
xor ecx, ecx
test ecx, ecx
je 0x719dddb6
mov edx, ecx
push 4
and edx, 3
pop ebx
sub ebx, edx
add ecx, ebx
cmp ecx, 0x201
jle 0x719ddce5
cmp dword [ebp - 4], 0
je 0x719ddcde
push 1
push dword [ebp - 4]
call sub.DNSAPI.dll_DnsRecordListFree
push 8
jmp 0x719dddeb
mov edi, dword [edi + 4]
mov ebx, eax
mov dl, byte [edi]
inc edi
mov byte [ebx], dl
inc ebx
test dl, dl
jne 0x719ddcea
mov dword [esi], eax
add eax, ecx
mov dword [ebp + 0x14], eax
mov eax, 0x201
sub eax, ecx
mov dword [ebp + 0x10], eax
mov ebx, dword [ebp - 4]
test ebx, ebx
je 0x719ddf09
mov edx, dword [ebp - 0x18]
mov eax, dword [ebx + 0xc]
and al, 3
cmp al, 1
jne 0x719ddeff
mov ax, word [ebx + 8]
cmp ax, 1
je 0x719ddd36
cmp ax, 0x22
je 0x719ddd36
cmp ax, 0x1c
jne 0x719ddd42
mov ecx, dword [ebp - 0x10]
cmp dword [ebp - 8], ecx
jge 0x719ddeff
movzx eax, ax
dec eax
je 0x719ddecc
sub eax, 4
je 0x719dde56
sub eax, 7
je 0x719dddfa
sub eax, 0x10
je 0x719ddecc
sub eax, 6
jne 0x719ddeff
cmp dword [ebp + 0x10], 0x1c
movzx esi, word [ebx + 0xa]
jb 0x719ddeff
xor eax, eax
push 7
mov edi, edx
pop ecx
rep stosd dword es:[edi], eax
movzx eax, byte [ebx + 0x18]
mov dword [edx], eax
lea eax, [esi - 1]
mov dword [edx + 4], eax
mov ecx, esi
mov eax, ecx
shr ecx, 2
lea edi, [edx + 8]
lea esi, [ebx + 0x19]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [ebp - 0xc]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [eax], edx
add edx, 0x1c
jmp 0x719ddef3
cmp word [ebp + 0xc], 0xc
je 0x719ddd05
mov esi, dword [ebp + 8]
xor ecx, ecx
inc ecx
mov edi, 0x719d5757
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x719ddd05
cmp dword [ebp - 4], 0
je 0x719ddde6
push 1
push dword [ebp - 4]
call sub.DNSAPI.dll_DnsRecordListFree
push 0x2af9
call dword [sym.imp._CKERNEL.DLL_SetLastError]
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret 0x10
mov ecx, dword [ebx + 0x18]
mov esi, ecx
lea edi, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x719dde02
sub esi, edi
inc esi
mov eax, esi
push 4
and eax, 3
pop edi
sub edi, eax
add esi, edi
cmp dword [ebp + 0x10], esi
jl 0x719ddeff
mov edi, dword [ebp + 0x14]
mov al, byte [ecx]
inc ecx
mov byte [edi], al
inc edi
test al, al
jne 0x719dde24
mov eax, dword [ebp - 0x1c]
cmp dword [eax], 0
mov ecx, dword [ebp + 0x14]
jne 0x719dde3d
mov dword [eax], ecx
jmp 0x719dde4b
mov eax, dword [ebp - 0x14]
mov dword [eax], ecx
add eax, 4
and dword [eax], 0
mov dword [ebp - 0x14], eax
add dword [ebp + 0x14], esi
sub dword [ebp + 0x10], esi
jmp 0x719ddefc
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0xf6c]
mov eax, dword [eax + 0x20]
mov edi, dword [ebp - 0x14]
add eax, 0x128
cmp edi, eax
jae 0x719ddeff
mov esi, dword [ebx + 4]
lea eax, [esi + 1]
mov cl, byte [esi]
inc esi
test cl, cl
jne 0x719dde7b
sub esi, eax
inc esi
mov eax, esi
push 4
and eax, 3
pop ecx
sub ecx, eax
add esi, ecx
cmp dword [ebp + 0x10], esi
jl 0x719ddeff
mov eax, dword [ebx + 4]
mov dword [ebp + 0xc], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp + 8], eax
mov eax, dword [ebp + 0xc]
mov al, byte [eax]
mov ecx, dword [ebp + 8]
inc dword [ebp + 0xc]
inc dword [ebp + 8]
test al, al
mov byte [ecx], al
jne 0x719ddea2
mov eax, dword [ebp + 0x14]
add dword [ebp + 0x14], esi
mov dword [edi], eax
add edi, 4
and dword [edi], 0
sub dword [ebp + 0x10], esi
mov dword [ebp - 0x14], edi
jmp 0x719ddeff
movzx ecx, word [ebx + 0xa]
cmp dword [ebp + 0x10], ecx
mov dword [ebp + 0xc], ecx
jl 0x719ddeff
mov eax, ecx
shr ecx, 2
mov edi, edx
lea esi, [ebx + 0x18]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [ebp - 0xc]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [eax], edx
add edx, dword [ebp + 0xc]
add eax, 4
and dword [eax], 0
mov dword [ebp - 0xc], eax
inc dword [ebp - 8]
mov ebx, dword [ebx]
test ebx, ebx
jne 0x719ddd13
push 1
push dword [ebp - 4]
call sub.DNSAPI.dll_DnsRecordListFree
push 0
call dword [sym.imp._CKERNEL.DLL_SetLastError]
cmp dword [ebp - 8], 0
je 0x719dddf1
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0xf6c]
mov eax, dword [eax + 0x20]
jmp 0x719dddf3