Function at 0x10007ab0
Capabilities:
Get common file path
Link many functions at runtime

Disassembly:
sub esp, 0x258
push ebx
push ebp
push esi
mov esi, dword [esp + 0x268]
test esi, esi
push edi
je 0x1000805a
cmp byte [esi], 0
je 0x1000805a
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
push ecx
call fcn.100169d2
mov ebp, eax
add esp, 4
test ebp, ebp
mov dword [esp + 0x14], ebp
jne 0x10007b1d
mov eax, dword [esp + 0x27c]
mov ecx, dword [esp + 0x278]
push eax
push ecx
push str.sock_check_hostlist____malloc___failed
call fcn.100071f0
add esp, 0xc
mov eax, 0xfffffffe
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x258
ret
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
mov ebx, dword [esp + 0x270]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push ebx
mov edx, ecx
mov esi, edi
mov edi, ebp
push ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.10017340
mov esi, eax
add esp, 8
test esi, esi
mov dword [esp + 0x10], 0
je 0x10008019
mov ecx, 8
xor eax, eax
lea edi, [esp + 0x34]
xor edx, edx
rep stosd dword es:[edi], eax
mov eax, dword [0x10032c38]
mov dword [esp + 0x10], edx
cmp eax, edx
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], 1
jne 0x10007b92
push edx
call fcn.10003b90
mov dword [0x10032c38], eax
lea ecx, [esp + 0x10]
lea edx, [esp + 0x34]
push ecx
push edx
push 0x1002d5f8
push esi
call eax
mov esi, eax
push esi
call dword [sym.imp.WS2_32.dll_WSASetLastError]
test esi, esi
je 0x10007c04
mov edi, dword [esp + 0x278]
test edi, edi
je 0x10007e17
push 0
push 0x400
push 0x10039a80
push 0x400
push esi
push 0
push 0x12ff
call dword [sym.imp.KERNEL32.dll_FormatMessageA]
mov esi, dword [esp + 0x27c]
push 0x10039a80
push str.getaddrinfo____s
push esi
push edi
call fcn.10016898
add esp, 0x10
mov byte [edi + esi - 1], 0
jmp 0x10007e17
mov esi, dword [esp + 0x10]
test esi, esi
je 0x10007c33
mov eax, dword [esi + 0x18]
mov ecx, dword [esp + 0x274]
push eax
push ecx
call fcn.10008070
add esp, 8
test eax, eax
je 0x10007f9f
mov esi, dword [esi + 0x1c]
test esi, esi
jne 0x10007c0c
mov esi, dword [esp + 0x10]
mov eax, dword [0x10032c2c]
mov dword [esp + 0x30], esi
test eax, eax
jne 0x10007e08
mov eax, dword [0x10032c28]
mov dword [esp + 0x18], str.getaddrinfo
test eax, eax
mov dword [esp + 0x1c], 0x100026b0
mov dword [esp + 0x20], str.getnameinfo
mov dword [esp + 0x24], 0x100033f0
mov dword [esp + 0x28], str.freeaddrinfo
mov dword [esp + 0x2c], 0x10002660
je 0x10007c87
mov eax, dword [0x1002d25c]
jmp 0x10007e03
lea edx, [esp + 0x160]
push 0x104
push edx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
test eax, eax
je 0x10007de9
lea edi, [esp + 0x160]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x54]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov ebp, dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x54]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, str.ws2_32
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
lea eax, [esp + 0x54]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
call ebp
mov esi, eax
test esi, esi
je 0x10007d2a
mov ebx, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.getaddrinfo
push esi
call ebx
test eax, eax
jne 0x10007da8
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x10007d30
mov ebx, dword [sym.imp.KERNEL32.dll_GetProcAddress]
lea edi, [esp + 0x160]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x54]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x54]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, str.wship6
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea eax, [esp + 0x54]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
call ebp
mov esi, eax
test esi, esi
je 0x10007de9
push str.getaddrinfo
push esi
call ebx
test eax, eax
jne 0x10007da8
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x10007de9
mov ecx, dword [0x100201f0]
xor ebp, ebp
test ecx, ecx
jle 0x10007dd3
lea edi, [esp + 0x1c]
mov ecx, dword [edi - 4]
push ecx
push esi
call ebx
test eax, eax
mov dword [edi], eax
je 0x10007d9f
mov ecx, dword [0x100201f0]
inc ebp
add edi, 8
cmp ebp, ecx
jl 0x10007db8
xor eax, eax
test ecx, ecx
jle 0x10007de9
mov edx, dword [esp + eax*8 + 0x1c]
mov dword [eax*8 + 0x1002d24c], edx
inc eax
cmp eax, ecx
jl 0x10007dd9
mov eax, dword [0x1002d25c]
mov ebp, dword [esp + 0x14]
mov ebx, dword [esp + 0x270]
mov dword [0x10032c28], 1
mov dword [0x10032c2c], eax
mov ecx, dword [esp + 0x30]
push ecx
call eax
mov dword [esp + 0x10], 0
push ebx
push 0
call fcn.10017340
mov esi, eax
add esp, 8
test esi, esi
jne 0x10007b5f
mov eax, dword [esp + 0x10]
test eax, eax
je 0x10008019
mov ebx, eax
mov eax, dword [0x10032c2c]
test eax, eax
jne 0x1000800e
mov eax, dword [0x10032c28]
mov dword [esp + 0x18], str.getaddrinfo
test eax, eax
mov dword [esp + 0x1c], 0x100026b0
mov dword [esp + 0x20], str.getnameinfo
mov dword [esp + 0x24], 0x100033f0
mov dword [esp + 0x28], str.freeaddrinfo
mov dword [esp + 0x2c], 0x10002660
jne 0x10008004
lea edx, [esp + 0x160]
push 0x104
push edx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
test eax, eax
je 0x10007ffa
lea edi, [esp + 0x160]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x54]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x54]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, str.ws2_32
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebp, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebp
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebp
mov ebp, dword [sym.imp.KERNEL32.dll_LoadLibraryA]
and ecx, 3
lea eax, [esp + 0x54]
rep movsb byte es:[edi], byte [esi]
push eax
call ebp
mov esi, eax
test esi, esi
je 0x10007f23
push str.getaddrinfo
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
jne 0x10007fb5
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
lea edi, [esp + 0x160]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x54]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x54]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, str.wship6
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea eax, [esp + 0x54]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
call ebp
mov esi, eax
test esi, esi
je 0x10007ffa
push str.getaddrinfo
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
jne 0x10007fb5
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x10007ffa
push ebp
call fcn.100168e9
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x258
ret
mov ecx, dword [0x100201f0]
xor ebp, ebp
test ecx, ecx
jle 0x10007fe4
lea edi, [esp + 0x1c]
mov ecx, dword [edi - 4]
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
mov dword [edi], eax
je 0x10007f96
mov ecx, dword [0x100201f0]
inc ebp
add edi, 8
cmp ebp, ecx
jl 0x10007fc5
xor eax, eax
test ecx, ecx
jle 0x10007ffa
mov edx, dword [esp + eax*8 + 0x1c]
mov dword [eax*8 + 0x1002d24c], edx
inc eax
cmp eax, ecx
jl 0x10007fea
mov dword [0x10032c28], 1
mov eax, dword [0x1002d25c]
mov dword [0x10032c2c], eax
push ebx
call eax
mov dword [esp + 0x10], 0
mov esi, dword [esp + 0x278]
test esi, esi
je 0x1000803f
mov edi, dword [esp + 0x27c]
push str.The_host_is_not_in_the_allowed_host_list._Connection_refused.
push edi
push esi
call fcn.10016898
add esp, 0xc
mov byte [esi + edi - 1], 0
mov eax, dword [esp + 0x14]
push eax
call fcn.100168e9
add esp, 4
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x258
ret
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x258
ret