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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
push esi
push edi
push ebx
sub esp, 0x44
mov edx, dword [0x6480b4]
xor edx, esp
mov dword [esp + 0x3c], edx
mov edx, dword [ebp + 8]
and edx, 0xf
mov ecx, edx
neg ecx
mov eax, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x10]
not ebx
lea esi, [ecx + 0x20]
cmp eax, esi
jge 0x463608
xor esi, esi
jmp 0x4638fe
mov edi, 0xffffffff
vmovdqu xmm0, xmmword [0x61d680]
vmovdqu xmm6, xmmword [0x61d690]
vmovdqu xmm7, xmmword [0x61d6a0]
vmovdqu xmm2, xmmword [0x61d6b0]
vmovd xmm4, edi
vmovups xmm1, xmmword [0x61d250]
vmovups xmmword [esp + 0x10], xmm1
vmovups xmm3, xmmword [0x61d260]
vmovups xmmword [esp + 0x20], xmm3
vmovups xmm5, xmmword [0x61d240]
vmovups xmmword [esp], xmm5
mov dword [esp + 0x30], ecx
lea ecx, [esp]
mov edi, dword [ebp + 8]
mov dword [esp + 0x38], esi
sub edi, edx
mov esi, ecx
sub esi, edx
vmovdqu xmm5, xmmword [edi]
vmovdqu xmm3, xmmword [edi + 0x10]
vpand xmm1, xmm5, xmmword [esi + 0x20]
mov dword [edx + ecx], ebx
lea edx, [eax - 0x20]
mov esi, dword [esp + 0x38]
cmp esi, edx
vpxor xmm5, xmm1, xmmword [ecx]
vpxor xmm1, xmm3, xmmword [esp + 0x10]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x34], edx
jg 0x463798
mov ebx, dword [ebp + 8]
cdq
vmovdqu xmm3, xmmword [esi + ebx]
vmovdqu xmmword [esp + 0x20], xmm3
vmovdqu xmm3, xmmword [esi + ebx + 0x10]
lea esi, [ecx + 0x40]
mov ebx, eax
sub ebx, esi
mov dword [esp + 0x30], esi
sbb edx, 0
jns 0x4636cb
add ebx, 0x3f
adc edx, 0
shrd ebx, edx, 6
lea edx, [eax - 0x40]
cmp esi, edx
jg 0x46376e
mov esi, dword [ebp + 8]
xor edx, edx
vmovdqu xmmword [esp + 0x10], xmm6
vmovdqu xmmword [esp], xmm7
vmovdqu xmm6, xmmword [esp + 0x20]
lea ecx, [esi + ecx + 0x40]
mov edi, dword [esp + 0x30]
vpclmulqdq xmm7, xmm5, xmm0, 0
mov esi, edx
vpclmulqdq xmm5, xmm5, xmm0, 0x11
inc edx
vpxor xmm5, xmm7, xmm5
vpclmulqdq xmm7, xmm1, xmm0, 0
vpclmulqdq xmm1, xmm1, xmm0, 0x11
shl esi, 6
vpxor xmm1, xmm7, xmm1
vpclmulqdq xmm7, xmm6, xmm0, 0
cmp edx, ebx
vpclmulqdq xmm6, xmm6, xmm0, 0x11
vpxor xmm6, xmm7, xmm6
vpclmulqdq xmm7, xmm3, xmm0, 0
vpclmulqdq xmm3, xmm3, xmm0, 0x11
vpxor xmm3, xmm7, xmm3
vpxor xmm5, xmm5, xmmword [ecx + esi]
vpxor xmm1, xmm1, xmmword [ecx + esi + 0x10]
vpxor xmm6, xmm6, xmmword [ecx + esi + 0x20]
vpxor xmm3, xmm3, xmmword [ecx + esi + 0x30]
lea esi, [edi + esi + 0x40]
jb 0x4636f8
vmovdqu xmmword [esp + 0x20], xmm6
vmovdqu xmm7, xmmword [esp]
vmovdqu xmm6, xmmword [esp + 0x10]
vpclmulqdq xmm0, xmm5, xmm6, 0
vpclmulqdq xmm5, xmm5, xmm6, 0x11
vpxor xmm5, xmm0, xmm5
vpclmulqdq xmm0, xmm1, xmm6, 0
vpclmulqdq xmm1, xmm1, xmm6, 0x11
vpxor xmm0, xmm0, xmm1
vpxor xmm5, xmm5, xmmword [esp + 0x20]
vpxor xmm1, xmm0, xmm3
cmp esi, dword [esp + 0x34]
jg 0x4637cf
vpclmulqdq xmm0, xmm5, xmm6, 0
vpclmulqdq xmm5, xmm5, xmm6, 0x11
mov edx, dword [ebp + 8]
vpxor xmm3, xmm0, xmm5
vpclmulqdq xmm0, xmm1, xmm6, 0
vpclmulqdq xmm1, xmm1, xmm6, 0x11
vpxor xmm6, xmm0, xmm1
vpxor xmm5, xmm3, xmmword [esi + edx]
vpxor xmm1, xmm6, xmmword [esi + edx + 0x10]
add esi, 0x20
vpclmulqdq xmm0, xmm5, xmm7, 0
lea edx, [eax - 0x10]
vpclmulqdq xmm3, xmm5, xmm7, 0x11
cmp esi, edx
vpxor xmm5, xmm0, xmm3
vpxor xmm0, xmm5, xmm1
jg 0x463805
mov edx, dword [ebp + 8]
vpclmulqdq xmm1, xmm0, xmm7, 0
vpclmulqdq xmm0, xmm0, xmm7, 0x11
vpxor xmm3, xmm1, xmm0
vpxor xmm0, xmm3, xmmword [esi + edx]
add esi, 0x10
vpand xmm1, xmm0, xmm4
lea edx, [eax - 8]
vpclmulqdq xmm3, xmm1, xmm2, 0
cmp esi, edx
vpsrldq xmm5, xmm0, 8
vpsrlq xmm0, xmm0, 0x20
vpclmulqdq xmm7, xmm0, xmm2, 0x10
vpxor xmm6, xmm3, xmm5
vpxor xmm3, xmm6, xmm7
jg 0x463856
mov edx, dword [ebp + 8]
vpand xmm1, xmm3, xmm4
vpsrlq xmm3, xmm3, 0x20
vpclmulqdq xmm4, xmm1, xmm2, 0
vpclmulqdq xmm2, xmm3, xmm2, 0x10
vmovq xmm0, qword [esi + edx]
vpxor xmm5, xmm4, xmm2
vpxor xmm3, xmm5, xmm0
add esi, 8
vmovd edx, xmm3
vpsrlq xmm0, xmm3, 0x20
vmovd ecx, xmm0
movzx ebx, dl
mov edi, edx
shr edi, 8
mov ebx, dword [ebx*4 + 0x61d280]
xor edi, ebx
and edi, 0xff
shr ebx, 8
xor ebx, dword [edi*4 + 0x61d280]
mov edi, edx
shr edi, 0x10
xor edi, ebx
and edi, 0xff
shr ebx, 8
shr edx, 0x18
xor ebx, dword [edi*4 + 0x61d280]
mov edi, ecx
xor edx, ebx
movzx edx, dl
shr ebx, 8
xor ebx, dword [edx*4 + 0x61d280]
mov edx, ecx
xor edi, ebx
and edi, 0xff
shr ebx, 8
shr edx, 8
xor ebx, dword [edi*4 + 0x61d280]
mov edi, ecx
xor edx, ebx
movzx edx, dl
shr ebx, 8
shr edi, 0x10
shr ecx, 0x18
xor ebx, dword [edx*4 + 0x61d280]
xor edi, ebx
and edi, 0xff
shr ebx, 8
xor ebx, dword [edi*4 + 0x61d280]
xor ecx, ebx
movzx ecx, cl
shr ebx, 8
xor ebx, dword [ecx*4 + 0x61d280]
cmp esi, eax
jge 0x463974
sub eax, esi
mov ecx, eax
shr ecx, 0x1f
add ecx, eax
sar ecx, 1
test ecx, ecx
jbe 0x46398d
mov edx, dword [ebp + 8]
xor edi, edi
mov dword [esp + 0x38], esi
add edx, esi
movzx esi, byte [edx + edi*2]
xor esi, ebx
and esi, 0xff
shr ebx, 8
xor ebx, dword [esi*4 + 0x61d280]
movzx esi, byte [edx + edi*2 + 1]
inc edi
xor esi, ebx
and esi, 0xff
shr ebx, 8
xor ebx, dword [esi*4 + 0x61d280]
cmp edi, ecx
jb 0x46391c
mov esi, dword [esp + 0x38]
lea ecx, [edi + edi + 1]
lea edx, [ecx - 1]
cmp eax, edx
jbe 0x463974
add esi, dword [ebp + 8]
movzx eax, byte [ecx + esi - 1]
xor eax, ebx
movzx eax, al
shr ebx, 8
xor ebx, dword [eax*4 + 0x61d280]
mov ecx, dword [esp + 0x3c]
not ebx
xor ecx, esp
call fcn.0058bb64
mov eax, ebx
add esp, 0x44
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 1
jmp 0x463956