Function at 0x1032c80
Capabilities:
Encode data using xor

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x80
push ebx
xor ebx, ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov dword [ebp - 4], ebx
cmp dword [ebp + 0x10], ebx
je 0x1032ec3
movzx edx, word [edi + 0x118]
cmp edx, ebx
mov dword [ebp - 0x10], ebx
jle 0x1032ce4
lea eax, [edi + 0x1c]
mov esi, edx
cmp dword [eax + 4], 0
je 0x1032cd9
cmp dword [eax + 8], 0x200
jbe 0x1032cd9
mov ecx, dword [eax]
mov ecx, dword [ecx + 0x24]
test ecx, 0xa0000000
jne 0x1032cd3
test cl, 0x20
je 0x1032cd9
cmp ebx, 2
jge 0x1032cd9
inc ebx
add eax, 0x10
sub esi, 1
jne 0x1032cb2
mov dword [ebp - 0x10], ebx
xor esi, esi
cmp edx, esi
mov dword [ebp - 8], esi
mov dword [ebp - 0xc], esi
jle 0x1032ec3
lea edx, [esi + 2]
shl edx, 4
mov ecx, dword [edx + edi]
mov dword [ebp - 0x18], ecx
test ecx, ecx
je 0x1032ea9
mov eax, esi
shl eax, 4
lea edx, [eax + edi]
mov eax, dword [edx + 0x24]
mov dword [ebp - 0x1c], eax
cmp eax, 0x200
jbe 0x1032ea9
mov edx, dword [edx + 0x1c]
mov edx, dword [edx + 0x24]
test edx, 0xa0000000
jne 0x1032d38
test dl, 0x20
je 0x1032ea9
cmp dword [ebp - 8], 2
jge 0x1032ea9
mov esi, eax
shr esi, 5
mov dword [ebp + 0x10], 0
mov ebx, ecx
mov dword [ebp - 0x14], esi
cmp esi, 0x200
jae 0x1032d84
lea edi, [esi + esi]
xor esi, esi
mov dword [ebp + 0x10], 0x10
push edi
push ebx
call fcn.0102fa30
mov byte [ebp + esi - 0x3c], al
xor al, 0x2a
mov byte [ebp + esi - 0x3b], al
add esi, 2
add ebx, edi
cmp esi, 0x20
jl 0x1032d67
jmp 0x1032dff
xor edi, edi
jmp 0x1032d99
mov esi, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
cmp edi, 2
jge 0x1032da5
mov esi, 0x100
jmp 0x1032dd7
cmp edi, 4
jge 0x1032db1
mov esi, 0x200
jmp 0x1032dd7
cmp edi, 0x1e
jne 0x1032dcc
mov esi, eax
sub esi, ebx
add esi, ecx
cmp esi, 0x400
jbe 0x1032dd7
sub esi, 0x200
jmp 0x1032dd7
cmp edi, 0x1f
jne 0x1032dd7
mov esi, eax
sub esi, ebx
add esi, ecx
push esi
push ebx
call fcn.0102fa30
mov byte [ebp + edi - 0x3c], al
test al, al
jne 0x1032df7
inc dword [ebp + 0x10]
test edi, edi
jle 0x1032df7
mov al, byte [ebp + edi - 0x3d]
xor al, 0x2a
mov byte [ebp + edi - 0x3c], al
inc edi
add ebx, esi
cmp edi, 0x20
jl 0x1032d90
mov ebx, dword [ebp - 8]
cmp ebx, 1
jne 0x1032e22
mov ecx, 8
cmp dword [ebp + 0x10], ecx
jle 0x1032e22
lea esi, [ebp - 0x5c]
lea edi, [ebp - 0x80]
rep movsd dword es:[edi], dword [esi]
mov dword [ebp - 4], 0x20
jmp 0x1032e3d
mov ecx, dword [ebp - 0x10]
mov esi, dword [ebp - 4]
push ebx
push ecx
lea edx, [ebp - 0x3c]
push edx
lea eax, [ebp + esi - 0x80]
push eax
call fcn.01032b80
add esi, eax
mov dword [ebp - 4], esi
xor ecx, ecx
xor eax, eax
movzx esi, byte [ebp + eax - 0x3b]
movzx edx, byte [ebp + eax - 0x3c]
add edx, esi
movzx esi, byte [ebp + eax - 0x39]
add edx, esi
movzx esi, byte [ebp + eax - 0x3a]
add esi, ecx
add eax, 4
cmp eax, 0x20
lea ecx, [esi + edx]
jl 0x1032e41
cmp dword [ebp - 0xc], 0
jne 0x1032e92
mov eax, 0x8421085
mul ecx
mov eax, dword [ebp + 0xc]
sub ecx, edx
shr ecx, 1
add ecx, edx
mov edx, dword [eax + 0xfbd4]
shr ecx, 9
mov byte [edx + eax + 0xf7d0], cl
inc dword [eax + 0xfbd4]
mov ecx, 8
lea esi, [ebp - 0x3c]
lea edi, [ebp - 0x5c]
rep movsd dword es:[edi], dword [esi]
mov edi, dword [ebp + 8]
mov esi, dword [ebp - 0xc]
inc ebx
mov dword [ebp - 8], ebx
movzx eax, word [edi + 0x118]
inc esi
cmp esi, eax
mov dword [ebp - 0xc], esi
jl 0x1032cf4
mov eax, dword [ebp - 4]
test eax, eax
jne 0x1032eef
mov ebx, dword [edi]
mov edi, dword [edi + 4]
shr edi, 5
xor esi, esi
lea ecx, [ecx]
push edi
push ebx
call fcn.0102fa30
mov byte [ebp + esi - 0x80], al
inc esi
add ebx, edi
cmp esi, 0x20
jl 0x1032ed0
mov dword [ebp - 4], 0x20
mov eax, dword [ebp - 4]
jmp 0x1032ef9
cmp eax, 0x20
jle 0x1032ef9
mov eax, 0x20
mov ecx, dword [ebp + 0xc]
add ecx, 0xf708
push ecx
push eax
lea edx, [ebp - 0x80]
push edx
call fcn.0102a0a0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc