Function at 0x4317e2
Capabilities:
Encrypt data using aes
Hash data with crc32

Disassembly:
push ecx
push ecx
push ebx
push ebp
push esi
push edi
mov edi, ecx
test edi, edi
mov esi, eax
je 0x431d32
test esi, esi
je 0x431d32
mov eax, dword [esp + 0x1c]
mov ecx, 0x80
cmp eax, ecx
je 0x431823
cmp eax, 0xc0
je 0x43181f
cmp eax, 0x100
je 0x43181f
push 0xfffffffffffffffe
pop eax
jmp 0x431d35
cmp eax, ecx
jne 0x43182f
mov dword [esi + 0xf0], 0xa
jmp 0x431843
xor ecx, ecx
cmp eax, 0xc0
setne cl
lea ecx, [ecx + ecx + 0xc]
mov dword [esi + 0xf0], ecx
push 8
push dword [edi]
call fcn.0049fbb5
push 8
push dword [edi]
mov dword [esp + 0x24], eax
mov ebp, 0xff00ff00
and dword [esp + 0x24], ebp
call fcn.0049fbc3
mov ebx, 0xff00ff
and eax, ebx
or eax, dword [esp + 0x24]
push 8
mov dword [esi], eax
push dword [edi + 4]
call fcn.0049fbb5
mov dword [esp + 0x28], eax
and dword [esp + 0x28], ebp
push 8
push dword [edi + 4]
lea eax, [esi + 4]
mov dword [esp + 0x34], eax
call fcn.0049fbc3
mov ecx, dword [esp + 0x34]
and eax, ebx
or eax, dword [esp + 0x30]
push 8
mov dword [ecx], eax
push dword [edi + 8]
call fcn.0049fbb5
push 8
push dword [edi + 8]
mov dword [esp + 0x40], eax
and dword [esp + 0x40], ebp
call fcn.0049fbc3
and eax, ebx
or eax, dword [esp + 0x40]
push 8
mov dword [esi + 8], eax
push dword [edi + 0xc]
call fcn.0049fbb5
push 8
push dword [edi + 0xc]
mov dword [esp + 0x50], eax
and dword [esp + 0x50], ebp
call fcn.0049fbc3
and eax, ebx
or eax, dword [esp + 0x50]
add esp, 0x40
cmp dword [esp + 0x1c], 0x80
mov dword [esi + 0xc], eax
jne 0x4319f8
mov ebx, eax
shr eax, 0x10
movzx edi, bh
mov edi, dword [edi*4 + 0x4e1cb8]
mov ecx, 0xff
and eax, ecx
mov eax, dword [eax*4 + 0x4e18b8]
xor eax, 0x1000000
shr ebx, 0x18
mov edx, 0xff000000
and eax, edx
mov ebp, 0xff0000
and edi, ebp
xor eax, edi
movzx edi, byte [ebx*4 + 0x4e14b8]
xor eax, edi
mov edi, dword [esi + 0xc]
and edi, ecx
mov ebx, dword [edi*4 + 0x4e10b8]
mov edi, 0xff00
and ebx, edi
xor eax, ebx
xor eax, dword [esi]
mov ebx, dword [esp + 0x14]
mov ebx, dword [ebx]
xor ebx, eax
mov dword [esi + 0x10], eax
mov eax, dword [esi + 8]
xor eax, ebx
mov dword [esi + 0x18], eax
xor eax, dword [esi + 0xc]
mov dword [esi + 0x14], ebx
mov dword [esi + 0x1c], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x14], 0x4e31bc
mov ebx, dword [eax + 0x18]
movzx esi, bh
mov esi, dword [esi*4 + 0x4e1cb8]
mov dword [esp + 0x10], ebx
shr ebx, 0x10
add eax, 0x10
and ebx, ecx
mov ebx, dword [ebx*4 + 0x4e18b8]
and ebx, edx
and esi, ebp
xor esi, ebx
mov ebx, dword [esp + 0x10]
shr ebx, 0x18
movzx ebx, byte [ebx*4 + 0x4e14b8]
xor esi, ebx
mov ebx, dword [esp + 0x10]
and ebx, ecx
mov ebx, dword [ebx*4 + 0x4e10b8]
and ebx, edi
xor esi, ebx
xor esi, dword [eax - 4]
mov ebx, dword [esp + 0x14]
xor esi, dword [ebx]
add dword [esp + 0x14], 4
mov dword [eax + 0xc], esi
mov ebx, dword [eax]
xor ebx, esi
mov dword [eax + 0x10], ebx
mov esi, dword [eax + 4]
xor esi, ebx
mov dword [eax + 0x14], esi
mov ebx, dword [eax + 8]
xor ebx, esi
cmp dword [esp + 0x14], 0x4e31e0
mov dword [eax + 0x18], ebx
jne 0x431977
xor eax, eax
jmp 0x431d35
push 8
push dword [edi + 0x10]
call fcn.0049fbb5
push 8
push dword [edi + 0x10]
mov dword [esp + 0x20], eax
and dword [esp + 0x20], ebp
call fcn.0049fbc3
and eax, ebx
or eax, dword [esp + 0x20]
push 8
mov dword [esi + 0x10], eax
push dword [edi + 0x14]
call fcn.0049fbb5
push 8
push dword [edi + 0x14]
mov dword [esp + 0x30], eax
and dword [esp + 0x30], ebp
call fcn.0049fbc3
and eax, ebx
or eax, dword [esp + 0x30]
add esp, 0x20
cmp dword [esp + 0x1c], 0xc0
mov dword [esi + 0x14], eax
jne 0x431b6b
mov ebx, eax
shr eax, 0x10
movzx edi, bh
mov edi, dword [edi*4 + 0x4e1cb8]
mov ecx, 0xff
and eax, ecx
mov eax, dword [eax*4 + 0x4e18b8]
xor eax, 0x1000000
mov dword [esp + 0x10], ebx
shr ebx, 0x18
mov edx, 0xff000000
and eax, edx
mov ebp, 0xff0000
and edi, ebp
xor eax, edi
movzx edi, byte [ebx*4 + 0x4e14b8]
xor eax, edi
mov edi, dword [esp + 0x10]
and edi, ecx
mov ebx, dword [edi*4 + 0x4e10b8]
mov edi, 0xff00
and ebx, edi
xor eax, ebx
xor eax, dword [esi]
mov ebx, dword [esp + 0x14]
mov ebx, dword [ebx]
xor ebx, eax
mov dword [esi + 0x18], eax
mov eax, dword [esi + 8]
xor eax, ebx
mov dword [esi + 0x1c], ebx
mov ebx, dword [esi + 0xc]
xor ebx, eax
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], ebx
lea eax, [esi + 0x28]
mov dword [esp + 0x14], 0x4e31bc
mov esi, dword [eax - 0x18]
xor esi, dword [eax - 4]
mov ebx, dword [eax - 0x14]
xor ebx, esi
mov dword [eax + 4], ebx
mov dword [eax], esi
mov ebx, dword [eax + 4]
movzx esi, bh
mov esi, dword [esi*4 + 0x4e1cb8]
mov dword [esp + 0x10], ebx
shr ebx, 0x10
add eax, 0x18
and ebx, ecx
mov ebx, dword [ebx*4 + 0x4e18b8]
and ebx, edx
and esi, ebp
xor esi, ebx
mov ebx, dword [esp + 0x10]
shr ebx, 0x18
movzx ebx, byte [ebx*4 + 0x4e14b8]
xor esi, ebx
mov ebx, dword [esp + 0x10]
and ebx, ecx
mov ebx, dword [ebx*4 + 0x4e10b8]
and ebx, edi
xor esi, ebx
xor esi, dword [eax - 0x28]
mov ebx, dword [esp + 0x14]
xor esi, dword [ebx]
add dword [esp + 0x14], 4
mov dword [eax - 0x10], esi
mov ebx, dword [eax - 0x24]
xor ebx, esi
mov dword [eax - 0xc], ebx
mov esi, dword [eax - 0x20]
xor esi, ebx
mov dword [eax - 8], esi
mov ebx, dword [eax - 0x1c]
xor ebx, esi
cmp dword [esp + 0x14], 0x4e31d8
mov dword [eax - 4], ebx
jne 0x431ad7
jmp 0x4319f1
push 8
push dword [edi + 0x18]
call fcn.0049fbb5
push 8
push dword [edi + 0x18]
mov dword [esp + 0x20], eax
and dword [esp + 0x20], ebp
call fcn.0049fbc3
and eax, ebx
or eax, dword [esp + 0x20]
push 8
mov dword [esi + 0x18], eax
push dword [edi + 0x1c]
call fcn.0049fbb5
push 8
push dword [edi + 0x1c]
mov dword [esp + 0x30], eax
and dword [esp + 0x30], ebp
call fcn.0049fbc3
and eax, ebx
or eax, dword [esp + 0x30]
add esp, 0x20
cmp dword [esp + 0x1c], 0x100
mov dword [esi + 0x1c], eax
jne 0x4319f1
mov ebx, eax
shr eax, 0x10
movzx edi, bh
mov edi, dword [edi*4 + 0x4e1cb8]
mov ecx, 0xff
and eax, ecx
mov eax, dword [eax*4 + 0x4e18b8]
xor eax, 0x1000000
mov dword [esp + 0x10], ebx
shr ebx, 0x18
mov edx, 0xff000000
and eax, edx
mov ebp, 0xff0000
and edi, ebp
xor eax, edi
movzx edi, byte [ebx*4 + 0x4e14b8]
xor eax, edi
mov edi, dword [esp + 0x10]
and edi, ecx
mov ebx, dword [edi*4 + 0x4e10b8]
mov edi, 0xff00
and ebx, edi
xor eax, ebx
xor eax, dword [esi]
mov ebx, dword [esp + 0x14]
mov ebx, dword [ebx]
xor ebx, eax
mov dword [esi + 0x20], eax
mov eax, dword [esi + 8]
xor eax, ebx
mov dword [esi + 0x24], ebx
mov ebx, dword [esi + 0xc]
xor ebx, eax
mov dword [esi + 0x28], eax
mov dword [esi + 0x2c], ebx
lea eax, [esi + 0x30]
mov dword [esp + 0x14], 0x4e31bc
mov esi, dword [eax - 4]
mov dword [esp + 0x10], esi
movzx ebx, byte [esp + 0x11]
mov ebx, dword [ebx*4 + 0x4e10b8]
and ebx, edi
shr esi, 0x10
and esi, ecx
mov esi, dword [esi*4 + 0x4e1cb8]
and esi, ebp
xor esi, ebx
mov ebx, dword [esp + 0x10]
shr ebx, 0x18
mov ebx, dword [ebx*4 + 0x4e18b8]
and ebx, edx
xor esi, ebx
mov ebx, dword [esp + 0x10]
and ebx, ecx
movzx ebx, byte [ebx*4 + 0x4e14b8]
xor esi, ebx
xor esi, dword [eax - 0x20]
mov ebx, dword [eax - 0x1c]
xor ebx, esi
mov dword [eax + 4], ebx
mov dword [eax], esi
mov esi, dword [eax - 0x18]
xor esi, ebx
mov ebx, dword [eax - 0x14]
xor ebx, esi
mov dword [eax + 0xc], ebx
mov dword [eax + 8], esi
mov ebx, dword [eax + 0xc]
movzx esi, bh
mov esi, dword [esi*4 + 0x4e1cb8]
mov dword [esp + 0x10], ebx
shr ebx, 0x10
add eax, 0x20
and ebx, ecx
mov ebx, dword [ebx*4 + 0x4e18b8]
and ebx, edx
and esi, ebp
xor esi, ebx
mov ebx, dword [esp + 0x10]
shr ebx, 0x18
movzx ebx, byte [ebx*4 + 0x4e14b8]
xor esi, ebx
mov ebx, dword [esp + 0x10]
and ebx, ecx
mov ebx, dword [ebx*4 + 0x4e10b8]
and ebx, edi
xor esi, ebx
xor esi, dword [eax - 0x30]
mov ebx, dword [esp + 0x14]
xor esi, dword [ebx]
add dword [esp + 0x14], 4
mov dword [eax - 0x10], esi
mov ebx, dword [eax - 0x2c]
xor ebx, esi
mov dword [eax - 0xc], ebx
mov esi, dword [eax - 0x28]
xor esi, ebx
mov dword [eax - 8], esi
mov ebx, dword [eax - 0x24]
xor ebx, esi
cmp dword [esp + 0x14], 0x4e31d4
mov dword [eax - 4], ebx
jne 0x431c4a
jmp 0x4319f1
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
pop ecx
pop ecx
ret