Function at 0x20158810
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
sub rsp, 0x28
test ecx, ecx
je 0x20158859
test edx, edx
je 0x20158899
test r8d, r8d
je 0x201588d9
movzx eax, byte [0x2045579e]
cmp al, 0xf9
je 0x201589d9
mov cl, 0x41
nop dword [rax + rax]
mov al, 0x3d
lock cmpxchg byte [0x2045579e], cl
je 0x201589a9
cmp al, 0xf9
jne 0x20158840
jmp 0x201589d9
test edx, edx
je 0x20158909
test r8d, r8d
je 0x20158949
movzx eax, byte [0x204556c6]
cmp al, 8
je 0x20158a49
mov cl, 0x94
nop dword [rax + rax]
mov al, 0x7e
lock cmpxchg byte [0x204556c6], cl
je 0x20158a19
cmp al, 8
jne 0x20158880
jmp 0x20158a49
test r8d, r8d
je 0x20158979
movzx eax, byte [0x20455761]
cmp al, 0x9a
je 0x20158a89
mov cl, 0xb5
nop word cs:[rax + rax]
mov al, 0x1a
lock cmpxchg byte [0x20455761], cl
je 0x20158a55
cmp al, 0x9a
jne 0x201588c0
jmp 0x20158a89
movzx eax, byte [0x20455490]
cmp al, 0xeb
je 0x20158b19
mov esi, r9d
mov cl, 0x11
nop dword [rax]
mov al, 0x9f
lock cmpxchg byte [0x20455490], cl
je 0x20158a95
cmp al, 0xeb
jne 0x201588f0
jmp 0x20158b19
test r8d, r8d
je 0x201589e5
movzx eax, byte [0x2045558f]
cmp al, 0xca
je 0x20158b59
mov cl, 0x43
nop word cs:[rax + rax]
mov al, 0x91
lock cmpxchg byte [0x2045558f], cl
je 0x20158b25
cmp al, 0xca
jne 0x20158930
jmp 0x20158b59
movzx eax, byte [0x204556b9]
cmp al, 0x31
je 0x20158b99
mov cl, 0x73
nop word [rax + rax]
mov al, 0x19
lock cmpxchg byte [0x204556b9], cl
je 0x20158b65
cmp al, 0x31
jne 0x20158960
jmp 0x20158b99
movzx eax, byte [0x2045569d]
cmp al, 0xb7
je 0x20158bd9
mov cl, 6
nop word [rax + rax]
mov al, 0xa4
lock cmpxchg byte [0x2045569d], cl
je 0x20158ba2
cmp al, 0xb7
jne 0x20158990
jmp 0x20158bd9
xor eax, eax
lea rcx, [0x20455790]
lea rdx, [0x20374ae0]
nop dword [rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0xe
jl 0x201589c0
mov al, 0xf9
xchg byte [0x2045579e], al
lea rax, [0x20455790]
jmp 0x20158c20
movzx eax, byte [0x204558ff]
cmp al, 0x78
je 0x20158c19
mov cl, 6
nop word cs:[rax + rax]
mov al, 0x40
lock cmpxchg byte [0x204558ff], cl
je 0x20158be2
cmp al, 0x78
jne 0x20158a00
jmp 0x20158c19
xor eax, eax
lea rcx, [0x204556c0]
lea rdx, [0x20374a20]
nop dword [rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 6
jl 0x20158a30
mov al, 8
xchg byte [0x204556c6], al
lea rax, [0x204556c0]
jmp 0x20158c20
xor eax, eax
lea rcx, [0x20455750]
lea rdx, [0x20374aa0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0x11
jl 0x20158a70
mov al, 0x9a
xchg byte [0x20455761], al
lea rax, [0x20455750]
jmp 0x20158c20
cmp qword [0x204a2168], 0
jne 0x20158aef
mov edx, esi
xor edx, 0xfb328f0d
mov ecx, 0x21
call fcn.200f3900
mov rdi, rax
mov qword [0x204a2168], rax
xor esi, 0x181d739e
lea rcx, [0x201580f0]
mov edx, esi
call fcn.200ec9f0
xor eax, eax
lea rcx, [0x203747d0]
nop dword [rax + rax]
movzx edx, byte [rax + rcx]
mov byte [rdi + rax], dl
inc rax
cmp eax, 0x1f
jle 0x20158ae0
mov rax, qword [0x204a2168]
xor ecx, ecx
lea rdx, [0x203747f0]
nop
movzx r8d, byte [rcx + rdx]
xor byte [rax + rcx], r8b
inc rcx
cmp ecx, 0x20
jl 0x20158b00
mov al, 0xeb
xchg byte [0x20455490], al
mov rax, qword [0x204a2168]
jmp 0x20158c20
xor eax, eax
lea rcx, [0x20455560]
lea rdx, [0x203748c0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0x2f
jl 0x20158b40
mov al, 0xca
xchg byte [0x2045558f], al
lea rax, [0x20455560]
jmp 0x20158c20
xor eax, eax
lea rcx, [0x204556b0]
lea rdx, [0x20374a10]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 9
jl 0x20158b80
mov al, 0x31
xchg byte [0x204556b9], al
lea rax, [0x204556b0]
jmp 0x20158c20
xor eax, eax
lea rcx, [0x20455690]
lea rdx, [0x203749f0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0xd
jl 0x20158bc0
mov al, 0xb7
xchg byte [0x2045569d], al
lea rax, [0x20455690]
jmp 0x20158c20
xor eax, eax
lea rcx, [0x204558f0]
lea rdx, [0x20374c40]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0xf
jl 0x20158c00
mov al, 0x78
xchg byte [0x204558ff], al
lea rax, [0x204558f0]
add rsp, 0x28
pop rdi
pop rsi
ret