Function at 0x10025390
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x218
mov eax, dword [0x3027864]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, 4
mov dword [ebp - 0x208], edi
movzx ebx, byte [edx + edi + 0x30534]
mov ecx, ebx
mov esi, ebx
and esi, 1
shr ecx, 1
dec ecx
or esi, 2
shl esi, cl
mov dword [ebp - 0x218], ebx
mov dword [ebp - 0x20c], 0
jmp 0x100254cb
sub ecx, 5
shl ecx, 4
add dword [edi + eax*4], ecx
inc eax
cmp eax, dword [edx + 0x88]
jb 0x10025652
mov eax, dword [edi]
mov dword [ebx - 8], eax
mov ecx, dword [edi + 4]
mov dword [ebx - 4], ecx
mov eax, dword [edi + 8]
mov dword [ebx], eax
mov ecx, dword [edi + 0xc]
mov dword [ebx + 4], ecx
jmp 0x10025444
jb 0x1002565b
mov ebx, dword [ebp - 0x20c]
sub dword [ebp - 0x208], 0xffffff80
add ebx, 0x200
sub esi, 0x200
add edi, 0x100
dec dword [ebp - 0x218]
mov dword [ebp - 0x20c], ebx
jmp 0x10025599
mov eax, 4
lea ecx, [ebx + 8]
jmp 0x1002565b
shr ecx, 4
sar ebx, 4
jp 0x10025679
pushfd
push eax
aaa
not eax
push ecx
bswap ecx
push ebx
push edx
mov edx, ebx
bsf edx, ebx
xchg bh, ah
aaa
test ah, 0xc9
bswap ebx
inc al
push eax
lahf
bswap edx
cmp ax, cx
not ecx
mov ecx, dword [esp + 0xc]
aaa
neg edx
neg dl
not ah
cmp cx, 0xae45
ror dx, 2
bswap edx
lahf
bswap edx
mov edx, dword [esp + 4]
shl eax, 3
mov eax, dword [esp + 0x10]
bt bx, 1
mov ebx, dword [esp + 0x14]
push ebx
popfd
mov ebx, dword [esp + 8]
lea esp, [esp + 0x18]
jnp 0x10025679
mov dword [ebp - 0x210], 1
sub edi, esi
mov dword [ebp - 0x214], ecx
test ecx, ecx
je 0x10025522
jmp 0x100254f0
mov ebx, dword [ebp - 0x218]
mov ecx, dword [ebp - 0x210]
sub ecx, ebx
add ecx, esi
movzx ecx, word [edx + ecx*2 + 0x32966]
mov eax, edi
and eax, 1
mov ebx, eax
neg ebx
jmp 0x10025460
dec dword [ebp - 0x214]
mov dword [ebp - 0x210], ecx
jne 0x100254ea
mov edi, dword [ebp - 0x208]
mov eax, dword [ebp - 0x20c]
mov dword [ebp + edi*4 - 0x204], eax
inc edi
mov dword [ebp - 0x208], edi
cmp edi, 0x80
jb 0x100253b1
lea esi, [ebp - 0x204]
sub esi, edx
lea ecx, [edx + 0x32768]
lea ebx, [edx + 0x31bd0]
sub esi, 0x31bc8
lea edi, [edx + 0x317c8]
mov dword [ebp - 0x208], ecx
mov dword [ebp - 0x20c], ebx
mov dword [ebp - 0x210], esi
mov dword [ebp - 0x218], 4
jmp 0x10025592
xor ecx, ecx
jmp 0x100255c0
mov dword [ebp - 0x210], esi
jne 0x10025592
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
mov dword [edx + 0x80], 0
pop ebx
call fcn.100649af
mov esp, ebp
pop ebp
ret
mov dword [ebp - 0x214], ecx
cmp dword [edx + 0x88], ecx
jbe 0x1002563e
mov eax, ecx
or eax, 0x40
xor esi, esi
cmp eax, 1
je 0x10025622
lea esp, [esp]
mov ebx, dword [ebp - 0x208]
mov ecx, eax
and eax, 1
shr ecx, 1
movzx ebx, word [ebx + ecx*2]
neg eax
sar eax, 4
and eax, 0x7f
shr ebx, 4
xor ebx, eax
add esi, dword [edx + ebx*4 + 0x30d34]
mov eax, ecx
cmp eax, 1
jne 0x100255e6
mov ebx, dword [ebp - 0x20c]
mov ecx, dword [ebp - 0x214]
mov dword [edi + ecx*4], esi
inc ecx
mov dword [ebp - 0x214], ecx
cmp ecx, dword [edx + 0x88]
jb 0x100255d2
mov esi, dword [ebp - 0x210]
mov eax, 0xe
cmp dword [edx + 0x88], eax
jbe 0x100253f3
lea ecx, [ecx]
mov ecx, eax
shr ecx, 1
jmp 0x100253dd
movzx ebx, byte [edx + eax + 0x30534]
mov ebx, dword [edi + ebx*4]
add ebx, dword [esi + ecx]
inc eax
mov dword [ecx], ebx
add ecx, 4
cmp eax, 0x80
jmp 0x1002540e
and ebx, 0x7f
xor ecx, ebx
mov ecx, dword [edx + ecx*4 + 0x30d34]
add dword [ebp - 0x20c], ecx
mov ecx, dword [ebp - 0x210]
add ecx, ecx
or ecx, eax
shr edi, 1
jmp 0x10025510