Function at 0x417680
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 [0x4399f0]
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 0x417743
mov edi, dword [esp + 0xe0]
test edi, edi
je 0x4178dd
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 0x41774d
mov dword [esp + 4], 0
lea esi, [eax + 0x70]
jmp 0x41770b
mov esi, dword [esi + 0x18]
test esi, esi
je 0x417906
cmp dword [esi + 4], 3
jne 0x417700
mov eax, dword [esi + 8]
movzx ecx, word [eax]
xor ecx, 0x455
movzx eax, byte [eax + 2]
xor eax, 3
or ax, cx
jne 0x417700
lea ecx, [esi + 0xc]
mov edx, edi
push dword [esp + 8]
call fcn.00418770
add esp, 4
test eax, eax
jne 0x417700
jmp 0x41790e
mov eax, 0xffffd800
jmp 0x4179cd
lea edi, [eax + 0xf8]
xor ebx, ebx
mov esi, edi
xor ebp, ebp
mov eax, dword [esi]
and eax, 0x1f
cmp eax, 7
jne 0x4177e1
nop word cs:[eax + eax]
mov esi, dword [esi + 0xc]
test esi, esi
je 0x4177f2
mov eax, dword [esi]
and eax, 0x1f
cmp eax, 7
je 0x417770
cmp eax, 6
je 0x4177b9
cmp eax, 2
jne 0x4177cf
mov ebp, 1
mov ecx, esi
mov edx, dword [esp + 0xe0]
push dword [esp + 8]
call fcn.00418770
add esp, 4
test eax, eax
je 0x417877
mov esi, dword [esi + 0xc]
test esi, esi
jne 0x417759
jmp 0x4178e7
mov esi, dword [esi + 0xc]
mov ebx, 1
mov ebp, 1
test esi, esi
jne 0x417759
jmp 0x417e7b
mov esi, dword [esi + 0xc]
mov ebp, 1
test esi, esi
jne 0x417759
jmp 0x4177f2
cmp eax, 2
je 0x417790
cmp eax, 6
jne 0x4177ad
mov ebx, 1
jmp 0x4177ad
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 0x41788f
mov ebx, edi
jmp 0x417857
mov ebx, dword [ebx + 0xc]
test ebx, ebx
je 0x41788f
mov eax, dword [ebx]
and eax, 0x1f
cmp eax, 7
jne 0x417850
cmp dword [ebx + 4], ebp
jne 0x417850
push ebp
push esi
push dword [ebx + 8]
call sub.msvcrt.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x417850
mov dword [esp + 4], 0
mov ebx, dword [esp + 0xe4]
mov ebp, dword [esp + 0xdc]
jmp 0x41790e
cmp byte [esp + 0xc], 0
mov ebx, dword [esp + 0xe4]
mov ebp, dword [esp + 0xdc]
jne 0x41790e
mov esi, dword [esp + 8]
jmp 0x4178b7
mov edi, dword [edi + 0xc]
test edi, edi
je 0x417906
mov eax, dword [edi]
and eax, 0x1f
cmp eax, 6
jne 0x4178b0
cmp dword [edi + 4], esi
jne 0x4178b0
push esi
push dword [esp + 0xe4]
push dword [edi + 8]
call sub.msvcrt.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x4178b0
mov dword [esp + 4], 0
jmp 0x41790e
test ebx, ebx
sete al
test ebp, ebp
jne 0x4177f7
test ebx, ebx
mov ebx, dword [esp + 0xe4]
mov ebp, dword [esp + 0xdc]
jne 0x4178a4
mov dword [esp + 4], 4
mov eax, dword [esp]
lea esi, [eax + 0xcc]
push esi
call fcn.00418b80
add esp, 4
test eax, eax
je 0x417937
mov ecx, dword [ebp + 4]
dec al
movzx eax, al
bt ecx, eax
jae 0x417937
mov edi, dword [esp + 4]
jmp 0x417941
mov edi, dword [esp + 4]
or edi, 0x8000
push esi
call fcn.00418b80
add esp, 4
cmp eax, 6
je 0x417954
cmp eax, 1
jne 0x417964
push esi
call fcn.00418c20
add esp, 4
cmp eax, dword [ebp + 0xc]
jb 0x4179a3
jmp 0x4179a9
add eax, 0xfffffffe
cmp eax, 2
ja 0x4179a3
movsd xmm0, qword [esi]
movsd qword [esp + 0x80], xmm0
lea eax, [esp + 0x80]
push eax
call fcn.00418b80
add esp, 4
mov eax, dword [esp + 0x84]
mov eax, dword [eax]
test eax, eax
je 0x4179a3
mov ecx, dword [ebp + 8]
dec al
movzx eax, al
bt ecx, eax
jb 0x4179a9
or edi, 0x10000
push 0
call sub.msvcrt.dll_time
add esp, 4
lea ecx, [esp + 0xb0]
push ecx
push eax
call fcn.00424700
add esp, 8
test eax, eax
je 0x4179de
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.004246a0
add esp, 8
test eax, eax
jns 0x417a30
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.004246a0
add esp, 8
test eax, eax
jle 0x417a50
mov eax, dword [esp + 0x14]
or byte [esp + eax*8 + 0x31], 2
cmp dword [esp + 0x20], 0
jne 0x417df1
mov eax, dword [esp]
mov eax, dword [eax + 0x188]
test eax, eax
mov edx, dword [esp + 0x14]
je 0x417a79
mov ecx, dword [ebp]
dec al
movzx eax, al
bt ecx, eax
jb 0x417a7e
or byte [esp + edx*8 + 0x31], 0x40
mov eax, dword [esp]
mov eax, dword [eax + 0x18c]
test eax, eax
je 0x417a98
mov ecx, dword [ebp + 4]
dec al
movzx eax, al
bt ecx, eax
jb 0x417a9d
or byte [esp + edx*8 + 0x31], 0x80
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x24], eax
cmp eax, 1
jne 0x417ac0
mov eax, dword [esp]
lea ecx, [eax + 0x50]
lea edx, [eax + 0x70]
call fcn.00418850
test eax, eax
je 0x417d3b
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 0x417c78
nop
mov dword [esp + 0x18], 0
mov dword [esp + 0xc], 0
jmp 0x417b2e
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 0x417c70
lea edx, [edi + 0x70]
mov ecx, ebp
call fcn.00418850
test eax, eax
jne 0x417b20
test byte [esp + 8], 1
jne 0x417b49
cmp dword [edi + 0x1c], 3
jl 0x417b70
cmp dword [edi + 0x15c], 0
je 0x417b20
test byte [edi + 0x158], 4
je 0x417b70
mov eax, dword [edi + 0x164]
mov ecx, 0x8005
and eax, ecx
cmp eax, 4
jne 0x417b20
nop dword [eax]
mov eax, dword [edi + 0x160]
test eax, eax
jle 0x417b80
cmp eax, dword [esp + 0x24]
jb 0x417b20
push dword [ebx + 0x188]
call fcn.00420b00
add esp, 4
mov esi, eax
push eax
call fcn.00420dd0
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.00420d80
add esp, 0x10
mov esi, 0xffffffff
test eax, eax
jne 0x417c12
mov eax, ebx
lea ebx, [edi + 0xcc]
push dword [eax + 0x18c]
push ebx
call fcn.00418a30
add esp, 8
test eax, eax
je 0x417c12
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.00418ad0
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 0x417b1a
mov bl, al
lea eax, [edi + 0xa8]
lea esi, [esp + 0xb0]
push esi
push eax
call fcn.004246a0
add esp, 8
test eax, eax
js 0x417b02
lea eax, [edi + 0x90]
push esi
push eax
call fcn.004246a0
add esp, 8
test eax, eax
jg 0x417b02
jmp 0x417ca1
mov edi, dword [esp + 0xc]
test edi, edi
jne 0x417ca8
test byte [esp + 8], 1
jne 0x417de1
mov edi, dword [ebx + 0x194]
mov al, 1
mov dword [esp + 8], eax
mov dword [esp + 0x20], 0
test edi, edi
jne 0x417af0
jmp 0x417c78
mov dword [esp + 0x18], ebx
mov ebx, dword [esp]
mov dword [esp + 0xc], edi
mov esi, dword [esp + 0x7c]
cmp esi, 1
jne 0x417cc5
mov ebx, dword [esp + 0xe4]
mov ebp, dword [esp + 0xdc]
jmp 0x417cf7
add ebx, 0x70
mov ecx, ebp
mov edx, ebx
call fcn.00418850
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 0x4179c8
cmp dword [esp + 0x18], 0
jne 0x417d07
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.00418b80
add esp, 4
cmp eax, 6
je 0x417d24
cmp eax, 1
jne 0x417d8c
push esi
call fcn.00418c20
add esp, 4
cmp eax, dword [ebp + 0xc]
jb 0x417dcb
jmp 0x417dd4
cmp dword [esp + 0x1c], 0
je 0x417ac0
mov eax, dword [esp]
mov esi, dword [eax + 8]
mov edi, dword [esp + 0x1c]
jmp 0x417d6e
mov edi, dword [edi + 0x194]
test edi, edi
je 0x417ac0
cmp esi, dword [edi + 8]
jne 0x417d60
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 0x417d60
jmp 0x417df1
add eax, 0xfffffffe
cmp eax, 2
ja 0x417dcb
movsd xmm0, qword [esi]
movsd qword [esp + 0x80], xmm0
lea eax, [esp + 0x80]
push eax
call fcn.00418b80
add esp, 4
mov eax, dword [esp + 0x84]
mov eax, dword [eax]
test eax, eax
je 0x417dcb
mov ecx, dword [ebp + 8]
dec al
movzx eax, al
bt ecx, eax
jb 0x417dd4
mov eax, dword [esp + 0x14]
or byte [esp + eax*8 + 0x32], 1
mov eax, dword [esp + 0x7c]
mov esi, dword [esp + 0xc]
jmp 0x4179f7
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 0x417e6a
dec esi
mov edi, dword [esp + 0xec]
mov ebp, dword [esp + 0xe8]
jmp 0x417e30
mov ecx, dword [esp + 0x80]
or ecx, dword [ebx]
mov dword [ebx], ecx
add esi, 0xffffffff
jae 0x417e6c
mov ecx, dword [esp + esi*8 + 0x30]
mov dword [esp + 0x80], ecx
test ebp, ebp
je 0x417e27
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 0x417e20
cmp eax, 0xffffd900
mov ecx, eax
mov eax, 0xffffd000
cmovne eax, ecx
jmp 0x4179cd
mov ecx, dword [ebx]
test ecx, ecx
mov eax, 0xffffd900
cmove eax, ecx
jmp 0x4179d3
xor eax, eax
jmp 0x4177f7