Function at 0x140044ed0
Capabilities:
Encode data using xor

Disassembly:
mov r11, rsp
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
mov qword [rsp + 0x20], 0xfffffffffffffffe
mov qword [r11 + 8], rbx
mov qword [r11 + 0x10], rbp
mov qword [r11 + 0x18], rsi
mov rdi, rcx
mov rbp, qword [rcx + 0x20]
mov r8, qword [rcx + 8]
mov rax, qword [rcx]
lea rsi, [rax + r8*8]
xor r14d, r14d
mov qword [r11 - 0x40], r14
mov qword [r11 - 0x38], rdx
lea rcx, [r11 - 0x40]
call fcn.140043f10
mov r11, qword [rdi + 8]
mov r13, qword [rdi]
mov qword [rdi], r14
mov r12, r11
mov qword [rdi + 8], r11
mov qword [rdi + 0x20], r14
mov rbx, qword [rdi + 0x30]
cmp rbx, rsi
je 0x140044fdb
mov r15d, 0x9e3779b9
mov r11, qword [rbx]
test r11, r11
je 0x140044fce
nop
lea rax, [r11 + 8]
mov r8, qword [rax + 0x18]
cmp r8, 0x10
jb 0x140044f63
mov rdx, qword [rax]
jmp 0x140044f66
mov rdx, rax
mov rcx, qword [rax + 0x10]
add rcx, rdx
cmp r8, 0x10
jb 0x140044f76
mov rax, qword [rax]
mov r10, r14
cmp rax, rcx
je 0x140044fa6
nop
mov r9, r10
shl r9, 6
mov rdx, r10
shr rdx, 2
add rdx, r9
movsx r8, byte [rax]
add rdx, r15
add r8, rdx
xor r10, r8
inc rax
cmp rax, rcx
jne 0x140044f80
xor edx, edx
mov rax, r10
div qword [rsp + 0x30]
mov rcx, qword [rsp + 0x28]
mov rax, qword [r11]
mov qword [rbx], rax
mov rax, qword [rcx + rdx*8]
mov qword [r11], rax
mov qword [rcx + rdx*8], r11
mov r11, qword [rbx]
test r11, r11
jne 0x140044f50
add rbx, 8
cmp rbx, rsi
jne 0x140044f43
mov qword [rdi + 0x20], rbp
mov rax, qword [rsp + 0x28]
mov rsi, qword [rdi]
mov qword [rsp + 0x28], rsi
mov qword [rdi], rax
mov rax, qword [rsp + 0x30]
mov rbx, qword [rdi + 8]
mov qword [rsp + 0x30], rbx
mov qword [rdi + 8], rax
cmp qword [rdi + 0x20], 0
je 0x140045030
mov rax, qword [rdi]
mov qword [rdi + 0x30], rax
cmp qword [rax], 0
jne 0x14004503e
nop word [rax + rax]
add rax, 8
mov qword [rdi + 0x30], rax
cmp qword [rax], 0
je 0x140045020
jmp 0x14004503e
mov rcx, rax
mov rax, qword [rdi]
lea rcx, [rax + rcx*8]
mov qword [rdi + 0x30], rcx
movd xmm0, dword [rdi + 0x28]
cvtps2pd xmm0, xmm0
mov rax, qword [rdi + 8]
pxor xmm1, xmm1
cvtsi2sd xmm1, rax
test rax, rax
jns 0x140045060
addsd xmm1, qword [0x14008b6e8]
mulsd xmm0, xmm1
call sub.MSVCR100.dll_ceil
or rax, 0xffffffffffffffff
pxor xmm1, xmm1
cvtsi2sd xmm1, rax
jns 0x140045080
addsd xmm1, qword [0x14008b6e8]
comisd xmm0, xmm1
jae 0x1400450b5
xor ecx, ecx
movsd xmm1, qword [0x14008b6e0]
comisd xmm0, xmm1
jbe 0x1400450ad
subsd xmm0, xmm1
comisd xmm0, xmm1
jae 0x1400450ad
movabs rax, 0x8000000000000000
mov rcx, rax
cvttsd2si rax, xmm0
add rax, rcx
mov qword [rdi + 0x38], rax
test r13, r13
je 0x14004512e
lea rbp, [r13 + r12*8]
mov rsi, r13
cmp r13, rbp
je 0x14004511c
nop dword [rax + rax]
mov rdi, qword [rsi]
mov qword [rsi], r14
test rdi, rdi
je 0x140045113
nop dword [rax + rax]
mov rbx, rdi
mov rdi, qword [rdi]
cmp qword [rbx + 0x20], 0x10
jb 0x1400450f6
mov rcx, qword [rbx + 8]
call sub.mfc100u.dll_CThreadLocalObject::CThreadLocalObject
mov qword [rbx + 0x20], 0xf
mov qword [rbx + 0x18], r14
mov byte [rbx + 8], 0
mov rcx, rbx
call sub.mfc100u.dll_CThreadLocalObject::CThreadLocalObject
test rdi, rdi
jne 0x1400450e0
add rsi, 8
cmp rsi, rbp
jne 0x1400450d0
mov rcx, r13
call sub.mfc100u.dll_CThreadLocalObject::CThreadLocalObject
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x28]
test rsi, rsi
je 0x140045199
lea rbp, [rsi + rbx*8]
cmp rsi, rbp
je 0x140045191
nop dword [rax]
mov rdi, qword [rsi]
mov qword [rsi], r14
test rdi, rdi
je 0x140045183
nop dword [rax + rax]
mov rbx, rdi
mov rdi, qword [rdi]
cmp qword [rbx + 0x20], 0x10
jb 0x140045166
mov rcx, qword [rbx + 8]
call sub.mfc100u.dll_CThreadLocalObject::CThreadLocalObject
mov qword [rbx + 0x20], 0xf
mov qword [rbx + 0x18], r14
mov byte [rbx + 8], 0
mov rcx, rbx
call sub.mfc100u.dll_CThreadLocalObject::CThreadLocalObject
test rdi, rdi
jne 0x140045150
add rsi, 8
cmp rsi, rbp
jne 0x140045140
mov rsi, qword [rsp + 0x28]
mov rcx, rsi
call sub.mfc100u.dll_CThreadLocalObject::CThreadLocalObject
mov rbx, qword [rsp + 0x70]
mov rbp, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x80]
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
ret