Function at 0x460d80
Capabilities:
Encode data using base64
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x3c
mov ebx, dword [ebp + 8]
test bl, 3
je 0x460da3
mov byte [ecx + 4], 0
mov dword [ecx], 0
add esp, 0x3c
pop esi
pop edi
pop ebx
pop ebp
ret
cmp ebx, 2
jb 0x460e10
movzx eax, word [ebx + edx - 2]
movdqa xmm3, xmmword [0x55fa10]
pxor xmm1, xmm1
movdqa xmm2, xmmword [0x55fa30]
mov esi, edx
movd xmm0, eax
punpcklbw xmm0, xmm1
psubw xmm3, xmm0
paddw xmm0, xmmword [0x55fa20]
pand xmm0, xmm3
psrlw xmm0, 8
pand xmm2, xmm0
movd edx, xmm2
pextrw eax, xmm2, 1
add edx, eax
movzx edx, dx
sub ebx, edx
test dx, dx
je 0x460e19
cmp edx, 2
je 0x460e22
cmp edx, 1
jne 0x460d91
movzx eax, ax
mov edx, esi
xor eax, 1
mov dword [ebp - 0x14], eax
jmp 0x460e33
mov dword [ebp - 0x14], 0
jmp 0x460e33
mov dword [ebp - 0x14], 0
jmp 0x460e31
movd edx, xmm0
movzx eax, ax
and eax, edx
xor eax, 1
mov dword [ebp - 0x14], eax
mov edx, esi
mov esi, ebx
mov eax, ebx
and esi, 3
shr eax, 2
lea edi, [esi + esi*2]
mov dword [ebp - 0x10], eax
lea eax, [eax + eax*2]
mov dword [ebp - 0x20], esi
shr edi, 2
add edi, eax
cmp edi, dword [ebp + 0x10]
jbe 0x460e5c
mov byte [ecx + 4], 1
jmp 0x460d95
and ebx, 0xfffffffc
mov dword [ebp - 0x40], ecx
mov ecx, 0xaaaaaaab
mov esi, edx
mov dword [ebp - 0x3c], edi
lea eax, [edx + ebx]
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x44], eax
mov eax, edi
mul ecx
shr edx, 1
lea ecx, [edx + edx*2]
mov edx, dword [ebp + 0xc]
sub edi, ecx
test ebx, ebx
mov dword [ebp - 0x1c], edi
lea eax, [edx + ecx]
mov dword [ebp - 0x28], eax
je 0x461038
mov ebx, dword [ebp - 0x10]
movdqa xmm1, xmmword [0x55fa40]
movdqa xmm5, xmmword [0x55fad0]
movdqa xmm7, xmmword [str.....]
movdqa xmm2, xmmword [0x55fb10]
mov eax, esi
shl ebx, 2
neg ebx
nop
sub ecx, 3
jb 0x461038
movd xmm4, dword [eax]
pxor xmm0, xmm0
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x10], ebx
punpcklbw xmm4, xmm0
movdqa xmm0, xmm1
movdqa xmm3, xmm4
movdqa xmm6, xmm4
psubw xmm0, xmm4
paddw xmm3, xmmword [0x55fa50]
paddw xmm6, xmmword [0x55fa60]
pand xmm3, xmm0
movdqa xmm0, xmmword [0x55fa70]
psraw xmm3, 8
pand xmm6, xmm3
movdqa xmm3, xmm4
paddw xmm3, xmmword [0x55fa80]
psubw xmm0, xmm4
pand xmm3, xmm0
movdqa xmm0, xmm4
paddw xmm0, xmmword [0x55fa90]
psraw xmm3, 8
pand xmm0, xmm3
movdqa xmm3, xmmword [0x55faa0]
paddw xmm0, xmm6
movdqa xmm6, xmm4
paddw xmm6, xmmword [0x55fab0]
psubw xmm3, xmm4
pand xmm6, xmm3
movdqa xmm3, xmm4
paddw xmm3, xmmword [0x55fac0]
psraw xmm6, 8
pand xmm3, xmm6
movdqa xmm6, xmm5
paddw xmm3, xmm0
movdqa xmm0, xmm4
psubw xmm6, xmm4
paddw xmm0, xmmword [0x55fae0]
pand xmm0, xmm6
pcmpeqd xmm6, xmm6
psrlw xmm0, 8
paddw xmm3, xmm6
pand xmm0, xmmword [0x55faf0]
paddw xmm0, xmm3
movdqa xmm3, xmm7
psubw xmm3, xmm4
paddw xmm4, xmm2
movd eax, xmm0
pextrw edi, xmm0, 1
pextrw esi, xmm0, 2
pand xmm4, xmm3
shl eax, 2
shl edi, 4
shl esi, 6
psrlw xmm4, 8
pand xmm4, xmm1
paddw xmm4, xmm0
pshufd xmm0, xmm4, 0x55
pextrw ecx, xmm4, 1
pextrw ebx, xmm4, 3
por xmm0, xmm4
shr ecx, 4
or ebx, esi
movdqa xmm3, xmm0
or ecx, eax
pextrw eax, xmm4, 2
psrld xmm3, 0x10
shr eax, 2
mov byte [edx], cl
por xmm3, xmm0
or eax, edi
movd ecx, xmm3
mov byte [edx + 1], al
mov eax, dword [ebp - 0x2c]
mov byte [edx + 2], bl
mov ebx, dword [ebp - 0x10]
add edx, 3
shr ecx, 8
and ecx, 1
or dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 0x30]
add eax, 4
add ebx, 4
jne 0x460ec0
mov ecx, dword [ebp - 0x20]
xor ebx, ebx
mov dword [ebp - 0x48], 0x41414141
lea eax, [ebp - 0x48]
cmp ecx, 1
sete bl
push ecx
push dword [ebp - 0x44]
push eax
call sym._memcpy
add esp, 0xc
movd xmm0, dword [ebp - 0x48]
pxor xmm1, xmm1
movdqa xmm4, xmmword [0x55fa50]
movdqa xmm3, xmmword [0x55fa60]
movdqa xmm7, xmmword [0x55faa0]
movdqa xmm5, xmmword [0x55fab0]
movdqa xmm6, xmmword [0x55fac0]
mov edi, dword [ebp - 0x14]
punpcklbw xmm0, xmm1
movdqa xmm1, xmmword [0x55fa40]
or edi, ebx
paddw xmm4, xmm0
paddw xmm3, xmm0
psubw xmm7, xmm0
paddw xmm5, xmm0
paddw xmm6, xmm0
pand xmm5, xmm7
psraw xmm5, 8
movdqa xmm2, xmm1
pand xmm6, xmm5
psubw xmm2, xmm0
pand xmm4, xmm2
movdqa xmm2, xmmword [0x55fa70]
psraw xmm4, 8
pand xmm3, xmm4
movdqa xmm4, xmmword [0x55fa80]
psubw xmm2, xmm0
paddw xmm4, xmm0
pand xmm4, xmm2
movdqa xmm2, xmmword [0x55fa90]
psraw xmm4, 8
paddw xmm2, xmm0
pand xmm2, xmm4
pcmpeqd xmm4, xmm4
paddw xmm2, xmm3
paddw xmm6, xmm2
movdqa xmm2, xmmword [0x55fae0]
paddw xmm6, xmm4
movdqa xmm4, xmmword [0x55fad0]
paddw xmm2, xmm0
psubw xmm4, xmm0
pand xmm2, xmm4
movdqa xmm4, xmmword [str.....]
psrlw xmm2, 8
pand xmm2, xmmword [0x55faf0]
psubw xmm4, xmm0
paddw xmm0, xmmword [0x55fb10]
paddw xmm2, xmm6
movd eax, xmm2
pand xmm0, xmm4
shl eax, 2
psrlw xmm0, 8
pand xmm0, xmm1
paddw xmm0, xmm2
pextrw ecx, xmm0, 1
pshufd xmm1, xmm0, 0x55
shr ecx, 4
por xmm1, xmm0
or ecx, eax
pextrw eax, xmm2, 1
mov byte [ebp - 0x33], cl
pextrw ecx, xmm0, 2
shl eax, 4
shr ecx, 2
or ecx, eax
pextrw eax, xmm2, 2
movdqa xmm2, xmm1
psrld xmm2, 0x10
mov byte [ebp - 0x32], cl
shl eax, 6
pextrw ecx, xmm0, 3
por xmm2, xmm1
or ecx, eax
lea eax, [ebp - 0x33]
movd esi, xmm2
mov byte [ebp - 0x31], cl
shr esi, 8
and esi, 1
push dword [ebp - 0x1c]
push eax
push dword [ebp - 0x28]
call sym._memcpy
add esp, 0xc
or di, si
je 0x4611e3
mov eax, dword [ebp - 0x40]
mov byte [eax + 4], 0
jmp 0x46129a
mov edx, dword [ebp - 0x3c]
mov ebx, dword [ebp + 8]
mov eax, edx
or eax, ebx
je 0x461aea
mov eax, ebx
mov esi, dword [ebp - 0x38]
xor ecx, ecx
mov edx, ebx
mov edi, ebx
sub eax, 1
cmovb eax, ecx
and eax, 0xfffffffc
add esi, eax
sub edx, eax
cmovb edx, ecx
mov ebx, edx
and ebx, 1
cmp eax, edi
mov eax, esi
cmovbe ebx, edx
cmova eax, ecx
ja 0x461251
mov esi, dword [ebp - 0x3c]
mov dword [ebp - 0x38], eax
mov edx, 0xaaaaaaab
mov eax, esi
sub eax, 1
cmovb eax, ecx
mul edx
mov eax, esi
shr edx, 1
lea edx, [edx + edx*2]
sub eax, edx
cmovb eax, ecx
mov ecx, eax
and ecx, 1
cmp edx, esi
cmovbe ecx, eax
jbe 0x461258
and cl, 1
jmp 0x461294
and bl, 1
mov ecx, ebx
jmp 0x461294
cmp ecx, 0x3fffffff
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x18], 0
ja 0x461292
lea eax, [ecx*4]
mov esi, 0xaaaaaaab
mov dword [ebp - 0x20], ecx
mul esi
mov eax, dword [ebp - 0x20]
mov ecx, edx
shr ecx, 1
add ecx, 3
mov edx, ecx
and edx, 0xfffffffc
cmp edx, 4
mov dword [ebp - 0x28], edx
jbe 0x4612a5
mov cl, 1
mov eax, dword [ebp - 0x40]
mov byte [eax + 4], cl
mov dword [eax], 0
jmp 0x460d9b
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp + 0xc]
mov dword [ebp - 0x1c], edx
mul esi
shr edx, 1
lea esi, [edx + edx*2]
cmp esi, 3
mov dword [ebp - 0x44], esi
jae 0x4612cb
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x20]
lea esi, [ebp - 0x18]
jmp 0x461873
lea eax, [esi - 3]
mov edx, 0xaaaaaaab
shr ecx, 2
mul edx
shr edx, 1
cmp edx, ecx
cmovb ecx, edx
cmp ecx, 8
jae 0x4612f8
lea eax, [ebp - 0x18]
mov edx, dword [ebp - 0x1c]
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x28]
jmp 0x46175c
lea edx, [ecx + 1]
mov edi, esi
mov eax, 8
not ecx
mov esi, edx
and esi, 7
cmovne eax, esi
sub edx, eax
add ecx, eax
lea esi, [edx*4]
mov dword [ebp - 0x10], esi
lea esi, [ebp + edx*4 - 0x18]
lea edx, [edx + edx*2]
mov dword [ebp - 0x2c], esi
mov esi, dword [ebp - 0x28]
sub edi, edx
mov dword [ebp - 0x14], edi
lea edi, [ebp - 0x18]
sub esi, dword [ebp - 0x10]
mov dword [ebp - 0x30], esi
mov esi, dword [ebp - 0x1c]
add edx, esi
mov eax, esi
movdqu xmm0, xmmword [eax]
movdqa xmm4, xmmword [0x55fb20]
movq xmm5, qword [eax + 0x10]
pxor xmm1, xmm1
add eax, 0x18
movdqa xmm2, xmm4
movdqa xmm3, xmm0
movdqa xmm7, xmm0
pand xmm3, xmm4
pandn xmm2, xmm5
punpckhbw xmm7, xmm1
movdqa xmm4, xmmword [0x55fb40]
por xmm3, xmm2
movdqa xmm2, xmmword [0x55fb30]
punpcklbw xmm3, xmm1
pand xmm3, xmm2
pandn xmm2, xmm7
por xmm2, xmm3
movdqa xmm3, xmm0
pshufd xmm2, xmm2, 0xd8
pand xmm3, xmm4
pshufhw xmm2, xmm2, 0x6c
pshufd xmm2, xmm2, 0x6c
pshuflw xmm2, xmm2, 0x6c
pshufhw xmm6, xmm2, 0xc6
movdqa xmm2, xmm4
movdqa xmm4, xmmword [0x55fb60]
pandn xmm2, xmm5
packuswb xmm6, xmm6
por xmm3, xmm2
movdqa xmm2, xmmword [0x55fb50]
punpcklbw xmm6, xmm1
punpcklbw xmm3, xmm1
pand xmm3, xmm2
pandn xmm2, xmm7
por xmm2, xmm3
movdqa xmm3, xmm4
pshuflw xmm2, xmm2, 0xc6
pandn xmm3, xmm5
movdqa xmm5, xmm6
psllw xmm6, 4
pshufhw xmm2, xmm2, 0xc6
psrlw xmm5, 2
pand xmm6, xmmword [str.00000000]
pshufd xmm2, xmm2, 0x6c
pshuflw xmm2, xmm2, 0x39
pshufhw xmm2, xmm2, 0x39
packuswb xmm2, xmm2
pand xmm0, xmm4
movdqa xmm4, xmmword [0x55fbb0]
por xmm0, xmm3
movdqa xmm3, xmmword [0x55fb70]
punpcklbw xmm2, xmm1
punpcklbw xmm0, xmm1
movdqa xmm1, xmmword [0x55fbe0]
psubw xmm4, xmm5
pand xmm0, xmm3
pandn xmm3, xmm7
movdqa xmm7, xmmword [0x55fb80]
psrlw xmm4, 8
por xmm3, xmm0
pshufd xmm0, xmm3, 0x27
movdqa xmm3, xmmword [0x55fb90]
pshufhw xmm0, xmm0, 0x6c
psubw xmm7, xmm5
pshufd xmm0, xmm0, 0x27
psrlw xmm7, 8
pshuflw xmm0, xmm0, 0xc6
pand xmm7, xmm3
movdqa xmm3, xmmword [0x55fbc0]
pshufhw xmm0, xmm0, 0xc6
paddw xmm7, xmm5
packuswb xmm0, xmm0
pand xmm4, xmm3
movdqa xmm3, xmmword [0x55fbd0]
psubw xmm3, xmm5
psrlw xmm3, 8
pand xmm3, xmm1
paddw xmm3, xmm4
movdqa xmm4, xmmword [0x55fc00]
paddw xmm3, xmm7
movdqa xmm7, xmmword [0x55fbf0]
psubw xmm7, xmm5
movdqa xmm5, xmm2
psllw xmm2, 2
psrlw xmm7, 8
psrlw xmm5, 4
pand xmm2, xmmword [str.________________]
pand xmm7, xmm4
movdqa xmm4, xmmword [str.AAAAAAAA33333333]
por xmm5, xmm6
movdqa xmm6, xmmword [0x55fb80]
paddw xmm7, xmm4
movdqa xmm1, xmm4
movdqa xmm4, xmmword [0x55fbb0]
psubw xmm6, xmm5
paddw xmm7, xmm3
pxor xmm3, xmm3
psrlw xmm6, 8
punpcklbw xmm0, xmm3
movdqa xmm3, xmmword [0x55fbd0]
pand xmm6, xmmword [0x55fb90]
psubw xmm4, xmm5
psrlw xmm4, 8
psubw xmm3, xmm5
pand xmm4, xmmword [0x55fbc0]
paddw xmm6, xmm5
psrlw xmm3, 8
pand xmm3, xmmword [0x55fbe0]
paddw xmm3, xmm4
movdqa xmm4, xmmword [0x55fbb0]
paddw xmm3, xmm6
movdqa xmm6, xmmword [0x55fbf0]
psubw xmm6, xmm5
movdqa xmm5, xmm0
pand xmm0, xmmword [0x55fc40]
psrlw xmm6, 8
psrlw xmm5, 6
pand xmm6, xmmword [0x55fc00]
por xmm5, xmm2
movdqa xmm2, xmmword [0x55fb80]
psubw xmm4, xmm5
psrlw xmm4, 8
paddw xmm6, xmm1
movdqa xmm1, xmmword [0x55fc20]
psubw xmm2, xmm5
paddw xmm6, xmm3
psrlw xmm2, 8
movdqa xmm3, xmmword [0x55fbd0]
pand xmm6, xmm1
movdqa xmm1, xmmword [0x55fb90]
psubw xmm3, xmm5
psrlw xmm3, 8
pand xmm2, xmm1
movdqa xmm1, xmmword [0x55fbc0]
paddw xmm2, xmm5
pand xmm4, xmm1
movdqa xmm1, xmmword [0x55fbe0]
pand xmm3, xmm1
movdqa xmm1, xmmword [0x55fc00]
paddw xmm3, xmm4
movdqa xmm4, xmmword [0x55fbb0]
paddw xmm3, xmm2
movdqa xmm2, xmmword [0x55fbf0]
psubw xmm4, xmm0
psubw xmm2, xmm5
movdqa xmm5, xmmword [0x55fb80]
psrlw xmm4, 8
psrlw xmm2, 8
pand xmm4, xmmword [0x55fbc0]
pand xmm2, xmm1
paddw xmm2, xmmword [str.AAAAAAAA33333333]
psubw xmm5, xmm0
psrlw xmm5, 8
pand xmm5, xmmword [0x55fb90]
paddw xmm2, xmm3
movdqa xmm3, xmmword [0x55fbd0]
paddw xmm5, xmm0
psubw xmm3, xmm0
psrlw xmm3, 8
pand xmm3, xmmword [0x55fbe0]
paddw xmm3, xmm4
paddw xmm3, xmm5
movdqa xmm5, xmmword [0x55fbf0]
psubw xmm5, xmm0
movdqa xmm0, xmmword [0x55fc20]
psrlw xmm5, 8
pand xmm5, xmm1
movdqa xmm1, xmmword [0x55fc50]
paddw xmm5, xmmword [str.AAAAAAAA33333333]
pand xmm2, xmm0
movdqa xmm4, xmm0
pand xmm7, xmm4
paddw xmm5, xmm3
pand xmm5, xmm0
movdqa xmm0, xmm2
punpcklwd xmm0, xmm5
punpckhwd xmm2, xmm5
pshufd xmm3, xmm0, 0xfa
pshufd xmm0, xmm0, 0x50
packuswb xmm0, xmm3
movdqa xmm3, xmm1
pandn xmm3, xmm0
movdqa xmm0, xmm7
punpckhwd xmm7, xmm6
punpcklwd xmm0, xmm6
pshufd xmm5, xmm7, 0xf6
pshufd xmm4, xmm0, 0xf6
pshufd xmm0, xmm0, 0xd4
packuswb xmm0, xmm4
pshufd xmm4, xmm7, 0xd4
pand xmm0, xmm1
packuswb xmm4, xmm5
por xmm0, xmm3
pshufd xmm3, xmm2, 0xfa
pshufd xmm2, xmm2, 0x50
pand xmm4, xmm1
packuswb xmm2, xmm3
movdqa xmm3, xmm1
movdqu xmmword [edi], xmm0
pandn xmm3, xmm2
por xmm4, xmm3
movdqu xmmword [edi + 0x10], xmm4
add edi, 0x20
add ecx, 8
jne 0x46133c
mov eax, dword [ebp - 0x30]
movdqa xmm5, xmmword [0x55fcc0]
movdqa xmm7, xmmword [0x55fcd0]
movdqa xmm1, xmmword [str.AAAA]
movdqa xmm0, xmmword [0x55fc20]
sub eax, 4
jb 0x4619bf
mov dword [ebp - 0x30], eax
movzx eax, byte [edx]
movzx esi, byte [edx + 1]
mov dword [ebp - 0x10], edx
mov edx, ebx
movdqa xmm6, xmmword [0x55fc80]
movdqa xmm4, xmmword [str.3333]
movdqa xmm2, xmmword [0x55fc60]
mov ecx, eax
mov edi, esi
shl eax, 4
and esi, 0xf
shr edi, 4
and eax, 0x30
shr ecx, 2
or eax, edi
mov edi, dword [ebp - 0x10]
movd xmm3, ecx
mov ecx, dword [ebp - 0x20]
pinsrw xmm3, eax, 1
mov eax, dword [ebp - 0x30]
movzx ebx, byte [edi + 2]
mov edi, ebx
and ebx, 0x3f
shr edi, 6
lea esi, [edi + esi*4]
mov edi, dword [ebp - 0x14]
pinsrw xmm3, esi, 2
pinsrw xmm3, ebx, 3
mov ebx, edx
mov edx, dword [ebp - 0x2c]
psubw xmm6, xmm3
psubw xmm4, xmm3
psubw xmm2, xmm3
psrlw xmm6, 8
psrlw xmm4, 8
psrlw xmm2, 8
add edi, 0xfffffffd
pand xmm6, xmmword [0x55fc90]
pand xmm4, xmmword [0x55fcb0]
pand xmm2, xmmword [0x55fc70]
mov dword [ebp - 0x14], edi
lea esi, [edx + 4]
mov dword [ebp - 0x2c], esi
paddw xmm4, xmm6
movdqa xmm6, xmm5
psubw xmm6, xmm3
psrlw xmm6, 8
pand xmm6, xmm7
paddw xmm6, xmm3
paddw xmm6, xmm4
paddw xmm6, xmm2
paddw xmm6, xmm1
pand xmm6, xmm0
packuswb xmm6, xmm6
movd dword [edx], xmm6
mov edx, dword [ebp - 0x10]
add edx, 3
cmp edi, 2
ja 0x46177c
cmp eax, 4
jb 0x4619bf
test esi, esi
je 0x4619bf
mov eax, dword [ebp - 0x44]
mov edx, dword [ebp - 0x1c]
mov byte [ebp - 0x22], 0
mov word [ebp - 0x24], 0
sub ecx, eax
add edx, eax
lea eax, [ebp - 0x24]
mov dword [ebp - 0x20], ecx
push ecx
push edx
push eax
call sym._memcpy
add esp, 0xc
movzx eax, byte [ebp - 0x24]
mov edi, 0x3d
mov edx, 0x33
mov dword [ebp - 0x10], ebx
mov ebx, 0x19
mov ecx, eax
shl eax, 4
shr ecx, 2
and eax, 0x30
sub edi, ecx
sub edx, ecx
sub ebx, ecx
shr edi, 8
shr edx, 8
shr ebx, 8
and edi, 0xf1
and edx, 0xb5
and ebx, 6
add edx, edi
mov edi, 0x3e
add ebx, ecx
sub edi, ecx
movzx ecx, byte [ebp - 0x23]
add ebx, edx
shr edi, 8
and edi, 3
add ebx, edi
mov edi, 0x3d
mov edx, ecx
add bl, 0x41
and ecx, 0xf
shr edx, 4
mov byte [esi], bl
mov ebx, 0x19
or eax, edx
mov edx, 0x33
sub edi, eax
sub edx, eax
sub ebx, eax
shr edi, 8
shr edx, 8
shr ebx, 8
and ebx, 6
and edi, 0xf1
and edx, 0xb5
add edx, edi
add ebx, eax
mov edi, 0x3e
add ebx, edx
movzx edx, byte [ebp - 0x22]
sub edi, eax
mov eax, 0x33
shr edi, 8
and edi, 3
add ebx, edi
mov edi, 0x3e
shr edx, 6
add bl, 0x41
lea ecx, [edx + ecx*4]
mov edx, 0x3d
mov byte [esi + 1], bl
mov ebx, dword [ebp - 0x10]
sub edx, ecx
sub eax, ecx
sub edi, ecx
shr edx, 8
shr eax, 8
shr edi, 8
and edx, 0xf1
and eax, 0xb5
and edi, 3
add eax, edx
mov edx, 0x19
sub edx, ecx
shr edx, 8
and edx, 6
add edx, ecx
add edx, eax
mov eax, 0x3d
add edx, edi
add dl, 0x41
cmp dword [ebp - 0x20], 1
movzx ecx, dl
cmove ecx, eax
mov byte [esi + 2], cl
mov byte [esi + 3], 0x3d
mov eax, dword [ebp - 0x28]
cmp eax, ebx
cmovb ebx, eax
test ebx, ebx
je 0x461ae7
mov esi, dword [ebp - 0x38]
mov edi, ebx
xor ecx, ecx
mov eax, ebx
mov eax, 0
cmp edi, 8
jb 0x461acb
xor ecx, ecx
mov eax, edi
cmp edi, 0x20
mov eax, 0
jb 0x461a78
mov eax, edi
pxor xmm0, xmm0
xor ecx, ecx
pxor xmm1, xmm1
and eax, 0x7fffffe0
movdqu xmm2, xmmword [ebp + ecx - 0x18]
movdqu xmm4, xmmword [esi + ecx]
movdqu xmm3, xmmword [ebp + ecx - 8]
pxor xmm4, xmm2
por xmm0, xmm4
movdqu xmm4, xmmword [esi + ecx + 0x10]
add ecx, 0x20
cmp eax, ecx
pxor xmm4, xmm3
por xmm1, xmm4
jne 0x461a09
por xmm1, xmm0
cmp edi, eax
mov edx, edi
pshufd xmm0, xmm1, 0xee
por xmm0, xmm1
pshufd xmm1, xmm0, 0x55
por xmm1, xmm0
movdqa xmm0, xmm1
psrld xmm0, 0x10
por xmm0, xmm1
movdqa xmm1, xmm0
psrlw xmm1, 8
por xmm1, xmm0
movd ecx, xmm1
je 0x461adc
mov edx, edi
test dl, 0x18
je 0x461acb
mov edx, eax
mov eax, edi
movzx ecx, cl
and eax, 0x7ffffff8
movd xmm0, ecx
movq xmm1, qword [ebp + edx - 0x18]
movq xmm2, qword [esi + edx]
add edx, 8
cmp eax, edx
pxor xmm2, xmm1
por xmm0, xmm2
jne 0x461a88
pshufd xmm1, xmm0, 0x55
por xmm1, xmm0
movdqa xmm0, xmm1
psrld xmm0, 0x10
por xmm0, xmm1
movdqa xmm1, xmm0
psrlw xmm1, 8
por xmm1, xmm0
movd ecx, xmm1
jmp 0x461ad6
movzx edx, byte [esi + eax]
xor dl, byte [ebp + eax - 0x18]
inc eax
or cl, dl
cmp edi, eax
mov edx, edi
jne 0x461acb
test cl, cl
je 0x461ae7
xor ecx, ecx
jmp 0x461294
mov edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp + 0xc]
mov dword [eax], ecx
mov dword [eax + 4], edx
jmp 0x460d9b