Function at 0x2010c3f0
Capabilities:
Authenticate hmac
Check for software breakpoints
Encode data using xor

Disassembly:
push rsi
push rdi
sub rsp, 0x28
test ecx, ecx
je 0x2010c449
test edx, edx
je 0x2010c499
test r8d, r8d
je 0x2010c4d9
test r9d, r9d
je 0x2010c559
movzx eax, byte [0x2044dd12]
cmp al, 0x7e
je 0x2010c709
mov cl, 0x37
nop word cs:[rax + rax]
mov al, 0xd9
lock cmpxchg byte [0x2044dd12], cl
je 0x2010c6d9
cmp al, 0x7e
jne 0x2010c430
jmp 0x2010c709
test edx, edx
je 0x2010c519
test r8d, r8d
je 0x2010c589
test r9d, r9d
je 0x2010c609
movzx eax, byte [0x2044db70]
cmp al, 0xcc
je 0x2010c7d9
mov cl, 9
nop word cs:[rax + rax]
mov al, 0x32
lock cmpxchg byte [0x2044db70], cl
je 0x2010c7a9
cmp al, 0xcc
jne 0x2010c480
jmp 0x2010c7d9
test r8d, r8d
je 0x2010c5c9
test r9d, r9d
je 0x2010c639
movzx eax, byte [0x2044dc5c]
cmp al, 0x3c
je 0x2010c819
mov cl, 0xcf
nop dword [rax]
mov al, 0x6b
lock cmpxchg byte [0x2044dc5c], cl
je 0x2010c7e5
cmp al, 0x3c
jne 0x2010c4c0
jmp 0x2010c819
test r9d, r9d
je 0x2010c669
movzx eax, byte [0x2044dd6d]
cmp al, 0xd3
je 0x2010c859
mov cl, 0x96
nop word cs:[rax + rax]
mov al, 0x76
lock cmpxchg byte [0x2044dd6d], cl
je 0x2010c825
cmp al, 0xd3
jne 0x2010c500
jmp 0x2010c859
test r8d, r8d
je 0x2010c699
test r9d, r9d
je 0x2010c715
movzx eax, byte [0x2044dd47]
cmp al, 0xf5
je 0x2010c8f9
mov cl, 0x51
nop dword [rax]
mov al, 0x82
lock cmpxchg byte [0x2044dd47], cl
je 0x2010c8cf
cmp al, 0xf5
jne 0x2010c540
jmp 0x2010c8f9
movzx eax, byte [0x2044dae5]
cmp al, 0x31
je 0x2010c899
mov cl, 0x5e
nop word [rax + rax]
mov al, 0x15
lock cmpxchg byte [0x2044dae5], cl
je 0x2010c865
cmp al, 0x31
jne 0x2010c570
jmp 0x2010c899
test r9d, r9d
je 0x2010c749
movzx eax, byte [0x2044db83]
cmp al, 0xcd
je 0x2010c939
mov cl, 0x23
nop word cs:[rax + rax]
mov al, 0x1d
lock cmpxchg byte [0x2044db83], cl
je 0x2010c905
cmp al, 0xcd
jne 0x2010c5b0
jmp 0x2010c939
test r9d, r9d
je 0x2010c779
movzx eax, byte [0x2044dd02]
cmp al, 0xfd
je 0x2010c979
mov cl, 0x18
nop word cs:[rax + rax]
mov al, 0x96
lock cmpxchg byte [0x2044dd02], cl
je 0x2010c945
cmp al, 0xfd
jne 0x2010c5f0
jmp 0x2010c979
movzx eax, byte [0x2044dccf]
cmp al, 0x54
je 0x2010c9b9
mov cl, 0x6d
nop word [rax + rax]
mov al, 0xf5
lock cmpxchg byte [0x2044dccf], cl
je 0x2010c985
cmp al, 0x54
jne 0x2010c620
jmp 0x2010c9b9
movzx eax, byte [0x2044dd2b]
cmp al, 0xb8
je 0x2010c9f9
mov cl, 0x2b
nop word [rax + rax]
mov al, 0xd6
lock cmpxchg byte [0x2044dd2b], cl
je 0x2010c9c5
cmp al, 0xb8
jne 0x2010c650
jmp 0x2010c9f9
movzx eax, byte [0x2044dbf9]
cmp al, 0x5a
je 0x2010ca99
mov esi, dword [rsp + 0x60]
mov cl, 0x97
nop
mov al, 0xb6
lock cmpxchg byte [0x2044dbf9], cl
je 0x2010ca05
cmp al, 0x5a
jne 0x2010c680
jmp 0x2010ca99
test r9d, r9d
je 0x2010c8a5
movzx eax, byte [0x2044daa2]
cmp al, 0x14
je 0x2010cad9
mov cl, 0x20
nop word cs:[rax + rax]
mov al, 0xd6
lock cmpxchg byte [0x2044daa2], cl
je 0x2010caa5
cmp al, 0x14
jne 0x2010c6c0
jmp 0x2010cad9
xor eax, eax
lea rcx, [0x2044dd10]
lea rdx, [0x20372c90]
nop dword [rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 2
jl 0x2010c6f0
mov al, 0x7e
xchg byte [0x2044dd12], al
lea rax, [0x2044dd10]
jmp 0x2010cbd2
movzx eax, byte [0x2044dca3]
cmp al, 0x36
je 0x2010cb19
mov cl, 0xa2
nop word cs:[rax + rax]
mov al, 0xdf
lock cmpxchg byte [0x2044dca3], cl
je 0x2010cae5
cmp al, 0x36
jne 0x2010c730
jmp 0x2010cb19
movzx eax, byte [0x2044dd95]
cmp al, 0x6f
je 0x2010cb59
mov cl, 0xac
nop word [rax + rax]
mov al, 0x10
lock cmpxchg byte [0x2044dd95], cl
je 0x2010cb25
cmp al, 0x6f
jne 0x2010c760
jmp 0x2010cb59
movzx eax, byte [0x2044dcbb]
cmp al, 0x47
je 0x2010cb99
mov cl, 0x63
nop word [rax + rax]
mov al, 0x2b
lock cmpxchg byte [0x2044dcbb], cl
je 0x2010cb62
cmp al, 0x47
jne 0x2010c790
jmp 0x2010cb99
xor eax, eax
lea rcx, [0x2044db60]
lea rdx, [0x20372ad0]
nop dword [rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0x10
jl 0x2010c7c0
mov al, 0xcc
xchg byte [0x2044db70], al
lea rax, [0x2044db60]
jmp 0x2010cbd2
xor eax, eax
lea rcx, [0x2044dc40]
lea rdx, [0x20372bc0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0x1c
jl 0x2010c800
mov al, 0x3c
xchg byte [0x2044dc5c], al
lea rax, [0x2044dc40]
jmp 0x2010cbd2
xor eax, eax
lea rcx, [0x2044dd60]
lea rdx, [0x20372ce0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0xd
jl 0x2010c840
mov al, 0xd3
xchg byte [0x2044dd6d], al
lea rax, [0x2044dd60]
jmp 0x2010cbd2
xor eax, eax
lea rcx, [0x2044dad0]
lea rdx, [0x20372a40]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0x15
jl 0x2010c880
mov al, 0x31
xchg byte [0x2044dae5], al
lea rax, [0x2044dad0]
jmp 0x2010cbd2
movzx eax, byte [0x2044ddad]
cmp al, 7
je 0x2010cbcb
mov cl, 0x5c
mov al, 0xc
lock cmpxchg byte [0x2044ddad], cl
je 0x2010cba2
cmp al, 7
jne 0x2010c8b6
jmp 0x2010cbcb
xor eax, eax
lea rcx, [0x2044dd40]
lea rdx, [0x20372cc0]
nop
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 7
jl 0x2010c8e0
mov al, 0xf5
xchg byte [0x2044dd47], al
lea rax, [0x2044dd40]
jmp 0x2010cbd2
xor eax, eax
lea rcx, [0x2044db80]
lea rdx, [0x20372ae0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 3
jl 0x2010c920
mov al, 0xcd
xchg byte [0x2044db83], al
lea rax, [0x2044db80]
jmp 0x2010cbd2
xor eax, eax
lea rcx, [0x2044dd00]
lea rdx, [0x20372c80]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 2
jl 0x2010c960
mov al, 0xfd
xchg byte [0x2044dd02], al
lea rax, [0x2044dd00]
jmp 0x2010cbd2
xor eax, eax
lea rcx, [0x2044dcc0]
lea rdx, [0x20372c40]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0xf
jl 0x2010c9a0
mov al, 0x54
xchg byte [0x2044dccf], al
lea rax, [0x2044dcc0]
jmp 0x2010cbd2
xor eax, eax
lea rcx, [0x2044dd20]
lea rdx, [0x20372ca0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0xb
jl 0x2010c9e0
mov al, 0xb8
xchg byte [0x2044dd2b], al
lea rax, [0x2044dd20]
jmp 0x2010cbd2
cmp qword [0x204a1e90], 0
jne 0x2010ca64
mov r9d, esi
xor r9d, 0xb5ab6a3d
mov ecx, 1
mov edx, 1
mov r8d, 4
call fcn.2010af60
mov rdi, rax
mov qword [0x204a1e90], rax
xor esi, 0x199920d0
lea rcx, [0x2010ae20]
mov edx, esi
call fcn.200ec9f0
xor eax, eax
lea rcx, [0x20372b50]
movzx edx, byte [rax + rcx]
mov byte [rdi + rax], dl
inc rax
cmp eax, 2
jle 0x2010ca55
mov rax, qword [0x204a1e90]
xor ecx, ecx
lea rdx, [0x20372b60]
nop word cs:[rax + rax]
movzx r8d, byte [rcx + rdx]
add byte [rax + rcx], r8b
inc rcx
cmp ecx, 3
jl 0x2010ca80
mov al, 0x5a
xchg byte [0x2044dbf9], al
mov rax, qword [0x204a1e90]
jmp 0x2010cbd2
xor eax, eax
lea rcx, [0x2044da90]
lea rdx, [0x20372a00]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0x12
jl 0x2010cac0
mov al, 0x14
xchg byte [0x2044daa2], al
lea rax, [0x2044da90]
jmp 0x2010cbd2
xor eax, eax
lea rcx, [0x2044dc80]
lea rdx, [0x20372c00]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0x23
jl 0x2010cb00
mov al, 0x36
xchg byte [0x2044dca3], al
lea rax, [0x2044dc80]
jmp 0x2010cbd2
xor eax, eax
lea rcx, [0x2044dd80]
lea rdx, [0x20372d00]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0x15
jl 0x2010cb40
mov al, 0x6f
xchg byte [0x2044dd95], al
lea rax, [0x2044dd80]
jmp 0x2010cbd2
xor eax, eax
lea rcx, [0x2044dcb0]
lea rdx, [0x20372c30]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0xb
jl 0x2010cb80
mov al, 0x47
xchg byte [0x2044dcbb], al
lea rax, [0x2044dcb0]
jmp 0x2010cbd2
xor eax, eax
lea rcx, [0x2044dda0]
lea rdx, [0x20372d20]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0xd
jl 0x2010cbb2
mov al, 7
xchg byte [0x2044ddad], al
lea rax, [0x2044dda0]
add rsp, 0x28
pop rdi
pop rsi
ret