Function at 0x42ac70
Capabilities:
Encode data using xor

Disassembly:
pushfd
pushal
mov ebx, dword [esp + 0x3c]
mov edi, dword [esp + 0x28]
mov ecx, dword [esp + 0x30]
mov edx, ebx
mov esi, dword [esp + 0x2c]
and edx, 0xfff
mov ebp, dword [esp + 0x34]
cmp dword [esp + 0x40], 0
mov eax, dword [esp + 0x38]
mov dword [0x4626c4], edx
jne 0x42b030
mov dword [0x4626c0], eax
sub edx, 0x100
neg edx
mov dword [0x4626cc], edx
or ebx, ebx
js 0x42ae70
or ecx, ecx
jne 0x42ad60
mov ecx, eax
test ebx, 0x40000000
jne 0x42ad20
movzx edx, byte [ebp]
xor eax, eax
add edx, ebx
sub edx, 0x100
adc eax, 0xffffffff
and edx, eax
cmp edx, 0x100
jbe 0x42acf0
mov edx, 0x100
add ebp, 3
movzx eax, byte [esi]
inc esi
imul eax, edx
mov byte [edi], ah
inc edi
movzx eax, byte [esi]
inc esi
imul eax, edx
mov byte [edi], ah
inc edi
movzx eax, byte [esi]
inc esi
imul eax, edx
mov byte [edi], ah
inc edi
dec ecx
jne 0x42acd0
popal
popfd
ret
movzx edx, byte [ebp]
xor eax, eax
cmp edx, dword [0x4626cc]
adc eax, 0xffffffff
and eax, 0xffffffff
add ebp, 3
mov edx, eax
mov al, byte [esi]
and al, dl
mov byte [edi], al
mov al, byte [esi + 1]
and al, dl
mov byte [edi + 1], al
mov al, byte [esi + 2]
and al, dl
mov byte [edi + 2], al
add esi, 3
add edi, 3
dec ecx
jne 0x42ad20
popal
popfd
ret
test ebx, 0x40000000
jne 0x42ae00
lea esp, [esp]
movzx edx, byte [ebp]
xor eax, eax
add edx, dword [0x4626c4]
sub edx, 0x100
adc eax, 0xffffffff
and edx, eax
cmp edx, 0x100
jbe 0x42ad94
mov edx, 0x100
mov eax, 0x100
sub eax, edx
add ebp, 3
mov dword [0x4626c8], eax
movzx eax, byte [esi]
movzx ebx, byte [ecx]
imul eax, edx
imul ebx, dword [0x4626c8]
add eax, ebx
inc ecx
mov byte [edi], ah
inc esi
inc edi
movzx eax, byte [esi]
movzx ebx, byte [ecx]
imul eax, edx
imul ebx, dword [0x4626c8]
add eax, ebx
inc ecx
mov byte [edi], ah
inc esi
inc edi
movzx eax, byte [esi]
movzx ebx, byte [ecx]
imul eax, edx
imul ebx, dword [0x4626c8]
add eax, ebx
inc ecx
mov byte [edi], ah
inc esi
inc edi
dec dword [0x4626c0]
jne 0x42ad70
popal
popfd
ret
movzx edx, byte [ebp]
xor eax, eax
cmp edx, dword [0x4626cc]
adc eax, 0xffffffff
and eax, 0xffffffff
add ebp, 3
mov edx, eax
not eax
mov dword [0x4626c8], eax
mov al, byte [esi]
mov bl, byte [ecx]
and al, dl
and bl, byte [0x4626c8]
add al, bl
mov byte [edi], al
mov al, byte [esi + 1]
mov bl, byte [ecx + 1]
and al, dl
and bl, byte [0x4626c8]
add al, bl
mov byte [edi + 1], al
mov al, byte [esi + 2]
mov bl, byte [ecx + 2]
and al, dl
and bl, byte [0x4626c8]
add al, bl
mov byte [edi + 2], al
add esi, 3
add edi, 3
add ecx, 3
dec dword [0x4626c0]
jne 0x42ae00
popal
popfd
ret
or ecx, ecx
jne 0x42af20
mov ecx, eax
test ebx, 0x40000000
jne 0x42aee0
and ebx, 0x3fffffff
mov ecx, eax
lea ebx, [ebx]
movzx edx, byte [ebp]
xor edx, 0xff
xor eax, eax
add edx, ebx
sub edx, 0x100
adc eax, 0xffffffff
and edx, eax
cmp edx, 0x100
jbe 0x42aeb6
mov edx, 0x100
add ebp, 3
movzx eax, byte [esi]
imul eax, edx
mov byte [edi], ah
inc esi
inc edi
movzx eax, byte [esi]
imul eax, edx
mov byte [edi], ah
inc esi
inc edi
movzx eax, byte [esi]
imul eax, edx
mov byte [edi], ah
inc esi
inc edi
dec ecx
jne 0x42ae90
popal
popfd
ret
movzx edx, byte [ebp]
xor eax, eax
xor edx, 0xff
cmp edx, dword [0x4626cc]
adc eax, 0xffffffff
and eax, 0xffffffff
add ebp, 3
mov edx, eax
mov al, byte [esi]
and al, dl
mov byte [edi], al
mov al, byte [esi + 1]
and al, dl
mov byte [edi + 1], al
mov al, byte [esi + 2]
and al, dl
mov byte [edi + 2], al
add esi, 3
add edi, 3
dec ecx
jne 0x42aee0
popal
popfd
ret
test ebx, 0x40000000
jne 0x42afc0
lea esp, [esp]
movzx edx, byte [ebp]
xor eax, eax
xor edx, 0xff
add edx, dword [0x4626c4]
sub edx, 0x100
adc eax, 0xffffffff
and edx, eax
cmp edx, 0x100
jbe 0x42af5a
mov edx, 0x100
mov eax, 0x100
sub eax, edx
add ebp, 3
mov dword [0x4626c8], eax
movzx eax, byte [esi]
movzx ebx, byte [ecx]
imul eax, edx
imul ebx, dword [0x4626c8]
add eax, ebx
inc ecx
mov byte [edi], ah
inc esi
inc edi
movzx eax, byte [esi]
movzx ebx, byte [ecx]
imul eax, edx
imul ebx, dword [0x4626c8]
add eax, ebx
inc ecx
mov byte [edi], ah
inc esi
inc edi
movzx eax, byte [esi]
movzx ebx, byte [ecx]
imul eax, edx
imul ebx, dword [0x4626c8]
add eax, ebx
inc ecx
mov byte [edi], ah
inc esi
inc edi
dec dword [0x4626c0]
jne 0x42af30
popal
popfd
ret
movzx edx, byte [ebp]
xor eax, eax
xor edx, 0xff
cmp edx, dword [0x4626cc]
adc eax, 0xffffffff
and eax, 0xffffffff
add ebp, 3
mov edx, eax
not eax
mov dword [0x4626c8], eax
mov al, byte [esi]
mov bl, byte [ecx]
and al, dl
and bl, byte [0x4626c8]
add al, bl
mov byte [edi], al
mov al, byte [esi + 1]
mov bl, byte [ecx + 1]
and al, dl
and bl, byte [0x4626c8]
add al, bl
mov byte [edi + 1], al
mov al, byte [esi + 2]
mov bl, byte [ecx + 2]
and al, dl
and bl, byte [0x4626c8]
add al, bl
mov byte [edi + 2], al
add esi, 3
add edi, 3
add ecx, 3
dec dword [0x4626c0]
jne 0x42afc0
popal
popfd
ret
lea edx, [eax + eax*2]
pxor mm6, mm6
mov eax, 0xff
movd mm4, eax
mov eax, ebx
and ebx, 0x3fffffff
movd mm3, ebx
shr edx, 2
punpckldq mm3, mm3
punpckldq mm4, mm4
or eax, eax
js 0x42b1f0
or ecx, ecx
jne 0x42b110
test eax, 0x40000000
jne 0x42b0c0
lea esp, [esp]
movd mm0, dword [ebp]
punpcklbw mm0, mm6
movq mm1, mm0
punpcklwd mm0, mm6
punpckhwd mm1, mm6
paddd mm0, mm3
paddd mm1, mm3
psubusw mm0, mm4
psubusw mm1, mm4
packuswb mm0, mm6
movd mm2, dword [esi]
packuswb mm1, mm6
psllq mm1, 0x20
punpcklbw mm2, mm6
por mm0, mm1
pmullw mm2, mm0
add ebp, 4
add esi, 4
add edi, 4
psrlw mm2, 8
dec edx
packuswb mm2, mm6
movd dword [edi - 4], mm2
jne 0x42b070
emms
popal
popfd
ret
sub ebx, 0x100
neg ebx
movd mm3, ebx
punpcklwd mm3, mm3
punpckldq mm3, mm3
lea esp, [esp]
lea esp, [esp]
nop
movd mm0, dword [ebp]
movd mm1, dword [esi]
punpcklbw mm0, mm6
add ebp, 4
pcmpgtw mm0, mm3
punpcklbw mm1, mm6
add esi, 4
pand mm1, mm0
add edi, 4
packuswb mm1, mm6
dec edx
movd dword [edi - 4], mm1
jne 0x42b0e0
emms
popal
popfd
ret
test eax, 0x40000000
jne 0x42b190
mov eax, 0x1010101
movd mm5, eax
movd mm0, dword [ebp]
add ebp, 4
punpcklbw mm0, mm6
movq mm1, mm0
punpcklwd mm0, mm6
punpckhwd mm1, mm6
paddd mm0, mm3
paddd mm1, mm3
psubusw mm0, mm4
psubusw mm1, mm4
packuswb mm0, mm6
packuswb mm1, mm6
movd mm2, dword [esi]
psllq mm1, 0x20
movd mm7, dword [ecx]
por mm0, mm1
punpcklbw mm5, mm6
punpcklbw mm2, mm6
punpcklbw mm7, mm6
psllq mm5, 8
add esi, 4
psubusw mm5, mm0
pmullw mm2, mm0
pmullw mm7, mm5
add ecx, 4
add edi, 4
dec edx
paddusw mm2, mm7
psrlw mm2, 8
packuswb mm2, mm6
movd dword [edi - 4], mm2
jne 0x42b120
emms
popal
popfd
ret
sub ebx, 0x100
neg ebx
movd mm3, ebx
punpcklwd mm3, mm3
punpckldq mm3, mm3
lea esp, [esp]
lea esp, [esp]
nop
movd mm0, dword [ebp]
add ebp, 4
punpcklbw mm0, mm6
movd mm1, dword [esi]
pcmpgtw mm0, mm3
movd mm2, dword [ecx]
punpcklbw mm1, mm6
punpcklbw mm2, mm6
pand mm1, mm0
add esi, 4
pandn mm0, mm2
add ecx, 4
paddw mm1, mm0
packuswb mm1, mm6
add edi, 4
dec edx
movd dword [edi - 4], mm1
jne 0x42b1b0
emms
popal
popfd
ret
or ecx, ecx
jne 0x42b2c0
test eax, 0x40000000
jne 0x42b270
mov eax, 0xffffffff
movd mm5, eax
lea esp, [esp]
mov edi, edi
movd mm0, dword [ebp]
add ebp, 4
pxor mm0, mm5
punpcklbw mm0, mm6
movq mm1, mm0
punpcklwd mm0, mm6
punpckhwd mm1, mm6
paddd mm0, mm3
paddd mm1, mm3
psubusw mm0, mm4
psubusw mm1, mm4
packuswb mm0, mm6
packuswb mm1, mm6
movd mm2, dword [esi]
psllq mm1, 0x20
por mm0, mm1
punpcklbw mm2, mm6
pmullw mm2, mm0
add esi, 4
psrlw mm2, 8
add edi, 4
packuswb mm2, mm6
movd dword [edi - 4], mm2
dec edx
jne 0x42b210
emms
popal
popfd
ret
sub ebx, 0x100
neg ebx
mov eax, 0xffffffff
movd mm3, ebx
movd mm5, eax
punpcklwd mm3, mm3
punpckldq mm3, mm3
lea esp, [esp]
movd mm0, dword [ebp]
movd mm1, dword [esi]
pxor mm0, mm5
add ebp, 4
punpcklbw mm0, mm6
pcmpgtw mm0, mm3
punpcklbw mm1, mm6
add esi, 4
pand mm1, mm0
add edi, 4
packuswb mm1, mm6
dec edx
movd dword [edi - 4], mm1
jne 0x42b290
emms
popal
popfd
ret
test eax, 0x40000000
jne 0x42b340
mov eax, 0x1010101
movd mm5, eax
movd mm0, dword [ebp]
add ebp, 4
pxor mm0, mm5
punpcklbw mm0, mm6
movq mm1, mm0
punpcklwd mm0, mm6
punpckhwd mm1, mm6
paddd mm0, mm3
paddd mm1, mm3
psubusw mm0, mm4
psubusw mm1, mm4
packuswb mm0, mm6
packuswb mm1, mm6
movd mm2, dword [esi]
psllq mm1, 0x20
movd mm7, dword [ecx]
punpcklbw mm5, mm6
por mm0, mm1
punpcklbw mm2, mm6
punpcklbw mm7, mm6
psllq mm5, 8
add esi, 4
psubusw mm5, mm0
pmullw mm2, mm0
pmullw mm7, mm5
add ecx, 4
add edi, 4
dec edx
paddusw mm2, mm7
psrlw mm2, 8
packuswb mm2, mm6
movd dword [edi - 4], mm2
jne 0x42b2d0
emms
popal
popfd
ret
sub ebx, 0x100
neg ebx
mov eax, 0xffffffff
movd mm3, ebx
movd mm5, eax
punpcklwd mm3, mm3
punpckldq mm3, mm3
lea esp, [esp]
movd mm0, dword [ebp]
add ebp, 4
pxor mm0, mm5
punpcklbw mm0, mm6
movd mm1, dword [esi]
pcmpgtw mm0, mm3
movd mm2, dword [ecx]
punpcklbw mm1, mm6
punpcklbw mm2, mm6
pand mm1, mm0
add esi, 4
pandn mm0, mm2
add ecx, 4
paddw mm1, mm0
packuswb mm1, mm6
add edi, 4
dec edx
movd dword [edi - 4], mm1
jne 0x42b360
emms
popal
popfd
ret