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

Disassembly:
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x98
movabs rax, 0x35005f00710067
mov qword [rsp + 0x68], rax
mov rsi, rcx
mov word [rsp + 0x70], 0
push rax
mov rax, 3
cmp r12d, 0x61
jne 0x29a0c8030
push r14
nop
pop r14
jmp 0x29a0c8036
push r10
emms
pop r10
push r11
not r11b
pop r11
dec rax
jne 0x29a0c801f
pop rax
movabs rax, 0x650073004c0044
mov word [rsp + 0x84], 0
mov qword [rsp + 0x7c], rax
push r10
mov r10, 3
push r14
push r13
pop r13
pop r14
dec r10
jne 0x29a0c8065
pop r10
lea rdi, [rsp + 0x7c]
lea rbp, [rsp + 0x68]
mov rdx, rdi
mov rcx, rbp
call sub.msvcrt.dll_wcscmp
test eax, eax
jne 0x29a0c80c1
push rdx
rol edx, 0x15
not rdx
dec rdx
dec rdx
nop
push rcx
pcmpgtw mm1, mm6
psllq mm6, 0x20
movss xmm13, xmm4
emms
adc ecx, edx
pop rcx
movups xmm12, xmm10
ror dl, 9
por mm6, mm0
emms
paddd mm3, mm0
emms
pop rdx
jmp 0x29a0c8120
mov rax, rdi
lea rdx, [rsp + 0x84]
push rcx
sub ecx, 0x12
emms
nop
psrad mm4, 0x61
emms
rcpss xmm5, xmm13
emms
por mm3, mm2
ucomiss xmm5, xmm0
neg cl
not ecx
subps xmm2, xmm4
pop rcx
xor word [rax], 0x85
push rdx
punpcklwd mm0, mm3
maxps xmm1, xmm5
nop
paddusb mm5, mm2
ror dx, 0x15
inc edx
not rdx
ror dx, 0xb
pslld mm2, 0x19
emms
pcmpgtd mm7, mm6
emms
pop rdx
add rax, 2
cmp rax, rdx
jne 0x29a0c80cc
push r11
shl r11b, 0xf
dec r11d
psrlw mm3, 0x4e
push r13
addss xmm11, xmm8
emms
push rcx
nop
pop rcx
psrld mm2, 0x41
maxps xmm14, xmm12
pop r13
rcpps xmm15, xmm0
emms
rol r11, 0xa
pop r11
movabs rax, 0x6c33079f8104fa56
mov word [rsp + 0x5c], 0xbb24
mov qword [rsp + 0x54], rax
push r9
mov r9, 1
cmp r12d, r13d
jne 0x29a0c8187
push r11
punpckhbw mm0, mm3
push rcx
add r11d, ecx
nop
pop rcx
shl r11w, 6
pop r11
jmp 0x29a0c8198
push r14
emms
push rax
pslld mm3, 0x4e
nop
pop rax
addps xmm8, xmm4
pop r14
push rdx
maxss xmm9, xmm2
push r13
emms
nop
pop r13
psubsb mm7, mm2
pop rdx
dec r9
jne 0x29a0c816e
pop r9
movabs rax, 0x141d72f6b2729925
mov word [rsp + 0x66], 0xbb52
mov qword [rsp + 0x5e], rax
cmp r12d, 0x20
jne 0x29a0c822f
push r9
psrad mm5, 0x28
push rdx
not dl
psrlw mm2, 0x6a
push rbx
rol dl, 2
dec ebx
adc rdx, rbx
push r13
emms
psraw mm4, 0xb
sub bl, 0xf
shl bl, 5
pop r13
add bl, r9b
pcmpeqb mm7, mm2
minps xmm6, xmm9
pop rbx
emms
mov r9, 5
pop rdx
rcpps xmm15, xmm5
pop r9
jmp 0x29a0c8250
push r15
sbb r15, 4
push rax
nop
push rcx
nop
push r9
psrlq mm6, 0xa
pop r9
rcl r15d, 0x16
pop rcx
inc rax
pop rax
movss xmm4, xmm6
pop r15
push r8
psraw mm6, 0x43
pslld mm1, 0xb
push rbx
emms
pop rbx
not r8w
emms
pop r8
mov ecx, 8
call sub.msvcrt.dll_malloc
mov rcx, rax
push rdx
shr dl, 0x13
shr edx, 9
push rcx
nop
pop rcx
psraw mm5, 0x17
nop
pop rdx
mov edx, 0x30
call sub.msvcrt.dll_realloc
mov rcx, rax
cmp r12d, 4
jne 0x29a0c82af
push r9
psraw mm7, 0x24
push r12
comiss xmm8, xmm6
movhlps xmm5, xmm0
pop r12
sar r9, 0xb
pop r9
jmp 0x29a0c82bf
push r14
rcpps xmm8, xmm9
push rdx
nop
emms
pop rdx
pminsw mm6, mm2
pop r14
push rax
emms
push r8
pslld mm1, 0x28
movhlps xmm3, xmm5
pop r8
psllq mm3, 0x28
pop rax
call sub.msvcrt.dll_free
push r15
maxps xmm7, xmm15
nop
nop
push r9
movss xmm1, xmm13
nop
psllq mm6, 0x38
push r13
rcpss xmm7, xmm13
not r9b
emms
pop r13
emms
emms
xadd r15b, r9b
pop r9
nop
nop
sar r15b, 0xa
pop r15
xor eax, eax
lea r8, [rsp + 0x5e]
push r10
inc r10
pslld mm4, 0x5b
push r13
or r13b, r10b
neg r13
push r9
emms
xor r13d, r9d
push rbx
or r9b, r10b
pandn mm5, mm4
push r12
xchg r12w, r9w
nop
pop r12
emms
pminsw mm4, mm7
pop rbx
maxps xmm6, xmm0
pxor mm4, mm3
pop r9
cmp r13b, r10b
psrlq mm5, 0x4b
pop r13
paddusb mm0, mm7
nop
pop r10
push r13
psraw mm5, 9
push r10
nop
emms
pop r10
emms
pop r13
push r11
mov r11, 2
push r14
mov r14, 1
push r13
push rcx
pop rcx
pop r13
dec r14
jne 0x29a0c837a
pop r14
dec r11
jne 0x29a0c8371
pop r11
mov dl, byte [rsp + rax + 0x54]
xor dl, byte [rax + r8]
lea rcx, [rsp + 0x54]
mov byte [rsp + rax + 0x54], dl
inc rax
cmp rax, 0xa
jne 0x29a0c8312
push rbx
psrlq mm4, 7
xorps xmm6, xmm15
push rcx
shr bx, 0xb
movss xmm15, xmm8
push r8
dec ebx
psrad mm1, 0x51
push r9
emms
shr r9w, 6
push r15
emms
not r15w
pop r15
psllq mm1, 0x65
mov r9b, cl
pop r9
mov rcx, 0x14
mov rcx, rbx
pop r8
emms
sub ebx, ecx
pop rcx
emms
neg bx
pop rbx
push r12
sub r12, 3
push r9
inc r9d
psrlq mm3, 0x21
pop r9
sar r12b, 0x15
pop r12
mov r8d, 0xa
mov rdx, rcx
mov rcx, rdi
call fcn.29a0bcfb3
push r8
psrld mm1, 0x55
psrld mm6, 8
push r11
nop
emms
push r9
or r11b, r8b
inc r9
push r15
emms
emms
push r14
sub r14, 3
psrlq mm1, 0x65
pop r14
pslld mm1, 7
mov r9, r15
pop r15
inc r11
psrlq mm0, 0x34
pop r9
rcpss xmm12, xmm7
nop
pop r11
nop
psubsb mm0, mm6
pop r8
call fcn.29a0c352b
push r13
pandn mm0, mm1
push rdx
psrlw mm0, 0xf
push rax
pcmpgtb mm3, mm0
push r12
neg r13
pop r12
movups xmm14, xmm9
pop rax
psllq mm6, 2
pop rdx
ror r13, 8
pop r13
call fcn.29a0c34e8
mov rcx, rdi
call fcn.29a0c66e2
mov rbx, rax
push r12
sub r12w, 4
psubsb mm3, mm7
subss xmm5, xmm11
rcpps xmm8, xmm2
dec r12d
inc r12d
psrad mm5, 0x4c
pop r12
mov ecx, 0x14
call sub.msvcrt.dll_malloc
mov rcx, rax
push rdx
nop
emms
movhlps xmm15, xmm11
psraw mm0, 0x49
nop
push r9
inc edx
xor r9d, edx
nop
nop
push r15
not r9w
minps xmm10, xmm0
nop
push r10
xchg r9d, r10d
andnps xmm5, xmm13
push rax
movaps xmm10, xmm5
pop rax
nop
rol r15b, 1
pop r10
punpckldq mm6, mm1
nop
ror r9b, 0x12
pop r15
psrlw mm6, 0x63
ror rdx, 0x11
neg r9w
psrlw mm6, 5
pop r9
psrld mm6, 0x4a
psllq mm4, 0x19
inc edx
pmaxsw mm0, mm1
pcmpeqw mm6, mm0
pop rdx
mov edx, 0x78
call sub.msvcrt.dll_realloc
mov rcx, rax
cmp r12d, 0x30
jne 0x29a0c855f
push r10
neg r10d
push r12
paddusb mm3, mm4
not r12w
pop r12
neg r10w
pop r10
jmp 0x29a0c8573
push rbx
maxps xmm4, xmm9
push r8
psrlw mm0, 0x30
and r8b, bl
pop r8
sar ebx, 0xe
pop rbx
push rcx
neg ecx
push r15
ucomiss xmm2, xmm4
inc r15
pop r15
mulps xmm0, xmm8
pop rcx
call sub.msvcrt.dll_free
cmp r12d, 0x25
jne 0x29a0c85a3
push rbx
andnps xmm4, xmm5
push r14
cmp bx, r14w
nop
pop r14
inc rbx
pop rbx
jmp 0x29a0c85b4
push rax
neg eax
push r12
shl r12w, 0x15
nop
pop r12
punpcklbw mm0, mm2
pop rax
push r15
inc r15
push r8
sub r15b, r8b
psrad mm2, 0x1d
pop r8
pslld mm2, 0x4e
pop r15
test rbx, rbx
jne 0x29a0c8822
push rbx
comiss xmm15, xmm5
push r14
rol r14b, 9
push r12
nop
push r8
rcpps xmm2, xmm11
push r9
neg r8d
push r10
sbb r8d, r10d
push rdx
psllq mm6, 0x67
pop rdx
paddsw mm2, mm1
pop r10
neg r8w
pop r9
emms
pop r8
rcr r12, 7
pop r12
subss xmm14, xmm12
pop r14
shr bl, 3
pop rbx
mov ecx, 0x20
call sub.msvcrt.dll_malloc
mov rcx, rax
xor eax, eax
push rax
nop
push r14
adc r14d, eax
push rdx
maxps xmm3, xmm1
push rbx
paddusw mm1, mm6
push r10
pcmpgtw mm0, mm4
push r11
ror r14, 0x12
pop r11
emms
pop r10
packssdw mm3, mm6
pop rbx
not r14w
pop rdx
mov r14d, eax
pop r14
psrlq mm1, 0x48
pop rax
xor qword [rcx + rax*8], 0x13
cmp r12d, 0x52
jne 0x29a0c8669
push rax
nop
pop rax
jmp 0x29a0c8671
push r15
psllq mm2, 0x69
pop r15
push rcx
emms
pop rcx
inc rax
cmp rax, 4
jne 0x29a0c8626
call sub.msvcrt.dll_free
push r15
movss xmm12, xmm14
push rax
nop
emms
push rdx
nop
emms
paddd mm6, mm1
push r11
not r15b
xchg dl, al
psrld mm0, 0x5f
xchg r11b, dl
push rbx
andnps xmm10, xmm0
emms
psllq mm7, 0xb
and al, dl
neg edx
pop rbx
psrad mm1, 0x43
neg r15d
inc eax
paddb mm7, mm3
pop r11
not eax
not ax
maxss xmm15, xmm6
pop rdx
psubsb mm3, mm5
xchg r15d, eax
pop rax
pand mm2, mm5
pop r15
mov rcx, rdi
call fcn.29a0c66e2
mov rbx, rax
push r14
mov r14, 3
push r11
push rbx
pop rbx
pop r11
dec r14
jne 0x29a0c86eb
pop r14
test rax, rax
jne 0x29a0c8822
mov dword [rsp + 0x68], 0x4a617b6a
mov word [rsp + 0x6c], 0x4f
push rax
not eax
psrld mm5, 0x21
emms
push rcx
emms
psraw mm3, 0xb
emms
push rbx
cmp rcx, rbx
psllq mm6, 0x50
push r8
neg cl
nop
pop r8
sbb ebx, 0xc
psraw mm7, 0x43
ucomiss xmm4, xmm13
pop rbx
nop
nop
pop rcx
pand mm5, mm1
psllq mm1, 0x55
pop rax
mov word [rsp + 0x51], 0x7a29
mov byte [rsp + 0x53], 0
push r14
mov r14, 3
push rdx
psraw mm3, 0x40
nop
dec rdx
push r14
psllq mm0, 0x2b
psraw mm7, 0x2a
psrld mm5, 0x64
push rax
not edx
emms
test edx, eax
pop rax
dec edx
nop
emms
pop r14
punpckhwd mm6, mm5
minps xmm11, xmm12
neg dl
pop rdx
dec r14
jne 0x29a0c875d
pop r14
lea rdx, [rsp + 0x51]
mov rcx, rbp
call sub.msvcrt.dll__mbscmp
test eax, eax
jne 0x29a0c87bf
push r12
emms
sbb r12, 0xc
nop
emms
sar r12b, 0x14
packsswb mm7, mm3
sbb r12, 0xe
pop r12
jmp 0x29a0c87fa
push rcx
pmaxsw mm4, mm1
neg ecx
psraw mm6, 0x6b
rcr cl, 8
psllq mm4, 0x5c
push r12
emms
mov r12, 0x14
sbb rcx, r12
pslld mm5, 0x53
emms
pop r12
sbb ecx, 4
psrad mm7, 0x2d
rcr rcx, 0xb
pandn mm4, mm2
psrlq mm1, 0x4e
nop
pop rcx
push r12
mov r12, 2
push r10
shr r10b, 0xe
push r14
rcl r14, 0x10
pop r14
nop
pop r10
dec r12
jne 0x29a0c8803
pop r12
xor ecx, ecx
call fcn.29a0b88f4
push r14
paddsw mm5, mm3
paddd mm3, mm6
push r11
xor r11b, r14b
movaps xmm1, xmm12
push r8
xadd r11, r14
rol r8b, 0xa
push r9
sub r11, 0x13
nop
push rcx
rcpss xmm11, xmm8
neg r14w
pop rcx
nop
dec r9
pop r9
ror r14w, 3
packssdw mm6, mm4
pop r8
nop
maxss xmm4, xmm0
pop r11
emms
punpckhbw mm6, mm2
pop r14
call fcn.29a0c7d5e
mov rdi, rax
push r9
sar r9b, 1
emms
nop
emms
psrlq mm1, 0x64
pcmpgtb mm2, mm5
nop
psrad mm0, 0x5c
sar r9d, 4
orps xmm4, xmm13
psadbw mm6, mm2
emms
pop r9
call fcn.29a0c3b95
mov r9d, 4
mov rdx, rdi
xor ecx, ecx
mov r8d, 0x3000
call fcn.29a0b28d0
mov qword [rsi], rax
cmp r12w, r9w
jne 0x29a0c88d0
push rbx
psadbw mm6, mm4
push r9
neg rbx
nop
pop r9
pcmpgtd mm4, mm6
pop rbx
jmp 0x29a0c88e3
push r14
emms
push r13
emms
sub r13d, r14d
pop r13
rcl r14d, 0xf
pop r14
push r15
dec r15d
push r10
or r15, r10
shr r15d, 9
pop r10
nop
pop r15
push r9
pxor mm7, mm0
sub r9b, 0xa
push rbx
packssdw mm0, mm4
emms
push r13
pmaxsw mm4, mm1
maxps xmm6, xmm3
push r8
mov r8, r9
ror r9w, 0x13
pop r8
shl r13b, 5
neg r9
pop r13
nop
xchg rbx, r9
pop rbx
dec r9d
paddusb mm5, mm4
pop r9
push r10
psrad mm4, 0x67
psraw mm0, 9
packsswb mm6, mm2
pslld mm0, 0x4c
psrlw mm3, 0x1d
nop
sub r10, 2
pmaxsw mm6, mm0
pmullw mm5, mm0
nop
nop
pslld mm5, 0x20
pop r10
cmp r12w, 9
jne 0x29a0c89b9
push r13
nop
rcr r13d, 3
push r15
psrad mm7, 0x62
xadd r13w, r15w
push r14
inc r14d
sbb r13b, 0xd
push r9
paddusb mm7, mm1
adc r14d, r15d
pop r9
minps xmm4, xmm2
mulss xmm1, xmm0
pop r14
comiss xmm3, xmm13
xor r13d, r15d
pop r15
psrlq mm1, 0x50
pcmpeqb mm2, mm1
pop r13
jmp 0x29a0c89f7
push r15
emms
nop
nop
push r12
adc r12d, r15d
pslld mm1, 0x49
emms
push r9
sar r15b, 0x17
cmp r15b, r12b
push rbx
pmaxub mm0, mm4
psraw mm1, 0x68
pop rbx
emms
comiss xmm14, xmm12
pand mm3, mm7
pop r9
emms
dec r12d
pop r12
paddusw mm2, mm7
subps xmm2, xmm9
pop r15
push r13
emms
packsswb mm1, mm7
not r13
push r14
paddb mm1, mm2
neg r14d
mulss xmm6, xmm11
push rbx
nop
psrld mm3, 0x62
push r11
maxss xmm14, xmm6
paddsb mm5, mm0
pop r11
sbb r14d, r13d
pmaxsw mm1, mm6
xchg r14w, r13w
pop rbx
emms
rcr r13, 3
pop r14
nop
dec r13d
pop r13
mov edx, 1
mov ecx, 2
call sub.msvcrt.dll_calloc
mov rcx, rax
push r12
psrld mm3, 0x25
push r15
inc r12
push rbx
nop
push r9
nop
push r10
psrld mm7, 0x51
pop r10
and r12b, r15b
pop r9
dec r15
pop rbx
emms
pop r15
nop
pop r12
mov edx, 0xe
call sub.msvcrt.dll_realloc
mov rcx, rax
xor eax, eax
push r12
mov r12, 1
push r9
pop r9
dec r12
jne 0x29a0c8a8b
pop r12
xor byte [rcx + rax], 0x71
push r13
psllq mm5, 0x65
push rax
movups xmm8, xmm0
push r9
xorps xmm4, xmm12
push r14
neg al
pop r14
emms
pop r9
pcmpgtd mm6, mm3
pop rax
psrlw mm2, 0x31
pop r13
test rax, rax
jne 0x29a0c8acb
mov eax, 1
jmp 0x29a0c8a82
call sub.msvcrt.dll_free
push r10
nop
psraw mm7, 0x56
push r15
movups xmm10, xmm9
emms
push rdx
sbb dx, r10w
mov r10w, 0x13
push r13
psrlw mm3, 1
cmp dx, r13w
pop r13
adc r15d, edx
pcmpgtb mm1, mm7
pop rdx
cmp r10d, r15d
emms
pop r15
emms
pmulhuw mm1, mm0
pop r10
push r8
not r8
comiss xmm8, xmm1
psrad mm4, 0x18
neg r8
maxss xmm0, xmm2
push r14
movlhps xmm10, xmm11
nop
neg r8d
rcl r14b, 9
xadd r14w, r8w
pop r14
nop
pminsw mm7, mm0
movlhps xmm9, xmm15
psrld mm1, 0x10
addss xmm6, xmm0
emms
pop r8
xor eax, eax
mov dword [rsp + 0x30], edi
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x40], rax
xor edx, edx
mov rcx, rbx
mov qword [rsp + 0x38], rax
mov rax, qword [rsi]
mov qword [rsp + 0x20], rbp
mov qword [rsp + 0x28], rax
call fcn.29a0bd88c
push r9
rol r9, 0xb
push r14
ucomiss xmm0, xmm10
push r8
comiss xmm14, xmm0
push rdx
sbb dx, 0xc
pop rdx
dec r8
pop r8
pslld mm4, 0x51
pop r14
inc r9d
pop r9
mov rdi, qword [rsp + 0x70]
push r12
comiss xmm4, xmm1
addps xmm13, xmm0
nop
shl r12b, 0xf
xorps xmm1, xmm4
not r12
minps xmm3, xmm5
psrad mm2, 0x51
emms
nop
psrad mm4, 0x2d
por mm0, mm3
pop r12
test eax, eax
je 0x29a0c8bf3
cmp r12d, 0x66
jne 0x29a0c8bdc
push r9
rol r9d, 6
pop r9
jmp 0x29a0c8be0
push rbx
emms
pop rbx
push r15
inc r15d
pop r15
call fcn.29a0c2c09
xor ecx, ecx
call fcn.29a0b88f4
cmp r12, 0x3f
jne 0x29a0c8c07
push r10
nop
pop r10
jmp 0x29a0c8c10
push r9
rol r9w, 3
pop r9
push r11
pslld mm5, 0xa
pop r11
call fcn.29a0c462b
cmp r12, 0x49
jne 0x29a0c8c8d
push r11
nop
inc r11
psubsb mm7, mm1
push r14
emms
xadd r11w, r14w
push r10
packuswb mm4, mm3
pop r10
psrlq mm7, 4
nop
pop r14
neg r11d
psrad mm5, 0x3a
minps xmm3, xmm8
pop r11
jmp 0x29a0c8cc9
push r13
emms
psllq mm7, 1
push r8
psrlq mm3, 0x36
emms
push r15
inc r15d
pslld mm3, 0x5e
push r10
emms
neg r15d
pop r10
not r15d
sub r13, 0x15
pop r15
pcmpgtd mm5, mm4
pslld mm7, 0x65
pop r8
emms
sbb r13, 0x14
pop r13
push rcx
nop
push r8
psubusw mm2, mm7
push rbx
shl cx, 1
push r11
nop
push r9
sub r9d, ecx
push rdx
pandn mm2, mm0
pop rdx
psrlw mm1, 0x43
pop r9
not rbx
pop r11
nop
pop rbx
sar r8w, 0x10
pop r8
pmaxub mm1, mm0
pop rcx
and edi, 0xffffffff
mov qword [rsi + 8], rdi
push r12
psrlq mm5, 0x68
inc r12
nop
psrlw mm6, 0x66
pandn mm5, mm2
push rdx
psubw mm6, mm0
mov dl, 0x14
shr r12w, 2
xor r12d, edx
nop
pop rdx
maxps xmm8, xmm7
nop
orps xmm11, xmm2
emms
psrlq mm6, 0x32
nop
pop r12
call fcn.29a0c3bee
mov rcx, rbx
call fcn.29a0b984d
nop
add rsp, 0x98
pop rbx
pop rsi
pop rdi
pop rbp
ret