Function at 0x1400d2780
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 0x1400d2c08
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 0x1400d2ae3
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 0x1400d2853
cmp byte [rdx + 1], 0x2d
jne 0x1400d2879
mov rcx, qword [rsp + 0x88]
xor esi, esi
test rcx, rcx
je 0x1400d2b98
call sym.free
mov qword [rsp + 0x88], 0
mov rax, qword [rsp + 0x80]
mov rdx, qword [rax + rdi]
test rdx, rdx
jne 0x1400d2b98
add rbx, 1
test esi, esi
jne 0x1400d2bbc
cmp dword [rsp + 0x78], ebx
jle 0x1400d2ae0
mov rax, qword [rsp + 0x80]
lea rdi, [rbx*8]
mov rdx, qword [rax + rbx*8]
movzx eax, byte [rdx]
cmp eax, 0x63
je 0x1400d2808
movzx ecx, byte [rdx]
cmp ecx, 0x63
jne 0x1400d2890
cmp byte [rdx + 1], 0x35
jne 0x1400d2890
cmp byte [rdx + 2], 0x2d
je 0x1400d280e
nop dword [rax]
cmp eax, 0x71
jne 0x1400d28a0
cmp byte [rdx + 1], 0x2d
je 0x1400d280e
nop
cmp ecx, 0x71
jne 0x1400d28b8
cmp byte [rdx + 1], 0x35
jne 0x1400d28b8
cmp byte [rdx + 2], 0x2d
je 0x1400d280e
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 0x1400d2ac8
mov rax, qword [r15 + 0xd8]
test rax, rax
je 0x1400d2904
mov rcx, qword [r15 + 0xe8]
mov r8, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x40]
call rax
test eax, eax
jne 0x1400d2bec
mov r9, qword [rsp + 0x80]
mov r13, qword [r9 + rdi]
movzx eax, byte [r13]
cmp eax, 0x72
jne 0x1400d2925
cmp byte [r13 + 1], 0x35
je 0x1400d2c4c
cmp eax, 0x73
jne 0x1400d2c14
cmp byte [r13 + 1], 0x35
jne 0x1400d2c14
lea rax, [0x140118fa6]
cmp byte [r13 + 2], 0x2d
mov qword [rsp + 0x58], rax
jne 0x1400d2c14
cmp dword [r15 + 0xf8], 4
jle 0x1400d2f7d
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 0x1400d29a0
mov r8, qword [rsp + 0x50]
mov r11d, dword [rsp + 0x48]
sub eax, r8d
lea eax, [r9 + rax + 1]
cmp r11d, eax
jne 0x1400d2bd8
movzx eax, byte [rsp + 0x60]
shr al, 4
movzx eax, al
lea ecx, [rax - 1]
cmp ecx, 0xd
ja 0x1400d2bd8
mov rcx, qword [0x14011ecb0]
mov rax, qword [rcx + rax*8]
test rax, rax
je 0x1400d2bd8
mov ecx, dword [rsp + 0x64]
movzx edx, dl
movsxd r9, r9d
lea r8, [r10 + 2]
call rax
mov r13, rax
test rax, rax
je 0x1400d2bc6
mov rdx, qword [rsp + 0x58]
movzx eax, byte [rdx]
cmp eax, 0x72
jne 0x1400d2c70
cmp byte [rdx + 1], 0x2d
jne 0x1400d2c70
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 0x1400d2dff
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 0x1400d2821
jmp 0x1400d2832
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 0x1400d2b5b
mov eax, dword [rsp + 0x78]
test eax, eax
jle 0x1400d2b53
xor ebx, ebx
nop word [rax + rax]
mov rcx, qword [r13 + rbx*8]
test rcx, rcx
je 0x1400d2b88
call sym.free
mov eax, dword [rsp + 0x78]
add rbx, 1
mov r13, qword [rsp + 0x80]
cmp eax, ebx
jg 0x1400d2b30
mov rcx, r13
call sym.free
mov rcx, qword [rsp + 0x88]
test rcx, rcx
je 0x1400d2b6d
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 0x1400d2b30
jmp 0x1400d2b53
mov rcx, rdx
add rbx, 1
call sym.free
mov rax, qword [rsp + 0x80]
mov qword [rax + rdi], 0
test esi, esi
je 0x1400d2853
mov edx, r12d
mov ebp, esi
jmp 0x1400d2ae3
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 0x1400d2821
jmp 0x1400d2832
xor edx, edx
xor r14d, r14d
xor ebp, ebp
jmp 0x1400d2ae3
mov r8d, 4
lea rdx, str.sc5_
mov rcx, r13
mov qword [rsp + 0x48], r9
call sym.strncmp
test eax, eax
jne 0x1400d2ded
lea rax, [0x140118fae]
mov r9, qword [rsp + 0x48]
mov qword [rsp + 0x58], rax
jmp 0x1400d2950
lea rdx, [0x140118fb2]
cmp byte [r13 + 2], 0x2d
mov qword [rsp + 0x58], rdx
je 0x1400d2950
jmp 0x1400d2925
cmp eax, 0x73
jne 0x1400d2d1f
mov rax, qword [rsp + 0x58]
cmp byte [rax + 1], 0x2d
jne 0x1400d2d1f
mov ecx, 0xb
mov qword [rsp + 0x90], 0
call sym.malloc
mov qword [rsp + 0x48], rax
test rax, rax
je 0x1400d2f8a
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 0x1400d2cd2
lea r9, [0x140118fae]
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 0x1400d2e48
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 0x1400d2ac8
mov rax, qword [rsp + 0x58]
cmp byte [rax], 0x73
jne 0x1400d2ac8
cmp byte [rax + 1], 0x63
jne 0x1400d2ac8
cmp byte [rax + 2], 0x2d
jne 0x1400d2ac8
mov ecx, 0xb
call sym.malloc
mov qword [rsp + 0x48], rax
test rax, rax
je 0x1400d2f8a
mov eax, dword [r15 + 0xf8]
mov edx, dword [r13 + 4]
lea r9, [0x140118fa2]
mov dword [r13 + 0xc], eax
mov dword [rsp + 0x20], edx
cmp eax, 4
jg 0x1400d2d7f
lea r9, [0x140118fa6]
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 0x1400d2f60
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 0x1400d2de0
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 0x1400d2d10
mov qword [rsp + 0x58], r13
mov dword [rsp + 0x64], 4
jmp 0x1400d2966
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 0x1400d2aae
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 0x1400d2ea1
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 0x1400d2f10
test rax, rax
je 0x1400d2f20
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 0x1400d2ef0
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 0x1400d2d10
lea r8, str.Error_writing__d_chars_with_snprintf
xor edx, edx
mov ecx, 5
mov esi, 0xfffffffe
call sym.Log
jmp 0x1400d2de0
mov r13, r9
mov ebp, 0xfffffffe
jmp 0x1400d2b18
mov r13, qword [rsp + 0x80]
mov ebp, 0xffffff9d
jmp 0x1400d2b18