Function at 0x14002ca20
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x20
mov eax, dword [rcx + 0x158]
mov rbx, rcx
mov dword [rcx + 8], 1
test al, 0x20
jne 0x14002ca60
test al, 2
jne 0x14002ca60
test al, 4
jne 0x14002ca60
test al, 8
jne 0x14002ca60
test al, 0x10
jne 0x14002ca60
test al, 1
je 0x14002cd67
mov rdi, qword [rcx + 0xb0]
xor ebp, ebp
test rdi, rdi
jne 0x14002ca8d
add rcx, 0x70
call fcn.140032658
mov rdi, qword [rbx + 0xb0]
test rdi, rdi
jne 0x14002ca8d
mov eax, 0x8007000e
jmp 0x14002cd69
mov eax, dword [rbx + 0x158]
test al, 0x20
jne 0x14002caab
test al, 2
jne 0x14002caab
test al, 4
jne 0x14002caab
test al, 8
jne 0x14002caab
test al, 0x10
je 0x14002cd05
mov rcx, qword [rbx + reloc.MFC42u.dll_CDaoRecordView::CDaoRecordView]
mov eax, dword [rcx + 0x140]
cmp eax, 0x56d
je 0x14002cac6
cmp eax, 0x587
jne 0x14002cad0
call fcn.14002ac70
test rax, rax
jne 0x14002cafa
mov r8d, 0x5d3
lea rcx, str.Error:_Func__s_Line__d:_No_parent_style_found_to_resolve
lea rdx, str.COdtStyleParagraphProperties::Resolve
lea r9, [0x1400a3ca8]
call fcn.14005618c
mov eax, 0x80070057
jmp 0x14002cd69
mov rcx, rax
call fcn.140032d44
mov r9, rax
test rax, rax
jne 0x14002cb19
mov r8d, Ordinal_1499
lea rcx, str.Error:_Func__s_Line__d:_No_paraformat_in_parent_style_to_resolve
jmp 0x14002cadd
mov eax, dword [rbx + 0x158]
xorps xmm5, xmm5
movsd xmm4, qword [0x1400c2ca8]
movsd xmm3, qword [0x1400c2c10]
test al, 0x20
je 0x14002cb99
test byte [r9 + 4], 0x80
jne 0x14002cb4f
lea rdx, str.COdtAttributeParser::OdtPfFromMarginBottomParent
mov r8d, Ordinal_1297
jmp 0x14002cc69
movd xmm0, dword [r9 + 0xa0]
cvtdq2pd xmm0, xmm0
divsd xmm0, xmm4
mulsd xmm0, qword [rbx + 0x180]
movsd qword [rbx + 0x180], xmm0
or dword [rdi + 4], 2
movsd xmm0, qword [rbx + 0x180]
comisd xmm0, xmm5
jbe 0x14002cb88
addsd xmm0, xmm3
jmp 0x14002cb8c
subsd xmm0, xmm3
cvttsd2si eax, xmm0
mov dword [rdi + 0x10], eax
mov eax, dword [rbx + 0x158]
test al, 0x10
je 0x14002cc00
test byte [r9 + 4], 0x40
jne 0x14002cbb6
lea rdx, str.COdtAttributeParser::OdtPfFromMarginTopParent
mov r8d, 0x4f6
jmp 0x14002cc69
movd xmm0, dword [r9 + 0x9c]
cvtdq2pd xmm0, xmm0
divsd xmm0, xmm4
mulsd xmm0, qword [rbx + 0x178]
movsd qword [rbx + 0x178], xmm0
or dword [rdi + 4], 2
movsd xmm0, qword [rbx + 0x178]
comisd xmm0, xmm5
jbe 0x14002cbef
addsd xmm0, xmm3
jmp 0x14002cbf3
subsd xmm0, xmm3
cvttsd2si eax, xmm0
mov dword [rdi + 0x10], eax
mov eax, dword [rbx + 0x158]
test al, 4
je 0x14002cc51
mov eax, dword [r9 + 4]
lea rcx, [rbx + 0x168]
and eax, 5
cmp al, 5
je 0x14002cc25
mov r8d, 0x4c8
lea rdx, str.COdtAttributeParser::OdtPfFromMarginLeftParent
jmp 0x14002cc69
movd xmm0, dword [r9 + 0xc]
mov rdx, rdi
cvtdq2pd xmm0, xmm0
divsd xmm0, xmm4
mulsd xmm0, qword [rcx]
movsd qword [rcx], xmm0
call fcn.140031658
test eax, eax
jne 0x14002cd69
mov eax, dword [rbx + 0x158]
test al, 8
je 0x14002ccbc
test byte [r9 + 4], 2
jne 0x14002cc75
lea rdx, str.COdtAttributeParser::OdtPfFromMarginRightParent
mov r8d, 0x4dd
lea rcx, str.Error:_Func__s_Line__d:_mask_not_set_in_parent
jmp 0x14002cae4
movd xmm0, dword [r9 + 0x10]
cvtdq2pd xmm0, xmm0
divsd xmm0, xmm4
mulsd xmm0, qword [rbx + 0x170]
movsd qword [rbx + 0x170], xmm0
or dword [rdi + 4], 2
movsd xmm0, qword [rbx + 0x170]
comisd xmm0, xmm5
jbe 0x14002ccab
addsd xmm0, xmm3
jmp 0x14002ccaf
subsd xmm0, xmm3
cvttsd2si eax, xmm0
mov dword [rdi + 0x10], eax
mov eax, dword [rbx + 0x158]
test al, 2
je 0x14002cd05
test byte [r9 + 4], 1
lea rcx, [rbx + 0x160]
jne 0x14002ccdd
mov r8d, 0x48d
lea rdx, str.COdtAttributeParser::OdtPfFromTextIndentParent
jmp 0x14002cc69
movd xmm0, dword [r9 + 0xc]
mov rdx, rdi
cvtdq2pd xmm0, xmm0
divsd xmm0, xmm4
mulsd xmm0, qword [rcx]
movsd qword [rcx], xmm0
call fcn.1400315c4
test eax, eax
jne 0x14002cd69
mov eax, dword [rbx + 0x158]
test al, 1
je 0x14002cd67
or dword [rdi + 4], 0x10
mov r8d, dword [rdi + 0x14]
add r8d, dword [rdi + 0xc]
je 0x14002cd5f
mov r10d, ebp
cmp bp, word [rdi + 0x1a]
jge 0x14002cd5f
lea r9, [rdi + 0x1c]
mov r11d, 0xffffff
mov ecx, dword [r9]
mov eax, dword [r9]
and ecx, r11d
mov edx, ecx
or edx, 0xff000000
and eax, 0x800000
cmove edx, ecx
inc r10d
add edx, r8d
xor edx, dword [r9]
and edx, r11d
xor dword [r9], edx
lea r9, [r9 + 4]
movsx eax, word [rdi + 0x1a]
cmp r10d, eax
jl 0x14002cd2a
mov rcx, rbx
call fcn.14002c968
xor eax, eax
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret