Function at 0x100423a90
Capabilities:
Encode data using xor

Disassembly:
push r15
mov eax, 0x50b8
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
call fcn.100431810
sub rsp, rax
movaps xmmword [rsp + 0x50a0], xmm6
pxor xmm0, xmm0
cmp qword [rdx + 0x10], 0
movups xmmword [rdx + 0x58], xmm0
pxor xmm0, xmm0
mov r13, rcx
mov rbx, rdx
movaps xmmword [rsp + 0xa0], xmm0
movaps xmmword [rsp + 0xb0], xmm0
jle 0x1004244b7
lea rax, [rsp + 0x18a0]
mov qword [rsp + 0x5108], rdx
xor esi, esi
xor ebp, ebp
mov qword [rsp + 0x30], rax
mov rbx, rsi
mov rsi, rdx
lea rax, [rbp*8]
mov qword [rsp + 0x28], rax
mov rax, qword [rsi + 0x18]
mov r14, qword [rax + rbp*8]
shl r14, 4
add r14, qword [r13]
mov eax, dword [r14 + 8]
movzx r15d, byte [r14 + 8]
shr eax, 8
and ax, 0x3ff
cmp r15d, 1
je 0x100423e08
cmp r15d, 3
je 0x10042425f
cmp r15d, 5
je 0x1004241f0
cmp r15d, 7
je 0x1004242fa
add rbp, 1
cmp rbp, qword [rsi + 0x10]
jl 0x100423afd
mov qword [rsp + 0x5108], rsi
mov rsi, rbx
mov rbx, qword [rsp + 0x5108]
test rsi, rsi
jle 0x1004244b1
lea rax, [rsi + 1]
lea rdi, [rsp + 0x18b0]
mov qword [rsp + 0x68], 0
lea r12, [rax*8]
mov qword [rsp + 0x60], rax
mov rcx, r12
call sub.msys_2.0.dll_malloc
mov qword [rsp + 0x70], rax
mov rcx, rax
test rax, rax
je 0x1004243ba
lea rax, [r12 - 8]
mov dword [rsp + 0x5c], 0
xor r12d, r12d
pxor xmm0, xmm0
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0x5c]
lea rdi, [rsp + 0x18b0]
mov qword [rsp + 0x20], rax
lea rax, [rsp + 0x30a0]
lea r14, [rsp + 0x18a8]
mov byte [rsp + 0x47], 0
lea rbp, [rsp + 0x60]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x5108], rbx
movaps xmmword [rsp + 0x80], xmm0
movaps xmmword [rsp + 0x90], xmm0
mov qword [rsp + 0x68], 0
lea rax, [r12 + r12*2]
mov rsi, qword [r14 + rax]
test rsi, rsi
jle 0x100423c7b
mov r15, qword [rax + rdi]
xor ebx, ebx
nop word cs:[rax + rax]
mov rdx, qword [r15 + rbx*8]
mov rax, qword [r13 + 0x18]
mov rax, qword [rax + rdx*8]
cmp rax, 0xffffffffffffffff
je 0x100423c72
lea rdx, [rax + rax*2]
mov rax, qword [r13 + 0x30]
mov rcx, rbp
lea rdx, [rax + rdx*8]
call fcn.10041de50
mov dword [rsp + 0x5c], eax
test eax, eax
jne 0x1004243b0
add rbx, 1
cmp rsi, rbx
jne 0x100423c40
mov rcx, qword [rsp + 0x20]
xor r9d, r9d
mov r8, rbp
mov rdx, r13
call fcn.1004205f0
mov qword [rsp + r12 + 0xa0], rax
mov r10, rax
test rax, rax
je 0x10042439f
cmp byte [r10 + 0x68], 0
js 0x1004243e6
mov qword [rsp + r12 + 0x8a0], r10
mov qword [rsp + r12 + 0x10a0], r10
movdqa xmm6, xmmword [rsp + 0x80]
mov rax, qword [rsp + 0x28]
movdqa xmm0, xmmword [rsp + 0x90]
por xmm6, xmmword [rax + r12*4]
por xmm0, xmmword [rax + r12*4 + 0x10]
add r12, 8
mov rax, qword [rsp + 0x38]
movaps xmmword [rsp + 0x80], xmm6
movaps xmmword [rsp + 0x90], xmm0
cmp r12, rax
jne 0x100423c1a
cmp byte [rsp + 0x47], 0
mov rsi, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x5108]
jne 0x100424518
mov edx, 0x100
mov ecx, 8
call sub.msys_2.0.dll_calloc
mov rdx, qword [rsp + 0x70]
mov qword [rbx + 0x58], rax
mov r11, rax
mov rcx, rdx
test rax, rax
je 0x1004243ba
mov rbx, qword [rsp + 0x28]
xor ebp, ebp
lea r12, [rsp + 0x80]
mov r9, rbp
mov rax, qword [r12 + rbp*8]
mov ecx, 1
shl r9, 9
add r9, r11
test rax, rax
je 0x100423d84
nop dword [rax]
test al, 1
jne 0x100424470
add rcx, rcx
add r9, 8
shr rax, 1
jne 0x100423d70
add rbp, 1
add rbx, 8
cmp rbp, 4
jne 0x100423d51
movq rax, xmm6
test ah, 4
je 0x100423dd6
mov r13, qword [rsp + 0x28]
xor eax, eax
jmp 0x100423db2
add rax, 1
add r13, 0x20
cmp rax, rsi
je 0x100423dd6
test qword [r13], 0x400
je 0x100423da5
mov rax, qword [rsp + rax*8 + 0x10a0]
cmp byte [rsp + 0x47], 0
mov qword [r11 + 0x50], rax
je 0x100423dd6
mov qword [r11 + 0x850], rax
mov rcx, rdx
call fcn.100410780
lea rax, [rsi + rsi*2]
lea rbx, [rdi + rax*8]
mov rcx, qword [rdi]
add rdi, 0x18
call fcn.100410780
cmp rdi, rbx
jne 0x100423de6
mov eax, 1
jmp 0x100424197
movzx ecx, byte [r14]
mov r11d, 1
mov rdx, rcx
shl r11, cl
shr rdx, 3
and edx, 0x18
or qword [rsp + rdx + 0xa0], r11
test ax, ax
je 0x100423f30
test al, 0x20
jne 0x1004241b8
test al, 0x80
jne 0x100424157
test al, 4
je 0x100423ebc
cmp r15d, 1
je 0x10042438f
cmp dword [r13 + 0xb4], 1
jle 0x100424292
mov r11, qword [r13 + 0x78]
xor ecx, ecx
pxor xmm1, xmm1
pcmpeqd xmm2, xmm2
lea rdx, [rsp + 0xa0]
movdqu xmm4, xmmword [r13 + rcx + 0xb8]
movdqu xmm0, xmmword [r11 + rcx]
pxor xmm0, xmm2
por xmm0, xmm4
pand xmm0, xmmword [rdx + rcx]
movaps xmmword [rdx + rcx], xmm0
add rcx, 0x10
por xmm1, xmm0
cmp rcx, 0x20
jne 0x100423e72
movdqa xmm0, xmm1
psrldq xmm0, 8
por xmm1, xmm0
movq rdx, xmm1
test rdx, rdx
je 0x100423b52
test al, 8
je 0x100423f30
cmp r15d, 1
je 0x10042437f
cmp dword [r13 + 0xb4], 1
jle 0x100424327
mov rcx, qword [r13 + 0x78]
xor eax, eax
pxor xmm0, xmm0
lea rdx, [rsp + 0xa0]
movdqu xmm3, xmmword [r13 + rax + 0xb8]
movdqu xmm1, xmmword [rcx + rax]
pand xmm1, xmm3
pandn xmm1, xmmword [rdx + rax]
movaps xmmword [rdx + rax], xmm1
add rax, 0x10
por xmm0, xmm1
cmp rax, 0x20
jne 0x100423eea
movdqa xmm1, xmm0
psrldq xmm1, 8
por xmm0, xmm1
movq rax, xmm0
test rax, rax
je 0x100423b52
nop
lea rdi, [rsp + 0x30a0]
xor r12d, r12d
test rbx, rbx
jg 0x100423f80
jmp 0x1004240e0
movzx ecx, byte [r14]
mov rdx, r12
shl rdx, 5
mov rax, rcx
shr rax, 3
and eax, 0x18
add rax, rdx
mov rax, qword [rsp + rax + 0x30a0]
shr rax, cl
test al, 1
jne 0x100423f86
add r12, 1
add rdi, 0x20
cmp r12, rbx
jge 0x1004240e0
cmp r15d, 1
je 0x100423f48
movdqa xmm1, xmmword [rsp + 0xa0]
movdqa xmm0, xmmword [rdi + 0x10]
pand xmm0, xmmword [rsp + 0xb0]
pand xmm1, xmmword [rdi]
movaps xmmword [rsp + 0x8b0], xmm0
por xmm0, xmm1
movaps xmmword [rsp + 0x8a0], xmm1
movdqa xmm1, xmm0
psrldq xmm1, 8
por xmm0, xmm1
movq rax, xmm0
test rax, rax
je 0x100423f6f
pxor xmm2, xmm2
xor eax, eax
lea rdx, [rsp + 0xa0]
movdqa xmm1, xmm2
lea rcx, [rsp + 0x10a0]
movdqa xmm0, xmmword [rdx + rax]
pandn xmm0, xmmword [rdi + rax]
movaps xmmword [rcx + rax], xmm0
por xmm1, xmm0
movdqa xmm0, xmmword [rdi + rax]
pandn xmm0, xmmword [rdx + rax]
movaps xmmword [rdx + rax], xmm0
add rax, 0x10
por xmm2, xmm0
cmp rax, 0x20
jne 0x100423fe6
movdqa xmm0, xmm2
mov rcx, qword [rsp + 0x30]
lea rax, [r12 + r12*2]
psrldq xmm0, 8
por xmm2, xmm0
movdqa xmm0, xmm1
lea r11, [rcx + rax*8]
psrldq xmm0, 8
movq qword [rsp + 0x20], xmm2
por xmm1, xmm0
movq rax, xmm1
test rax, rax
je 0x1004240b3
movdqa xmm3, xmmword [rsp + 0x10a0]
mov rax, rbx
movdqa xmm4, xmmword [rsp + 0x10b0]
mov rdx, r11
shl rax, 5
mov qword [rsp + 0x38], r11
movdqa xmm5, xmmword [rsp + 0x8a0]
movdqa xmm6, xmmword [rsp + 0x8b0]
movaps xmmword [rsp + rax + 0x30a0], xmm3
movaps xmmword [rsp + rax + 0x30b0], xmm4
lea rax, [rbx + rbx*2]
movaps xmmword [rdi], xmm5
lea rcx, [rcx + rax*8]
movaps xmmword [rdi + 0x10], xmm6
call fcn.10041d6d0
test eax, eax
jne 0x100424170
mov r11, qword [rsp + 0x38]
add rbx, 1
mov rcx, qword [rsp + 0x28]
mov rax, qword [rsi + 0x18]
mov rdx, qword [rax + rcx]
mov rcx, r11
call fcn.100420da0
test al, al
je 0x100424170
cmp qword [rsp + 0x20], 0
jne 0x100423f6f
nop dword [rax]
cmp rbx, r12
jne 0x100423b52
mov rax, rbx
mov rdi, qword [rsp + 0x28]
movdqa xmm5, xmmword [rsp + 0xa0]
mov ecx, 8
shl rax, 5
movdqa xmm0, xmmword [0x10043b5f0]
movaps xmmword [rsp + rax + 0x30a0], xmm5
movdqa xmm5, xmmword [rsp + 0xb0]
movaps xmmword [rsp + rax + 0x30b0], xmm5
mov rax, qword [rsi + 0x18]
mov rdi, qword [rax + rdi]
lea rax, [rbx + rbx*2]
lea r12, [rsp + rax*8 + 0x18a0]
movups xmmword [r12], xmm0
call sub.msys_2.0.dll_malloc
mov qword [r12 + 0x10], rax
test rax, rax
je 0x1004244f6
mov qword [rax], rdi
add rbx, 1
pxor xmm0, xmm0
movaps xmmword [rsp + 0xa0], xmm0
movaps xmmword [rsp + 0xb0], xmm0
jmp 0x100423b52
mov rsi, rbx
lea rdi, [rsp + 0x18b0]
xor ebx, ebx
nop dword [rax]
mov rcx, qword [rdi]
add rbx, 1
add rdi, 0x18
call fcn.100410780
cmp rsi, rbx
jne 0x100424180
xor eax, eax
movaps xmm6, xmmword [rsp + 0x50a0]
add rsp, 0x50b8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rdx, qword [rsp + 0xa0]
pxor xmm0, xmm0
movaps xmmword [rsp + 0xa0], xmm0
movaps xmmword [rsp + 0xb0], xmm0
and dh, 4
je 0x100423b52
mov qword [rsp + 0xa0], 0x400
jmp 0x100423e38
cmp dword [r13 + 0xb4], 1
jle 0x1004242e1
mov rdx, qword [r13 + 0x78]
movdqu xmm0, xmmword [rdx]
por xmm0, xmmword [rsp + 0xa0]
movaps xmmword [rsp + 0xa0], xmm0
movdqu xmm0, xmmword [rdx + 0x10]
por xmm0, xmmword [rsp + 0xb0]
movaps xmmword [rsp + 0xb0], xmm0
mov rdx, qword [r13 + 0xd8]
test dl, 0x40
jne 0x100424245
and qword [rsp + 0xa0], 0xfffffffffffffbff
and edx, 0x80
je 0x100423e27
and qword [rsp + 0xa0], 0xfffffffffffffffe
jmp 0x100423e27
mov rdx, qword [r14]
movdqu xmm0, xmmword [rdx]
por xmm0, xmmword [rsp + 0xa0]
movaps xmmword [rsp + 0xa0], xmm0
movdqu xmm0, xmmword [rdx + 0x10]
por xmm0, xmmword [rsp + 0xb0]
movaps xmmword [rsp + 0xb0], xmm0
jmp 0x100423e27
movdqu xmm1, xmmword [r13 + 0xb8]
movdqu xmm0, xmmword [r13 + 0xc8]
pand xmm1, xmmword [rsp + 0xa0]
pand xmm0, xmmword [rsp + 0xb0]
movaps xmmword [rsp + 0xb0], xmm0
por xmm0, xmm1
movaps xmmword [rsp + 0xa0], xmm1
movdqa xmm1, xmm0
psrldq xmm1, 8
por xmm0, xmm1
movq rdx, xmm0
jmp 0x100423eb3
pcmpeqd xmm0, xmm0
movaps xmmword [rsp + 0xa0], xmm0
movaps xmmword [rsp + 0xb0], xmm0
jmp 0x10042422d
mov rdx, qword [r13 + 0xd8]
pcmpeqd xmm0, xmm0
movaps xmmword [rsp + 0xa0], xmm0
test dl, 0x40
jne 0x100424245
mov qword [rsp + 0xa0], 0xfffffffffffffbff
jmp 0x100424245
movdqu xmm1, xmmword [r13 + 0xb8]
movdqu xmm0, xmmword [r13 + 0xc8]
pandn xmm1, xmmword [rsp + 0xa0]
pandn xmm0, xmmword [rsp + 0xb0]
movaps xmmword [rsp + 0xb0], xmm0
por xmm0, xmm1
movaps xmmword [rsp + 0xa0], xmm1
movdqa xmm1, xmm0
psrldq xmm1, 8
por xmm0, xmm1
movq rax, xmm0
test rax, rax
je 0x100423b52
jmp 0x100423f30
test byte [r14 + 0xa], 0x40
je 0x100423eca
jmp 0x100424157
test byte [r14 + 0xa], 0x40
jne 0x100423e4e
jmp 0x100424157
mov ecx, dword [rsp + 0x5c]
test ecx, ecx
je 0x100423ca2
nop dword [rax + rax]
mov rsi, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x70]
call fcn.100410780
lea rax, [rsi + rsi*2]
lea rbx, [rdi + rax*8]
nop word [rax + rax]
mov rcx, qword [rdi]
add rdi, 0x18
call fcn.100410780
cmp rbx, rdi
jne 0x1004243d0
jmp 0x100424195
mov rcx, qword [rsp + 0x20]
mov r8, rbp
mov rdx, r13
mov qword [rsp + 0x48], r10
mov r9d, 1
call fcn.1004205f0
mov r10, qword [rsp + 0x48]
test rax, rax
mov qword [rsp + r12 + 0x8a0], rax
je 0x1004244e5
cmp r10, rax
je 0x100424436
movzx esi, byte [rsp + 0x47]
cmp dword [r13 + 0xb4], 2
mov eax, 1
cmovge esi, eax
mov byte [rsp + 0x47], sil
mov rcx, qword [rsp + 0x20]
mov r9d, 2
mov r8, rbp
mov rdx, r13
call fcn.1004205f0
mov qword [rsp + r12 + 0x10a0], rax
test rax, rax
jne 0x100423cbd
mov eax, dword [rsp + 0x5c]
test eax, eax
je 0x100423cbd
jmp 0x1004243b0
mov r8, rcx
and r8, qword [rbx]
jne 0x100424510
nop dword [rax]
add r8, 1
mov r14, rcx
mov r10, r8
shl r10, 5
and r14, qword [rbx + r10]
je 0x100424480
mov r10, rcx
and r10, qword [r13 + rbp*8 + 0xb8]
je 0x1004244d5
mov r8, qword [rsp + r8*8 + 0x8a0]
mov qword [r9], r8
jmp 0x100423d78
jne 0x100424195
mov edx, 0x100
mov ecx, 8
call sub.msys_2.0.dll_calloc
test rax, rax
mov qword [rbx + 0x58], rax
setne al
jmp 0x100424197
mov r8, qword [rsp + r8*8 + 0xa0]
mov qword [r9], r8
jmp 0x100423d78
mov edx, dword [rsp + 0x5c]
test edx, edx
je 0x10042441c
jmp 0x1004243b0
pxor xmm0, xmm0
mov rsi, rbx
movups xmmword [r12], xmm0
test rbx, rbx
jne 0x100424173
jmp 0x100424195
xor r8d, r8d
jmp 0x100424494
mov edx, 0x200
mov ecx, 8
call sub.msys_2.0.dll_calloc
mov rdx, qword [rsp + 0x70]
mov qword [rbx + 0x60], rax
mov r11, rax
mov rcx, rdx
test rax, rax
je 0x1004243ba
mov rbx, qword [rsp + 0x28]
xor r9d, r9d
lea r12, [rsp + 0x80]
mov rax, r9
mov r10, qword [r12 + r9*8]
mov r8d, 1
shl rax, 9
add rax, r11
test r10, r10
je 0x10042457a
test r10b, 1
jne 0x10042458d
add r8, r8
add rax, 8
shr r10, 1
jne 0x100424568
add r9, 1
add rbx, 8
cmp r9, 4
jne 0x10042454f
jmp 0x100423d92
mov rcx, r8
and rcx, qword [rbx]
jne 0x1004245c5
add rcx, 1
mov r14, r8
mov rbp, rcx
shl rbp, 5
and r14, qword [rbx + rbp]
je 0x100424595
mov rbp, qword [rsp + rcx*8 + 0xa0]
mov rcx, qword [rsp + rcx*8 + 0x8a0]
mov qword [rax], rbp
mov qword [rax + 0x800], rcx
jmp 0x10042456e
xor ecx, ecx
jmp 0x1004245a9