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

Disassembly:
test rcx, rcx
je 0x1402303d6
mov rax, rsp
mov dword [rax + 0x18], r8d
mov dword [rax + 0x10], edx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x8a8]
sub rsp, 0x970
mov qword [rbp + 0x1d8], 0xfffffffffffffffe
mov qword [rax + 0x20], rbx
mov r13, r9
mov r12, rcx
xor ebx, ebx
mov dword [rsp + 0x3c], 0x2d
lea ecx, [rbx + 0x48]
mov word [rsp + 0x40], cx
lea edx, [rbx + 0x55]
mov word [rsp + 0x42], dx
lea eax, [rbx + 0x5d]
mov word [rsp + 0x44], ax
lea eax, [rbx + 0x41]
mov word [rsp + 0x46], ax
lea eax, [rbx + 0x42]
mov word [rsp + 0x48], ax
lea eax, [rbx + 0x5f]
mov word [rsp + 0x4a], ax
mov word [rsp + 0x4c], cx
mov word [rsp + 0x4e], ax
lea eax, [rbx + 3]
mov word [rsp + 0x50], ax
mov word [rsp + 0x52], cx
mov word [rsp + 0x54], dx
mov word [rsp + 0x56], cx
xor eax, eax
mov word [rsp + 0x58], ax
movzx eax, word [rsp + 0x40]
mov edx, ebx
lea edi, [rbx + 1]
movzx eax, word [rsp + rdx*2 + 0x40]
mov ecx, dword [rsp + 0x3c]
xor cx, ax
mov word [rsp + rdx*2 + 0x40], cx
add rdx, rdi
cmp rdx, 0xc
jb 0x14022f825
mov word [rsp + 0x58], bx
lea rdx, [rsp + 0x40]
lea rcx, [rbp + 0x1e8]
call fcn.1400ac71c
nop
xor r8d, r8d
xor edx, edx
lea rcx, [rbp + 0x1e8]
call fcn.1401b4898
mov esi, eax
lea rcx, [rbp + 0x1e8]
call fcn.1400ac668
nop
xor edx, edx
lea r8d, [rdx + 0x1a]
lea rcx, [rsp + 0x40]
call qword [sym.imp.VCRUNTIME140.dll_memset]
mov edx, dword [0x1402c7250]
cmp esi, 0xffffffff
je 0x14022f899
cmp edx, esi
mov r14b, dil
je 0x14022f89c
mov r14b, bl
lea rcx, [rbp + 0x1c0]
call fcn.1401c0550
nop
mov rdi, qword [rbp + 0x1c0]
mov r15, qword [rbp + 0x1c8]
cmp rdi, r15
jne 0x14022ffe5
mov eax, 0x36
mov word [rbp + 0x8b0], ax
mov word [rbp + 0x8b2], bx
movzx eax, word [rbp + 0x8b0]
movzx eax, word [rbp + 0x8b0]
sub ax, 0xd
mov word [rbp + 0x8b0], ax
mov edx, dword [0x1402c7250]
lea rcx, [rbp + 0x208]
call fcn.1401aedc0
mov r10, rax
mov esi, 0x76
mov dword [rsp + 0x30], esi
lea eax, [rsi - 0x1c]
mov word [rsp + 0x34], ax
lea r13d, [rsi - 0x20]
mov word [rsp + 0x36], r13w
xor eax, eax
mov word [rsp + 0x38], ax
movzx ecx, word [rsp + 0x34]
mov rdx, rbx
movzx eax, word [rsp + rdx*2 + 0x34]
mov ecx, dword [rsp + 0x30]
xor cx, ax
mov word [rsp + rdx*2 + 0x34], cx
inc rdx
cmp rdx, 2
jb 0x14022f92b
mov word [rsp + 0x38], bx
mov r12d, dword [0x1402c7250]
mov edx, 0x25
mov dword [rbp + 0x5c], edx
lea eax, [rdx + 0x59]
mov word [rbp + 0x60], ax
lea eax, [rdx - 0x21]
mov word [rbp + 0x62], ax
lea r15d, [rdx + 0x53]
mov word [rbp + 0x64], r15w
lea edi, [rdx - 0x20]
mov word [rbp + 0x66], di
mov word [rbp + 0x68], si
lea r14d, [rdx + 0x30]
mov word [rbp + 0x6a], r14w
lea eax, [rdx + 0x1b]
mov word [rbp + 0x6c], ax
lea r9d, [rdx + 0x21]
mov word [rbp + 0x6e], r9w
lea edx, [rdi + 0x47]
mov word [rbp + 0x70], dx
lea r11d, [r15 - 0x35]
mov word [rbp + 0x72], r11w
mov word [rbp + 0x74], dx
mov word [rbp + 0x76], ax
lea ecx, [rdi + 0x3c]
mov word [rbp + 0x78], cx
mov word [rbp + 0x7a], di
lea ecx, [rdi + 0x4c]
mov word [rbp + 0x7c], cx
lea r8d, [r15 - 0x34]
mov word [rbp + 0x7e], r8w
lea ecx, [rdi + 0x52]
mov word [rbp + 0x80], cx
lea r13d, [r15 - 0x36]
mov word [rbp + 0x82], r13w
mov word [rbp + 0x84], ax
lea r13d, [r15 - 0x27]
mov word [rbp + 0x86], r13w
mov word [rbp + 0x88], di
mov word [rbp + 0x8a], r14w
mov word [rbp + 0x8c], cx
lea r14d, [r15 - 0x2e]
mov word [rbp + 0x8e], r14w
mov word [rbp + 0x90], r9w
mov word [rbp + 0x92], ax
lea r13d, [r15 - 0x22]
mov word [rbp + 0x94], r13w
mov word [rbp + 0x96], r13w
mov word [rbp + 0x98], di
mov word [rbp + 0x9a], dx
mov word [rbp + 0x9c], r13w
mov word [rbp + 0x9e], di
lea r13d, [r15 - 0x2d]
mov word [rbp + 0xa0], r13w
mov word [rbp + 0xa2], r14w
lea r14d, [r15 - 0x27]
mov word [rbp + 0xa4], r14w
mov word [rbp + 0xa6], di
lea r14d, [r15 - 0x22]
mov word [rbp + 0xa8], r14w
lea r14d, [r15 - 0x28]
mov word [rbp + 0xaa], r14w
mov word [rbp + 0xac], dx
lea edx, [rdi + 0x4c]
mov word [rbp + 0xae], dx
mov word [rbp + 0xb0], r8w
lea edx, [rdi + 0x42]
mov word [rbp + 0xb2], dx
lea edx, [rdi + 0x44]
mov word [rbp + 0xb4], dx
mov word [rbp + 0xb6], ax
mov word [rbp + 0xb8], di
mov word [rbp + 0xba], r11w
lea edx, [rdi + 0x45]
mov word [rbp + 0xbc], dx
mov word [rbp + 0xbe], cx
mov word [rbp + 0xc0], di
mov word [rbp + 0xc2], si
mov word [rbp + 0xc4], ax
lea r8d, [r15 - 0x27]
mov word [rbp + 0xc6], r8w
lea edi, [rax + 0x35]
mov word [rbp + 0xc8], di
mov word [rbp + 0xca], cx
mov word [rbp + 0xcc], dx
lea ecx, [rax + 0x15]
mov word [rbp + 0xce], cx
lea r11d, [r15 - 6]
mov word [rbp + 0xd0], r11w
lea ecx, [rax - 0x3b]
mov word [rbp + 0xd2], cx
mov word [rbp + 0xd4], ax
lea r11d, [r15 - 0x1b]
mov word [rbp + 0xd6], r11w
mov word [rbp + 0xd8], ax
mov word [rbp + 0xda], r9w
mov word [rbp + 0xdc], r14w
mov word [rbp + 0xde], r8w
lea eax, [rdx + 2]
mov word [rbp + 0xe0], ax
mov word [rbp + 0xe2], dx
mov word [rbp + 0xe4], r13w
mov word [rbp + 0xe6], cx
lea eax, [rdx - 0x3d]
mov word [rbp + 0xe8], ax
mov word [rbp + 0xea], di
lea eax, [rdx + 0x22]
mov word [rbp + 0xec], ax
lea r14d, [r15 - 0x17]
mov word [rbp + 0xee], r14w
lea eax, [rdx - 0x2b]
mov word [rbp + 0xf0], ax
mov word [rbp + 0xf2], cx
xor eax, eax
mov word [rbp + 0xf4], ax
movzx eax, word [rbp + 0x60]
mov r8, rbx
movzx eax, word [rbp + r8*2 + 0x60]
mov ecx, dword [rbp + 0x5c]
xor cx, ax
mov word [rbp + r8*2 + 0x60], cx
inc r8
cmp r8, rdx
jb 0x14022fbd8
mov word [rbp + 0xf4], bx
lea rax, [rbp + 0x8b0]
mov qword [rsp + 0x20], rax
mov r9, r10
lea r8, [rsp + 0x34]
mov edx, r12d
lea rcx, [rbp + 0x60]
call fcn.1400c47ac
nop
xor edx, edx
mov r8d, 0x96
lea rcx, [rbp + 0x60]
call qword [sym.imp.VCRUNTIME140.dll_memset]
nop
xor edx, edx
lea r8d, [rdx + 6]
lea rcx, [rsp + 0x34]
call qword [sym.imp.VCRUNTIME140.dll_memset]
nop
xor edx, edx
lea r8d, [rdx + 4]
lea rcx, [rbp + 0x8b0]
call qword [sym.imp.VCRUNTIME140.dll_memset]
mov eax, 0x5c
mov word [rbp + 0xf8], ax
mov eax, 0x22
mov word [rbp + 0xfa], ax
mov eax, 0x5e
mov word [rbp + 0xfc], ax
lea r9d, [rax - 0x3d]
mov word [rbp + 0xfe], r9w
lea r11d, [rax + 4]
mov word [rbp + 0x100], r11w
lea r10d, [rax + 0x16]
mov word [rbp + 0x102], r10w
mov word [rbp + 0x104], r9w
lea eax, [r9 + 0x49]
mov word [rbp + 0x106], ax
mov word [rbp + 0x108], di
mov word [rbp + 0x10a], r9w
lea eax, [r9 + 0x44]
mov word [rbp + 0x10c], ax
lea r8d, [r9 + 0x4f]
mov word [rbp + 0x10e], r8w
lea r12d, [r9 + 0x45]
mov word [rbp + 0x110], r12w
mov word [rbp + 0x112], r10w
mov word [rbp + 0x114], r9w
lea ecx, [rax + 0xa]
mov word [rbp + 0x116], cx
mov word [rbp + 0x118], r8w
mov word [rbp + 0x11a], di
mov word [rbp + 0x11c], r9w
mov word [rbp + 0x11e], r12w
lea eax, [rcx + 0xa]
mov word [rbp + 0x120], ax
lea edx, [rcx + 2]
mov word [rbp + 0x122], dx
mov word [rbp + 0x124], r8w
mov word [rbp + 0x126], r10w
mov word [rbp + 0x128], r12w
mov word [rbp + 0x12a], r9w
mov word [rbp + 0x12c], r11w
mov word [rbp + 0x12e], cx
lea r10d, [r9 + 0x59]
mov word [rbp + 0x130], r10w
mov word [rbp + 0x132], r9w
lea eax, [rcx + 8]
mov word [rbp + 0x134], ax
mov word [rbp + 0x136], si
lea r13d, [r9 + 0x4c]
mov word [rbp + 0x138], r13w
mov word [rbp + 0x13a], cx
mov word [rbp + 0x13c], r12w
lea r11d, [r9 + 0x52]
mov word [rbp + 0x13e], r11w
lea eax, [rcx - 0xd]
mov word [rbp + 0x140], ax
lea eax, [rcx - 0xc]
mov word [rbp + 0x142], ax
mov word [rbp + 0x144], r13w
mov word [rbp + 0x146], r12w
mov word [rbp + 0x148], r9w
mov word [rbp + 0x14a], r15w
lea eax, [rcx - 5]
mov word [rbp + 0x14c], ax
mov word [rbp + 0x14e], cx
lea eax, [rcx - 0xa]
mov word [rbp + 0x150], ax
mov word [rbp + 0x152], r8w
mov word [rbp + 0x154], r15w
mov word [rbp + 0x156], r9w
mov word [rbp + 0x158], dx
mov word [rbp + 0x15a], r11w
mov word [rbp + 0x15c], r8w
lea ecx, [rdx - 0xd]
mov word [rbp + 0x15e], cx
mov word [rbp + 0x160], r12w
mov word [rbp + 0x162], ax
mov word [rbp + 0x164], si
mov word [rbp + 0x166], r11w
mov word [rbp + 0x168], r12w
lea r10d, [r9 + 0xe]
mov word [rbp + 0x16a], r10w
mov word [rbp + 0x16c], r9w
lea eax, [rdx - 0x20]
mov word [rbp + 0x16e], ax
mov word [rbp + 0x170], r13w
mov word [rbp + 0x172], r12w
lea r15d, [r9 + 0x41]
mov word [rbp + 0x174], r15w
lea esi, [rdx + 3]
mov word [rbp + 0x176], si
mov word [rbp + 0x178], r12w
mov word [rbp + 0x17a], r9w
mov word [rbp + 0x17c], si
mov word [rbp + 0x17e], r12w
mov word [rbp + 0x180], r13w
mov word [rbp + 0x182], r12w
mov word [rbp + 0x184], cx
mov word [rbp + 0x186], di
mov word [rbp + 0x188], r9w
mov word [rbp + 0x18a], r8w
mov word [rbp + 0x18c], di
lea eax, [rdx - 8]
mov word [rbp + 0x18e], ax
mov word [rbp + 0x190], r12w
mov word [rbp + 0x192], r11w
mov word [rbp + 0x194], r9w
mov word [rbp + 0x196], dx
mov word [rbp + 0x198], r11w
mov word [rbp + 0x19a], r8w
mov word [rbp + 0x19c], cx
mov word [rbp + 0x19e], r12w
mov word [rbp + 0x1a0], si
mov word [rbp + 0x1a2], si
mov word [rbp + 0x1a4], r9w
mov word [rbp + 0x1a6], di
mov word [rbp + 0x1a8], r8w
mov word [rbp + 0x1aa], r9w
mov word [rbp + 0x1ac], di
mov word [rbp + 0x1ae], r15w
mov word [rbp + 0x1b0], r11w
lea eax, [rdx - 9]
mov word [rbp + 0x1b2], ax
mov word [rbp + 0x1b4], r12w
mov word [rbp + 0x1b6], di
mov word [rbp + 0x1b8], r10w
mov word [rbp + 0x1ba], bx
movzx eax, word [rbp + 0xf8]
lea ecx, [rdx - 0x70]
movzx eax, word [rbp + rbx*2 + 0xf8]
sub ax, cx
mov word [rbp + rbx*2 + 0xf8], ax
add rbx, rcx
cmp rbx, r14
jb 0x14022ffab
lea rcx, [rbp + 0xf8]
call fcn.1400c49c8
nop
mov r8d, 0xc4
lea rcx, [rbp + 0xf8]
jmp 0x1402303a7
test r14b, r14b
je 0x14022ffee
cmp dword [rdi], esi
jne 0x14023002d
lea rcx, [rbp + 0x230]
mov rdx, rdi
mov r8d, 0x638
call sub.VCRUNTIME140.dll_memcpy
mov qword [rsp + 0x20], r13
mov r9d, dword [rbp + 0x8c0]
mov r8d, dword [rbp + 0x8b8]
mov rdx, r12
lea rcx, [rbp + 0x230]
call fcn.14022c92c
test al, al
jne 0x140230205
add rdi, 0x638
cmp rdi, r15
jne 0x14022ffe5
mov dword [rsp + 0x5c], 0x14
mov eax, 0x4f
mov word [rsp + 0x60], ax
mov eax, 0x35
mov word [rsp + 0x62], ax
lea edx, [rax + 0x14]
mov word [rsp + 0x64], dx
lea eax, [rdx - 0x15]
mov word [rsp + 0x66], ax
lea ecx, [rdx + 9]
mov word [rsp + 0x68], cx
lea edi, [rdx + 0x2c]
mov word [rsp + 0x6a], di
lea r9d, [rdx + 0x34]
mov word [rsp + 0x6c], r9w
lea r15d, [rdx + 0x2f]
mov word [rsp + 0x6e], r15w
lea edx, [rax + 0x3d]
mov word [rsp + 0x70], dx
lea r8d, [rax + 0x3c]
mov word [rsp + 0x72], r8w
lea ecx, [rax + 6]
mov word [rsp + 0x74], cx
mov word [rsp + 0x76], ax
lea ecx, [rax + 0x23]
mov word [rsp + 0x78], cx
lea r13d, [rax + 0x47]
mov word [rsp + 0x7a], r13w
lea r14d, [rax + 0x2d]
mov word [rsp + 0x7c], r14w
mov word [rsp + 0x7e], r15w
mov word [rbp - 0x80], r8w
mov word [rbp - 0x7e], ax
lea r10d, [rax + 0x46]
mov word [rbp - 0x7c], r10w
mov word [rbp - 0x7a], r13w
lea ecx, [rax + 0x2c]
mov word [rbp - 0x78], cx
mov word [rbp - 0x76], ax
lea r11d, [rax + 0x3e]
mov word [rbp - 0x74], r11w
mov word [rbp - 0x72], r9w
mov word [rbp - 0x70], r10w
mov word [rbp - 0x6e], r8w
mov word [rbp - 0x6c], ax
lea r8d, [rax + 0x33]
mov word [rbp - 0x6a], r8w
mov word [rbp - 0x68], r14w
mov word [rbp - 0x66], r9w
mov word [rbp - 0x64], cx
mov word [rbp - 0x62], di
lea esi, [rax + 0x42]
mov word [rbp - 0x60], si
mov word [rbp - 0x5e], r15w
mov word [rbp - 0x5c], dx
mov word [rbp - 0x5a], ax
mov word [rbp - 0x58], cx
mov word [rbp - 0x56], di
lea r12d, [rax + 0x32]
mov word [rbp - 0x54], r12w
lea r11d, [rax + 0x3f]
mov word [rbp - 0x52], r11w
mov word [rbp - 0x50], dx
mov word [rbp - 0x4e], cx
mov word [rbp - 0x4c], ax
mov word [rbp - 0x4a], cx
mov word [rbp - 0x48], r13w
mov word [rbp - 0x46], ax
lea r8d, [rax + 0x10]
mov word [rbp - 0x44], r8w
lea r9d, [rax + 0x12]
mov word [rbp - 0x42], r9w
lea r9d, [rax + 0x27]
mov word [rbp - 0x40], r9w
mov word [rbp - 0x3e], r8w
mov word [rbp - 0x3c], di
mov word [rbp - 0x3a], r11w
mov word [rbp - 0x38], di
mov word [rbp - 0x36], cx
mov word [rbp - 0x34], dx
mov word [rbp - 0x32], ax
lea eax, [rdi + 8]
mov word [rbp - 0x30], ax
mov word [rbp - 0x2e], r10w
mov word [rbp - 0x2c], cx
mov word [rbp - 0x2a], r13w
lea eax, [rdi - 0x3b]
mov word [rbp - 0x28], ax
xor eax, eax
mov word [rbp - 0x26], ax
movzx eax, word [rsp + 0x60]
mov rdx, rbx
lea ebx, [rdi - 0x74]
movzx eax, word [rsp + rdx*2 + 0x60]
mov ecx, dword [rsp + 0x5c]
xor cx, ax
mov word [rsp + rdx*2 + 0x60], cx
add rdx, rbx
cmp rdx, 0x3d
jb 0x1402301d0
xor ebx, ebx
mov word [rbp - 0x26], bx
lea rcx, [rsp + 0x60]
call fcn.1400c49c8
nop
lea rcx, [rsp + 0x60]
jmp 0x1402303a1
mov eax, 0x40
mov dword [rbp - 0x24], eax
mov eax, 0x1b
mov word [rbp - 0x20], ax
mov eax, 0x6b
mov word [rbp - 0x1e], ax
mov eax, 0x1d
mov word [rbp - 0x1c], ax
lea ecx, [rax + 0x43]
mov word [rbp - 0x1a], cx
lea eax, [rcx - 0x4d]
mov word [rbp - 0x18], ax
lea eax, [rcx - 0x2b]
mov word [rbp - 0x16], ax
lea eax, [rcx - 0x3d]
mov word [rbp - 0x14], ax
mov word [rbp - 0x12], ax
lea edx, [rcx - 0x3b]
mov word [rbp - 0x10], dx
mov word [rbp - 0xe], dx
lea r11d, [rcx - 0x3c]
mov word [rbp - 0xc], r11w
mov word [rbp - 0xa], dx
mov word [rbp - 8], r11w
lea esi, [rcx + 0xe]
mov word [rbp - 6], si
mov word [rbp - 4], cx
lea eax, [rcx - 0x51]
mov word [rbp - 2], ax
lea eax, [rcx - 0x2a]
mov word [rbp], ax
mov word [rbp + 2], dx
lea edi, [rcx - 0x2e]
mov word [rbp + 4], di
lea eax, [rcx - 0x29]
mov word [rbp + 6], ax
mov word [rbp + 8], di
lea eax, [rcx - 0x37]
mov word [rbp + 0xa], ax
lea eax, [rcx - 0x2c]
mov word [rbp + 0xc], ax
mov word [rbp + 0xe], ax
mov word [rbp + 0x10], dx
lea r10d, [rcx - 0x32]
mov word [rbp + 0x12], r10w
mov word [rbp + 0x14], cx
lea r9d, [rcx - 0x3f]
mov word [rbp + 0x16], r9w
mov word [rbp + 0x18], r10w
mov word [rbp + 0x1a], r11w
mov word [rbp + 0x1c], cx
mov word [rbp + 0x1e], ax
lea r8d, [rcx - 0x38]
mov word [rbp + 0x20], r8w
mov word [rbp + 0x22], dx
mov word [rbp + 0x24], r10w
mov word [rbp + 0x26], cx
mov word [rbp + 0x28], di
mov word [rbp + 0x2a], dx
lea r8d, [rcx - 0x2d]
mov word [rbp + 0x2c], r8w
mov word [rbp + 0x2e], ax
lea r10d, [rcx - 0x31]
mov word [rbp + 0x30], r10w
mov word [rbp + 0x32], di
mov word [rbp + 0x34], dx
mov word [rbp + 0x36], r11w
mov word [rbp + 0x38], cx
mov word [rbp + 0x3a], ax
mov word [rbp + 0x3c], r9w
mov word [rbp + 0x3e], di
lea r8d, [rcx - 0x39]
mov word [rbp + 0x40], r8w
mov word [rbp + 0x42], dx
mov word [rbp + 0x44], ax
mov word [rbp + 0x46], cx
lea ecx, [rdx + 0xb]
mov word [rbp + 0x48], cx
mov word [rbp + 0x4a], di
mov word [rbp + 0x4c], r10w
mov word [rbp + 0x4e], cx
mov word [rbp + 0x50], dx
mov word [rbp + 0x52], di
mov word [rbp + 0x54], ax
lea eax, [rdx + 0x14]
mov word [rbp + 0x56], ax
mov word [rbp + 0x58], si
xor eax, eax
mov word [rbp + 0x5a], ax
movzx eax, word [rbp - 0x20]
mov rdx, rbx
lea ebx, [rsi - 0x6d]
movzx eax, word [rbp + rdx*2 - 0x20]
mov ecx, dword [rbp - 0x24]
xor cx, ax
mov word [rbp + rdx*2 - 0x20], cx
add rdx, rbx
cmp rdx, 0x3d
jb 0x140230374
xor ebx, ebx
mov word [rbp + 0x5a], bx
lea rcx, [rbp - 0x20]
call fcn.1400c49c8
nop
lea rcx, [rbp - 0x20]
mov r8d, 0x7c
xor edx, edx
call qword [sym.imp.VCRUNTIME140.dll_memset]
nop
lea rcx, [rbp + 0x1c0]
call fcn.1400ac3b4
mov rbx, qword [rsp + 0x9c8]
add rsp, 0x970
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret