Function at 0x89b260
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x14
mov esi, dword [esp + 0x28]
mov dword [esp], ecx
mov edi, 0xffffffff
mov eax, dword [0xbd33e0]
sub esi, edx
xor eax, esp
cmp esi, 2
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], edx
jl 0x89b713
mov ebp, edx
mov dword [esp + 4], 0
movzx ebx, byte [ebp]
movzx edx, byte [ebp + 1]
test ebx, ebx
jne 0x89b2af
mov eax, dword [esp]
mov edi, edx
movzx eax, byte [eax + edx + 0x48]
jmp 0x89b2bc
mov edi, edx
movsx ecx, bl
movsx edx, dl
call fcn.00896fe0
add eax, 0xfffffffb
cmp eax, 0x18
ja case.0x89b2c4.5
jmp dword [eax*4 + 0xb60470]
movzx eax, byte [ebx + 0xb5d32c]
mov ecx, edi
shr ecx, 5
lea eax, [ecx + eax*8]
mov eax, dword [eax*4 + 0xb5c77c]
bt eax, edi
jb case.0x89b2c4.22
mov eax, dword [esp + 0x2c]
xor edi, edi
mov dword [eax], ebp
jmp 0x89b713
mov edi, 0xfffffffe
cmp esi, 3
jge case.0x89b2c4.5
jmp 0x89b713
mov edi, 0xfffffffe
cmp esi, 4
jge case.0x89b2c4.5
jmp 0x89b713
cmp dword [esp + 4], 0
jne case.0x89b2c4.5
mov edi, dword [esp + 0x28]
lea esi, [ebp + 2]
mov dword [esp + 0xc], esi
sub edi, esi
cmp edi, 2
jge 0x89b338
mov edi, 0xffffffff
jmp 0x89b713
movzx ebx, byte [ebp + 2]
movzx edx, byte [ebp + 3]
test ebx, ebx
mov dword [esp + 4], edx
jne 0x89b352
mov eax, dword [esp]
movzx eax, byte [eax + edx + 0x48]
jmp 0x89b35d
movsx ecx, bl
movsx edx, dl
call fcn.00896fe0
add eax, 0xfffffffb
cmp eax, 0x18
ja case.0x89b365.5
jmp dword [eax*4 + 0xb60590]
mov edx, dword [esp + 4]
movzx eax, byte [ebx + 0xb5d22c]
mov ecx, edx
shr ecx, 5
lea eax, [ecx + eax*8]
mov eax, dword [eax*4 + 0xb5c77c]
bt eax, edx
jb case.0x89b365.22
mov eax, dword [esp + 0x2c]
xor edi, edi
mov dword [eax], esi
jmp 0x89b713
add ebp, 4
mov dword [esp + 4], 1
mov dword [esp + 0xc], ebp
jmp 0x89b6ff
cmp edi, 3
mov edi, 0xfffffffe
jge case.0x89b365.5
jmp 0x89b713
cmp edi, 4
jmp 0x89b3af
mov ebx, dword [esp + 0x28]
lea esi, [ebp + 2]
mov dword [esp + 0xc], esi
mov eax, ebx
sub eax, esi
cmp eax, 2
jge 0x89b3de
mov edi, 0xffffffff
jmp 0x89b713
movzx ecx, byte [ebp + 2]
movzx eax, byte [ebp + 3]
mov ebp, esi
test cl, cl
jne 0x89b3f6
mov ecx, dword [esp]
movzx eax, byte [ecx + eax + 0x48]
jmp 0x89b401
movsx ecx, cl
movsx edx, al
call fcn.00896fe0
lea ecx, [eax - 9]
cmp ecx, 2
jb 0x89b433
cmp eax, 0x15
je 0x89b433
cmp eax, 0xe
jne case.0x89b365.5
mov eax, dword [esp + 0x28]
lea esi, [ebp + 2]
mov dword [esp + 0xc], esi
sub eax, esi
cmp eax, 2
jge 0x89b44d
mov edi, 0xffffffff
jmp 0x89b713
lea esi, [ebp + 2]
mov eax, ebx
sub eax, esi
mov dword [esp + 0xc], esi
cmp eax, 1
jg 0x89b3de
mov edi, 0xffffffff
jmp 0x89b713
movzx ecx, byte [ebp + 2]
movzx eax, byte [ebp + 3]
mov ebx, esi
test cl, cl
jne 0x89b465
mov ecx, dword [esp]
movzx edi, byte [ecx + eax + 0x48]
jmp 0x89b472
movsx ecx, cl
movsx edx, al
call fcn.00896fe0
mov edi, eax
mov eax, edi
or eax, 1
cmp eax, 0xd
je 0x89b4b1
cmp edi, 0x15
ja case.0x89b365.5
mov eax, 0x200600
bt eax, edi
jae case.0x89b365.5
mov eax, dword [esp + 0x28]
lea esi, [ebx + 2]
mov ebp, ebx
mov dword [esp + 0xc], esi
sub eax, esi
cmp eax, 1
jg 0x89b44d
mov edi, 0xffffffff
jmp 0x89b713
mov ebx, dword [esp + 0x28]
add ebp, 4
mov dword [esp + 0xc], ebp
mov esi, ebx
sub esi, ebp
cmp esi, 2
jge 0x89b4cf
mov edi, 0xffffffff
jmp 0x89b713
movzx ecx, byte [ebp]
movzx eax, byte [ebp + 1]
test cl, cl
jne 0x89b4e5
mov ecx, dword [esp]
movzx eax, byte [ecx + eax + 0x48]
jmp 0x89b4f0
movsx ecx, cl
movsx edx, al
call fcn.00896fe0
cmp eax, edi
je 0x89b57b
cmp eax, 8
ja case.0x89b4fd.4
jmp dword [eax*4 + 0xb604d4]
cmp esi, 3
jge 0x89b513
mov edi, 0xfffffffe
jmp 0x89b713
add ebp, 3
jmp 0x89b560
cmp esi, 4
jge 0x89b527
mov edi, 0xfffffffe
jmp 0x89b713
add ebp, 4
jmp 0x89b560
mov ecx, dword [esp]
add ebp, 2
lea eax, [esp + 0xc]
mov edx, ebp
push eax
push ebx
call fcn.0089ae60
add esp, 8
test eax, eax
jle 0x89b54c
mov ebp, dword [esp + 0xc]
jmp 0x89b564
mov edi, eax
jne 0x89b713
mov eax, dword [esp + 0xc]
jmp 0x89b6de
add ebp, 2
mov dword [esp + 0xc], ebp
mov esi, ebx
sub esi, ebp
cmp esi, 1
jg 0x89b4cf
mov edi, 0xffffffff
jmp 0x89b713
lea edx, [ebp + 2]
mov eax, ebx
sub eax, edx
mov dword [esp + 0xc], edx
cmp eax, 2
jge 0x89b595
mov edi, 0xffffffff
jmp 0x89b713
mov cl, byte [ebp + 2]
movzx eax, byte [ebp + 3]
test cl, cl
jne 0x89b5aa
mov ecx, dword [esp]
movzx eax, byte [ecx + eax + 0x48]
jmp 0x89b5b9
mov esi, edx
movsx ecx, cl
movsx edx, al
call fcn.00896fe0
mov edx, esi
add eax, 0xfffffff7
cmp eax, 0xc
ja case.0x89b627.5
jmp dword [eax*4 + 0xb604f8]
mov esi, dword [esp + 0x28]
add ebp, 4
mov edi, edx
mov dword [esp + 0xc], ebp
sub esi, ebp
cmp esi, 2
jge 0x89b5ea
mov edi, 0xffffffff
jmp 0x89b713
movzx ebx, byte [ebp]
movzx eax, byte [edi + 3]
mov edx, ebp
test ebx, ebx
mov dword [esp + 8], eax
jne 0x89b608
mov ecx, eax
mov eax, dword [esp]
movzx eax, byte [eax + ecx + 0x48]
jmp 0x89b61b
mov dword [esp + 4], edx
movsx ecx, bl
movsx edx, al
call fcn.00896fe0
mov edx, dword [esp + 4]
add eax, 0xfffffffb
cmp eax, 0x18
ja case.0x89b2c4.5
jmp dword [eax*4 + 0xb6052c]
mov esi, dword [esp + 8]
movzx eax, byte [ebx + 0xb5d22c]
mov ecx, esi
shr ecx, 5
lea eax, [ecx + eax*8]
mov eax, dword [eax*4 + 0xb5c77c]
bt eax, esi
jae case.0x89b627.5
add edi, 4
mov dword [esp + 4], 0
mov dword [esp + 0xc], edi
mov ebp, edi
jmp 0x89b6ff
mov edi, 0xfffffffe
cmp esi, 3
jge case.0x89b627.5
jmp 0x89b713
mov edi, 0xfffffffe
cmp esi, 4
jl 0x89b713
mov eax, dword [esp + 0x2c]
xor edi, edi
mov dword [eax], edx
jmp 0x89b713
mov esi, dword [esp + 0x28]
lea ebp, [edx + 2]
mov edi, edx
mov dword [esp + 0xc], ebp
sub esi, ebp
cmp esi, 1
jg 0x89b5ea
mov edi, 0xffffffff
jmp 0x89b713
mov eax, dword [esp + 0x2c]
add edx, 2
mov edi, 1
mov dword [eax], edx
jmp 0x89b713
mov ecx, dword [esp + 0x28]
lea eax, [edx + 2]
mov edi, 0xffffffff
mov dword [esp + 0xc], eax
sub ecx, eax
cmp ecx, 2
jl 0x89b713
cmp byte [eax], 0
jne 0x89b6de
cmp byte [edx + 3], 0x3e
je 0x89b6e8
mov ecx, dword [esp + 0x2c]
xor edi, edi
mov dword [ecx], eax
jmp 0x89b713
mov eax, dword [esp + 0x2c]
add edx, 4
mov edi, 3
mov dword [eax], edx
jmp 0x89b713
add ebp, 2
mov dword [esp + 0xc], ebp
mov esi, dword [esp + 0x28]
mov edi, 0xffffffff
sub esi, ebp
cmp esi, 1
jg 0x89b297
mov ecx, dword [esp + 0x10]
xor ecx, esp
call fcn.00989fe9
mov eax, edi
add esp, 0x14
pop esi
pop edi
pop ebx
pop ebp
ret