Function at 0x417735
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x30
mov eax, dword [0x4ccbf8]
xor eax, ebp
mov dword [ebp - 4], eax
movzx eax, byte [0x553618]
push ebx
push esi
push edi
push 7
mov dword [ebp - 0x18], eax
mov ebx, edx
add eax, 0xfffffff9
mov dword [ebp - 0x14], ebx
pop edi
xor esi, esi
cmp eax, edi
jle 0x41778d
mov ebx, eax
push esi
push edi
push 6
pop edx
mov ecx, 0x553618
call fcn.0041809e
push esi
push 6
mov edx, edi
mov ecx, 0x553618
call fcn.0041809e
add edi, 2
add esp, 0x10
cmp edi, ebx
jl 0x417765
mov esi, dword [ebp - 0x18]
or edi, 0xffffffff
lea eax, [edi - 3]
cdq
mov ecx, eax
xor ecx, edx
sub ecx, edx
or ebx, 0xffffffff
mov dword [ebp - 0x10], ecx
lea eax, [ebx - 3]
cdq
xor eax, edx
sub eax, edx
cmp ecx, eax
cmovg eax, ecx
cmp eax, 2
je 0x4177ba
cmp eax, 4
jne 0x4177e2
push ecx
push edi
mov edx, ebx
call fcn.004180da
pop ecx
lea edx, [esi - 7]
push edi
add edx, ebx
call fcn.004180da
lea eax, [esi - 7]
mov edx, ebx
pop ecx
add eax, edi
push eax
call fcn.004180da
pop ecx
pop ecx
mov ecx, dword [ebp - 0x10]
inc ebx
lea eax, [ebx - 3]
cmp eax, 4
jle 0x4177a3
inc edi
lea eax, [edi - 3]
cmp eax, 4
jle 0x417793
mov ebx, dword [ebp - 0x14]
lea edx, [ebp - 0xc]
mov ecx, ebx
call fcn.00417a82
xor esi, esi
mov ecx, eax
mov dword [ebp - 0x20], ecx
mov edi, esi
mov dword [ebp - 0x10], edi
test ecx, ecx
jle 0x4178b4
xor ebx, ebx
mov esi, ebx
mov dword [ebp - 0x2c], ebx
test edi, edi
jne 0x41782d
test esi, esi
je 0x417897
lea eax, [ecx - 1]
cmp esi, eax
je 0x417897
jmp 0x417830
lea eax, [ecx - 1]
cmp edi, eax
jne 0x417838
test esi, esi
je 0x417897
movzx ecx, byte [ebp + edi - 0xc]
or dword [ebp - 0x1c], 0xffffffff
movzx eax, byte [ebp + esi - 0xc]
mov edi, dword [ebp - 0x1c]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x28], ecx
or esi, 0xffffffff
add eax, edi
mov dword [ebp - 0x1c], eax
test esi, esi
jne 0x417863
mov byte [ebp - 0x24], 1
test edi, edi
je 0x417866
mov byte [ebp - 0x24], bl
push dword [ebp - 0x24]
lea edx, [ecx + esi]
mov ecx, 0x553618
push eax
call fcn.0041809e
mov eax, dword [ebp - 0x1c]
inc esi
pop ecx
pop ecx
mov ecx, dword [ebp - 0x28]
cmp esi, 1
jle 0x417857
mov eax, dword [ebp - 0x30]
inc edi
cmp edi, 1
jle 0x41784f
mov esi, dword [ebp - 0x2c]
mov edi, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x20]
inc esi
mov dword [ebp - 0x2c], esi
cmp esi, ecx
jl 0x41781c
inc edi
mov dword [ebp - 0x10], edi
cmp edi, ecx
jl 0x417817
mov ebx, dword [ebp - 0x14]
xor esi, esi
cmp ebx, 7
jl 0x417929
push 0xc
mov edx, ebx
pop edi
mov eax, edx
add edx, edx
sar eax, 0xb
imul ecx, eax, 0x1f25
xor edx, ecx
sub edi, 1
jne 0x4178be
mov eax, dword [ebp - 0x18]
shl ebx, 0xc
or ebx, edx
add eax, 0xfffffff5
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x20], eax
mov edi, eax
mov dword [ebp - 0x18], 3
and ebx, 0xffffff01
mov edx, edi
push ebx
push esi
mov ecx, 0x553618
call fcn.0041809e
push ebx
push edi
mov edx, esi
mov ecx, 0x553618
call fcn.0041809e
mov ebx, dword [ebp - 0x14]
add esp, 0x10
sar ebx, 1
inc edi
sub dword [ebp - 0x18], 1
mov dword [ebp - 0x14], ebx
jne 0x4178ec
mov eax, dword [ebp - 0x20]
inc esi
cmp esi, 6
jl 0x4178e3
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0047f41c
leave
ret