Function at 0x20187450
Capabilities:
Encode data using xor

Disassembly:
test ecx, ecx
je 0x2018748c
test edx, edx
je 0x201874cc
test r8d, r8d
je 0x2018750c
movzx eax, byte [0x2045a495]
cmp al, 0xb8
je 0x20187484
mov cl, 0xb
nop
mov al, 0xed
lock cmpxchg byte [0x2045a495], cl
je 0x201875dc
cmp al, 0xb8
jne 0x20187470
lea rax, [0x2045a480]
ret
test edx, edx
je 0x2018753c
test r8d, r8d
je 0x20187579
movzx eax, byte [0x2045a4b2]
cmp al, 0x90
je 0x201874c4
mov cl, 0x8e
nop word [rax + rax]
mov al, 0x96
lock cmpxchg byte [0x2045a4b2], cl
je 0x20187649
cmp al, 0x90
jne 0x201874b0
lea rax, [0x2045a4a0]
ret
test r8d, r8d
je 0x201875ac
movzx eax, byte [0x2045a5a6]
cmp al, 0x52
je 0x20187504
mov cl, 0xd6
nop word cs:[rax + rax]
mov al, 0x44
lock cmpxchg byte [0x2045a5a6], cl
je 0x20187681
cmp al, 0x52
jne 0x201874f0
lea rax, [0x2045a580]
ret
movzx eax, byte [0x2045a515]
cmp al, 0xea
je 0x20187534
mov cl, 0xee
nop dword [rax]
mov al, 0xa1
lock cmpxchg byte [0x2045a515], cl
je 0x201876c1
cmp al, 0xea
jne 0x20187520
lea rax, [0x2045a510]
ret
test r8d, r8d
je 0x20187611
test r9d, r9d
je 0x20187701
movzx eax, byte [0x2045a4e0]
cmp al, 0xbf
je 0x201877e9
mov cl, 0x2a
nop
mov al, 0xf8
lock cmpxchg byte [0x2045a4e0], cl
je 0x201877b1
cmp al, 0xbf
jne 0x20187560
jmp 0x201877e9
movzx eax, byte [0x2045a57f]
cmp al, 0x2f
je 0x201875a4
mov cl, 0x6e
nop word cs:[rax + rax]
mov al, 0x7e
lock cmpxchg byte [0x2045a57f], cl
je 0x20187739
cmp al, 0x2f
jne 0x20187590
lea rax, [0x2045a570]
ret
movzx eax, byte [0x2045a56b]
cmp al, 0xec
je 0x201875d4
mov cl, 0xa5
nop dword [rax]
mov al, 0x11
lock cmpxchg byte [0x2045a56b], cl
je 0x20187771
cmp al, 0xec
jne 0x201875c0
lea rax, [0x2045a560]
ret
xor eax, eax
lea rcx, [0x2045a480]
lea rdx, [0x20375d20]
nop dword [rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0x15
jl 0x201875f0
mov al, 0xb8
xchg byte [0x2045a495], al
lea rax, [0x2045a480]
ret
movzx eax, byte [0x2045a454]
cmp al, 0x81
je 0x20187829
mov cl, 0x2e
nop word cs:[rax + rax]
mov al, 0x15
lock cmpxchg byte [0x2045a454], cl
je 0x201877f1
cmp al, 0x81
jne 0x20187630
jmp 0x20187829
xor eax, eax
lea rcx, [0x2045a4a0]
lea rdx, [0x20375d40]
nop dword [rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0x12
jl 0x20187660
mov al, 0x90
xchg byte [0x2045a4b2], al
lea rax, [0x2045a4a0]
ret
xor eax, eax
lea rcx, [0x2045a580]
lea rdx, [0x20375e10]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0x26
jl 0x201876a0
mov al, 0x52
xchg byte [0x2045a5a6], al
lea rax, [0x2045a580]
ret
xor eax, eax
lea rcx, [0x2045a510]
lea rdx, [0x20375da0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 5
jl 0x201876e0
mov al, 0xea
xchg byte [0x2045a515], al
lea rax, [0x2045a510]
ret
movzx eax, byte [0x2045a553]
cmp al, 0xf6
je 0x20187869
mov cl, 0x3c
nop word cs:[rax + rax]
mov al, 0xcd
lock cmpxchg byte [0x2045a553], cl
je 0x20187831
cmp al, 0xf6
jne 0x20187720
jmp 0x20187869
xor eax, eax
lea rcx, [0x2045a570]
lea rdx, [0x20375e00]
nop dword [rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0xf
jl 0x20187750
mov al, 0x2f
xchg byte [0x2045a57f], al
lea rax, [0x2045a570]
ret
xor eax, eax
lea rcx, [0x2045a560]
lea rdx, [0x20375df0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0xb
jl 0x20187790
mov al, 0xec
xchg byte [0x2045a56b], al
lea rax, [0x2045a560]
ret
xor eax, eax
lea rcx, [0x2045a4d0]
lea rdx, [0x20375d70]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0x10
jl 0x201877d0
mov al, 0xbf
xchg byte [0x2045a4e0], al
lea rax, [0x2045a4d0]
ret
xor eax, eax
lea rcx, [0x2045a450]
lea rdx, [0x20375d00]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 4
jl 0x20187810
mov al, 0x81
xchg byte [0x2045a454], al
lea rax, [0x2045a450]
ret
xor eax, eax
lea rcx, [0x2045a530]
lea rdx, [0x20375dc0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0x23
jl 0x20187850
mov al, 0xf6
xchg byte [0x2045a553], al
lea rax, [0x2045a530]
ret