Function at 0x201ae410
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
sub rsp, 0x38
test ecx, ecx
je 0x201ae469
test edx, edx
je 0x201ae4b9
test r8d, r8d
je 0x201ae4f9
test r9d, r9d
je 0x201ae579
movzx eax, byte [0x2045ed05]
cmp al, 0xa8
je 0x201ae729
mov cl, 0xa1
nop word cs:[rax + rax]
mov al, 0x8f
lock cmpxchg byte [0x2045ed05], cl
je 0x201ae6f9
cmp al, 0xa8
jne 0x201ae450
jmp 0x201ae729
test edx, edx
je 0x201ae539
test r8d, r8d
je 0x201ae5a9
test r9d, r9d
je 0x201ae629
movzx eax, byte [0x2045f311]
cmp al, 0x9f
je 0x201ae7f9
mov cl, 0xfb
nop word cs:[rax + rax]
mov al, 0x8f
lock cmpxchg byte [0x2045f311], cl
je 0x201ae7c9
cmp al, 0x9f
jne 0x201ae4a0
jmp 0x201ae7f9
test r8d, r8d
je 0x201ae5e9
test r9d, r9d
je 0x201ae659
movzx eax, byte [0x2045edc0]
cmp al, 0x6d
je 0x201ae839
mov cl, 0x28
nop dword [rax]
mov al, 0xb2
lock cmpxchg byte [0x2045edc0], cl
je 0x201ae805
cmp al, 0x6d
jne 0x201ae4e0
jmp 0x201ae839
test r9d, r9d
je 0x201ae689
movzx eax, byte [0x2045f023]
cmp al, 0xe5
je 0x201ae879
mov cl, 0xc8
nop word cs:[rax + rax]
mov al, 0xf8
lock cmpxchg byte [0x2045f023], cl
je 0x201ae845
cmp al, 0xe5
jne 0x201ae520
jmp 0x201ae879
test r8d, r8d
je 0x201ae6b9
test r9d, r9d
je 0x201ae735
movzx eax, byte [0x2045f246]
cmp al, 0x5e
je 0x201ae919
mov cl, 0xae
nop dword [rax]
mov al, 0x67
lock cmpxchg byte [0x2045f246], cl
je 0x201ae8ef
cmp al, 0x5e
jne 0x201ae560
jmp 0x201ae919
movzx eax, byte [0x2045f3f4]
cmp al, 0x4a
je 0x201ae8b9
mov cl, 0xe0
nop word [rax + rax]
mov al, 0x49
lock cmpxchg byte [0x2045f3f4], cl
je 0x201ae885
cmp al, 0x4a
jne 0x201ae590
jmp 0x201ae8b9
test r9d, r9d
je 0x201ae769
movzx eax, byte [0x2045ef9c]
cmp al, 0x47
je 0x201ae9b9
mov cl, 0xa5
nop word cs:[rax + rax]
mov al, 0x98
lock cmpxchg byte [0x2045ef9c], cl
je 0x201ae925
cmp al, 0x47
jne 0x201ae5d0
jmp 0x201ae9b9
test r9d, r9d
je 0x201ae799
movzx eax, byte [0x2045f55a]
cmp al, 0x9d
je 0x201ae9f9
mov cl, 0x2e
nop word cs:[rax + rax]
mov al, 0x97
lock cmpxchg byte [0x2045f55a], cl
je 0x201ae9c5
cmp al, 0x9d
jne 0x201ae610
jmp 0x201ae9f9
movzx eax, byte [0x2045f32d]
cmp al, 0x21
je 0x201aea39
mov cl, 0xce
nop word [rax + rax]
mov al, 0xa7
lock cmpxchg byte [0x2045f32d], cl
je 0x201aea05
cmp al, 0x21
jne 0x201ae640
jmp 0x201aea39
movzx eax, byte [0x2045f526]
cmp al, 0xef
je 0x201aea79
mov cl, 0x14
nop word [rax + rax]
mov al, 0x6e
lock cmpxchg byte [0x2045f526], cl
je 0x201aea45
cmp al, 0xef
jne 0x201ae670
jmp 0x201aea79
movzx eax, byte [0x2045f71a]
cmp al, 0xce
je 0x201aeab9
mov cl, 0x56
nop word [rax + rax]
mov al, 0x21
lock cmpxchg byte [0x2045f71a], cl
je 0x201aea85
cmp al, 0xce
jne 0x201ae6a0
jmp 0x201aeab9
test r9d, r9d
je 0x201ae8c5
movzx eax, byte [0x2045ee2f]
cmp al, 0x48
je 0x201aeaf9
mov cl, 0x5a
nop word cs:[rax + rax]
mov al, 0x51
lock cmpxchg byte [0x2045ee2f], cl
je 0x201aeac5
cmp al, 0x48
jne 0x201ae6e0
jmp 0x201aeaf9
xor eax, eax
lea rcx, [0x2045ecf0]
lea rdx, [0x20378ac0]
nop dword [rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0x15
jl 0x201ae710
mov al, 0xa8
xchg byte [0x2045ed05], al
lea rax, [0x2045ecf0]
jmp 0x201aebf2
movzx eax, byte [0x2045f7c0]
cmp al, 0xe7
je 0x201aeb39
mov cl, 0x8d
nop word cs:[rax + rax]
mov al, 0xa8
lock cmpxchg byte [0x2045f7c0], cl
je 0x201aeb05
cmp al, 0xe7
jne 0x201ae750
jmp 0x201aeb39
movzx eax, byte [0x2045f45d]
cmp al, 0x65
je 0x201aeb79
mov cl, 0xed
nop word [rax + rax]
mov al, 0xf4
lock cmpxchg byte [0x2045f45d], cl
je 0x201aeb45
cmp al, 0x65
jne 0x201ae780
jmp 0x201aeb79
movzx eax, byte [0x2045f370]
cmp al, 4
je 0x201aebb9
mov cl, 0x38
nop word [rax + rax]
mov al, 0x9e
lock cmpxchg byte [0x2045f370], cl
je 0x201aeb82
cmp al, 4
jne 0x201ae7b0
jmp 0x201aebb9
xor eax, eax
lea rcx, [0x2045f300]
lea rdx, [0x20379280]
nop dword [rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0x11
jl 0x201ae7e0
mov al, 0x9f
xchg byte [0x2045f311], al
lea rax, [0x2045f300]
jmp 0x201aebf2
xor eax, eax
lea rcx, [0x2045edb0]
lea rdx, [0x20378b70]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0x10
jl 0x201ae820
mov al, 0x6d
xchg byte [0x2045edc0], al
lea rax, [0x2045edb0]
jmp 0x201aebf2
xor eax, eax
lea rcx, [0x2045f000]
lea rdx, [0x20378f90]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0x23
jl 0x201ae860
mov al, 0xe5
xchg byte [0x2045f023], al
lea rax, [0x2045f000]
jmp 0x201aebf2
xor eax, eax
lea rcx, [0x2045f3e0]
lea rdx, [0x20379350]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0x14
jl 0x201ae8a0
mov al, 0x4a
xchg byte [0x2045f3f4], al
lea rax, [0x2045f3e0]
jmp 0x201aebf2
movzx eax, byte [0x2045ecc5]
cmp al, 0x59
je 0x201aebeb
mov cl, 0xd5
mov al, 0xf
lock cmpxchg byte [0x2045ecc5], cl
je 0x201aebc2
cmp al, 0x59
jne 0x201ae8d6
jmp 0x201aebeb
xor eax, eax
lea rcx, [0x2045f220]
lea rdx, [0x203791a0]
nop
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0x26
jl 0x201ae900
mov al, 0x5e
xchg byte [0x2045f246], al
lea rax, [0x2045f220]
jmp 0x201aebf2
cmp qword [0x204a2628], 0
jne 0x201ae985
mov dword [rsp + 0x28], 0x1f411150
mov qword [rsp + 0x20], 0
xor edi, edi
xor ecx, ecx
xor edx, edx
mov r8d, 0xb
xor r9d, r9d
call fcn.201ad7b0
mov rsi, rax
mov qword [0x204a2628], rax
lea rcx, [0x201ad790]
mov edx, 0x8361c00d
call fcn.200ec9f0
lea rax, [0x20378f10]
movzx ecx, byte [rdi + rax]
mov byte [rsi + rdi], cl
inc rdi
cmp edi, 9
jle 0x201ae976
mov rax, qword [0x204a2628]
xor ecx, ecx
lea rdx, [0x20378f20]
nop word cs:[rax + rax]
movzx r8d, byte [rcx + rdx]
add byte [rax + rcx], r8b
inc rcx
cmp ecx, 0xa
jl 0x201ae9a0
mov al, 0x47
xchg byte [0x2045ef9c], al
mov rax, qword [0x204a2628]
jmp 0x201aebf2
xor eax, eax
lea rcx, [0x2045f540]
lea rdx, [0x203794b0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0x1a
jl 0x201ae9e0
mov al, 0x9d
xchg byte [0x2045f55a], al
lea rax, [0x2045f540]
jmp 0x201aebf2
xor eax, eax
lea rcx, [0x2045f320]
lea rdx, [0x203792a0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0xd
jl 0x201aea20
mov al, 0x21
xchg byte [0x2045f32d], al
lea rax, [0x2045f320]
jmp 0x201aebf2
xor eax, eax
lea rcx, [0x2045f520]
lea rdx, [0x20379490]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 6
jl 0x201aea60
mov al, 0xef
xchg byte [0x2045f526], al
lea rax, [0x2045f520]
jmp 0x201aebf2
xor eax, eax
lea rcx, [0x2045f710]
lea rdx, [0x20379680]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0xa
jl 0x201aeaa0
mov al, 0xce
xchg byte [0x2045f71a], al
lea rax, [0x2045f710]
jmp 0x201aebf2
xor eax, eax
lea rcx, [0x2045ee20]
lea rdx, [0x20378c10]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0xf
jl 0x201aeae0
mov al, 0x48
xchg byte [0x2045ee2f], al
lea rax, [0x2045ee20]
jmp 0x201aebf2
xor eax, eax
lea rcx, [0x2045f7b0]
lea rdx, [0x20379710]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0x10
jl 0x201aeb20
mov al, 0xe7
xchg byte [0x2045f7c0], al
lea rax, [0x2045f7b0]
jmp 0x201aebf2
xor eax, eax
lea rcx, [0x2045f450]
lea rdx, [0x203793c0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0xd
jl 0x201aeb60
mov al, 0x65
xchg byte [0x2045f45d], al
lea rax, [0x2045f450]
jmp 0x201aebf2
xor eax, eax
lea rcx, [0x2045f360]
lea rdx, [0x203792e0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0x10
jl 0x201aeba0
mov al, 4
xchg byte [0x2045f370], al
lea rax, [0x2045f360]
jmp 0x201aebf2
xor eax, eax
lea rcx, [0x2045ecb0]
lea rdx, [0x20378a80]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0x15
jl 0x201aebd2
mov al, 0x59
xchg byte [0x2045ecc5], al
lea rax, [0x2045ecb0]
add rsp, 0x38
pop rdi
pop rsi
ret