Function at 0x1400d2c50
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xa8
mov rax, qword [rcx + 0xc8]
mov qword [rsp + 0x80], 0
mov r15, rcx
mov qword [rsp + 0x88], 0
test rax, rax
je 0x1400d30d8
lea rdx, [rsp + 0x80]
mov rcx, qword [rcx + 0xc0]
lea r8, [rsp + 0x78]
xor r14d, r14d
call qword [rax + 0x30]
xor edx, edx
mov ebp, eax
test eax, eax
jne 0x1400d2fb3
lea rax, [rsp + 0x7c]
xor ebx, ebx
mov r12d, edx
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0x88]
mov qword [rsp + 0x40], rax
jmp 0x1400d2d23
cmp byte [rdx + 1], 0x2d
jne 0x1400d2d49
mov rcx, qword [rsp + 0x88]
xor esi, esi
test rcx, rcx
je 0x1400d3068
call sym.free
mov qword [rsp + 0x88], 0
mov rax, qword [rsp + 0x80]
mov rdx, qword [rax + rdi]
test rdx, rdx
jne 0x1400d3068
add rbx, 1
test esi, esi
jne 0x1400d308c
cmp dword [rsp + 0x78], ebx
jle 0x1400d2fb0
mov rax, qword [rsp + 0x80]
lea rdi, [rbx*8]
mov rdx, qword [rax + rbx*8]
movzx eax, byte [rdx]
cmp eax, 0x63
je 0x1400d2cd8
movzx ecx, byte [rdx]
cmp ecx, 0x63
jne 0x1400d2d60
cmp byte [rdx + 1], 0x35
jne 0x1400d2d60
cmp byte [rdx + 2], 0x2d
je 0x1400d2cde
nop dword [rax]
cmp eax, 0x71
jne 0x1400d2d70
cmp byte [rdx + 1], 0x2d
je 0x1400d2cde
nop
cmp ecx, 0x71
jne 0x1400d2d88
cmp byte [rdx + 1], 0x35
jne 0x1400d2d88
cmp byte [rdx + 2], 0x2d
je 0x1400d2cde
nop dword [rax]
mov rax, qword [r15 + 0xc8]
mov rcx, qword [r15 + 0xc0]
mov r9, qword [rsp + 0x38]
mov r8, qword [rsp + 0x40]
call qword [rax + 0x20]
mov esi, eax
test eax, eax
jne 0x1400d2f98
mov rax, qword [r15 + 0xd8]
test rax, rax
je 0x1400d2dd4
mov rcx, qword [r15 + 0xe8]
mov r8, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x40]
call rax
test eax, eax
jne 0x1400d30bc
mov r9, qword [rsp + 0x80]
mov r13, qword [r9 + rdi]
movzx eax, byte [r13]
cmp eax, 0x72
jne 0x1400d2df5
cmp byte [r13 + 1], 0x35
je 0x1400d311c
cmp eax, 0x73
jne 0x1400d30e4
cmp byte [r13 + 1], 0x35
jne 0x1400d30e4
lea rax, [0x1401240c6]
cmp byte [r13 + 2], 0x2d
mov qword [rsp + 0x58], rax
jne 0x1400d30e4
cmp dword [r15 + 0xf8], 4
jle 0x1400d344d
mov dword [rsp + 0x64], 5
mov r8, qword [rsp + 0x88]
mov r11d, dword [rsp + 0x7c]
xor r9d, r9d
mov ecx, 1
mov eax, dword [rsp + 0x60]
movzx edx, byte [r8]
mov dword [rsp + 0x48], r11d
mov qword [rsp + 0x50], r8
mov al, dl
mov dword [rsp + 0x60], eax
mov rax, r8
nop word cs:[rax + rax]
mov r10, rax
movzx r11d, byte [rax + 1]
add rax, 1
mov r8d, r11d
and r8d, 0x7f
imul r8d, ecx
shl ecx, 7
add r9d, r8d
test r11b, r11b
js 0x1400d2e70
mov r8, qword [rsp + 0x50]
mov r11d, dword [rsp + 0x48]
sub eax, r8d
lea eax, [r9 + rax + 1]
cmp r11d, eax
jne 0x1400d30a8
movzx eax, byte [rsp + 0x60]
shr al, 4
movzx eax, al
lea ecx, [rax - 1]
cmp ecx, 0xd
ja 0x1400d30a8
mov rcx, qword [0x14012a290]
mov rax, qword [rcx + rax*8]
test rax, rax
je 0x1400d30a8
mov ecx, dword [rsp + 0x64]
movzx edx, dl
movsxd r9, r9d
lea r8, [r10 + 2]
call rax
mov r13, rax
test rax, rax
je 0x1400d3096
mov rdx, qword [rsp + 0x58]
movzx eax, byte [rdx]
cmp eax, 0x72
jne 0x1400d3140
cmp byte [rdx + 1], 0x2d
jne 0x1400d3140
movzx r9d, byte [r13]
mov eax, dword [r15 + 0xf8]
mov rcx, r13
mov qword [rsp + 0x98], 0
lea rdx, [rsp + 0x98]
mov dword [r13 + 0x24], eax
mov r8d, r9d
and r9d, 1
mov dword [rsp + 0x20], 1
shr r8b, 1
and r8d, 3
call sym.MQTTProtocol_createMessage
mov qword [rsp + 0x98], rax
movsxd r8, dword [rax + 0x3c]
mov rdx, rax
mov byte [rax + 0x38], 6
mov rcx, qword [r15 + 0x90]
call sym.ListAppend
cmp dword [r15 + 0xf8], 4
jg 0x1400d32cf
mov qword [r13 + 8], 0
mov rcx, r13
add r12d, 1
xor esi, esi
call sym.MQTTPacket_freePublish
nop dword [rax]
mov rcx, qword [rsp + 0x88]
test rcx, rcx
jne 0x1400d2cf1
jmp 0x1400d2d02
mov edx, r12d
mov rax, qword [r15]
mov dword [rsp + 0x20], edx
mov r9d, r14d
lea r8, str._d_sent_messages_and__d_received_messages_restored_for_client__s_n
mov edx, 0xffffffff
mov ecx, 3
mov qword [rsp + 0x28], rax
call sym.Log
mov rcx, r15
call sym.MQTTPersistence_wrapMsgID
mov r13, qword [rsp + 0x80]
test r13, r13
je 0x1400d302b
mov eax, dword [rsp + 0x78]
test eax, eax
jle 0x1400d3023
xor ebx, ebx
nop word [rax + rax]
mov rcx, qword [r13 + rbx*8]
test rcx, rcx
je 0x1400d3058
call sym.free
mov eax, dword [rsp + 0x78]
add rbx, 1
mov r13, qword [rsp + 0x80]
cmp eax, ebx
jg 0x1400d3000
mov rcx, r13
call sym.free
mov rcx, qword [rsp + 0x88]
test rcx, rcx
je 0x1400d303d
call sym.free
mov eax, ebp
add rsp, 0xa8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
add rbx, 1
cmp eax, ebx
jg 0x1400d3000
jmp 0x1400d3023
mov rcx, rdx
add rbx, 1
call sym.free
mov rax, qword [rsp + 0x80]
mov qword [rax + rdi], 0
test esi, esi
je 0x1400d2d23
mov edx, r12d
mov ebp, esi
jmp 0x1400d2fb3
mov rax, qword [rsp + 0x80]
mov r13, qword [rax + rdi]
nop word [rax + rax]
mov rax, qword [r15 + 0xc8]
mov rcx, qword [r15 + 0xc0]
mov rdx, r13
call qword [rax + 0x28]
mov rcx, qword [rsp + 0x88]
mov esi, eax
test rcx, rcx
jne 0x1400d2cf1
jmp 0x1400d2d02
xor edx, edx
xor r14d, r14d
xor ebp, ebp
jmp 0x1400d2fb3
mov r8d, 4
lea rdx, str.sc5_
mov rcx, r13
mov qword [rsp + 0x48], r9
call sym.strncmp
test eax, eax
jne 0x1400d32bd
lea rax, [0x1401240ce]
mov r9, qword [rsp + 0x48]
mov qword [rsp + 0x58], rax
jmp 0x1400d2e20
lea rdx, [0x1401240d2]
cmp byte [r13 + 2], 0x2d
mov qword [rsp + 0x58], rdx
je 0x1400d2e20
jmp 0x1400d2df5
cmp eax, 0x73
jne 0x1400d31ef
mov rax, qword [rsp + 0x58]
cmp byte [rax + 1], 0x2d
jne 0x1400d31ef
mov ecx, 0xb
mov qword [rsp + 0x90], 0
call sym.malloc
mov qword [rsp + 0x48], rax
test rax, rax
je 0x1400d345a
mov eax, dword [r15 + 0xf8]
mov edx, dword [r13 + 0x14]
lea r9, str.sc5_
mov dword [r13 + 0x24], eax
mov dword [rsp + 0x20], edx
cmp eax, 4
jg 0x1400d31a2
lea r9, [0x1401240ce]
mov rcx, qword [rsp + 0x48]
lea r8, str._s_d
mov edx, 0xb
call qword [sym.imp.msvcrt.dll__snprintf]
mov r9d, eax
cdqe
cmp rax, 0xa
jbe 0x1400d3318
lea r8, str.Error_writing__d_chars_with_snprintf
xor edx, edx
mov ecx, 5
mov esi, 0xfffffffe
call sym.Log
mov rcx, qword [rsp + 0x48]
call sym.free
jmp 0x1400d2f98
mov rax, qword [rsp + 0x58]
cmp byte [rax], 0x73
jne 0x1400d2f98
cmp byte [rax + 1], 0x63
jne 0x1400d2f98
cmp byte [rax + 2], 0x2d
jne 0x1400d2f98
mov ecx, 0xb
call sym.malloc
mov qword [rsp + 0x48], rax
test rax, rax
je 0x1400d345a
mov eax, dword [r15 + 0xf8]
mov edx, dword [r13 + 4]
lea r9, [0x1401240c2]
mov dword [r13 + 0xc], eax
mov dword [rsp + 0x20], edx
cmp eax, 4
jg 0x1400d324f
lea r9, [0x1401240c6]
mov rcx, qword [rsp + 0x48]
lea r8, str._s_d
mov edx, 0xb
call qword [sym.imp.msvcrt.dll__snprintf]
mov r9d, eax
cdqe
cmp rax, 0xa
ja 0x1400d3430
mov rax, qword [r15 + 0xc8]
mov rcx, qword [r15 + 0xc0]
mov rdx, qword [rsp + 0x48]
call qword [rax + 0x40]
mov esi, eax
test eax, eax
je 0x1400d32b0
mov rax, qword [rsp + 0x80]
mov rcx, qword [r15 + 0xc0]
mov rdx, qword [rax + rdi]
mov rax, qword [r15 + 0xc8]
call qword [rax + 0x28]
mov esi, eax
mov rcx, r13
call sym.free
jmp 0x1400d31e0
mov qword [rsp + 0x58], r13
mov dword [rsp + 0x64], 4
jmp 0x1400d2e36
mov rax, qword [rsp + 0x98]
mov rax, qword [rax + 0x28]
mov rcx, qword [rax + 0x10]
call sym.free
mov rax, qword [rsp + 0x98]
mov rax, qword [rax + 0x28]
mov rcx, qword [rax]
call sym.free
mov rax, qword [rsp + 0x98]
mov rax, qword [rax + 0x28]
mov qword [rax], 0
mov qword [rax + 0x10], 0
jmp 0x1400d2f7e
movzx r9d, byte [r13]
mov dword [rsp + 0x20], 1
lea rdx, [rsp + 0x90]
mov rcx, r13
mov r8d, r9d
and r9d, 1
shr r8b, 1
and r8d, 3
call sym.MQTTProtocol_createMessage
mov rcx, qword [r15 + 0xc0]
mov rdx, qword [rsp + 0x48]
mov qword [rsp + 0x90], rax
mov rax, qword [r15 + 0xc8]
call qword [rax + 0x40]
test eax, eax
mov rax, qword [rsp + 0x90]
jne 0x1400d3371
mov byte [rax + 0x38], 7
mov qword [rax + 0x30], 0
movsxd r8, dword [rax + 0x3c]
lea rdx, [rsp + 0x98]
xor esi, esi
mov rcx, qword [r15 + 0x98]
mov dword [rsp + 0x58], r12d
mov dword [rsp + 0x64], r14d
mov r14, rdx
mov qword [rsp + 0x68], rbx
mov r12, rcx
mov rbx, rax
mov qword [rsp + 0x98], 0
mov qword [rsp + 0x50], r8
jmp 0x1400d33e0
test rax, rax
je 0x1400d33f0
mov rsi, qword [rsp + 0x98]
mov rax, qword [rsi + 0x10]
mov eax, dword [rax + 8]
cmp dword [rbx + 8], eax
mov eax, 0
cmovge rsi, rax
mov rdx, r14
mov rcx, r12
call sym.ListNextElement
test rsi, rsi
je 0x1400d33c0
mov rax, rbx
mov r8, qword [rsp + 0x50]
mov rcx, r12
mov r9, rsi
mov rdx, rax
mov r14d, dword [rsp + 0x64]
mov r12d, dword [rsp + 0x58]
xor esi, esi
mov rbx, qword [rsp + 0x68]
call sym.ListInsert
mov qword [r13 + 8], 0
mov rcx, r13
add r14d, 1
call sym.MQTTPacket_freePublish
jmp 0x1400d31e0
lea r8, str.Error_writing__d_chars_with_snprintf
xor edx, edx
mov ecx, 5
mov esi, 0xfffffffe
call sym.Log
jmp 0x1400d32b0
mov r13, r9
mov ebp, 0xfffffffe
jmp 0x1400d2fe8
mov r13, qword [rsp + 0x80]
mov ebp, 0xffffff9d
jmp 0x1400d2fe8