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

Disassembly:
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xa8
mov rdi, rcx
push rcx
mov rcx, 3
push r9
emms
ror r9d, 2
push r13
nop
movlhps xmm13, xmm6
push r12
or r9b, r12b
psadbw mm3, mm2
push rax
emms
psrlw mm4, 0x31
pop rax
sub r12b, 0x16
shl r9b, 3
pop r12
mulss xmm2, xmm8
pcmpeqd mm6, mm5
pop r13
nop
pcmpgtd mm7, mm3
pop r9
dec rcx
jne 0x2f8887d4e
pop rcx
movabs rax, 0xc775af1c33b89d7b
mov qword [rsp + 0x64], rax
push r12
mov r12, 1
push rcx
pop rcx
dec r12
jne 0x2f8887da5
pop r12
movabs rax, 0xc703812d0489e44b
mov qword [rsp + 0x6c], rax
movabs rax, 0x35004a004f
mov qword [rsp + 0x80], rax
push rcx
psrlq mm0, 0x45
push r15
emms
pop r15
psrld mm7, 0x4f
pop rcx
movabs rax, 0x6a004f00530061
mov dword [rsp + 0x98], 0x59
mov qword [rsp + 0x90], rax
push r11
nop
psrld mm6, 0x29
psubw mm0, mm1
nop
emms
push r9
packssdw mm4, mm2
emms
emms
paddusw mm7, mm0
psraw mm1, 0xf
pop r9
psllq mm7, 0x6a
pmaxsw mm7, mm6
nop
pmaxub mm7, mm6
maxss xmm1, xmm4
dec r11
pop r11
lea rbp, [rsp + 0x90]
lea rsi, [rsp + 0x80]
mov rdx, rbp
mov rcx, rsi
call sub.msvcrt.dll_wcscmp
test eax, eax
jne 0x2f8887ea1
mov rax, rsi
lea rdx, [rsp + 0x86]
push r9
rcpss xmm3, xmm5
push r12
xorps xmm8, xmm15
push r14
emms
pop r14
psrlw mm0, 0x6b
pop r12
not r9b
pop r9
xor word [rax], 0x48
push r13
paddw mm2, mm0
movss xmm1, xmm10
dec r13
psraw mm2, 0x49
emms
orps xmm14, xmm12
inc r13
pop r13
add rax, 2
cmp rax, rdx
jne 0x2f8887e59
jmp 0x2f8887ebc
cmp r10, r8
jne 0x2f8887eae
push r12
emms
pop r12
jmp 0x2f8887eb4
push rdx
sar dx, 0xd
pop rdx
push r9
neg r9w
pop r9
cmp r10, 0xa
jne 0x2f8887ecf
push r11
emms
pop r11
jmp 0x2f8887ed8
push r9
sar r9w, 6
pop r9
push r12
psubsb mm4, mm3
pop r12
xor ebx, ebx
lea r12, [rsp + 0x64]
lea r13, [rsp + 0x6c]
cmp r10d, 0x66
jne 0x2f8887f5f
cmp r10b, 0x12
jne 0x2f8887f0e
push r11
addss xmm10, xmm9
push rcx
packuswb mm5, mm2
not r11
pop rcx
psrlq mm7, 0x49
pop r11
jmp 0x2f8887f20
push rdx
sbb rdx, 8
push r10
and dl, r10b
rol dl, 0x16
pop r10
emms
pop rdx
push r9
emms
push rax
pcmpeqw mm1, mm4
psrlw mm5, 0x6a
pop rax
not r9d
pop r9
jmp 0x2f8887f7b
cmp r10b, 0x54
jne 0x2f8887f72
push rbx
nop
pop rbx
jmp 0x2f8887f78
push r13
emms
pop r13
push rdx
nop
pop rdx
push r14
rcr r14, 6
pmulhuw mm2, mm0
emms
psrld mm7, 0x49
nop
push rax
packuswb mm3, mm5
psrad mm0, 0x4f
xorps xmm11, xmm6
nop
psrld mm1, 0x3e
pop rax
nop
pslld mm3, 0x3e
pminsw mm0, mm5
neg r14w
psllq mm0, 0x31
maxps xmm13, xmm2
pop r14
call fcn.2f88838ee
mov al, byte [rbx + r12]
xor al, byte [rbx + r13]
inc rbx
mov byte [rbx + r12 - 1], al
cmp rbx, 8
jne 0x2f8887eeb
push rdx
emms
pop rdx
mov word [rsp + 0x80], 0x7973
mov byte [rsp + 0x82], 0
push r8
rcl r8, 0x11
nop
nop
shr r8w, 0x15
nop
emms
emms
inc r8
dec r8d
emms
not r8
addss xmm15, xmm14
pop r8
mov dword [rsp + 0x90], 0x244f59
push r11
nop
push r10
psrlw mm6, 0x1c
push r8
maxss xmm12, xmm13
push rax
subps xmm15, xmm8
pop rax
rcr r8w, 0xe
pop r8
psrld mm3, 0x52
pop r10
xorps xmm13, xmm3
pop r11
mov rdx, rbp
mov rcx, rsi
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x2f8888095
push r15
nop
shr r15b, 8
addps xmm15, xmm4
push r14
psllq mm5, 0x3e
and r15, r14
emms
push rax
shl r14, 0xd
nop
push r8
psubusw mm0, mm3
psrad mm4, 0x54
pop r8
xadd r14, r15
addps xmm7, xmm13
pxor mm6, mm1
pop rax
emms
rol r14d, 0x11
pop r14
pand mm2, mm1
psllq mm7, 0x5e
pop r15
jmp 0x2f88880d2
push r11
paddusb mm1, mm2
andps xmm7, xmm6
emms
push rbx
psrld mm4, 0x2b
add bl, r11b
nop
push rdx
pmaddwd mm7, mm2
psrlq mm1, 0x46
push rcx
xor cl, r11b
psubusw mm1, mm4
pop rcx
nop
mov rbx, 0x13
subps xmm8, xmm2
pop rdx
pslld mm1, 0x53
nop
pop rbx
nop
psllq mm7, 0x1d
pop r11
push r9
punpcklwd mm6, mm0
pop r9
mov r8d, 8
mov rdx, r12
mov rcx, rbp
call fcn.2f887a80e
mov dword [rsp + 0x74], 0x46005a
mov word [rsp + 0x78], 0
push r10
por mm2, mm0
psrlw mm1, 0x22
push rbx
psraw mm0, 0x1d
inc r10
push r8
nop
psrld mm4, 1
push r13
emms
dec r8d
pop r13
adc r10, r8
pandn mm1, mm3
pop r8
emms
pslld mm0, 0x55
pop rbx
emms
emms
pop r10
mov dword [rsp + 0x80], 0x4b007c
mov word [rsp + 0x84], 0
push r10
pmulhuw mm7, mm6
push r8
not r10
push rcx
nop
push r14
pmulhuw mm0, mm2
push r13
rol r8d, 3
pop r13
rcpss xmm13, xmm9
pop r14
sbb r8b, 0x13
pop rcx
xor r8d, r10d
pop r8
psrlw mm5, 0x39
pop r10
lea r12, [rsp + 0x74]
mov rdx, rsi
mov rcx, r12
call sub.msvcrt.dll_wcscmp
test eax, eax
jne 0x2f88881d7
cmp r10d, eax
jne 0x2f88881b6
push rax
psadbw mm5, mm6
push r14
nop
pslld mm1, 0x44
pop r14
paddusb mm2, mm4
pop rax
jmp 0x2f88881c4
push rcx
emms
push r10
xchg rcx, r10
nop
pop r10
emms
pop rcx
push rbx
emms
push r11
psubw mm6, mm1
pcmpgtb mm5, mm1
pop r11
paddusw mm3, mm2
pop rbx
jmp 0x2f8888234
mov rax, rsi
lea rdx, [rsp + 0x84]
push r11
pslld mm4, 0x65
push r13
inc r13
pop r13
nop
pop r11
xor word [rax], 5
push rcx
psrlq mm7, 0x49
not rcx
sub ecx, 2
andnps xmm12, xmm15
emms
push r12
nop
movlhps xmm6, xmm5
psrad mm6, 0x38
andnps xmm5, xmm2
punpckldq mm0, mm2
pop r12
pslld mm7, 0x33
pslld mm7, 0x18
rcr ecx, 0x17
emms
pcmpgtd mm7, mm4
nop
pop rcx
add rax, 2
cmp rax, rdx
jne 0x2f88881e2
push rbx
mov rbx, 3
push rcx
push rax
pop rax
pop rcx
dec rbx
jne 0x2f888823c
pop rbx
push r14
emms
push r12
add r14b, r12b
push rdx
emms
push r8
psllq mm0, 0x11
push r15
mov r14b, r8b
pop r15
psrlq mm6, 0x52
pop r8
emms
pop rdx
nop
pop r12
xorps xmm8, xmm13
pop r14
call fcn.2f8884c54
mov rcx, rbp
call fcn.2f8886a64
mov rbx, rax
push rdx
not dx
psrlq mm3, 0x69
nop
psubusw mm6, mm0
movhlps xmm8, xmm12
movaps xmm9, xmm15
pslld mm0, 0x31
pop rdx
call sym.FillHatchUnicodeDialogText.dll_SubtractZoomedTouch
test rbx, rbx
jne 0x2f888841f
cmp r10w, 0x5c
jne 0x2f888830d
push rcx
rcr rcx, 8
push r11
psllq mm7, 0x56
pmulhuw mm3, mm7
push r9
emms
nop
not r11
push rdx
paddd mm7, mm0
neg r11w
psrld mm1, 0x61
nop
pop rdx
not r11b
adc r9, rcx
pmulhuw mm1, mm5
pop r9
nop
sbb r11, rcx
pop r11
movhlps xmm9, xmm10
pop rcx
jmp 0x2f888833f
push rax
sbb eax, 0x17
emms
emms
push r12
psrld mm1, 0x18
comiss xmm0, xmm8
emms
push rdx
nop
pandn mm6, mm7
emms
pop rdx
pslld mm7, 0x4d
pslld mm1, 0x59
rcr eax, 3
pop r12
emms
inc rax
inc rax
pop rax
push rdx
emms
push r12
psrlq mm4, 0x4c
nop
push r13
ucomiss xmm4, xmm8
adc r13, rdx
pandn mm6, mm0
push r9
psraw mm3, 0x42
mulss xmm1, xmm9
neg dx
pslld mm4, 0x4f
pop r9
neg r13w
emms
and dx, r12w
pop r13
emms
nop
pop r12
punpckhbw mm0, mm2
pop rdx
call fcn.2f88841d6
mov rcx, rbp
call fcn.2f8886a64
mov rbx, rax
push r11
emms
push rax
emms
push rcx
psrad mm0, 0x5b
push r13
psraw mm2, 0x38
push r10
emms
push r9
rol ecx, 3
push r14
and r11b, r14b
pop r14
sar r13b, 4
pop r9
emms
pop r10
adc eax, r11d
pop r13
neg ecx
pop rcx
sub r11b, 0xc
pop rax
psrad mm5, 9
pop r11
call fcn.2f8884ea5
test rbx, rbx
jne 0x2f888841f
cmp r10, r8
jne 0x2f88883f1
push r9
nop
push r13
and r9, r13
shl r9d, 0xc
pop r13
inc r9
pop r9
jmp 0x2f8888404
push r11
andnps xmm10, xmm15
push r8
or r11b, r8b
emms
pop r8
emms
pop r11
push rax
emms
push r10
maxss xmm12, xmm1
rol r10d, 0x12
pop r10
dec rax
pop rax
xor ecx, ecx
call fcn.2f887b19c
cmp r10b, r12b
jne 0x2f8888435
push r8
pxor mm4, mm1
pop r8
jmp 0x2f888843d
push r11
psraw mm2, 0x68
pop r11
push rdx
psadbw mm0, mm2
pop rdx
call fcn.2f88879e9
mov rbp, rax
cmp r10w, 0xe
jne 0x2f8888460
push rdx
movss xmm13, xmm9
pop rdx
jmp 0x2f8888467
push r13
dec r13d
pop r13
push r15
sar r15b, 0xd
pop r15
mov r9d, 4
mov r8d, 0x3000
mov rdx, rax
xor ecx, ecx
call fcn.2f8872c4d
mov qword [rdi], rax
push r11
mov r11w, 0x14
neg r11b
push rbx
mulss xmm4, xmm10
inc rbx
push rdx
add bx, r11w
emms
push r8
emms
psraw mm3, 0x5d
pop r8
inc ebx
nop
pop rdx
rcpss xmm11, xmm8
psrad mm3, 0x36
pop rbx
nop
subss xmm5, xmm12
pop r11
push rdx
mov rdx, 1
cmp r10d, r11d
jne 0x2f88884e0
push r10
ucomiss xmm12, xmm1
pop r10
jmp 0x2f88884e7
push r8
por mm1, mm2
pop r8
push r14
emms
pop r14
dec rdx
jne 0x2f88884ca
pop rdx
push r10
nop
push r12
pminsw mm7, mm6
neg r10d
push r11
dec r12d
inc r11d
pslld mm0, 0x26
push r15
comiss xmm11, xmm13
add r15w, r11w
emms
emms
pop r15
emms
or r11w, r12w
emms
pop r11
punpcklbw mm3, mm1
rcl r10w, 0xf
pop r12
xorps xmm13, xmm3
pop r10
push r12
andnps xmm11, xmm1
nop
nop
shr r12, 3
mulps xmm4, xmm14
push r10
emms
pminsw mm4, mm1
emms
rcpss xmm4, xmm6
push r13
psraw mm7, 0x57
add r13b, r10b
neg r13w
push rdx
pcmpeqb mm7, mm1
mulss xmm5, xmm13
push rbx
psrlq mm3, 0xb
pop rbx
adc r13d, edx
nop
pop rdx
nop
and r13b, r12b
punpckldq mm7, mm4
pop r13
emms
movups xmm10, xmm4
dec r12d
rcr r10, 5
pop r10
emms
psrlq mm6, 0x4a
nop
mulps xmm5, xmm0
emms
pop r12
push r9
nop
push r10
psllq mm3, 0x50
punpckhwd mm4, mm7
push r11
emms
emms
emms
pop r11
dec r10d
emms
pop r10
psraw mm5, 0xd
pop r9
push rcx
mov rcx, 1
push rax
inc eax
addps xmm9, xmm0
emms
shl rax, 0x11
psrlq mm1, 0x11
push r8
nop
pcmpgtd mm3, mm6
nop
pmaddwd mm6, mm5
dec eax
pop r8
not rax
movups xmm6, xmm9
psraw mm1, 0x59
dec rax
movss xmm7, xmm14
neg al
pop rax
dec rcx
jne 0x2f88885c3
pop rcx
cmp r10d, ebx
jne 0x2f8888662
push r14
rol r14w, 0xd
push r12
nop
mov r12w, 1
push r9
emms
psraw mm4, 0x42
subps xmm8, xmm11
pop r9
pslld mm6, 0x29
rcl r14, 0x16
pop r12
pslld mm2, 0x49
pop r14
jmp 0x2f8888682
cmp r10b, 0x38
jne 0x2f8888675
push r8
nop
pop r8
jmp 0x2f888867a
push r11
nop
pop r11
push r9
shr r9d, 5
pop r9
push rbx
comiss xmm11, xmm12
not rbx
shl ebx, 5
not bx
not bx
push rax
pandn mm2, mm4
sub ax, bx
movups xmm6, xmm0
nop
push r12
psllq mm6, 0x23
or bl, r12b
emms
push rcx
pmulhuw mm5, mm0
nop
push r11
emms
pop r11
test rcx, rax
not ecx
pop rcx
pslld mm4, 0x69
subss xmm7, xmm3
psrad mm5, 0x5b
pop r12
pcmpeqb mm5, mm2
test bx, ax
nop
xadd al, bl
pop rax
rcpps xmm14, xmm6
paddusb mm3, mm1
rcr ebx, 0x17
nop
emms
pop rbx
xor eax, eax
mov dword [rsp + 0x30], ebp
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 [rdi]
mov qword [rsp + 0x20], rsi
mov qword [rsp + 0x28], rax
call fcn.2f8880c32
mov ebp, eax
movabs rax, 0x35004a004f
mov qword [rsp + 0x5c], rax
push rcx
psrlq mm0, 0x45
push r15
emms
pop r15
psrld mm7, 0x4f
pop rcx
movabs rax, 0x6a004f00530061
mov dword [rsp + 0x7c], 0x59
mov qword [rsp + 0x74], rax
push r11
nop
psrld mm6, 0x29
psubw mm0, mm1
nop
emms
push r9
packssdw mm4, mm2
emms
emms
paddusw mm7, mm0
psraw mm1, 0xf
pop r9
psllq mm7, 0x6a
pmaxsw mm7, mm6
nop
pmaxub mm7, mm6
maxss xmm1, xmm4
dec r11
pop r11
lea rsi, [rsp + 0x5c]
mov rdx, r12
mov rcx, rsi
call sub.msvcrt.dll_wcscmp
test eax, eax
jne 0x2f88887dd
mov rdx, rsi
lea rax, [rsp + 0x62]
push r9
rcpss xmm3, xmm5
push r12
xorps xmm8, xmm15
push r14
emms
pop r14
psrlw mm0, 0x6b
pop r12
not r9b
pop r9
xor word [rdx], 0x48
push r13
paddw mm2, mm0
movss xmm1, xmm10
dec r13
psraw mm2, 0x49
emms
orps xmm14, xmm12
inc r13
pop r13
add rdx, 2
cmp rdx, rax
jne 0x2f8888795
jmp 0x2f88887f8
cmp r10, r8
jne 0x2f88887ea
push r12
emms
pop r12
jmp 0x2f88887f0
push rdx
sar dx, 0xd
pop rdx
push r9
neg r9w
pop r9
cmp r10, 0xa
jne 0x2f888880b
push r11
emms
pop r11
jmp 0x2f8888814
push r9
sar r9w, 6
pop r9
push r12
psubsb mm4, mm3
pop r12
mov rsi, qword [rsp + 0x88]
push r14
not r14w
psubsb mm1, mm4
shr r14d, 0x10
nop
nop
mov r14w, 0x16
pcmpgtw mm7, mm6
emms
emms
nop
neg r14d
nop
pop r14
push rbx
emms
push r11
movss xmm10, xmm8
push r12
packuswb mm5, mm1
pop r12
movlhps xmm5, xmm10
pop r11
subps xmm9, xmm1
pop rbx
push r11
dec r11d
push r10
dec r10
push r9
sub r9w, 0xf
push rbx
rcpps xmm14, xmm9
push r8
emms
push rax
ror r10w, 0x15
pop rax
psllq mm7, 0x66
pop r8
sbb r10w, r11w
pop rbx
emms
pop r9
pminsw mm0, mm7
pop r10
pcmpgtd mm6, mm7
pop r11
test ebp, ebp
je 0x2f88888bb
push rcx
nop
push rax
ror cl, 0x14
push r8
neg r8d
pop r8
paddb mm2, mm6
pop rax
movlhps xmm6, xmm5
pop rcx
xor ecx, ecx
call fcn.2f887b19c
push rdx
psraw mm0, 0x25
dec edx
emms
psrad mm4, 0x21
nop
rcr dx, 5
neg dx
pop rdx
cmp r10b, bl
je 0x2f8888a81
push r10
psrlq mm0, 0x26
not r10b
dec r10
nop
emms
push rdx
psllq mm7, 0x2e
shr r10, 0x11
movss xmm10, xmm7
mulss xmm12, xmm1
push rcx
emms
orps xmm2, xmm11
xchg edx, r10d
push r9
dec r10d
emms
push r13
nop
pop r13
mov dx, 0xe
psrlw mm3, 6
pop r9
emms
nop
psrlw mm5, 0xe
pop rcx
sub rdx, 0xe
nop
psubsb mm5, mm3
movhlps xmm12, xmm9
pop rdx
addss xmm13, xmm10
pcmpeqw mm2, mm7
not r10b
not r10
nop
pop r10
cmp rcx, 0x65
je 0x2f8888ab3
push r14
packsswb mm4, mm3
push r8
or r14, r8
push r9
nop
push r15
emms
push rax
pcmpgtw mm0, mm6
pop rax
dec r9
pop r15
emms
pop r9
ror r14d, 0xf
pop r8
pminsw mm4, mm2
pop r14
cmp edx, 0x3e
je 0x2f8888ac7
push r15
emms
andps xmm6, xmm1
mulss xmm6, xmm7
shr r15b, 0x10
rol r15b, 7
push r12
dec r15
psraw mm1, 0x22
neg r12w
sar r12, 6
push r14
movss xmm0, xmm5
neg r15b
psrld mm6, 0x15
push rbx
ror bl, 0x13
dec r12d
push r9
neg r9d
pop r9
nop
psraw mm1, 0x13
pop rbx
pcmpgtd mm0, mm6
emms
addss xmm5, xmm10
pop r14
psllq mm7, 0x47
xadd r12w, r15w
emms
shr r12w, 0x13
pop r12
nop
psrlw mm0, 0x66
psrad mm7, 0x11
paddb mm4, mm0
mov r15b, 4
pop r15
cmp cl, dl
je 0x2f8888ace
push r14
addps xmm5, xmm4
push rdx
packsswb mm4, mm1
rcr r14, 0xb
push rcx
nop
not r14d
shl r14d, 0x10
push r15
rol cl, 5
psraw mm1, 0xe
dec rdx
dec r15
push r9
sar dl, 0x13
pslld mm5, 0x50
paddb mm5, mm4
emms
emms
pop r9
psrlq mm5, 0x2c
nop
psraw mm1, 0x2e
neg dx
pop r15
and edx, ecx
psllq mm0, 0x29
shl dl, 0x15
pop rcx
add r14d, edx
neg edx
pop rdx
emms
pop r14
cmp edx, ecx
je 0x2f8888ae3
push rdx
packsswb mm2, mm1
push r11
and r11w, dx
push rbx
paddd mm6, mm1
pop rbx
nop
pop r11
xorps xmm6, xmm2
pop rdx
cmp r10d, r11d
je 0x2f8888b1a
jne 0x2f8888b34
push rdx
psrlq mm0, 0x4a
addss xmm9, xmm10
psrld mm4, 0x49
neg dx
push r13
emms
psrlw mm1, 0x54
emms
packuswb mm6, mm1
pop r13
dec edx
andnps xmm7, xmm1
not rdx
ucomiss xmm8, xmm12
pop rdx
jmp 0x2f8888b34
push r10
punpcklwd mm3, mm4
push rbx
andnps xmm6, xmm13
pop rbx
movss xmm14, xmm4
pop r10
jmp 0x2f8888b34
push r9
nop
pop r9
jmp 0x2f8888b34
push rcx
pcmpeqd mm1, mm5
push r15
ror r15, 0xe
movlhps xmm11, xmm2
pop r15
emms
pop rcx
jmp 0x2f8888b34
push r9
rcr r9w, 0xe
pminsw mm6, mm0
psrlw mm4, 0xc
psllq mm1, 0x4d
push rbx
psraw mm7, 0x3b
paddusw mm5, mm3
rcr bl, 0x15
xadd r9b, bl
pop rbx
addss xmm12, xmm9
nop
mov r9, 2
sar r9, 9
pop r9
jmp 0x2f8888b34
cmp r10w, 0x16
jne 0x2f8888b29
push r12
emms
pop r12
jmp 0x2f8888b2e
push r10
nop
pop r10
push rax
maxps xmm13, xmm12
pop rax
push r15
shl r15b, 0x17
push rax
nop
nop
pop rax
emms
pop r15
push r11
shr r11d, 0x10
psrlw mm6, 0x17
push r12
mov r12, r11
pop r12
nop
sar r11, 9
pop r11
push r12
shr r12, 0x11
push rbx
psrad mm7, 0x44
emms
push r10
emms
nop
nop
pop r10
nop
not bl
pop rbx
neg r12w
pop r12
and esi, 0xffffffff
mov qword [rdi + 8], rsi
cmp r10w, r15w
jne 0x2f8888b8e
push rax
ucomiss xmm2, xmm14
pop rax
jmp 0x2f8888b94
push r13
emms
pop r13
push rcx
emms
pop rcx
call fcn.2f8883b50
mov rcx, rbx
call fcn.2f887c80c
nop
add rsp, 0xa8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
ret