Function at 0x10045571
Capabilities:
Convert ip address from string

Disassembly:
mov dword [ebp - 0x11c], eax
cmp eax, 0x11
jl 0x10044dbf
mov dword [ebp - 0x11c], eax
mov eax, dword [ebp - 0x154]
cmp byte [eax], cl
mov eax, dword [esi]
jne 0x10044dbf
mov dword [ebp - 0x11c], eax
cmp eax, 1
je 0x10044dbf
mov dword [esi], 1
cmp dword [ebp - 0x128], 5
je 0x10044d8b
mov eax, dword [ebp - 0x138]
cmp dword [ebp - 0x14c], 0xff
movzx eax, al
cmova eax, dword [ebp - 0x150]
mov dword [ebp - 0x138], eax
mov ecx, dword [ebp - 0x124]
mov eax, edx
test cl, 1
mov byte [ebx], 5
cmovne eax, dword [ebp - 0x140]
mov dword [ebp - 0x140], eax
test cl, 4
je 0x10044dd6
mov byte [ebp - 0x115], 1
mov ecx, 4
mov word [ebx + 2], 0x100
jmp 0x10044de4
mov eax, dword [ebp - 0x11c]
dec eax
cmp eax, 0xf
ja case.default.0x10044dcf
jmp dword [eax*4 + 0x100458d4]
mov byte [ebx + 2], dl
mov ecx, 3
mov byte [ebp - 0x115], dl
mov dword [ebp - 0x128], ecx
test eax, eax
je 0x10044df9
mov byte [ecx + ebx], 2
inc ecx
mov dword [ebp - 0x128], ecx
lea eax, [ecx - 2]
mov byte [ebx + 1], al
lea eax, [ebp - 0x120]
push eax
push ecx
push ebx
push dword [ebp - 0x130]
push edi
call fcn.10077eb4
add esp, 0x14
test eax, eax
je 0x10044e24
cmp eax, 0x51
jne 0x10044efb
mov edx, dword [ebp - 0x120]
mov eax, dword [ebp - 0x128]
mov ecx, dword [edi + 0xc]
cmp edx, eax
je 0x10044e6b
cmp dword [ecx], 2
je 0x10044e48
mov dword [ecx], 2
mov edx, dword [ebp - 0x120]
sub eax, edx
mov dword [esi + 4], eax
mov eax, dword [ebp - 0x120]
add eax, ebx
pop edi
mov dword [esi + 8], eax
xor eax, eax
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call 0x100b7236
mov esp, ebp
pop ebp
ret
cmp dword [ecx], 4
je case.0x10044dcf.3
mov dword [ecx], 4
mov dword [esi + 4], 2
mov dword [esi + 8], ebx
lea eax, [ebp - 0x11c]
push eax
push dword [esi + 4]
push dword [esi + 8]
push dword [ebp - 0x130]
lea eax, [ebp - 0x120]
push eax
push dword [esi + 4]
push dword [esi + 8]
push dword [ebp - 0x130]
push edi
call fcn.10077f8f
mov al, byte [0x83000330]
invalid
adc al, 0x85
invalid
je 0x10044f1f
cmp eax, 0x51
je 0x10044f1f
push str.Unable_to_send_initial_SOCKS5_request.
push edi
call fcn.10077a76
add esp, 8
mov eax, 0x1d
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call 0x100b72ea
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 4]
mov ecx, dword [ebp - 0x120]
cmp ecx, eax
je case.0x10044dcf.3
push dword [ebp - 0x144]
push dword [ebp - 0x12c]
push edi
call 0x1007e249
mov edx, eax
add esp, 0xc
mov dword [ebp - 0x134], edx
test edx, edx
je 0x1004549a
mov dword [edi + 0x9a4], edx
mov byte [edi + 0x9b8], 1
jmp 0x10089c23
lea eax, [ebp - 0x134]
push eax
push edi
call fcn.1007eda7
mov edx, dword [ebp - 0x134]
add esp, 8
test edx, edx
jne 0x10045391
neg eax
pop edi
sbb eax, eax
pop esi
and eax, 0x1b
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call 0x100b789b
mov esp, ebp
pop ebp
ret
cmp dword [ebp - 0x128], 5
mov byte [ebx + 2], cl
mov ecx, 3
mov word [ebx], 0x105
je case.0x10044dcf.13
cmp byte [esi + 0x26b], 0
je 0x100455c0
lea ecx, [ebp - 0x14]
push ecx
push dword [ebp - 0x12c]
push 0x17
call dword [sym.imp.WS2_32.dll_inet_pton]
cmp eax, 1
jne 0x10045860
movups xmm0, xmmword [ebp - 0x14]
mov byte [ebx + 3], 4
lea ecx, [eax + 0x13]
movups xmmword [ebx + 4], xmm0
jmp case.0x10044dcf.13
lea eax, [ebp - 0x124]
push eax
push dword [ebp - 0x12c]
push 2
call dword [sym.imp.WS2_32.dll_inet_pton]
cmp eax, 1
jne 0x100455ed
mov byte [ebx + 3], al
mov ecx, 8
mov eax, dword [ebp - 0x124]
mov dword [ebx + 4], eax
jmp case.0x10044dcf.13
mov eax, dword [ebp - 0x14c]
push eax
push dword [ebp - 0x12c]
mov byte [ebx + 3], 3
mov byte [ebx + 4], al
lea eax, [ebx + 5]
push eax
call 0x100b922a
mov ecx, dword [ebp - 0x14c]
add esp, 0xc
add ecx, 5
mov edx, dword [ebp - 0x144]
mov eax, edx
sar eax, 8
mov byte [ecx + ebx], al
mov byte [ecx + ebx + 1], dl
cmp dword [esi + 0x510], 0
jne 0x100456ab
lea eax, [ecx + 2]
mov dword [esi + 8], ebx
mov dword [esi + 4], eax
mov eax, dword [edi + 0xc]
cmp dword [eax], 0xe
je case.0x10044dcf.14
mov dword [eax], 0xe
lea eax, [ebp - 0x120]
push eax
push dword [esi + 4]
push dword [esi + 8]
push dword [ebp - 0x130]
push edi
call fcn.10078701
add esp, 0x14
test eax, eax
je 0x10045691
cmp eax, 0x51
je 0x10045691
push str.Failed_to_send_SOCKS5_connect_request.
push edi
call fcn.100781e8
add esp, 8
mov eax, 0x1e
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call str..rsrc_02
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 4]
mov ecx, dword [ebp - 0x120]
cmp eax, ecx
jne 0x10044f30
cmp dword [esi + 0x510], 0
je 0x100456cf
push str.SOCKS5_GSS_API_protection_not_yet_implemented.
push edi
call fcn.10078226
add esp, 8
mov eax, 6
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call 0x100b7a9a
mov esp, ebp
pop ebp
ret
mov dword [esi + 4], 0xa
mov dword [esi + 8], ebx
mov eax, dword [edi + 0xc]
cmp dword [eax], 0xf
je case.0x10044dcf.15
mov dword [eax], 0xf
lea eax, [ebp - 0x11c]
push eax
push dword [esi + 4]
push dword [esi + 8]
push dword [ebp - 0x130]
call fcn.1007839f
mov ecx, dword [ebp - 0x11c]
add esp, 0x10
test eax, eax
je 0x10045735
cmp eax, 0x51
je 0x1004573d
push str.Failed_to_receive_SOCKS5_connect_request_ack.
push edi
call fcn.1007828c
add esp, 8
mov eax, 0x10
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call 0x100b7b00
mov esp, ebp
pop ebp
ret
test ecx, ecx
je 0x1004587b
mov eax, dword [esi + 4]
cmp ecx, eax
jne 0x10044f80
cmp byte [ebx], 5
je 0x10045771
push str.SOCKS5_reply_has_wrong_version__version_should_be_5.
push edi
call fcn.100782c8
add esp, 8
mov eax, 2
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call 0x100b7b3c
mov esp, ebp
pop ebp
ret
mov al, byte [ebx + 1]
test al, al
je 0x100457b4
movzx esi, al
mov ebx, 0x19
push esi
push dword [ebp - 0x12c]
push str.Cant_complete_SOCKS5_connection_to__s.___d_
push edi
call fcn.10078302
add esp, 0x10
cmp esi, 9
jae 0x100457a1
mov ebx, dword [esi*4 + 0x100a1cb4]
pop edi
pop esi
mov eax, ebx
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call 0x100b7b7f
mov esp, ebp
pop ebp
ret
mov al, byte [ebx + 3]
cmp al, 3
jne 0x100457c4
movzx eax, byte [ebx + 4]
add eax, 7
jmp 0x100457d8
cmp al, 4
jne 0x100457cf
mov eax, 0x16
jmp 0x100457d8
cmp al, 1
jne 0x10045852
mov eax, 0xa
cmp dword [esi + 0x510], 0
jne case.0x10044dcf.16
cmp eax, 0xa
jbe 0x100458aa
add eax, 0xfffffff6
mov dword [esi + 4], eax
lea eax, [ebx + 0xa]
mov dword [esi + 8], eax
mov eax, dword [edi + 0xc]
cmp dword [eax], 0x10
je case.0x10044dcf.16
mov dword [eax], 0x10
lea eax, [ebp - 0x11c]
push eax
push dword [esi + 4]
push dword [esi + 8]
push dword [ebp - 0x130]
call fcn.100784bc
mov ecx, dword [ebp - 0x11c]
add esp, 0x10
test eax, eax
je 0x10045877
cmp eax, 0x51
je 0x1004589f
push str.Failed_to_receive_SOCKS5_connect_request_ack.
push edi
call 0x100783a9
add esp, 8
mov eax, 0xd
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call 0x100b7c1d
mov esp, ebp
pop ebp
ret
push str.SOCKS5_reply_has_wrong_address_type.
push edi
call fcn.100783cd
add esp, 8
mov eax, dword [ebp - 0x150]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call 0x100b7c42
mov esp, ebp
pop ebp
ret
test ecx, ecx
jne 0x1004589f
mov eax, dword [esi + 4]
cmp ecx, eax
jne 0x10044f80
mov eax, dword [edi + 0xc]
cmp dword [eax], 0x11
je case.0x10044dcf.5
mov dword [eax], 0x11
mov eax, dword [ebp - 0x154]
mov byte [eax], 1
mov edi, dword [eax]
test edi, edi
jne 0x10089c31
or eax, 0xffffffff
jmp 0x10112d19
mov edx, dword [0x100bd044]
mov ecx, edx
push esi
mov esi, dword [edi]
and ecx, 0x1f
mov edi, dword [edi + 4]
xor esi, edx
xor edi, edx
ror esi, cl
ror edi, cl
test esi, esi
je 0x10089ce5
cmp esi, 0xffffffff
je 0x10089ce5
mov dword [ebp - 4], edx
mov dword [ebp - 0xc], edi
mov dword [ebp - 8], esi
sub edi, 4
cmp edi, esi
jb 0x10089cbf
mov eax, dword [edi]
cmp eax, dword [ebp - 4]
je 0x10089c64
xor eax, edx
mov edx, dword [ebp - 4]
ror eax, cl
mov ecx, eax
mov dword [edi], edx
mov dword [ebp - 0x10], eax
call dword [0x1009f398]
call dword [ebp - 0x10]
mov eax, dword [ebx]
mov edx, dword [0x100bd044]
mov ecx, edx
and ecx, 0x1f
mov eax, dword [eax]
mov ebx, dword [eax]
mov eax, dword [eax + 4]
add al, 0x33
fcmovbe st(0), st(3)
retf
xor eax, edx
ror eax, cl
cmp ebx, dword [ebp - 8]
mov dword [ebp - 0x10], ebx
mov ebx, dword [ebp - 0x14]
jne 0x10089cb5
cmp eax, dword [ebp - 0xc]
je 0x10089c64
mov esi, dword [ebp - 0x10]
mov edi, eax
mov dword [ebp - 0xc], eax
jmp 0x10089c61
cmp esi, 0xffffffff
je 0x10089cd1
push esi
call 0x1011587f
mov edx, dword [0x100bd044]
pop ecx
mov eax, dword [ebx]
mov eax, dword [eax]
mov dword [eax], edx
mov eax, dword [ebx]
mov eax, dword [eax]
mov dword [eax + 4], edx
mov eax, dword [ebx]
mov eax, dword [eax]
mov dword [eax + 8], edx
xor eax, eax
pop esi
pop edi
pop ebx
leave
ret