Function at 0x824ed0
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x950
push ebx
push esi
push edi
mov ecx, 0x1ff
xor eax, eax
lea edi, [ebp - 0x94f]
mov byte [ebp - 0x950], 0
rep stosd dword es:[edi], eax
fld qword [0x88f578]
fld qword [0x88f578]
stosw word es:[edi], ax
stosb byte es:[edi], al
fld st(0)
fmul st(1)
fld st(0)
fmul qword [0x8a9620]
fsub st(1)
fxch st(1)
fmul qword [0x89e1d8]
fadd qword [0x8a1db0]
fdivp st(1)
faddp st(2)
fld st(1)
fcomp qword [0x8a9618]
fnstsw ax
test ah, 0x41
jne 0x824f3a
fld st(0)
fmul qword [0x8a9610]
fsubp st(2)
fadd qword [0x896600]
fcom qword [0x8a9608]
fnstsw ax
test ah, 1
jne 0x824f01
fxch st(1)
fst qword [ebp - 0x38]
fxch st(1)
fstp st(0)
fcomp qword [0x88f578]
fnstsw ax
test ah, 1
je 0x824fb0
and ax, 0x333c
jp 0x824f9d
push ebp
bound esp, qword [edx]
outsb dx, byte fs:[esi]
dec ebx
and ah, byte [esi + ebp*2 + 0x4b]
xor eax, 0x2637363f
jnp 0x824f99
cmp byte [0x3e413b63], ch
cmp eax, dword [ecx + 0x3e]
sub byte [esi + 0x35], cl
dec ebx
dec esi
xor eax, 0xf07c724b
jp 0x824f6b
jb 0x824ffe
invalid
and esi, 0xeb77e981
jp 0x824f7c
sub ecx, 0xef7aeb77
jl 0x824f7c
in eax, dx
jae 0x824f80
jl 0x824f79
je 0x824f79
in al, 0x76
jmp 0xe2fa341b
jbe 0x824f80
and ah, 0x77
loop 0x825014
ja 0x824f7d
js 0x824f87
ljmp 0xe681:0xed7ee379
jns 0x824f82
jle 0x824f8e
and esi, 0xea7feb76
jbe 0x824f94
jae 0x824f95
jmp 0x8258ee
mov dword [ebp - 0x20], 0x824f81
mov dword [ebp - 0x30], 0x824f63
xor eax, eax
mov byte [ebp + eax - 0x150], al
inc eax
cmp eax, 0x100
jb 0x824fc0
fld qword [ebp - 0x38]
mov byte [ebp - 0xc], 0
mov eax, 0xff
mov esi, dword [ebp - 0xc]
xor edi, edi
mov dword [ebp - 0x14], eax
mov ebx, 1
mov dword [ebp - 0x18], 0
cmp eax, ebx
jbe 0x824ffb
lea ebx, [ebx + ebx + 1]
cmp ebx, eax
jb 0x824ff3
cmp edi, 3
ja case.default.0x825000
jmp dword [edi*4 + 0x825974]
fld st(0)
and esi, 0xff
call fcn.0083dce4
mov cl, byte [ebp + esi - 0x150]
jmp 0x82507c
fld st(0)
and esi, 0xff
call fcn.0083dce4
mov cl, byte [ebp + esi - 0x150]
shr eax, 8
jmp 0x82507c
fld st(0)
and esi, 0xff
call fcn.0083dce4
mov cl, byte [ebp + esi - 0x150]
shr eax, 0x10
jmp 0x82507c
fld st(0)
and esi, 0xff
call fcn.0083dce4
mov cl, byte [ebp + esi - 0x150]
shr eax, 0x18
jmp 0x82507c
mov eax, dword [ebp - 0x30]
and esi, 0xff
mov cl, byte [eax + edi - 4]
mov al, byte [ebp + esi - 0x150]
add cl, al
inc edi
cmp edi, 0x22
mov byte [ebp - 0xc], cl
jb 0x82508f
xor edi, edi
add cl, 0x22
mov byte [ebp - 0xc], cl
mov esi, dword [ebp - 0xc]
mov eax, dword [ebp - 0x18]
mov edx, esi
and edx, 0xff
and edx, ebx
inc eax
cmp eax, 0xb
mov dword [ebp - 0x18], eax
jbe 0x8250af
mov eax, edx
xor edx, edx
div dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
cmp eax, edx
jb 0x824ffb
je 0x8250e7
mov bl, byte [ebp + eax - 0x150]
lea edx, [ebp + edx - 0x150]
lea ecx, [ebp + eax - 0x150]
mov al, byte [edx]
xor bl, al
mov byte [ecx], bl
mov al, bl
mov bl, byte [edx]
xor bl, al
mov byte [edx], bl
mov al, byte [ecx]
mov dl, bl
xor al, dl
mov byte [ecx], al
mov eax, dword [ebp - 0x14]
dec eax
mov dword [ebp - 0x14], eax
jne 0x824fe3
mov dl, byte [ebp - 0x149]
mov cl, byte [ebp - 0x14b]
mov byte [ebp - 0x24], dl
mov edx, dword [ebp - 0x20]
mov byte [ebp - 0x10], cl
xor ecx, ecx
mov cl, byte [edx + 1]
mov dl, byte [edx]
and esi, 0xff
add dl, 0xe
shl dl, 4
mov al, byte [ebp + esi - 0x150]
add cl, 0x1f
mov byte [ebp - 0xc], al
or dl, cl
mov ecx, dword [ebp - 0xc]
mov byte [ebp - 0x14], dl
and ecx, 0xff
mov bl, byte [ebp - 0x14d]
xor eax, eax
mov dl, byte [ebp + ecx - 0x150]
lea edi, [ebp + ecx - 0x150]
mov byte [ebp - 8], dl
mov edx, dword [ebp - 0x14f]
mov ecx, edx
and ecx, 0xff
fstp st(0)
mov cl, byte [ebp + ecx - 0x150]
add cl, bl
inc dl
mov byte [ebp - 0x28], cl
mov byte [ebp - 4], dl
mov edx, dword [ebp - 0x28]
and edx, 0xff
lea esi, [ebp + edx - 0x150]
mov dword [ebp - 0x2c], esi
mov dl, byte [esi]
mov byte [edi], dl
mov edx, dword [ebp - 0x24]
and edx, 0xff
mov bl, byte [ebp + edx - 0x150]
lea edx, [ebp + edx - 0x150]
mov byte [esi], bl
mov esi, dword [ebp - 4]
and esi, 0xff
mov dword [ebp - 0x1c], edx
mov bl, byte [ebp + esi - 0x150]
lea esi, [ebp + esi - 0x150]
mov byte [edx], bl
mov dl, byte [ebp - 8]
mov bl, byte [ebp - 0x10]
mov byte [esi], dl
mov edx, dword [ebp - 8]
and edx, 0xff
mov dword [ebp - 0x18], edx
mov dl, byte [ebp + edx - 0x150]
add bl, dl
mov byte [ebp - 0x10], bl
mov bl, byte [edi]
mov edx, dword [ebp - 0x10]
mov edi, dword [ebp - 0x1c]
and edx, 0xff
mov dl, byte [ebp + edx - 0x150]
add edx, ebx
mov bl, byte [edi]
add edx, ebx
mov edi, dword [ebp - 0x18]
and edx, 0xff
xor ebx, ebx
mov bl, byte [ebp + edx - 0x150]
mov edx, dword [ebp - 0x2c]
mov dl, byte [edx]
mov bl, byte [ebp + ebx - 0x150]
add edx, edi
mov edi, dword [ebp - 0x20]
and edx, 0xff
xor bl, byte [ebp + edx - 0x150]
mov dl, byte [ebp - 0x14]
mov byte [ebp - 0xc], dl
xor bl, dl
mov byte [ebp - 0x24], bl
mov dword [ebp - 0x30], 8
jmp 0x82523f
mov edi, dword [ebp - 0x34]
mov bl, byte [edi + 2]
add edi, 2
xor edx, edx
add bl, 0xe
mov dl, byte [edi + 1]
mov dword [ebp - 0x34], edi
shl bl, 4
add dl, 0x1f
inc eax
or bl, dl
mov edx, dword [ebp - 0xc]
and edx, 0xff
mov byte [ebp - 0x14], bl
mov bl, byte [ebp - 4]
lea edi, [ebp + edx - 0x150]
mov dl, byte [ebp + edx - 0x150]
mov byte [ebp - 8], dl
mov dl, byte [esi]
add cl, dl
inc bl
mov byte [ebp - 0x28], cl
mov byte [ebp - 4], bl
mov edx, dword [ebp - 0x28]
and edx, 0xff
lea esi, [ebp + edx - 0x150]
mov dword [ebp - 0x2c], esi
mov dl, byte [esi]
mov byte [edi], dl
mov edx, dword [ebp - 0x24]
and edx, 0xff
mov bl, byte [ebp + edx - 0x150]
lea edx, [ebp + edx - 0x150]
mov byte [esi], bl
mov esi, dword [ebp - 4]
and esi, 0xff
mov dword [ebp - 0x1c], edx
mov bl, byte [ebp + esi - 0x150]
lea esi, [ebp + esi - 0x150]
mov byte [edx], bl
mov dl, byte [ebp - 8]
mov bl, byte [ebp - 0x10]
mov byte [esi], dl
mov edx, dword [ebp - 8]
and edx, 0xff
mov dword [ebp - 0x18], edx
mov dl, byte [ebp + edx - 0x150]
add bl, dl
mov byte [ebp - 0x10], bl
mov bl, byte [edi]
mov edx, dword [ebp - 0x10]
mov edi, dword [ebp - 0x1c]
and edx, 0xff
mov dl, byte [ebp + edx - 0x150]
add edx, ebx
mov bl, byte [edi]
add edx, ebx
xor ebx, ebx
and edx, 0xff
mov bl, byte [ebp + edx - 0x150]
mov edx, dword [ebp - 0x2c]
mov edi, ebx
mov bl, byte [edx]
mov edx, dword [ebp - 0x18]
add ebx, edx
mov dl, byte [ebp + edi - 0x150]
and ebx, 0xff
xor dl, byte [ebp + ebx - 0x150]
mov bl, byte [ebp - 0x14]
mov byte [ebp - 0xc], bl
xor dl, bl
test eax, eax
mov byte [ebp - 0x24], dl
jbe 0x82534e
mov byte [ebp + eax - 0x51], dl
mov edx, dword [ebp - 0x30]
dec edx
mov dword [ebp - 0x30], edx
jne 0x82523c
lea ebx, [eax + 1]
cmp ebx, 0x12
jge 0x8254a8
mov edx, dword [ebp - 4]
and edx, 0xff
lea esi, [ebp + edx - 0x150]
mov edx, dword [ebp - 0x20]
lea edi, [edx + eax*2]
mov edx, 0x12
sub edx, ebx
mov dword [ebp - 0x30], edx
jmp 0x82538c
mov edi, dword [ebp - 0x34]
mov bl, byte [edi + 2]
add edi, 2
xor edx, edx
add bl, 0xe
mov dl, byte [edi + 1]
mov dword [ebp - 0x34], edi
shl bl, 4
add dl, 0x1f
inc eax
or bl, dl
mov edx, dword [ebp - 0xc]
and edx, 0xff
mov byte [ebp - 0x14], bl
mov bl, byte [ebp - 4]
lea edi, [ebp + edx - 0x150]
mov dl, byte [ebp + edx - 0x150]
mov byte [ebp - 8], dl
mov dl, byte [esi]
add cl, dl
inc bl
mov byte [ebp - 0x28], cl
mov byte [ebp - 4], bl
mov edx, dword [ebp - 0x28]
and edx, 0xff
lea esi, [ebp + edx - 0x150]
mov dword [ebp - 0x2c], esi
mov dl, byte [esi]
mov byte [edi], dl
mov edx, dword [ebp - 0x24]
and edx, 0xff
mov bl, byte [ebp + edx - 0x150]
lea edx, [ebp + edx - 0x150]
mov byte [esi], bl
mov esi, dword [ebp - 4]
and esi, 0xff
mov dword [ebp - 0x1c], edx
mov bl, byte [ebp + esi - 0x150]
lea esi, [ebp + esi - 0x150]
mov byte [edx], bl
mov dl, byte [ebp - 8]
mov bl, byte [ebp - 0x10]
mov byte [esi], dl
mov edx, dword [ebp - 8]
and edx, 0xff
mov dword [ebp - 0x18], edx
mov dl, byte [ebp + edx - 0x150]
add bl, dl
mov byte [ebp - 0x10], bl
mov bl, byte [edi]
mov edx, dword [ebp - 0x10]
mov edi, dword [ebp - 0x1c]
and edx, 0xff
mov dl, byte [ebp + edx - 0x150]
add edx, ebx
mov bl, byte [edi]
add edx, ebx
xor ebx, ebx
and edx, 0xff
mov bl, byte [ebp + edx - 0x150]
mov edx, dword [ebp - 0x2c]
mov edi, ebx
mov bl, byte [edx]
mov edx, dword [ebp - 0x18]
add ebx, edx
mov dl, byte [ebp + edi - 0x150]
and ebx, 0xff
xor dl, byte [ebp + ebx - 0x150]
mov bl, byte [ebp - 0x14]
mov byte [ebp - 0xc], bl
xor dl, bl
test eax, eax
mov byte [ebp - 0x24], dl
jbe 0x82549b
mov byte [ebp + eax - 0x51], dl
mov edx, dword [ebp - 0x30]
dec edx
mov dword [ebp - 0x30], edx
jne 0x825389
mov esi, dword [ebp - 0x20]
inc eax
xor edx, edx
mov dl, byte [esi + eax*2]
mov edi, edx
xor edx, edx
mov dl, byte [esi + eax*2 + 1]
lea ebx, [edi - 0x72]
add dl, 0x1f
shl ebx, 4
or dl, bl
mov byte [ebp - 0x14], dl
mov edx, dword [ebp - 0xc]
and edx, 0xff
lea edi, [ebp + edx - 0x150]
mov dl, byte [ebp + edx - 0x150]
mov byte [ebp - 8], dl
mov edx, dword [ebp - 4]
and edx, 0xff
mov bl, byte [ebp + edx - 0x150]
mov dl, byte [ebp - 4]
add cl, bl
inc dl
mov byte [ebp - 0x28], cl
mov byte [ebp - 4], dl
mov edx, dword [ebp - 0x28]
and edx, 0xff
mov bl, byte [ebp + edx - 0x150]
lea edx, [ebp + edx - 0x150]
mov byte [edi], bl
mov ebx, dword [ebp - 0x24]
and ebx, 0xff
mov dword [ebp - 0x2c], edx
lea ebx, [ebp + ebx - 0x150]
mov dword [ebp - 0x1c], ebx
mov bl, byte [ebx]
mov byte [edx], bl
mov edx, dword [ebp - 4]
mov ebx, dword [ebp - 0x1c]
and edx, 0xff
lea edx, [ebp + edx - 0x150]
mov dword [ebp - 0x20], edx
mov dl, byte [edx]
mov byte [ebx], dl
mov ebx, dword [ebp - 0x20]
mov dl, byte [ebp - 8]
mov byte [ebx], dl
mov edx, dword [ebp - 8]
mov bl, byte [ebp - 0x10]
and edx, 0xff
mov dword [ebp - 0x18], edx
mov dl, byte [ebp + edx - 0x150]
add bl, dl
mov byte [ebp - 0x10], bl
mov bl, byte [edi]
mov edx, dword [ebp - 0x10]
mov edi, dword [ebp - 0x1c]
and edx, 0xff
mov dl, byte [ebp + edx - 0x150]
add edx, ebx
mov bl, byte [edi]
add edx, ebx
xor ebx, ebx
and edx, 0xff
mov bl, byte [ebp + edx - 0x150]
mov edx, dword [ebp - 0x2c]
mov edi, ebx
mov bl, byte [edx]
mov edx, dword [ebp - 0x18]
add ebx, edx
mov dl, byte [ebp + edi - 0x150]
and ebx, 0xff
xor dl, byte [ebp + ebx - 0x150]
mov bl, byte [ebp - 0x14]
mov byte [ebp - 0xc], bl
xor dl, bl
test eax, eax
mov byte [ebp - 0x24], dl
jbe 0x8255cb
mov byte [ebp + eax - 0x51], dl
inc eax
xor edx, edx
xor ebx, ebx
mov dl, byte [esi + eax*2]
mov bl, byte [esi + eax*2 + 1]
sub edx, 0x72
sub ebx, 0xe1
shl edx, 4
or dl, bl
mov byte [ebp - 0x14], dl
mov edx, dword [ebp - 0xc]
and edx, 0xff
lea edi, [ebp + edx - 0x150]
mov dl, byte [ebp + edx - 0x150]
mov byte [ebp - 8], dl
mov edx, dword [ebp - 0x20]
mov bl, byte [edx]
mov dl, byte [ebp - 4]
add cl, bl
inc dl
mov byte [ebp - 0x28], cl
mov byte [ebp - 4], dl
mov edx, dword [ebp - 0x28]
and edx, 0xff
mov bl, byte [ebp + edx - 0x150]
lea edx, [ebp + edx - 0x150]
mov byte [edi], bl
mov ebx, dword [ebp - 0x24]
and ebx, 0xff
mov dword [ebp - 0x2c], edx
lea ebx, [ebp + ebx - 0x150]
mov dword [ebp - 0x1c], ebx
mov bl, byte [ebx]
mov byte [edx], bl
mov edx, dword [ebp - 4]
mov ebx, dword [ebp - 0x1c]
and edx, 0xff
lea edx, [ebp + edx - 0x150]
mov dword [ebp - 0x20], edx
mov dl, byte [edx]
mov byte [ebx], dl
mov ebx, dword [ebp - 0x20]
mov dl, byte [ebp - 8]
mov byte [ebx], dl
mov edx, dword [ebp - 8]
mov bl, byte [ebp - 0x10]
and edx, 0xff
mov dword [ebp - 0x18], edx
mov dl, byte [ebp + edx - 0x150]
add bl, dl
mov byte [ebp - 0x10], bl
mov bl, byte [edi]
mov edx, dword [ebp - 0x10]
mov edi, dword [ebp - 0x1c]
and edx, 0xff
mov dl, byte [ebp + edx - 0x150]
add edx, ebx
mov bl, byte [edi]
add edx, ebx
xor ebx, ebx
and edx, 0xff
mov bl, byte [ebp + edx - 0x150]
mov edx, dword [ebp - 0x2c]
mov edi, ebx
mov bl, byte [edx]
mov edx, dword [ebp - 0x18]
add ebx, edx
mov dl, byte [ebp + edi - 0x150]
and ebx, 0xff
xor dl, byte [ebp + ebx - 0x150]
mov bl, byte [ebp - 0x14]
mov byte [ebp - 0xc], bl
xor dl, bl
test eax, eax
mov byte [ebp - 0x24], dl
jbe 0x8256e1
mov byte [ebp + eax - 0x51], dl
mov bl, byte [esi + eax*2 + 2]
mov dl, byte [esi + eax*2 + 3]
inc eax
add bl, 0xe
add dl, 0x1f
shl bl, 4
or dl, bl
mov byte [ebp - 0x14], dl
mov edx, dword [ebp - 0xc]
and edx, 0xff
lea edi, [ebp + edx - 0x150]
mov dl, byte [ebp + edx - 0x150]
mov byte [ebp - 8], dl
mov edx, dword [ebp - 0x20]
mov bl, byte [edx]
mov dl, byte [ebp - 4]
add cl, bl
inc dl
mov byte [ebp - 0x28], cl
mov byte [ebp - 4], dl
mov edx, dword [ebp - 0x28]
and edx, 0xff
mov bl, byte [ebp + edx - 0x150]
lea edx, [ebp + edx - 0x150]
mov byte [edi], bl
mov ebx, dword [ebp - 0x24]
and ebx, 0xff
mov dword [ebp - 0x2c], edx
lea ebx, [ebp + ebx - 0x150]
mov dword [ebp - 0x1c], ebx
mov bl, byte [ebx]
mov byte [edx], bl
mov edx, dword [ebp - 4]
mov ebx, dword [ebp - 0x1c]
and edx, 0xff
lea edx, [ebp + edx - 0x150]
mov dword [ebp - 0x20], edx
mov dl, byte [edx]
mov byte [ebx], dl
mov ebx, dword [ebp - 0x20]
mov dl, byte [ebp - 8]
mov byte [ebx], dl
mov edx, dword [ebp - 8]
mov bl, byte [ebp - 0x10]
and edx, 0xff
mov dword [ebp - 0x18], edx
mov dl, byte [ebp + edx - 0x150]
add bl, dl
mov byte [ebp - 0x10], bl
mov bl, byte [edi]
mov edx, dword [ebp - 0x10]
mov edi, dword [ebp - 0x1c]
and edx, 0xff
mov dl, byte [ebp + edx - 0x150]
add edx, ebx
mov bl, byte [edi]
add edx, ebx
xor ebx, ebx
and edx, 0xff
mov bl, byte [ebp + edx - 0x150]
mov edx, dword [ebp - 0x2c]
mov edi, ebx
mov bl, byte [edx]
mov edx, dword [ebp - 0x18]
add ebx, edx
mov dl, byte [ebp + edi - 0x150]
and ebx, 0xff
xor dl, byte [ebp + ebx - 0x150]
mov bl, byte [ebp - 0x14]
xor dl, bl
test eax, eax
mov byte [ebp - 0x24], dl
jbe 0x8257ee
mov byte [ebp + eax - 0x51], dl
mov edx, dword [ebp - 0x14]
inc eax
and edx, 0xff
lea edi, [ebp + edx - 0x150]
mov dl, byte [ebp + edx - 0x150]
mov byte [ebp - 8], dl
mov edx, dword [ebp - 0x20]
mov bl, byte [edx]
add cl, bl
mov bl, byte [ebp - 4]
mov byte [ebp - 0x28], cl
inc bl
mov ecx, dword [ebp - 0x28]
mov byte [ebp - 4], bl
and ecx, 0xff
mov dl, byte [ebp + ecx - 0x150]
lea ecx, [ebp + ecx - 0x150]
mov byte [edi], dl
mov edx, dword [ebp - 0x24]
and edx, 0xff
mov dword [ebp - 0x2c], ecx
mov bl, byte [ebp + edx - 0x150]
lea edx, [ebp + edx - 0x150]
mov byte [ecx], bl
mov ecx, dword [ebp - 4]
and ecx, 0xff
mov dword [ebp - 0x1c], edx
mov bl, byte [ebp + ecx - 0x150]
lea ecx, [ebp + ecx - 0x150]
mov byte [edx], bl
mov dl, byte [ebp - 8]
mov bl, byte [esi + eax*2]
mov byte [ecx], dl
mov edx, dword [ebp - 8]
mov cl, byte [esi + eax*2 + 1]
add bl, 0xe
and edx, 0xff
add cl, 0x1f
mov dword [ebp - 0x18], edx
mov dl, byte [ebp + edx - 0x150]
mov esi, dword [ebp - 0x1c]
shl bl, 4
or cl, bl
mov bl, byte [ebp - 0x10]
add dl, bl
mov bl, byte [edi]
and edx, 0xff
mov edi, dword [ebp - 0x18]
mov dl, byte [ebp + edx - 0x150]
add edx, ebx
mov bl, byte [esi]
add edx, ebx
xor ebx, ebx
and edx, 0xff
mov bl, byte [ebp + edx - 0x150]
mov dl, byte [ebp + ebx - 0x150]
xor cl, dl
mov edx, dword [ebp - 0x2c]
mov dl, byte [edx]
add edx, edi
and edx, 0xff
xor cl, byte [ebp + edx - 0x150]
test eax, eax
jbe 0x8258ea
mov byte [ebp + eax - 0x51], cl
mov byte [ebp - 0x3c], 0
mov eax, dword [0x8d1090]
test eax, eax
jle 0x825938
mov edx, 0x8d0fd8
mov dword [ebp - 0x30], eax
mov edi, dword [edx]
or ecx, 0xffffffff
xor eax, eax
lea ebx, [ebp - 0x950]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
add edx, 4
mov esi, edi
mov edi, ebx
mov ebx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 0x30]
mov ecx, ebx
and ecx, 3
dec eax
rep movsb byte es:[edi], byte [esi]
mov dword [ebp - 0x30], eax
jne 0x8258ff
lea eax, [ebp - 0x50]
lea ecx, [ebp - 0x950]
push eax
push ecx
call fcn.00831aa0
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
add esp, 8
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, 0x8d1018
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret