Function at 0x41a570
Capabilities:
Reference cloudflare dns server

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2e0
mov eax, dword [0x5b66c0]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 0xc]
lea eax, [ebp - 0x29c]
push esi
push edi
push 0x11c
push 0
push eax
mov dword [ebp - 0x2b4], ebx
mov dword [ebp - 0x2e0], 0x7f000000
mov dword [ebp - 0x2dc], 0xff000000
mov dword [ebp - 0x2d8], 0xfffffffb
mov dword [ebp - 0x2d4], 0
mov dword [ebp - 0x2d0], 0xff000000
mov dword [ebp - 0x2cc], 0xffffffce
mov dword [ebp - 0x2c8], 0xa9fe0000
mov dword [ebp - 0x2c4], 0xffff0000
mov dword [ebp - 0x2c0], 0xfffffffc
mov dword [ebp - 0x80], 0
mov dword [ebp - 0x7c], 0
mov dword [ebp - 0x78], 0
mov dword [ebp - 0x74], 0x1000000
mov dword [ebp - 0x70], 0xffffffff
mov dword [ebp - 0x6c], 0xffffffff
mov dword [ebp - 0x68], 0xffffffff
mov dword [ebp - 0x64], 0xffffffff
mov dword [ebp - 0x60], 0xfffffffb
mov dword [ebp - 0x5c], 0x80fe
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0xc0ff
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0xfffffffc
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0xffffffff
mov dword [ebp - 0x24], 0xffffffff
mov dword [ebp - 0x20], 0xffffffff
mov dword [ebp - 0x1c], 0xffffffff
mov dword [ebp - 0x18], 0xffffffce
call fcn.00502bf0
xor eax, eax
push 0xe0
push eax
mov dword [ebp - 0x2a0], eax
lea eax, [ebp - 0x180]
push eax
call fcn.00502bf0
mov edi, dword [ebp + 8]
add esp, 0x18
movzx eax, di
xorps xmm0, xmm0
movups xmmword [ebp - 0xa0], xmm0
mov word [ebp - 0x180], ax
movups xmmword [ebp - 0x90], xmm0
mov word [ebp - 0x164], ax
mov word [ebp - 0x148], ax
mov word [ebp - 0x12c], ax
mov word [ebp - 0x110], ax
mov word [ebp - 0xf4], ax
mov word [ebp - 0xd8], ax
mov word [ebp - 0xbc], ax
mov word [ebx], ax
call fcn.00419800
mov dword [ebp - 0x2a8], 1
cmp dword [eax + 4], 0
jle 0x41a81c
lea ecx, [ebp - 0x29c]
push ecx
lea ecx, [ebp - 0x2a8]
push ecx
push eax
push edi
call fcn.00424480
add esp, 0x10
test eax, eax
jne 0x41a81c
mov cx, word [ebp - 0x19c]
mov si, word [0x56dc58]
mov di, word [0x56dc5c]
cmp cx, si
je 0x41a784
cmp cx, di
je 0x41a784
xor edx, edx
jmp 0x41a796
cmp cx, di
lea edx, [ebp - 0x194]
lea eax, [ebp - 0x198]
cmovne edx, eax
lea ebx, [ebp - 0x19c]
mov eax, edx
sub eax, ebx
lea ebx, [ebp - 0x180]
add ebx, eax
cmp cx, si
je 0x41a7b6
cmp cx, di
je 0x41a7b6
xor eax, eax
jmp 0x41a7c6
cmp cx, di
mov eax, 4
mov ecx, 0x10
cmove eax, ecx
push eax
push edx
push ebx
call fcn.00502d50
movzx ecx, word [ebp - 0x180]
add esp, 0xc
movzx eax, si
cmp ecx, eax
je 0x41a7e6
movzx eax, di
cmp ecx, eax
jne 0x41a801
movzx eax, di
push 0
call fcn.00419890
mov si, word [0x56dc58]
add esp, 4
mov word [ebp - 0x17e], ax
inc dword [ebp - 0xa0]
mov ebx, dword [ebp - 0x2b4]
mov edi, dword [ebp + 8]
mov dword [ebp - 0x2a0], 1
jmp 0x41a823
mov si, word [0x56dc58]
movzx eax, si
mov edx, str.1.1.1.1
cmp edi, eax
mov ecx, str.1::1
cmove ecx, edx
push ecx
call fcn.0041cd60
push 0
push 0
mov dword [ebp - 0x2bc], eax
lea eax, [ebp - 0x2bc]
push ebx
push eax
push edi
mov dword [ebp - 0x2b8], edx
call fcn.0041af20
add esp, 0x18
test eax, eax
jne 0x41a95c
movzx ecx, word [ebx]
movzx eax, word [0x56dc58]
cmp ecx, eax
je 0x41a87d
movzx eax, word [0x56dc5c]
cmp ecx, eax
jne 0x41a892
movzx eax, word [0x56dc5c]
push 0
call fcn.00419890
mov word [ebx + 2], ax
add esp, 4
mov edx, dword [ebp - 0x2a0]
xor esi, esi
test edx, edx
je 0x41a8c0
lea edi, [ebp - 0x180]
push ebx
push edi
call fcn.0041b4b0
mov edx, dword [ebp - 0x2a0]
add esp, 8
test eax, eax
je 0x41a8c0
inc esi
add edi, 0x1c
cmp esi, edx
jb 0x41a8a4
add dword [ebp + esi*4 - 0xa0], 2
cmp esi, edx
jb 0x41a962
movzx ecx, word [ebx]
mov di, word [0x56dc58]
mov bx, word [0x56dc5c]
cmp cx, di
je 0x41a8ef
cmp cx, bx
je 0x41a8f4
xor edx, edx
jmp 0x41a908
cmp cx, bx
jne 0x41a8ff
mov edx, dword [ebp - 0x2b4]
add edx, 8
jmp 0x41a908
mov edx, dword [ebp - 0x2b4]
add edx, 4
lea eax, [esi*8]
sub eax, esi
lea esi, [ebp - 0x180]
shl eax, 2
sub eax, dword [ebp - 0x2b4]
add eax, edx
add esi, eax
cmp cx, di
je 0x41a932
cmp cx, bx
je 0x41a932
xor eax, eax
jmp 0x41a942
cmp cx, bx
mov eax, 4
mov ecx, 0x10
cmove eax, ecx
push eax
push edx
push esi
call fcn.00502d50
mov edx, dword [ebp - 0x2a0]
add esp, 0xc
inc edx
mov dword [ebp - 0x2a0], edx
jmp 0x41a962
mov edx, dword [ebp - 0x2a0]
cmp edx, 8
jae 0x41abc5
lea esi, [edx*8]
mov eax, 8
sub esi, edx
lea ebx, [ebp - 0x180]
sub eax, edx
shl esi, 2
add ebx, esi
mov dword [ebp - 0x2a8], eax
push ebx
lea eax, [ebp - 0x2a8]
mov dword [ebp - 0x2b8], esi
push eax
push dword [ebp + 8]
mov dword [ebp - 0x2a4], ebx
call fcn.00424140
add esp, 0xc
test eax, eax
jne 0x41abbf
mov edi, dword [ebp - 0x2a8]
test edi, edi
je 0x41abbf
mov dx, word [0x56dc58]
lea ebx, [ebp - 0x17e]
add esi, ebx
xor ebx, ebx
movzx ecx, word [esi - 2]
movzx eax, dx
cmp ecx, eax
je 0x41a9e8
movzx eax, word [0x56dc5c]
cmp ecx, eax
jne 0x41aa09
movzx eax, word [0x56dc5c]
push 0
call fcn.00419890
mov dx, word [0x56dc58]
add esp, 4
mov edi, dword [ebp - 0x2a8]
mov word [esi], ax
inc ebx
add esi, 0x1c
cmp ebx, edi
jb 0x41a9d2
mov edx, dword [ebp - 0x2a0]
xor esi, esi
mov ebx, dword [ebp - 0x2a4]
mov dword [ebp - 0x2b0], esi
test edx, edx
je 0x41aaae
lea eax, [ebp - 0x180]
mov dword [ebp - 0x2ac], eax
nop dword [eax]
xor ebx, ebx
test edi, edi
je 0x41aa78
mov esi, dword [ebp - 0x2a4]
nop dword [eax]
push esi
push eax
call fcn.0041b4b0
mov edi, dword [ebp - 0x2a8]
add esp, 8
test eax, eax
mov eax, dword [ebp - 0x2ac]
je 0x41aa72
inc ebx
add esi, 0x1c
cmp ebx, edi
jb 0x41aa50
mov esi, dword [ebp - 0x2b0]
lea ecx, [ebp - 0xa0]
mov edx, dword [ecx + esi*4]
lea ecx, [ecx + esi*4]
cmp ebx, edi
jne 0x41aa8b
dec edx
jmp 0x41aa8c
inc edx
inc esi
mov dword [ecx], edx
mov edx, dword [ebp - 0x2a0]
add eax, 0x1c
mov dword [ebp - 0x2b0], esi
mov dword [ebp - 0x2ac], eax
cmp esi, edx
jb 0x41aa40
mov ebx, dword [ebp - 0x2a4]
xor ecx, ecx
mov dword [ebp - 0x2a4], ecx
test edi, edi
je 0x41abc5
mov eax, edx
mov dword [ebp - 0x2b0], edx
xor esi, esi
test edx, edx
je 0x41ab00
lea edi, [ebp - 0x180]
push edi
push ebx
call fcn.0041b4b0
mov edx, dword [ebp - 0x2a0]
add esp, 8
test eax, eax
je 0x41aaee
inc esi
add edi, 0x1c
cmp esi, edx
jb 0x41aad2
mov edi, dword [ebp - 0x2a8]
mov eax, dword [ebp - 0x2b0]
mov ecx, dword [ebp - 0x2a4]
cmp esi, edx
jne 0x41aba4
cmp edx, eax
je 0x41ab89
movzx ecx, word [ebx]
cmp cx, word [0x56dc58]
je 0x41ab25
cmp cx, word [0x56dc5c]
je 0x41ab2e
xor edx, edx
jmp 0x41ab36
cmp cx, word [0x56dc5c]
jne 0x41ab33
lea edx, [ebx + 8]
jmp 0x41ab36
lea edx, [ebx + 4]
mov eax, dword [ebp - 0x2b8]
lea esi, [ebp - 0x180]
sub eax, ebx
add eax, edx
add esi, eax
cmp cx, word [0x56dc58]
je 0x41ab5e
cmp cx, word [0x56dc5c]
je 0x41ab5e
xor eax, eax
jmp 0x41ab72
cmp cx, word [0x56dc5c]
mov eax, 4
mov ecx, 0x10
cmove eax, ecx
push eax
push edx
push esi
call fcn.00502d50
mov eax, dword [ebp - 0x2b0]
add esp, 0xc
mov edx, dword [ebp - 0x2a0]
inc dword [ebp + edx*4 - 0xa0]
inc edx
add dword [ebp - 0x2b8], 0x1c
mov ecx, dword [ebp - 0x2a4]
mov dword [ebp - 0x2a0], edx
inc ecx
inc eax
add ebx, 0x1c
mov dword [ebp - 0x2a4], ecx
mov dword [ebp - 0x2b0], eax
cmp ecx, edi
jb 0x41aac6
jmp 0x41abc5
mov edx, dword [ebp - 0x2a0]
movzx eax, word [0x56dc58]
mov ecx, dword [ebp + 8]
cmp ecx, eax
jne 0x41ac4f
mov dword [ebp - 0x2b8], 0
test edx, edx
je 0x41ad70
lea ebx, [ebp - 0x17c]
nop dword [eax + eax]
xor edi, edi
lea esi, [ebp - 0x2e0]
push dword [ebx]
call fcn.00419bc0
and eax, dword [esi + 4]
add esp, 4
cmp eax, dword [esi]
je 0x41ac1a
inc edi
add esi, 0xc
cmp edi, 3
jb 0x41abf8
mov ecx, dword [ebp - 0x2b8]
jmp 0x41ac31
mov ecx, dword [ebp - 0x2b8]
lea eax, [edi + edi*2]
mov eax, dword [ebp + eax*4 - 0x2d8]
add dword [ebp + ecx*4 - 0xa0], eax
mov esi, dword [ebp - 0x2a0]
inc ecx
add ebx, 0x1c
mov dword [ebp - 0x2b8], ecx
cmp ecx, esi
jb 0x41abf0
or ecx, 0xffffffff
xor eax, eax
jmp 0x41ad83
movzx eax, word [0x56dc5c]
cmp ecx, eax
jne 0x41af05
lea eax, [ebp - 0x80]
mov ecx, 3
mov dword [ebp - 0x2ac], eax
mov dword [ebp - 0x2a4], ecx
mov dword [ebp - 0x2b8], 0
test edx, edx
je 0x41ad58
lea edx, [eax + 0x10]
lea edi, [ebp - 0x178]
mov dword [ebp - 0x2b0], edx
lea ebx, [ebp - 0x14]
mov eax, edi
sub ebx, eax
jmp 0x41aca6
mov edx, dword [ebp - 0x2b0]
lea eax, [edi + 0xf]
lea ecx, [ebp - 0x14]
cmp ecx, eax
ja 0x41acb7
lea eax, [ebp - 5]
cmp eax, edi
jae 0x41acc8
lea eax, [edx + 0xf]
lea ecx, [ebp - 0x14]
cmp ecx, eax
ja 0x41ace7
lea eax, [ebp - 5]
cmp eax, edx
jb 0x41ace7
mov esi, edx
mov ecx, edi
sub esi, edi
mov edx, 0x10
mov al, byte [ecx + esi]
lea ecx, [ecx + 1]
and al, byte [ecx - 1]
mov byte [ebx + ecx - 1], al
sub edx, 1
jne 0x41acd3
jmp 0x41acf4
movups xmm1, xmmword [edi]
movups xmm0, xmmword [edx]
andps xmm1, xmm0
movups xmmword [ebp - 0x14], xmm1
mov edx, dword [ebp - 0x2ac]
lea ecx, [ebp - 0x14]
mov esi, 0xc
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x41ad2b
add ecx, 4
add edx, 4
sub esi, 4
jae 0x41ad02
mov eax, dword [ebp - 0x2ac]
mov ecx, dword [ebp - 0x2b8]
mov eax, dword [eax + 0x20]
add dword [ebp + ecx*4 - 0xa0], eax
jmp 0x41ad31
mov ecx, dword [ebp - 0x2b8]
mov edx, dword [ebp - 0x2a0]
inc ecx
add edi, 0x1c
mov dword [ebp - 0x2b8], ecx
sub ebx, 0x1c
cmp ecx, edx
jb 0x41aca0
mov eax, dword [ebp - 0x2ac]
mov ecx, dword [ebp - 0x2a4]
add eax, 0x24
sub ecx, 1
mov dword [ebp - 0x2ac], eax
mov dword [ebp - 0x2a4], ecx
jne 0x41ac72
or ecx, 0xffffffff
xor eax, eax
test edx, edx
je 0x41ae50
mov esi, dword [ebp - 0x2a0]
mov edx, dword [ebp + eax*4 - 0xa0]
cmp edx, 0xffffffcf
jl 0x41ada2
cmp ecx, 0xffffffff
jne 0x41ad98
mov ecx, eax
jmp 0x41ada2
cmp edx, dword [ebp + ecx*4 - 0xa0]
cmovg ecx, eax
inc eax
cmp eax, esi
jb 0x41ad83
cmp ecx, 0xffffffff
je 0x41ae50
mov si, word [0x56dc58]
lea eax, [ecx*8]
mov bx, word [0x56dc5c]
lea edx, [ebp - 0x180]
sub eax, ecx
lea edx, [edx + eax*4]
movzx eax, word [edx]
cmp ax, si
je 0x41ade1
cmp ax, bx
je 0x41ade6
xor ecx, ecx
jmp 0x41adee
cmp ax, bx
jne 0x41adeb
lea ecx, [edx + 8]
jmp 0x41adee
lea ecx, [edx + 4]
mov edi, dword [ebp - 0x2b4]
sub edi, edx
add edi, ecx
cmp ax, si
je 0x41ae22
cmp ax, bx
je 0x41ae25
xor eax, eax
push eax
push ecx
push edi
call fcn.00502d50
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0050101b
mov esp, ebp
pop ebp
ret
cmp ax, bx
mov edx, 0x10
mov eax, 4
cmove eax, edx
push eax
push ecx
push edi
call fcn.00502d50
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0050101b
mov esp, ebp
pop ebp
ret
mov cx, word [0x56dc58]
movzx eax, cx
cmp dword [ebp + 8], eax
jne 0x41ae88
push 0x7f000001
call fcn.00419880
mov ecx, dword [ebp - 0x2b4]
add esp, 4
pop edi
pop esi
mov dword [ecx + 4], eax
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0050101b
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp - 0x2b4]
movzx eax, word [edx]
cmp ax, cx
je 0x41aebc
cmp ax, word [0x56dc5c]
je 0x41aec5
xor eax, eax
xorps xmm0, xmm0
pop edi
pop esi
pop ebx
movups xmmword [eax], xmm0
mov byte [eax + 0xf], 1
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0050101b
mov esp, ebp
pop ebp
ret
cmp ax, word [0x56dc5c]
jne 0x41aee5
lea eax, [edx + 8]
xorps xmm0, xmm0
pop edi
movups xmmword [eax], xmm0
pop esi
mov byte [eax + 0xf], 1
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0050101b
mov esp, ebp
pop ebp
ret
lea eax, [edx + 4]
xorps xmm0, xmm0
pop edi
movups xmmword [eax], xmm0
pop esi
mov byte [eax + 0xf], 1
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0050101b
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
mov eax, 0x11186
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0050101b
mov esp, ebp
pop ebp
ret