Function at 0x419800
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 [0x43bab0]
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 0x4198c3
mov edi, dword [esp + 0xe0]
test edi, edi
je 0x419a5d
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 0x4198cd
mov dword [esp + 4], 0
lea esi, [eax + 0x70]
jmp 0x41988b
mov esi, dword [esi + 0x18]
test esi, esi
je 0x419a86
cmp dword [esi + 4], 3
jne 0x419880
mov eax, dword [esi + 8]
movzx ecx, word [eax]
xor ecx, 0x455
movzx eax, byte [eax + 2]
xor eax, 3
or ax, cx
jne 0x419880
lea ecx, [esi + 0xc]
mov edx, edi
push dword [esp + 8]
call fcn.0041a8f0
add esp, 4
test eax, eax
jne 0x419880
jmp 0x419a8e
mov eax, 0xffffd800
jmp 0x419b4d
lea edi, [eax + 0xf8]
xor ebx, ebx
mov esi, edi
xor ebp, ebp
mov eax, dword [esi]
and eax, 0x1f
cmp eax, 7
jne 0x419961
nop word cs:[eax + eax]
mov esi, dword [esi + 0xc]
test esi, esi
je 0x419972
mov eax, dword [esi]
and eax, 0x1f
cmp eax, 7
je 0x4198f0
cmp eax, 6
je 0x419939
cmp eax, 2
jne 0x41994f
mov ebp, 1
mov ecx, esi
mov edx, dword [esp + 0xe0]
push dword [esp + 8]
call fcn.0041a8f0
add esp, 4
test eax, eax
je 0x4199f7
mov esi, dword [esi + 0xc]
test esi, esi
jne 0x4198d9
jmp 0x419a67
mov esi, dword [esi + 0xc]
mov ebx, 1
mov ebp, 1
test esi, esi
jne 0x4198d9
jmp 0x419ffb
mov esi, dword [esi + 0xc]
mov ebp, 1
test esi, esi
jne 0x4198d9
jmp 0x419972
cmp eax, 2
je 0x419910
cmp eax, 6
jne 0x41992d
mov ebx, 1
jmp 0x41992d
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 0x419a0f
mov ebx, edi
jmp 0x4199d7
mov ebx, dword [ebx + 0xc]
test ebx, ebx
je 0x419a0f
mov eax, dword [ebx]
and eax, 0x1f
cmp eax, 7
jne 0x4199d0
cmp dword [ebx + 4], ebp
jne 0x4199d0
push ebp
push esi
push dword [ebx + 8]
call sub.msvcrt.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x4199d0
mov dword [esp + 4], 0
mov ebx, dword [esp + 0xe4]
mov ebp, dword [esp + 0xdc]
jmp 0x419a8e
cmp byte [esp + 0xc], 0
mov ebx, dword [esp + 0xe4]
mov ebp, dword [esp + 0xdc]
jne 0x419a8e
mov esi, dword [esp + 8]
jmp 0x419a37
mov edi, dword [edi + 0xc]
test edi, edi
je 0x419a86
mov eax, dword [edi]
and eax, 0x1f
cmp eax, 6
jne 0x419a30
cmp dword [edi + 4], esi
jne 0x419a30
push esi
push dword [esp + 0xe4]
push dword [edi + 8]
call sub.msvcrt.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x419a30
mov dword [esp + 4], 0
jmp 0x419a8e
test ebx, ebx
sete al
test ebp, ebp
jne 0x419977
test ebx, ebx
mov ebx, dword [esp + 0xe4]
mov ebp, dword [esp + 0xdc]
jne 0x419a24
mov dword [esp + 4], 4
mov eax, dword [esp]
lea esi, [eax + 0xcc]
push esi
call fcn.0041ad00
add esp, 4
test eax, eax
je 0x419ab7
mov ecx, dword [ebp + 4]
dec al
movzx eax, al
bt ecx, eax
jae 0x419ab7
mov edi, dword [esp + 4]
jmp 0x419ac1
mov edi, dword [esp + 4]
or edi, 0x8000
push esi
call fcn.0041ad00
add esp, 4
cmp eax, 6
je 0x419ad4
cmp eax, 1
jne 0x419ae4
push esi
call fcn.0041ada0
add esp, 4
cmp eax, dword [ebp + 0xc]
jb 0x419b23
jmp 0x419b29
add eax, 0xfffffffe
cmp eax, 2
ja 0x419b23
movsd xmm0, qword [esi]
movsd qword [esp + 0x80], xmm0
lea eax, [esp + 0x80]
push eax
call fcn.0041ad00
add esp, 4
mov eax, dword [esp + 0x84]
mov eax, dword [eax]
test eax, eax
je 0x419b23
mov ecx, dword [ebp + 8]
dec al
movzx eax, al
bt ecx, eax
jb 0x419b29
or edi, 0x10000
push 0
call sub.msvcrt.dll_time
add esp, 4
lea ecx, [esp + 0xb0]
push ecx
push eax
call fcn.00426880
add esp, 8
test eax, eax
je 0x419b5e
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.00426820
add esp, 8
test eax, eax
jns 0x419bb0
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.00426820
add esp, 8
test eax, eax
jle 0x419bd0
mov eax, dword [esp + 0x14]
or byte [esp + eax*8 + 0x31], 2
cmp dword [esp + 0x20], 0
jne 0x419f71
mov eax, dword [esp]
mov eax, dword [eax + 0x188]
test eax, eax
mov edx, dword [esp + 0x14]
je 0x419bf9
mov ecx, dword [ebp]
dec al
movzx eax, al
bt ecx, eax
jb 0x419bfe
or byte [esp + edx*8 + 0x31], 0x40
mov eax, dword [esp]
mov eax, dword [eax + 0x18c]
test eax, eax
je 0x419c18
mov ecx, dword [ebp + 4]
dec al
movzx eax, al
bt ecx, eax
jb 0x419c1d
or byte [esp + edx*8 + 0x31], 0x80
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x24], eax
cmp eax, 1
jne 0x419c40
mov eax, dword [esp]
lea ecx, [eax + 0x50]
lea edx, [eax + 0x70]
call fcn.0041a9d0
test eax, eax
je 0x419ebb
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 0x419df8
nop
mov dword [esp + 0x18], 0
mov dword [esp + 0xc], 0
jmp 0x419cae
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 0x419df0
lea edx, [edi + 0x70]
mov ecx, ebp
call fcn.0041a9d0
test eax, eax
jne 0x419ca0
test byte [esp + 8], 1
jne 0x419cc9
cmp dword [edi + 0x1c], 3
jl 0x419cf0
cmp dword [edi + 0x15c], 0
je 0x419ca0
test byte [edi + 0x158], 4
je 0x419cf0
mov eax, dword [edi + 0x164]
mov ecx, 0x8005
and eax, ecx
cmp eax, 4
jne 0x419ca0
nop dword [eax]
mov eax, dword [edi + 0x160]
test eax, eax
jle 0x419d00
cmp eax, dword [esp + 0x24]
jb 0x419ca0
push dword [ebx + 0x188]
call fcn.00422c80
add esp, 4
mov esi, eax
push eax
call fcn.00422f50
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.00422f00
add esp, 0x10
mov esi, 0xffffffff
test eax, eax
jne 0x419d92
mov eax, ebx
lea ebx, [edi + 0xcc]
push dword [eax + 0x18c]
push ebx
call fcn.0041abb0
add esp, 8
test eax, eax
je 0x419d92
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.0041ac50
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 0x419c9a
mov bl, al
lea eax, [edi + 0xa8]
lea esi, [esp + 0xb0]
push esi
push eax
call fcn.00426820
add esp, 8
test eax, eax
js 0x419c82
lea eax, [edi + 0x90]
push esi
push eax
call fcn.00426820
add esp, 8
test eax, eax
jg 0x419c82
jmp 0x419e21
mov edi, dword [esp + 0xc]
test edi, edi
jne 0x419e28
test byte [esp + 8], 1
jne 0x419f61
mov edi, dword [ebx + 0x194]
mov al, 1
mov dword [esp + 8], eax
mov dword [esp + 0x20], 0
test edi, edi
jne 0x419c70
jmp 0x419df8
mov dword [esp + 0x18], ebx
mov ebx, dword [esp]
mov dword [esp + 0xc], edi
mov esi, dword [esp + 0x7c]
cmp esi, 1
jne 0x419e45
mov ebx, dword [esp + 0xe4]
mov ebp, dword [esp + 0xdc]
jmp 0x419e77
add ebx, 0x70
mov ecx, ebp
mov edx, ebx
call fcn.0041a9d0
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 0x419b48
cmp dword [esp + 0x18], 0
jne 0x419e87
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.0041ad00
add esp, 4
cmp eax, 6
je 0x419ea4
cmp eax, 1
jne 0x419f0c
push esi
call fcn.0041ada0
add esp, 4
cmp eax, dword [ebp + 0xc]
jb 0x419f4b
jmp 0x419f54
cmp dword [esp + 0x1c], 0
je 0x419c40
mov eax, dword [esp]
mov esi, dword [eax + 8]
mov edi, dword [esp + 0x1c]
jmp 0x419eee
mov edi, dword [edi + 0x194]
test edi, edi
je 0x419c40
cmp esi, dword [edi + 8]
jne 0x419ee0
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 0x419ee0
jmp 0x419f71
add eax, 0xfffffffe
cmp eax, 2
ja 0x419f4b
movsd xmm0, qword [esi]
movsd qword [esp + 0x80], xmm0
lea eax, [esp + 0x80]
push eax
call fcn.0041ad00
add esp, 4
mov eax, dword [esp + 0x84]
mov eax, dword [eax]
test eax, eax
je 0x419f4b
mov ecx, dword [ebp + 8]
dec al
movzx eax, al
bt ecx, eax
jb 0x419f54
mov eax, dword [esp + 0x14]
or byte [esp + eax*8 + 0x32], 1
mov eax, dword [esp + 0x7c]
mov esi, dword [esp + 0xc]
jmp 0x419b77
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 0x419fea
dec esi
mov edi, dword [esp + 0xec]
mov ebp, dword [esp + 0xe8]
jmp 0x419fb0
mov ecx, dword [esp + 0x80]
or ecx, dword [ebx]
mov dword [ebx], ecx
add esi, 0xffffffff
jae 0x419fec
mov ecx, dword [esp + esi*8 + 0x30]
mov dword [esp + 0x80], ecx
test ebp, ebp
je 0x419fa7
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 0x419fa0
cmp eax, 0xffffd900
mov ecx, eax
mov eax, 0xffffd000
cmovne eax, ecx
jmp 0x419b4d
mov ecx, dword [ebx]
test ecx, ecx
mov eax, 0xffffd900
cmove eax, ecx
jmp 0x419b53
xor eax, eax
jmp 0x419977