Function at 0x20249de0
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x38
mov rbx, r9
mov rdi, r8
mov rax, qword [0x205da420]
xor rax, rsp
mov qword [rsp + 0x30], rax
mov r8d, ecx
and r8d, 0x1f
cmp r8d, 0xc
jbe 0x20249e40
mov rsi, rdx
mov rdx, rbx
cmp r8d, 0x14
jae 0x20249e64
cmp r8d, 0xf
ja 0x20249f78
cmp r8d, 0xd
je 0x20249fa0
cmp r8d, 0xf
je 0x20249fda
mov edi, esi
mov ecx, 0x45830c78
jmp 0x20249dfd
cmp r8d, 2
jb 0x20249ee0
cmp r8d, 3
jne 0x20249e7d
mov r8d, 0x19
mov ecx, 0xef7bd7f9
mov rsi, rbx
cmp r8d, 0x14
jb 0x20249e16
cmp r8d, 0x17
jae 0x20249f23
cmp r8d, 0x16
jne 0x20249ec9
mov ebx, edi
mov ecx, 0xb411d885
jmp 0x20249dfd
add r8d, 0xfffffffe
lea rax, [0x2047c0d0]
movsxd r8, dword [rax + r8*4]
add r8, rax
jmp r8
movzx eax, byte [0x2059b096]
lea rsi, [0x2059b080]
cmp al, 0xb8
je 0x2024a61d
mov cl, 0x47
nop word [rax + rax]
mov al, 0xd2
lock cmpxchg byte [0x2059b096], cl
je 0x2024a387
cmp al, 0xb8
jne 0x20249eb0
jmp 0x2024a61d
cmp r8d, 0x14
jne 0x2024a200
mov rcx, rdx
call fcn.20421e38
jmp 0x2024a200
test r8d, r8d
je 0x2024a207
mov rax, qword [rdi]
mov rax, qword [rax + 0x18]
lea r8, [rsp + 0x20]
mov rcx, rdi
mov rsi, rdx
mov rdx, r8
mov r8d, ebx
call qword [case.0x200c66ec.0]
mov rax, qword [rsp + 0x28]
mov rcx, qword [rsi + 8]
mov rax, qword [rax + 8]
cmp rax, qword [rcx + 8]
sete al
mov ecx, dword [rsp + 0x20]
cmp ecx, dword [rsi]
jmp 0x20249f93
cmp r8d, 0x18
jbe 0x2024a14d
cmp r8d, 0x19
jne 0x2024a22c
test rdi, rdi
je 0x2024a61d
cmp rdi, 1
mov rax, rdi
adc rax, 0
xor ecx, ecx
cmp rdi, 8
jb 0x2024a7e5
mov r8, rsi
sub r8, rdx
cmp r8, 0x20
jb 0x2024a7e5
cmp rdi, 0x20
jae 0x2024a789
xor ecx, ecx
jmp 0x2024a7c1
cmp r8d, 0x10
jne 0x2024a1ec
mov rax, qword [rdi + 8]
mov rcx, qword [rdx + 8]
cmp rcx, qword [rax + 8]
sete al
cmp dword [rdi], esi
sete cl
and cl, al
movzx esi, cl
jmp 0x2024a61d
mov rdx, qword [rdx + 8]
test rdx, rdx
sete cl
movzx eax, byte [0x2059b012]
cmp al, 0x44
je 0x2024a2eb
mov r8b, 0xfc
nop dword [rax]
mov al, 0x27
lock cmpxchg byte [0x2059b012], r8b
je 0x2024a277
cmp al, 0x44
jne 0x20249fc0
jmp 0x2024a2eb
mov rax, rdi
mov rdi, rdx
jmp 0x2024a15a
movzx eax, byte [0x2059b075]
lea rsi, [0x2059b060]
cmp al, 0x72
je 0x2024a61d
mov cl, 0x4b
nop word [rax + rax]
mov al, 0xa1
lock cmpxchg byte [0x2059b075], cl
je 0x2024a63f
cmp al, 0x72
jne 0x2024a040
jmp 0x2024a61d
mov rax, rdx
cmp r8d, 0x17
jne 0x2024a2fd
mov r8, rsi
sub r8, rdi
jae 0x2024a19d
test rax, rax
je 0x2024a61d
cmp rax, 1
mov rcx, rax
adc rcx, 0
xor edx, edx
cmp rax, 8
jb 0x2024a56a
cmp r8, 0x20
jb 0x2024a56a
cmp rax, 0x20
jae 0x2024a502
xor edx, edx
jmp 0x2024a53b
test rax, rax
je 0x2024a61d
cmp rax, 4
jae 0x2024a44b
lea rdx, [rax - 1]
mov r8, rax
and r8, 3
je 0x2024a4bd
nop word cs:[rax + rax]
lea rcx, [rax - 1]
movzx r9d, byte [rdi + rax - 1]
mov byte [rsi + rax - 1], r9b
mov rax, rcx
dec r8
jne 0x2024a1d0
jmp 0x2024a4c0
cmp r8d, 0x11
jbe 0x2024a32e
cmp r8d, 0x13
jne 0x2024a48c
xor esi, esi
jmp 0x2024a61d
mov rcx, rbx
mov edx, edi
call fcn.20423890
mov rsi, rbx
jmp 0x2024a61d
mov ebp, ecx
lea rax, [0x2046f1b8]
mov qword [rdx], rax
mov rcx, rdx
mov rbx, rdx
call fcn.200a3bf0
mov rdx, rbx
lea rax, [0x2046e1c8]
mov qword [rbx], rax
mov rsi, qword [rbx + 0x60]
mov dword [0x2059bb40], 0x74d01790
test rsi, rsi
je 0x2024a612
test bpl, 0x20
jne 0x2024a5d5
add rdx, 0x60
xor ecx, ecx
mov eax, 0xe
lea r8, [0x2059b000]
lea r9, [0x2047be50]
nop word [rax + rax]
lea r10d, [rax - 1]
and r10d, 0xf
mov dword [0x2059bb3c], 0x742c8f2d
movzx r11d, byte [rax + r8 - 0xe]
xor r11b, byte [r10 + r9]
movzx r10d, byte [rax + r8 - 0xd]
xor r11b, 0x61
mov byte [rax + r8 - 0xe], r11b
mov r11d, eax
and r11d, 0xe
mov dword [0x2059bb3c], 0x742c8f2d
xor r10b, byte [r11 + r9]
xor r10b, 0x61
mov byte [rax + r8 - 0xd], r10b
add rax, 2
cmp rax, 0x20
jne 0x2024a290
mov al, 0x44
xchg byte [0x2059b012], al
lea rsi, [0x2059b000]
test cl, cl
cmove rsi, rdx
jmp 0x2024a61d
movzx eax, byte [0x2059b0b5]
lea rsi, [0x2059b0a0]
cmp al, 0xd7
je 0x2024a61d
mov dl, 0x48
mov al, 0x91
lock cmpxchg byte [0x2059b0b5], dl
je 0x2024a636
cmp al, 0xd7
jne 0x2024a315
jmp 0x2024a61d
mov eax, 0xffffffff
mov rcx, qword [rdx + 0x38]
mov rcx, qword [rcx]
test rcx, rcx
je 0x2024a938
mov r8, qword [rdx + 0x18]
cmp rcx, qword [r8]
jbe 0x2024a938
cmp esi, 0xffffffff
je 0x2024a929
cmp byte [rcx - 1], sil
je 0x2024a369
test byte [rdx + 0x70], 2
jne 0x2024a938
mov rax, qword [rdx + 0x50]
inc dword [rax]
mov rax, qword [rdx + 0x38]
dec qword [rax]
mov rax, qword [rdx + 0x38]
mov rax, qword [rax]
mov byte [rax], sil
mov eax, esi
jmp 0x2024a938
mov eax, 0x6729c364
mov ecx, 0x98d63cb0
mov edx, 1
mov r8d, 0x6729c365
mov r9d, 0xba2e8ba3
lea rsi, [0x2059b080]
lea r10, [0x2047bec0]
mov r11d, ecx
imul r11, r9
shr r11, 0x24
lea edi, [r11 + r11*4]
lea edi, [r11 + rdi*4]
add edi, r11d
lea r11d, [rax + rdi]
add edi, r8d
movzx ebx, byte [rdi + r10]
xor bl, 0xc8
add byte [rdx + rsi - 1], bl
movzx r11d, byte [r11 + r10]
xor r11b, 0xc8
add byte [rdx + rsi], r11b
add eax, 0xfffffffe
add ecx, 2
add rdx, 2
add r8d, 0xfffffffe
cmp rdx, 0x17
jne 0x2024a3b0
mov al, 0xb8
xchg byte [0x2059b096], al
jmp 0x2024a61d
lea rcx, [rsi + rax]
dec rcx
cmp rsi, rcx
ja 0x2024a1b0
lea rcx, [rdi + rax]
dec rcx
cmp rdi, rcx
ja 0x2024a1b0
mov rcx, rdi
sub rcx, rsi
cmp rcx, 0x10
jb 0x2024a1b0
cmp rax, 0x10
jae 0x2024a6fa
xor ecx, ecx
jmp 0x2024a740
movzx eax, byte [0x2059b0c9]
lea rsi, [0x2059b0c0]
cmp al, 0x1a
je 0x2024a61d
mov cl, 0x7d
mov al, 0xfc
lock cmpxchg byte [0x2059b0c9], cl
je 0x2024a8fd
cmp al, 0x1a
jne 0x2024a4a4
jmp 0x2024a61d
mov rcx, rax
cmp rdx, 3
jb 0x2024a61d
mov rax, rcx
nop dword [rax]
movzx edx, byte [rdi + rcx - 1]
mov byte [rsi + rcx - 1], dl
movzx edx, byte [rdi + rcx - 2]
mov byte [rsi + rcx - 2], dl
movzx edx, byte [rdi + rcx - 3]
mov byte [rsi + rcx - 3], dl
movzx edx, byte [rdi + rcx - 4]
mov byte [rsi + rcx - 4], dl
add rax, 0xfffffffffffffffc
mov rcx, rax
jne 0x2024a4d0
jmp 0x2024a61d
mov rdx, rcx
and rdx, 0xffffffffffffffe0
xor r8d, r8d
movdqu xmm0, xmmword [rdi + r8]
movups xmm1, xmmword [rdi + r8 + 0x10]
movdqu xmmword [rsi + r8], xmm0
movups xmmword [rsi + r8 + 0x10], xmm1
add r8, 0x20
cmp rdx, r8
jne 0x2024a50c
cmp rcx, rdx
je 0x2024a61d
test cl, 0x18
je 0x2024a56a
mov r8, rdx
mov rdx, rcx
and rdx, 0xfffffffffffffff8
nop word cs:[rax + rax]
mov r9, qword [rdi + r8]
mov qword [rsi + r8], r9
add r8, 8
cmp rdx, r8
jne 0x2024a550
cmp rcx, rdx
je 0x2024a61d
mov r9, rcx
mov r8, rdx
and r9, 3
je 0x2024a591
mov r8, rdx
nop dword [rax]
movzx r10d, byte [rdi + r8]
mov byte [rsi + r8], r10b
inc r8
dec r9
jne 0x2024a580
sub rdx, rcx
cmp rdx, 0xfffffffffffffffc
ja 0x2024a61d
nop
movzx ecx, byte [rdi + r8]
mov byte [rsi + r8], cl
movzx ecx, byte [rdi + r8 + 1]
mov byte [rsi + r8 + 1], cl
movzx ecx, byte [rdi + r8 + 2]
mov byte [rsi + r8 + 2], cl
movzx ecx, byte [rdi + r8 + 3]
mov byte [rsi + r8 + 3], cl
add r8, 4
cmp rax, r8
jne 0x2024a5a0
jmp 0x2024a61d
mov rcx, qword [rsi + 8]
test rcx, rcx
je 0x2024a607
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x200c66ec.0]
test rax, rax
je 0x2024a607
mov rcx, qword [rax]
mov r8, qword [rcx]
mov rcx, rax
mov edx, 1
mov rax, r8
call qword [case.0x200c66ec.0]
mov rcx, rsi
call fcn.200782c0
mov rdx, rbx
test edi, edi
jne 0x2024a0f6
test cl, 0x20
jne 0x2024a84a
mov ecx, 0xffffffff
lea r8, [rcx - 0xdde0bf7]
add rcx, 0xfffffffff221f40a
xor r10d, r10d
movabs r11, 0x47ae147ae147ae15
lea rax, [0x2047bea0]
mov edi, 0xf221f401
add rdi, rax
lea rsi, [0x2059b060]
nop word cs:[rax + rax]
mov rax, rcx
mul r11
mov r9, rdx
mov rax, r8
mul r11
mov rax, r8
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 4
imul rax, rax, 0xffffffffffffffe7
add rax, rdi
movzx eax, byte [r10 + rax + 7]
xor al, 0xb8
add byte [r10 + rsi], al
cmp r10, 0x14
je 0x2024a6ed
mov rax, rcx
sub rax, r9
shr rax, 1
add rax, r9
shr rax, 4
imul rax, rax, 0xffffffffffffffe7
add rax, rdi
add rax, 8
movzx eax, byte [rax + r10]
xor al, 0xb8
add byte [r10 + rsi + 1], al
add r10, 2
add rcx, 2
add r8, 2
jmp 0x2024a680
mov al, 0x72
xchg byte [0x2059b075], al
jmp 0x2024a61d
mov rcx, rax
and rcx, 0xfffffffffffffff0
lea rdx, [rsi + rax]
add rdx, 0xfffffffffffffff0
lea r8, [rdi + rax]
add r8, 0xfffffffffffffff0
mov r9, rcx
neg r9
xor r10d, r10d
movdqu xmm0, xmmword [r8 + r10]
movdqu xmmword [rdx + r10], xmm0
add r10, 0xfffffffffffffff0
cmp r9, r10
jne 0x2024a71a
cmp rcx, rax
je 0x2024a61d
test al, 0xc
je 0x2024a940
mov rdx, rax
and rdx, 0xfffffffffffffffc
mov r8d, eax
and r8d, 3
lea r9, [rsi + rax]
add r9, 0xfffffffffffffffc
neg rcx
lea r10, [rdi + rax]
add r10, 0xfffffffffffffffc
mov r11, rdx
neg r11
mov ebx, dword [r10 + rcx]
mov dword [r9 + rcx], ebx
add rcx, 0xfffffffffffffffc
cmp r11, rcx
jne 0x2024a767
cmp rdx, rax
mov rax, r8
jne 0x2024a1b0
jmp 0x2024a61d
mov rcx, rax
and rcx, 0xffffffffffffffe0
xor r8d, r8d
movdqu xmm0, xmmword [rdx + r8]
movups xmm1, xmmword [rdx + r8 + 0x10]
movdqu xmmword [rsi + r8], xmm0
movups xmmword [rsi + r8 + 0x10], xmm1
add r8, 0x20
cmp rcx, r8
jne 0x2024a793
cmp rax, rcx
je 0x2024a61d
test al, 0x18
je 0x2024a7e5
mov r8, rcx
mov rcx, rax
and rcx, 0xfffffffffffffff8
mov r9, qword [rdx + r8]
mov qword [rsi + r8], r9
add r8, 8
cmp rcx, r8
jne 0x2024a7cb
cmp rax, rcx
je 0x2024a61d
mov r9, rax
mov r8, rcx
and r9, 3
je 0x2024a805
mov r8, rcx
movzx r10d, byte [rdx + r8]
mov byte [rsi + r8], r10b
inc r8
dec r9
jne 0x2024a7f4
sub rcx, rax
cmp rcx, 0xfffffffffffffffc
ja 0x2024a61d
movzx eax, byte [rdx + r8]
mov byte [rsi + r8], al
movzx eax, byte [rdx + r8 + 1]
mov byte [rsi + r8 + 1], al
movzx eax, byte [rdx + r8 + 2]
mov byte [rsi + r8 + 2], al
movzx eax, byte [rdx + r8 + 3]
mov byte [rsi + r8 + 3], al
add r8, 4
cmp rdi, r8
jne 0x2024a812
jmp 0x2024a61d
mov eax, 1
mov ecx, 0x9ec73132
mov edx, 0x6138cee2
mov r8d, 0x9ec73133
mov r9d, 0x6138cee1
mov r10d, 0x86186187
lea rsi, [0x2059b0a0]
lea r11, [0x2047bee0]
mov edi, r9d
imul rdi, r10
shr rdi, 0x20
mov ebx, r9d
sub ebx, edi
shr ebx, 1
add ebx, edi
shr ebx, 4
lea edi, [rbx + rbx*4]
lea edi, [rbx + rdi*4]
add edi, r8d
movzx ebx, byte [rax + rsi - 1]
xor bl, byte [rdi + r11]
xor bl, 0x3b
mov byte [rax + rsi - 1], bl
cmp rax, 0x15
je 0x2024a8f0
mov edi, edx
imul rdi, r10
shr rdi, 0x20
mov ebx, edx
sub ebx, edi
shr ebx, 1
add ebx, edi
shr ebx, 4
lea edi, [rbx + rbx*4]
lea edi, [rbx + rdi*4]
add edi, ecx
movzx ebx, byte [rax + rsi]
mov edi, edi
xor bl, byte [rdi + r11]
xor bl, 0x3b
mov byte [rax + rsi], bl
add rax, 2
add ecx, 0xfffffffe
add edx, 2
add r8d, 0xfffffffe
add r9d, 2
jmp 0x2024a879
mov al, 0xd7
xchg byte [0x2059b0b5], al
jmp 0x2024a61d
movq xmm0, qword [0x2059b0c0]
paddb xmm0, xmmword [0x2047bad0]
movq qword [0x2059b0c0], xmm0
add byte [0x2059b0c8], 0xc
mov al, 0x1a
xchg byte [0x2059b0c9], al
jmp 0x2024a61d
mov rax, qword [rdx + 0x50]
inc dword [rax]
mov rax, qword [rdx + 0x38]
dec qword [rax]
xor eax, eax
mov rsi, rax
jmp 0x2024a61d
and eax, 0xf
jmp 0x2024a1b0
int3