Function at 0x180074a80
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x48
mov r14, r9
mov rbx, r8
mov rsi, rdx
mov r15, qword [rsp + 0xb8]
mov rax, qword [0x1804a9038]
xor rax, rsp
mov qword [rsp + 0x40], rax
lea r12, [rdx + 0x118]
mov dword [rdx + 0x118], 0xaaaaaaaa
mov r8d, 0x118
mov rcx, rdx
xor edx, edx
call fcn.180366c80
lea r13, [rsi + 0x18]
mov rax, r13
mov word [rax], 3
add rax, 2
cmp rax, r12
jne 0x180074ad8
test r14, r14
mov qword [rsp + 0x30], r14
je 0x180074bd9
mov rcx, qword [r14 + 0xd0]
test rcx, rcx
je 0x180074be5
mov rax, rcx
shr rax, 1
movabs rdx, 0x5555555555555555
and rdx, rax
mov rax, rcx
sub rax, rdx
movabs rdx, 0x3333333333333333
mov r8, rax
and r8, rdx
shr rax, 2
and rax, rdx
add rax, r8
mov rdx, rax
shr rdx, 4
add rdx, rax
movabs rax, 0xf0f0f0f0f0f0f0f
and rax, rdx
movabs r8, 0x101010101010101
imul r8, rax
shr r8, 0x38
cmp r8, 1
jbe 0x180074b7d
mov edi, 0xf
cmp rcx, 0xf
ja 0x180074b83
mov al, 0xf
movzx eax, al
div cl
movzx edi, ah
jmp 0x180074b83
lea edi, [rcx - 1]
and edi, 0xf
mov rax, qword [r14 + 0xc8]
mov rax, qword [rax + rdi*8]
test rax, rax
je 0x180074be5
mov r9, qword [rax]
test r9, r9
je 0x180074be5
lea r10, [rcx - 1]
jmp 0x180074bb0
cmp dword [r9 + 0x10], 0xf
je 0x180074be8
mov r9, qword [r9]
test r9, r9
je 0x180074be5
mov rax, qword [r9 + 8]
cmp rax, 0xf
je 0x180074ba1
cmp r8d, 1
ja 0x180074bca
and rax, r10
cmp rax, rdi
je 0x180074ba8
jmp 0x180074be5
cmp rax, rcx
jb 0x180074bc3
xor edx, edx
div rcx
mov rax, rdx
jmp 0x180074bc3
xor r14d, r14d
jmp 0x180074bef
xor eax, eax
jmp 0x180074c67
xor r9d, r9d
test r9, r9
setne r14b
mov ebp, dword [rbx + 0x20]
mov rcx, rbx
mov dl, 1
mov r8d, ebp
call fcn.1800629f0
mov cl, byte [rsi]
and cl, 0xfe
or cl, al
mov byte [rsi], cl
mov rcx, rbx
mov dl, 1
mov r8d, ebp
call fcn.180062a40
mov cl, byte [rsi]
add al, al
and cl, 0xfd
or cl, al
mov byte [rsi], cl
mov rcx, rbx
mov dl, 1
mov r8d, ebp
call fcn.180062a90
mov cl, byte [rsi]
shl al, 2
and cl, 0xfb
or cl, al
mov byte [rsi], cl
mov rax, qword [r15 + 0x40]
test rax, rax
je 0x180074bde
mov rcx, qword [rax]
lea r15, [rsp + 0x3c]
mov rdx, r15
mov r8d, 2
call fcn.180019610
mov rcx, r15
call fcn.180010a80
xor al, 1
shl al, 3
mov cl, byte [rsi]
and cl, 0xf7
or cl, al
mov byte [rsi], cl
xor edi, edi
mov rcx, rbx
xor edx, edx
mov r8d, ebp
call fcn.180062a90
test al, al
je 0x180074ca3
cmp byte [rbx + 0x16], 0
xorps xmm0, xmm0
xorps xmm1, xmm1
je 0x180074c92
movss xmm1, dword [rbx + 0x30]
ucomiss xmm1, xmm0
setp al
setne dil
or dil, al
shl dil, 4
mov al, byte [rsi]
and al, 0xef
or al, dil
mov byte [rsi], al
xor edi, edi
mov rcx, rbx
xor edx, edx
mov r8d, ebp
call fcn.180062a90
test al, al
je 0x180074ce1
cmp byte [rbx + 0x16], 0
xorps xmm0, xmm0
xorps xmm1, xmm1
je 0x180074cd0
movss xmm1, dword [rbx + 0x34]
ucomiss xmm1, xmm0
setp al
setne dil
or dil, al
shl dil, 5
lea r15, [rbx + 0x68]
mov al, byte [rsi]
and al, 0xdf
or al, dil
mov byte [rsi], al
xor edi, edi
mov rcx, rbx
xor edx, edx
mov r8d, ebp
call fcn.180062a90
mov ecx, 0
test al, al
je 0x180074d25
cmp byte [rbx + 0x16], 0
xorps xmm0, xmm0
xorps xmm1, xmm1
je 0x180074d17
movss xmm1, dword [rbx + 0x2c]
ucomiss xmm1, xmm0
setp al
setne cl
or cl, al
shl cl, 6
cmp qword [rsp + 0x30], 0
setne bpl
mov al, byte [rsi]
and al, 0xbf
or al, cl
mov byte [rsi], al
mov rcx, r15
mov rdx, qword [rsp + 0xb8]
call fcn.180063120
or r14b, al
shl r14b, 7
mov al, byte [rsi]
mov cl, byte [rsi + 1]
and al, 0x7f
or al, r14b
mov byte [rsi], al
and cl, 0xfe
or cl, bpl
mov byte [rsi + 1], cl
mov eax, 0x7fffffff
mov ecx, dword [rbx + 0x1c]
and ecx, eax
mov edx, 0x80000000
mov r8d, dword [rsi + 4]
and r8d, edx
or r8d, ecx
mov dword [rsi + 4], r8d
and eax, dword [rbx + 0x18]
and edx, dword [rsi + 8]
or edx, eax
mov dword [rsi + 8], edx
mov r8d, dword [rbx + 0x20]
mov rcx, rbx
mov dl, 1
call fcn.180062a40
mov ecx, dword [rbx + 0x1e4]
cmp dword [rbx + 0x28], 2
setne dl
not al
or al, dl
mov edx, dword [rsi + 0xc]
and ecx, 7
and edx, 0xfffffff8
or edx, ecx
mov dword [rsi + 0xc], edx
cmp ecx, 2
setae cl
and cl, al
mov al, byte [rsi + 0x10]
and al, 0xfe
or al, cl
mov byte [rsi + 0x10], al
mov r15, qword [rsp + 0xb0]
mov r8b, byte [r15 + 0x164]
test r8b, 8
je 0x180074ed8
mov rcx, qword [r15 + 0xf8]
test rcx, rcx
je 0x180074ed8
mov rax, rcx
shr rax, 1
movabs rdx, 0x5555555555555555
and rdx, rax
mov rax, rcx
sub rax, rdx
movabs rdx, 0x3333333333333333
mov r9, rax
and r9, rdx
shr rax, 2
and rax, rdx
add rax, r9
mov rdx, rax
shr rdx, 4
add rdx, rax
movabs rax, 0xf0f0f0f0f0f0f0f
and rax, rdx
movabs r9, 0x101010101010101
imul r9, rax
shr r9, 0x38
cmp r9, 1
mov r14, qword [rsp + 0x30]
jbe 0x180074e71
mov ebx, 3
cmp rcx, 3
ja 0x180074e77
mov al, 3
movzx eax, al
div cl
movzx ebx, ah
jmp 0x180074e77
lea ebx, [rcx - 1]
and ebx, 3
mov rax, qword [r15 + 0xf0]
mov rax, qword [rax + rbx*8]
test rax, rax
je 0x180074edd
mov r10, qword [rax]
test r10, r10
je 0x180074edd
lea r11, [rcx - 1]
jmp 0x180074ea4
cmp dword [r10 + 0x10], 3
je 0x180074ecf
mov r10, qword [r10]
test r10, r10
je 0x180074ebc
mov rax, qword [r10 + 8]
cmp rax, 3
je 0x180074e95
cmp r9d, 1
ja 0x180074ec0
and rax, r11
cmp rax, rbx
je 0x180074e9c
xor edi, edi
jmp 0x180074edd
cmp rax, rcx
jb 0x180074eb7
xor edx, edx
div rcx
mov rax, rdx
jmp 0x180074eb7
mov edi, dword [r10 + 0x1c]
and edi, 0xf
jmp 0x180074edd
mov r14, qword [rsp + 0x30]
mov ecx, dword [rsi + 0x14]
and ecx, 0xfffffff0
or ecx, edi
mov dword [rsi + 0x14], ecx
xor edx, edx
test r8b, 0x10
je 0x180074fa8
mov r8, qword [r15 + 0xf8]
test r8, r8
je 0x180074fa8
mov rax, r8
shr rax, 1
movabs r9, 0x5555555555555555
and r9, rax
mov rax, r8
sub rax, r9
movabs r9, 0x3333333333333333
mov r10, rax
and r10, r9
shr rax, 2
and rax, r9
add rax, r10
mov r9, rax
shr r9, 4
add r9, rax
movabs rax, 0xf0f0f0f0f0f0f0f
and rax, r9
movabs r9, 0x101010101010101
imul r9, rax
shr r9, 0x38
cmp r9, 1
jbe 0x180074f7e
mov edi, 4
cmp r8, 4
ja 0x180074f85
mov al, 4
movzx eax, al
div r8b
movzx edi, ah
jmp 0x180074f85
lea edi, [r8 - 1]
and edi, 4
mov rax, qword [r15 + 0xf0]
mov rax, qword [rax + rdi*8]
test rax, rax
je 0x180074fa8
mov r10, qword [rax]
test r10, r10
je 0x180074fa8
lea r11, [r8 - 1]
jmp 0x180075045
xor edx, edx
and ecx, 0xffffff0f
or ecx, edx
mov dword [rsi + 0x14], ecx
test r14, r14
je 0x180074fee
mov rax, qword [r14 + 0x98]
mov rcx, qword [r14 + 0xa0]
sub rcx, rax
sar rcx, 1
xor edx, edx
cmp rcx, rdx
je 0x180075071
movzx r8d, word [rax + rdx*2]
mov word [r13 + rdx*2], r8w
inc rdx
cmp rdx, 0x80
jne 0x180074fce
xor eax, eax
xor ecx, ecx
xor ecx, dword [rsi + rax*4]
inc rax
cmp rax, 0x46
jne 0x180074ff2
mov dword [r12], ecx
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
call fcn.180364a40
mov rax, rsi
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov eax, dword [r10 + 0x1c]
shl eax, 4
movzx edx, al
jmp 0x180074fa8
cmp dword [r10 + 0x10], 4
je 0x180075023
mov r10, qword [r10]
test r10, r10
je 0x180074fa6
mov rax, qword [r10 + 8]
cmp rax, 4
je 0x180075032
cmp r9d, 1
ja 0x180075062
and rax, r11
cmp rax, rdi
je 0x180075039
jmp 0x180074fa6
cmp rax, r8
jb 0x180075058
xor edx, edx
div r8
mov rax, rdx
jmp 0x180075058
lea rax, str.vector___index_out_of_bounds
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s
lea rdx, str....._buildtools_third_partylibc_trunkinclude_vector
lea r9, str.__n___size__
mov r8d, 0x5c1
call fcn.1803aa860
int3