Function at 0x7be4f0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
push eax
mov edi, dword [ecx]
mov esi, ecx
mov eax, 7
cmp byte [edi + 0x51], 0
jne 0x7bea43
mov eax, dword [esi + 4]
cmp dword [eax], 0
jne 0x7bea46
mov eax, dword [esp + 0x18]
test byte [esi + 0x10], 1
je 0x7be536
mov ecx, edi
mov edx, eax
call fcn.0077edc0
mov ecx, dword [esi + 4]
mov dword [ecx], eax
mov eax, 1
jmp 0x7bea43
test byte [edi + 0x20], 1
je 0x7be546
mov ecx, 0x7603
jmp 0x7bea39
mov ebp, 0x8031c0
xor eax, eax
movzx ebx, byte [0xbae6fb]
imul ebp, ebp
and ebp, 3
cmp ebp, 3
sete al
mov ecx, eax
xor ecx, 1
lea eax, [eax + ecx*2 + 6]
and al, 7
movzx eax, al
bt ebx, eax
jb 0x7be67c
mov al, byte [0xbae6fb]
xor ebx, ebx
cmp ebp, 3
mov ah, 1
sete bl
mov ecx, ebx
xor ecx, 1
lea ecx, [ebx + ecx*2 + 6]
and cl, 7
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbae6fb], ah
jne 0x7be57c
mov ecx, 0x8031c0
xor ebx, ebx
movzx eax, al
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete bl
mov ebp, ebx
xor ebx, 1
lea ebx, [ebp + ebx*2 + 6]
and bl, 7
xor bl, 7
movzx ebx, bl
bt eax, ebx
jae 0x7be5f7
xor eax, eax
cmp ecx, 3
movzx ebp, byte [0xbae6fb]
sete al
mov ebx, eax
xor ebx, 1
lea eax, [eax + ebx*2 + 6]
and al, 7
movzx eax, al
bt ebp, eax
jae 0x7be5d0
jmp 0x7be67c
xor eax, eax
cmp ecx, 3
movzx ebx, byte [0xbae6fb]
sete al
mov ecx, eax
xor ecx, 1
lea eax, [eax + ecx*2 + 6]
and al, 7
movzx eax, al
bt ebx, eax
jb 0x7be650
mov ecx, 0x8031c0
xor eax, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete al
mov ecx, eax
not ecx
and ecx, 0x649
lea ecx, [eax + ecx*2 - 0x304756da]
mov al, 1
xor dword [0xbae6f4], ecx
and cl, 7
shl al, cl
or byte [0xbae6fb], al
mov eax, 0x8031c0
xor ecx, ecx
imul eax, eax
and eax, 3
cmp eax, 3
sete cl
mov eax, ecx
xor eax, 1
lea ecx, [ecx + eax*2 + 6]
mov al, 0xfe
and cl, 7
xor cl, 7
rol al, cl
and byte [0xbae6fb], al
mov ebp, fcn.007f1620
xor eax, eax
movzx ebx, byte [0xbae723]
and ebp, 1
inc ebp
mov ecx, ebp
xor ecx, fcn.007f1620
sete al
mov ecx, eax
xor ecx, 1
lea eax, [eax + ecx*2 + 2]
bt ebx, eax
jb 0x7be874
mov al, byte [0xbae723]
mov ebx, ebp
xor ecx, ecx
mov ah, 1
xor ebx, fcn.007f1620
sete cl
mov ebx, ecx
xor ebx, 1
lea ecx, [ecx + ebx*2 + 2]
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbae723], ah
jne 0x7be6b0
mov ecx, fcn.007f1620
xor ebx, ebx
movzx eax, al
and ecx, 1
inc ecx
mov ebp, ecx
xor ebp, fcn.007f1620
sete bl
mov ebp, ebx
xor ebx, 1
lea ebx, [ebp + ebx*2 + 2]
xor bl, 7
movzx ebx, bl
bt eax, ebx
jae 0x7be72d
mov ebx, ecx
xor eax, eax
movzx ebp, byte [0xbae723]
xor ebx, fcn.007f1620
sete al
mov ebx, eax
xor ebx, 1
lea eax, [eax + ebx*2 + 2]
bt ebp, eax
jae 0x7be706
jmp 0x7be874
xor eax, eax
xor ecx, fcn.007f1620
movzx ebx, byte [0xbae723]
sete al
mov ecx, eax
xor ecx, 1
lea eax, [eax + ecx*2 + 2]
bt ebx, eax
jb 0x7be84b
mov ecx, fcn.007f1620
xor eax, eax
and ecx, 1
inc ecx
xor ecx, fcn.007f1620
sete al
mov ecx, eax
not ecx
and ecx, 0x921
lea ecx, [eax + ecx*2 - 0x34a1f926]
mov eax, dword [0xbae700]
mov ebx, ecx
shr ebx, 0x1f
or ebx, ecx
xor eax, ecx
and cl, 7
mov dword [0xbae700], eax
not eax
imul ebx, eax
mov eax, dword [0xbae704]
lea ebp, [ebx + ebx]
xor eax, ebx
shr ebx, 0x1e
mov dword [0xbae704], eax
or ebp, ebx
not eax
mov ebx, dword [0xbae708]
imul eax, ebp
lea ebp, [eax*4]
xor ebx, eax
shr eax, 0x1d
mov dword [0xbae708], ebx
or ebp, eax
not ebx
mov eax, dword [0xbae70c]
imul ebx, ebp
lea ebp, [ebx*8]
xor eax, ebx
shr ebx, 0x1c
mov dword [0xbae70c], eax
or ebp, ebx
not eax
mov ebx, dword [0xbae710]
imul eax, ebp
mov ebp, eax
shl ebp, 4
xor ebx, eax
shr eax, 0x1b
mov dword [0xbae710], ebx
or eax, ebp
not ebx
imul ebx, eax
mov eax, dword [0xbae714]
mov ebp, ebx
shl ebp, 5
xor eax, ebx
shr ebx, 0x1a
mov dword [0xbae714], eax
or ebx, ebp
not eax
imul eax, ebx
mov ebx, dword [0xbae718]
mov ebp, eax
shl ebp, 6
xor ebx, eax
shr eax, 0x19
mov dword [0xbae718], ebx
or eax, ebp
not ebx
imul ebx, eax
mov ah, 1
xor dword [0xbae71c], ebx
shl ah, cl
or byte [0xbae723], ah
mov eax, fcn.007f1620
xor ecx, ecx
and eax, 1
inc eax
xor eax, fcn.007f1620
sete cl
mov eax, ecx
xor eax, 1
lea ecx, [ecx + eax*2 + 2]
mov al, 0xfe
xor cl, 7
rol al, cl
and byte [0xbae723], al
test edx, edx
mov eax, 0xbae6f4
cmovne eax, edx
push eax
push 0xbae700
push edi
call fcn.00782620
add esp, 0xc
mov ebx, dword [esp + 0x18]
test ebx, ebx
je 0x7bea2f
cmp byte [ebx], 0
je 0x7bea2f
mov ebp, fcn.0081ae70
mov dword [esp], eax
xor eax, eax
not ebp
movzx edx, byte [0xbae733]
and ebp, 1
mov ecx, ebp
add ecx, fcn.0081ae70
sete al
mov ecx, eax
xor ecx, 1
lea eax, [eax + ecx*2 + 2]
bt edx, eax
jb 0x7bea1c
mov al, byte [0xbae733]
mov ebx, ebp
xor ecx, ecx
mov ah, 1
add ebx, fcn.0081ae70
sete cl
mov ebx, ecx
xor ebx, 1
lea ecx, [ecx + ebx*2 + 2]
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbae733], ah
jne 0x7be8da
mov ecx, fcn.0081ae70
xor edx, edx
movzx eax, al
not ecx
and ecx, 1
mov ebp, ecx
add ebp, fcn.0081ae70
sete dl
mov ebx, edx
xor ebx, 1
lea edx, [edx + ebx*2 + 2]
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x7be95c
mov ebx, dword [esp + 0x18]
mov edx, ecx
xor eax, eax
movzx ebp, byte [0xbae733]
add edx, fcn.0081ae70
sete al
mov edx, eax
xor edx, 1
lea eax, [eax + edx*2 + 2]
bt ebp, eax
jae 0x7be935
jmp 0x7bea1c
xor eax, eax
add ecx, fcn.0081ae70
movzx edx, byte [0xbae733]
mov ebx, dword [esp + 0x18]
sete al
mov ecx, eax
xor ecx, 1
lea eax, [eax + ecx*2 + 2]
bt edx, eax
jb 0x7be9f2
mov ecx, fcn.0081ae70
xor eax, eax
mov ebx, dword [0xbae724]
not ecx
and ecx, 1
add ecx, fcn.0081ae70
sete al
mov ecx, eax
not ecx
and ecx, 0x405
lea ecx, [eax + ecx*2 - 0x2c4a0536]
xor ebx, ecx
mov edx, ecx
mov dword [0xbae724], ebx
shr edx, 0x1f
not ebx
mov ebp, dword [str.B7q_n]
or edx, ecx
and cl, 7
imul edx, ebx
lea ebx, [edx + edx]
xor ebp, edx
shr edx, 0x1e
mov dword [str.B7q_n], ebp
or ebx, edx
not ebp
mov dl, 1
imul ebp, ebx
mov ebx, dword [esp + 0x18]
shl dl, cl
xor dword [0xbae72c], ebp
or byte [0xbae733], dl
mov eax, fcn.0081ae70
xor ecx, ecx
not eax
and eax, 1
add eax, fcn.0081ae70
sete cl
mov eax, ecx
xor eax, 1
lea ecx, [ecx + eax*2 + 2]
mov al, 0xfe
xor cl, 7
rol al, cl
and byte [0xbae733], al
push ebx
push dword [esp + 4]
push 0xbae724
push edi
call fcn.00782620
add esp, 0x10
mov ecx, dword [esi + 4]
mov dword [ecx], eax
mov ecx, 0x760a
call fcn.00799c70
mov eax, 0xb
mov dword [esi + 0xc], eax
add esp, 4
pop esi
pop edi
pop ebx
pop ebp
ret