Function at 0x891170
Capabilities:
Encode data using xor

Disassembly:
push ebx
push edi
push esi
test ecx, ecx
jne 0x891181
mov eax, 6
jmp 0x8919b9
mov eax, fcn.00890e90
mov edx, 3
mov esi, ecx
movzx edi, byte [0xbcab3f]
sub edx, eax
xor eax, eax
mov ecx, edx
xor ecx, fcn.00890e90
sete al
mov ecx, eax
xor ecx, 1
lea eax, [eax + ecx*2 + 2]
bt edi, eax
jb 0x8912eb
mov al, byte [0xbcab3f]
mov edi, edx
xor ecx, ecx
mov ah, 1
xor edi, fcn.00890e90
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 [0xbcab3f], ah
jne 0x8911ba
mov edx, fcn.00890e90
mov ecx, 3
movzx eax, al
sub ecx, edx
xor edx, edx
mov edi, ecx
xor edi, fcn.00890e90
sete dl
mov ebx, edx
xor ebx, 1
lea edx, [edx + ebx*2 + 2]
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x89123a
mov edx, ecx
xor eax, eax
movzx edi, byte [0xbcab3f]
xor edx, fcn.00890e90
sete al
mov edx, eax
xor edx, 1
lea eax, [eax + edx*2 + 2]
bt edi, eax
jae 0x891213
jmp 0x8912eb
xor eax, eax
xor ecx, fcn.00890e90
movzx edx, byte [0xbcab3f]
sete al
mov ecx, eax
xor ecx, 1
lea eax, [eax + ecx*2 + 2]
bt edx, eax
jb 0x8912be
mov eax, fcn.00890e90
mov ecx, 3
sub ecx, eax
xor eax, eax
xor ecx, fcn.00890e90
sete al
mov ecx, eax
not ecx
and ecx, 5
lea ecx, [eax + ecx*2 + 0x587f5d2]
mov eax, dword [0xbcab30]
xor eax, ecx
mov dword [0xbcab30], eax
not eax
mov edx, dword [0xbcab34]
imul eax, ecx
and cl, 7
lea edi, [eax + eax]
xor edx, eax
shr eax, 0x1e
mov dword [0xbcab34], edx
or eax, edi
not edx
imul edx, eax
xor dword [str.___rZ], edx
mov dl, 1
shl dl, cl
or byte [0xbcab3f], dl
mov eax, fcn.00890e90
mov ecx, 3
sub ecx, eax
xor eax, eax
xor ecx, fcn.00890e90
sete al
mov ecx, eax
xor ecx, 1
lea ecx, [eax + ecx*2 + 2]
mov al, 0xfe
xor cl, 7
rol al, cl
and byte [0xbcab3f], al
mov ecx, esi
mov edx, 0xbcab30
call fcn.00898760
mov ecx, eax
xor eax, eax
test ecx, ecx
jne 0x8919b9
mov edx, 0x893390
xor eax, eax
movzx edi, byte [0xbcab4f]
imul edx, edx
and edx, 3
cmp edx, 3
sete al
mov ecx, eax
xor ecx, 1
lea eax, [eax + ecx*2 + 6]
and al, 7
movzx eax, al
bt edi, eax
jb 0x891462
mov al, byte [0xbcab4f]
xor ecx, ecx
cmp edx, 3
mov ah, 1
sete cl
mov ebx, ecx
xor ebx, 1
lea ecx, [ecx + ebx*2 + 6]
and cl, 7
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbcab4f], ah
jne 0x891339
mov ecx, 0x893390
xor edx, edx
movzx eax, al
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete dl
mov ebx, edx
xor ebx, 1
lea edx, [edx + ebx*2 + 6]
and dl, 7
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x8913b4
xor eax, eax
cmp ecx, 3
movzx edi, byte [0xbcab4f]
sete al
mov edx, eax
xor edx, 1
lea eax, [eax + edx*2 + 6]
and al, 7
movzx eax, al
bt edi, eax
jae 0x89138d
jmp 0x891462
xor eax, eax
cmp ecx, 3
movzx edx, byte [0xbcab4f]
sete al
mov ecx, eax
xor ecx, 1
lea eax, [eax + ecx*2 + 6]
and al, 7
movzx eax, al
bt edx, eax
jb 0x891436
mov ecx, 0x893390
xor eax, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete al
mov ecx, eax
not ecx
and ecx, 9
lea ecx, [eax + ecx*2 + 0x34145d66]
mov eax, dword [0xbcab40]
xor eax, ecx
mov dword [0xbcab40], eax
not eax
mov edx, dword [0xbcab44]
imul eax, ecx
and cl, 7
lea edi, [eax + eax]
xor edx, eax
shr eax, 0x1e
mov dword [0xbcab44], edx
or edi, eax
not edx
mov al, 1
imul edx, edi
shl al, cl
xor dword [0xbcab48], edx
or byte [0xbcab4f], al
mov eax, 0x893390
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 [0xbcab4f], al
mov ecx, esi
mov edx, 0xbcab40
call fcn.00898760
mov ecx, eax
mov eax, 1
test ecx, ecx
jne 0x8919b9
mov edx, 0x891090
mov edi, 0x891090
movzx ecx, byte [0xbcab5b]
or edx, 2
xor edi, 2
mov eax, edx
add eax, edi
setne al
or al, 4
movzx eax, al
bt ecx, eax
jb 0x891599
mov al, byte [0xbcab5b]
mov ecx, edx
mov ah, 1
add ecx, edi
setne cl
or cl, 4
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbcab5b], ah
jne 0x8914ae
mov ecx, 0x891090
mov edx, 0x891090
or ecx, 2
xor edx, 2
mov edi, ecx
add edi, edx
setne ah
or ah, 4
xor ah, 7
movzx edi, ah
movzx eax, al
bt eax, edi
jae 0x891510
mov eax, ecx
movzx edi, byte [0xbcab5b]
add eax, edx
setne al
or al, 4
movzx eax, al
bt edi, eax
jae 0x8914f3
jmp 0x891599
add ecx, edx
movzx ecx, byte [0xbcab5b]
setne al
or al, 4
movzx eax, al
bt ecx, eax
jb 0x891574
mov eax, 0x891090
mov edx, 0x891090
xor ecx, ecx
xor edx, 2
or eax, 2
add eax, edx
mov eax, dword [0xbcab50]
sete cl
xor ecx, 0xdc2888f1
add ecx, 0x21c
mov edx, ecx
xor eax, ecx
shr edx, 0x1f
mov dword [0xbcab50], eax
not eax
or edx, ecx
and cl, 7
imul edx, eax
xor dword [0xbcab54], edx
mov dl, 1
shl dl, cl
or byte [0xbcab5b], dl
mov eax, 0x891090
mov ecx, 0x891090
xor ecx, 2
or eax, 2
add eax, ecx
mov al, 0xfe
setne cl
or cl, 4
xor cl, 7
rol al, cl
and byte [0xbcab5b], al
mov ecx, esi
mov edx, 0xbcab50
call fcn.00898760
mov ecx, eax
mov eax, 2
test ecx, ecx
jne 0x8919b9
mov edx, 0x890fa0
movzx ecx, byte [0xbcab67]
and edx, 1
inc edx
mov eax, edx
xor eax, 0x890fa0
sete al
or al, 6
movzx eax, al
bt ecx, eax
jb 0x8916cc
mov al, byte [0xbcab67]
mov ecx, edx
mov ah, 1
xor ecx, 0x890fa0
sete cl
or cl, 6
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbcab67], ah
jne 0x8915e1
mov ecx, 0x890fa0
movzx eax, al
and ecx, 1
inc ecx
mov edx, ecx
xor edx, 0x890fa0
sete dl
or dl, 6
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x891647
mov eax, ecx
movzx edx, byte [0xbcab67]
xor eax, 0x890fa0
sete al
or al, 6
movzx eax, al
bt edx, eax
jae 0x891627
jmp 0x8916cc
xor ecx, 0x890fa0
movzx ecx, byte [0xbcab67]
sete al
or al, 6
movzx eax, al
bt ecx, eax
jb 0x8916ab
mov eax, 0x890fa0
xor ecx, ecx
and eax, 1
inc eax
xor eax, 0x890fa0
mov eax, dword [0xbcab5c]
sete cl
or ecx, 0x7e2d253e
add ecx, 0x480
mov edx, ecx
xor eax, ecx
shr edx, 0x1f
mov dword [0xbcab5c], eax
not eax
or edx, ecx
and cl, 7
imul edx, eax
xor dword [0xbcab60], edx
mov dl, 1
shl dl, cl
or byte [0xbcab67], dl
mov eax, 0x890fa0
and eax, 1
inc eax
xor eax, 0x890fa0
mov al, 0xfe
sete cl
or cl, 6
xor cl, 7
rol al, cl
and byte [0xbcab67], al
mov ecx, esi
mov edx, 0xbcab5c
call fcn.00898760
mov ecx, eax
mov eax, 3
test ecx, ecx
jne 0x8919b9
mov edx, 0x892530
mov eax, 0x892530
movzx edi, byte [0xbcab77]
and edx, 1
xor edx, eax
xor eax, eax
cmp edx, 0xffffffff
sete al
mov ecx, eax
not ecx
lea eax, [ecx + eax*2]
and al, 7
movzx eax, al
bt edi, eax
jb 0x891854
mov al, byte [0xbcab77]
xor ecx, ecx
cmp edx, 0xffffffff
mov ah, 1
sete cl
mov ebx, ecx
not ebx
lea ecx, [ebx + ecx*2]
and cl, 7
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbcab77], ah
jne 0x89171f
mov ecx, 0x892530
mov edx, 0x892530
movzx eax, al
and ecx, 1
xor ecx, edx
xor edx, edx
cmp ecx, 0xffffffff
sete dl
mov ebx, edx
not ebx
lea edx, [ebx + edx*2]
and dl, 7
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x891798
xor eax, eax
cmp ecx, 0xffffffff
movzx edi, byte [0xbcab77]
sete al
mov edx, eax
not edx
lea eax, [edx + eax*2]
and al, 7
movzx eax, al
bt edi, eax
jae 0x891773
jmp 0x891854
xor eax, eax
cmp ecx, 0xffffffff
movzx edx, byte [0xbcab77]
sete al
mov ecx, eax
not ecx
lea eax, [ecx + eax*2]
and al, 7
movzx eax, al
bt edx, eax
jb 0x891826
mov ecx, 0x892530
mov eax, 0x892530
mov edi, dword [0xbcab68]
and ecx, 1
xor ecx, eax
xor eax, eax
cmp ecx, 0xffffffff
sete al
mov ecx, eax
xor ecx, 0xf95d8c2f
lea ecx, [ecx + eax*2 + 0x600]
xor edi, ecx
mov edx, ecx
mov dword [0xbcab68], edi
shr edx, 0x1f
not edi
mov ebx, dword [0xbcab6c]
or edx, ecx
and cl, 7
imul edx, edi
lea edi, [edx + edx]
xor ebx, edx
shr edx, 0x1e
mov dword [0xbcab6c], ebx
or edi, edx
not ebx
mov dl, 1
imul ebx, edi
shl dl, cl
xor dword [0xbcab70], ebx
or byte [0xbcab77], dl
mov ecx, 0x892530
mov eax, 0x892530
and ecx, 1
xor ecx, eax
xor eax, eax
cmp ecx, 0xffffffff
sete al
mov ecx, eax
not ecx
lea ecx, [ecx + eax*2]
mov al, 0xfe
and cl, 7
xor cl, 7
rol al, cl
and byte [0xbcab77], al
mov ecx, esi
mov edx, 0xbcab68
call fcn.00898760
mov ecx, eax
mov eax, 4
test ecx, ecx
jne 0x8919b9
mov edx, 0x896d80
mov eax, 0x896d80
movzx ecx, byte [0xbcab87]
and edx, 1
xor edx, eax
cmp edx, 0xffffffff
sete al
or al, 2
movzx eax, al
bt ecx, eax
jb 0x8919a1
mov al, byte [0xbcab87]
cmp edx, 0xffffffff
mov ah, 1
sete cl
or cl, 2
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbcab87], ah
jne 0x89189e
mov ecx, 0x896d80
mov edx, 0x896d80
movzx eax, al
and ecx, 1
xor ecx, edx
cmp ecx, 0xffffffff
sete dl
or dl, 2
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x8918fc
cmp ecx, 0xffffffff
movzx edx, byte [0xbcab87]
sete al
or al, 2
movzx eax, al
bt edx, eax
jae 0x8918e0
jmp 0x8919a1
cmp ecx, 0xffffffff
movzx edx, byte [0xbcab87]
sete al
or al, 2
movzx eax, al
bt edx, eax
jb 0x89197c
mov edx, 0x896d80
mov eax, 0x896d80
xor ecx, ecx
and edx, 1
xor edx, eax
mov eax, dword [0xbcab78]
cmp edx, 0xffffffff
sete cl
or ecx, 0x58c7e412
add ecx, 0x4d0
xor eax, ecx
mov edx, ecx
mov dword [0xbcab78], eax
shr edx, 0x1f
not eax
mov ebx, dword [0xbcab7c]
or edx, ecx
and cl, 7
imul edx, eax
lea edi, [edx + edx]
xor ebx, edx
shr edx, 0x1e
mov dword [0xbcab7c], ebx
or edi, edx
not ebx
mov dl, 1
imul ebx, edi
shl dl, cl
xor dword [0xbcab80], ebx
or byte [0xbcab87], dl
mov ecx, 0x896d80
mov eax, 0x896d80
and ecx, 1
xor ecx, eax
mov al, 0xfe
cmp ecx, 0xffffffff
sete cl
or cl, 2
xor cl, 7
rol al, cl
and byte [0xbcab87], al
mov ecx, esi
mov edx, 0xbcab78
call fcn.00898760
xor ecx, ecx
cmp eax, 1
sbb ecx, ecx
or ecx, 5
mov eax, ecx
pop esi
pop edi
pop ebx
ret