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

Disassembly:
sub esp, 0x25c
push ebx
push ebp
push esi
mov ebp, dword [0x10039a64]
push edi
mov ecx, 8
xor eax, eax
lea edi, [esp + 0x38]
rep stosd dword es:[edi], eax
mov eax, dword [0x10032c38]
xor ebx, ebx
cmp eax, ebx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], 1
jne 0x10003673
push ebx
call fcn.10003b90
mov dword [0x10032c38], eax
lea ecx, [esp + 0x10]
lea edx, [esp + 0x38]
push ecx
mov ecx, dword [esp + 0x274]
push edx
push 0x1002d5f8
push ecx
call eax
mov esi, eax
push esi
call dword [sym.imp.WS2_32.dll_WSASetLastError]
test esi, esi
je 0x100036e5
push 0
push 0x400
push 0x10039a80
push 0x400
push esi
push 0
push 0x12ff
call dword [sym.imp.KERNEL32.dll_FormatMessageA]
mov edx, dword [esp + 0x274]
push 0x10039a80
push str.getaddrinfo____s
push 0x100
push edx
call fcn.10016898
add esp, 0x10
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x25c
ret
mov esi, dword [esp + 0x10]
test ebp, ebp
je 0x1000371d
test esi, esi
je 0x10003711
mov eax, dword [esi + 0x18]
push eax
push ebp
call fcn.10008070
add esp, 8
test eax, eax
je 0x10003897
mov esi, dword [esi + 0x1c]
test esi, esi
jne 0x100036f1
mov esi, dword [esp + 0x10]
mov ebx, ebp
mov ebp, dword [ebp + 0x84]
test ebp, ebp
jne 0x100036ed
test esi, esi
je 0x10003b58
mov eax, dword [0x10032c2c]
mov dword [esp + 0x14], esi
test eax, eax
jne 0x10003b51
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 0x10003b47
lea edx, [esp + 0x164]
push 0x104
push edx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
test eax, eax
je 0x10003b3d
lea edi, [esp + 0x164]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x58]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x58]
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
mov ebx, dword [sym.imp.KERNEL32.dll_LoadLibraryA]
and ecx, 3
lea eax, [esp + 0x58]
rep movsb byte es:[edi], byte [esi]
push eax
call ebx
mov ebp, dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov esi, eax
test esi, esi
je 0x10003814
push str.getaddrinfo
push esi
call ebp
test eax, eax
jne 0x10003af8
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
lea edi, [esp + 0x164]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x58]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x58]
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 + 0x58]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
call ebx
mov esi, eax
test esi, esi
je 0x10003b3d
push str.getaddrinfo
push esi
call ebp
test eax, eax
jne 0x10003af8
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x10003b3d
push 0
push 0
lea ecx, [esp + 0x38]
push 6
push ecx
call fcn.10006d80
mov esi, dword [esp + 0x284]
mov eax, dword [ebp + 0x80]
push 0x100
push esi
lea edx, [esp + 0x48]
push 8
push edx
push eax
call fcn.10007890
mov ecx, dword [ebp + 0x80]
push 0x100
push esi
push ecx
call fcn.100075b0
add esp, 0x30
test eax, eax
je 0x100038f3
call fcn.10007380
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x25c
ret
test ebx, ebx
je 0x10003905
mov edx, dword [ebp + 0x84]
mov dword [ebx + 0x84], edx
jmp 0x10003910
mov eax, dword [ebp + 0x84]
mov dword [0x10039a64], eax
mov eax, dword [0x10032c2c]
mov ecx, dword [esp + 0x10]
test eax, eax
mov dword [esp + 0x14], ecx
jne 0x10003ad6
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 0x10003acc
lea edx, [esp + 0x164]
push 0x104
push edx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
test eax, eax
je 0x10003ac2
lea edi, [esp + 0x164]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x58]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x58]
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
mov ebx, dword [sym.imp.KERNEL32.dll_LoadLibraryA]
and ecx, 3
lea eax, [esp + 0x58]
rep movsb byte es:[edi], byte [esi]
push eax
call ebx
mov esi, eax
test esi, esi
je 0x10003a01
push str.getaddrinfo
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
jne 0x10003a7d
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
lea edi, [esp + 0x164]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x58]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x58]
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 + 0x58]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
call ebx
mov esi, eax
test esi, esi
je 0x10003ac2
push str.getaddrinfo
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
jne 0x10003a7d
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x10003ac2
mov ecx, dword [0x100201f0]
xor ebx, ebx
test ecx, ecx
jle 0x10003aac
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 0x10003a74
mov ecx, dword [0x100201f0]
inc ebx
add edi, 8
cmp ebx, ecx
jl 0x10003a8d
xor eax, eax
test ecx, ecx
jle 0x10003ac2
mov edx, dword [esp + eax*8 + 0x1c]
mov dword [eax*8 + 0x1002d24c], edx
inc eax
cmp eax, ecx
jl 0x10003ab2
mov dword [0x10032c28], 1
mov eax, dword [0x1002d25c]
mov dword [0x10032c2c], eax
mov ecx, dword [esp + 0x14]
push ecx
call eax
push ebp
call fcn.100168e9
add esp, 4
call fcn.10007380
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x25c
ret
mov ecx, dword [0x100201f0]
xor ebx, ebx
test ecx, ecx
jle 0x10003b27
lea edi, [esp + 0x1c]
mov ecx, dword [edi - 4]
push ecx
push esi
call ebp
test eax, eax
mov dword [edi], eax
je 0x1000388b
mov ecx, dword [0x100201f0]
inc ebx
add edi, 8
cmp ebx, ecx
jl 0x10003b08
xor eax, eax
test ecx, ecx
jle 0x10003b3d
mov edx, dword [esp + eax*8 + 0x1c]
mov dword [eax*8 + 0x1002d24c], edx
inc eax
cmp eax, ecx
jl 0x10003b2d
mov dword [0x10032c28], 1
mov eax, dword [0x1002d25c]
mov dword [0x10032c2c], eax
mov ecx, dword [esp + 0x14]
push ecx
call eax
call fcn.10007380
mov edx, dword [esp + 0x274]
push str.The_host_you_want_to_close_the_active_connection_is_not_known
push 0x100
push edx
call fcn.10016898
add esp, 0xc
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x25c
ret