Function at 0x4b1e10
Capabilities:
Encode data using base64
Encode data using xor
Encrypt data using speck

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xb8
mov edi, dword [esp + 0xd4]
mov ebx, dword [esp + 0xcc]
test edi, edi
je 0x4b1e9b
mov ecx, dword [esp + 0xd0]
cmp edi, 3
mov esi, 2
mov eax, 2
cmovae eax, edi
mov edx, 0xaaaaaaab
mul edx
shr edx, 1
imul ebp, edi, 0xaaaaaaab
dec ebp
cmp edx, ebp
cmovae edx, ebp
cmp edx, 0x10
jb 0x4b1e8d
mov dword [esp + 8], edx
cmp edi, 3
cmovae esi, edi
mov eax, esi
mov edx, 0xaaaaaaab
mul edx
shr edx, 1
cmp edx, ebp
cmovae edx, ebp
lea eax, [edx + edx*2]
add eax, ecx
add eax, 3
cmp eax, ebx
jbe 0x4b1ea2
lea eax, [ebx + edx*4]
add eax, 4
cmp eax, ecx
jbe 0x4b1ea2
xor eax, eax
mov dword [esp], ebx
mov esi, ecx
xor ebp, ebp
jmp 0x4b2904
xor eax, eax
jmp 0x4b2bae
mov ebp, dword [esp + 8]
inc ebp
mov eax, ebp
and eax, 0xf
mov edx, 0x10
cmovne edx, eax
sub ebp, edx
lea eax, [ebp*4]
mov dword [esp + 4], eax
lea esi, [ebp*2]
add esi, ebp
sub edi, esi
mov eax, ebp
lea edx, [ebx + ebp*4]
mov dword [esp], edx
add esi, ecx
xor edx, edx
xor ebp, ebp
nop word [eax + eax]
movdqu xmm1, xmmword [ecx + 0x20]
movdqu xmm6, xmmword [ecx]
movdqu xmm3, xmmword [ecx + 0x10]
movdqu xmmword [esp + 0x18], xmm3
movdqa xmm2, xmmword [0x87a530]
movdqa xmm0, xmm2
pandn xmm0, xmm3
movdqa xmm5, xmm6
pand xmm5, xmm2
por xmm5, xmm0
movdqa xmm7, xmm5
movdqa xmm3, xmmword [0x87a540]
movdqa xmm0, xmm3
pxor xmm4, xmm4
punpckhbw xmm7, xmm4
movdqu xmmword [esp + 8], xmm7
pandn xmm0, xmm7
punpcklbw xmm5, xmm4
pand xmm5, xmm3
por xmm5, xmm0
movdqu xmmword [esp + 0x48], xmm5
movdqa xmm0, xmm1
movdqu xmmword [esp + 0x38], xmm1
movdqa xmm3, xmm1
movdqa xmm5, xmmword [0x87a560]
movdqa xmm1, xmm5
punpckhbw xmm0, xmm4
pandn xmm1, xmm0
punpcklbw xmm3, xmm4
movdqa xmm2, xmm3
pand xmm2, xmm5
por xmm2, xmm1
movdqu xmmword [esp + 0x28], xmm2
movdqa xmm2, xmmword [0x87a530]
movdqa xmm1, xmm2
pandn xmm1, xmm6
movdqu xmm7, xmmword [esp + 0x18]
movdqa xmm5, xmm7
pand xmm5, xmm2
por xmm5, xmm1
movdqa xmm2, xmm5
punpckhbw xmm2, xmm4
movdqu xmmword [esp + 0x88], xmm2
punpcklbw xmm5, xmm4
movdqa xmm1, xmmword [0x87a570]
pand xmm5, xmm1
pandn xmm1, xmm2
por xmm5, xmm1
movdqa xmm2, xmmword [0x87a540]
movdqa xmm1, xmm2
pandn xmm1, xmm0
pand xmm3, xmm2
por xmm3, xmm1
movdqu xmmword [esp + 0x78], xmm3
movdqa xmm0, xmm6
movsd xmm0, xmm7
movupd xmmword [esp + 0x68], xmm0
movapd xmm3, xmm7
xorpd xmm0, xmm0
punpcklbw xmm7, xmm0
pshufd xmm1, xmm6, 0x27
movdqu xmmword [esp + 0x58], xmm1
punpckhbw xmm6, xmm0
pxor xmm2, xmm2
movdqa xmm0, xmmword [0x87a5a0]
pandn xmm0, xmm6
movdqu xmmword [esp + 0x18], xmm7
shufps xmm6, xmm7, 0x32
movaps xmm1, xmm7
shufps xmm1, xmm6, 0x84
movlpd xmm3, qword [esp + 0x38]
movapd xmm7, xmm3
punpckhbw xmm7, xmm2
movupd xmmword [esp + 0xa8], xmm3
punpcklbw xmm3, xmm2
pshuflw xmm2, xmm3, 0xec
movdqa xmm6, xmm3
shufps xmm6, xmm7, 1
shufps xmm6, xmm7, 0xe2
pshufd xmm3, xmm7, 0xe6
pshuflw xmm3, xmm3, 0xe6
punpckldq xmm3, xmm2
movdqu xmmword [esp + 0x98], xmm3
movdqu xmm2, xmmword [esp + 0x28]
pshufd xmm2, xmm2, 0x27
pshuflw xmm2, xmm2, 0xe6
pshufd xmm2, xmm2, 0x2c
pshufhw xmm2, xmm2, 0x6c
packuswb xmm2, xmm2
movdqa xmm4, xmmword [0x87a550]
pandn xmm4, xmm2
movdqu xmm2, xmmword [esp + 0x78]
pshufd xmm2, xmm2, 0xd8
pshuflw xmm2, xmm2, 0x64
pshufd xmm2, xmm2, 0xd8
pshuflw xmm2, xmm2, 0xc4
pshufhw xmm2, xmm2, 0xc6
packuswb xmm2, xmm2
movdqa xmm3, xmmword [0x87a580]
pandn xmm3, xmm2
movdqu xmmword [esp + 0x28], xmm3
movdqu xmm2, xmmword [esp + 0x48]
pshufd xmm2, xmm2, 0xd8
pshufhw xmm2, xmm2, 0x6c
pshufd xmm2, xmm2, 0x6c
pshuflw xmm2, xmm2, 0x6c
pshufhw xmm3, xmm2, 0xc6
movdqu xmm2, xmmword [esp + 8]
pshuflw xmm2, xmm2, 0xec
pshufd xmm2, xmm2, 0xec
packuswb xmm3, xmm2
pshufd xmm2, xmm5, 0x27
pshufhw xmm2, xmm2, 0x6c
pshufd xmm2, xmm2, 0x27
pshuflw xmm2, xmm2, 0xc6
pshufhw xmm7, xmm2, 0xc6
movdqu xmm2, xmmword [esp + 0x88]
pshufd xmm5, xmm2, 0xe6
pshuflw xmm5, xmm5, 0xe6
packuswb xmm7, xmm5
movdqu xmmword [esp + 0x48], xmm7
movdqa xmm5, xmm3
punpcklbw xmm3, xmm3
pxor xmm2, xmm2
punpcklwd xmm2, xmm3
movdqu xmmword [esp + 8], xmm2
movdqu xmm2, xmmword [esp + 0x18]
pand xmm2, xmmword [0x87a5a0]
por xmm2, xmm0
movdqa xmm3, xmm2
pand xmm5, xmmword [0x87a550]
por xmm4, xmm5
movdqu xmm0, xmmword [esp + 0x68]
pshuflw xmm0, xmm0, 0xe6
pshufd xmm0, xmm0, 0xec
pshuflw xmm0, xmm0, 0xc6
punpcklbw xmm0, xmm0
pshufd xmm0, xmm0, 0x6c
pshuflw xmm0, xmm0, 0xf4
pshuflw xmm1, xmm1, 0xec
pshufhw xmm5, xmm0, 0xd6
pshufhw xmm0, xmm1, 0xe6
pshufd xmm0, xmm0, 0xe8
pshuflw xmm0, xmm0, 0x93
pslld xmm5, 0x10
packuswb xmm0, xmm0
pxor xmm2, xmm2
punpcklbw xmm0, xmm2
pshufd xmm1, xmm3, 0xd8
punpcklwd xmm0, xmm2
pshuflw xmm1, xmm1, 0xe6
pshufd xmm1, xmm1, 0xec
pshuflw xmm1, xmm1, 0xc6
pslld xmm0, 8
packuswb xmm1, xmm1
punpcklbw xmm1, xmm2
punpcklwd xmm1, xmm2
por xmm5, xmm0
movdqu xmmword [esp + 0x68], xmm5
por xmm1, xmm0
movdqu xmmword [esp + 0x88], xmm1
movups xmm0, xmmword [esp + 0xa8]
shufps xmm0, xmm0, 0xec
pshuflw xmm0, xmm0, 0xec
pshufd xmm0, xmm0, 0x24
punpckhbw xmm0, xmm0
pshuflw xmm0, xmm0, 0xf4
pshufhw xmm7, xmm0, 0xd6
pslld xmm7, 0x10
pshuflw xmm0, xmm6, 0xe6
pshufhw xmm0, xmm0, 0xec
pshufd xmm0, xmm0, 0xe8
pshuflw xmm0, xmm0, 0x39
packuswb xmm0, xmm0
punpcklbw xmm0, xmm2
punpcklwd xmm0, xmm2
pslld xmm0, 8
movdqu xmm1, xmmword [esp + 0x98]
packuswb xmm1, xmm1
punpcklbw xmm1, xmm2
punpcklwd xmm1, xmm2
pxor xmm2, xmm2
por xmm7, xmm0
por xmm1, xmm0
movdqu xmmword [esp + 0x98], xmm1
movdqu xmm3, xmmword [esp + 0x48]
movdqa xmm0, xmm3
pand xmm0, xmmword [0x87a580]
movdqu xmm1, xmmword [esp + 0x28]
por xmm1, xmm0
movdqu xmmword [esp + 0x28], xmm1
movdqu xmm0, xmmword [esp + 0x58]
pshufhw xmm0, xmm0, 0xe6
pshufd xmm0, xmm0, 0xe6
punpcklbw xmm0, xmm0
pshufd xmm0, xmm0, 0xd8
pshuflw xmm0, xmm0, 0xe5
pshufhw xmm0, xmm0, 0xc7
movdqa xmm1, xmmword [0x87a590]
pand xmm0, xmm1
pslld xmm0, 8
movdqu xmm1, xmmword [esp + 8]
por xmm1, xmm0
movdqu xmmword [esp + 8], xmm1
movdqa xmm1, xmm3
punpcklbw xmm1, xmm2
punpcklwd xmm1, xmm2
por xmm1, xmm0
movdqu xmmword [esp + 0x48], xmm1
movdqu xmm1, xmmword [esp + 0x38]
pshufhw xmm0, xmm1, 0xe6
pshufd xmm3, xmm1, 0x27
pshufd xmm6, xmm1, 0xc6
pshufd xmm0, xmm0, 0xe6
pshuflw xmm0, xmm0, 0xe1
punpcklbw xmm0, xmm0
pshufd xmm0, xmm0, 0x4e
pshuflw xmm0, xmm0, 0xf4
pshuflw xmm3, xmm3, 0xe6
pshufd xmm3, xmm3, 0x24
punpckhbw xmm3, xmm3
pshufhw xmm5, xmm0, 0xf4
pshufd xmm3, xmm3, 0xd8
pshuflw xmm3, xmm3, 0xc7
pshufhw xmm3, xmm3, 0xe5
pslld xmm5, 0x10
movdqa xmm1, xmmword [0x87a590]
pand xmm3, xmm1
pshuflw xmm6, xmm6, 0xec
pshufd xmm6, xmm6, 0xc4
pslld xmm3, 8
punpckhbw xmm6, xmm6
pshuflw xmm6, xmm6, 0xd6
pshufhw xmm0, xmm6, 0xf4
por xmm5, xmm3
pand xmm0, xmm1
por xmm0, xmm3
movdqu xmmword [esp + 0x78], xmm0
movdqa xmm3, xmm4
pminub xmm3, xmmword [0x87a5f0]
pcmpeqb xmm3, xmm4
movdqa xmm0, xmm4
pminub xmm0, xmmword [0x87a610]
pcmpeqb xmm0, xmm4
movdqu xmmword [esp + 0x58], xmm0
movdqa xmm0, xmm4
pminub xmm0, xmmword [0x87a630]
pcmpeqb xmm0, xmm4
movdqu xmmword [esp + 0x18], xmm0
psrlw xmm4, 2
movdqa xmm0, xmmword [0x87a5b0]
pand xmm4, xmm0
movdqu xmmword [esp + 0x38], xmm4
movdqa xmm0, xmm4
movdqa xmm1, xmmword [0x87a5c0]
pxor xmm0, xmm1
movdqa xmm4, xmm0
pxor xmm2, xmm2
punpcklbw xmm4, xmm2
movdqa xmm1, xmm4
punpckhwd xmm1, xmm2
punpcklwd xmm4, xmm2
pcmpeqd xmm6, xmm6
paddd xmm4, xmm6
paddd xmm1, xmm6
psrad xmm1, 0x1f
psrad xmm4, 0x1f
packssdw xmm4, xmm1
punpckhbw xmm0, xmm2
movdqa xmm1, xmm0
punpckhwd xmm1, xmm2
punpcklwd xmm0, xmm2
paddd xmm0, xmm6
paddd xmm1, xmm6
psrad xmm1, 0x1f
psrad xmm0, 0x1f
packssdw xmm0, xmm1
packsswb xmm4, xmm0
movdqa xmm0, xmm4
movdqa xmm1, xmmword [0x87a5d0]
pand xmm0, xmm1
movdqa xmm1, xmmword [0x87a5e0]
pandn xmm4, xmm1
por xmm4, xmm0
movdqu xmm6, xmmword [esp + 0x38]
movdqa xmm0, xmm6
movdqa xmm1, xmmword [0x87a600]
paddb xmm0, xmm1
pand xmm0, xmm3
pandn xmm3, xmm4
psrld xmm7, 0xc
psrld xmm5, 0xc
movdqa xmm1, xmmword [0x87a590]
pand xmm5, xmm1
pand xmm7, xmm1
packuswb xmm7, xmm5
movdqu xmm2, xmmword [esp + 8]
psrld xmm2, 0xc
movdqu xmm4, xmmword [esp + 0x68]
psrld xmm4, 0xc
pand xmm2, xmm1
pand xmm4, xmm1
packuswb xmm2, xmm4
packuswb xmm2, xmm7
por xmm3, xmm0
movdqa xmm1, xmm6
movdqa xmm0, xmmword [str.GGGGGGGGGGGGGGGGggggggggggggggggAAAAAAAAAAAAAAAA4444444444444444]
paddb xmm1, xmm0
movdqu xmm6, xmmword [esp + 0x58]
pand xmm1, xmm6
pandn xmm6, xmm3
pand xmm2, xmmword [0x87a5b0]
movdqu xmmword [esp + 8], xmm2
movdqa xmm3, xmm2
movdqa xmm5, xmmword [0x87a5c0]
pxor xmm3, xmm5
movdqa xmm0, xmm3
pxor xmm4, xmm4
punpcklbw xmm0, xmm4
movdqa xmm2, xmm0
punpcklwd xmm0, xmm4
punpckhwd xmm2, xmm4
pcmpeqd xmm7, xmm7
paddd xmm0, xmm7
paddd xmm2, xmm7
psrad xmm0, 0x1f
psrad xmm2, 0x1f
packssdw xmm0, xmm2
punpckhbw xmm3, xmm4
movdqa xmm2, xmm3
punpckhwd xmm2, xmm4
punpcklwd xmm3, xmm4
pxor xmm4, xmm4
paddd xmm3, xmm7
paddd xmm2, xmm7
psrad xmm2, 0x1f
psrad xmm3, 0x1f
packssdw xmm3, xmm2
packsswb xmm0, xmm3
movdqa xmm2, xmm0
pand xmm2, xmmword [0x87a5d0]
pandn xmm0, xmmword [0x87a5e0]
por xmm0, xmm2
por xmm6, xmm1
movdqa xmm1, xmm5
movdqu xmm3, xmmword [esp + 8]
pcmpgtb xmm1, xmm3
movdqa xmm2, xmm3
paddb xmm2, xmmword [0x87a600]
pand xmm2, xmm1
pandn xmm1, xmm0
por xmm1, xmm2
movdqa xmm5, xmmword [0x87a650]
pcmpgtb xmm5, xmm3
movdqa xmm0, xmm3
paddb xmm0, xmmword [str.GGGGGGGGGGGGGGGGggggggggggggggggAAAAAAAAAAAAAAAA4444444444444444]
pand xmm0, xmm5
pandn xmm5, xmm1
movdqu xmm1, xmmword [esp + 0x88]
psrld xmm1, 6
movdqa xmm3, xmmword [0x87a590]
pand xmm1, xmm3
movdqu xmm7, xmmword [esp + 0x48]
psrld xmm7, 6
pand xmm7, xmm3
packuswb xmm7, xmm1
movdqu xmm2, xmmword [esp + 0x78]
psrld xmm2, 6
movdqu xmm1, xmmword [esp + 0x98]
psrld xmm1, 6
pand xmm1, xmm3
pand xmm2, xmm3
packuswb xmm1, xmm2
movdqa xmm2, xmm1
por xmm5, xmm0
movdqa xmm0, xmmword [0x87a640]
movdqu xmm1, xmmword [esp + 0x38]
paddb xmm1, xmm0
movdqu xmm0, xmmword [esp + 0x18]
pand xmm1, xmm0
movdqu xmmword [esp + 0x38], xmm1
packuswb xmm7, xmm2
pandn xmm0, xmm6
movdqu xmmword [esp + 0x18], xmm0
pand xmm7, xmmword [0x87a5b0]
movdqa xmm0, xmm7
pxor xmm0, xmmword [0x87a5c0]
movdqa xmm1, xmm0
punpcklbw xmm1, xmm4
movdqa xmm3, xmm1
punpcklwd xmm1, xmm4
punpckhwd xmm3, xmm4
pcmpeqd xmm4, xmm4
paddd xmm1, xmm4
paddd xmm3, xmm4
psrad xmm1, 0x1f
psrad xmm3, 0x1f
packssdw xmm1, xmm3
pxor xmm3, xmm3
punpckhbw xmm0, xmm3
movdqa xmm2, xmm0
punpckhwd xmm2, xmm3
punpcklwd xmm0, xmm3
paddd xmm0, xmm4
paddd xmm2, xmm4
psrad xmm2, 0x1f
psrad xmm0, 0x1f
packssdw xmm0, xmm2
packsswb xmm1, xmm0
movdqa xmm0, xmm1
pand xmm0, xmmword [0x87a5d0]
pandn xmm1, xmmword [0x87a5e0]
por xmm1, xmm0
movdqa xmm6, xmmword [0x87a660]
movdqu xmm0, xmmword [esp + 8]
pcmpgtb xmm6, xmm0
movdqa xmm4, xmmword [0x87a640]
paddb xmm0, xmm4
pand xmm0, xmm6
movdqu xmmword [esp + 8], xmm0
pandn xmm6, xmm5
movdqa xmm5, xmmword [0x87a5c0]
movdqa xmm2, xmm5
movdqa xmm0, xmm7
pcmpgtb xmm2, xmm7
movdqa xmm3, xmm7
paddb xmm3, xmmword [0x87a600]
pand xmm3, xmm2
pandn xmm2, xmm1
por xmm2, xmm3
movdqa xmm3, xmmword [0x87a650]
pcmpgtb xmm3, xmm7
movdqa xmm1, xmm7
paddb xmm1, xmmword [str.GGGGGGGGGGGGGGGGggggggggggggggggAAAAAAAAAAAAAAAA4444444444444444]
pand xmm1, xmm3
pandn xmm3, xmm2
por xmm3, xmm1
movdqa xmm1, xmmword [0x87a660]
pcmpgtb xmm1, xmm7
paddb xmm0, xmm4
pand xmm0, xmm1
movdqu xmmword [esp + 0x48], xmm0
pandn xmm1, xmm3
movdqu xmm0, xmmword [esp + 0x18]
movdqu xmm2, xmmword [esp + 0x38]
por xmm0, xmm2
movdqu xmmword [esp + 0x18], xmm0
movdqu xmm4, xmmword [esp + 0x28]
pand xmm4, xmmword [0x87a5b0]
movdqu xmmword [esp + 0x28], xmm4
pxor xmm4, xmm5
movdqa xmm3, xmm4
pxor xmm0, xmm0
punpcklbw xmm3, xmm0
movdqa xmm5, xmm3
punpcklwd xmm3, xmm0
punpckhwd xmm5, xmm0
pxor xmm0, xmm0
pcmpeqd xmm2, xmm2
paddd xmm3, xmm2
paddd xmm5, xmm2
pcmpeqd xmm7, xmm7
psrad xmm3, 0x1f
psrad xmm5, 0x1f
packssdw xmm3, xmm5
punpckhbw xmm4, xmm0
movdqa xmm2, xmm4
punpckhwd xmm2, xmm0
punpcklwd xmm4, xmm0
paddd xmm4, xmm7
paddd xmm2, xmm7
psrad xmm2, 0x1f
psrad xmm4, 0x1f
packssdw xmm4, xmm2
packsswb xmm3, xmm4
movdqa xmm2, xmm3
pand xmm2, xmmword [0x87a5d0]
pandn xmm3, xmmword [0x87a5e0]
por xmm3, xmm2
movdqa xmm4, xmmword [0x87a5c0]
movdqu xmm0, xmmword [esp + 0x28]
pcmpgtb xmm4, xmm0
movdqa xmm2, xmm0
paddb xmm2, xmmword [0x87a600]
pand xmm2, xmm4
pandn xmm4, xmm3
por xmm4, xmm2
movdqa xmm5, xmmword [0x87a650]
movdqu xmm2, xmmword [esp + 8]
por xmm6, xmm2
pcmpgtb xmm5, xmm0
movdqa xmm2, xmm0
paddb xmm2, xmmword [str.GGGGGGGGGGGGGGGGggggggggggggggggAAAAAAAAAAAAAAAA4444444444444444]
pand xmm2, xmm5
pandn xmm5, xmm4
por xmm5, xmm2
movdqa xmm3, xmmword [0x87a660]
pcmpgtb xmm3, xmm0
paddb xmm0, xmmword [0x87a640]
pand xmm0, xmm3
movdqa xmm2, xmm0
pandn xmm3, xmm5
movdqu xmm0, xmmword [esp + 0x48]
por xmm1, xmm0
por xmm3, xmm2
movdqa xmm2, xmm1
movdqu xmm0, xmmword [esp + 0x18]
movdqa xmm4, xmm0
punpcklbw xmm2, xmm3
punpcklbw xmm4, xmm6
movdqa xmm5, xmm4
punpckhwd xmm4, xmm2
punpcklwd xmm5, xmm2
punpckhbw xmm1, xmm3
movdqa xmm2, xmm0
punpckhbw xmm2, xmm6
movdqa xmm0, xmm2
punpcklwd xmm0, xmm1
punpckhwd xmm2, xmm1
movdqu xmmword [ebx + edx*4 + 0x30], xmm2
movdqu xmmword [ebx + edx*4 + 0x20], xmm0
movdqu xmmword [ebx + edx*4 + 0x10], xmm4
movdqu xmmword [ebx + edx*4], xmm5
add edx, 0x10
add ecx, 0x30
cmp eax, edx
jne 0x4b1ee0
mov eax, dword [esp + 4]
inc esi
movdqa xmm7, xmmword [0x87a6a0]
pxor xmm6, xmm6
nop word cs:[eax + eax]
movzx ecx, byte [esi - 1]
mov ebx, ecx
shl ebx, 0x10
cmp edi, 2
jbe 0x4b2aa2
movzx edx, byte [esi]
shl edx, 8
or ebx, edx
shr ebx, 0xc
movd xmm0, ebx
movzx ecx, cl
movd xmm3, ecx
movzx ecx, byte [esi + 1]
or edx, ecx
shr edx, 6
movd xmm4, edx
movd xmm5, ecx
movdqa xmm2, xmm3
punpcklbw xmm2, xmm0
pslld xmm4, 0x10
movdqa xmm1, xmmword [0x87a670]
movdqa xmm0, xmm1
pandn xmm0, xmm4
movdqa xmm4, xmm7
pandn xmm4, xmm3
pand xmm2, xmm1
por xmm2, xmm0
movdqa xmm1, xmmword [0x87a680]
pand xmm2, xmm1
pslld xmm5, 0x18
pandn xmm1, xmm5
por xmm1, xmm2
pand xmm1, xmmword [0x87a690]
psrlw xmm3, 2
pand xmm3, xmmword [0x87a5b0]
pand xmm1, xmm7
movdqa xmm0, xmm7
pandn xmm0, xmm3
por xmm0, xmm1
movdqa xmm2, xmm0
pxor xmm2, xmmword [0x87a6b0]
punpcklbw xmm2, xmm6
punpcklwd xmm2, xmm6
paddd xmm2, xmmword [0x87a740]
psrad xmm2, 0x1f
packssdw xmm2, xmm2
packsswb xmm2, xmm2
movdqa xmm3, xmm2
pand xmm3, xmmword [0x87a6c0]
pandn xmm2, xmmword [0x87a6d0]
por xmm2, xmm3
por xmm4, xmm1
movdqa xmm1, xmm4
pmaxub xmm1, xmmword [0x87a6e0]
pcmpeqb xmm1, xmm4
movdqa xmm3, xmm0
paddb xmm3, xmmword [0x87a6f0]
pand xmm2, xmm1
pandn xmm1, xmm3
por xmm1, xmm2
movdqa xmm2, xmm4
pmaxub xmm2, xmmword [0x87a700]
pcmpeqb xmm2, xmm4
movdqa xmm3, xmm0
paddb xmm3, xmmword [str.GGGG]
pand xmm1, xmm2
pandn xmm2, xmm3
por xmm2, xmm1
movdqa xmm1, xmm4
pmaxub xmm1, xmmword [0x87a720]
pcmpeqb xmm1, xmm4
paddb xmm0, xmmword [0x87a730]
pand xmm2, xmm1
pandn xmm1, xmm0
por xmm1, xmm2
mov ecx, dword [esp]
movd dword [ecx + ebp], xmm1
add ebp, 4
add esi, 3
add edi, 0xfffffffd
jne 0x4b2920
add eax, ebp
mov ecx, dword [esp]
add ecx, ebp
mov ebx, ecx
jmp 0x4b2bae
mov dword [esp + 4], eax
mov dword [esp + 0x28], ebp
jne 0x4b2ab4
movzx eax, byte [esi]
shl eax, 8
or ebx, eax
mov eax, ebx
shr eax, 0x12
mov edx, eax
xor edx, 0x3e
dec edx
shr edx, 0x1d
and dl, 4
xor dl, 0x2f
mov ecx, eax
add cl, 0xfc
cmp al, 0x3e
movzx esi, cl
movzx ebp, dl
cmovb ebp, esi
mov edx, eax
add dl, 0x47
cmp al, 0x34
movzx esi, dl
cmovae esi, ebp
mov edx, eax
add dl, 0x41
cmp al, 0x1a
movzx eax, dl
cmovae eax, esi
mov dword [esp + 8], eax
mov eax, ebx
shr eax, 0xc
and al, 0x3f
mov edx, eax
xor dl, 0x3e
movzx edx, dl
dec edx
shr edx, 0x1d
and dl, 4
xor dl, 0x2f
movzx esi, dl
mov edx, eax
add dl, 0xfc
cmp al, 0x3e
movzx edx, dl
cmovb esi, edx
mov edx, eax
add dl, 0x47
cmp al, 0x34
movzx ebp, dl
cmovae ebp, esi
mov edx, eax
add dl, 0x41
cmp al, 0x1a
movzx eax, dl
cmovae eax, ebp
mov ecx, dword [esp + 0x28]
mov esi, dword [esp]
mov edx, dword [esp + 8]
mov byte [esi + ecx], dl
mov byte [esi + ecx + 1], al
mov al, 0x3d
cmp edi, 1
je 0x4b2b93
shr ebx, 6
and bl, 0x3f
mov eax, ebx
xor al, 0x3e
movzx eax, al
dec eax
shr eax, 0x1d
and al, 4
xor al, 0x2f
mov edx, ebx
add dl, 0xfc
cmp bl, 0x3e
movzx edx, dl
movzx eax, al
cmovb eax, edx
mov edx, ebx
add dl, 0x47
cmp bl, 0x34
movzx edx, dl
cmovae edx, eax
mov eax, ebx
add al, 0x41
cmp bl, 0x1a
movzx eax, al
cmovae eax, edx
mov edx, dword [esp]
mov byte [edx + ecx + 2], al
mov byte [edx + ecx + 3], 0x3d
lea ebx, [edx + ecx]
add ebx, 4
mov eax, dword [esp + 4]
add eax, ecx
add eax, 4
mov byte [ebx], 0
add esp, 0xb8
pop esi
pop edi
pop ebx
pop ebp
ret