Function at 0x4e1930
Capabilities:
Convert ip address from string

Disassembly:
sub esp, 0x13c
mov eax, dword [0x5f88c0]
xor eax, esp
mov dword [esp + 0x138], eax
mov eax, dword [esp + 0x148]
push ebx
push ebp
mov ebp, dword [esp + 0x148]
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], eax
mov byte [eax], 0
push esi
push edi
mov edi, dword [esp + 0x154]
test ebp, ebp
je 0x4e1d1d
mov bl, byte [ebp]
test bl, bl
je 0x4e1d1d
test edi, edi
je 0x4e1d1d
cmp byte [edi], 0
je 0x4e1d1d
mov dword [esp + 0x14], 0
mov ecx, edi
mov eax, 0x5b0ce8
nop dword [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4e19c0
test dl, dl
je 0x4e19bc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4e19c0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4e19a0
xor eax, eax
jmp 0x4e19c5
sbb eax, eax
or eax, 1
test eax, eax
je 0x4e1c79
cmp bl, 0x5b
jne 0x4e1a29
push 0x5d
push ebp
call fcn.0054f8b0
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x4e1d1d
inc ebp
sub ebx, ebp
mov dword [esp + 0x1c], ebx
cmp ebx, 0x80
jae 0x4e1d1d
push ebx
lea eax, [esp + 0xcc]
push ebp
push eax
call fcn.0054d470
lea ebp, [esp + 0xd4]
mov byte [esp + ebx + 0xd4], 0
add esp, 0xc
mov dword [esp + 0x20], ebp
mov dword [esp + 0x14], 2
jmp 0x4e1a62
mov ebx, ebp
lea ecx, [ebx + 1]
nop
mov al, byte [ebx]
inc ebx
test al, al
jne 0x4e1a30
lea eax, [esp + 0x10]
sub ebx, ecx
push eax
push ebp
push 2
mov dword [esp + 0x28], ebx
call dword [sym.imp.WS2_32.dll_inet_pton]
cmp eax, 1
jne 0x4e1a56
mov dword [esp + 0x14], eax
jmp 0x4e1a62
cmp byte [ebx + ebp - 1], 0x2e
jne 0x4e1a62
dec ebx
mov dword [esp + 0x1c], ebx
mov al, byte [edi]
test al, al
je 0x4e1d1d
xor esi, esi
nop
cmp al, 0x20
je 0x4e1a7a
mov cl, al
cmp al, 9
jne 0x4e1a84
mov al, byte [edi + 1]
inc edi
mov cl, al
test al, al
jne 0x4e1a70
mov edx, edi
test cl, cl
je 0x4e1ce0
nop
cmp cl, 0x20
je 0x4e1aa8
cmp cl, 9
je 0x4e1aa8
cmp cl, 0x2c
je 0x4e1aa8
mov cl, byte [edi + 1]
inc edi
inc esi
test cl, cl
jne 0x4e1a90
test esi, esi
je 0x4e1ce0
mov eax, dword [esp + 0x14]
sub eax, 0
je 0x4e1c8d
sub eax, 1
je 0x4e1acb
sub eax, 1
jne 0x4e1ce0
xor ebx, ebx
cmp esi, 0x80
jae 0x4e1ce0
push esi
push edx
lea eax, [esp + 0x50]
push eax
call fcn.0054d470
lea eax, [esp + 0x54]
mov byte [esp + esi + 0x54], bl
push 0x2f
push eax
call fcn.0054f8b0
mov esi, eax
add esp, 0x14
test esi, esi
je 0x4e1b0f
lea ecx, [esi + 1]
push ecx
call fcn.0056a2c2
add esp, 4
mov byte [esi], 0
mov ebx, eax
cmp dword [esp + 0x14], 2
jne 0x4e1c01
mov esi, dword [sym.imp.WS2_32.dll_inet_pton]
test ebx, ebx
mov eax, 0x80
cmove ebx, eax
lea eax, [esp + 0x38]
push eax
push dword [esp + 0x24]
mov ebp, ebx
and ebx, 7
push 0x17
shr ebp, 3
call esi
cmp eax, 1
jne 0x4e1ce0
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x4c]
push eax
push 0x17
call esi
cmp eax, 1
jne 0x4e1ce0
cmp ebp, 0x10
ja 0x4e1ce0
jne 0x4e1b72
test ebx, ebx
jne 0x4e1ce0
test ebp, ebp
je 0x4e1bd8
mov esi, ebp
lea ecx, [esp + 0x38]
lea edx, [esp + 0x28]
sub esi, 4
jb 0x4e1b96
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4e1b9b
add ecx, 4
add edx, 4
sub esi, 4
jae 0x4e1b85
cmp esi, 0xfffffffc
je 0x4e1bd8
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4e1ce0
cmp esi, 0xfffffffd
je 0x4e1bd8
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4e1ce0
cmp esi, 0xfffffffe
je 0x4e1bd8
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4e1ce0
cmp esi, 0xffffffff
je 0x4e1bd8
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x4e1ce0
test ebx, ebx
je 0x4e1c79
movzx eax, byte [esp + ebp + 0x38]
mov ecx, 8
movzx edx, byte [esp + ebp + 0x28]
sub ecx, ebx
xor edx, eax
mov eax, 0xff
shl eax, cl
test eax, edx
jmp 0x4e1cdb
mov dword [esp + 0x18], 0
mov dword [esp + 0x10], 0
cmp ebx, 0x20
ja 0x4e1ce0
lea eax, [esp + 0x18]
push eax
push ebp
mov ebp, dword [sym.imp.WS2_32.dll_inet_pton]
push 2
call ebp
cmp eax, 1
jne 0x4e1ce0
lea eax, [esp + 0x10]
push eax
lea eax, [esp + 0x4c]
push eax
push 2
call ebp
cmp eax, 1
jne 0x4e1ce0
test ebx, ebx
je 0x4e1c80
cmp ebx, 0x20
je 0x4e1c80
push dword [esp + 0x18]
mov ebp, dword [sym.imp.WS2_32.dll_htonl]
call ebp
push dword [esp + 0x10]
mov esi, eax
call ebp
mov ecx, 0x20
or edx, 0xffffffff
sub ecx, ebx
xor eax, esi
shl edx, cl
test edx, eax
jne 0x4e1ce0
mov al, 1
jmp 0x4e1d1f
mov eax, dword [esp + 0x18]
cmp eax, dword [esp + 0x10]
sete al
jmp 0x4e1cd9
cmp byte [edx + esi - 1], 0x2e
jne 0x4e1c99
sub esi, 1
je 0x4e1ca0
cmp byte [edx], 0x2e
jne 0x4e1ca0
inc edx
dec esi
cmp esi, ebx
jne 0x4e1cb6
push ebx
push ebp
push edx
call fcn.004aa820
add esp, 0xc
test eax, eax
setne al
jmp 0x4e1cd9
jae 0x4e1ce0
mov eax, ebp
sub eax, esi
add eax, ebx
cmp byte [eax - 1], 0x2e
jne 0x4e1cd7
push esi
push eax
push edx
call fcn.004aa820
add esp, 0xc
test eax, eax
je 0x4e1cd7
mov al, 1
jmp 0x4e1cd9
xor al, al
test al, al
jne 0x4e1c79
nop dword [eax]
mov al, byte [edi]
cmp al, 0x20
je 0x4e1cea
cmp al, 9
jne 0x4e1ced
inc edi
jmp 0x4e1ce0
test al, al
je 0x4e1d00
cmp al, 0x2c
je 0x4e1d04
mov eax, dword [esp + 0x24]
mov byte [eax], 1
mov al, byte [edi]
jmp 0x4e1d0c
cmp al, 0x2c
jne 0x4e1d0c
mov al, byte [edi + 1]
inc edi
cmp al, 0x2c
je 0x4e1d04
test al, al
je 0x4e1d1d
mov ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x20]
jmp 0x4e1a6c
xor al, al
mov ecx, dword [esp + 0x148]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0054b289
add esp, 0x13c
ret