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

Disassembly:
mov qword [rsp + 8], rbx
mov dword [rsp + 0x10], edx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x50
mov r12d, 0x50
mov r15, rcx
mov ebx, r12d
nop word [rax + rax]
cmp byte [0x14000620d], 0
movzx eax, word [0x14000620c]
mov word [rbp + 0x48], ax
je 0x14000415c
xor byte [rbp + 0x49], 0x31
mov byte [rbp + 0x48], 0x3d
lea rcx, [rbp + 0x48]
call fcn.1400050b0
sub rbx, 1
jne 0x140004140
movzx eax, word [0x140006110]
lea rcx, [rbp + 0x50]
mov word [rbp + 0x50], ax
movzx eax, byte [0x140006112]
xor byte [rbp + 0x51], 0x31
xor al, 0x32
mov byte [rbp + 0x52], al
mov byte [rbp + 0x50], 0x5c
call fcn.1400050b0
mov r14d, dword [section..data]
xor r13d, r13d
mov edi, r13d
mov eax, dword [0x140006164]
movzx ecx, word [0x140006168]
mov dword [rbp - 0x13], eax
movzx eax, byte [0x14000616a]
xor byte [rbp - 0x12], 0x31
xor al, 0x36
xor byte [rbp - 0x11], 0x32
xor byte [rbp - 0x10], 0x33
mov word [rbp - 0xf], cx
xor cl, 0x34
xor byte [rbp - 0xe], 0x35
cmp qword [0x1400070a8], r13
mov byte [rbp - 0x13], 0x25
mov byte [rbp - 0xf], cl
mov byte [rbp - 0xd], al
je 0x1400042d7
mov ecx, dword [0x140007088]
mov edx, 0x100
mov rax, qword [0x140007050]
mov r8d, 0x1000
mov r10d, dword [rax + rcx*4]
xor ecx, ecx
add r10, qword [0x140007080]
lea r9d, [rcx + 4]
call r10
mov edx, dword [0x1400070a4]
xor r8d, r8d
mov rcx, qword [0x140007050]
mov rbx, rax
mov r9d, dword [rcx + rdx*4]
mov edx, 0x100
add r9, qword [0x140007080]
mov rcx, rax
call r9
mov edx, dword [0x14000704c]
mov r8d, edi
mov rcx, qword [0x140007040]
mov r9d, dword [rcx + rdx*4]
lea rdx, [rbp - 0x13]
add r9, qword [0x140007030]
mov rcx, rbx
call r9
mov dword [rbp - 0x1c], r13d
mov r8d, r13d
test rbx, rbx
je 0x140004283
xor cl, cl
nop
movzx eax, cl
cmp byte [rax + rbx], r13b
je 0x140004283
inc cl
inc r8d
cmp cl, 0xff
jb 0x140004270
mov ecx, dword [0x140007090]
lea r9, [rbp - 0x1c]
mov rax, qword [0x140007050]
mov rdx, rbx
mov qword [rsp + 0x20], r13
mov r10d, dword [rax + rcx*4]
add r10, qword [0x140007080]
mov rcx, qword [0x1400070a8]
call r10
mov ecx, dword [0x140007098]
xor edx, edx
mov rax, qword [0x140007050]
mov r8d, 0x8000
mov r9d, dword [rax + rcx*4]
mov rcx, rbx
add r9, qword [0x140007080]
call r9
mov ebx, r13d
mov rsi, r15
nop dword [rax]
lea eax, [rbx + rdi]
cmp eax, 0x1000
jb 0x1400043df
cmp byte [str.3fX_GATZvTUUX_], r13b
mov eax, dword [0x14000612c]
mov dword [rbp + 0x48], eax
je 0x1400043bd
cmp r14d, 2
jl 0x140004387
movdqa xmm3, xmmword [0x1400062c0]
movdqa xmm2, xmm3
movdqa xmm0, xmm3
punpckldq xmm2, xmm3
pmuldq xmm2, xmmword [0x140006320]
punpckhdq xmm0, xmm3
pmuldq xmm0, xmmword [0x140006320]
shufps xmm2, xmm0, 0xdd
psrad xmm2, 4
movdqa xmm0, xmm2
psrld xmm0, 0x1f
paddd xmm0, xmm2
pmulld xmm0, xmmword [0x1400062e0]
psubd xmm3, xmm0
pshuflw xmm0, xmm3, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
andps xmm2, xmmword [0x140006300]
packuswb xmm2, xmm2
paddb xmm2, xmmword [str.0000000000000000O]
movd xmm0, eax
xorps xmm2, xmm0
movd dword [rbp + 0x48], xmm2
jmp 0x1400043bd
lea r8, [rbp + 0x48]
mov ecx, r13d
nop
mov eax, 0x4ec4ec4f
lea r8, [r8 + 1]
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul edx, eax, 0x34
movzx eax, cl
inc ecx
sub al, dl
add al, 0x30
xor byte [r8 - 1], al
cmp ecx, 4
jl 0x140004390
lea rcx, [rbp + 0x48]
call fcn.1400050b0
mov eax, ebx
and eax, 3
cmp al, 3
jne 0x14000452f
lea rcx, section..rdata
jmp 0x14000452a
movzx r10d, byte [rsi]
cmp r10b, 0x10
jae 0x140004417
mov eax, dword [0x140006150]
lea rcx, [rbp - 0x18]
mov dword [rbp - 0x18], eax
movzx eax, byte [0x140006154]
xor byte [rbp - 0x17], 0x31
xor byte [rbp - 0x16], 0x32
xor byte [rbp - 0x15], 0x33
xor al, 0x34
mov byte [rbp - 0x18], 0x30
mov byte [rbp - 0x14], al
jmp 0x1400044f5
cmp byte [0x140006097], r13b
mov eax, dword [0x140006094]
mov dword [rbp + 0x48], eax
je 0x1400044f1
cmp r14d, 2
jl 0x1400044b0
movdqa xmm3, xmmword [0x1400062c0]
movdqa xmm2, xmm3
movdqa xmm0, xmm3
punpckldq xmm2, xmm3
pmuldq xmm2, xmmword [0x140006320]
punpckhdq xmm0, xmm3
pmuldq xmm0, xmmword [0x140006320]
shufps xmm2, xmm0, 0xdd
psrad xmm2, 4
movdqa xmm0, xmm2
psrld xmm0, 0x1f
paddd xmm0, xmm2
pmulld xmm0, xmmword [0x1400062e0]
psubd xmm3, xmm0
pshuflw xmm0, xmm3, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
andps xmm2, xmmword [0x140006300]
packuswb xmm2, xmm2
paddb xmm2, xmmword [str.0000000000000000O]
movd xmm0, eax
xorps xmm2, xmm0
movd dword [rbp + 0x48], xmm2
jmp 0x1400044f1
lea r9, [rbp + 0x48]
mov r8d, r13d
nop word [rax + rax]
mov eax, 0x4ec4ec4f
lea r9, [r9 + 1]
imul r8d
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x34
movzx eax, r8b
inc r8d
sub al, cl
add al, 0x30
xor byte [r9 - 1], al
cmp r8d, 4
jl 0x1400044c0
lea rcx, [rbp + 0x48]
movzx edx, r10b
call fcn.1400051d0
mov eax, ebx
and eax, 3
cmp al, 3
jne 0x14000452f
movzx eax, word [0x140006128]
lea rcx, [rbp + 0x58]
mov word [rbp + 0x58], ax
movzx eax, byte [0x14000612a]
xor byte [rbp + 0x59], 0x31
xor al, 0x32
mov byte [rbp + 0x58], 0x20
mov byte [rbp + 0x5a], al
call fcn.1400050b0
inc ebx
inc rsi
cmp ebx, 0x10
jl 0x1400042e0
mov rbx, r13
cmp edi, 0x1000
jb 0x140004562
cmp byte [0x1400061e5], r13b
movzx eax, word [0x1400061e4]
mov word [rbp + 0x48], ax
je 0x1400045b4
mov byte [rbp + 0x48], 0x20
jmp 0x1400045b0
movzx edx, byte [r15 + rbx]
lea eax, [rdx - 0x1f]
cmp al, 0x60
ja 0x140004598
movzx eax, word [0x140006098]
lea rcx, [rbp - 0x20]
mov word [rbp - 0x20], ax
movzx eax, byte [0x14000609a]
xor byte [rbp - 0x1f], 0x31
xor al, 0x32
mov byte [rbp - 0x1e], al
mov byte [rbp - 0x20], 0x25
call fcn.1400051d0
jmp 0x1400045bd
cmp byte [0x1400061b9], r13b
movzx eax, word [0x1400061b8]
mov word [rbp + 0x48], ax
je 0x1400045b4
mov byte [rbp + 0x48], 0x2e
xor byte [rbp + 0x49], 0x31
lea rcx, [rbp + 0x48]
call fcn.1400050b0
inc edi
inc rbx
cmp rbx, 0x10
jl 0x140004540
cmp byte [0x1400060f3], r13b
mov eax, dword [0x1400060f0]
mov dword [rbp + 0x48], eax
je 0x1400046a1
cmp r14d, 2
jl 0x140004665
movdqa xmm3, xmmword [0x1400062c0]
movdqa xmm2, xmm3
movdqa xmm0, xmm3
punpckldq xmm2, xmm3
pmuldq xmm2, xmmword [0x140006320]
punpckhdq xmm0, xmm3
pmuldq xmm0, xmmword [0x140006320]
shufps xmm2, xmm0, 0xdd
psrad xmm2, 4
movdqa xmm0, xmm2
psrld xmm0, 0x1f
paddd xmm0, xmm2
pmulld xmm0, xmmword [0x1400062e0]
psubd xmm3, xmm0
pshuflw xmm0, xmm3, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
andps xmm2, xmmword [0x140006300]
packuswb xmm2, xmm2
paddb xmm2, xmmword [str.0000000000000000O]
movd xmm0, eax
xorps xmm2, xmm0
movd dword [rbp + 0x48], xmm2
jmp 0x1400046a1
lea r9, [rbp + 0x48]
mov r8d, r13d
nop dword [rax]
mov eax, 0x4ec4ec4f
lea r9, [r9 + 1]
imul r8d
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x34
movzx eax, r8b
inc r8d
sub al, cl
add al, 0x30
xor byte [r9 - 1], al
cmp r8d, 4
jl 0x140004670
lea rcx, [rbp + 0x48]
call fcn.1400050b0
mov r15, rsi
cmp edi, 0x1000
jb 0x1400041a0
nop dword [rax]
cmp byte [0x14000620d], r13b
movzx eax, word [0x14000620c]
mov word [rbp + 0x48], ax
je 0x1400046dc
xor byte [rbp + 0x49], 0x31
mov byte [rbp + 0x48], 0x3d
lea rcx, [rbp + 0x48]
call fcn.1400050b0
sub r12, 1
jne 0x1400046c0
movzx eax, word [0x14000610c]
lea rcx, [rbp + 0x48]
mov word [rbp + 0x48], ax
movzx eax, byte [0x14000610e]
xor byte [rbp + 0x49], 0x31
xor al, 0x32
mov byte [rbp + 0x4a], al
mov byte [rbp + 0x48], 0x2f
call fcn.1400050b0
mov rbx, qword [rsp + 0x90]
add rsp, 0x50
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret