Function at 0x7fc460
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xc
mov esi, ecx
test edx, edx
je 0x7fc799
mov ebp, dword [esp + 0x24]
mov ebx, dword [esp + 0x28]
mov eax, dword [esp + 0x20]
test ebp, ebp
js 0x7fc491
mov dword [esp], eax
movsx eax, word [edx + 0x28]
mov edi, edx
cmp eax, ebp
mov eax, dword [esp]
jne 0x7fc4a7
mov ecx, esi
mov edx, 0x7f
push ebx
push eax
call fcn.007d10d0
add esp, 0x14
pop esi
pop edi
pop ebx
pop ebp
ret
cmp dword [edi + 0x38], 0
mov edx, 0xa6
mov eax, ebp
jne 0x7fc779
mov ecx, dword [edi + 4]
lea edx, [ebp + ebp*4]
movzx eax, word [ecx + edx*4 + 0x10]
test al, 0x20
je 0x7fc750
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.007a6520
mov esi, eax
test ebp, 0x100
je 0x7fc715
mov edx, fcn.00822cf0
xor eax, eax
movzx edi, byte [0xbb7bd3]
and edx, 1
inc edx
mov ecx, edx
xor ecx, fcn.00822cf0
sete al
mov ecx, eax
not ecx
lea eax, [eax + ecx*2 + 4]
and al, 7
movzx eax, al
bt edi, eax
jb 0x7fc6fc
mov al, byte [0xbb7bd3]
mov ebx, edx
xor ecx, ecx
mov ah, 1
xor ebx, fcn.00822cf0
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 [0xbb7bd3], ah
jne 0x7fc528
mov ecx, fcn.00822cf0
xor edx, edx
movzx eax, al
and ecx, 1
inc ecx
mov ebx, ecx
xor ebx, fcn.00822cf0
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 0x7fc5ad
mov edx, ecx
xor eax, eax
movzx edi, byte [0xbb7bd3]
xor edx, fcn.00822cf0
sete al
mov edx, eax
not edx
lea eax, [eax + edx*2 + 4]
and al, 7
movzx eax, al
bt edi, eax
jae 0x7fc582
jmp 0x7fc6fc
xor eax, eax
xor ecx, fcn.00822cf0
movzx edx, byte [0xbb7bd3]
sete al
mov ecx, eax
not ecx
lea eax, [eax + ecx*2 + 4]
and al, 7
movzx eax, al
bt edx, eax
jb 0x7fc6d1
mov ecx, fcn.00822cf0
xor eax, eax
and ecx, 1
inc ecx
xor ecx, fcn.00822cf0
sete al
mov ecx, eax
not ecx
and ecx, 0x14b
lea ecx, [eax + ecx*2 + 0x5f6dd694]
mov eax, dword [0xbb7bb0]
mov edx, ecx
shr edx, 0x1f
or edx, ecx
xor eax, ecx
and cl, 7
mov dword [0xbb7bb0], eax
not eax
imul edx, eax
mov eax, dword [0xbb7bb4]
lea ebx, [edx + edx]
xor eax, edx
shr edx, 0x1e
mov dword [0xbb7bb4], eax
or ebx, edx
not eax
mov edx, dword [0xbb7bb8]
imul eax, ebx
lea ebx, [eax*4]
xor edx, eax
shr eax, 0x1d
mov dword [0xbb7bb8], edx
or ebx, eax
not edx
mov eax, dword [0xbb7bbc]
imul edx, ebx
lea ebx, [edx*8]
xor eax, edx
shr edx, 0x1c
mov dword [0xbb7bbc], eax
or ebx, edx
not eax
mov edx, dword [0xbb7bc0]
imul eax, ebx
mov ebx, eax
shl ebx, 4
xor edx, eax
shr eax, 0x1b
mov dword [0xbb7bc0], edx
or eax, ebx
not edx
mov edi, dword [0xbb7bc4]
imul edx, eax
mov ebx, edx
shl ebx, 5
xor edi, edx
shr edx, 0x1a
mov dword [0xbb7bc4], edi
or edx, ebx
not edi
imul edi, edx
mov edx, dword [0xbb7bc8]
mov ebx, edi
shl ebx, 6
xor edx, edi
shr edi, 0x19
mov dword [0xbb7bc8], edx
or edi, ebx
not edx
imul edx, edi
xor dword [0xbb7bcc], edx
mov dl, 1
shl dl, cl
or byte [0xbb7bd3], dl
mov eax, fcn.00822cf0
xor ecx, ecx
and eax, 1
inc eax
xor eax, fcn.00822cf0
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 [0xbb7bd3], al
mov eax, dword [esp + 4]
push dword [eax]
push 0xbb7bb0
push esi
call fcn.0078de60
add esp, 0x18
jmp 0x7fc4a2
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.007f9580
add esp, 4
mov dword [esi + 0x34], edi
and byte [ebp + 1], 0xfe
add esp, 0xc
jmp 0x7fc4a2
cmp byte [edi + 0x24], 0
jns 0x7fc769
mov ecx, edi
call fcn.00792930
movsx edx, bp
mov ecx, eax
call fcn.007fc7b0
jmp 0x7fc773
movsx edx, bp
mov ecx, edi
call fcn.007f9520
cwde
mov edx, 0x59
mov ecx, esi
push ebx
push eax
push dword [esp + 8]
call fcn.007d10f0
add esp, 0xc
mov ecx, esi
mov edx, edi
push ebx
push ebp
call fcn.007fc7e0
jmp 0x7fc49f
mov ecx, esi
mov edx, 0x59
add esp, 0xc
pop esi
pop edi
pop ebx
pop ebp
jmp fcn.007d10f0