Function at 0x425560
Capabilities:
Get local ipv4 addresses
Get socket information

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4b9e71
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xcc
mov eax, dword [0x509334]
xor eax, dword [ebp + 4]
push ebx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
push esi
push edi
or edi, 0xffffffff
cmp ecx, 0xffffffff
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x18], edi
je 0x4255b1
push eax
call fcn.0046e6b0
add esp, 4
mov edi, eax
xor ebx, ebx
jmp 0x4256ed
mov ecx, 0x50a720
call fcn.00456440
push fcn.004564c0
lea eax, [ebp - 0xc8]
push 0x50a720
push eax
call fcn.00425490
add esp, 0xc
lea ecx, [ebp - 0x20]
xor ebx, ebx
push ecx
mov ecx, 0x50a720
mov dword [ebp - 4], ebx
call fcn.004563d0
cmp dword [ebp - 0x20], 0xffffffff
je 0x425602
lea edx, [ebp - 0x20]
push edx
mov byte [ebp - 4], 1
call fcn.0046e6b0
add esp, 4
mov edi, eax
mov byte [ebp - 4], bl
cmp edi, 0xffffffff
jne 0x4256d8
mov ecx, 0x50a720
call fcn.00456580
lea eax, [ebp - 0x2c]
push eax
mov ecx, 0x50a720
call fcn.004563d0
mov ecx, dword [eax]
cmp ecx, edi
mov dword [ebp - 0x20], ecx
mov dx, word [eax + 4]
mov word [ebp - 0x1c], dx
jne 0x4256ca
lea ecx, [ebp - 0x60]
call fcn.0049e7ab
mov eax, str.No_ConfigServers_are_online
mov byte [ebp - 4], 3
mov dword [ebp - 0x60], vtable.common::ICloneableException.0
mov dword [ebp - 0x3c], 0xf
mov dword [ebp - 0x40], ebx
mov byte [ebp - 0x50], bl
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x425660
sub eax, edx
push eax
push str.No_ConfigServers_are_online
lea ecx, [ebp - 0x54]
call fcn.00406650
push 0x4eee04
lea eax, [ebp - 0x60]
push eax
mov dword [ebp - 0x38], ebx
mov byte [ebp - 4], bl
mov dword [ebp - 0x60], vtable.common::CRuntimeError.0
call fcn.0049e394
mov ecx, 0x50a720
call fcn.004565c0
lea eax, [ebp - 0x2c]
push eax
mov ecx, 0x50a720
call fcn.004563d0
mov ecx, dword [eax]
mov dword [ebp - 0x20], ecx
mov dx, word [eax + 4]
mov word [ebp - 0x1c], dx
mov eax, 0x4256bd
ret
lea ecx, [ebp - 0x20]
push ecx
call fcn.0046e6b0
add esp, 4
mov edi, eax
lea ecx, [ebp - 0xc8]
mov dword [ebp - 0xc8], vtable.._AV__ObjScopeGuardImpl0_VCConfigServerIPAddressCache__A0xe9bd8520__P8IServerAddressCache_Grid__AEXXZ__.0
call fcn.004253f0
mov edx, dword [sym.imp.WS2_32.dll_closesocket]
push edi
push edx
lea eax, [ebp - 0x34]
push eax
call fcn.00404300
add esp, 0xc
lea ecx, [ebp - 0x24]
push ecx
lea edx, [ebp - 0xd8]
push edx
mov esi, 0x10
push edi
mov dword [ebp - 4], 4
mov dword [ebp - 0x24], esi
call dword [sym.imp.WS2_32.dll_getsockname]
cmp eax, 0xffffffff
je 0x4258be
cmp dword [ebp - 0x24], esi
jne 0x4258be
mov eax, dword [ebp - 0xd4]
mov esi, dword [ebp + 0xc]
push 3
mov ecx, esi
mov dword [ebp - 0x18], eax
call fcn.00404910
push esi
push edi
call fcn.0046dc40
add esp, 8
push 1
mov ecx, esi
mov byte [ebp + 0xb], bl
call fcn.00404e40
test al, al
je 0x42576d
push esi
push edi
call fcn.0046f320
add esp, 8
lea ecx, [ebp + 0xb]
push ecx
mov ecx, esi
call fcn.00409960
mov ecx, esi
call fcn.00409fb0
cmp byte [ebp + 0xb], bl
jne 0x425803
lea ecx, [ebp - 0xb8]
call fcn.0049e7ab
mov eax, 0x4c505b
mov byte [ebp - 4], 6
mov dword [ebp - 0xb8], vtable.common::ICloneableException.0
mov dword [ebp - 0x94], 0xf
mov dword [ebp - 0x98], ebx
mov byte [ebp - 0xa8], bl
lea edx, [eax + 1]
jmp 0x4257c0
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x4257c0
sub eax, edx
push eax
push 0x4c505b
lea ecx, [ebp - 0xac]
call fcn.00406650
push 0x4eee04
lea edx, [ebp - 0xb8]
push edx
mov dword [ebp - 0x90], str.ConfigServer_unacceptable_protocol_version
mov byte [ebp - 4], 4
mov dword [ebp - 0xb8], vtable.common::CRuntimeError.0
call fcn.0049e394
push 4
mov ecx, esi
mov dword [ebp + 8], 0xffffffff
call fcn.00404e40
test al, al
je 0x425821
push esi
push edi
call fcn.0046f320
add esp, 8
lea eax, [ebp + 8]
push eax
mov ecx, esi
call fcn.00409be0
mov ecx, esi
call fcn.00409fb0
mov ebx, dword [ebp - 0x18]
mov esi, dword [ebp + 8]
push ebx
push esi
call fcn.00456660
add esp, 8
cmp esi, 0xffffffff
jne 0x425868
push 0x2ab
push str.p4clients_rel_betaProjectsGazelleProtoCommonSrcConfigServerClientCommands.cpp
push str.u32ClientExternalIPAddrReceivedFromAS___0xffffffff
push str.Valid_u32ClientExternalIPAddrReceivedFromAS
call fcn.00421210
mov ecx, eax
call fcn.00421080
cmp ebx, 0xffffffff
jne 0x42588d
push 0x2ac
push str.p4clients_rel_betaProjectsGazelleProtoCommonSrcConfigServerClientCommands.cpp
push str.u32ClientLocalIPAddr___0xffffffff
push str.Valid_u32ClientLocalIPAddr
call fcn.00421210
mov ecx, eax
call fcn.00421080
lea ecx, [ebp - 0x34]
mov byte [ebp - 0x30], 1
mov dword [ebp - 0x34], vtable.ScopeGuardImpl1_int____stdcall___unsigned_int___unsigned_int_.0
call fcn.00401d40
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov ecx, dword [ebp - 0x14]
xor ecx, dword [ebp + 4]
mov eax, edi
call fcn.0049e993
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea ecx, [ebp - 0x8c]
call fcn.0049e7ab
mov eax, 0x4c505b
mov byte [ebp - 4], 5
mov dword [ebp - 0x8c], vtable.common::ICloneableException.0
mov dword [ebp - 0x68], 0xf
mov dword [ebp - 0x6c], ebx
mov byte [ebp - 0x7c], bl
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x4258f0
sub eax, edx
push eax
push 0x4c505b
lea ecx, [ebp - 0x80]
call fcn.00406650
push 0x4eee04
lea ecx, [ebp - 0x8c]
push ecx
mov dword [ebp - 0x64], str.Failed_to_get_local_IP_address_of_SocketToServer
mov byte [ebp - 4], 4
mov dword [ebp - 0x8c], vtable.common::CRuntimeError.0
call fcn.0049e394
int3