Function at 0x140045dca
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x98
mov qword [rsp + 0x38], rdx
mov qword [rsp + 0x40], rcx
xorps xmm0, xmm0
movups xmmword [rsp + 0x6c], xmm0
movaps xmmword [rsp + 0x60], xmm0
movaps xmmword [rsp + 0x50], xmm0
xor eax, eax
lea rcx, [0x1400f4000]
movsxd rdx, dword [rax + rcx]
xor dword [rsp + rdx*4 + 0x50], 0x78c104ba
add rax, 4
cmp rax, 0x28
jne 0x140045e02
cmp qword [rsp + 0x40], 0
mov eax, 0x44936b67
mov ecx, 0x28158bd0
cmove ecx, eax
mov dword [rsp + 0x4c], ecx
cmp qword [rsp + 0x38], 0
mov eax, 0x6b0c795f
mov ecx, 0x1b8d9245
cmove ecx, eax
mov dword [rsp + 0x48], ecx
mov ecx, 0x47c49478
xor eax, eax
mov qword [rsp + 0x90], rax
lea rbp, [0x1400f4030]
lea r12, [0x1400f3fd0]
lea r13, [0x1400f404c]
lea r14, [0x1400f405c]
xor eax, eax
mov qword [rsp + 0x80], rax
xor eax, eax
mov qword [rsp + 0x88], rax
xor r15d, r15d
cmp ecx, 0x5fcc2876
jle 0x140045ecf
cmp ecx, 0x69603051
jle 0x140045f2e
cmp ecx, 0x69603052
je 0x140045f8e
cmp ecx, 0x771e161b
je 0x140045fa8
cmp ecx, 0x7cbfe930
jne 0x140045e88
mov rcx, qword [rsp + 0x40]
call fcn.14001cc6a
mov ecx, dword [rsp + 0x60]
jmp 0x140045f9c
cmp ecx, 0x2529ff55
jle 0x140045f5e
cmp ecx, 0x47c49478
je 0x140045fe3
cmp ecx, 0x5c59b6c3
jne 0x140046076
cmp byte [rsp + 0x88], 0
jne 0x140045f15
xor edx, edx
movsxd rcx, dword [rdx + r13]
xor dword [rsp + rcx*4 + 0x50], 0x23b3651a
add rdx, 4
cmp rdx, 0x10
jne 0x140045eff
mov ecx, dword [rsp + 0x68]
xor ecx, dword [rsp + 0x4c]
mov dl, 1
mov qword [rsp + 0x88], rdx
xor edi, edi
jmp 0x140045e88
cmp ecx, 0x5fcc2877
je 0x14004601e
cmp ecx, 0x634c96ff
jne 0x140045e88
mov rcx, qword [rsp + 0x38]
mov rbx, qword [rcx]
mov ecx, dword [rsp + 0x58]
mov edx, 0x112dbc20
xor ecx, edx
jmp 0x140045e88
cmp ecx, 0x13cd7de5
je 0x140046031
cmp ecx, 0x1b98f6ac
jne 0x140045e88
mov rcx, qword [rsp + 0x40]
mov rdi, qword [rcx]
mov ecx, dword [rsp + 0x6c]
mov edx, 0x67200e7d
xor ecx, edx
jmp 0x140045e88
mov rcx, qword [rsp + 0x38]
call fcn.14001cc6a
mov ecx, dword [rsp + 0x64]
mov edx, 0x6fd4cbbf
xor ecx, edx
jmp 0x140045e88
test r15b, r15b
jne 0x140045fc5
xor edx, edx
movsxd rcx, dword [rdx + r14]
xor dword [rsp + rcx*4 + 0x50], 0x4ae4c48a
add rdx, 4
cmp rdx, 8
jne 0x140045faf
test rax, rax
mov ecx, 0x4ff23011
mov edx, 0x3517e730
cmove ecx, edx
xor ecx, dword [rsp + 0x70]
mov r15b, 1
xor esi, esi
jmp 0x140045e88
cmp byte [rsp + 0x90], 0
jne 0x140046005
xor edx, edx
movsxd rcx, dword [rdx + r12]
xor dword [rsp + rcx*4 + 0x50], 0x7a21c57f
add rdx, 4
cmp rdx, 0x24
jne 0x140045fef
mov ecx, dword [rsp + 0x50]
xor ecx, dword [rsp + 0x48]
mov dl, 1
mov qword [rsp + 0x90], rdx
xor ebx, ebx
jmp 0x140045e88
mov rsi, qword [rax]
mov ecx, dword [rsp + 0x74]
mov edx, 0x7ff323ba
xor ecx, edx
jmp 0x140045e88
cmp byte [rsp + 0x80], 0
jne 0x140046053
xor edx, edx
movsxd rcx, dword [rdx + rbp]
xor dword [rsp + rcx*4 + 0x50], 0x316dbcb9
add rdx, 4
cmp rdx, 0x1c
jne 0x14004603d
test rbx, rbx
mov ecx, 0x6b80f197
mov edx, 0x7e5f28f5
cmove ecx, edx
xor ecx, dword [rsp + 0x5c]
mov dl, 1
mov qword [rsp + 0x80], rdx
jmp 0x140045e88
cmp ecx, 0x2529ff56
jne 0x140045e88
mov qword [rsp + 0x38], rax
lea rcx, [rsi + rdi]
add rcx, 0x11
call fcn.14001afa7
mov r12, rax
xorps xmm0, xmm0
movaps xmmword [rsp + 0x20], xmm0
xor eax, eax
lea rsi, [0x1400f406c]
movsxd rcx, dword [rax + rsi]
xor dword [rsp + rcx*4 + 0x20], 0x78c104ba
add rax, 4
cmp rax, 0xc
jne 0x1400460a8
mov ebx, 0x59f86fa6
mov dl, 1
mov eax, 0xc77b0d8
lea rbp, [0x1400f4064]
mov r8d, 0x5b7261a0
mov edi, dword [rsp + 0x28]
xor edi, eax
cmp ebx, 0xe97711d
je 0x140046144
cmp ebx, 0x23b3651a
je 0x1400460f7
cmp ebx, 0x59f86fa6
jne 0x1400460dd
jmp 0x14004611c
mov rbx, qword [r12]
mov rcx, qword [0x1400f3776]
mov qword [r12 + rbx + 0x16], rcx
mov rcx, qword [0x1400f3770]
mov qword [r12 + rbx + 0x10], rcx
add qword [r12], 0xd
mov ebx, edi
jmp 0x1400460dd
test dl, 1
je 0x140046139
xor edx, edx
movsxd rbx, dword [rdx + rbp]
xor dword [rsp + rbx*4 + 0x20], 0x7a21c57f
add rdx, 4
cmp rdx, 8
jne 0x140046123
mov ebx, dword [rsp + 0x20]
xor ebx, r8d
xor edx, edx
jmp 0x1400460d7
xorps xmm0, xmm0
movaps xmmword [rsp + 0x20], xmm0
xor eax, eax
movsxd rcx, dword [rax + rsi]
xor dword [rsp + rcx*4 + 0x20], 0x78c104ba
add rax, 4
cmp rax, 0xc
jne 0x14004614e
mov rcx, qword [rsp + 0x40]
test rcx, rcx
mov eax, 0x765675a7
mov edi, 0x5b7261a0
cmove edi, eax
lea r14, [rcx + 0x10]
mov eax, 0x59f86fa6
mov r13b, 1
mov edx, 0xc77b0d8
mov r15, qword [rsp + 0x40]
mov ebx, dword [rsp + 0x28]
xor ebx, edx
cmp eax, 0xe97711d
je 0x1400461ff
cmp eax, 0x23b3651a
je 0x1400461ac
cmp eax, 0x59f86fa6
jne 0x140046195
jmp 0x1400461d6
mov rax, qword [r12]
lea rcx, [r12 + rax]
add rcx, 0x10
mov r8, qword [r15]
inc r8
mov rdx, r14
call sub.msvcrt.dll_memcpy
mov edx, 0xc77b0d8
mov rax, qword [r15]
add qword [r12], rax
mov eax, ebx
jmp 0x140046195
test r13b, 1
je 0x1400461f4
xor eax, eax
movsxd rcx, dword [rax + rbp]
xor dword [rsp + rcx*4 + 0x20], 0x7a21c57f
add rax, 4
cmp rax, 8
jne 0x1400461de
mov eax, dword [rsp + 0x20]
xor eax, edi
xor r13d, r13d
jmp 0x14004618f
xorps xmm0, xmm0
movaps xmmword [rsp + 0x20], xmm0
xor eax, eax
movsxd rcx, dword [rax + rsi]
xor dword [rsp + rcx*4 + 0x20], 0x78c104ba
add rax, 4
cmp rax, 0xc
jne 0x140046209
mov ebx, 0x59f86fa6
mov dl, 1
mov eax, 0xc77b0d8
mov r8d, 0x5b7261a0
mov edi, dword [rsp + 0x28]
xor edi, eax
cmp ebx, 0xe97711d
je 0x14004629c
cmp ebx, 0x23b3651a
je 0x140046251
cmp ebx, 0x59f86fa6
jne 0x140046237
jmp 0x140046274
mov rbx, qword [r12]
mov cl, byte [0x1400f3794]
mov byte [r12 + rbx + 0x14], cl
mov ecx, dword [0x1400f3790]
mov dword [r12 + rbx + 0x10], ecx
add qword [r12], 4
mov ebx, edi
jmp 0x140046237
test dl, 1
je 0x140046291
xor edx, edx
movsxd rbx, dword [rdx + rbp]
xor dword [rsp + rbx*4 + 0x20], 0x7a21c57f
add rdx, 4
cmp rdx, 8
jne 0x14004627b
mov ebx, dword [rsp + 0x20]
xor ebx, r8d
xor edx, edx
jmp 0x140046231
xorps xmm0, xmm0
movaps xmmword [rsp + 0x20], xmm0
xor eax, eax
movsxd rcx, dword [rax + rsi]
xor dword [rsp + rcx*4 + 0x20], 0x78c104ba
add rax, 4
cmp rax, 0xc
jne 0x1400462a6
mov rdx, qword [rsp + 0x38]
test rdx, rdx
mov eax, 0x765675a7
mov esi, 0x5b7261a0
cmove esi, eax
lea r15, [rdx + 0x10]
mov eax, 0x59f86fa6
mov dil, 1
mov r14d, 0xc77b0d8
mov ebx, dword [rsp + 0x28]
xor ebx, r14d
cmp eax, 0xe97711d
je 0x140046353
cmp eax, 0x23b3651a
je 0x140046301
cmp eax, 0x59f86fa6
jne 0x1400462ea
jmp 0x14004632b
mov rax, qword [r12]
lea rcx, [r12 + rax]
add rcx, 0x10
mov r8, qword [rdx]
inc r8
mov rdx, r15
call sub.msvcrt.dll_memcpy
mov rdx, qword [rsp + 0x38]
mov rax, qword [rdx]
add qword [r12], rax
mov eax, ebx
jmp 0x1400462ea
test dil, 1
je 0x140046349
xor eax, eax
movsxd rcx, dword [rax + rbp]
xor dword [rsp + rcx*4 + 0x20], 0x7a21c57f
add rax, 4
cmp rax, 8
jne 0x140046333
mov eax, dword [rsp + 0x20]
xor eax, esi
xor edi, edi
jmp 0x1400462e3
mov rax, r12
add rsp, 0x98
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret