Function at 0x20186cd0
Capabilities:
Encode data using xor

Disassembly:
test ecx, ecx
je 0x20186d1c
test edx, edx
je 0x20186d6c
test r8d, r8d
je 0x20186dac
test r9d, r9d
je 0x20186e29
movzx eax, byte [0x2045a624]
cmp al, 0xf
je 0x20186d14
mov cl, 0xda
nop dword [rax + rax]
mov al, 9
lock cmpxchg byte [0x2045a624], cl
je 0x20186fa9
cmp al, 0xf
jne 0x20186d00
lea rax, [0x2045a610]
ret
test edx, edx
je 0x20186dec
test r8d, r8d
je 0x20186e5c
test r9d, r9d
je 0x20186ed9
movzx eax, byte [0x2045a66b]
cmp al, 0x69
je 0x20186d64
mov cl, 0x79
nop word cs:[rax + rax]
mov al, 0xa
lock cmpxchg byte [0x2045a66b], cl
je 0x20187079
cmp al, 0x69
jne 0x20186d50
lea rax, [0x2045a660]
ret
test r8d, r8d
je 0x20186e99
test r9d, r9d
je 0x20186f09
movzx eax, byte [0x2045a653]
cmp al, 0x91
je 0x20186da4
mov cl, 0x52
nop dword [rax + rax]
mov al, 0x8c
lock cmpxchg byte [0x2045a653], cl
je 0x201870b1
cmp al, 0x91
jne 0x20186d90
lea rax, [0x2045a640]
ret
test r9d, r9d
je 0x20186f39
movzx eax, byte [0x2045a60d]
cmp al, 0xfe
je 0x20186de4
mov cl, 0x77
nop word cs:[rax + rax]
mov al, 0x33
lock cmpxchg byte [0x2045a60d], cl
je 0x201870f1
cmp al, 0xfe
jne 0x20186dd0
lea rax, [0x2045a600]
ret
test r8d, r8d
je 0x20186f69
test r9d, r9d
je 0x20186fe1
movzx eax, byte [0x2045a5c2]
cmp al, 0x8b
je 0x201871c9
mov cl, 0xbd
nop
mov al, 0xd0
lock cmpxchg byte [0x2045a5c2], cl
je 0x2018719b
cmp al, 0x8b
jne 0x20186e10
jmp 0x201871c9
movzx eax, byte [0x2045a4ce]
cmp al, 0x45
je 0x20186e54
mov cl, 0xbc
nop word cs:[rax + rax]
mov al, 0xf8
lock cmpxchg byte [0x2045a4ce], cl
je 0x20187131
cmp al, 0x45
jne 0x20186e40
lea rax, [0x2045a4c0]
ret
test r9d, r9d
je 0x20187019
movzx eax, byte [0x2045a5ed]
cmp al, 0xfc
je 0x20187209
mov cl, 0xe6
nop word cs:[rax + rax]
mov al, 0xf2
lock cmpxchg byte [0x2045a5ed], cl
je 0x201871d1
cmp al, 0xfc
jne 0x20186e80
jmp 0x20187209
test r9d, r9d
je 0x20187049
movzx eax, byte [0x2045a5fe]
cmp al, 0x57
je 0x20187249
mov cl, 0x8e
nop word cs:[rax + rax]
mov al, 0x17
lock cmpxchg byte [0x2045a5fe], cl
je 0x20187211
cmp al, 0x57
jne 0x20186ec0
jmp 0x20187249
movzx eax, byte [0x2045a63d]
cmp al, 0x39
je 0x20187289
mov cl, 0x6f
nop word [rax + rax]
mov al, 0x11
lock cmpxchg byte [0x2045a63d], cl
je 0x20187251
cmp al, 0x39
jne 0x20186ef0
jmp 0x20187289
movzx eax, byte [0x2045a470]
cmp al, 0x9d
je 0x201872c9
mov cl, 0x8b
nop word [rax + rax]
mov al, 0x4c
lock cmpxchg byte [0x2045a470], cl
je 0x20187291
cmp al, 0x9d
jne 0x20186f20
jmp 0x201872c9
movzx eax, byte [0x2045a445]
cmp al, 0x89
je 0x20187309
mov cl, 0x2b
nop word [rax + rax]
mov al, 0x8e
lock cmpxchg byte [0x2045a445], cl
je 0x201872d1
cmp al, 0x89
jne 0x20186f50
jmp 0x20187309
test r9d, r9d
je 0x20187171
movzx eax, byte [0x2045a5db]
cmp al, 0xf7
je 0x20187349
mov cl, 0xa3
nop word cs:[rax + rax]
mov al, 0x36
lock cmpxchg byte [0x2045a5db], cl
je 0x20187311
cmp al, 0xf7
jne 0x20186f90
jmp 0x20187349
xor eax, eax
lea rcx, [0x2045a610]
lea rdx, [0x20375ea0]
nop dword [rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0x14
jl 0x20186fc0
mov al, 0xf
xchg byte [0x2045a624], al
lea rax, [0x2045a610]
ret
movzx eax, byte [0x2045a50c]
cmp al, 0xba
je 0x20187389
mov cl, 0xf6
nop word cs:[rax + rax]
mov al, 0xd6
lock cmpxchg byte [0x2045a50c], cl
je 0x20187351
cmp al, 0xba
jne 0x20187000
jmp 0x20187389
movzx eax, byte [0x2045a5b2]
cmp al, 0xc2
je 0x201873c9
mov cl, 0x59
nop word [rax + rax]
mov al, 0x14
lock cmpxchg byte [0x2045a5b2], cl
je 0x20187391
cmp al, 0xc2
jne 0x20187030
jmp 0x201873c9
movzx eax, byte [0x2045a67f]
cmp al, 0x10
je 0x20187409
mov cl, 0xd3
nop word [rax + rax]
mov al, 0x89
lock cmpxchg byte [0x2045a67f], cl
je 0x201873d1
cmp al, 0x10
jne 0x20187060
jmp 0x20187409
xor eax, eax
lea rcx, [0x2045a660]
lea rdx, [0x20375ef0]
nop dword [rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0xb
jl 0x20187090
mov al, 0x69
xchg byte [0x2045a66b], al
lea rax, [0x2045a660]
ret
xor eax, eax
lea rcx, [0x2045a640]
lea rdx, [0x20375ed0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0x13
jl 0x201870d0
mov al, 0x91
xchg byte [0x2045a653], al
lea rax, [0x2045a640]
ret
xor eax, eax
lea rcx, [0x2045a600]
lea rdx, [0x20375e90]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0xd
jl 0x20187110
mov al, 0xfe
xchg byte [0x2045a60d], al
lea rax, [0x2045a600]
ret
xor eax, eax
lea rcx, [0x2045a4c0]
lea rdx, [0x20375d60]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0xe
jl 0x20187150
mov al, 0x45
xchg byte [0x2045a4ce], al
lea rax, [0x2045a4c0]
ret
movzx eax, byte [0x2045a523]
cmp al, 0xf6
je 0x2018743a
mov cl, 0xb3
mov al, 0x8c
lock cmpxchg byte [0x2045a523], cl
je 0x20187411
cmp al, 0xf6
jne 0x20187182
jmp 0x2018743a
xor eax, eax
lea rcx, [0x2045a5c0]
lea rdx, [0x20375e50]
nop dword [rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 2
jl 0x201871b0
mov al, 0x8b
xchg byte [0x2045a5c2], al
lea rax, [0x2045a5c0]
ret
xor eax, eax
lea rcx, [0x2045a5e0]
lea rdx, [0x20375e70]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0xd
jl 0x201871f0
mov al, 0xfc
xchg byte [0x2045a5ed], al
lea rax, [0x2045a5e0]
ret
xor eax, eax
lea rcx, [0x2045a5f0]
lea rdx, [0x20375e80]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0xe
jl 0x20187230
mov al, 0x57
xchg byte [0x2045a5fe], al
lea rax, [0x2045a5f0]
ret
xor eax, eax
lea rcx, [0x2045a630]
lea rdx, [0x20375ec0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0xd
jl 0x20187270
mov al, 0x39
xchg byte [0x2045a63d], al
lea rax, [0x2045a630]
ret
xor eax, eax
lea rcx, [0x2045a460]
lea rdx, [0x20375d10]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0x10
jl 0x201872b0
mov al, 0x9d
xchg byte [0x2045a470], al
lea rax, [0x2045a460]
ret
xor eax, eax
lea rcx, [0x2045a440]
lea rdx, [0x20375cf0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 5
jl 0x201872f0
mov al, 0x89
xchg byte [0x2045a445], al
lea rax, [0x2045a440]
ret
xor eax, eax
lea rcx, [0x2045a5d0]
lea rdx, [0x20375e60]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0xb
jl 0x20187330
mov al, 0xf7
xchg byte [0x2045a5db], al
lea rax, [0x2045a5d0]
ret
xor eax, eax
lea rcx, [0x2045a4f0]
lea rdx, [0x20375d80]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0x1c
jl 0x20187370
mov al, 0xba
xchg byte [0x2045a50c], al
lea rax, [0x2045a4f0]
ret
xor eax, eax
lea rcx, [0x2045a5b0]
lea rdx, [0x20375e40]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 2
jl 0x201873b0
mov al, 0xc2
xchg byte [0x2045a5b2], al
lea rax, [0x2045a5b0]
ret
xor eax, eax
lea rcx, [0x2045a670]
lea rdx, [0x20375f00]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0xf
jl 0x201873f0
mov al, 0x10
xchg byte [0x2045a67f], al
lea rax, [0x2045a670]
ret
xor eax, eax
lea rcx, [0x2045a520]
lea rdx, [0x20375db0]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 3
jl 0x20187421
mov al, 0xf6
xchg byte [0x2045a523], al
lea rax, [0x2045a520]
ret