Function at 0x100177b0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x38
push ebx
push esi
xor edx, edx
mov ebx, ecx
mov esi, 0x32f54a96
mov dword [ebp - 8], ebx
push edi
cmp dword [ebp + 0x10], edx
jbe 0x100177f0
nop word [eax + eax]
mov eax, dword [ebp + 0xc]
movzx eax, word [eax + edx*2]
inc edx
imul ecx, eax, 0xc5
imul eax, esi, 0x34c3
shr esi, 2
add ecx, eax
xor esi, ecx
cmp edx, dword [ebp + 0x10]
jb 0x100177d0
mov ecx, dword [ebx + 4]
mov eax, 1
shl eax, cl
and esi, 0x3fffffff
dec eax
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x24], eax
mov edx, 2
and eax, esi
mov dword [ebp - 0x14], 1
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x28], eax
nop dword [eax + eax]
mov eax, dword [ebp + 0x10]
xor esi, esi
mov dword [ebp - 0x10], 0
test eax, eax
je 0x10017865
xor ecx, ecx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.10450898
mov edx, eax
add esp, 4
mov dword [ebp - 0x10], edx
test edx, edx
je 0x10017860
mov esi, dword [ebp + 0x10]
lea ecx, [esi + esi]
push ecx
push dword [ebp + 0xc]
push edx
call fcn.10425d60
add esp, 0xc
mov edx, 2
xor edi, edi
xor ebx, ebx
test esi, esi
je 0x1001789b
xor ecx, ecx
mov eax, esi
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.10450898
mov edi, eax
add esp, 4
test edi, edi
je 0x1001789b
lea ecx, [esi + esi]
mov ebx, esi
push ecx
push dword [ebp - 0x10]
push edi
call fcn.10425d60
add esp, 0xc
mov ecx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
shl esi, 4
mov dword [ebp - 0x1c], esi
mov edx, dword [ecx]
add edx, esi
mov dword [ebp - 0x20], edx
mov eax, dword [edx]
test al, 1
jne 0x1001796a
test al, 2
je 0x100178bf
dec dword [ecx + 0xc]
or dword [edx], 1
mov eax, dword [ecx]
and dword [esi + eax], 0xfffffffd
mov edx, dword [ecx]
mov eax, dword [ebp - 0x18]
lea ecx, [eax*4]
mov eax, dword [edx + esi]
and eax, 3
or ecx, eax
mov eax, dword [ebp - 8]
mov dword [edx + esi], ecx
mov eax, dword [eax]
add eax, 4
add esi, eax
lea eax, [ebp - 0x34]
cmp esi, eax
je 0x10017942
mov eax, dword [esi]
test eax, eax
je 0x100178ff
push eax
call fcn.10450877
add esp, 4
mov dword [esi], 0
mov dword [esi + 4], 0
test ebx, ebx
je 0x10017942
xor ecx, ecx
mov eax, ebx
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.10450898
add esp, 4
mov dword [esi], eax
test eax, eax
je 0x10017942
lea ecx, [ebx + ebx]
mov dword [esi + 4], ebx
push ecx
push edi
push eax
call fcn.10425d60
add esp, 0xc
mov ebx, dword [ebp - 8]
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x1c]
mov ecx, dword [ebx]
mov eax, dword [eax]
mov dword [edx + ecx + 0xc], eax
inc dword [ebx + 8]
test edi, edi
je 0x10017963
push edi
call fcn.10450877
add esp, 4
xor esi, esi
jmp 0x100179fe
cmp ebx, dword [edx + 8]
jne 0x100179e9
mov edx, dword [edx + 4]
lea esi, [ebx + ebx]
mov ecx, edi
sub esi, 4
jb 0x10017991
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10017996
add ecx, 4
add edx, 4
sub esi, 4
jae 0x10017980
cmp esi, 0xfffffffc
je 0x100179c7
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x100179c3
cmp esi, 0xfffffffd
je 0x100179c7
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x100179c3
cmp esi, 0xfffffffe
je 0x100179c7
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x100179c3
cmp esi, 0xffffffff
je 0x100179c7
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x100179c7
xor al, al
jmp 0x100179c9
mov al, 1
test al, al
je 0x100179e9
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x20]
mov eax, dword [eax]
mov dword [ecx + 0xc], eax
test edi, edi
je 0x100179e5
push edi
call fcn.10450877
add esp, 4
xor esi, esi
jmp 0x100179fb
test edi, edi
je 0x100179f6
push edi
call fcn.10450877
add esp, 4
mov esi, 2
mov ebx, dword [ebp - 8]
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x10017a0e
push eax
call fcn.10450877
add esp, 4
cmp esi, 2
jne 0x10017a59
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0x14]
add ecx, edx
and ecx, dword [ebp - 0x24]
inc edx
mov dword [ebp - 0x14], edx
mov edx, esi
mov dword [ebp - 0xc], ecx
cmp ecx, dword [ebp - 0x28]
jne 0x10017820
mov ecx, dword [ebx + 0x10]
lea eax, [ecx + 1]
mov dword [ebx + 0x10], eax
cmp ecx, 4
jbe 0x10017a55
mov ecx, ebx
call fcn.10017ed0
test al, al
jne 0x10017a4e
or edi, 0xffffffff
jmp 0x10017a62
mov dword [ebx + 0x10], 0
xor edi, edi
jmp 0x10017a62
or edi, 0xffffffff
test esi, esi
cmove edi, dword [ebp - 0xc]
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x10017a72
push eax
call fcn.10450877
add esp, 4
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc