Function at 0x464692
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x22c
mov eax, dword [0x636b1c]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
mov ebx, dword [ebp + 0xc]
push edi
xor edi, edi
mov dword [ebp - 0x218], eax
push 0x1fd
lea eax, [ebp - 0x203]
mov byte [ebp - 0x214], bl
push edi
push eax
mov dword [ebp - 0x21c], edi
mov byte [ebp - 0x204], 0
call sub.MSVCR120.dll_memset
mov eax, dword [0x636384]
add esp, 0xc
movzx ecx, bl
mov dword [ebp - 0x20c], 1
mov dword [ebp - 0x22c], ecx
cmp byte [ecx + eax], 0xff
je 0x46487e
push dword [ebp - 0x214]
xor bl, bl
mov byte [ebp - 0x206], bl
call fcn.0045b570
add esp, 4
test al, al
je 0x46487e
push esi
lea esi, [edi + 1]
nop
push dword [ebp - 0x214]
xor bh, bh
mov byte [ebp - 0x207], bh
call fcn.0045ff70
add esp, 4
test al, al
je 0x46485f
mov ecx, dword [ebp - 0x22c]
shl ecx, 8
movzx eax, bl
add ecx, eax
shl ecx, 8
mov dword [ebp - 0x224], ecx
movzx eax, bh
xor bl, bl
add eax, ecx
mov byte [ebp - 0x205], bl
shl eax, 8
push eax
mov dword [ebp - 0x220], eax
call fcn.0045ff30
add esp, 4
test al, al
je 0x464835
lea esp, [esp]
movzx ebx, bl
add ebx, dword [ebp - 0x220]
push ebx
mov dword [ebp - 0x228], ebx
call fcn.00460c50
add esp, 4
cmp al, 1
jne 0x464586
push ebx
call fcn.0045fe90
add esp, 4
test al, al
jne 0x464586
push ebx
call fcn.0045ff90
add esp, 4
cmp al, 0x80
jne 0x464590
cmp byte [ebp + 0x10], 1
jne 0x464812
push 4
push ebx
call fcn.00460590
add esp, 8
mov dword [ebp - 0x210], eax
test eax, eax
je 0x464710
push ebx
call fcn.00460410
movzx eax, al
add esp, 4
cmp eax, 9
ja case.default.0x4645be
jmp dword [eax*4 + 0x464890]
mov eax, dword [ebp - 0x210]
push 1
push eax
lea eax, [ebp - 0x204]
mov dword [ebp - 0x20c], 1
push 0x1fe
push eax
call dword [sym.imp.MSVCR120.dll_memcpy_s]
add esp, 0x10
mov esi, 1
jmp 0x4646d8
mov eax, dword [ebp - 0x210]
push 2
push eax
lea eax, [ebp - 0x204]
mov dword [ebp - 0x20c], 2
push 0x1fe
push eax
call dword [sym.imp.MSVCR120.dll_memcpy_s]
add esp, 0x10
mov esi, 2
jmp 0x4646d8
mov eax, dword [ebp - 0x210]
push 4
push eax
lea eax, [ebp - 0x204]
mov dword [ebp - 0x20c], 4
push 0x1fe
push eax
call dword [sym.imp.MSVCR120.dll_memcpy_s]
add esp, 0x10
mov esi, 4
jmp 0x4646d8
mov eax, dword [ebp - 0x210]
sub esp, 8
movss xmm0, dword [eax]
lea eax, [ebp - 0x204]
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push str._.4f
push 0x1fe
push eax
call dword [sym.imp.MSVCR120.dll_sprintf_s]
add esp, 0x14
test eax, eax
jle 0x4646d8
mov esi, eax
jmp 0x4646d2
push ebx
call fcn.00460760
movzx esi, al
add esp, 4
add esi, esi
mov dword [ebp - 0x20c], esi
cmp esi, 0x1fe
jae 0x4646d8
mov eax, dword [ebp - 0x210]
push esi
push eax
lea eax, [ebp - 0x204]
push 0x1fe
push eax
call dword [sym.imp.MSVCR120.dll_memcpy_s]
add esp, 0x10
jmp 0x4646d8
mov esi, 1
mov dword [ebp - 0x20c], esi
mov dword [ebp - 0x21c], edi
mov ecx, esi
lea edx, [ebp - 0x204]
test esi, esi
je 0x464710
lea ebx, [ebx]
movzx eax, byte [edx]
lea edx, [edx + 1]
xor eax, edi
shr edi, 8
and eax, 0xff
xor edi, dword [eax*4 + 0x636520]
dec ecx
jne 0x4646f0
mov dword [ebp - 0x21c], edi
mov eax, dword [ebp - 0x218]
test eax, eax
je 0x464812
push ebx
push str.0x_08X_
push eax
call dword [sym.imp.MSVCR120.dll_fprintf]
push ebx
mov esi, 0x4bd1b0
call fcn.00460600
add esp, 0x10
test al, al
jne 0x464779
mov eax, dword [0x636384]
mov ecx, ebx
shr ecx, 0x18
movzx eax, byte [ecx + eax]
mov edx, dword [eax*8 + 0x4da244]
mov eax, ebx
shr eax, 8
movzx eax, al
mov esi, eax
mov edx, dword [edx + 0x1c]
shl esi, 4
sub esi, eax
movzx eax, bl
imul ecx, eax, 0x340
mov esi, dword [edx + esi*4 + 4]
add esi, 0x206
add esi, ecx
push dword [ebp - 0x20c]
push ebx
call fcn.00460410
add esp, 4
movzx eax, al
push eax
push esi
push ebx
call fcn.00464210
add esp, 4
push eax
push str._s._s___d___d_
push dword [ebp - 0x218]
call dword [sym.imp.MSVCR120.dll_fprintf]
xor esi, esi
add esp, 0x18
cmp dword [ebp - 0x20c], esi
jbe 0x4647ea
mov ebx, dword [ebp - 0x20c]
mov edi, dword [ebp - 0x218]
movzx eax, byte [ebp + esi - 0x204]
push eax
push str._0x_02X
push edi
call dword [sym.imp.MSVCR120.dll_fprintf]
inc esi
add esp, 0xc
cmp esi, ebx
jb 0x4647c1
mov edi, dword [ebp - 0x21c]
mov ebx, dword [ebp - 0x228]
mov esi, dword [ebp - 0x218]
push edi
push str.__0x_08X
push esi
call dword [sym.imp.MSVCR120.dll_fprintf]
push 0x4b4570
push esi
call dword [sym.imp.MSVCR120.dll_fprintf]
mov esi, dword [ebp - 0x20c]
add esp, 0x14
inc byte [ebp - 0x205]
push ebx
call fcn.0045ff30
mov bl, byte [ebp - 0x205]
add esp, 4
cmp bl, al
jb 0x464550
mov bh, byte [ebp - 0x207]
push dword [ebp - 0x214]
inc bh
mov byte [ebp - 0x207], bh
call fcn.0045ff70
mov ecx, dword [ebp - 0x224]
add esp, 4
cmp bh, al
jb 0x464525
mov bl, byte [ebp - 0x206]
push dword [ebp - 0x214]
inc bl
mov byte [ebp - 0x206], bl
call fcn.0045b570
add esp, 4
cmp bl, al
jb 0x4644f0
pop esi
mov ecx, dword [ebp - 4]
mov eax, edi
pop edi
xor ecx, ebp
pop ebx
call fcn.004743e6
mov esp, ebp
pop ebp
ret