Function at 0x88f9d0
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 [0xbcbae0]
sub esi, edx
xor eax, esp
cmp esi, 2
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], edx
jl 0x88fe83
mov ebp, edx
mov dword [esp + 4], 0
movzx ebx, byte [ebp]
movzx edx, byte [ebp + 1]
test ebx, ebx
jne 0x88fa1f
mov eax, dword [esp]
mov edi, edx
movzx eax, byte [eax + edx + 0x48]
jmp 0x88fa2c
mov edi, edx
movsx ecx, bl
movsx edx, dl
call fcn.0088b750
add eax, 0xfffffffb
cmp eax, 0x18
ja case.0x88fa34.5
jmp dword [eax*4 + 0xb57e10]
movzx eax, byte [ebx + 0xb54ccc]
mov ecx, edi
shr ecx, 5
lea eax, [ecx + eax*8]
mov eax, dword [eax*4 + 0xb5411c]
bt eax, edi
jb case.0x88fa34.22
mov eax, dword [esp + 0x2c]
xor edi, edi
mov dword [eax], ebp
jmp 0x88fe83
mov edi, 0xfffffffe
cmp esi, 3
jge case.0x88fa34.5
jmp 0x88fe83
mov edi, 0xfffffffe
cmp esi, 4
jge case.0x88fa34.5
jmp 0x88fe83
cmp dword [esp + 4], 0
jne case.0x88fa34.5
mov edi, dword [esp + 0x28]
lea esi, [ebp + 2]
mov dword [esp + 0xc], esi
sub edi, esi
cmp edi, 2
jge 0x88faa8
mov edi, 0xffffffff
jmp 0x88fe83
movzx ebx, byte [ebp + 2]
movzx edx, byte [ebp + 3]
test ebx, ebx
mov dword [esp + 4], edx
jne 0x88fac2
mov eax, dword [esp]
movzx eax, byte [eax + edx + 0x48]
jmp 0x88facd
movsx ecx, bl
movsx edx, dl
call fcn.0088b750
add eax, 0xfffffffb
cmp eax, 0x18
ja case.0x88fad5.5
jmp dword [eax*4 + 0xb57f30]
mov edx, dword [esp + 4]
movzx eax, byte [ebx + 0xb54bcc]
mov ecx, edx
shr ecx, 5
lea eax, [ecx + eax*8]
mov eax, dword [eax*4 + 0xb5411c]
bt eax, edx
jb case.0x88fad5.22
mov eax, dword [esp + 0x2c]
xor edi, edi
mov dword [eax], esi
jmp 0x88fe83
add ebp, 4
mov dword [esp + 4], 1
mov dword [esp + 0xc], ebp
jmp 0x88fe6f
cmp edi, 3
mov edi, 0xfffffffe
jge case.0x88fad5.5
jmp 0x88fe83
cmp edi, 4
jmp 0x88fb1f
mov ebx, dword [esp + 0x28]
lea esi, [ebp + 2]
mov dword [esp + 0xc], esi
mov eax, ebx
sub eax, esi
cmp eax, 2
jge 0x88fb4e
mov edi, 0xffffffff
jmp 0x88fe83
movzx ecx, byte [ebp + 2]
movzx eax, byte [ebp + 3]
mov ebp, esi
test cl, cl
jne 0x88fb66
mov ecx, dword [esp]
movzx eax, byte [ecx + eax + 0x48]
jmp 0x88fb71
movsx ecx, cl
movsx edx, al
call fcn.0088b750
lea ecx, [eax - 9]
cmp ecx, 2
jb 0x88fba3
cmp eax, 0x15
je 0x88fba3
cmp eax, 0xe
jne case.0x88fad5.5
mov eax, dword [esp + 0x28]
lea esi, [ebp + 2]
mov dword [esp + 0xc], esi
sub eax, esi
cmp eax, 2
jge 0x88fbbd
mov edi, 0xffffffff
jmp 0x88fe83
lea esi, [ebp + 2]
mov eax, ebx
sub eax, esi
mov dword [esp + 0xc], esi
cmp eax, 1
jg 0x88fb4e
mov edi, 0xffffffff
jmp 0x88fe83
movzx ecx, byte [ebp + 2]
movzx eax, byte [ebp + 3]
mov ebx, esi
test cl, cl
jne 0x88fbd5
mov ecx, dword [esp]
movzx edi, byte [ecx + eax + 0x48]
jmp 0x88fbe2
movsx ecx, cl
movsx edx, al
call fcn.0088b750
mov edi, eax
mov eax, edi
or eax, 1
cmp eax, 0xd
je 0x88fc21
cmp edi, 0x15
ja case.0x88fad5.5
mov eax, 0x200600
bt eax, edi
jae case.0x88fad5.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 0x88fbbd
mov edi, 0xffffffff
jmp 0x88fe83
mov ebx, dword [esp + 0x28]
add ebp, 4
mov dword [esp + 0xc], ebp
mov esi, ebx
sub esi, ebp
cmp esi, 2
jge 0x88fc3f
mov edi, 0xffffffff
jmp 0x88fe83
movzx ecx, byte [ebp]
movzx eax, byte [ebp + 1]
test cl, cl
jne 0x88fc55
mov ecx, dword [esp]
movzx eax, byte [ecx + eax + 0x48]
jmp 0x88fc60
movsx ecx, cl
movsx edx, al
call fcn.0088b750
cmp eax, edi
je 0x88fceb
cmp eax, 8
ja case.0x88fc6d.4
jmp dword [eax*4 + 0xb57e74]
cmp esi, 3
jge 0x88fc83
mov edi, 0xfffffffe
jmp 0x88fe83
add ebp, 3
jmp 0x88fcd0
cmp esi, 4
jge 0x88fc97
mov edi, 0xfffffffe
jmp 0x88fe83
add ebp, 4
jmp 0x88fcd0
mov ecx, dword [esp]
add ebp, 2
lea eax, [esp + 0xc]
mov edx, ebp
push eax
push ebx
call fcn.0088f5d0
add esp, 8
test eax, eax
jle 0x88fcbc
mov ebp, dword [esp + 0xc]
jmp 0x88fcd4
mov edi, eax
jne 0x88fe83
mov eax, dword [esp + 0xc]
jmp 0x88fe4e
add ebp, 2
mov dword [esp + 0xc], ebp
mov esi, ebx
sub esi, ebp
cmp esi, 1
jg 0x88fc3f
mov edi, 0xffffffff
jmp 0x88fe83
lea edx, [ebp + 2]
mov eax, ebx
sub eax, edx
mov dword [esp + 0xc], edx
cmp eax, 2
jge 0x88fd05
mov edi, 0xffffffff
jmp 0x88fe83
mov cl, byte [ebp + 2]
movzx eax, byte [ebp + 3]
test cl, cl
jne 0x88fd1a
mov ecx, dword [esp]
movzx eax, byte [ecx + eax + 0x48]
jmp 0x88fd29
mov esi, edx
movsx ecx, cl
movsx edx, al
call fcn.0088b750
mov edx, esi
add eax, 0xfffffff7
cmp eax, 0xc
ja case.0x88fd97.5
jmp dword [eax*4 + 0xb57e98]
mov esi, dword [esp + 0x28]
add ebp, 4
mov edi, edx
mov dword [esp + 0xc], ebp
sub esi, ebp
cmp esi, 2
jge 0x88fd5a
mov edi, 0xffffffff
jmp 0x88fe83
movzx ebx, byte [ebp]
movzx eax, byte [edi + 3]
mov edx, ebp
test ebx, ebx
mov dword [esp + 8], eax
jne 0x88fd78
mov ecx, eax
mov eax, dword [esp]
movzx eax, byte [eax + ecx + 0x48]
jmp 0x88fd8b
mov dword [esp + 4], edx
movsx ecx, bl
movsx edx, al
call fcn.0088b750
mov edx, dword [esp + 4]
add eax, 0xfffffffb
cmp eax, 0x18
ja case.0x88fa34.5
jmp dword [eax*4 + 0xb57ecc]
mov esi, dword [esp + 8]
movzx eax, byte [ebx + 0xb54bcc]
mov ecx, esi
shr ecx, 5
lea eax, [ecx + eax*8]
mov eax, dword [eax*4 + 0xb5411c]
bt eax, esi
jae case.0x88fd97.5
add edi, 4
mov dword [esp + 4], 0
mov dword [esp + 0xc], edi
mov ebp, edi
jmp 0x88fe6f
mov edi, 0xfffffffe
cmp esi, 3
jge case.0x88fd97.5
jmp 0x88fe83
mov edi, 0xfffffffe
cmp esi, 4
jl 0x88fe83
mov eax, dword [esp + 0x2c]
xor edi, edi
mov dword [eax], edx
jmp 0x88fe83
mov esi, dword [esp + 0x28]
lea ebp, [edx + 2]
mov edi, edx
mov dword [esp + 0xc], ebp
sub esi, ebp
cmp esi, 1
jg 0x88fd5a
mov edi, 0xffffffff
jmp 0x88fe83
mov eax, dword [esp + 0x2c]
add edx, 2
mov edi, 1
mov dword [eax], edx
jmp 0x88fe83
mov ecx, dword [esp + 0x28]
lea eax, [edx + 2]
mov edi, 0xffffffff
mov dword [esp + 0xc], eax
sub ecx, eax
cmp ecx, 2
jl 0x88fe83
cmp byte [eax], 0
jne 0x88fe4e
cmp byte [edx + 3], 0x3e
je 0x88fe58
mov ecx, dword [esp + 0x2c]
xor edi, edi
mov dword [ecx], eax
jmp 0x88fe83
mov eax, dword [esp + 0x2c]
add edx, 4
mov edi, 3
mov dword [eax], edx
jmp 0x88fe83
add ebp, 2
mov dword [esp + 0xc], ebp
mov esi, dword [esp + 0x28]
mov edi, 0xffffffff
sub esi, ebp
cmp esi, 1
jg 0x88fa07
mov ecx, dword [esp + 0x10]
xor ecx, esp
call fcn.00980459
mov eax, edi
add esp, 0x14
pop esi
pop edi
pop ebx
pop ebp
ret