Function at 0x40aa10
Capabilities:
Resolve dns

Disassembly:
sub esp, 0x42c
mov eax, dword [0x45a7c0]
mov dword [esp + 0x428], eax
mov eax, dword [0x466450]
push ebp
or ebp, 0xffffffff
test eax, eax
push esi
mov esi, dword [esp + 0x438]
je 0x40aa45
push esi
push str.scan_line__s__n
call fcn.0040ce60
add esp, 8
mov al, byte [esi]
cmp al, 0x20
je 0x40aa4f
cmp al, 9
jne 0x40aa52
inc esi
jmp 0x40aa45
push 0x3d
push esi
call fcn.00423460
add esp, 8
test eax, eax
je 0x40aa9e
cmp eax, esi
lea edx, [eax + 1]
mov dword [esp + 8], edx
jbe 0x40aa82
lea esp, [esp]
mov cl, byte [eax - 1]
cmp cl, 0x20
je 0x40aa7d
cmp cl, 9
jne 0x40aa82
dec eax
cmp eax, esi
ja 0x40aa70
mov cl, byte [edx]
cmp cl, 0x20
je 0x40aa8e
cmp cl, 9
jne 0x40aa95
inc edx
mov dword [esp + 8], edx
jmp 0x40aa82
sub eax, esi
cmp eax, 0x3ff
jbe 0x40aab6
pop esi
or eax, 0xffffffff
pop ebp
mov ecx, dword [esp + 0x428]
call fcn.004233fe
add esp, 0x42c
ret
mov ecx, eax
mov edx, ecx
push edi
shr ecx, 2
lea edi, [esp + 0x34]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov byte [esp + eax + 0x34], 0
lea eax, [esp + 0x34]
push 0x5b
push eax
call fcn.00423460
add esp, 8
test eax, eax
je 0x40aafa
mov byte [eax], 0
mov cl, byte [eax + 1]
inc eax
cmp cl, 0x5d
je 0x40aafa
push eax
call fcn.00423b66
add esp, 4
mov ebp, eax
mov eax, dword [str.L1_cache_size]
test eax, eax
push ebx
mov ebx, 0x42ff30
mov dword [esp + 0x14], ebx
je 0x40b144
lea esi, [esp + 0x38]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x40ab39
test cl, cl
je 0x40ab35
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x40ab39
add eax, 2
add esi, 2
test cl, cl
jne 0x40ab15
xor eax, eax
jmp 0x40ab3e
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x40ab55
mov eax, dword [ebx + 0x14]
add ebx, 0x14
test eax, eax
jne 0x40ab11
mov dword [esp + 0x14], ebx
jmp 0x40b144
mov eax, dword [ebx + 0xc]
test eax, eax
mov dword [esp + 0x14], ebx
je 0x40ab74
mov ecx, dword [esp + 0x10]
push ecx
push ebx
call dword [eax]
add esp, 8
cmp eax, 0xffffffff
je 0x40b13f
mov eax, dword [ebx + 4]
lea ecx, [eax - 1]
cmp ecx, 0xf
ja case.0x40ab83.7
jmp dword [ecx*4 + 0x40b190]
mov eax, dword [esp + 0x10]
push 0
lea edx, [esp + 0x14]
push edx
push eax
call fcn.00423dea
mov esi, eax
mov eax, dword [esp + 0x1c]
add esp, 0xc
test eax, eax
je 0x40abc2
mov cl, byte [eax]
cmp cl, 0x6b
jne 0x40abb2
shl esi, 0xa
cmp cl, 0x4d
jne 0x40abba
shl esi, 0x14
cmp cl, 0x47
jne 0x40abc2
shl esi, 0x1e
mov ecx, dword [ebx + 8]
mov ecx, dword [ecx]
cmp ecx, esi
je 0x40b131
mov eax, dword [0x466450]
test eax, eax
je 0x40abec
push esi
push ecx
lea edx, [esp + 0x40]
push edx
push str.changing__s_from__d_to__d_n
call fcn.0040ce60
add esp, 0x10
mov eax, dword [ebx + 8]
mov dword [eax], esi
mov ecx, dword [0x466478]
mov eax, 0xa
cmp ecx, eax
jge 0x40ac05
mov dword [0x466478], eax
cmp dword [0x465e68], 0x10
jle 0x40b12d
mov dword [0x465e68], 0x10
jmp 0x40b12d
mov edx, dword [esp + 0x10]
push 0
lea ecx, [esp + 0x14]
push ecx
push edx
call fcn.00423e01
mov esi, eax
mov eax, dword [esp + 0x1c]
add esp, 0xc
test eax, eax
je 0x40ac59
mov cl, byte [eax]
cmp cl, 0x6b
jne 0x40ac49
shl esi, 0xa
cmp cl, 0x4d
jne 0x40ac51
shl esi, 0x14
cmp cl, 0x47
jne 0x40ac59
shl esi, 0x1e
mov ecx, dword [ebx + 8]
mov ecx, dword [ecx]
cmp ecx, esi
je 0x40b131
mov eax, dword [0x466450]
test eax, eax
je 0x40ac84
push esi
push esi
push ecx
lea edx, [esp + 0x44]
push edx
push str.changing__s_from__ld_to__ld__0x_lx__n
call fcn.0040ce60
add esp, 0x14
mov eax, dword [ebx + 8]
mov dword [eax], esi
jmp 0x40b12d
mov eax, dword [esp + 0x10]
mov cl, byte [eax]
cmp cl, 0x30
jl 0x40acb5
cmp cl, 0x39
jg 0x40acb5
push eax
call fcn.00423b66
mov esi, eax
mov eax, dword [esp + 0x14]
add esp, 4
neg esi
sbb esi, esi
neg esi
jmp 0x40ad10
cmp cl, 0x74
je 0x40acbf
cmp cl, 0x54
jne 0x40ad07
mov cl, byte [eax + 1]
cmp cl, 0x72
je 0x40accc
cmp cl, 0x52
jne 0x40ad07
mov cl, byte [eax + 2]
cmp cl, 0x75
je 0x40acd9
cmp cl, 0x55
jne 0x40ad07
mov cl, byte [eax + 3]
cmp cl, 0x65
je 0x40ace6
cmp cl, 0x45
jne 0x40ad07
mov cl, byte [eax + 4]
test cl, cl
je 0x40ad0b
cmp cl, 0x20
je 0x40ad0b
cmp cl, 9
je 0x40ad0b
cmp cl, 0x23
je 0x40ad0b
cmp cl, 0x2f
jne 0x40ad07
cmp byte [eax + 5], 0x2f
je 0x40ad0b
xor esi, esi
jmp 0x40ad10
mov esi, 1
mov ecx, dword [ebx + 8]
mov ecx, dword [ecx]
cmp ecx, esi
je 0x40b131
mov eax, dword [0x466450]
test eax, eax
je 0x40ad3a
push esi
push ecx
lea edx, [esp + 0x40]
push edx
push str.changing__s_from__d_to__d_n
call fcn.0040ce60
add esp, 0x10
mov eax, dword [ebx + 8]
mov dword [eax], esi
jmp 0x40b12d
test ebp, ebp
jl 0x40b12d
cmp ebp, 0x64
jg 0x40b12d
mov ecx, dword [esp + 0x10]
mov edx, dword [ebx + 8]
inc ebp
push ebp
push ecx
push edx
call fcn.004091e0
add esp, 0xc
jmp 0x40b12d
cmp ebp, 0xffffffff
jl 0x40b12d
cmp ebp, 0x64
jg 0x40b12d
cmp ebp, 0xffffffff
jne 0x40ad91
mov eax, dword [0x465ec8]
mov ebp, eax
inc eax
mov dword [0x465ec8], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov esi, dword [ecx + 8]
push eax
mov ebx, ebp
call fcn.0040a960
mov ebx, dword [esp + 0x18]
add esp, 4
jmp 0x40b12d
mov eax, dword [esp + 0x10]
mov edi, 0x4311d0
mov esi, eax
mov ecx, 4
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40add5
mov ecx, dword [ebx + 8]
mov eax, 1
mov dword [ecx], eax
jmp 0x40b12d
mov esi, eax
mov edi, str.substring
mov ecx, 0xa
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x40adf1
mov ecx, dword [ebx + 8]
mov dword [ecx], eax
jmp 0x40b12d
push str.type_should_be_key_or_substring_n
call fcn.0040ce60
add esp, 4
jmp 0x40b12d
mov eax, dword [esp + 0x10]
mov ecx, 7
mov edi, str.UTF_8
mov esi, eax
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40ae37
add eax, 4
mov dword [esp + 0x10], eax
mov byte [eax], 0xef
mov eax, dword [esp + 0x10]
mov byte [eax + 1], 0xbb
mov ecx, dword [esp + 0x10]
mov byte [ecx + 2], 0xbf
mov eax, dword [esp + 0x10]
push eax
call fcn.0042dba7
add esp, 4
push 0x465da0
mov esi, eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edx, dword [ebx + 8]
mov eax, dword [edx]
test eax, eax
je 0x40ae5f
push eax
call fcn.00422e9a
add esp, 4
mov eax, dword [ebx + 8]
mov dword [eax], esi
call fcn.00409430
push 0x465da0
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x40b12d
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov esi, dword [ecx + 8]
push edx
call fcn.0042dba7
mov edi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
add esp, 4
push 0x465da0
mov ebx, eax
call edi
push esi
call edi
mov eax, dword [esi + 0x1c]
test eax, eax
je 0x40aeaf
push eax
call fcn.00422e9a
add esp, 4
mov edx, dword [esi + 0x18]
inc edx
mov dword [esi + 0x1c], ebx
mov dword [esi + 0x18], edx
push esi
mov esi, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
call esi
call fcn.00409430
push 0x465da0
call esi
mov ebx, dword [esp + 0x14]
jmp 0x40b12d
test ebp, ebp
jl 0x40b12d
cmp ebp, 0x64
jg 0x40b12d
mov eax, dword [ebx + 8]
shl ebp, 5
add ebp, eax
mov eax, dword [esp + 0x10]
push eax
mov esi, ebp
call fcn.0042dba7
add esp, 4
push esi
mov edi, eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [esi + 0x1c]
test eax, eax
je 0x40af18
push eax
call fcn.00422e9a
add esp, 4
mov ecx, dword [esi + 0x18]
inc ecx
push esi
mov dword [esi + 0x1c], edi
mov dword [esi + 0x18], ecx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x40b12d
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x14]
push ecx
push edx
call fcn.00409ae0
add esp, 8
test eax, eax
jne 0x40afa7
mov eax, dword [esp + 0x10]
push eax
call dword [sym.imp.WS2_32.dll_gethostbyname]
test eax, eax
jne 0x40af6f
mov ecx, dword [esp + 0x10]
push ecx
push str._s:_host_unknown._n
push 0x45a810
call fcn.00423e7e
add esp, 0xc
jmp 0x40b12d
movsx ecx, word [eax + 0xa]
mov edx, dword [eax + 0xc]
mov esi, dword [edx]
mov eax, ecx
shr ecx, 2
lea edi, [esp + 0x14]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x14]
push ecx
lea edx, [esp + 0x1c]
push edx
call fcn.0041fa90
push eax
push str.Using__s_IP_address_n
call fcn.00423e18
add esp, 0x10
mov eax, dword [ebx + 8]
mov ecx, dword [esp + 0x14]
mov dword [eax], ecx
jmp 0x40b12d
mov esi, dword [ebx + 8]
xor edx, edx
lea ebx, [ebx]
mov eax, dword [esp + 0x10]
movsx ecx, byte [eax]
inc eax
cmp ecx, 0x30
mov dword [esp + 0x10], eax
jl 0x40afd6
cmp ecx, 0x39
jle 0x40afe8
cmp ecx, 0x61
jl 0x40b131
cmp ecx, 0x7a
jg 0x40b131
movsx ecx, byte [eax]
inc eax
cmp ecx, 0x30
mov dword [esp + 0x10], eax
jl 0x40afff
cmp ecx, 0x39
jg 0x40afff
sub ecx, 0x30
jmp 0x40b014
cmp ecx, 0x61
jl 0x40b131
cmp ecx, 0x7a
jg 0x40b131
sub ecx, 0x57
mov byte [edx + esi], cl
mov eax, dword [esp + 0x10]
movsx ecx, byte [eax]
inc eax
cmp ecx, 0x30
mov dword [esp + 0x10], eax
jl 0x40b02d
cmp ecx, 0x39
jle 0x40b03f
cmp ecx, 0x61
jl 0x40b131
cmp ecx, 0x7a
jg 0x40b131
movsx ecx, byte [eax]
inc eax
cmp ecx, 0x30
mov dword [esp + 0x10], eax
jl 0x40b056
cmp ecx, 0x39
jg 0x40b056
sub ecx, 0x30
jmp 0x40b06b
cmp ecx, 0x61
jl 0x40b131
cmp ecx, 0x7a
jg 0x40b131
sub ecx, 0x57
mov byte [edx + esi + 1], cl
mov eax, dword [esp + 0x10]
movsx ecx, byte [eax]
inc eax
cmp ecx, 0x30
mov dword [esp + 0x10], eax
jl 0x40b085
cmp ecx, 0x39
jle 0x40b097
cmp ecx, 0x61
jl 0x40b131
cmp ecx, 0x7a
jg 0x40b131
movsx ecx, byte [eax]
inc eax
cmp ecx, 0x30
mov dword [esp + 0x10], eax
jl 0x40b0ae
cmp ecx, 0x39
jg 0x40b0ae
sub ecx, 0x30
jmp 0x40b0bb
cmp ecx, 0x61
jl 0x40b131
cmp ecx, 0x7a
jg 0x40b131
sub ecx, 0x57
mov byte [edx + esi + 2], cl
mov eax, dword [esp + 0x10]
movsx ecx, byte [eax]
inc eax
cmp ecx, 0x30
mov dword [esp + 0x10], eax
jl 0x40b0d5
cmp ecx, 0x39
jle 0x40b0df
cmp ecx, 0x61
jl 0x40b131
cmp ecx, 0x7a
jg 0x40b131
movsx ecx, byte [eax]
inc eax
cmp ecx, 0x30
mov dword [esp + 0x10], eax
jl 0x40b0f6
cmp ecx, 0x39
jg 0x40b0f6
sub ecx, 0x30
jmp 0x40b103
cmp ecx, 0x61
jl 0x40b131
cmp ecx, 0x7a
jg 0x40b131
sub ecx, 0x57
mov byte [edx + esi + 3], cl
add edx, 4
cmp edx, 0x10
jl 0x40afc0
jmp 0x40b12d
lea edx, [esp + 0x38]
push edx
push eax
push str.Unknown_type__d_for__s_item_n
push 0x45a810
call fcn.00423e7e
add esp, 0x10
mov eax, dword [esp + 0x10]
mov ecx, dword [ebx + 0x10]
test ecx, ecx
je 0x40b13f
push eax
push ebx
call ecx
add esp, 8
cmp dword [ebx], 0
jne 0x40b175
lea eax, [esp + 0x38]
push eax
push str.Unknown_config_keyword_:__s_n
push 0x45a810
call fcn.00423e7e
add esp, 0xc
pop ebx
pop edi
pop esi
or eax, 0xffffffff
pop ebp
mov ecx, dword [esp + 0x428]
call fcn.004233fe
add esp, 0x42c
ret
mov ecx, dword [esp + 0x438]
pop ebx
pop edi
pop esi
xor eax, eax
pop ebp
call fcn.004233fe
add esp, 0x42c
ret