Function at 0x7f0be0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xc
mov esi, ecx
test edx, edx
je 0x7f0f19
mov ebp, dword [esp + 0x24]
mov ebx, dword [esp + 0x28]
mov eax, dword [esp + 0x20]
test ebp, ebp
js 0x7f0c11
mov dword [esp], eax
movsx eax, word [edx + 0x28]
mov edi, edx
cmp eax, ebp
mov eax, dword [esp]
jne 0x7f0c27
mov ecx, esi
mov edx, 0x7f
push ebx
push eax
call fcn.007c57e0
add esp, 0x14
pop esi
pop edi
pop ebx
pop ebp
ret
cmp dword [edi + 0x38], 0
mov edx, 0xa6
mov eax, ebp
jne 0x7f0ef9
mov ecx, dword [edi + 4]
lea edx, [ebp + ebp*4]
movzx eax, word [ecx + edx*4 + 0x10]
test al, 0x20
je 0x7f0ed0
mov dword [esp + 8], ecx
lea ecx, [ecx + edx*4]
mov edi, edx
mov ebp, eax
mov dword [esp + 4], ecx
mov ecx, esi
call fcn.0079ac30
mov esi, eax
test ebp, 0x100
je 0x7f0e95
mov edx, fcn.008174b0
xor eax, eax
movzx edi, byte [0xbb0273]
and edx, 1
inc edx
mov ecx, edx
xor ecx, fcn.008174b0
sete al
mov ecx, eax
not ecx
lea eax, [eax + ecx*2 + 4]
and al, 7
movzx eax, al
bt edi, eax
jb 0x7f0e7c
mov al, byte [0xbb0273]
mov ebx, edx
xor ecx, ecx
mov ah, 1
xor ebx, fcn.008174b0
sete cl
mov ebx, ecx
not ebx
lea ecx, [ecx + ebx*2 + 4]
and cl, 7
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbb0273], ah
jne 0x7f0ca8
mov ecx, fcn.008174b0
xor edx, edx
movzx eax, al
and ecx, 1
inc ecx
mov ebx, ecx
xor ebx, fcn.008174b0
sete dl
mov ebx, edx
not ebx
lea edx, [edx + ebx*2 + 4]
and dl, 7
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x7f0d2d
mov edx, ecx
xor eax, eax
movzx edi, byte [0xbb0273]
xor edx, fcn.008174b0
sete al
mov edx, eax
not edx
lea eax, [eax + edx*2 + 4]
and al, 7
movzx eax, al
bt edi, eax
jae 0x7f0d02
jmp 0x7f0e7c
xor eax, eax
xor ecx, fcn.008174b0
movzx edx, byte [0xbb0273]
sete al
mov ecx, eax
not ecx
lea eax, [eax + ecx*2 + 4]
and al, 7
movzx eax, al
bt edx, eax
jb 0x7f0e51
mov ecx, fcn.008174b0
xor eax, eax
and ecx, 1
inc ecx
xor ecx, fcn.008174b0
sete al
mov ecx, eax
not ecx
and ecx, 0x14b
lea ecx, [eax + ecx*2 + 0x5f6dd694]
mov eax, dword [0xbb0250]
mov edx, ecx
shr edx, 0x1f
or edx, ecx
xor eax, ecx
and cl, 7
mov dword [0xbb0250], eax
not eax
imul edx, eax
mov eax, dword [0xbb0254]
lea ebx, [edx + edx]
xor eax, edx
shr edx, 0x1e
mov dword [0xbb0254], eax
or ebx, edx
not eax
mov edx, dword [0xbb0258]
imul eax, ebx
lea ebx, [eax*4]
xor edx, eax
shr eax, 0x1d
mov dword [0xbb0258], edx
or ebx, eax
not edx
mov eax, dword [0xbb025c]
imul edx, ebx
lea ebx, [edx*8]
xor eax, edx
shr edx, 0x1c
mov dword [0xbb025c], eax
or ebx, edx
not eax
mov edx, dword [0xbb0260]
imul eax, ebx
mov ebx, eax
shl ebx, 4
xor edx, eax
shr eax, 0x1b
mov dword [0xbb0260], edx
or eax, ebx
not edx
mov edi, dword [0xbb0264]
imul edx, eax
mov ebx, edx
shl ebx, 5
xor edi, edx
shr edx, 0x1a
mov dword [0xbb0264], edi
or edx, ebx
not edi
imul edi, edx
mov edx, dword [0xbb0268]
mov ebx, edi
shl ebx, 6
xor edx, edi
shr edi, 0x19
mov dword [0xbb0268], edx
or edi, ebx
not edx
imul edx, edi
xor dword [0xbb026c], edx
mov dl, 1
shl dl, cl
or byte [0xbb0273], dl
mov eax, fcn.008174b0
xor ecx, ecx
and eax, 1
inc eax
xor eax, fcn.008174b0
sete cl
mov eax, ecx
not eax
lea ecx, [ecx + eax*2 + 4]
mov al, 0xfe
and cl, 7
xor cl, 7
rol al, cl
and byte [0xbb0273], al
mov eax, dword [esp + 4]
push dword [eax]
push 0xbb0250
push esi
call fcn.00782570
add esp, 0x18
jmp 0x7f0c22
mov ecx, dword [esp + 8]
mov eax, ebp
mov edx, dword [esp + 4]
or eax, 0x100
lea ebp, [ecx + edi*4 + 0x10]
mov ecx, dword [esp]
mov edi, dword [esi + 0x34]
mov word [ebp], ax
inc ecx
mov dword [esi + 0x34], ecx
mov ecx, esi
push ebx
call fcn.007edd00
add esp, 4
mov dword [esi + 0x34], edi
and byte [ebp + 1], 0xfe
add esp, 0xc
jmp 0x7f0c22
cmp byte [edi + 0x24], 0
jns 0x7f0ee9
mov ecx, edi
call fcn.00787030
movsx edx, bp
mov ecx, eax
call fcn.007f0f30
jmp 0x7f0ef3
movsx edx, bp
mov ecx, edi
call fcn.007edca0
cwde
mov edx, 0x59
mov ecx, esi
push ebx
push eax
push dword [esp + 8]
call fcn.007c5800
add esp, 0xc
mov ecx, esi
mov edx, edi
push ebx
push ebp
call fcn.007f0f60
jmp 0x7f0c1f
mov ecx, esi
mov edx, 0x59
add esp, 0xc
pop esi
pop edi
pop ebx
pop ebp
jmp fcn.007c5800