Function at 0x14008f4ac
Capabilities:
Authenticate hmac
Encode data using xor

Disassembly:
xchg r11, rcx
mov qword [rsp + 8], r11
xchg r11, rcx
nop
mov qword [rsp - 8], rbp
sub rsp, 8
push rbx
mov dword [rsp - 0xc], ecx
nop
mov qword [rsp - 8], rsi
sub rsp, 8
push rdi
mov rsi, rsi
nop
sub rsp, 8
mov qword [rsp], r12
nop
sub rsp, 8
mov qword [rsp], r13
nop
sub rsp, 8
mov qword [rsp], r14
nop
mov qword [rsp - 8], r15
sub rsp, 8
lea rbp, [rsp - 0x138]
add rsp, 0xdc7bc81
sub rsp, 0xdc7beb9
mov r8, rdx
xchg rdi, r12
mov r12, rcx
xchg rdi, r12
xor edx, edx
xchg r9, r9
lea ebx, [rdx + 1]
mov ecx, edx
mov eax, 0x206047ce
xor eax, 0x7ba5ed3
sub eax, 0x276d3954
xor eax, 0x2efb31f0
sub eax, 0x2d090ea
rol eax, cl
mov dword [rsp - 0x44], esp
lea rcx, [0x140001b10]
xor al, byte [rdx + rcx]
mov byte [rsp + rdx + 0x10], al
mov dword [rsp - 0x3c], 0x7441eb20
add rdx, rbx
cmp rdx, 0x211
jb 0x14008f523
mov dword [rsp - 0x24], 0x312581aa
xor dl, dl
lea r11, [rsp + 0x10]
xor r12b, r12b
mov byte [rsp + 4], dl
mov r9, r9
xor eax, eax
mov dword [rsp], r12d
xchg rdi, r14
mov r9, r14
xchg r14, rdi
mov r10b, 0x36
sub r10b, 0x2c
add r10b, 0x19
add r10b, 0x3e
sub r10b, 0x51
mov rdi, r8
mov dword [rsp - 0xc], esi
lea ecx, [rax + 0x25]
rep stosb byte [rdi], al
lea esi, [rax + 4]
movzx edi, byte [r9]
mov dword [rsp - 0x28], 0x7b94c69d
add r9, rbx
mov ecx, edi
cmp edi, 0x65
ja 0x14008f62a
mov r11, r11
nop
add ecx, 0x89b2c62d
sub ecx, 0x89b2c653
cmp ecx, 0x3f
xchg r11, r11
ja 0x14008f6d5
movabs rax, 0xc000000007f7e2ce
xor rax, 0x3aabf072
add rax, 0x2df33fcd
sub rax, 0x4b07be81
sub rax, 0x1f469307
bt rax, rcx
jae 0x14008f6d5
mov rbp, rbp
mov byte [r8 + 3], dil
mov al, 0x27
sub al, 0x13
xor al, 0x60
sub al, 0x34
jmp 0x14008f6c6
sub ecx, 0x66
je 0x14008f6b8
mov dword [rsp - 0x24], 0xffbe83a
sub ecx, ebx
je 0x14008f69d
sub ecx, 0x89
xchg r14, r14
je 0x14008f68a
sub ecx, 2
je 0x14008f677
mov dword [rsp - 0x24], ebx
cmp ecx, ebx
jne 0x14008f6d5
mov byte [r8 + 1], dil
mov dword [rsp - 0x20], ecx
mov al, sil
jmp 0x14008f6c6
mov byte [r8 + 1], dil
mov al, 0x6d
add al, 8
add al, 4
xor al, 0x27
xor al, 0x5c
jmp 0x14008f6c6
mov byte [r8 + 2], dil
mov al, 0x19
xor al, 0x75
sub al, 0x61
xor al, 0x58
sub al, 0x33
jmp 0x14008f6c6
mov byte [r8 + 5], dil
mov dword [rsp - 0x34], 0x72d086a5
mov al, 0x6a
sub al, 0x24
xor al, 0xb
add al, 0x1c
sub al, 0x59
jmp 0x14008f6c6
mov byte [r8 + 4], dil
mov al, 0x68
sub al, 2
add al, 0x10
xor al, 0x1e
xor al, 0x60
or dl, al
add r10b, 0xff
mov r14, r14
jne 0x14008f5b4
movzx eax, dl
mov ecx, ebx
movzx r10d, dl
mov dword [rsp - 0x24], 0x2bffe5ed
shl r10d, 0xf
shl r10d, 1
shl r10d, 3
shl r10d, 1
shl r10d, 2
shl r10d, 1
test dl, dl
mov dword [rsp - 0x24], edx
mov dword [r8 + 0x21], r10d
cmovne ecx, eax
mov al, dil
xchg r10, r10
and al, 0xf0
cmp al, 0x40
jne 0x14008f7b6
bts r10d, 0x1e
mov dword [rsp - 0x2c], 0x16390be5
mov al, dil
shr al, 2
shr al, 1
and al, bl
mov dword [rsp - 0x28], 0x33df2256
mov dword [r8 + 0x21], r10d
mov byte [r8 + 7], al
je 0x14008f75f
mov al, byte [r9]
xchg rdi, rdi
and al, 0xf8
movzx r12d, r12b
cmp al, 0xb8
cmove r12d, ebx
mov dword [rsp - 0x20], esp
mov dword [rsp], r12d
mov al, dil
shr al, 2
and al, bl
mov dword [rsp - 0x38], edx
mov byte [r8 + 8], al
mov al, dil
shr al, 1
mov dword [rsp - 0x2c], ebp
and dil, bl
and al, bl
mov byte [r8 + 0xa], dil
mov byte [r8 + 9], al
mov dword [rsp - 0x30], 0x397c5a09
mov dil, byte [r9]
add r9, rbx
mov al, dil
mov dword [rsp - 0x20], ecx
and al, 0xf0
cmp al, 0x40
jne 0x14008f7b6
mov byte [rbp + 0x198], dil
mov r10, r10
mov sil, cl
jmp 0x14008f866
mov byte [r8 + 0xb], dil
mov sil, cl
cmp dil, 0xf
mov dword [rsp - 0x24], edx
jne 0x14008f7e2
mov dil, byte [r9]
lea r11, [rsp + 0x5a]
mov byte [r8 + 0xc], dil
mov rsi, rsi
add r9, rbx
jmp 0x14008f826
cmp dil, 0xa0
jb 0x14008f826
cmp dil, 0xa3
mov dword [rsp - 0x34], 0x4b0570b9
ja 0x14008f826
add r12b, bl
mov dword [rsp], r12d
mov rdi, rdi
test cl, 0x10
je 0x14008f822
or sil, 8
mov dword [rsp - 0x34], 0x6cb0967b
jmp 0x14008f826
and sil, 0xf7
movzx edx, dil
mov dword [rsp - 0x18], 0x137a630f
mov eax, edx
mov byte [rbp + 0x198], dil
shr rax, 1
shr rax, 1
and edx, 3
movzx eax, byte [rax + r11]
mov dword [rsp - 0xc], 0x58cd97a0
add rax, r11
mov r14b, byte [rdx + rax]
cmp r14b, 0xff
jne 0x14008f8a4
mov dword [rsp - 0x40], esp
or r10d, 0x3000
movzx eax, dil
and eax, 0xfffffffd
mov dword [r8 + 0x21], r10d
mov dword [rsp - 0xc], edx
xor r14b, r14b
cmp al, 0x24
jne 0x14008f8a4
mov dword [rsp - 0xc], 0x328a6b59
mov r14b, bl
mov r13b, dil
xor bl, bl
mov dword [rsp - 0xc], 0x7f090c2b
jmp 0x14008f8d6
xor bl, bl
mov r13b, dil
test r14b, r14b
mov dword [rsp - 0x20], 0x349cb84d
jns 0x14008f8d6
movzx eax, r14b
and eax, 0x7f
movzx r14d, word [rax + r11]
mov dword [rsp - 0x40], ebx
movzx ebx, r14w
shr bx, 3
shr bx, 5
mov r15b, byte [r8 + 0xc]
mov r11d, r10d
test r15b, r15b
mov dword [rsp - 0x40], 0x1e7f0620
je 0x14008f927
movzx edx, dil
mov eax, edx
mov dword [rsp - 0x14], ecx
and edx, 3
shr rax, 2
movzx ecx, byte [rbp + rax + 0x4c]
mov dword [rsp - 0xc], edi
lea rax, [rbp + 0x4c]
add rax, rdx
test byte [rax + rcx], sil
je 0x14008f927
xchg rdi, rdi
or r11d, 0x3000
mov dword [r8 + 0x21], r11d
test r14b, 1
je 0x14008ff88
mov dword [rsp - 0x3c], esi
or r11d, 1
mov dword [r8 + 0x21], r11d
mov edi, r11d
mov dword [rsp - 0x18], 0x54e5fca8
mov r12b, byte [r9]
mov dl, r12b
mov byte [r8 + 0xd], r12b
mov cl, r12b
mov dword [rsp - 0x44], 0x42a2e436
shr dl, 3
shr dl, 1
shr dl, 1
shr dl, 1
and cl, 7
xchg r12, r12
shr r12b, 2
shr r12b, 1
and r12b, 7
mov byte [rbp + 0x190], dl
mov dword [rsp - 0x10], edx
mov byte [r8 + 0xe], dl
mov byte [rbp + 0x188], cl
mov byte [r8 + 0x10], cl
mov dword [rsp - 0x18], ebp
mov byte [r8 + 0xf], r12b
test bl, bl
je 0x14008f9cd
mov r15, r15
mov cl, r12b
movzx eax, bl
shl eax, cl
mov cl, byte [rbp + 0x188]
mov dword [rsp - 0x14], 0x4eb05ec7
test al, al
jns 0x14008f9cd
or edi, 0x3000
mov dword [r8 + 0x21], edi
mov r12, r12
mov r10b, byte [rbp + 0x198]
mov eax, edi
test r15b, r15b
mov dword [rsp - 0x18], 0xc540f3a
jne 0x14008fa69
cmp r10b, 0xd9
jb 0x14008fa69
mov dword [rsp - 0x44], 0x46b1c8ff
cmp r10b, 0xdf
ja 0x14008fa69
lea eax, [r10 + 0x27]
mov rbx, rbx
movzx r10d, al
cmp dl, 3
jne 0x14008fa38
movzx eax, r12b
xchg r15, r15
lea rdx, [rbp + 0x14]
add rdx, rax
mov r10b, byte [rdx + r10*8]
mov dl, byte [rbp + 0x190]
mov dword [rsp - 0x44], edx
jmp 0x14008fa40
mov r10b, byte [rbp + r10 + 0xd]
mov cl, r12b
shl r10b, cl
mov dword [rsp - 0x3c], 0x313dc6a1
mov eax, edi
test r10b, r10b
mov r10b, byte [rbp + 0x198]
mov r14, r14
jns 0x14008fa69
or eax, 0x3000
mov dword [r8 + 0x21], eax
test sil, 0x20
mov rcx, rcx
je 0x14008fb1f
cmp dl, 3
jne 0x14008fa91
mov dword [rsp - 0x3c], esp
or eax, 0x9000
mov dword [r8 + 0x21], eax
jmp 0x14008fb1f
mov dl, r10b
mov dword [rsp - 0x40], 0x6c24ac5c
test r15b, r15b
jne 0x14008fab0
and dl, 0xfe
mov dword [rsp - 0x38], 0x7dd1bff5
test r15b, r15b
lea rax, [rbp + 0xe8]
lea rdi, [rbp + 0xd6]
cmovne rdi, rax
xchg r10, r10
lea rcx, [rbp + 0xbe]
lea rax, [rbp + 0xd6]
cmovne rcx, rax
jmp 0x14008faee
cmp byte [rcx], dl
je 0x14008faff
xchg r8, r8
add rcx, 2
cmp rcx, rdi
jne 0x14008fadf
mov rsp, rsp
jmp 0x14008fb14
movzx eax, byte [rcx + 1]
mov cl, r12b
mov dword [rsp - 0x24], esi
shl eax, cl
test al, al
jns 0x14008fb1f
or dword [r8 + 0x21], 0x9000
xchg r8, r8
movzx ecx, r13b
mov bl, 7
add bl, 0x5e
sub bl, 0x10
sub bl, 0x30
xor bl, 0x20
mov edx, ecx
mov dword [rsp - 0x10], edi
test r15b, r15b
je 0x14008fbe0
sub edx, 0x20
je 0x14008fb9b
mov dword [rsp - 0x3c], 0x2a9174dc
sub edx, 1
je 0x14008fb6f
sub edx, 1
mov rbp, rbp
je 0x14008fb9b
cmp edx, 1
jne 0x14008fbf8
lea eax, [r12 - 4]
mov rbx, rbx
mov r11b, 0x6e
xor r11b, 0x27
sub r11b, 0x17
sub r11b, 0x32
add r11b, 3
cmp al, 1
mov dword [rsp - 0x24], ebp
ja 0x14008fd4c
jmp 0x14008fd41
mov ecx, 0x3e2ea32c
add ecx, 0xb539897
sub ecx, 0x515300f
sub ecx, 0x446d0bb0
mov r11b, 0x50
add r11b, 0x29
sub r11b, 0x59
xor r11b, 0x23
cmp r12b, cl
mov dword [rsp - 0x38], ecx
ja 0x14008fd41
cmp r12b, 1
jne 0x14008fd4c
mov r14, r14
jmp 0x14008fd41
sub edx, 0x8c
mov r8, r8
je 0x14008fd2e
cmp edx, 2
je 0x14008fd10
mov r11b, byte [rbp + 0x190]
mov dword [rsp - 0x18], edx
cmp r11b, 3
jne 0x14008fcac
test r15b, r15b
mov dword [rsp - 0x34], 0x6588baac
je 0x14008fc47
lea rdx, [rbp + 0x121]
lea rax, [rbp + 0xf7]
xchg r11, r11
lea rcx, [rbp + 0xf7]
cmp rax, rdx
je 0x14008fd4c
xchg r9, r9
jmp 0x14008fc59
lea rdx, [rbp + 0xf7]
lea rcx, [rbp + 0xe8]
mov dword [rsp - 0x18], ebx
cmp byte [rcx], r10b
je 0x14008fc7c
sub rcx, 0xfffffffffffffffd
cmp rcx, rdx
mov dword [rsp - 0x30], 0x666b006d
jne 0x14008fc59
jmp 0x14008fd4c
test byte [rcx + 1], sil
mov dword [rsp - 0x20], 0x32d35948
je 0x14008fd4c
movzx eax, byte [rcx + 2]
mov cl, r12b
shl eax, cl
mov dword [rsp - 0x40], 0xceea543
test al, al
jns 0x14008fd41
jmp 0x14008fd4c
test r15b, r15b
je 0x14008fd4c
sub ecx, 0x50
mov dword [rsp - 0x44], 0x779c4b88
je 0x14008fcf5
sub ecx, 0x75
je 0x14008fd41
mov dword [rsp - 0x24], 0x50378dc1
sub ecx, 0x11
je 0x14008fd07
sub ecx, 1
mov rcx, rcx
je 0x14008fcf5
cmp ecx, 0x20
jne 0x14008fd4c
test sil, 9
mov r13, r13
jne 0x14008fd41
jmp 0x14008fd4c
test sil, 6
jmp 0x14008fcfc
mov r11b, byte [rbp + 0x190]
cmp r12b, 1
mov dword [rsp - 0x38], 0xf05d6d7
je 0x14008fd41
jmp 0x14008fd38
mov r11b, byte [rbp + 0x190]
mov r9, r9
cmp r12b, bl
jbe 0x14008fd4c
or dword [r8 + 0x21], 0x11000
xchg r8, r8
mov dl, byte [r9 + 1]
add r9, 2
cmp r12b, 1
ja 0x14008fd8b
mov dword [rsp - 0x3c], 0x3f29c49b
cmp r10b, 0xf6
jne 0x14008fd79
or r14b, 2
jmp 0x14008fd8b
cmp r10b, 0xf7
mov dword [rsp - 0x3c], edx
jne 0x14008fd8b
or r14b, 0x10
mov al, byte [rbp + 0x188]
mov rdx, rdx
movzx ecx, r11b
test r11b, r11b
je 0x14008fe3c
sub ecx, 1
xchg r11, r11
je 0x14008fe07
cmp ecx, 1
pushf
mov ecx, 0xa638d25
xor ecx, 0x1cd63b13
add ecx, 0x2af175d7
sub ecx, 0x1a6a1667
sub ecx, 0x273d15a2
popf
jne 0x14008fe9b
xchg r9, r9
mov dil, 0x65
xor dil, 0x2c
xor dil, 0x4d
add dil, 0xb
sub dil, 0xd
test sil, 0x10
jne 0x14008fea2
mov dword [rsp - 0x40], 0x543a5813
mov dil, cl
jmp 0x14008fea2
mov dil, 0x53
sub dil, 0x53
add dil, 0x5f
xor dil, 0x22
sub dil, 0x7c
mov ecx, 0x2e8515c3
add ecx, 0x4a11cd5e
xor ecx, 0x64c3803b
add ecx, 0x4a098574
sub ecx, 0x665ee88a
jmp 0x14008fea2
mov ecx, 0x68feb9e0
xor ecx, 0x4d25bbf2
xor ecx, 0x16a23304
add ecx, 0x3ad2d843
xor ecx, 0x6e4c095d
test sil, 0x10
mov dword [rsp - 0x2c], esp
je 0x14008fe81
cmp al, 6
setne dil
mov dword [rsp - 0x38], 0x7e7162e9
dec dil
and dil, 2
jmp 0x14008fea2
mov edi, dword [rsp + 4]
cmp al, bl
movzx edi, dil
mov dword [rsp - 0x18], 0x3b02960a
cmove edi, ecx
jmp 0x14008fea2
mov edi, dword [rsp + 4]
mov rcx, rcx
cmp r11b, 3
je 0x14008ff11
cmp al, cl
jne 0x14008ff11
mov dword [rsp - 0x28], 0x7999b0e2
or dword [r8 + 0x21], 2
mov al, dl
shr al, 1
shr al, 5
inc r9
mov dword [rsp - 0x10], 0x3c9486a2
mov byte [r8 + 0x12], al
mov al, dl
shr al, 1
shr al, 1
shr al, 1
and al, 7
mov byte [r8 + 0x11], dl
mov dword [rsp - 0x40], 0x6c7dfbf7
and dl, 7
mov byte [r8 + 0x13], al
mov byte [r8 + 0x14], dl
cmp dl, bl
mov rdx, rdx
jne 0x14008ff11
test r11b, 1
movzx edi, dil
cmove edi, ecx
mov r11, r11
dec r9
movzx ecx, dil
sub ecx, 1
xchg r15, r15
je 0x14008ff66
sub ecx, 1
je 0x14008ff4f
xchg rdi, rdi
cmp ecx, 2
jne 0x14008ff75
bts dword [r8 + 0x21], 8
mov eax, dword [r9]
mov dword [rsp - 0x18], ecx
mov dword [r8 + 0x1d], eax
jmp 0x14008ff75
bts dword [r8 + 0x21], 7
movzx eax, word [r9]
mov word [r8 + 0x1d], ax
mov rbp, rbp
jmp 0x14008ff75
or dword [r8 + 0x21], 0x40
mov al, byte [r9]
xchg r13, r13
mov byte [r8 + 0x1d], al
mov r12d, dword [rsp]
movzx eax, dil
mov r12, r12
add r9, rax
jmp 0x14008ffa1
test sil, 0x20
je 0x14008ffa1
or r11d, 0x9000
mov dword [rsp - 0x2c], ecx
mov dword [r8 + 0x21], r11d
test r14b, 0x10
je 0x140090039
mov rcx, rcx
test r14b, 0x40
je 0x140090015
test sil, 8
mov dword [rsp - 0x38], ebx
je 0x14008fff3
or dword [r8 + 0x21], 0x208
movzx eax, word [r9]
mov dword [rsp - 0x38], 0x6fb8ae1
nop
sub r9, 0x25f63dca
add r9, 0x25f63dcc
mov word [r8 + 0x15], ax
jmp 0x14009012c
mov ecx, 0x32bbac87
xor ecx, 0x55055170
sub ecx, 0x5464781e
xor ecx, 0x74fe567
xor ecx, 0x141560ba
jmp 0x1400900ac
test r12b, r12b
je 0x1400900ce
xchg r13, r13
or dword [r8 + 0x21], 0x20
xchg rsp, rax
mov rsp, qword [r9]
xchg rsp, rax
add r9, 8
xchg r15, rax
mov qword [r8 + 0x15], r15
xchg r15, rax
mov ecx, 0x48175caa
add ecx, 0x1d3334d9
sub ecx, 0x29b21f65
sub ecx, 0x1569865b
sub ecx, 0x262eebbf
test cl, r14b
je 0x14009007f
mov dword [rsp - 0x30], 0x41eacc16
or dword [r8 + 0x21], 8
movzx eax, word [r9]
neg r9
add r9, 0xfffffffffffffffe
neg r9
mov word [r8 + 0x15], ax
test r14b, 2
xchg rcx, rcx
je 0x1400900a2
or dword [r8 + 0x21], ecx
mov al, byte [r9]
inc r9
mov dword [rsp - 0x18], 0x756fa28c
mov byte [r8 + 0x15], al
test r14b, 0x40
je 0x140090109
or dword [r8 + 0x21], 0x210
mov r12, r12
mov eax, dword [r9]
add r9, rcx
mov dword [r8 + 0x15], eax
mov dword [rsp - 0x34], 0x3e67ebb1
jmp 0x14009012c
mov ecx, 0x37e57d6a
xor ecx, 0x2571cd1a
add ecx, 0x3bffcaa3
xor ecx, 0x4e947b17
test sil, 8
xchg rcx, rcx
jne 0x140090067
or dword [r8 + 0x21], 0x10
mov eax, dword [r9]
mov r14, r14
add r9, rcx
mov dword [r8 + 0x15], eax
jmp 0x140090056
test r14b, 0x20
mov dword [rsp - 0x38], ebp
je 0x14009012c
or dword [r8 + 0x21], 0x204
mov al, byte [r9]
mov r13, r13
inc r9
mov byte [r8 + 0x15], al
sub r9b, byte [rbp + 0x180]
mov byte [r8], r9b
mov r11, r11
cmp r9b, 0xf
jbe 0x140090172
or dword [r8 + 0x21], 0x5000
mov r9b, 0x4b
sub r9b, 0x3f
add r9b, 0x22
add r9b, 0x3a
sub r9b, 0x59
mov byte [r8], 9
add byte [r8], 0x37
sub byte [r8], 0x2b
xor byte [r8], 0xa
xor byte [r8], 0x10
xor eax, eax
mov dword [rsp - 0x1c], edi
lea rdi, [rsp + 0x10]
mov ecx, 0x7e4bd3a0
sub ecx, 0x2b05622
sub ecx, 0x1962722d
sub ecx, 0x14824515
sub ecx, 0x4db6c42b
rep stosb byte [rdi], al
movzx eax, r9b
sub rsp, 0x298bebac
add rsp, 0x298bede4
pop r15
nop
mov r14, qword [rsp]
add rsp, 8
pop r13
mov dword [rsp - 0x18], edx
nop
mov r12, qword [rsp]
add rsp, 8
pop rdi
mov dword [rsp - 0xc], 0x2302caf9
pop rsi
nop
add rsp, 8
mov rbx, qword [rsp - 8]
nop
mov rbp, qword [rsp]
add rsp, 8
ret