Function at 0x7f5270
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 8
mov ebp, dword [ecx]
mov esi, ecx
mov edi, edx
mov ecx, ebp
call fcn.0079f060
xor ebx, ebx
test eax, eax
jne 0x7f56d6
test byte [ebp + 0xa8], 2
jne 0x7f56d6
cmp byte [ebp + 0xa5], 0
je 0x7f5304
mov ebp, dword [ebp + 0xac]
push dword [ebp]
push dword [esp + 0x20]
call fcn.00777e00
add esp, 8
test eax, eax
jne 0x7f52e4
push dword [ebp + 4]
push edi
call fcn.00777e00
add esp, 8
test eax, eax
jne 0x7f52e4
push dword [ebp + 8]
push dword [esp + 0x24]
call fcn.00777e00
add esp, 8
test eax, eax
je 0x7f56d6
cmp byte [0xbab999], 0
je 0x7f56d6
push 0xc1f2c4
push esi
call fcn.00782570
add esp, 8
jmp 0x7f56d1
cmp byte [esi + 0x12], 0
jne 0x7f547c
mov edx, 0x78d820
mov eax, 0x78d820
movzx ecx, byte [0xbb06db]
and edx, 1
xor edx, eax
cmp edx, 0xffffffff
sete al
not al
add al, 0x10
and al, 7
movzx eax, al
bt ecx, eax
jb 0x7f5468
mov al, byte [0xbb06db]
cmp edx, 0xffffffff
mov ah, 1
sete cl
not cl
add cl, 0x10
and cl, 7
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbb06db], ah
jne 0x7f5341
mov ecx, 0x78d820
mov edx, 0x78d820
movzx eax, al
and ecx, 1
xor ecx, edx
cmp ecx, 0xffffffff
sete dl
not dl
add dl, 0x10
and dl, 7
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x7f53ad
cmp ecx, 0xffffffff
movzx edx, byte [0xbb06db]
sete al
not al
add al, 0x10
and al, 7
movzx eax, al
bt edx, eax
jae 0x7f538d
jmp 0x7f5468
cmp ecx, 0xffffffff
movzx ecx, byte [0xbb06db]
sete al
not al
add al, 0x10
and al, 7
movzx eax, al
bt ecx, eax
jb 0x7f543e
mov edx, 0x78d820
mov eax, 0x78d820
xor ecx, ecx
and edx, 1
xor edx, eax
mov eax, dword [0xbb06cc]
cmp edx, 0xffffffff
sete cl
xor ecx, 0xd433edf7
add ecx, 0x410
mov edx, ecx
xor eax, ecx
mov dword [esp + 4], ecx
shr edx, 0x1f
mov dword [0xbb06cc], eax
not eax
or edx, ecx
mov ecx, dword [0xbb06d0]
imul edx, eax
lea eax, [edx + edx]
mov dword [esp], eax
mov al, 1
xor ecx, edx
shr edx, 0x1e
mov dword [0xbb06d0], ecx
or dword [esp], edx
not ecx
imul ecx, dword [esp]
xor dword [0xbb06d4], ecx
mov ecx, dword [esp + 4]
and cl, 7
shl al, cl
or byte [0xbb06db], al
mov ecx, 0x78d820
mov eax, 0x78d820
and ecx, 1
xor ecx, eax
mov al, 0xfe
cmp ecx, 0xffffffff
sete cl
not cl
add cl, 0x10
and cl, 7
xor cl, 7
rol al, cl
and byte [0xbb06db], al
push 7
push 0xbb06cc
push edi
call fcn.00777e50
add esp, 0xc
test eax, eax
je 0x7f549c
mov ecx, ebp
call fcn.007f5910
test eax, eax
je 0x7f56d6
mov ecx, ebp
mov edx, edi
call fcn.007f5940
test eax, eax
je 0x7f56d6
mov edx, fcn.00778690
movzx ecx, byte [0xbb070f]
not edx
and edx, 1
mov eax, edx
add eax, fcn.00778690
sete al
not al
and al, 3
movzx eax, al
bt ecx, eax
jb 0x7f56c2
mov al, byte [0xbb070f]
mov ecx, edx
mov ah, 1
add ecx, fcn.00778690
sete cl
not cl
and cl, 3
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbb070f], ah
jne 0x7f54cc
mov ecx, fcn.00778690
movzx eax, al
not ecx
and ecx, 1
mov edx, ecx
add edx, fcn.00778690
sete dl
not dl
and dl, 3
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x7f5539
mov eax, ecx
movzx edx, byte [0xbb070f]
add eax, fcn.00778690
sete al
not al
and al, 3
movzx eax, al
bt edx, eax
jae 0x7f5517
jmp 0x7f56c2
add ecx, fcn.00778690
movzx ecx, byte [0xbb070f]
sete al
not al
and al, 3
movzx eax, al
bt ecx, eax
jb 0x7f569e
mov eax, fcn.00778690
xor ecx, ecx
not eax
and eax, 1
add eax, fcn.00778690
mov eax, dword [0xbb06e0]
sete cl
xor ecx, 0x3ec411fb
add ecx, 0xc08
xor eax, ecx
mov dword [0xbb06e0], eax
not eax
mov edx, dword [0xbb06e4]
imul eax, ecx
and cl, 7
lea ebx, [eax + eax]
xor edx, eax
shr eax, 0x1e
mov dword [0xbb06e4], edx
or ebx, eax
not edx
mov eax, dword [0xbb06e8]
imul edx, ebx
lea ebx, [edx*4]
xor eax, edx
shr edx, 0x1d
mov dword [0xbb06e8], eax
or ebx, edx
not eax
mov edx, dword [0xbb06ec]
imul eax, ebx
lea ebx, [eax*8]
xor edx, eax
shr eax, 0x1c
mov dword [0xbb06ec], edx
or ebx, eax
not edx
mov eax, dword [0xbb06f0]
imul edx, ebx
mov ebx, edx
shl ebx, 4
xor eax, edx
shr edx, 0x1b
mov dword [0xbb06f0], eax
or edx, ebx
not eax
imul eax, edx
mov edx, dword [0xbb06f4]
mov ebx, eax
shl ebx, 5
xor edx, eax
shr eax, 0x1a
mov dword [0xbb06f4], edx
or eax, ebx
not edx
imul edx, eax
mov eax, dword [0xbb06f8]
mov ebx, edx
shl ebx, 6
xor eax, edx
shr edx, 0x19
mov dword [0xbb06f8], eax
or edx, ebx
not eax
imul eax, edx
mov edx, dword [0xbb06fc]
mov ebx, eax
shl ebx, 7
xor edx, eax
shr eax, 0x18
mov dword [0xbb06fc], edx
or eax, ebx
not edx
mov ebp, dword [0xbb0700]
imul edx, eax
mov ebx, edx
shl ebx, 8
xor ebp, edx
shr edx, 0x17
mov dword [0xbb0700], ebp
or edx, ebx
not ebp
imul ebp, edx
mov edx, dword [0xbb0704]
mov ebx, ebp
shl ebx, 9
xor edx, ebp
shr ebp, 0x16
mov dword [0xbb0704], edx
or ebp, ebx
not edx
imul edx, ebp
xor dword [0xbb0708], edx
mov dl, 1
shl dl, cl
or byte [0xbb070f], dl
mov eax, fcn.00778690
not eax
and eax, 1
add eax, fcn.00778690
mov al, 0xfe
sete cl
not cl
and cl, 3
xor cl, 7
rol al, cl
and byte [0xbb070f], al
push edi
push 0xbb06e0
push esi
call fcn.00782570
add esp, 0xc
mov ebx, 1
mov eax, ebx
add esp, 8
pop esi
pop edi
pop ebx
pop ebp
ret