Function at 0x2904f61ec
Capabilities:
Authenticate hmac
Encode data using base64
Encode data using xor
Parse pe header

Disassembly:
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x488
mov rbp, rcx
cmp r12b, r10b
jne 0x2904f6212
push r8
nop
pop r8
jmp 0x2904f6217
push r12
nop
pop r12
push r11
paddd mm3, mm4
pop r11
push r13
dec r13d
psraw mm5, 0x6b
mulps xmm9, xmm3
push r8
cmp r8b, r13b
nop
push r9
neg r8
pop r9
emms
emms
pop r8
emms
emms
shl r13d, 0x13
pop r13
call sym.VerifyPenSourceCaps.dll_TickOfflineSubtractCount
mov word [rsp + 0x70], 0x5c
push rdx
dec edx
push rax
paddsb mm0, mm3
emms
pop rax
mov edx, 0xc
pop rdx
call fcn.2904f3e98
mov word [rsp + 0x72], 0x3f
cmp r12, rax
jne 0x2904f6285
push r9
mulps xmm9, xmm3
pop r9
jmp 0x2904f628a
push r10
nop
pop r10
push r15
psrlw mm6, 0x17
pop r15
cmp r12w, 0x25
jne 0x2904f62af
push r9
psrlq mm2, 0x58
push r14
emms
psubw mm5, mm7
pop r14
pmaddwd mm5, mm3
pop r9
jmp 0x2904f62c2
push r15
psllq mm2, 0x23
push rbx
rcl rbx, 5
andnps xmm6, xmm14
pop rbx
nop
pop r15
push r12
pcmpeqb mm4, mm6
push r8
sbb r12b, r8b
emms
pop r8
psrlw mm2, 0x5f
pop r12
push rbx
rcr rbx, 0xa
psrad mm7, 0x4f
rcr ebx, 5
emms
emms
sar ebx, 0xa
psraw mm5, 0x5a
pop rbx
mov word [rsp + 0x74], 0x3f
push r10
paddb mm7, mm4
rcpps xmm10, xmm12
mulss xmm12, xmm8
sar r10w, 3
push r15
neg r15b
nop
psubsb mm2, mm5
push r14
inc r15d
mulss xmm12, xmm7
push r9
mulps xmm6, xmm8
pop r9
nop
psrld mm0, 0x40
pop r14
emms
emms
inc r10
pop r15
sub r10w, 0x11
sub r10d, 0x16
psrld mm2, 0x1c
punpckhwd mm6, mm5
pop r10
mov word [rsp + 0x76], 0x5c
cmp r12, r11
je 0x2904f64c3
push r14
rcl r14w, 0xf
push r11
neg r14d
pop r11
punpcklwd mm3, mm4
pop r14
cmp r11w, bx
je 0x2904f652d
push r12
emms
pcmpeqd mm7, mm4
addss xmm8, xmm6
push rdx
emms
nop
shl r12w, 0xd
push r11
ror r12, 0x12
mov r12b, 0x12
sbb r12d, r11d
pop r11
psrad mm2, 0x20
psrld mm2, 0x48
test r12d, edx
pop rdx
inc r12d
emms
emms
pop r12
cmp rax, r9
je 0x2904f6572
push r10
nop
emms
mulps xmm2, xmm15
nop
paddw mm2, mm0
push rax
andnps xmm13, xmm1
neg eax
nop
shl r10w, 0xc
push r11
subss xmm7, xmm11
punpckhwd mm2, mm1
sbb r10d, 8
push r14
pmullw mm4, mm7
psraw mm5, 4
push r13
por mm0, mm6
pop r13
psrad mm5, 0x4b
packsswb mm3, mm1
pop r14
nop
psllq mm1, 0x6b
rcr rax, 3
pop r11
psrlw mm1, 0x23
nop
pslld mm5, 0x39
punpckldq mm6, mm5
pop rax
subps xmm6, xmm14
rol r10, 0xc
dec r10d
subss xmm12, xmm6
psrad mm4, 0x35
pop r10
cmp r11b, 0x5f
je 0x2904f659e
push rbx
pcmpeqd mm4, mm1
emms
nop
psubsb mm5, mm7
nop
push r14
rcr bl, 0x16
add r14d, ebx
psrad mm7, 0x67
ucomiss xmm3, xmm5
push r11
mulps xmm1, xmm7
shl ebx, 0x16
psubusw mm7, mm3
push r13
pmullw mm6, mm3
emms
push rdx
cmp r11, rbx
pop rdx
emms
emms
pop r13
not r11w
shl r11w, 3
andps xmm5, xmm13
pop r11
emms
psraw mm6, 7
psllq mm0, 0x18
mov r14, rbx
pop r14
psrlq mm1, 0x58
shl rbx, 0x13
punpcklwd mm2, mm6
andps xmm11, xmm14
dec rbx
pop rbx
cmp r10b, 0x4b
je 0x2904f65ca
push r15
addps xmm3, xmm14
push r12
psrld mm1, 0xe
dec r12d
pop r12
inc r15
pop r15
cmp r12, rdx
je 0x2904f65e5
jne 0x2904f661d
push r13
dec r13d
push r8
not r8d
andnps xmm3, xmm4
push rcx
emms
dec r8
emms
push r10
emms
xor cl, r8b
andps xmm14, xmm4
psraw mm4, 0x2b
push r14
psrad mm3, 0x62
neg r8w
shl r10, 0xb
emms
test r10d, r13d
pop r14
paddsb mm1, mm4
shr r8b, 0x10
addss xmm11, xmm14
adc r10d, r13d
pop r10
addss xmm13, xmm9
paddusw mm3, mm0
xorps xmm13, xmm14
pop rcx
or r13w, r8w
rcr r8w, 1
pop r8
emms
pop r13
jmp 0x2904f661d
push r15
comiss xmm8, xmm11
push r13
nop
or r15, r13
push r14
pmaxsw mm6, mm5
packssdw mm4, mm5
movlhps xmm11, xmm6
push r12
mov r12b, 0x16
paddw mm1, mm3
nop
psrad mm5, 0x42
pop r12
add r13w, r14w
paddsw mm1, mm3
psrad mm2, 0x49
pop r14
sub r13b, 0x13
xchg r13d, r15d
pop r13
nop
pop r15
jmp 0x2904f661d
push r12
shl r12b, 0xe
push r8
ucomiss xmm11, xmm13
psraw mm2, 0x64
push r15
pand mm3, mm4
psubusw mm3, mm0
nop
pop r15
not r8w
not r12
pop r8
sub r12d, 2
pop r12
jmp 0x2904f661d
push r11
sar r11d, 2
neg r11w
sar r11, 0x14
ucomiss xmm5, xmm8
pcmpeqw mm6, mm3
nop
nop
andps xmm13, xmm14
paddd mm5, mm7
psubsb mm4, mm3
punpckhwd mm3, mm4
psllq mm1, 0x5a
pop r11
jmp 0x2904f661d
push r13
maxss xmm14, xmm4
push r10
nop
push rax
dec r10d
pop rax
pmulhuw mm7, mm4
pop r10
neg r13
pop r13
jmp 0x2904f661d
push rdx
not edx
push rbx
movups xmm14, xmm12
nop
push rax
inc eax
psrad mm2, 0x3a
emms
push r15
nop
psraw mm7, 0x51
emms
xadd eax, ebx
pop r15
inc eax
mov rdx, 6
neg rax
pop rax
sbb edx, 6
pslld mm3, 0x29
pop rbx
emms
pop rdx
push r13
psllq mm4, 0x5c
neg r13w
rol r13d, 0x17
push r14
inc r13d
pmulhuw mm2, mm6
inc r14d
push r10
paddsb mm4, mm7
emms
push r12
psrlw mm3, 0x46
psraw mm1, 0x37
pop r12
packsswb mm3, mm6
emms
psrlq mm5, 0x48
pop r10
pcmpgtd mm2, mm7
paddw mm7, mm3
pop r14
nop
shr r13d, 0xd
pop r13
mov word [rsp + 0x60], 0x6737
mov byte [rsp + 0x62], 0
push r8
nop
push r15
emms
push r10
emms
push r9
paddd mm3, mm1
push rax
pmulhuw mm7, mm1
push rcx
and r15b, cl
pop rcx
add r9b, r15b
pop rax
sbb r15b, 0xb
pop r9
nop
pop r10
nop
pop r15
nop
pop r8
mov word [rsp + 0x278], 0x7c32
mov byte [rsp + 0x27a], 0
push r9
psrlw mm1, 0x29
pslld mm6, 0x57
pslld mm3, 0x17
pmulhuw mm3, mm7
pmulhuw mm0, mm3
andnps xmm11, xmm15
minps xmm13, xmm14
pop r9
lea rbx, [rsp + 0x278]
lea rsi, [rsp + 0x60]
mov rdx, rbx
mov rcx, rsi
call sub.msvcrt.dll__mbscmp
test eax, eax
jne 0x2904f6790
mov rax, rsi
lea rdx, [rsp + 0x62]
push r9
paddb mm5, mm4
push rcx
inc ecx
emms
push r13
not ecx
xadd r13b, cl
nop
push r8
nop
emms
mov r8b, 3
subss xmm3, xmm5
push r11
emms
ror r11d, 8
psllq mm5, 0x32
pcmpeqd mm7, mm3
emms
pop r11
emms
rcpss xmm6, xmm2
ror r8w, 0x15
packssdw mm0, mm5
pop r8
minps xmm14, xmm9
pslld mm5, 0x55
dec rcx
pop r13
movups xmm0, xmm5
emms
pop rcx
movss xmm4, xmm12
pop r9
xor byte [rax], 0x61
push rcx
neg cl
push rdx
psrad mm7, 0x5b
push r9
dec r9d
push rax
pand mm2, mm3
push r11
dec ecx
push r8
shl ecx, 3
pop r8
emms
pop r11
psrad mm5, 0x2f
pop rax
nop
pop r9
mov edx, 8
pop rdx
nop
pop rcx
inc rax
cmp rax, rdx
jne 0x2904f66f3
jmp 0x2904f67ee
push r8
ror r8d, 0xe
push r12
pcmpgtw mm6, mm0
subps xmm0, xmm10
push r13
rcr r8b, 0x13
or r12b, r13b
sbb r13b, r12b
push r10
not r13w
nop
nop
emms
push rbx
pcmpeqb mm0, mm3
dec r10
dec r10
sbb r10b, r13b
paddb mm0, mm5
pop rbx
not r13d
emms
neg r13b
psrlw mm0, 0x5f
pop r10
not r8w
or r12, r8
dec r12d
pop r13
psadbw mm1, mm6
shl r8w, 4
pop r12
emms
pop r8
push rax
paddsb mm0, mm2
inc rax
andnps xmm12, xmm7
movlhps xmm7, xmm6
push r12
subps xmm14, xmm11
punpckhbw mm6, mm1
neg rax
ror ax, 0x13
pop r12
nop
addps xmm8, xmm1
addss xmm2, xmm8
emms
pop rax
push r13
emms
push rbx
rol r13, 5
nop
push r9
nop
nop
dec r13
push rdx
pmaxub mm4, mm0
nop
pcmpgtb mm4, mm2
emms
push r8
emms
emms
rcr dx, 1
cmp r8w, dx
addss xmm6, xmm0
pop r8
adc r9, r13
not r13
paddd mm1, mm3
add r9b, dl
pop rdx
sub r13d, 3
emms
emms
pop r9
cmp rbx, r13
nop
pop rbx
mulss xmm2, xmm13
pop r13
call fcn.2904f4ad9
xor r8d, r8d
mov qword [rsp + 0x38], r8
cmp r12, r11
je 0x2904f69f0
push r14
rcl r14w, 0xf
push r11
neg r14d
pop r11
punpcklwd mm3, mm4
pop r14
cmp r11w, bx
je 0x2904f6a5a
push r12
emms
pcmpeqd mm7, mm4
addss xmm8, xmm6
push rdx
emms
nop
shl r12w, 0xd
push r11
ror r12, 0x12
mov r12b, 0x12
sbb r12d, r11d
pop r11
psrad mm2, 0x20
psrld mm2, 0x48
test r12d, edx
pop rdx
inc r12d
emms
emms
pop r12
cmp rax, r9
je 0x2904f6a9f
push r10
nop
emms
mulps xmm2, xmm15
nop
paddw mm2, mm0
push rax
andnps xmm13, xmm1
neg eax
nop
shl r10w, 0xc
push r11
subss xmm7, xmm11
punpckhwd mm2, mm1
sbb r10d, 8
push r14
pmullw mm4, mm7
psraw mm5, 4
push r13
por mm0, mm6
pop r13
psrad mm5, 0x4b
packsswb mm3, mm1
pop r14
nop
psllq mm1, 0x6b
rcr rax, 3
pop r11
psrlw mm1, 0x23
nop
pslld mm5, 0x39
punpckldq mm6, mm5
pop rax
subps xmm6, xmm14
rol r10, 0xc
dec r10d
subss xmm12, xmm6
psrad mm4, 0x35
pop r10
cmp r11b, 0x5f
je 0x2904f6acb
push rbx
pcmpeqd mm4, mm1
emms
nop
psubsb mm5, mm7
nop
push r14
rcr bl, 0x16
add r14d, ebx
psrad mm7, 0x67
ucomiss xmm3, xmm5
push r11
mulps xmm1, xmm7
shl ebx, 0x16
psubusw mm7, mm3
push r13
pmullw mm6, mm3
emms
push rdx
cmp r11, rbx
pop rdx
emms
emms
pop r13
not r11w
shl r11w, 3
andps xmm5, xmm13
pop r11
emms
psraw mm6, 7
psllq mm0, 0x18
mov r14, rbx
pop r14
psrlq mm1, 0x58
shl rbx, 0x13
punpcklwd mm2, mm6
andps xmm11, xmm14
dec rbx
pop rbx
cmp r10b, 0x4b
je 0x2904f6af7
push r15
addps xmm3, xmm14
push r12
psrld mm1, 0xe
dec r12d
pop r12
inc r15
pop r15
cmp r12, rdx
je 0x2904f6b12
jne 0x2904f6b4a
push r13
dec r13d
push r8
not r8d
andnps xmm3, xmm4
push rcx
emms
dec r8
emms
push r10
emms
xor cl, r8b
andps xmm14, xmm4
psraw mm4, 0x2b
push r14
psrad mm3, 0x62
neg r8w
shl r10, 0xb
emms
test r10d, r13d
pop r14
paddsb mm1, mm4
shr r8b, 0x10
addss xmm11, xmm14
adc r10d, r13d
pop r10
addss xmm13, xmm9
paddusw mm3, mm0
xorps xmm13, xmm14
pop rcx
or r13w, r8w
rcr r8w, 1
pop r8
emms
pop r13
jmp 0x2904f6b4a
push r15
comiss xmm8, xmm11
push r13
nop
or r15, r13
push r14
pmaxsw mm6, mm5
packssdw mm4, mm5
movlhps xmm11, xmm6
push r12
mov r12b, 0x16
paddw mm1, mm3
nop
psrad mm5, 0x42
pop r12
add r13w, r14w
paddsw mm1, mm3
psrad mm2, 0x49
pop r14
sub r13b, 0x13
xchg r13d, r15d
pop r13
nop
pop r15
jmp 0x2904f6b4a
push r12
shl r12b, 0xe
push r8
ucomiss xmm11, xmm13
psraw mm2, 0x64
push r15
pand mm3, mm4
psubusw mm3, mm0
nop
pop r15
not r8w
not r12
pop r8
sub r12d, 2
pop r12
jmp 0x2904f6b4a
push r11
sar r11d, 2
neg r11w
sar r11, 0x14
ucomiss xmm5, xmm8
pcmpeqw mm6, mm3
nop
nop
andps xmm13, xmm14
paddd mm5, mm7
psubsb mm4, mm3
punpckhwd mm3, mm4
psllq mm1, 0x5a
pop r11
jmp 0x2904f6b4a
push r13
maxss xmm14, xmm4
push r10
nop
push rax
dec r10d
pop rax
pmulhuw mm7, mm4
pop r10
neg r13
pop r13
jmp 0x2904f6b4a
push rdx
not edx
push rbx
movups xmm14, xmm12
nop
push rax
inc eax
psrad mm2, 0x3a
emms
push r15
nop
psraw mm7, 0x51
emms
xadd eax, ebx
pop r15
inc eax
mov rdx, 6
neg rax
pop rax
sbb edx, 6
pslld mm3, 0x29
pop rbx
emms
pop rdx
push r13
psllq mm4, 0x5c
neg r13w
rol r13d, 0x17
push r14
inc r13d
pmulhuw mm2, mm6
inc r14d
push r10
paddsb mm4, mm7
emms
push r12
psrlw mm3, 0x46
psraw mm1, 0x37
pop r12
packsswb mm3, mm6
emms
psrlq mm5, 0x48
pop r10
pcmpgtd mm2, mm7
paddw mm7, mm3
pop r14
nop
shr r13d, 0xd
pop r13
lea rdx, [fcn.2904f61ec]
lea r8, [rsp + 0x38]
mov ecx, 6
call fcn.2904eb53e
mov edi, eax
cmp r12, 0x3f
jne 0x2904f6c39
push r9
nop
shl r9, 0x17
push rax
psrld mm1, 0x69
shr ax, 1
push r15
maxps xmm15, xmm8
psrlw mm3, 0x37
push rbx
emms
neg r9d
push r10
sbb r10, r9
psrlq mm2, 0x47
pop r10
maxps xmm15, xmm10
shl eax, 1
pop rbx
orps xmm11, xmm1
dec r15
pop r15
mulss xmm4, xmm14
shl rax, 4
pop rax
emms
nop
pop r9
jmp 0x2904f6c40
push r15
inc r15
pop r15
push r8
emms
push r14
sbb r8b, r14b
por mm2, mm4
push rbx
shr bl, 0x10
sar r8b, 6
inc r8d
pop rbx
emms
nop
pop r14
rol r8d, 0x14
pop r8
call fcn.2904f3d4a
test edi, edi
je 0x2904f71b0
push rdx
paddw mm3, mm4
pop rdx
movabs rax, 0x2e0024005f007c
mov word [rsp + 0x280], 0
mov qword [rsp + 0x278], rax
push rcx
sar cx, 0x12
nop
nop
pslld mm6, 0x41
push r12
sub r12, 0x10
psadbw mm7, mm4
pand mm6, mm7
paddsw mm6, mm7
pop r12
psubw mm2, mm6
psadbw mm7, mm3
nop
rcl ecx, 4
pop rcx
mov rcx, rbx
call sub.msvcrt.dll_wcslen
cmp rax, 2
jne 0x2904f6d29
mov rax, rbx
lea rdx, [rsp + 0x280]
push r15
emms
nop
emms
rcpss xmm3, xmm14
shr r15w, 0xb
push r10
maxps xmm4, xmm15
sbb r10, 0xc
dec r10d
nop
psrld mm7, 0x46
pop r10
mulss xmm2, xmm15
sub r15d, 0xc
nop
dec r15
nop
paddb mm6, mm7
pop r15
xor word [rax], 0x41
push r11
emms
push rdx
psrld mm1, 0x24
nop
pop rdx
rol r11d, 0xb
pop r11
add rax, 2
cmp rax, rdx
jne 0x2904f6cd1
jmp 0x2904f6d98
push r11
shl r11w, 6
por mm0, mm5
psrld mm3, 0x52
nop
punpckhbw mm2, mm6
push rdx
paddsb mm5, mm2
shl rdx, 6
movhlps xmm0, xmm5
packsswb mm1, mm0
push r13
comiss xmm10, xmm14
psllq mm3, 0x1a
nop
push r15
pminsw mm1, mm0
pxor mm4, mm5
push r10
paddusb mm3, mm5
pop r10
sub edx, r13d
psubsb mm3, mm2
pop r15
not r13b
xadd rdx, r13
dec r11
pop r13
or rdx, r11
andnps xmm7, xmm3
psrad mm5, 0x65
psrld mm6, 0x51
pop rdx
emms
emms
psrld mm4, 0x65
maxps xmm7, xmm9
xorps xmm4, xmm8
pop r11
push r13
ucomiss xmm6, xmm8
pandn mm4, mm1
dec r13d
emms
nop
push r14
nop
pminsw mm4, mm2
shl r13w, 0xe
emms
pcmpeqb mm3, mm1
pop r14
nop
nop
comiss xmm9, xmm6
nop
shr r13w, 0x11
paddusb mm2, mm3
pop r13
mov rcx, qword [rsp + 0x38]
mov r8d, 0x104
mov rdx, rbx
call fcn.2904e8ba2
mov dword [rsp + 0x58], 0x46
mov edi, eax
movabs rax, 0x7800680057006e
mov qword [rsp + 0x50], rax
push r9
emms
push r10
orps xmm3, xmm9
xchg r10d, r9d
push r8
or r8, r10
inc r10d
paddusw mm6, mm7
pop r8
mulps xmm9, xmm5
rcr r10, 0x13
pop r10
pcmpgtw mm1, mm3
pop r9
movabs rax, 0x4f0038004f0029
mov dword [rsp + 0x68], 0x44
mov qword [rsp + 0x60], rax
cmp r12w, ax
jne 0x2904f6e4a
push r13
pandn mm4, mm6
pop r13
jmp 0x2904f6e50
push r8
emms
pop r8
push r14
movlhps xmm15, xmm6
pop r14
lea r12, [rsp + 0x50]
mov rdx, rsi
mov rcx, r12
call sub.msvcrt.dll_wcscmp
test eax, eax
jne 0x2904f6ea2
push r8
mov r8, 1
push rbx
psrlw mm7, 0x52
push rcx
sub cx, bx
andps xmm3, xmm1
push r9
pcmpeqd mm0, mm1
inc r9
not rcx
pop r9
nop
or ebx, ecx
pop rcx
psubsb mm3, mm2
pop rbx
dec r8
jne 0x2904f6e75
pop r8
jmp 0x2904f6f33
mov rdx, rsi
lea rax, [rsp + 0x6a]
push rcx
dec ecx
psraw mm7, 4
not cl
sbb cx, 0x15
psrlw mm6, 0x21
push rbx
nop
psraw mm2, 0x62
nop
inc ebx
pcmpgtw mm5, mm7
pop rbx
pslld mm5, 0x51
pcmpeqb mm0, mm3
pcmpgtd mm6, mm5
psrld mm4, 0x6b
neg cl
paddd mm1, mm7
pop rcx
xor word [rdx], 0x38
push rax
psllq mm7, 0x36
push r9
sbb rax, r9
psrld mm7, 0x47
push r10
psrlw mm6, 0x2f
add r10w, r9w
rcr eax, 0xc
push r11
psrad mm0, 0x5c
psraw mm4, 0x2e
orps xmm15, xmm8
sub ax, 2
pop r11
minps xmm2, xmm10
inc rax
emms
pop r10
cmp r9d, eax
add ax, r9w
pop r9
emms
pop rax
add rdx, 2
cmp rdx, rax
jne 0x2904f6eaa
push r14
not r14
pslld mm5, 0x5f
push r12
pcmpgtw mm1, mm2
emms
push r11
paddsb mm7, mm6
emms
push r15
sar r14w, 0xb
sbb r14b, 0x10
push r10
nop
xadd r14d, r15d
pop r10
pslld mm6, 0xe
not r11w
pop r15
nop
emms
pop r11
emms
minps xmm5, xmm13
pop r12
shl r14, 6
nop
pop r14
mov edx, edi
mov rcx, rbx
call fcn.2904f6132
mov dword [rsp + 0x50], 0x4d7a677e
mov byte [rsp + 0x54], 0
movsxd rdi, eax
push r11
psrld mm5, 0x58
nop
push rax
inc eax
sub r11d, eax
push rcx
nop
pslld mm0, 5
push r9
paddusb mm5, mm0
ror r11w, 9
pop r9
psrlw mm0, 0x11
nop
pop rcx
movaps xmm2, xmm7
emms
pop rax
por mm6, mm3
psrlw mm1, 0x22
pop r11
mov dword [rsp + 0x60], 0x68327268
mov byte [rsp + 0x64], 0
push rax
pand mm7, mm1
push r11
psrlq mm7, 0x11
push r12
nop
push rdx
shl r11w, 0x12
pop rdx
pslld mm3, 0x27
pop r12
nop
pop r11
emms
pop rax
mov rdx, rsi
mov rcx, r12
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x2904f70ea
cmp r12d, r9d
jne 0x2904f7064
push rdx
psrad mm5, 0x16
nop
emms
por mm5, mm1
mulss xmm0, xmm13
paddusw mm4, mm2
pmaxsw mm4, mm5
pxor mm5, mm6
psrlq mm1, 0x10
nop
psubsb mm3, mm0
neg dx
pop rdx
jmp 0x2904f70a3
push r14
pslld mm1, 7
push rbx
mov r14, 6
push r15
punpcklbw mm4, mm0
push r13
ucomiss xmm12, xmm13
push rax
pxor mm3, mm2
push r9
pslld mm2, 0x30
pop r9
minps xmm11, xmm5
pop rax
rcl rbx, 9
pop r13
paddsb mm2, mm0
pop r15
minps xmm14, xmm12
pop rbx
pminsw mm2, mm3
pop r14
cmp r12, 0x5a
jne 0x2904f70c3
push r11
psraw mm5, 0xa
push r13
emms
maxss xmm6, xmm14
pop r13
movss xmm1, xmm10
pop r11
jmp 0x2904f70d2
push rdx
sar edx, 0x10
push rax
psraw mm1, 0x21
pminsw mm4, mm5
pop rax
nop
pop rdx
push r10
por mm5, mm7
push r12
rcl r12, 0x12
cmp r12d, r10d
pop r12
psrlw mm7, 0x53
pop r10
jmp 0x2904f7124
push rdx
mov rdx, 2
push r15
psadbw mm1, mm5
emms
psllq mm2, 0x45
push r8
shr r15d, 0xa
adc r8d, r15d
push r14
adc r14, r15
pop r14
nop
maxps xmm6, xmm10
pop r8
pmulhuw mm6, mm1
dec r15d
emms
pop r15
dec rdx
jne 0x2904f70f2
pop rdx
push r13
emms
push rcx
maxss xmm5, xmm6
emms
pop rcx
mulps xmm15, xmm6
pop r13
lea r12, [rdi + rdi]
lea rcx, [rsp + 0x78]
mov r8, rbx
mov edx, 0x200
mov r9, r12
lea r13, [rsp + 0x70]
call fcn.2904ebedc
push r14
sbb r14, 0x12
psllq mm3, 0x6a
paddd mm3, mm7
rcr r14b, 0xd
addps xmm6, xmm11
emms
psrad mm6, 0x1e
pop r14
mov edx, 0x100
lea rcx, [r13 + r12 + 8]
mov r9d, 0x10
mov r8, rbp
sub rdx, rdi
add rdx, rdx
call fcn.2904ebedc
push r13
rcr r13d, 0x11
paddb mm7, mm6
pslld mm5, 0xc
pcmpeqw mm6, mm3
emms
psrlw mm4, 7
emms
pop r13
call fcn.2904f2c91
jmp 0x2904f71b7
xor ecx, ecx
call fcn.2904eb801
push r9
rol r9b, 0x12
push rcx
test cl, r9b
inc ecx
push r15
mulss xmm5, xmm13
adc ecx, r9d
pcmpeqb mm2, mm7
push rbx
psrlq mm2, 0x49
addps xmm7, xmm14
rcpss xmm3, xmm2
packssdw mm4, mm0
pop rbx
nop
and r15b, cl
psllq mm5, 0x63
pop r15
pmaddwd mm5, mm3
psrad mm1, 0x57
pop rcx
addps xmm2, xmm0
pop r9
call fcn.2904f49f2
cmp r12b, 0x22
je 0x2904f7340
push r10
shl r10w, 0xe
push rdx
rcpps xmm12, xmm15
push r11
shr r10w, 0xf
push rbx
dec rdx
push rax
rol r10d, 8
push r8
emms
push r13
paddb mm1, mm5
pop r13
psrlq mm7, 0x1d
pop r8
psadbw mm6, mm0
pop rax
not r11w
pop rbx
xor dl, r10b
pop r11
nop
pop rdx
not r10w
pop r10
cmp eax, 0x5f
je 0x2904f7387
push r15
emms
push rax
emms
push r9
nop
push rdx
paddusb mm1, mm5
push r13
not rax
pop r13
sub r15b, 0x15
pop rdx
sbb r15b, 7
pop r9
neg r15w
pop rax
shr r15w, 0x12
pop r15
cmp cl, r9b
je 0x2904f73b1
push rdx
dec edx
push r9
neg dl
emms
push r11
packsswb mm0, mm6
punpckhwd mm1, mm0
addps xmm13, xmm7
push r10
inc r10d
rcl r10b, 7
rol edx, 0x17
emms
push r12
nop
paddsb mm1, mm2
nop
shl r11b, 5
psllq mm2, 0x4f
pop r12
neg r11
minps xmm0, xmm15
paddsb mm5, mm0
psrlw mm5, 0x68
pop r10
rcl dl, 0xc
emms
neg r11d
pop r11
pslld mm2, 0x1d
emms
pop r9
nop
pop rdx
cmp r8, r10
je 0x2904f73c6
push rbx
emms
nop
subps xmm9, xmm13
emms
emms
push rcx
addps xmm10, xmm13
minps xmm6, xmm7
rcr cx, 0x14
cmp rcx, rbx
sbb cl, bl
pop rcx
nop
nop
movaps xmm8, xmm12
shr ebx, 0xd
por mm4, mm0
dec rbx
pop rbx
cmp r10d, eax
je 0x2904f73f3
push r14
inc r14
push rdx
pmullw mm0, mm3
emms
pop rdx
punpckldq mm3, mm1
pop r14
cmp r11b, al
je 0x2904f7421
jne 0x2904f7458
push rdx
psllq mm3, 3
push r8
not rdx
push rcx
andps xmm12, xmm6
push r13
or rdx, r13
push r12
dec r8d
push rax
test dx, r12w
push r11
neg al
pop r11
subss xmm4, xmm6
pop rax
emms
pop r12
sbb r13d, 9
pop r13
mov dx, 0x12
pop rcx
rol edx, 2
pop r8
psrlq mm4, 0x58
pop rdx
jmp 0x2904f7458
push r9
paddusb mm2, mm3
push r12
nop
xadd r12d, r9d
push rax
mulps xmm2, xmm13
packuswb mm3, mm5
xchg r9w, r12w
pop rax
xor r12d, r9d
nop
pop r12
pslld mm5, 0x36
pop r9
jmp 0x2904f7458
push rbx
punpckhbw mm2, mm5
push r12
not r12d
pop r12
movlhps xmm2, xmm14
pop rbx
jmp 0x2904f7458
push r15
dec r15d
emms
ucomiss xmm13, xmm0
nop
mulss xmm10, xmm11
psrlw mm0, 0x50
nop
movss xmm3, xmm15
psrld mm1, 0x3a
maxps xmm10, xmm12
not r15
pcmpgtd mm3, mm6
pop r15
jmp 0x2904f7458
push r8
pxor mm1, mm5
nop
movaps xmm7, xmm0
push rbx
psllq mm1, 0x59
shr r8b, 7
push r12
nop
pop r12
sub bx, r8w
sub ebx, 6
pop rbx
maxss xmm1, xmm14
inc r8d
inc r8d
pop r8
jmp 0x2904f7458
push rcx
not cl
push rbx
packssdw mm3, mm4
emms
push r14
neg bx
inc ebx
xorps xmm0, xmm4
push rdx
rcr r14w, 2
minps xmm14, xmm6
emms
rcpss xmm2, xmm4
pop rdx
xadd rbx, r14
pcmpgtb mm4, mm6
emms
pop r14
nop
add ebx, ecx
pop rbx
packuswb mm3, mm7
pop rcx
push r8
emms
nop
inc r8d
emms
pslld mm2, 0x36
nop
nop
emms
nop
neg r8
nop
inc r8d
pop r8
xor ecx, ecx
mov qword [rsp + 0x40], rcx
cmp r12, r11
je 0x2904f75f2
push r14
rcl r14w, 0xf
push r11
neg r14d
pop r11
punpcklwd mm3, mm4
pop r14
cmp r11w, bx
je 0x2904f765c
push r12
emms
pcmpeqd mm7, mm4
addss xmm8, xmm6
push rdx
emms
nop
shl r12w, 0xd
push r11
ror r12, 0x12
mov r12b, 0x12
sbb r12d, r11d
pop r11
psrad mm2, 0x20
psrld mm2, 0x48
test r12d, edx
pop rdx
inc r12d
emms
emms
pop r12
cmp rax, r9
je 0x2904f76a1
push r10
nop
emms
mulps xmm2, xmm15
nop
paddw mm2, mm0
push rax
andnps xmm13, xmm1
neg eax
nop
shl r10w, 0xc
push r11
subss xmm7, xmm11
punpckhwd mm2, mm1
sbb r10d, 8
push r14
pmullw mm4, mm7
psraw mm5, 4
push r13
por mm0, mm6
pop r13
psrad mm5, 0x4b
packsswb mm3, mm1
pop r14
nop
psllq mm1, 0x6b
rcr rax, 3
pop r11
psrlw mm1, 0x23
nop
pslld mm5, 0x39
punpckldq mm6, mm5
pop rax
subps xmm6, xmm14
rol r10, 0xc
dec r10d
subss xmm12, xmm6
psrad mm4, 0x35
pop r10
cmp r11b, 0x5f
je 0x2904f76cd
push rbx
pcmpeqd mm4, mm1
emms
nop
psubsb mm5, mm7
nop
push r14
rcr bl, 0x16
add r14d, ebx
psrad mm7, 0x67
ucomiss xmm3, xmm5
push r11
mulps xmm1, xmm7
shl ebx, 0x16
psubusw mm7, mm3
push r13
pmullw mm6, mm3
emms
push rdx
cmp r11, rbx
pop rdx
emms
emms
pop r13
not r11w
shl r11w, 3
andps xmm5, xmm13
pop r11
emms
psraw mm6, 7
psllq mm0, 0x18
mov r14, rbx
pop r14
psrlq mm1, 0x58
shl rbx, 0x13
punpcklwd mm2, mm6
andps xmm11, xmm14
dec rbx
pop rbx
cmp r10b, 0x4b
je 0x2904f76f9
push r15
addps xmm3, xmm14
push r12
psrld mm1, 0xe
dec r12d
pop r12
inc r15
pop r15
cmp r12, rdx
je 0x2904f7714
jne 0x2904f774c
push r13
dec r13d
push r8
not r8d
andnps xmm3, xmm4
push rcx
emms
dec r8
emms
push r10
emms
xor cl, r8b
andps xmm14, xmm4
psraw mm4, 0x2b
push r14
psrad mm3, 0x62
neg r8w
shl r10, 0xb
emms
test r10d, r13d
pop r14
paddsb mm1, mm4
shr r8b, 0x10
addss xmm11, xmm14
adc r10d, r13d
pop r10
addss xmm13, xmm9
paddusw mm3, mm0
xorps xmm13, xmm14
pop rcx
or r13w, r8w
rcr r8w, 1
pop r8
emms
pop r13
jmp 0x2904f774c
push r15
comiss xmm8, xmm11
push r13
nop
or r15, r13
push r14
pmaxsw mm6, mm5
packssdw mm4, mm5
movlhps xmm11, xmm6
push r12
mov r12b, 0x16
paddw mm1, mm3
nop
psrad mm5, 0x42
pop r12
add r13w, r14w
paddsw mm1, mm3
psrad mm2, 0x49
pop r14
sub r13b, 0x13
xchg r13d, r15d
pop r13
nop
pop r15
jmp 0x2904f774c
push r12
shl r12b, 0xe
push r8
ucomiss xmm11, xmm13
psraw mm2, 0x64
push r15
pand mm3, mm4
psubusw mm3, mm0
nop
pop r15
not r8w
not r12
pop r8
sub r12d, 2
pop r12
jmp 0x2904f774c
push r11
sar r11d, 2
neg r11w
sar r11, 0x14
ucomiss xmm5, xmm8
pcmpeqw mm6, mm3
nop
nop
andps xmm13, xmm14
paddd mm5, mm7
psubsb mm4, mm3
punpckhwd mm3, mm4
psllq mm1, 0x5a
pop r11
jmp 0x2904f774c
push r13
maxss xmm14, xmm4
push r10
nop
push rax
dec r10d
pop rax
pmulhuw mm7, mm4
pop r10
neg r13
pop r13
jmp 0x2904f774c
push rdx
not edx
push rbx
movups xmm14, xmm12
nop
push rax
inc eax
psrad mm2, 0x3a
emms
push r15
nop
psraw mm7, 0x51
emms
xadd eax, ebx
pop r15
inc eax
mov rdx, 6
neg rax
pop rax
sbb edx, 6
pslld mm3, 0x29
pop rbx
emms
pop rdx
push r13
psllq mm4, 0x5c
neg r13w
rol r13d, 0x17
push r14
inc r13d
pmulhuw mm2, mm6
inc r14d
push r10
paddsb mm4, mm7
emms
push r12
psrlw mm3, 0x46
psraw mm1, 0x37
pop r12
packsswb mm3, mm6
emms
psrlq mm5, 0x48
pop r10
pcmpgtd mm2, mm7
paddw mm7, mm3
pop r14
nop
shr r13d, 0xd
pop r13
mov dword [rsp + 0x278], 0x6d533d7e
mov word [rsp + 0x27c], 0x5d
push rax
packsswb mm4, mm5
push r9
psrlq mm5, 0x17
push r11
psrld mm3, 0x66
pop r11
emms
pop r9
psrlw mm0, 0x24
pop rax
mov rcx, rbx
call sub.msvcrt.dll_strlen
mov rdx, rax
mov rax, rbx
cmp rdx, 3
lea rdx, [rsp + 0x27d]
jne 0x2904f784e
cmp r12w, 0x69
jne 0x2904f77f5
push r9
inc r9d
push rax
neg ax
nop
pop rax
nop
pop r9
jmp 0x2904f780a
push r11
sar r11, 4
push r14
emms
psrlw mm0, 8
pop r14
paddusb mm6, mm0
pop r11
push r15
addss xmm15, xmm8
push r10
nop
psraw mm2, 0x1e
pop r10
minps xmm13, xmm6
pop r15
xor byte [rax], 0x63
push r11
emms
push rdx
nop
punpcklwd mm1, mm5
push rcx
not r11
emms
psrlq mm3, 0x4d
pop rcx
add r11, rdx
shl dl, 3
pop rdx
psraw mm0, 9
pop r11
inc rax
cmp rax, rdx
jne 0x2904f77de
jmp 0x2904f7895
push rdx
neg rdx
push rax
psllq mm0, 0x38
sbb rax, rdx
push r11
shl rdx, 0xa
paddw mm1, mm6
nop
pop r11
rcl edx, 0x16
emms
pop rax
sbb rdx, 0x13
pop rdx
xor byte [rax], 0x27
push r13
emms
push r15
psubw mm4, mm2
push r9
pmulhuw mm6, mm4
pop r9
pmullw mm4, mm5
pop r15
emms
pop r13
inc rax
cmp rax, rdx
jne 0x2904f784e
push r9
not r9
sub r9, 3
push r12
psadbw mm7, mm5
pop r12
nop
shr r9, 0x12
pop r9
mov dword [rsp + 0x278], 0x2c4c6e64
mov word [rsp + 0x27c], 0x59
push r11
psraw mm2, 0x59
ror r11, 2
movaps xmm4, xmm9
pcmpeqw mm2, mm3
maxss xmm9, xmm12
dec r11d
maxps xmm13, xmm9
pop r11
mov rcx, rbx
call sub.msvcrt.dll_strlen
cmp rax, 4
jne 0x2904f791b
push rdx
not rdx
subps xmm2, xmm0
inc rdx
push rcx
neg rcx
or edx, ecx
push r11
emms
pop r11
psrlq mm5, 0x56
psrlw mm0, 0x51
pop rcx
subss xmm4, xmm13
sbb dx, 0x13
emms
pop rdx
jmp 0x2904f793f
cmp r12, 0x1d
jne 0x2904f792f
push rax
shr eax, 0xf
pop rax
jmp 0x2904f7936
push r9
paddusb mm4, mm6
pop r9
push r14
sar r14w, 0x12
pop r14
push rbx
mov rbx, 1
push rcx
push rax
pop rax
pop rcx
dec rbx
jne 0x2904f7947
pop rbx
lea rdi, [rsp + 0x50]
lea rdx, [rsp + 0x70]
mov rcx, rdi
call fcn.2904f5f80
mov dword [rsp + 0x68], 0x46
movabs rax, 0x7800680057006e
mov qword [rsp + 0x60], rax
push r9
emms
push r10
orps xmm3, xmm9
xchg r10d, r9d
push r8
or r8, r10
inc r10d
paddusw mm6, mm7
pop r8
mulps xmm9, xmm5
rcr r10, 0x13
pop r10
pcmpgtw mm1, mm3
pop r9
movabs rax, 0x4f0038004f0029
mov dword [rsp + 0x280], 0x44
mov qword [rsp + 0x278], rax
cmp r12w, ax
jne 0x2904f79d4
push r13
pandn mm4, mm6
pop r13
jmp 0x2904f79da
push r8
emms
pop r8
push r14
movlhps xmm15, xmm6
pop r14
mov rdx, rbx
mov rcx, rsi
call sub.msvcrt.dll_wcscmp
test eax, eax
jne 0x2904f7a27
push r8
mov r8, 1
push rbx
psrlw mm7, 0x52
push rcx
sub cx, bx
andps xmm3, xmm1
push r9
pcmpeqd mm0, mm1
inc r9
not rcx
pop r9
nop
or ebx, ecx
pop rcx
psubsb mm3, mm2
pop rbx
dec r8
jne 0x2904f79fa
pop r8
jmp 0x2904f7abb
mov rax, rbx
lea rdx, [rsp + 0x282]
push rcx
dec ecx
psraw mm7, 4
not cl
sbb cx, 0x15
psrlw mm6, 0x21
push rbx
nop
psraw mm2, 0x62
nop
inc ebx
pcmpgtw mm5, mm7
pop rbx
pslld mm5, 0x51
pcmpeqb mm0, mm3
pcmpgtd mm6, mm5
psrld mm4, 0x6b
neg cl
paddd mm1, mm7
pop rcx
xor word [rax], 0x38
push rax
psllq mm7, 0x36
push r9
sbb rax, r9
psrld mm7, 0x47
push r10
psrlw mm6, 0x2f
add r10w, r9w
rcr eax, 0xc
push r11
psrad mm0, 0x5c
psraw mm4, 0x2e
orps xmm15, xmm8
sub ax, 2
pop r11
minps xmm2, xmm10
inc rax
emms
pop r10
cmp r9d, eax
add ax, r9w
pop r9
emms
pop rax
add rax, 2
cmp rax, rdx
jne 0x2904f7a32
push r14
not r14
pslld mm5, 0x5f
push r12
pcmpgtw mm1, mm2
emms
push r11
paddsb mm7, mm6
emms
push r15
sar r14w, 0xb
sbb r14b, 0x10
push r10
nop
xadd r14d, r15d
pop r10
pslld mm6, 0xe
not r11w
pop r15
nop
emms
pop r11
emms
minps xmm5, xmm13
pop r12
shl r14, 6
nop
pop r14
xor edx, edx
xor eax, eax
mov dword [rsp + 0x278], 0x30
mov qword [rsp + 0x280], rax
mov dword [rsp + 0x290], 0x40
mov qword [rsp + 0x288], rdi
mov qword [rsp + 0x298], rdx
mov qword [rsp + 0x2a0], rdx
push r13
nop
nop
maxps xmm0, xmm10
neg r13w
push r11
rcr r11d, 1
andnps xmm6, xmm12
shl r13w, 4
shl r11b, 6
pop r11
emms
dec r13d
comiss xmm1, xmm0
nop
pop r13
mov edx, 0x120089
lea rcx, [rsp + 0x40]
mov r9, rsi
mov r8, rbx
mov dword [rsp + 0x28], 0x20
mov dword [rsp + 0x20], 1
call fcn.2904f0e54
movabs rax, 0x6c007c002e
mov qword [rsp + 0x48], rax
push rbx
shl bl, 0x13
push rdx
pand mm4, mm6
push r9
xadd dl, bl
push rcx
pmulhuw mm6, mm3
pop rcx
emms
pop r9
emms
pop rdx
rcl bx, 0x11
pop rbx
lea rbx, [rsp + 0x48]
mov rcx, rbx
call sub.msvcrt.dll_wcslen
cmp rax, 2
jne 0x2904f7c10
push r15
nop
push rdx
pslld mm6, 0xf
sbb r15d, edx
push r12
emms
psrlw mm5, 0xc
nop
push r11
emms
mulss xmm10, xmm4
shl r11w, 0x11
psrad mm6, 0x59
pop r11
rcr dl, 0xd
emms
nop
pop r12
psraw mm1, 0x3d
packssdw mm0, mm2
pop rdx
punpckhwd mm5, mm6
pop r15
jmp 0x2904f7c96
mov rax, rbx
lea rdx, [rsp + 0x4e]
push r8
xorps xmm10, xmm7
psrld mm7, 0x69
emms
push r9
sbb r8b, 0x10
emms
psrld mm4, 0x5b
push r14
paddsb mm6, mm2
not r14
neg r14w
pop r14
maxps xmm1, xmm4
maxps xmm9, xmm15
psadbw mm5, mm2
pop r9
dec r8d
paddw mm4, mm1
pslld mm1, 0x1b
pop r8
xor word [rax], 0x88
push r15
psrad mm2, 0x2c
emms
emms
emms
nop
push rax
test eax, r15d
pcmpeqb mm5, mm1
nop
mov al, r15b
inc rax
pop rax
punpcklwd mm6, mm0
ucomiss xmm6, xmm2
inc r15
psrlq mm1, 0x5e
paddd mm2, mm7
sub r15d, 0xc
pop r15
add rax, 2
cmp rax, rdx
jne 0x2904f7c18
push rbx
neg rbx
push r8
movups xmm7, xmm8
xor ebx, r8d
pop r8
punpcklwd mm3, mm1
pop rbx
mov rax, qword [rsp + 0x40]
add rsp, 0x488
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
ret