Function at 0x1403ac400
Capabilities:
Resolve dns

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x60
movzx eax, word [rcx + 0x400]
xor ebp, ebp
mov rbx, rcx
mov qword [rsp + 0xa0], rbp
mov ecx, 0x201
sub eax, ecx
cmp eax, 1
jbe 0x1403ac63e
cmp qword [rbx + 0x390], rbp
jne 0x1403ac464
lea edx, [rbp + 2]
mov rcx, rbx
lea r8d, [rbp + 0x59]
call fcn.1403a6f00
test rax, rax
je 0x1403ac464
mov rcx, rax
call fcn.1403ad320
mov qword [rbx + 0x390], rax
mov edx, 5
mov rcx, rbx
lea r8d, [rdx + 0x58]
call fcn.1403a6f00
xor edx, edx
mov rcx, rbx
mov rdi, rax
lea r8d, [rdx + 0x59]
call fcn.1403a6f00
test dword [rbx + 0x420], 0x8000000
lea r14, [0x1405d5584]
mov rsi, rax
lea r15, [0x1405d559c]
lea r12, str.POST
lea r13, [0x1405d5588]
lea r8, str.MQTT
je 0x1403ac660
test rdi, rdi
je 0x1403ac588
mov rcx, rbp
nop dword [rax + rax]
movzx eax, byte [rdi + rcx]
inc rcx
cmp al, byte [r14 + rcx - 1]
jne 0x1403ac4e9
cmp rcx, 4
jne 0x1403ac4d0
jmp 0x1403ac588
mov rcx, rbp
nop dword [rax]
movzx eax, byte [rdi + rcx]
inc rcx
cmp al, byte [r15 + rcx - 1]
jne 0x1403ac509
cmp rcx, 4
jne 0x1403ac4f0
jmp 0x1403ac588
mov rcx, rbp
nop dword [rax]
movzx eax, byte [rdi + rcx]
inc rcx
cmp al, byte [r12 + rcx - 1]
jne 0x1403ac526
cmp rcx, 5
jne 0x1403ac510
jmp 0x1403ac588
mov rcx, rbp
nop dword [rax]
movzx eax, byte [rdi + rcx]
inc rcx
cmp al, byte [rcx + r13 - 1]
jne 0x1403ac546
cmp rcx, 4
jne 0x1403ac530
jmp 0x1403ac588
mov rcx, rbp
lea rdx, [0x1405d55a8]
movzx eax, byte [rdi + rcx]
inc rcx
cmp al, byte [rdx + rcx - 1]
jne 0x1403ac565
cmp rcx, 4
jne 0x1403ac550
jmp 0x1403ac588
mov rcx, rbp
nop dword [rax + rax]
movzx eax, byte [rdi + rcx]
inc rcx
cmp al, byte [r8 + rcx - 1]
jne 0x1403ac669
cmp rcx, 5
jne 0x1403ac570
test rsi, rsi
je 0x1403ac860
mov r8, rsi
lea rdx, [rsp + 0xa8]
mov rcx, rbx
call fcn.1403aa940
sub eax, 1
je 0x1403ac601
cmp eax, 1
jne 0x1403ac659
cmp word [rbx + 0x400], 0x200
mov rdx, qword [rsp + 0xa8]
jne 0x1403ac5f4
lea rax, [0x140581130]
cmp qword [rdx + 0x360], rax
jne 0x1403ac5eb
xor r8d, r8d
mov word [rbx + 0x400], 0x10f
mov rcx, rbx
call fcn.1403bdfd0
jmp 0x1403ac641
mov word [rbx + 0x400], 0x13
xor r8d, r8d
mov rcx, rbx
call fcn.1403bdfd0
jmp 0x1403ac641
lea rax, [0x140581130]
cmp qword [rbx + 0x360], rax
jne 0x1403ac63e
mov rax, qword [rbx + 0x10]
xor r9d, r9d
mov r8, qword [rbx + 0x3d8]
mov rcx, rbx
mov qword [rsp + 0x20], rbp
lea edx, [r9 + 0x2c]
call qword [rax + reloc.WS2_32.dll_htonl]
test eax, eax
jne 0x1403ac84f
mov rcx, rbx
call fcn.1403b6140
mov rax, rbx
mov rbx, qword [rsp + 0xb0]
add rsp, 0x60
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
lea r8, str.MQTT
test rdi, rdi
je 0x1403ac73b
mov rcx, rbp
nop dword [rax]
movzx eax, byte [rdi + rcx]
inc rcx
cmp al, byte [r14 + rcx - 1]
jne 0x1403ac686
cmp rcx, 4
jne 0x1403ac670
jmp 0x1403ac704
mov rcx, rbp
nop dword [rax]
movzx eax, byte [rdi + rcx]
inc rcx
cmp al, byte [r15 + rcx - 1]
jne 0x1403ac6a6
cmp rcx, 4
jne 0x1403ac690
jmp 0x1403ac704
mov rcx, rbp
nop dword [rax]
movzx eax, byte [rdi + rcx]
inc rcx
cmp al, byte [r12 + rcx - 1]
jne 0x1403ac6c6
cmp rcx, 5
jne 0x1403ac6b0
jmp 0x1403ac704
mov rcx, rbp
nop dword [rax]
movzx eax, byte [rdi + rcx]
inc rcx
cmp al, byte [rcx + r13 - 1]
jne 0x1403ac6e6
cmp rcx, 4
jne 0x1403ac6d0
jmp 0x1403ac704
mov rcx, rbp
nop dword [rax]
movzx eax, byte [rdi + rcx]
inc rcx
cmp al, byte [r8 + rcx - 1]
jne 0x1403ac73b
cmp rcx, 5
jne 0x1403ac6f0
lea rcx, [rbx + 0x2b0]
call fcn.1403b47a0
test eax, eax
je 0x1403ac73b
lea rcx, [rbx + 0x298]
call fcn.1403b47a0
test eax, eax
je 0x1403ac73b
mov rdx, qword [rbx + 8]
lea rcx, [rbx + 0x298]
add rdx, 0x290
call fcn.1403b4800
test rsi, rsi
je 0x1403ac860
cmp byte [rsi], 0x2b
jne 0x1403ac757
or dword [rbx + 0x420], 8
mov edi, ebp
jmp 0x1403ac875
and dword [rbx + 0x41c], 0xf7ffffff
mov rcx, qword [rbx + 8]
mov eax, dword [rcx + 0x138]
test eax, eax
je 0x1403ac778
lea rsi, [rcx + 0xa8]
jmp 0x1403ac77f
movzx eax, word [rbx + 0x42a]
mov edi, ebp
mov word [rbx + 0x400], 0x201
mov word [rbx + 0x42c], ax
cmp dword [rbx + 0x320], ebp
jne 0x1403ac875
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
mov dword [rsp + 0x38], 1
mov dword [rsp + 0x34], ebp
movups xmmword [rsp + 0x40], xmm0
movups xmmword [rsp + 0x50], xmm0
call fcn.1403ae4c0
and dword [rbx + 0x420], 0xffffefff
lea r9, [rsp + 0xa0]
lea r8, [rsp + 0x30]
mov qword [rbx + 0x3d0], rax
xor edx, edx
mov rcx, rsi
call qword [sym.imp.WS2_32.dll_getaddrinfo]
mov edi, eax
call fcn.1403ae4c0
sub eax, dword [rbx + 0x3d0]
mov dword [rbx + 0x3b8], eax
lea eax, [rdi - 0x2af9]
cmp eax, 2
mov eax, edi
ja 0x1403ac867
or dword [rbx + 0x420], 0x1000
sar eax, 0x1f
and eax, 2
mov dword [rbx + 0x3cc], 2
inc eax
mov dword [rbx + 0x3cc], eax
cmp edi, 0x2af9
jne 0x1403ac875
and dword [rbx + 0x424], 0xfffffffd
lea rdx, str.DNS_NXDOMAIN
mov r8d, reloc.OLEAUT32.dll_VariantTimeToDosDateTime
mov rcx, rbx
call fcn.1403af5a0
lea r8, str.client_connect2
xor edx, edx
mov rcx, rbx
call fcn.1403ae7c0
xor eax, eax
jmp 0x1403ac641
sar eax, 0x1f
and eax, 2
inc eax
mov dword [rbx + 0x3cc], eax
mov r8, qword [rsp + 0xa0]
mov r9d, edi
mov rdx, rsi
mov qword [rsp + 0x20], rbp
mov rcx, rbx
call fcn.1403be2f0
jmp 0x1403ac641