Function at 0x40544d
Capabilities:
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
push 4
lea eax, [ebx + 0x1338]
push eax
push 0x80
push 0xffff
push dword [ebx + 0x1310]
mov word [eax], 1
mov word [ebx + 0x133a], 0xa
call dword [0x4969a8]
call dword [0x496520]
and dword [eax], 0
push dword [ebx + 0x1310]
lea esi, [ebx + 8]
push esi
call fcn.0040a9ce
movzx eax, ax
cmp eax, 2
pop ecx
pop ecx
mov dword [ebx + 0x133c], eax
jge 0x4054d6
push str.Error_Getting_TCP_DNS_Message
push 0x4c5820
call fcn.0040d69e
cmp byte [0x4f5e82], 1
pop ecx
pop ecx
jb 0x405d07
call fcn.0040be4d
jmp 0x405d07
movzx eax, word [esi]
mov esi, dword [0x4969cc]
push eax
call esi
lea eax, [ebx + 0xa]
lea ecx, [eax + 0xc]
mov dword [ebx], eax
mov dword [ebx + 4], ecx
test dword [eax], 0x800000
jne 0x405cc1
movzx eax, word [eax + 4]
push eax
call esi
cmp ax, 1
jne 0x405cc1
mov eax, dword [ebx]
movzx eax, word [eax + 6]
push eax
call esi
test ax, ax
jne 0x405cc1
mov eax, dword [ebx]
movzx eax, word [eax + 4]
xor edi, edi
push eax
inc edi
call esi
cmp ax, di
jb 0x40557d
push dword [ebx]
mov ecx, dword [ebx + 4]
lea eax, [ebx + 0x1008]
call fcn.00403718
movzx eax, ax
add dword [ebx + 4], eax
mov eax, dword [ebx + 4]
movzx eax, word [eax]
pop ecx
push eax
call esi
add dword [ebx + 4], 2
mov word [ebx + 0x1342], ax
mov eax, dword [ebx + 4]
movzx eax, word [eax]
push eax
call esi
add dword [ebx + 4], 2
mov word [ebx + 0x1344], ax
mov eax, dword [ebx]
movzx eax, word [eax + 4]
push eax
inc edi
call esi
movzx eax, ax
cmp edi, eax
jle 0x40552d
mov esi, dword [ebx + 0x1328]
push esi
push 0x7d
mov edx, 0x4cbeec
call fcn.0040a1ea
test eax, eax
pop ecx
pop ecx
jne 0x4055f9
push esi
push 0x10
mov edx, 0x4cdf58
call fcn.0040a1ea
test eax, eax
pop ecx
pop ecx
jne 0x4055f9
push esi
push 0xe
mov edx, 0x4cdf60
call fcn.0040a1ea
test eax, eax
pop ecx
pop ecx
jne 0x4055f9
push str.DNS_TCP_Query__Access_Denied
push 0x4c5820
call fcn.0040d69e
cmp byte [0x4f5e82], 1
pop ecx
pop ecx
jb 0x4055db
call fcn.0040be4d
mov eax, ebx
call fcn.004038de
mov eax, dword [ebx]
mov ecx, dword [eax]
and ecx, 0xf5ffffff
or ecx, 0x5000000
mov dword [eax], ecx
jmp 0x405d00
mov eax, dword [ebx]
mov eax, dword [eax]
shr eax, 0x13
and eax, 0xf
je 0x405679
mov ecx, eax
dec ecx
je 0x40563e
dec ecx
je 0x405637
dec ecx
dec ecx
je 0x405630
dec ecx
je 0x405629
push eax
push str.OpCode__u_not_supported
push 0x4c5820
call fcn.0040d69e
add esp, 0xc
jmp 0x40564f
push str.Dynamic_Update_not_needed_supported_by_Dual_Server
jmp 0x405643
push str.Notify_not_supported
jmp 0x405643
push str.Server_Status_Request_not_supported
jmp 0x405643
push str.Inverse_query_not_supported
push 0x4c5820
call fcn.0040d69e
pop ecx
pop ecx
cmp byte [0x4f5e82], 1
jb 0x40565d
call fcn.0040be4d
mov eax, ebx
call fcn.004038de
mov eax, dword [ebx]
mov ecx, dword [eax]
and ecx, 0xf4ffffff
or ecx, 0x4000000
jmp 0x4055f2
movzx eax, word [ebx + 0x1344]
cmp ax, 1
je 0x405691
movzx eax, ax
push eax
push str.DNS_Class__u_not_supported
jmp 0x40561a
cmp word [ebx + 0x1342], 0
jne 0x4056d6
push str.missing_query_type
push 0x4c5820
call fcn.0040d69e
cmp byte [0x4f5e82], 1
pop ecx
pop ecx
jb 0x4056ba
call fcn.0040be4d
mov eax, ebx
call fcn.004038de
mov eax, dword [ebx]
mov ecx, dword [eax]
and ecx, 0xf1ffffff
or ecx, 0x1000000
jmp 0x4055f2
lea eax, [ebx + 0x1008]
push eax
lea edi, [ebx + 0x1108]
push edi
mov dword [ebp - 0xc], eax
call fcn.0040d70d
push dword [ebp - 0xc]
lea esi, [ebx + 0x1208]
push esi
call fcn.0040d70d
call fcn.0040a4e0
push edi
call fcn.004863d4
add esp, 0x14
mov word [ebx + 0x1340], ax
call fcn.0040a5b3
cmp al, 0x1a
mov byte [ebx + 0x1346], al
mov byte [ebp - 5], 0
jne 0x405760
mov al, byte [0x4ccd40]
movzx ecx, word [ebx + 0x1340]
movzx dx, al
cmp cx, dx
jbe 0x405760
movzx eax, al
movzx ecx, cx
sub ecx, eax
lea eax, [ecx + ebx + 0x1108]
push 0x4ccc40
push eax
call dword [0x49655c]
test eax, eax
pop ecx
pop ecx
jne 0x405760
mov byte [ebx + 0x1346], 0x21
movzx ecx, word [ebx + 0x1342]
push 2
pop edi
cmp cx, di
je 0x4057b3
cmp cx, 6
je 0x4057b3
cmp cx, 0xfc
je 0x4057b3
cmp cx, 0xfb
je 0x4057b3
mov eax, ebx
call fcn.004038de
mov eax, dword [ebx]
mov ecx, dword [eax]
and ecx, 0xf4ffffff
or ecx, 0x4000000
mov esi, ebx
mov dword [eax], ecx
call fcn.00405d18
call fcn.0040a04e
push eax
push str.DNS_TCP_query___Query_Type_not_supported
jmp 0x405b98
cmp byte [0x4f5e84], 0
je 0x405b70
mov al, byte [ebx + 0x1346]
mov dl, 0x1d
cmp al, dl
je 0x4057dc
cmp al, 0x21
je 0x4057dc
cmp al, 0x20
je 0x4057dc
cmp al, 0x1f
jne 0x405b70
mov esi, dword [0x4cdf34]
cmp esi, dword [0x4f7384]
jg 0x405827
jl 0x4057fa
mov esi, dword [0x4cdf30]
cmp esi, dword [0x4f7380]
jae 0x405827
mov eax, ebx
call fcn.004038de
mov eax, dword [ebx]
mov ecx, dword [eax]
and ecx, 0xfaffffff
or ecx, 0xa000000
mov esi, ebx
mov dword [eax], ecx
call fcn.00405d18
push dword [ebp - 0xc]
push str.Zone__s_expired
jmp 0x405b98
movzx ecx, cx
cmp ecx, edi
je 0x405c6a
cmp ecx, 6
je 0x405bb1
add ecx, 0xffffff05
cmp ecx, 1
ja 0x405d13
cmp al, dl
jne 0x405a0e
mov eax, dword [0x4cdf0c]
mov dword [ebp - 0x1c], eax
mov eax, ebx
call fcn.0040389d
mov esi, ebx
call fcn.00404b0a
call fcn.00405d18
test ax, ax
je 0x405d13
mov eax, ebx
call fcn.0040389d
call fcn.00404a00
call fcn.00405d18
test ax, ax
je 0x405d13
movzx eax, byte [0x4c7649]
imul eax, eax, 0xc
add eax, 0x4f7344
mov ecx, dword [eax + 4]
mov edx, dword [ecx]
lea ecx, [ebx + 0x1308]
mov dword [ebp - 0x10], edi
mov dword [ecx], eax
mov dword [ecx + 4], edx
movzx eax, byte [0x4c7649]
imul eax, eax, 0xc
add eax, 0x4f7344
mov ecx, dword [eax + 4]
lea edi, [ebp - 0x18]
lea esi, [ebx + 0x1308]
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x18], eax
call fcn.00420b6a
test al, al
jne 0x405973
mov eax, ebx
call fcn.0040389d
lea esi, [ebx + 0x1308]
call fcn.0043c2c2
mov eax, dword [eax + 0x1c]
mov ecx, dword [eax + 0xc]
cmp ecx, dword [0x4f7384]
jl 0x40595f
jg 0x40590d
mov eax, dword [eax + 8]
cmp eax, dword [0x4f7380]
jbe 0x40595f
call fcn.0043c2c2
mov eax, dword [eax + 0x1c]
mov al, byte [eax + 0x11]
cmp al, 2
je 0x40593e
cmp al, 7
je 0x40592c
cmp al, 0xa
jbe 0x405965
cmp al, 0xc
jbe 0x405935
cmp al, 0xd
jne 0x405965
mov edi, ebx
call fcn.0040514a
jmp 0x405945
mov edi, ebx
call fcn.00405233
jmp 0x405945
mov edi, ebx
call fcn.0040514a
mov eax, dword [ebp - 0x1c]
cmp eax, dword [0x4cdf0c]
jne 0x40596f
mov esi, ebx
call fcn.00405d18
test ax, ax
je 0x40596f
inc dword [ebp - 0x10]
lea esi, [ebx + 0x1308]
call fcn.00478026
jmp 0x4058b2
mov byte [ebp - 5], 1
movzx eax, byte [0x4c7649]
and dword [ebp - 0x14], 0
cmp byte [eax + 0x4cded6], 0
jbe 0x4059d1
mov eax, ebx
call fcn.0040389d
mov bl, byte [ebp - 0x14]
mov esi, dword [ebp + 8]
call fcn.00405360
mov eax, dword [ebp - 0x1c]
cmp eax, dword [0x4cdf0c]
jne 0x4059cb
call fcn.00405d18
test ax, ax
mov ebx, esi
je 0x4059cd
movzx eax, byte [0x4c7649]
movzx eax, byte [eax + 0x4cded6]
inc dword [ebp - 0x10]
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], eax
jl 0x405987
jmp 0x4059d1
mov ebx, esi
mov byte [ebp - 5], 1
mov eax, ebx
call fcn.0040389d
mov esi, ebx
call fcn.00404b0a
cmp byte [ebp - 5], 0
jne 0x405d13
mov eax, dword [ebp - 0x1c]
cmp eax, dword [0x4cdf0c]
jne 0x405d13
call fcn.00405d18
test ax, ax
je 0x405d13
mov eax, dword [ebp - 0x10]
jmp 0x405b51
cmp al, 0x20
jne 0x405b70
mov eax, dword [0x4cdf10]
mov dword [ebp - 0x1c], eax
mov eax, ebx
call fcn.0040389d
mov esi, ebx
call fcn.00404b0a
call fcn.00405d18
test ax, ax
je 0x405d13
mov eax, ebx
call fcn.0040389d
call fcn.00404a00
call fcn.00405d18
test ax, ax
je 0x405d13
movzx eax, byte [0x4c7649]
imul eax, eax, 0xc
add eax, 0x4f7344
mov ecx, dword [eax + 4]
mov edx, dword [ecx]
lea ecx, [ebx + 0x1308]
mov dword [ebp + 8], edi
mov dword [ecx], eax
mov dword [ecx + 4], edx
movzx eax, byte [0x4c7649]
imul eax, eax, 0xc
add eax, 0x4f7344
mov ecx, dword [eax + 4]
lea edi, [ebp - 0x18]
lea esi, [ebx + 0x1308]
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x18], eax
call fcn.00420b6a
test al, al
jne 0x405b19
mov eax, ebx
call fcn.0040389d
lea esi, [ebx + 0x1308]
call fcn.0043c2c2
mov eax, dword [eax + 0x1c]
mov ecx, dword [eax + 0xc]
cmp ecx, dword [0x4f7384]
jl 0x405b05
jg 0x405acd
mov eax, dword [eax + 8]
cmp eax, dword [0x4f7380]
jbe 0x405b05
call fcn.0043c2c2
mov eax, dword [eax + 0x1c]
mov al, byte [eax + 0x11]
cmp al, 3
je 0x405ae4
cmp al, 8
je 0x405ae4
cmp al, 0xe
jne 0x405b0b
mov edi, ebx
call fcn.00405046
mov eax, dword [ebp - 0x1c]
cmp eax, dword [0x4cdf10]
jne 0x405b15
mov esi, ebx
call fcn.00405d18
test ax, ax
je 0x405b15
inc dword [ebp + 8]
lea esi, [ebx + 0x1308]
call fcn.00478026
jmp 0x405a76
mov byte [ebp - 5], 1
mov eax, ebx
call fcn.0040389d
mov esi, ebx
call fcn.00404b0a
cmp byte [ebp - 5], 0
jne 0x405d13
mov eax, dword [ebp - 0x1c]
cmp eax, dword [0x4cdf10]
jne 0x405d13
call fcn.00405d18
test ax, ax
je 0x405d13
mov eax, dword [ebp + 8]
inc eax
movzx eax, ax
push eax
push dword [ebp - 0xc]
push str.Zone__s_with__d_RRs_Sent
push 0x4c5820
call fcn.0040d69e
add esp, 0x10
jmp 0x405c53
mov eax, ebx
call fcn.004038de
mov eax, dword [ebx]
mov ecx, dword [eax]
and ecx, 0xf9ffffff
or ecx, 0x9000000
mov esi, ebx
mov dword [eax], ecx
call fcn.00405d18
push dword [ebp - 0xc]
push str.Server_is_not_authority_for_zone__s
push 0x4c5820
call fcn.0040d69e
add esp, 0xc
cmp byte [0x4f5e82], 1
jmp 0x405c5a
cmp al, dl
je 0x405c13
cmp al, 0x20
je 0x405c13
mov eax, ebx
call fcn.004038de
mov esi, ebx
call fcn.00404ca7
mov eax, dword [ebx]
and dword [eax], 0xfffbffff
mov eax, dword [ebx]
and dword [eax], 0xdfffffff
mov eax, dword [ebx]
and dword [eax], 0xf0ffffff
call fcn.00405d18
call fcn.0040a04e
push eax
push str._s_not_found
push 0x4c5820
call fcn.0040d69e
add esp, 0xc
cmp byte [0x4f5e82], 2
jb 0x405d13
call fcn.0040be4d
jmp 0x405d13
mov eax, ebx
call fcn.004038de
mov esi, ebx
call fcn.00404b0a
mov eax, dword [ebx]
and dword [eax], 0xfffbffff
mov eax, dword [ebx]
and dword [eax], 0xdfffffff
mov eax, dword [ebx]
and dword [eax], 0xf0ffffff
call fcn.00405d18
push dword [ebp - 0xc]
push str.SOA_Sent_for_zone__s
push 0x4c5820
call fcn.0040d69e
add esp, 0xc
cmp byte [0x4f5e82], 2
jb 0x405d13
call fcn.0040be4d
jmp 0x405d13
cmp al, dl
je 0x405c87
cmp al, 0x20
je 0x405c87
mov eax, ebx
call fcn.004038de
mov eax, ebx
call fcn.00404e44
mov esi, ebx
jmp 0x405bc7
mov eax, ebx
call fcn.004038de
mov esi, ebx
call fcn.00404a00
call fcn.00404f58
mov eax, dword [ebx]
and dword [eax], 0xfffbffff
mov eax, dword [ebx]
and dword [eax], 0xdfffffff
mov eax, dword [ebx]
and dword [eax], 0xf0ffffff
call fcn.00405d18
push dword [ebp - 0xc]
push str.NS_Sent_for_Zone__s
jmp 0x405c46
push str.DNS_Query_Format_Error
push 0x4c5820
call fcn.0040d69e
cmp byte [0x4f5e82], 1
pop ecx
pop ecx
jb 0x405ce0
call fcn.0040be4d
mov eax, ebx
call fcn.004038de
mov eax, dword [ebx]
mov ecx, dword [eax]
and ecx, 0xf1ffffff
or ecx, 0x1000000
mov dword [eax], ecx
mov eax, dword [ebx]
and word [eax + 4], 0
mov esi, ebx
call fcn.00405d18
push dword [ebx + 0x1310]
call dword [0x496998]
pop edi
pop esi
pop ebx
leave
ret