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

Disassembly:
mov qword [rsp + 8], rcx
nop
mov qword [rsp - 8], rbp
sub rsp, 8
nop
mov qword [rsp - 8], rbx
sub rsp, 8
push rsi
mov dword [rsp - 0x20], 0x7c9f4297
nop
sub rsp, 8
mov qword [rsp], rdi
nop
mov qword [rsp - 8], r12
sub rsp, 8
nop
sub rsp, 8
mov qword [rsp], r13
nop
sub rsp, 8
mov qword [rsp], r14
push r15
xchg rbx, rbx
lea rbp, [rsp - 0x138]
add rsp, 0xfffffffffffffdc8
mov r8, rdx
xchg rdi, rcx
mov rcx, rdi
xchg rdi, rcx
xor edx, edx
mov dword [rsp - 0x20], 0x6e236e24
lea ebx, [rdx + 1]
mov ecx, edx
mov eax, 0x18ba7530
add eax, 0x16f8a85
add eax, 0x1d912dfd
xor eax, 0x77ef3066
rol eax, cl
lea rcx, [0x140001b10]
mov r14, r14
xor al, byte [rdx + rcx]
mov byte [rsp + rdx + 0x10], al
add rdx, rbx
xchg r15, r15
cmp rdx, 0x211
jb 0x140090ab4
xor dl, dl
mov r11, r11
lea r11, [rsp + 0x10]
xor r12b, r12b
mov byte [rsp + 4], dl
xor eax, eax
mov r10, r10
mov dword [rsp], r12d
xchg r9, rdi
mov rdi, r9
xchg rdi, r9
mov r10b, 0x16
sub r10b, 5
add r10b, 0x1b
xor r10b, 0x47
xor r10b, 0x7b
xchg rdi, rsp
mov rsp, r8
xchg rsp, rdi
lea ecx, [rax + 0x25]
rep stosb byte [rdi], al
mov dword [rsp - 0x28], 0x3ebf2215
lea esi, [rax + 4]
movzx edi, byte [r9]
add r9, rbx
mov ecx, edi
mov r15, r15
cmp edi, 0x65
ja 0x140090ba9
neg ecx
add ecx, 0x26
neg ecx
cmp ecx, 0x3f
mov dword [rsp - 0x14], ebp
ja 0x140090c55
movabs rax, 0xc00000003612874f
xor rax, 0x1fb0cc23
sub rax, 0x265b8c57
xor rax, 0x247be14
bt rax, rcx
mov dword [rsp - 0x44], 0x9016f5e
jae 0x140090c55
mov byte [r8 + 3], dil
mov al, 0x47
add al, 4
add al, 6
sub al, 0x47
add al, 0x36
jmp 0x140090c46
sub ecx, 0x66
mov dword [rsp - 0x1c], ebp
je 0x140090c38
sub ecx, ebx
je 0x140090c1d
sub ecx, 0x89
xchg r13, r13
je 0x140090c08
sub ecx, 2
je 0x140090bf2
mov dword [rsp - 0x28], ebp
cmp ecx, ebx
jne 0x140090c55
mov byte [r8 + 1], dil
mov al, sil
mov dword [rsp - 0x10], ecx
jmp 0x140090c46
mov byte [r8 + 1], dil
mov r15, r15
mov al, 0x77
sub al, 0x43
sub al, 4
sub al, 0x25
sub al, 9
jmp 0x140090c46
mov byte [r8 + 2], dil
mov dword [rsp - 0x1c], ecx
mov al, 0x16
add al, 0x57
sub al, 0xe
sub al, 0x3f
jmp 0x140090c46
mov byte [r8 + 5], dil
mov dword [rsp - 0x14], 0x4474025
mov al, 0x72
sub al, 0x44
sub al, 0x10
add al, 0x24
sub al, 0x32
jmp 0x140090c46
mov byte [r8 + 4], dil
mov al, 0x6d
sub al, 0x58
add al, 0x4d
sub al, 9
sub al, 0x51
or dl, al
mov rdx, rdx
add r10b, 0xff
jne 0x140090b3f
movzx eax, dl
mov r8, r8
mov ecx, ebx
movzx r10d, dl
shl r10d, 7
shl r10d, 2
shl r10d, 5
shl r10d, 5
shl r10d, 3
shl r10d, 1
test dl, dl
mov dword [rsp - 0x24], esp
mov dword [r8 + 0x21], r10d
cmovne ecx, eax
mov al, dil
and al, 0xf0
xchg rcx, rcx
cmp al, 0x40
jne 0x140090d25
bts r10d, 0x1e
mov dword [rsp - 0xc], 0x9f3e78f
mov al, dil
shr al, 3
and al, bl
mov dword [r8 + 0x21], r10d
mov dword [rsp - 0x28], esi
mov byte [r8 + 7], al
je 0x140090cd5
mov al, byte [r9]
mov r9, r9
and al, 0xf8
movzx r12d, r12b
cmp al, 0xb8
cmove r12d, ebx
mov rdx, rdx
mov dword [rsp], r12d
mov al, dil
shr al, 2
and al, bl
mov dword [rsp - 0x28], edx
mov byte [r8 + 8], al
mov al, dil
shr al, 1
xchg r13, r13
and dil, bl
and al, bl
mov byte [r8 + 0xa], dil
xchg rcx, rcx
mov byte [r8 + 9], al
mov dil, byte [r9]
add r9, rbx
mov al, dil
mov r10, r10
and al, 0xf0
cmp al, 0x40
jne 0x140090d25
mov rsp, rsp
mov byte [rbp + 0x198], dil
mov sil, cl
jmp 0x140090dc1
mov byte [r8 + 0xb], dil
mov sil, cl
mov r13, r13
cmp dil, 0xf
jne 0x140090d50
mov dil, byte [r9]
xchg rcx, rcx
lea r11, [rsp + 0x5a]
mov byte [r8 + 0xc], dil
add r9, rbx
jmp 0x140090d8c
cmp dil, 0xa0
mov dword [rsp - 0x30], ebp
jb 0x140090d8c
cmp dil, 0xa3
ja 0x140090d8c
add r12b, bl
mov r12, r12
mov dword [rsp], r12d
test cl, 0x10
je 0x140090d88
mov dword [rsp - 0x20], ebp
or sil, 8
jmp 0x140090d8c
and sil, 0xf7
movzx edx, dil
mov dword [rsp - 0x30], esp
mov eax, edx
mov byte [rbp + 0x198], dil
shr rax, 2
mov dword [rsp - 0x18], esi
and edx, 3
movzx eax, byte [rax + r11]
add rax, r11
mov r14b, byte [rdx + rax]
xchg rsp, rsp
cmp r14b, 0xff
jne 0x140090dfa
or r10d, 0x3000
mov dword [rsp - 0x34], edx
movzx eax, dil
and eax, 0xfffffffd
mov dword [r8 + 0x21], r10d
xor r14b, r14b
mov r10, r10
cmp al, 0x24
jne 0x140090dfa
mov r14b, bl
mov dword [rsp - 0xc], 0x479ba56a
mov r13b, dil
xor bl, bl
jmp 0x140090e2a
xor bl, bl
mov r13b, dil
mov rsi, rsi
test r14b, r14b
jns 0x140090e2a
movzx eax, r14b
mov rbp, rbp
and eax, 0x7f
movzx r14d, word [rax + r11]
movzx ebx, r14w
mov dword [rsp - 0x2c], 0x194e1b9c
shr bx, 8
mov r15b, byte [r8 + 0xc]
mov r11d, r10d
test r15b, r15b
mov r14, r14
je 0x140090e77
movzx edx, dil
mov eax, edx
mov dword [rsp - 0x28], ebx
and edx, 3
shr rax, 1
shr rax, 1
movzx ecx, byte [rbp + rax + 0x4c]
mov r10, r10
lea rax, [rbp + 0x4c]
add rax, rdx
test byte [rax + rcx], sil
je 0x140090e77
mov r11, r11
or r11d, 0x3000
mov dword [r8 + 0x21], r11d
test r14b, 1
je 0x1400914c7
mov r13, r13
or r11d, 1
mov dword [r8 + 0x21], r11d
mov edi, r11d
mov dword [rsp - 0x18], 0x55c8ec5e
mov r12b, byte [r9]
mov dl, r12b
mov byte [r8 + 0xd], r12b
mov cl, r12b
mov dword [rsp - 0x38], 0x4b8f1a37
shr dl, 5
shr dl, 1
and cl, 7
shr r12b, 3
mov dword [rsp - 0x14], edx
and r12b, 7
mov byte [rbp + 0x190], dl
mov byte [r8 + 0xe], dl
xchg r13, r13
mov byte [rbp + 0x188], cl
mov byte [r8 + 0x10], cl
mov byte [r8 + 0xf], r12b
test bl, bl
mov dword [rsp - 0x18], 0x1dea6d92
je 0x140090f16
mov cl, r12b
movzx eax, bl
shl eax, cl
xchg rdi, rdi
mov cl, byte [rbp + 0x188]
test al, al
jns 0x140090f16
or edi, 0x3000
mov dword [rsp - 0x18], 0x2f814958
mov dword [r8 + 0x21], edi
mov r10b, byte [rbp + 0x198]
mov eax, edi
test r15b, r15b
xchg rsi, rsi
jne 0x140090fb6
cmp r10b, 0xd9
jb 0x140090fb6
mov dword [rsp - 0x1c], esi
cmp r10b, 0xdf
ja 0x140090fb6
lea eax, [r10 + 0x27]
mov dword [rsp - 0x34], 0x1bae96f7
movzx r10d, al
cmp dl, 3
jne 0x140090f81
mov dword [rsp - 0x30], 0x3d2e14da
movzx eax, r12b
lea rdx, [rbp + 0x14]
add rdx, rax
xchg r14, r14
mov r10b, byte [rdx + r10*8]
mov dl, byte [rbp + 0x190]
jmp 0x140090f91
mov r10b, byte [rbp + r10 + 0xd]
mov cl, r12b
mov dword [rsp - 0x10], 0x4b3f8389
shl r10b, cl
mov eax, edi
test r10b, r10b
mov r10b, byte [rbp + 0x198]
xchg rcx, rcx
jns 0x140090fb6
or eax, 0x3000
mov dword [r8 + 0x21], eax
mov dword [rsp - 0x40], ebp
test sil, 0x20
je 0x140091065
cmp dl, 3
jne 0x140090fdb
mov dword [rsp - 0x10], edx
or eax, 0x9000
mov dword [r8 + 0x21], eax
jmp 0x140091065
mov dl, r10b
test r15b, r15b
jne 0x140090ff2
mov dword [rsp - 0x2c], 0x7843b979
and dl, 0xfe
test r15b, r15b
lea rax, [rbp + 0xe8]
lea rdi, [rbp + 0xd6]
xchg r14, r14
cmovne rdi, rax
lea rcx, [rbp + 0xbe]
lea rax, [rbp + 0xd6]
cmovne rcx, rax
mov dword [rsp - 0x20], esp
jmp 0x140091035
cmp byte [rcx], dl
mov dword [rsp - 0x1c], edx
je 0x140091046
sub rcx, 0xfffffffffffffffe
cmp rcx, rdi
xchg rcx, rcx
jne 0x140091025
jmp 0x14009105d
movzx eax, byte [rcx + 1]
mov r13, r13
mov cl, r12b
shl eax, cl
test al, al
jns 0x140091065
mov r12, r12
or dword [r8 + 0x21], 0x9000
movzx ecx, r13b
mov bl, 0
xor bl, 4
add bl, 0x5a
sub bl, 0x34
xor bl, 0x2f
mov edx, ecx
test r15b, r15b
mov rdi, rdi
je 0x140091128
sub edx, 0x20
je 0x1400910d8
sub edx, 1
mov dword [rsp - 0x3c], 0x2065e4cd
je 0x1400910b4
sub edx, 1
je 0x1400910d8
cmp edx, 1
xchg rdx, rdx
jne 0x140091140
lea eax, [r12 - 4]
mov r11b, 0x17
add r11b, 0x4c
sub r11b, 0x23
xor r11b, 0x43
cmp al, 1
ja 0x140091291
xchg r13, r13
jmp 0x140091289
mov ecx, 0x16b32087
add ecx, 0x1d8e4dad
sub ecx, 0x1454cda7
sub ecx, 0xafc0ce3
xor ecx, 0x14f093ae
mov r11b, 0x27
add r11b, 0x47
xor r11b, 0x76
xor r11b, 0x40
sub r11b, 0x55
cmp r12b, cl
ja 0x140091289
mov dword [rsp - 0x10], 0x7d3d3ff8
cmp r12b, 1
jne 0x140091291
jmp 0x140091289
sub edx, 0x8c
je 0x140091271
mov rdx, rdx
cmp edx, 2
je 0x140091257
mov r11b, byte [rbp + 0x190]
mov dword [rsp - 0x20], ebx
cmp r11b, 3
jne 0x1400911f2
test r15b, r15b
je 0x14009118c
mov dword [rsp - 0x28], 0x1a50665d
lea rdx, [rbp + 0x121]
lea rax, [rbp + 0xf7]
lea rcx, [rbp + 0xf7]
mov rsp, rsp
cmp rax, rdx
je 0x140091291
jmp 0x14009119a
lea rdx, [rbp + 0xf7]
lea rcx, [rbp + 0xe8]
cmp byte [rcx], r10b
mov dword [rsp - 0x28], esp
je 0x1400911c7
neg rcx
add rcx, 0xfffffffffffffffd
neg rcx
cmp rcx, rdx
jne 0x14009119a
mov dword [rsp - 0x20], 0x17ec4db2
jmp 0x140091291
test byte [rcx + 1], sil
je 0x140091291
movzx eax, byte [rcx + 2]
mov dword [rsp - 0x34], 0x7b0d4067
mov cl, r12b
shl eax, cl
test al, al
mov r15, r15
jns 0x140091289
jmp 0x140091291
test r15b, r15b
mov r15, r15
je 0x140091291
sub ecx, 0x50
je 0x140091237
mov dword [rsp - 0x34], ebp
sub ecx, 0x75
je 0x140091289
sub ecx, 0x11
mov dword [rsp - 0x24], esi
je 0x14009124e
sub ecx, 1
je 0x140091237
cmp ecx, 0x20
mov dword [rsp - 0x14], edi
jne 0x140091291
test sil, 9
jne 0x140091289
mov dword [rsp - 0x28], 0x449434d7
jmp 0x140091291
test sil, 6
jmp 0x14009123b
mov r11b, byte [rbp + 0x190]
mov dword [rsp - 0x44], ebx
cmp r12b, 1
je 0x140091289
jmp 0x140091278
mov r11b, byte [rbp + 0x190]
cmp r12b, bl
mov dword [rsp - 0x14], 0x3c493e8b
jbe 0x140091291
or dword [r8 + 0x21], 0x11000
mov dl, byte [r9 + 1]
neg r9
add r9, 0xfffffffffffffffe
neg r9
cmp r12b, 1
mov dword [rsp - 0x18], 0x1648ffd4
ja 0x1400912d9
cmp r10b, 0xf6
jne 0x1400912c8
mov dword [rsp - 0x1c], ecx
or r14b, 2
jmp 0x1400912d9
cmp r10b, 0xf7
jne 0x1400912d9
or r14b, 0x10
xchg r15, r15
mov al, byte [rbp + 0x188]
movzx ecx, r11b
test r11b, r11b
je 0x14009137e
xchg r9, r9
sub ecx, 1
je 0x14009134d
cmp ecx, 1
pushf
mov ecx, 0x794b43b6
sub ecx, 0x37413a38
xor ecx, 0x3bfc1770
xor ecx, 0x30b14791
xor ecx, 0x4947599b
popf
jne 0x1400913cd
xchg r14, r14
mov dil, 0x5c
sub dil, 0x44
sub dil, 0xd
add dil, 6
xor dil, 0x13
test sil, 0x10
mov r12, r12
jne 0x1400913d4
mov dil, cl
jmp 0x1400913d4
mov dil, 0xa
xor dil, 0x42
add dil, 0x1f
sub dil, 0x66
mov ecx, 0x715763c9
xor ecx, 0x5fe47d81
xor ecx, 0x1db905c2
add ecx, 0x49521db7
xor ecx, 0x7c5c3945
jmp 0x1400913d4
mov ecx, 0xf0b7dbc
add ecx, 0x1618417
add ecx, 0x1f8d05da
xor ecx, 0x2ffa07a9
test sil, 0x10
je 0x1400913b8
mov dword [rsp - 0x14], edi
cmp al, 6
setne dil
dec dil
and dil, 2
mov r12, r12
jmp 0x1400913d4
mov edi, dword [rsp + 4]
cmp al, bl
movzx edi, dil
xchg rdi, rdi
cmove edi, ecx
jmp 0x1400913d4
mov edi, dword [rsp + 4]
xchg r14, r14
cmp r11b, 3
je 0x14009144c
cmp al, cl
jne 0x14009144c
mov dword [rsp - 0x44], 0x401f5f
or dword [r8 + 0x21], 2
mov al, dl
shr al, 1
shr al, 2
shr al, 1
shr al, 2
inc r9
mov byte [r8 + 0x12], al
mov dword [rsp - 0x18], 0x76e2d5fb
mov al, dl
shr al, 1
shr al, 2
and al, 7
mov dword [rsp - 0x10], 0x67040d59
mov byte [r8 + 0x11], dl
and dl, 7
mov byte [r8 + 0x13], al
xchg rbx, rbx
mov byte [r8 + 0x14], dl
cmp dl, bl
jne 0x14009144c
test r11b, 1
mov dword [rsp - 0x18], 0x1a29e2ba
movzx edi, dil
cmove edi, ecx
dec r9
movzx ecx, dil
xchg rcx, rcx
sub ecx, 1
je 0x1400914a5
sub ecx, 1
mov dword [rsp - 0x38], 0x7f679399
je 0x14009148e
cmp ecx, 2
jne 0x1400914b4
bts dword [r8 + 0x21], 8
mov r12, r12
mov eax, dword [r9]
mov dword [r8 + 0x1d], eax
jmp 0x1400914b4
bts dword [r8 + 0x21], 7
movzx eax, word [r9]
mov word [r8 + 0x1d], ax
xchg rcx, rcx
jmp 0x1400914b4
or dword [r8 + 0x21], 0x40
mov al, byte [r9]
mov byte [r8 + 0x1d], al
xchg rsi, rsi
mov r12d, dword [rsp]
movzx eax, dil
add r9, rax
mov rsp, rsp
jmp 0x1400914e0
test sil, 0x20
mov dword [rsp - 0x1c], ebx
je 0x1400914e0
or r11d, 0x9000
mov dword [r8 + 0x21], r11d
test r14b, 0x10
mov dword [rsp - 0x30], 0x73929bc9
je 0x14009157c
test r14b, 0x40
je 0x140091551
mov dword [rsp - 0x28], ebp
test sil, 8
je 0x140091535
or dword [r8 + 0x21], 0x208
mov rsi, rsi
movzx eax, word [r9]
nop
add r9, 0x79588612
sub r9, 0x79588610
mov word [r8 + 0x15], ax
mov rdi, rdi
jmp 0x140091665
mov ecx, 0x191ce33c
add ecx, 0x4b1808f4
xor ecx, 0x243fbd76
sub ecx, 0x400b5142
jmp 0x1400915e7
test r12b, r12b
mov dword [rsp - 0x3c], 0x3ba9b8b
je 0x140091602
or dword [r8 + 0x21], 0x20
xchg r12, rax
mov r12, qword [r9]
xchg r12, rax
neg r9
add r9, 0xfffffffffffffff8
neg r9
mov qword [r8 + 0x15], rax
mov ecx, 0x77108471
sub ecx, 0xeb03b39
sub ecx, 0x294a5c59
xor ecx, 0x3f15ecdb
test cl, r14b
je 0x1400915b7
or dword [r8 + 0x21], 8
mov r10, r10
movzx eax, word [r9]
neg r9
add r9, 0xfffffffffffffffe
neg r9
mov word [r8 + 0x15], ax
test r14b, 2
mov rdx, rdx
je 0x1400915d5
or dword [r8 + 0x21], ecx
mov al, byte [r9]
inc r9
xchg r8, r8
mov byte [r8 + 0x15], al
test r14b, 0x40
je 0x140091642
mov dword [rsp - 0x24], 0x52ccd1f4
or dword [r8 + 0x21], 0x210
mov eax, dword [r9]
add r9, rcx
mov dword [rsp - 0x10], esi
mov dword [r8 + 0x15], eax
jmp 0x140091665
mov ecx, 0x2d7b5ef5
add ecx, 0x248216e1
sub ecx, 0x4388484
sub ecx, 0x4dc4f14e
test sil, 8
jne 0x14009159c
or dword [r8 + 0x21], 0x10
xchg rdi, rdi
mov eax, dword [r9]
add r9, rcx
mov dword [r8 + 0x15], eax
mov dword [rsp - 0x2c], 0x11b9f5b
jmp 0x140091593
test r14b, 0x20
mov dword [rsp - 0x10], ecx
je 0x140091665
or dword [r8 + 0x21], 0x204
mov al, byte [r9]
inc r9
mov rsi, rsi
mov byte [r8 + 0x15], al
sub r9b, byte [rbp + 0x180]
mov byte [r8], r9b
mov dword [rsp - 0x1c], 0x144c1608
cmp r9b, 0xf
jbe 0x1400916b8
or dword [r8 + 0x21], 0x5000
mov dword [rsp - 0x2c], 0x514b3e3c
mov r9b, 3
add r9b, 0x18
add r9b, 0x2a
sub r9b, 0xa
sub r9b, 0x2c
mov byte [r8], 0x22
add byte [r8], 0x46
xor byte [r8], 0x79
xor byte [r8], 0x7f
sub byte [r8], 0x5f
xor eax, eax
lea rdi, [rsp + 0x10]
xchg rdi, rdi
mov ecx, 0x5bf4b1d2
add ecx, 0x7f432c1
sub ecx, 0x5108175
sub ecx, 0x5ed8610d
rep stosb byte [rdi], al
movzx eax, r9b
add rsp, 0x238
mov dword [rsp - 0x3c], edx
nop
mov r15, qword [rsp]
add rsp, 8
nop
mov r14, qword [rsp]
add rsp, 8
pop r13
nop
mov r12, qword [rsp]
add rsp, 8
pop rdi
pop rsi
nop
mov rbx, qword [rsp]
add rsp, 8
nop
mov rbp, qword [rsp]
add rsp, 8
ret