Function at 0x20179050
Capabilities:
Encode data using xor

Disassembly:
test ecx, ecx
je 0x2017910c
nop dword [rax + rax]
cmp dword [0x205500b8], 0x9a1c9a34
je 0x20179077
mov eax, dword [0x205b3cd4]
cmp eax, 0x53
jge 0x20179060
mov eax, dword [0x205b3cd4]
cmp eax, 0x56
jg 0x2017906c
test edx, edx
je 0x20179149
movzx eax, byte [0x2054eb94]
nop word cs:[rax + rax]
cmp al, 0xc8
je 0x201790f7
movzx ecx, byte [0x205500c8]
lea eax, [rcx + 0x77]
add cl, 0xe9
lock cmpxchg byte [0x2054eb94], cl
jne 0x201790a0
xor edx, edx
lea rax, [0x2054eb90]
lea rcx, [0x20471d80]
nop dword [rax + rax]
movsxd rdx, edx
movzx r8d, byte [rdx + rcx]
add byte [rdx + rax], r8b
mov r8d, edx
xor r8d, 1
and edx, 1
lea edx, [r8 + rdx*2]
cmp edx, 4
jl 0x201790d0
mov al, 0xc8
xchg byte [0x2054eb94], al
mov eax, dword [0x205b3cd4]
xor eax, eax
nop
test al, al
jne 0x20179100
lea rax, [0x2054eb90]
ret
mov eax, 0x65e365cc
add eax, dword [0x205500b8]
cmp edx, eax
jne 0x201791e1
movzx eax, byte [0x2054ec01]
cmp al, 0xd
je 0x201793ee
mov cl, 0xdc
mov al, 0x42
lock cmpxchg byte [0x2054ec01], cl
je 0x2017922d
cmp al, 0xd
jne 0x20179130
jmp 0x201793ee
movzx eax, byte [0x2054ed69]
cmp al, 0xac
je 0x20179170
mov cl, 0x37
nop word cs:[rax + rax]
mov al, 0xb2
lock cmpxchg byte [0x2054ed69], cl
je 0x20179180
cmp al, 0xac
jne 0x20179160
lea rax, [0x2054ed60]
ret
mov eax, dword [0x205b3cd0]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x20179180
mov eax, dword [0x205b3cd0]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x20179180
xor eax, eax
lea rcx, [0x2054ed60]
lea rdx, [0x20471f50]
mov r8d, 0x65e365d5
nop dword [rax + rax]
movzx r9d, byte [rax + rdx]
add byte [rax + rcx], r9b
lea r9d, [rax + 1]
mov r10d, dword [0x205500b8]
add r10d, r8d
cmp r9d, r10d
jge 0x2017921d
inc rax
jmp 0x201791c0
movzx eax, byte [0x2054ec85]
cmp al, 0x81
je 0x2017935a
mov cl, 0xc5
nop word cs:[rax + rax]
mov al, 0x87
lock cmpxchg byte [0x2054ec85], cl
je 0x201792c6
cmp al, byte [0x205500c8]
jne 0x20179200
jmp 0x2017935a
mov al, 0xac
xchg byte [0x2054ed69], al
lea rax, [0x2054ed60]
ret
mov eax, 0x65e365cc
lea rcx, [fcn.20179050]
lea edx, [rcx + rcx]
add edx, 0x2800
mov r8d, 0x65e365cd
nop dword [rax + rax]
mov r9d, dword [0x205b3cd0]
lea r10d, [r9 - 1]
imul r10d, r9d
and r10d, 1
mov r9d, dword [0x205500b8]
add r9d, eax
cmp r10d, r9d
jne 0x201792aa
mov r9d, dword [0x205500b8]
mov r10d, r9d
xor r10d, 0x65e365cd
mov r11d, r9d
and r11d, 0x65e365cd
lea r10d, [r10 + r11*2]
xor r10d, edx
not r10d
and r10d, edx
add r9d, 0x65e365cc
cmp r10d, r9d
je 0x20179362
mov r9d, dword [0x205500b8]
add r9d, r8d
lea r10d, [rcx + rcx]
add r10d, 0xfa0
test r10d, r9d
jne 0x20179250
jmp 0x20179272
xor edx, edx
lea rax, [0x2054ec70]
lea rcx, [0x20471e60]
nop word cs:[rax + rax]
movsxd rdx, edx
movzx r8d, byte [rdx + rcx]
xor byte [rdx + rax], r8b
mov r8d, dword [0x205500b8]
add edx, r8d
add edx, 0x65e365cd
add r8d, 0x65e365e1
cmp edx, r8d
jl 0x201792e0
xor ecx, ecx
mov r8d, 0x65e365ce
test cl, cl
je 0x20179333
nop word cs:[rax + rax]
mov al, 0x81
xchg byte [0x2054ec85], al
mov eax, dword [0x205b3cd4]
cmp eax, 0x26
jge 0x20179310
mov al, 0x81
xchg byte [0x2054ec85], al
mov edx, dword [0x205b3cd0]
lea eax, [rdx - 1]
imul eax, edx
mov r9d, dword [0x205500b8]
add r9d, r8d
xor edx, edx
div r9d
test edx, edx
jne 0x20179320
lea rax, [0x2054ec70]
ret
xor eax, eax
lea rcx, [0x2054ebf0]
lea rdx, [0x20471de0]
mov r8d, 0x65e365dd
nop dword [rax + rax]
movzx r9d, byte [rax + rdx]
add byte [rax + rcx], r9b
lea r9d, [rax + 1]
mov r10d, dword [0x205500b8]
add r10d, r8d
cmp r9d, r10d
jge 0x201793a1
inc rax
jmp 0x20179380
mov eax, dword [0x205b3cd0]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x201793d9
mov al, 0xd
xchg byte [0x2054ec01], al
mov ecx, dword [0x205b3cd0]
lea eax, [rcx - 1]
imul eax, ecx
mov ecx, 0x65e365ce
add ecx, dword [0x205500b8]
xor edx, edx
div ecx
test edx, edx
je 0x201793ee
mov al, 1
nop dword [rax + rax]
mov cl, 0xd
xchg byte [0x2054ec01], cl
test al, al
je 0x201793e0
jmp 0x201793b2
lea rax, [0x2054ebf0]
ret