Function at 0x70e347fb
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
mov edx, ecx
mov ecx, dword [edx + 0x28]
push edi
mov edi, dword [edx + 0x1c]
test edi, edi
mov dword [ebp - 4], ecx
jg 0x70e34817
mov al, 1
jmp 0x70e34dbc
mov eax, dword [ebp + 0x10]
push ebx
push esi
push 8
pop esi
cmp eax, esi
ja 0x70e34869
cmp eax, ecx
jne 0x70e34869
mov edx, dword [edx + 0x44]
imul edi, eax
mov esi, dword [ebp + 0xc]
add edi, 7
shr edi, 3
test edx, edx
je 0x70e34851
mov eax, dword [ebp + 8]
movzx ecx, byte [esi]
mov cl, byte [ecx + edx]
mov byte [eax], cl
inc eax
inc esi
dec edi
test edi, edi
jg 0x70e3483d
jmp 0x70e34db8
mov ecx, edi
mov edi, dword [ebp + 8]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x70e34db8
push 2
pop ebx
sub eax, ebx
je 0x70e34cf4
sub eax, ebx
je 0x70e34b52
push 4
pop ebx
sub eax, ebx
je 0x70e34aca
sub eax, esi
je 0x70e34a3c
sub eax, esi
je 0x70e34a02
sub eax, esi
jne 0x70e34cf9
cmp ecx, 0x18
jne 0x70e3494c
mov ecx, dword [ebp + 0xc]
test cl, 3
mov eax, dword [ebp + 8]
jne 0x70e34906
cmp byte [edx + 0x8f], 0
jne 0x70e348e5
mov esi, dword [ecx]
mov edx, esi
shr edx, 8
mov byte [eax], dl
add ecx, ebx
inc eax
mov edx, esi
shr edx, 0x10
mov byte [eax], dl
inc eax
mov edx, esi
shr edx, 0x18
mov byte [eax], dl
inc eax
dec edi
test edi, edi
jg 0x70e348bc
jmp 0x70e34db8
push 4
pop ebx
mov edx, dword [ecx]
add ecx, ebx
mov ebx, edx
shr ebx, 0x10
mov byte [eax], bl
inc eax
mov ebx, edx
shr ebx, 8
mov byte [eax], bl
inc eax
mov byte [eax], dl
inc eax
dec edi
test edi, edi
jg 0x70e348e2
jmp 0x70e34db8
cmp byte [edx + 0x8f], 0
je 0x70e3492c
mov dl, byte [ecx + 2]
mov byte [eax], dl
mov dl, byte [ecx + 1]
inc eax
mov byte [eax], dl
mov dl, byte [ecx]
inc eax
mov byte [eax], dl
inc eax
add ecx, ebx
dec edi
test edi, edi
jg 0x70e3490f
jmp 0x70e34db8
add ecx, 2
mov dl, byte [ecx - 1]
mov byte [eax], dl
mov dl, byte [ecx]
inc eax
mov byte [eax], dl
mov dl, byte [ecx + 1]
inc eax
mov byte [eax], dl
inc eax
add ecx, ebx
dec edi
test edi, edi
jg 0x70e3492f
jmp 0x70e34db8
cmp ecx, 0x20
jne 0x70e34cf9
cmp byte [edx + 0x8f], 0
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
je 0x70e349b8
test al, 3
jne 0x70e3498a
sub eax, ecx
mov edx, dword [ecx + eax]
mov esi, edx
ror esi, 0x10
xor esi, edx
and esi, 0xff00ff
xor esi, edx
mov dword [ecx], esi
add ecx, ebx
dec edi
test edi, edi
jg 0x70e3496a
jmp 0x70e34db8
movzx edx, byte [eax + 3]
movzx esi, byte [eax]
shl edx, 8
add edx, esi
movzx esi, byte [eax + 1]
shl edx, 8
add edx, esi
movzx esi, byte [eax + 2]
shl edx, 8
add edx, esi
mov dword [ecx], edx
add ecx, ebx
add eax, ebx
dec edi
test edi, edi
jg 0x70e3498a
jmp 0x70e34db8
test al, 3
jne 0x70e349d4
mov edx, eax
sub edx, ecx
mov eax, dword [edx + ecx]
ror eax, 8
mov dword [ecx], eax
add ecx, ebx
dec edi
test edi, edi
jg 0x70e349c0
jmp 0x70e34db8
movzx edx, byte [eax]
movzx esi, byte [eax + 3]
shl edx, 8
add edx, esi
movzx esi, byte [eax + 2]
shl edx, 8
add edx, esi
movzx esi, byte [eax + 1]
shl edx, 8
add edx, esi
mov dword [ecx], edx
add ecx, ebx
add eax, ebx
dec edi
test edi, edi
jg 0x70e349d4
jmp 0x70e34db8
cmp ecx, 0x18
jne 0x70e34cf9
cmp byte [edx + 0x8f], 0
je 0x70e34db8
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
mov dl, byte [ecx + 2]
mov byte [eax], dl
mov dl, byte [ecx + 1]
inc eax
mov byte [eax], dl
mov dl, byte [ecx]
inc eax
mov byte [eax], dl
inc eax
add ecx, 3
dec edi
test edi, edi
jg 0x70e34a1e
jmp 0x70e34db8
cmp ecx, 0x18
jne 0x70e34cf9
mov eax, dword [edx + 0x3c]
test eax, eax
mov dword [ebp - 8], eax
je 0x70e34db8
mov ecx, dword [edx + 0x40]
test ecx, ecx
mov dword [ebp - 4], ecx
je 0x70e34db8
mov edx, dword [ebp + 8]
and dword [ebp + 8], 0
mov esi, dword [ebp + 0xc]
mov dword [ebp + 0x10], edx
xor edx, edx
jmp 0x70e34a78
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 8]
movzx ebx, byte [esi]
mov eax, dword [eax + ebx*4]
inc esi
movzx ebx, byte [esi]
add eax, dword [ecx + ebx*4]
mov ecx, edx
mov ebx, eax
shl ebx, cl
add edx, 0x18
inc esi
add dword [ebp + 8], ebx
cmp edx, 0x20
jb 0x70e34ab0
mov ecx, dword [ebp + 8]
mov ebx, dword [ebp + 0x10]
add dword [ebp + 0x10], 4
mov dword [ebx], ecx
push 0x18
sub edx, 0x20
pop ecx
sub ecx, edx
shr eax, cl
mov dword [ebp + 8], eax
dec edi
test edi, edi
jg 0x70e34a72
test edx, edx
jbe 0x70e34db8
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0x10]
mov dword [ecx], eax
jmp 0x70e34db8
mov edx, dword [edx + 0x44]
xor esi, esi
inc esi
mov ebx, esi
shl esi, cl
dec esi
test edx, edx
je 0x70e34b09
mov eax, dword [ebp + 0xc]
movzx eax, byte [eax]
movzx eax, byte [eax + edx]
shl ebx, cl
and eax, esi
add ebx, eax
inc dword [ebp + 0xc]
cmp ebx, 0xff
jbe 0x70e34aff
mov eax, dword [ebp + 8]
inc dword [ebp + 8]
mov byte [eax], bl
xor ebx, ebx
inc ebx
mov ecx, dword [ebp - 4]
dec edi
test edi, edi
jg 0x70e34ad9
jmp 0x70e34b30
mov eax, dword [ebp + 0xc]
movzx eax, byte [eax]
shl ebx, cl
and eax, esi
add ebx, eax
inc dword [ebp + 0xc]
cmp ebx, 0xff
jbe 0x70e34b2b
mov eax, dword [ebp + 8]
inc dword [ebp + 8]
mov byte [eax], bl
xor ebx, ebx
inc ebx
dec edi
test edi, edi
jg 0x70e34b09
xor eax, eax
inc eax
cmp ebx, eax
jbe 0x70e34dba
mov esi, 0x100
jmp 0x70e34b44
shl ebx, cl
cmp ebx, esi
jb 0x70e34b42
mov ecx, dword [ebp + 8]
mov byte [ecx], bl
jmp 0x70e34dba
cmp ecx, ebx
jne 0x70e34c37
mov edx, dword [edx + 0x44]
test edx, edx
mov esi, dword [ebp + 0xc]
je 0x70e34bd6
cmp edi, ebx
jle 0x70e34baf
lea eax, [edi - 3]
shr eax, 2
inc eax
mov dword [ebp + 0x10], eax
neg eax
lea edi, [edi + eax*4]
movzx eax, byte [esi]
mov al, byte [eax + edx]
mov bl, al
inc esi
movzx ecx, byte [esi]
mov cl, byte [ecx + edx]
and bl, 3
and al, 0xf0
shl bl, 2
add bl, al
mov al, cl
shr al, 2
shl bl, 2
and al, 0xc
add bl, al
mov eax, dword [ebp + 8]
and cl, 3
add bl, cl
inc esi
inc dword [ebp + 8]
dec dword [ebp + 0x10]
mov byte [eax], bl
jne 0x70e34b77
test edi, edi
jle 0x70e34db8
movzx eax, byte [esi]
mov dl, byte [eax + edx]
mov ecx, dword [ebp + 8]
mov al, dl
and al, 3
shl al, 2
and dl, 0xf0
add al, dl
shl al, 2
mov byte [ecx], al
jmp 0x70e34db8
cmp edi, ebx
mov edx, dword [ebp + 8]
jle 0x70e34c17
lea eax, [edi - 3]
shr eax, 2
inc eax
mov dword [ebp + 0x10], eax
neg eax
lea edi, [edi + eax*4]
mov al, byte [esi]
mov bl, al
and bl, 3
shl bl, 2
and al, 0xf0
add bl, al
inc esi
mov cl, byte [esi]
mov al, cl
shr al, 2
shl bl, 2
and al, 0xc
add bl, al
and cl, 3
add bl, cl
inc esi
mov byte [edx], bl
inc edx
dec dword [ebp + 0x10]
jne 0x70e34bec
test edi, edi
jle 0x70e34db8
mov al, byte [esi]
mov cl, al
and cl, 3
shl cl, 2
and al, 0xf0
add cl, al
shl cl, 2
mov byte [edx], cl
jmp 0x70e34db8
xor esi, esi
inc esi
cmp ecx, esi
jne 0x70e34cf9
mov edx, dword [edx + 0x44]
test edx, edx
je 0x70e34ca2
mov ebx, esi
mov esi, dword [ebp + 0xc]
movzx eax, byte [esi]
mov cl, byte [eax + edx]
movzx ecx, cl
mov eax, ecx
shr eax, 3
and eax, 2
and ecx, 1
add eax, ecx
lea ebx, [eax + ebx*4]
inc esi
cmp ebx, 0xff
jbe 0x70e34c7b
mov eax, dword [ebp + 8]
inc dword [ebp + 8]
mov byte [eax], bl
xor ebx, ebx
inc ebx
dec edi
dec edi
test edi, edi
jg 0x70e34c4e
cmp ebx, 1
jbe 0x70e34db8
mov esi, 0x100
jmp 0x70e34c94
shl ebx, 2
cmp ebx, esi
jb 0x70e34c91
mov eax, dword [ebp + 8]
mov byte [eax], bl
jmp 0x70e34db8
mov eax, dword [ebp + 0xc]
mov edx, esi
mov cl, byte [eax]
movzx ecx, cl
mov ebx, ecx
shr ebx, 3
and ebx, 2
and ecx, esi
add ebx, ecx
lea edx, [ebx + edx*4]
inc eax
cmp edx, 0xff
jbe 0x70e34cce
mov ecx, dword [ebp + 8]
inc dword [ebp + 8]
mov byte [ecx], dl
mov edx, esi
dec edi
dec edi
test edi, edi
jg 0x70e34ca7
cmp edx, esi
jbe 0x70e34db8
mov esi, 0x100
jmp 0x70e34ce6
shl edx, 2
cmp edx, esi
jb 0x70e34ce3
mov eax, dword [ebp + 8]
mov byte [eax], dl
jmp 0x70e34db8
cmp ecx, 1
je 0x70e34d00
xor al, al
jmp 0x70e34dba
mov esi, dword [edx + 0x44]
test esi, esi
je 0x70e34d65
cmp edi, 4
mov edx, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
jle 0x70e34d4d
lea eax, [edi - 5]
shr eax, 3
inc eax
mov dword [ebp + 0x10], eax
neg eax
lea edi, [edi + eax*8]
movzx eax, byte [ecx + 1]
movzx ebx, byte [ecx]
movzx eax, byte [eax + esi]
movzx ebx, byte [ebx + esi]
mov al, byte [eax + 0x70e74858]
mov bl, byte [ebx + 0x70e74858]
and al, 0xf
shl bl, 4
add al, bl
mov byte [edx], al
inc edx
inc ecx
inc ecx
dec dword [ebp + 0x10]
jne 0x70e34d21
test edi, edi
jle 0x70e34db8
movzx eax, byte [ecx]
movzx eax, byte [eax + esi]
mov al, byte [eax + 0x70e74858]
shl al, 4
mov byte [edx], al
jmp 0x70e34db8
cmp edi, 4
mov esi, dword [ebp + 8]
jle 0x70e34da3
lea eax, [edi - 5]
shr eax, 3
inc eax
mov ecx, eax
neg ecx
lea edi, [edi + ecx*8]
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx + 1]
movzx ebx, byte [ecx]
mov dl, byte [edx + 0x70e74858]
mov bl, byte [ebx + 0x70e74858]
and dl, 0xf
shl bl, 4
add dl, bl
mov byte [esi], dl
inc esi
inc ecx
inc ecx
dec eax
jne 0x70e34d7e
jmp 0x70e34da6
mov ecx, dword [ebp + 0xc]
test edi, edi
jle 0x70e34db8
movzx eax, byte [ecx]
mov al, byte [eax + 0x70e74858]
shl al, 4
mov byte [esi], al
mov al, 1
pop esi
pop ebx
pop edi
leave
ret 0xc