Function at 0x2020be30
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
sub rsp, 0x28
test ecx, ecx
je 0x2020be79
test edx, edx
je 0x2020bec9
test r8d, r8d
je 0x2020bf09
movzx eax, byte [0x2046a25c]
cmp al, 0xe9
je 0x2020c029
mov cl, 0x75
nop dword [rax]
mov al, 0xe0
lock cmpxchg byte [0x2046a25c], cl
je 0x2020bff9
cmp al, 0xe9
jne 0x2020be60
jmp 0x2020c029
test edx, edx
je 0x2020bf39
test r8d, r8d
je 0x2020bf79
test r9d, r9d
je 0x2020c035
movzx eax, byte [0x2046a2bb]
cmp al, 0x37
je 0x2020c1d9
mov cl, 0xef
nop word cs:[rax + rax]
mov al, 0x93
lock cmpxchg byte [0x2046a2bb], cl
je 0x2020c1a9
cmp al, 0x37
jne 0x2020beb0
jmp 0x2020c1d9
test r8d, r8d
je 0x2020bfb9
test r9d, r9d
je 0x2020c069
movzx eax, byte [0x2046a175]
cmp al, 0x7d
je 0x2020c219
mov cl, 0x18
nop dword [rax]
mov al, 0x96
lock cmpxchg byte [0x2046a175], cl
je 0x2020c1e5
cmp al, 0x7d
jne 0x2020bef0
jmp 0x2020c219
movzx eax, byte [0x2046a273]
cmp al, 0xa8
je 0x2020c109
mov cl, 0x20
nop word [rax + rax]
mov al, 0xbd
lock cmpxchg byte [0x2046a273], cl
je 0x2020c0d9
cmp al, 0xa8
jne 0x2020bf20
jmp 0x2020c109
test r8d, r8d
je 0x2020c099
test r9d, r9d
je 0x2020c115
movzx eax, byte [0x2046a34c]
cmp al, 0x4a
je 0x2020c289
mov cl, 0xae
nop dword [rax]
mov al, 0x77
lock cmpxchg byte [0x2046a34c], cl
je 0x2020c253
cmp al, 0x4a
jne 0x2020bf60
jmp 0x2020c289
test r9d, r9d
je 0x2020c149
movzx eax, byte [0x2046a32b]
cmp al, 0x4e
je 0x2020c2c9
mov cl, 0xc5
nop word cs:[rax + rax]
mov al, 0xb
lock cmpxchg byte [0x2046a32b], cl
je 0x2020c295
cmp al, 0x4e
jne 0x2020bfa0
jmp 0x2020c2c9
test r9d, r9d
je 0x2020c179
movzx eax, byte [0x2046a302]
cmp al, 0xaa
je 0x2020c309
mov cl, 0xe9
nop word cs:[rax + rax]
mov al, 0xa5
lock cmpxchg byte [0x2046a302], cl
je 0x2020c2d5
cmp al, 0xaa
jne 0x2020bfe0
jmp 0x2020c309
xor eax, eax
lea rcx, [0x2046a240]
lea rdx, [0x2037f250]
nop dword [rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0x1c
jl 0x2020c010
mov al, 0xe9
xchg byte [0x2046a25c], al
lea rax, [0x2046a240]
jmp 0x2020c524
movzx eax, byte [0x2046a0f2]
cmp al, 0x31
je 0x2020c349
mov cl, 0xd1
nop word cs:[rax + rax]
mov al, 0x8f
lock cmpxchg byte [0x2046a0f2], cl
je 0x2020c315
cmp al, 0x31
jne 0x2020c050
jmp 0x2020c349
movzx eax, byte [0x2046a2a3]
cmp al, 0x65
je 0x2020c389
mov cl, 0xc6
nop word [rax + rax]
mov al, 0xd6
lock cmpxchg byte [0x2046a2a3], cl
je 0x2020c355
cmp al, 0x65
jne 0x2020c080
jmp 0x2020c389
test r9d, r9d
je 0x2020c225
movzx eax, byte [0x2046a0c3]
cmp al, 0xa2
je 0x2020c3c9
mov cl, 0xd1
nop word cs:[rax + rax]
mov al, 0x17
lock cmpxchg byte [0x2046a0c3], cl
je 0x2020c395
cmp al, 0xa2
jne 0x2020c0c0
jmp 0x2020c3c9
xor eax, eax
lea rcx, [0x2046a270]
lea rdx, [0x2037f280]
nop dword [rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 3
jl 0x2020c0f0
mov al, 0xa8
xchg byte [0x2046a273], al
lea rax, [0x2046a270]
jmp 0x2020c524
movzx eax, byte [0x2046a1e6]
cmp al, 0x42
je 0x2020c409
mov cl, 0x2b
nop word cs:[rax + rax]
mov al, 0xe2
lock cmpxchg byte [0x2046a1e6], cl
je 0x2020c3d5
cmp al, 0x42
jne 0x2020c130
jmp 0x2020c409
movzx eax, byte [0x2046a0ba]
cmp al, 0x69
je 0x2020c449
mov cl, 0x33
nop word [rax + rax]
mov al, 0xda
lock cmpxchg byte [0x2046a0ba], cl
je 0x2020c415
cmp al, 0x69
jne 0x2020c160
jmp 0x2020c449
movzx eax, byte [0x2046a223]
cmp al, 0xe0
je 0x2020c489
mov cl, 0x55
nop word [rax + rax]
mov al, 0xc7
lock cmpxchg byte [0x2046a223], cl
je 0x2020c455
cmp al, 0xe0
jne 0x2020c190
jmp 0x2020c489
xor eax, eax
lea rcx, [0x2046a2b0]
lea rdx, [0x2037f2c0]
nop dword [rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0xb
jl 0x2020c1c0
mov al, 0x37
xchg byte [0x2046a2bb], al
lea rax, [0x2046a2b0]
jmp 0x2020c524
xor eax, eax
lea rcx, [0x2046a160]
lea rdx, [0x2037f140]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0x15
jl 0x2020c200
mov al, 0x7d
xchg byte [0x2046a175], al
lea rax, [0x2046a160]
jmp 0x2020c524
movzx eax, byte [0x2046a238]
cmp al, 0x3f
je 0x2020c51d
mov esi, dword [rsp + 0x60]
mov cl, 0x19
mov al, 0x57
lock cmpxchg byte [0x2046a238], cl
je 0x2020c495
cmp al, 0x3f
jne 0x2020c23a
jmp 0x2020c51d
xor eax, eax
lea rcx, [0x2046a340]
lea rdx, [0x2037f350]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0xc
jl 0x2020c270
mov al, 0x4a
xchg byte [0x2046a34c], al
lea rax, [0x2046a340]
jmp 0x2020c524
xor eax, eax
lea rcx, [0x2046a320]
lea rdx, [0x2037f330]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0xb
jl 0x2020c2b0
mov al, 0x4e
xchg byte [0x2046a32b], al
lea rax, [0x2046a320]
jmp 0x2020c524
xor eax, eax
lea rcx, [0x2046a300]
lea rdx, [0x2037f310]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 2
jl 0x2020c2f0
mov al, 0xaa
xchg byte [0x2046a302], al
lea rax, [0x2046a300]
jmp 0x2020c524
xor eax, eax
lea rcx, [0x2046a0e0]
lea rdx, [0x2037f0d0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0x12
jl 0x2020c330
mov al, 0x31
xchg byte [0x2046a0f2], al
lea rax, [0x2046a0e0]
jmp 0x2020c524
xor eax, eax
lea rcx, [0x2046a280]
lea rdx, [0x2037f290]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0x23
jl 0x2020c370
mov al, 0x65
xchg byte [0x2046a2a3], al
lea rax, [0x2046a280]
jmp 0x2020c524
xor eax, eax
lea rcx, [0x2046a0c0]
lea rdx, [0x2037f0b0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 3
jl 0x2020c3b0
mov al, 0xa2
xchg byte [0x2046a0c3], al
lea rax, [0x2046a0c0]
jmp 0x2020c524
xor eax, eax
lea rcx, [0x2046a1d0]
lea rdx, [0x2037f1b0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0x16
jl 0x2020c3f0
mov al, 0x42
xchg byte [0x2046a1e6], al
lea rax, [0x2046a1d0]
jmp 0x2020c524
xor eax, eax
lea rcx, [0x2046a0b0]
lea rdx, [0x2037f0a0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0xa
jl 0x2020c430
mov al, 0x69
xchg byte [0x2046a0ba], al
lea rax, [0x2046a0b0]
jmp 0x2020c524
xor eax, eax
lea rcx, [0x2046a220]
lea rdx, [0x2037f1f0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 3
jl 0x2020c470
mov al, 0xe0
xchg byte [0x2046a223], al
lea rax, [0x2046a220]
jmp 0x2020c524
cmp qword [0x204a31a8], 0
jne 0x2020c4f4
mov r9d, esi
xor r9d, 0x5a3f60cb
mov ecx, 1
mov edx, 1
mov r8d, 4
call fcn.2020b610
mov rdi, rax
mov qword [0x204a31a8], rax
xor esi, 0xe4c45713
lea rcx, [0x2020b5e0]
mov edx, esi
call fcn.200ec9f0
xor eax, eax
lea rcx, [0x2037f230]
movzx edx, byte [rax + rcx]
mov byte [rdi + rax], dl
inc rax
cmp eax, 2
jle 0x2020c4e5
mov rax, qword [0x204a31a8]
xor ecx, ecx
lea rdx, [0x2037f240]
movzx r8d, byte [rcx + rdx]
xor byte [rax + rcx], r8b
inc rcx
cmp ecx, 3
jl 0x2020c504
mov al, 0x3f
xchg byte [0x2046a238], al
mov rax, qword [0x204a31a8]
add rsp, 0x28
pop rdi
pop rsi
ret