Function at 0x14004c880
Capabilities:
Resolve dns

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x278
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x1f0], 0xfffffffffffffffe
mov rbx, r8
mov rdi, rdx
mov r13, rcx
mov qword [rbp + 0x190], rdx
mov qword [rbp + 0x198], r8
lea rcx, [rbp + 0x190]
call fcn.140018660
mov r14, rax
test r14b, 1
je 0x14004c965
mov r15, qword [rbp + 0x198]
test r15, r15
je 0x14004c931
mov rax, qword [rbp + 0x190]
lea rcx, [r15 - 1]
movzx edx, byte [rax]
inc rax
mov qword [rbp + 0x190], rax
mov qword [rbp + 0x198], rcx
cmp dl, 0x3a
jne 0x14004c931
mov dword [rbp - 0x50], 0xa
mov qword [rbp - 0x60], 0
mov byte [rbp - 0x4c], 1
lea rcx, [rbp + 0x190]
lea rdx, [rbp - 0x60]
call fcn.140018f40
cmp ax, 1
jne 0x14004c933
jmp 0x14004c93f
xor eax, eax
mov qword [rbp + 0x198], r15
test ax, ax
je 0x14004c965
movabs rax, 0xffffffff00
and r14, rax
shr r14, 8
movzx eax, dx
shl rax, 0x30
shl r14, 0x10
or r14, rax
mov eax, 1
jmp 0x14004c96a
xor r14d, r14d
xor eax, eax
or rax, r14
cmp ax, 1
je 0x14004ca89
movzx ecx, ax
mov rax, rbx
test ecx, ecx
jne 0x14004ca90
test rbx, rbx
je 0x14004cc59
lea rax, [rbx - 1]
lea rcx, [rdi + 1]
movzx edx, byte [rdi]
mov qword [rbp + 0x190], rcx
mov qword [rbp + 0x198], rax
cmp dl, 0x5b
jne 0x14004cc59
lea rcx, [rbp - 0x60]
lea rdx, [rbp + 0x190]
call fcn.140018bc0
cmp byte [rbp - 0x60], 0
je 0x14004cc59
mov r14d, dword [rbp - 0x5f]
mov rax, qword [rbp - 0x5b]
mov qword [rbp + 0x1c0], rax
mov eax, dword [rbp - 0x53]
mov dword [rbp + 0x1c8], eax
mov r8, qword [rbp + 0x190]
mov rcx, qword [rbp + 0x198]
xor r9d, r9d
test rcx, rcx
je 0x14004cb39
cmp byte [r8], 0x25
jne 0x14004cb7e
mov rsi, r13
lea r10, [rcx - 1]
mov qword [rbp + 0x1e0], r8
lea r11, [r8 + 1]
xor r15d, r15d
mov r12d, 0xa
mov qword [rbp + 0x188], r10
mov qword [rbp + 0x158], r11
xor r8d, r8d
xor r9d, r9d
nop word cs:[rax + rax]
mov eax, 0
test r10, r10
je 0x14004ca63
movzx r13d, byte [r11]
add r13d, 0xffffffd0
xor eax, eax
cmp r13d, 0xa
setb al
jae 0x14004ca63
dec r10
inc r11
cmp eax, 1
jne 0x14004cb40
mov eax, r15d
mul r12d
jo 0x14004cb3b
mov r15d, eax
add r15d, r13d
jb 0x14004cb3b
inc r8
jmp 0x14004ca40
mov rax, qword [rbp + 0x198]
test rax, rax
jne 0x14004cc67
mov edi, r14d
shr edi, 0x10
shr r14, 0x18
xor ebx, ebx
mov eax, dword [rbp - 0x58]
mov dword [rbp + 0x150], eax
mov rax, qword [rbp - 0x60]
mov qword [rbp + 0x148], rax
movzx eax, byte [0x140125ab8]
mov ecx, 0x20
mov edx, 4
call fcn.1400119c9
test rax, rax
je 0x14004d208
mov word [rax], bx
mov rcx, r14
shl rcx, 8
movzx edx, dil
or rdx, rcx
shr r14, 0x18
mov word [rax + 6], r14w
mov dword [rax + 2], edx
mov rcx, qword [rbp + 0x148]
mov qword [rax + 8], rcx
mov ecx, dword [rbp + 0x150]
mov dword [rax + 0x10], ecx
mov dword [rax + 0x14], 0
mov dword [rax + 0x18], r15d
mov word [rax + 0x1c], r12w
mov rcx, rax
add rcx, 0x20
mov qword [r13], rax
mov qword [r13 + 8], 1
mov qword [r13 + 0x10], rax
mov qword [r13 + 0x18], rcx
jmp 0x14004cd08
jmp 0x14004cb7e
mov r13, rsi
jmp 0x14004cb61
test r8, r8
mov r13, rsi
je 0x14004cb5e
mov r9d, 1
mov qword [rbp + 0x188], r10
mov qword [rbp + 0x158], r11
jmp 0x14004cb61
xor r9d, r9d
mov r8, qword [rbp + 0x1e0]
cmp r9d, 1
jne 0x14004cb7e
mov r8, qword [rbp + 0x158]
mov rcx, qword [rbp + 0x188]
jmp 0x14004cb85
test r9d, r9d
cmove r15d, r9d
test rcx, rcx
je 0x14004cc59
cmp byte [r8], 0x5d
jne 0x14004cc59
mov r9, rcx
dec r9
je 0x14004cbfa
add rcx, 0xfffffffffffffffe
lea rax, [r8 + 2]
movzx edx, byte [r8 + 1]
mov qword [rbp + 0x190], rax
mov qword [rbp + 0x198], rcx
cmp dl, 0x3a
jne 0x14004cbfa
mov dword [rbp - 0x50], 0xa
mov qword [rbp - 0x60], 0
mov byte [rbp - 0x4c], 1
lea rcx, [rbp + 0x190]
lea rdx, [rbp - 0x60]
mov rsi, r8
mov r12, r9
call fcn.140018f40
mov r9, r12
mov r8, rsi
mov r12d, edx
cmp ax, 1
jne 0x14004cbfc
jmp 0x14004cc12
xor eax, eax
inc r8
mov qword [rbp + 0x190], r8
mov qword [rbp + 0x198], r9
test ax, ax
je 0x14004cc59
mov eax, dword [rbp + 0x1c8]
mov rcx, qword [rbp + 0x1c0]
mov qword [rbp + 0x160], rcx
mov dword [rbp + 0x168], eax
cmp qword [rbp + 0x198], 0
jne 0x14004cc67
shl r14, 8
mov eax, dword [rbp + 0x168]
mov dword [rbp - 0x58], eax
mov rax, qword [rbp + 0x160]
mov qword [rbp - 0x60], rax
mov bx, 1
xor edi, edi
jmp 0x14004caa5
mov qword [rbp + 0x190], rdi
mov qword [rbp + 0x198], rbx
mov qword [rbp - 0x60], rdi
mov qword [rbp - 0x58], rbx
mov qword [rbp - 0x50], 0
mov qword [rbp - 0x40], 1
movabs rax, 0x3a0000003a
mov qword [rbp - 0x38], rax
mov sil, 0x3a
mov r14, rbx
jmp 0x14004cca5
cmp r14, rbx
ja 0x14004ccf5
mov cl, 0x3a
mov rdx, rdi
mov r8, r14
call fcn.14001c210
cmp rax, 1
jne 0x14004ccf5
mov r14, rdx
cmp rdx, rbx
jae 0x14004cca0
cmp byte [rdi + r14], sil
jne 0x14004cca0
lea r12, [r14 + 1]
lea rcx, str.invalid_port_value
sub rbx, r12
je 0x14004ccfc
lea r8, [rdi + r14]
inc r8
movzx eax, byte [r8]
cmp eax, 0x2d
je 0x14004cd1c
cmp eax, 0x2b
jne 0x14004cd22
dec rbx
je 0x14004ccfc
inc r8
jmp 0x14004cd22
lea rcx, str.invalid_socket_address
cmp rbx, 1
je 0x14004ccfc
cmp rbx, 5
jae 0x14004cdb8
xor eax, eax
xor r15d, r15d
nop word cs:[rax + rax]
movzx edx, byte [r8 + rax]
add edx, 0xffffffd0
cmp edx, 9
ja 0x14004ccfc
add r15d, r15d
lea r15d, [r15 + r15*4]
add r15d, edx
inc rax
cmp rbx, rax
jne 0x14004cd40
mov rax, qword [0x140125798]
cmp rax, 3
jne 0x14004d1d5
cmp r14, 0x17f
ja 0x14004d1e7
lea rbx, [rbp - 0x60]
mov rcx, rbx
mov rdx, rdi
mov r8, r14
call fcn.1400aba85
mov byte [rbp + r14 - 0x60], 0
cmp r14, 0xe
ja 0x14004ce0b
xor ecx, ecx
nop dword [rax]
cmp byte [rbp + rcx - 0x60], 0
je 0x14004cea2
inc rcx
cmp r12, rcx
jne 0x14004cda0
jmp 0x14004cf0a
xor r9d, r9d
mov r10w, 0xa
xor r15d, r15d
nop word cs:[rax + rax]
cmp rbx, r9
je 0x14004cd5f
movzx r11d, byte [r8 + r9]
mov eax, r15d
mul r10w
seto dl
add r11d, 0xffffffd0
cmp r11d, 9
ja 0x14004ccfc
test dl, dl
jne 0x14004ccfc
mov r15d, eax
inc r9
add r15w, r11w
jae 0x14004cdd0
jmp 0x14004ccfc
lea rax, [rbp - 0x59]
and rax, 0xfffffffffffffff8
sub rax, rbx
je 0x14004ce36
je 0x14004ce36
xor ecx, ecx
cmp byte [rbp + rcx - 0x60], 0
je 0x14004cea2
inc rcx
cmp rax, rcx
jne 0x14004ce1c
lea rcx, [r14 - 0xf]
cmp rax, rcx
jbe 0x14004ce3c
jmp 0x14004ce7c
lea rcx, [r14 - 0xf]
xor eax, eax
movdqa xmm0, xmmword [0x1400b2a50]
movabs rdx, 0x8080808080808080
movdqu xmm1, xmmword [rbp + rax - 0x60]
movdqa xmm2, xmm1
paddq xmm2, xmm0
pandn xmm1, xmm2
pshufd xmm2, xmm1, 0xee
por xmm2, xmm1
movq r8, xmm2
test r8, rdx
jne 0x14004ce7c
add rax, 0x10
cmp rax, rcx
jbe 0x14004ce4e
sub r12, rax
je 0x14004cf0a
lea rdx, [rax + rbp]
add rdx, 0xffffffffffffffa0
xor ecx, ecx
cmp byte [rdx + rcx], 0
je 0x14004ce9f
inc rcx
cmp r12, rcx
jne 0x14004ce8f
jmp 0x14004cf0a
add rcx, rax
cmp rcx, r14
jne 0x14004cf0a
pxor xmm0, xmm0
movdqa xmmword [rbp + 0x190], xmm0
movdqa xmmword [rbp + 0x1b0], xmm0
movdqa xmmword [rbp + 0x1a0], xmm0
mov dword [rbp + 0x198], 1
mov qword [rbp + 0x170], 0
lea rcx, [rbp - 0x60]
lea r8, [rbp + 0x190]
lea r9, [rbp + 0x170]
xor edx, edx
call qword [sym.imp.ws2_32.dll_getaddrinfo]
test eax, eax
je 0x14004d1b1
call qword [sym.imp.ws2_32.dll_WSAGetLastError]
shl rax, 0x20
or rax, 2
jmp 0x14004cf11
lea rax, str.file_name_contained_an_unexpected_NUL_byte
mov qword [rbp + 0x1c8], rax
mov eax, 1
mov rax, qword [rbp + 0x170]
mov qword [rbp + 0x1c8], rax
enter 1, 0
call fcn.1400aea30
cmp r14, 0x17f
jbe 0x14004cd7d
lea rcx, [rbp + 0x1c0]
mov rdx, rdi
mov ecx, 4
mov edx, 0x20
call fcn.1400abc30
ud2