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

Disassembly:
push rsi
push rdi
sub rsp, 0x28
test ecx, ecx
je 0x1400fafd9
test edx, edx
je 0x1400fb029
test r8d, r8d
je 0x1400fb069
test r9d, r9d
je 0x1400fb0e9
movzx eax, byte [0x14043cd22]
cmp al, 0x7e
je 0x1400fb299
mov cl, 0x37
nop word cs:[rax + rax]
mov al, 0xd9
lock cmpxchg byte [0x14043cd22], cl
je 0x1400fb269
cmp al, 0x7e
jne 0x1400fafc0
jmp 0x1400fb299
test edx, edx
je 0x1400fb0a9
test r8d, r8d
je 0x1400fb119
test r9d, r9d
je 0x1400fb199
movzx eax, byte [0x14043cb80]
cmp al, 0xcc
je 0x1400fb369
mov cl, 9
nop word cs:[rax + rax]
mov al, 0x32
lock cmpxchg byte [0x14043cb80], cl
je 0x1400fb339
cmp al, 0xcc
jne 0x1400fb010
jmp 0x1400fb369
test r8d, r8d
je 0x1400fb159
test r9d, r9d
je 0x1400fb1c9
movzx eax, byte [0x14043cc6c]
cmp al, 0x3c
je 0x1400fb3a9
mov cl, 0xcf
nop dword [rax]
mov al, 0x6b
lock cmpxchg byte [0x14043cc6c], cl
je 0x1400fb375
cmp al, 0x3c
jne 0x1400fb050
jmp 0x1400fb3a9
test r9d, r9d
je 0x1400fb1f9
movzx eax, byte [0x14043cd7d]
cmp al, 0xd3
je 0x1400fb3e9
mov cl, 0x96
nop word cs:[rax + rax]
mov al, 0x76
lock cmpxchg byte [0x14043cd7d], cl
je 0x1400fb3b5
cmp al, 0xd3
jne 0x1400fb090
jmp 0x1400fb3e9
test r8d, r8d
je 0x1400fb229
test r9d, r9d
je 0x1400fb2a5
movzx eax, byte [0x14043cd57]
cmp al, 0xf5
je 0x1400fb489
mov cl, 0x51
nop dword [rax]
mov al, 0x82
lock cmpxchg byte [0x14043cd57], cl
je 0x1400fb45f
cmp al, 0xf5
jne 0x1400fb0d0
jmp 0x1400fb489
movzx eax, byte [0x14043caf5]
cmp al, 0x31
je 0x1400fb429
mov cl, 0x5e
nop word [rax + rax]
mov al, 0x15
lock cmpxchg byte [0x14043caf5], cl
je 0x1400fb3f5
cmp al, 0x31
jne 0x1400fb100
jmp 0x1400fb429
test r9d, r9d
je 0x1400fb2d9
movzx eax, byte [0x14043cb93]
cmp al, 0xcd
je 0x1400fb4c9
mov cl, 0x23
nop word cs:[rax + rax]
mov al, 0x1d
lock cmpxchg byte [0x14043cb93], cl
je 0x1400fb495
cmp al, 0xcd
jne 0x1400fb140
jmp 0x1400fb4c9
test r9d, r9d
je 0x1400fb309
movzx eax, byte [0x14043cd12]
cmp al, 0xfd
je 0x1400fb509
mov cl, 0x18
nop word cs:[rax + rax]
mov al, 0x96
lock cmpxchg byte [0x14043cd12], cl
je 0x1400fb4d5
cmp al, 0xfd
jne 0x1400fb180
jmp 0x1400fb509
movzx eax, byte [0x14043ccdf]
cmp al, 0x54
je 0x1400fb549
mov cl, 0x6d
nop word [rax + rax]
mov al, 0xf5
lock cmpxchg byte [0x14043ccdf], cl
je 0x1400fb515
cmp al, 0x54
jne 0x1400fb1b0
jmp 0x1400fb549
movzx eax, byte [0x14043cd3b]
cmp al, 0xb8
je 0x1400fb589
mov cl, 0x2b
nop word [rax + rax]
mov al, 0xd6
lock cmpxchg byte [0x14043cd3b], cl
je 0x1400fb555
cmp al, 0xb8
jne 0x1400fb1e0
jmp 0x1400fb589
movzx eax, byte [0x14043cc09]
cmp al, 0x5a
je 0x1400fb629
mov esi, dword [rsp + 0x60]
mov cl, 0x97
nop
mov al, 0xb6
lock cmpxchg byte [0x14043cc09], cl
je 0x1400fb595
cmp al, 0x5a
jne 0x1400fb210
jmp 0x1400fb629
test r9d, r9d
je 0x1400fb435
movzx eax, byte [0x14043cab2]
cmp al, 0x14
je 0x1400fb669
mov cl, 0x20
nop word cs:[rax + rax]
mov al, 0xd6
lock cmpxchg byte [0x14043cab2], cl
je 0x1400fb635
cmp al, 0x14
jne 0x1400fb250
jmp 0x1400fb669
xor eax, eax
lea rcx, [0x14043cd20]
lea rdx, [0x140360c60]
nop dword [rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 2
jl 0x1400fb280
mov al, 0x7e
xchg byte [0x14043cd22], al
lea rax, [0x14043cd20]
jmp 0x1400fb762
movzx eax, byte [0x14043ccb3]
cmp al, 0x36
je 0x1400fb6a9
mov cl, 0xa2
nop word cs:[rax + rax]
mov al, 0xdf
lock cmpxchg byte [0x14043ccb3], cl
je 0x1400fb675
cmp al, 0x36
jne 0x1400fb2c0
jmp 0x1400fb6a9
movzx eax, byte [0x14043cda5]
cmp al, 0x6f
je 0x1400fb6e9
mov cl, 0xac
nop word [rax + rax]
mov al, 0x10
lock cmpxchg byte [0x14043cda5], cl
je 0x1400fb6b5
cmp al, 0x6f
jne 0x1400fb2f0
jmp 0x1400fb6e9
movzx eax, byte [0x14043cccb]
cmp al, 0x47
je 0x1400fb729
mov cl, 0x63
nop word [rax + rax]
mov al, 0x2b
lock cmpxchg byte [0x14043cccb], cl
je 0x1400fb6f2
cmp al, 0x47
jne 0x1400fb320
jmp 0x1400fb729
xor eax, eax
lea rcx, [0x14043cb70]
lea rdx, [0x140360aa0]
nop dword [rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0x10
jl 0x1400fb350
mov al, 0xcc
xchg byte [0x14043cb80], al
lea rax, [0x14043cb70]
jmp 0x1400fb762
xor eax, eax
lea rcx, [0x14043cc50]
lea rdx, [0x140360b90]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0x1c
jl 0x1400fb390
mov al, 0x3c
xchg byte [0x14043cc6c], al
lea rax, [0x14043cc50]
jmp 0x1400fb762
xor eax, eax
lea rcx, [0x14043cd70]
lea rdx, [0x140360cb0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0xd
jl 0x1400fb3d0
mov al, 0xd3
xchg byte [0x14043cd7d], al
lea rax, [0x14043cd70]
jmp 0x1400fb762
xor eax, eax
lea rcx, [0x14043cae0]
lea rdx, [0x140360a10]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0x15
jl 0x1400fb410
mov al, 0x31
xchg byte [0x14043caf5], al
lea rax, [0x14043cae0]
jmp 0x1400fb762
movzx eax, byte [0x14043cdbd]
cmp al, 7
je 0x1400fb75b
mov cl, 0x5c
mov al, 0xc
lock cmpxchg byte [0x14043cdbd], cl
je 0x1400fb732
cmp al, 7
jne 0x1400fb446
jmp 0x1400fb75b
xor eax, eax
lea rcx, [0x14043cd50]
lea rdx, [0x140360c90]
nop
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 7
jl 0x1400fb470
mov al, 0xf5
xchg byte [0x14043cd57], al
lea rax, [0x14043cd50]
jmp 0x1400fb762
xor eax, eax
lea rcx, [0x14043cb90]
lea rdx, [0x140360ab0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 3
jl 0x1400fb4b0
mov al, 0xcd
xchg byte [0x14043cb93], al
lea rax, [0x14043cb90]
jmp 0x1400fb762
xor eax, eax
lea rcx, [0x14043cd10]
lea rdx, [0x140360c50]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 2
jl 0x1400fb4f0
mov al, 0xfd
xchg byte [0x14043cd12], al
lea rax, [0x14043cd10]
jmp 0x1400fb762
xor eax, eax
lea rcx, [0x14043ccd0]
lea rdx, [0x140360c10]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0xf
jl 0x1400fb530
mov al, 0x54
xchg byte [0x14043ccdf], al
lea rax, [0x14043ccd0]
jmp 0x1400fb762
xor eax, eax
lea rcx, [0x14043cd30]
lea rdx, [0x140360c70]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0xb
jl 0x1400fb570
mov al, 0xb8
xchg byte [0x14043cd3b], al
lea rax, [0x14043cd30]
jmp 0x1400fb762
cmp qword [0x1404905a0], 0
jne 0x1400fb5f4
mov r9d, esi
xor r9d, 0xb5ab6a3d
mov ecx, 1
mov edx, 1
mov r8d, 4
call fcn.1400f9af0
mov rdi, rax
mov qword [0x1404905a0], rax
xor esi, 0x199920d0
lea rcx, [0x1400f99b0]
mov edx, esi
call fcn.1400db710
xor eax, eax
lea rcx, [0x140360b20]
movzx edx, byte [rax + rcx]
mov byte [rdi + rax], dl
inc rax
cmp eax, 2
jle 0x1400fb5e5
mov rax, qword [0x1404905a0]
xor ecx, ecx
lea rdx, [0x140360b30]
nop word cs:[rax + rax]
movzx r8d, byte [rcx + rdx]
add byte [rax + rcx], r8b
inc rcx
cmp ecx, 3
jl 0x1400fb610
mov al, 0x5a
xchg byte [0x14043cc09], al
mov rax, qword [0x1404905a0]
jmp 0x1400fb762
xor eax, eax
lea rcx, [0x14043caa0]
lea rdx, [0x1403609d0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0x12
jl 0x1400fb650
mov al, 0x14
xchg byte [0x14043cab2], al
lea rax, [0x14043caa0]
jmp 0x1400fb762
xor eax, eax
lea rcx, [0x14043cc90]
lea rdx, [0x140360bd0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0x23
jl 0x1400fb690
mov al, 0x36
xchg byte [0x14043ccb3], al
lea rax, [0x14043cc90]
jmp 0x1400fb762
xor eax, eax
lea rcx, [0x14043cd90]
lea rdx, [0x140360cd0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0x15
jl 0x1400fb6d0
mov al, 0x6f
xchg byte [0x14043cda5], al
lea rax, [0x14043cd90]
jmp 0x1400fb762
xor eax, eax
lea rcx, [0x14043ccc0]
lea rdx, [0x140360c00]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0xb
jl 0x1400fb710
mov al, 0x47
xchg byte [0x14043cccb], al
lea rax, [0x14043ccc0]
jmp 0x1400fb762
xor eax, eax
lea rcx, [0x14043cdb0]
lea rdx, [0x140360cf0]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0xd
jl 0x1400fb742
mov al, 7
xchg byte [0x14043cdbd], al
lea rax, [0x14043cdb0]
add rsp, 0x28
pop rdi
pop rsi
ret