Function at 0x419a70
Capabilities:
Convert ip address from string

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xc8
mov dword [esp + 0x1c], edx
mov dword [esp], ecx
mov ebx, dword [esp + 0xe4]
mov ebp, dword [esp + 0xdc]
mov dword [ebx], 0
movaps xmm0, xmmword [0x43b9f0]
movups xmmword [esp + 0x2c], xmm0
movups xmmword [esp + 0x3c], xmm0
movups xmmword [esp + 0x4c], xmm0
movups xmmword [esp + 0x5c], xmm0
movups xmmword [esp + 0x6c], xmm0
test ebp, ebp
je 0x419b33
mov edi, dword [esp + 0xe0]
test edi, edi
je 0x419ccd
push edi
call sub.msvcrt.dll_strlen
add esp, 4
mov dword [esp + 8], eax
mov eax, dword [esp]
test byte [eax + 0x158], 0x20
jne 0x419b3d
mov dword [esp + 4], 0
lea esi, [eax + 0x70]
jmp 0x419afb
mov esi, dword [esi + 0x18]
test esi, esi
je 0x419cf6
cmp dword [esi + 4], 3
jne 0x419af0
mov eax, dword [esi + 8]
movzx ecx, word [eax]
xor ecx, 0x455
movzx eax, byte [eax + 2]
xor eax, 3
or ax, cx
jne 0x419af0
lea ecx, [esi + 0xc]
mov edx, edi
push dword [esp + 8]
call fcn.0041ab60
add esp, 4
test eax, eax
jne 0x419af0
jmp 0x419cfe
mov eax, 0xffffd800
jmp 0x419dbd
lea edi, [eax + 0xf8]
xor ebx, ebx
mov esi, edi
xor ebp, ebp
mov eax, dword [esi]
and eax, 0x1f
cmp eax, 7
jne 0x419bd1
nop word cs:[eax + eax]
mov esi, dword [esi + 0xc]
test esi, esi
je 0x419be2
mov eax, dword [esi]
and eax, 0x1f
cmp eax, 7
je 0x419b60
cmp eax, 6
je 0x419ba9
cmp eax, 2
jne 0x419bbf
mov ebp, 1
mov ecx, esi
mov edx, dword [esp + 0xe0]
push dword [esp + 8]
call fcn.0041ab60
add esp, 4
test eax, eax
je 0x419c67
mov esi, dword [esi + 0xc]
test esi, esi
jne 0x419b49
jmp 0x419cd7
mov esi, dword [esi + 0xc]
mov ebx, 1
mov ebp, 1
test esi, esi
jne 0x419b49
jmp 0x41a26b
mov esi, dword [esi + 0xc]
mov ebp, 1
test esi, esi
jne 0x419b49
jmp 0x419be2
cmp eax, 2
je 0x419b80
cmp eax, 6
jne 0x419b9d
mov ebx, 1
jmp 0x419b9d
test ebx, ebx
sete al
mov dword [esp + 0xc], eax
push 0x3a
mov ebp, dword [esp + 0xe4]
push ebp
call sub.msvcrt.dll_strchr
add esp, 8
test eax, eax
mov eax, 2
mov ecx, 0x17
cmove ecx, eax
mov eax, 4
mov ebx, 0x10
mov dword [esp + 4], 4
cmove ebx, eax
lea esi, [esp + 0x80]
push esi
push ebp
push ecx
call dword [sym.imp.WS2_32.dll_inet_pton]
xor ebp, ebp
cmp eax, 1
cmove ebp, ebx
jne 0x419c7f
mov ebx, edi
jmp 0x419c47
mov ebx, dword [ebx + 0xc]
test ebx, ebx
je 0x419c7f
mov eax, dword [ebx]
and eax, 0x1f
cmp eax, 7
jne 0x419c40
cmp dword [ebx + 4], ebp
jne 0x419c40
push ebp
push esi
push dword [ebx + 8]
call sub.msvcrt.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x419c40
mov dword [esp + 4], 0
mov ebx, dword [esp + 0xe4]
mov ebp, dword [esp + 0xdc]
jmp 0x419cfe
cmp byte [esp + 0xc], 0
mov ebx, dword [esp + 0xe4]
mov ebp, dword [esp + 0xdc]
jne 0x419cfe
mov esi, dword [esp + 8]
jmp 0x419ca7
mov edi, dword [edi + 0xc]
test edi, edi
je 0x419cf6
mov eax, dword [edi]
and eax, 0x1f
cmp eax, 6
jne 0x419ca0
cmp dword [edi + 4], esi
jne 0x419ca0
push esi
push dword [esp + 0xe4]
push dword [edi + 8]
call sub.msvcrt.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x419ca0
mov dword [esp + 4], 0
jmp 0x419cfe
test ebx, ebx
sete al
test ebp, ebp
jne 0x419be7
test ebx, ebx
mov ebx, dword [esp + 0xe4]
mov ebp, dword [esp + 0xdc]
jne 0x419c94
mov dword [esp + 4], 4
mov eax, dword [esp]
lea esi, [eax + 0xcc]
push esi
call fcn.0041af70
add esp, 4
test eax, eax
je 0x419d27
mov ecx, dword [ebp + 4]
dec al
movzx eax, al
bt ecx, eax
jae 0x419d27
mov edi, dword [esp + 4]
jmp 0x419d31
mov edi, dword [esp + 4]
or edi, 0x8000
push esi
call fcn.0041af70
add esp, 4
cmp eax, 6
je 0x419d44
cmp eax, 1
jne 0x419d54
push esi
call fcn.0041b010
add esp, 4
cmp eax, dword [ebp + 0xc]
jb 0x419d93
jmp 0x419d99
add eax, 0xfffffffe
cmp eax, 2
ja 0x419d93
movsd xmm0, qword [esi]
movsd qword [esp + 0x80], xmm0
lea eax, [esp + 0x80]
push eax
call fcn.0041af70
add esp, 4
mov eax, dword [esp + 0x84]
mov eax, dword [eax]
test eax, eax
je 0x419d93
mov ecx, dword [ebp + 8]
dec al
movzx eax, al
bt ecx, eax
jb 0x419d99
or edi, 0x10000
push 0
call sub.msvcrt.dll_time
add esp, 4
lea ecx, [esp + 0xb0]
push ecx
push eax
call fcn.00426b40
add esp, 8
test eax, eax
je 0x419dce
mov eax, 0xffffd000
mov dword [ebx], 0xffffffff
add esp, 0xc8
pop esi
pop edi
pop ebx
pop ebp
ret
xor eax, eax
mov dword [esp + 0x20], 0
mov dword [esp + 0x28], 0
mov esi, dword [esp]
mov dword [esp + 4], edi
mov dword [esp + eax*8 + 0x2c], esi
mov dword [esp + eax*8 + 0x30], 0
mov dword [esp + 0x14], eax
inc eax
mov dword [esp + 0x7c], eax
lea eax, [esi + 0xa8]
lea edi, [esp + 0xb0]
push edi
push eax
call fcn.00426ae0
add esp, 8
test eax, eax
jns 0x419e20
mov eax, dword [esp + 0x14]
or byte [esp + eax*8 + 0x30], 1
mov dword [esp], esi
lea eax, [esi + 0x90]
push edi
push eax
call fcn.00426ae0
add esp, 8
test eax, eax
jle 0x419e40
mov eax, dword [esp + 0x14]
or byte [esp + eax*8 + 0x31], 2
cmp dword [esp + 0x20], 0
jne 0x41a1e1
mov eax, dword [esp]
mov eax, dword [eax + 0x188]
test eax, eax
mov edx, dword [esp + 0x14]
je 0x419e69
mov ecx, dword [ebp]
dec al
movzx eax, al
bt ecx, eax
jb 0x419e6e
or byte [esp + edx*8 + 0x31], 0x40
mov eax, dword [esp]
mov eax, dword [eax + 0x18c]
test eax, eax
je 0x419e88
mov ecx, dword [ebp + 4]
dec al
movzx eax, al
bt ecx, eax
jb 0x419e8d
or byte [esp + edx*8 + 0x31], 0x80
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x24], eax
cmp eax, 1
jne 0x419eb0
mov eax, dword [esp]
lea ecx, [eax + 0x50]
lea edx, [eax + 0x70]
call fcn.0041ac40
test eax, eax
je 0x41a12b
mov ebx, dword [esp]
lea ebp, [ebx + 0x50]
mov eax, dword [esp + 0x24]
sub eax, dword [esp + 0x28]
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], 1
mov dword [esp + 8], 0
mov edi, dword [esp + 0x1c]
test edi, edi
je 0x41a068
nop
mov dword [esp + 0x18], 0
mov dword [esp + 0xc], 0
jmp 0x419f1e
mov eax, dword [esp + 0xc]
test eax, eax
cmove eax, edi
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x18]
cmove eax, ebx
mov dword [esp + 0x18], eax
mov ebx, dword [esp]
nop dword [eax]
mov edi, dword [edi + 0x194]
test edi, edi
je 0x41a060
lea edx, [edi + 0x70]
mov ecx, ebp
call fcn.0041ac40
test eax, eax
jne 0x419f10
test byte [esp + 8], 1
jne 0x419f39
cmp dword [edi + 0x1c], 3
jl 0x419f60
cmp dword [edi + 0x15c], 0
je 0x419f10
test byte [edi + 0x158], 4
je 0x419f60
mov eax, dword [edi + 0x164]
mov ecx, 0x8005
and eax, ecx
cmp eax, 4
jne 0x419f10
nop dword [eax]
mov eax, dword [edi + 0x160]
test eax, eax
jle 0x419f70
cmp eax, dword [esp + 0x24]
jb 0x419f10
push dword [ebx + 0x188]
call fcn.00422f40
add esp, 4
mov esi, eax
push eax
call fcn.00423210
add esp, 4
mov byte [esp + 0x13], al
lea eax, [esp + 0x80]
push eax
push dword [ebx + 0x14]
push dword [ebx + 0x18]
push esi
call fcn.004231c0
add esp, 0x10
mov esi, 0xffffffff
test eax, eax
jne 0x41a002
mov eax, ebx
lea ebx, [edi + 0xcc]
push dword [eax + 0x18c]
push ebx
call fcn.0041ae20
add esp, 8
test eax, eax
je 0x41a002
movzx eax, byte [esp + 0x13]
mov ecx, dword [esp]
push dword [ecx + 0x180]
push dword [ecx + 0x184]
push eax
lea eax, [esp + 0x8c]
push eax
push dword [ecx + 0x188]
push ebx
push dword [ecx + 0x190]
push dword [ecx + 0x18c]
call fcn.0041aec0
add esp, 0x20
mov esi, eax
xor ebx, ebx
test esi, esi
sete al
mov ecx, dword [esp + 8]
or cl, al
test cl, 1
je 0x419f0a
mov bl, al
lea eax, [edi + 0xa8]
lea esi, [esp + 0xb0]
push esi
push eax
call fcn.00426ae0
add esp, 8
test eax, eax
js 0x419ef2
lea eax, [edi + 0x90]
push esi
push eax
call fcn.00426ae0
add esp, 8
test eax, eax
jg 0x419ef2
jmp 0x41a091
mov edi, dword [esp + 0xc]
test edi, edi
jne 0x41a098
test byte [esp + 8], 1
jne 0x41a1d1
mov edi, dword [ebx + 0x194]
mov al, 1
mov dword [esp + 8], eax
mov dword [esp + 0x20], 0
test edi, edi
jne 0x419ee0
jmp 0x41a068
mov dword [esp + 0x18], ebx
mov ebx, dword [esp]
mov dword [esp + 0xc], edi
mov esi, dword [esp + 0x7c]
cmp esi, 1
jne 0x41a0b5
mov ebx, dword [esp + 0xe4]
mov ebp, dword [esp + 0xdc]
jmp 0x41a0e7
add ebx, 0x70
mov ecx, ebp
mov edx, ebx
call fcn.0041ac40
cmp eax, 1
adc dword [esp + 0x28], 0
cmp esi, 9
setae al
test byte [esp + 8], al
mov ebx, dword [esp + 0xe4]
mov ebp, dword [esp + 0xdc]
jne 0x419db8
cmp dword [esp + 0x18], 0
jne 0x41a0f7
mov eax, dword [esp + 0x14]
or byte [esp + eax*8 + 0x30], 8
mov eax, dword [esp + 0xc]
lea esi, [eax + 0xcc]
push esi
call fcn.0041af70
add esp, 4
cmp eax, 6
je 0x41a114
cmp eax, 1
jne 0x41a17c
push esi
call fcn.0041b010
add esp, 4
cmp eax, dword [ebp + 0xc]
jb 0x41a1bb
jmp 0x41a1c4
cmp dword [esp + 0x1c], 0
je 0x419eb0
mov eax, dword [esp]
mov esi, dword [eax + 8]
mov edi, dword [esp + 0x1c]
jmp 0x41a15e
mov edi, dword [edi + 0x194]
test edi, edi
je 0x419eb0
cmp esi, dword [edi + 8]
jne 0x41a150
push esi
push dword [edi + 0xc]
mov eax, dword [esp + 8]
push dword [eax + 0xc]
call sub.msvcrt.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x41a150
jmp 0x41a1e1
add eax, 0xfffffffe
cmp eax, 2
ja 0x41a1bb
movsd xmm0, qword [esi]
movsd qword [esp + 0x80], xmm0
lea eax, [esp + 0x80]
push eax
call fcn.0041af70
add esp, 4
mov eax, dword [esp + 0x84]
mov eax, dword [eax]
test eax, eax
je 0x41a1bb
mov ecx, dword [ebp + 8]
dec al
movzx eax, al
bt ecx, eax
jb 0x41a1c4
mov eax, dword [esp + 0x14]
or byte [esp + eax*8 + 0x32], 1
mov eax, dword [esp + 0x7c]
mov esi, dword [esp + 0xc]
jmp 0x419de7
mov eax, dword [esp + 0x14]
or byte [esp + eax*8 + 0x30], 8
mov ebx, dword [esp + 0xe4]
mov eax, dword [esp + 4]
or dword [esp + 0x30], eax
mov esi, dword [esp + 0x7c]
test esi, esi
je 0x41a25a
dec esi
mov edi, dword [esp + 0xec]
mov ebp, dword [esp + 0xe8]
jmp 0x41a220
mov ecx, dword [esp + 0x80]
or ecx, dword [ebx]
mov dword [ebx], ecx
add esi, 0xffffffff
jae 0x41a25c
mov ecx, dword [esp + esi*8 + 0x30]
mov dword [esp + 0x80], ecx
test ebp, ebp
je 0x41a217
lea eax, [esp + 0x80]
push eax
push esi
push dword [esp + esi*8 + 0x34]
push edi
call ebp
add esp, 0x10
test eax, eax
je 0x41a210
cmp eax, 0xffffd900
mov ecx, eax
mov eax, 0xffffd000
cmovne eax, ecx
jmp 0x419dbd
mov ecx, dword [ebx]
test ecx, ecx
mov eax, 0xffffd900
cmove eax, ecx
jmp 0x419dc3
xor eax, eax
jmp 0x419be7