Function at 0xb8e670
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push esi
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0x240]
cmp eax, 0x10
jg 0xb8e942
test eax, eax
js 0xb8e942
mov eax, dword [esi + 0x234]
push eax
call fcn.00b90dd0
add esp, 4
test eax, eax
jne 0xb8e935
push ebx
push edi
cmp dword [esi + 0x23c], eax
jne 0xb8e85c
cmp dword [esi + 0x238], eax
jne 0xb8e6eb
cmp dword [esi + 0x240], 0xc
jne 0xb8e6eb
push 0xc
lea ebx, [esi + 0x224]
lea edi, [esi + 0x204]
push ebx
push edi
call fcn.00ba9f10
add esp, 0xc
mov dword [esi + 0x210], 0x1000000
jmp 0xb8e824
cmp dword [esi + 0x240], 0
jbe 0xb8e712
mov ecx, 0xfffffe0c
lea eax, [esi + 0x1f4]
sub ecx, esi
mov dl, byte [eax + 0x30]
xor byte [eax], dl
inc eax
lea edx, [ecx + eax]
cmp edx, dword [esi + 0x240]
jb 0xb8e701
mov eax, dword [esi + 0x240]
test eax, eax
je 0xb8e743
cdq
shld edx, eax, 3
add eax, eax
add eax, eax
add eax, eax
add dword [esi + 0x248], eax
lea eax, [esi + 0x1f4]
push eax
adc dword [esi + 0x24c], edx
push esi
call fcn.00b90d40
add esp, 8
lea ebx, [esi + 0x224]
push 8
push ebx
call fcn.00b90d20
movzx ecx, byte [esi + 0x24f]
movzx edx, byte [esi + 0x24e]
movzx eax, byte [esi + 0x24d]
mov byte [esi + 0x22c], cl
movzx ecx, byte [esi + 0x24c]
mov byte [esi + 0x22d], dl
movzx edx, byte [esi + 0x24b]
mov byte [esi + 0x22e], al
movzx eax, byte [esi + 0x24a]
mov byte [esi + 0x22f], cl
movzx ecx, byte [esi + 0x249]
mov byte [esi + 0x230], dl
movzx edx, byte [esi + 0x248]
mov byte [esi + 0x231], al
add esp, 8
mov byte [esi + 0x232], cl
mov byte [esi + 0x233], dl
lea eax, [esi + 0x1f4]
mov edi, 4
jmp 0xb8e7d0
movzx ecx, byte [eax + 0x30]
movzx edx, byte [eax + 0x31]
xor byte [eax], cl
xor byte [eax + 1], dl
movzx ecx, byte [eax + 0x32]
movzx edx, byte [eax + 0x33]
xor byte [eax + 2], cl
xor byte [eax + 3], dl
add eax, 4
dec edi
jne 0xb8e7d0
lea eax, [esi + 0x1f4]
push eax
push esi
call fcn.00b90d40
push 0x10
lea eax, [esi + 0x1f4]
push eax
lea edi, [esi + 0x204]
push edi
call fcn.00ba9f10
lea eax, [esi + 0x1f4]
push 0x10
push eax
call fcn.00b90d20
add esp, 0x1c
push 0x10
lea eax, [esi + 0x214]
push edi
push eax
call fcn.00ba9f10
push 0x10
push ebx
call fcn.00b90d20
add esp, 0x14
xor eax, eax
mov dword [esi + 0x240], eax
mov dword [esi + 0x248], eax
mov dword [esi + 0x24c], eax
mov dword [esi + 0x23c], 1
cmp dword [esi + 0x23c], 1
jne 0xb8e938
mov eax, dword [esi + 0x240]
cmp eax, 0x10
jge 0xb8e938
xor edi, edi
test eax, eax
mov eax, dword [ebp + 0x10]
jne 0xb8e8d4
mov ecx, eax
and ecx, 0xfffffff0
mov dword [ebp + 8], ecx
jbe 0xb8e8cd
lea ebx, [esi + 0x1f4]
xor eax, eax
mov edx, dword [ebp + 0xc]
lea ecx, [eax + edi]
mov ecx, dword [ecx + edx]
xor dword [ebx + eax], ecx
add eax, 4
cmp eax, 0x10
jb 0xb8e893
push ebx
push esi
call fcn.00b90d40
add esp, 8
add dword [esi + 0x248], 0x80
adc dword [esi + 0x24c], 0
add edi, 0x10
cmp edi, dword [ebp + 8]
jb 0xb8e891
mov eax, dword [ebp + 0x10]
mov ebx, dword [ebp + 0xc]
add ebx, edi
jmp 0xb8e8d7
mov ebx, dword [ebp + 0xc]
cmp edi, eax
jae 0xb8e931
sub eax, edi
mov edi, eax
nop
mov edx, dword [esi + 0x240]
mov cl, byte [ebx]
xor byte [esi + edx + 0x1f4], cl
inc dword [esi + 0x240]
lea eax, [esi + edx + 0x1f4]
inc ebx
cmp dword [esi + 0x240], 0x10
jne 0xb8e92e
lea edx, [esi + 0x1f4]
push edx
push esi
call fcn.00b90d40
xor eax, eax
add esp, 8
add dword [esi + 0x248], 0x80
mov dword [esi + 0x240], eax
adc dword [esi + 0x24c], eax
dec edi
jne 0xb8e8e0
pop edi
xor eax, eax
pop ebx
pop esi
pop ebp
ret
pop edi
pop ebx
mov eax, 0x10
pop esi
pop ebp
ret
mov eax, 0x10
pop esi
pop ebp
ret