Function at 0x5e1610
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x44
mov ecx, dword [eax]
mov dword [esp + 4], ecx
mov ecx, dword [eax + 4]
mov dword [esp + 8], ecx
mov ecx, dword [eax + 8]
mov dword [esp + 0xc], ecx
mov ecx, dword [eax + 0xc]
mov dword [esp + 0x10], ecx
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x14], ecx
mov ecx, dword [eax + 0x14]
mov edx, dword [esp + 0x48]
mov dword [esp + 0x18], ecx
mov ecx, dword [eax + 0x18]
mov dword [esp + 0x1c], ecx
mov ecx, dword [eax + 0x1c]
mov dword [esp + 0x20], ecx
mov ecx, dword [eax + 0x20]
mov dword [esp + 0x24], ecx
mov ecx, dword [eax + 0x24]
mov dword [esp + 0x28], ecx
mov ecx, dword [eax + 0x28]
mov dword [esp + 0x2c], ecx
mov ecx, dword [eax + 0x2c]
mov dword [esp + 0x30], ecx
mov ecx, dword [eax + 0x30]
push ebx
mov ebx, dword [edx + 0x10]
mov dword [esp + 0x38], ecx
mov ecx, dword [eax + 0x34]
push ebp
mov dword [esp + 0x40], ecx
mov ecx, dword [eax + 0x38]
mov eax, dword [eax + 0x3c]
push esi
mov esi, dword [edx + 0xc]
push edi
mov edi, dword [edx + 0x14]
mov dword [esp + 0x4c], ecx
mov ecx, dword [edx + 8]
mov dword [esp + 0x50], eax
xor edx, edx
jmp 0x5e16a0
movzx ebp, byte [edx + 0x66d610]
mov eax, edi
xor eax, ebx
and eax, esi
xor eax, edi
add eax, dword [esp + ebp*4 + 0x14]
add eax, dword [edx*4 + 0x66d690]
add eax, ecx
mov cl, byte [edx + 0x66d650]
rol eax, cl
movzx ecx, byte [edx + 0x66d611]
mov ebp, ebx
xor ebp, esi
add eax, esi
and ebp, eax
xor ebp, ebx
add ebp, dword [esp + ecx*4 + 0x14]
add ebp, dword [edx*4 + 0x66d694]
mov cl, byte [edx + 0x66d651]
add ebp, edi
rol ebp, cl
movzx ecx, byte [edx + 0x66d612]
mov dword [esp + 0x10], eax
mov edi, dword [esp + 0x10]
add eax, ebp
mov ebp, esi
xor ebp, edi
and ebp, eax
xor ebp, esi
add ebp, dword [esp + ecx*4 + 0x14]
add ebp, dword [edx*4 + 0x66d698]
mov cl, byte [edx + 0x66d652]
add ebp, ebx
rol ebp, cl
mov ecx, esi
mov esi, edi
mov dword [esp + 0x10], eax
mov edi, dword [esp + 0x10]
add eax, ebp
movzx ebp, byte [edx + 0x66d613]
mov ebx, esi
xor ebx, edi
and ebx, eax
xor ebx, esi
add ebx, dword [esp + ebp*4 + 0x14]
add ebx, dword [edx*4 + 0x66d69c]
add ebx, ecx
mov cl, byte [edx + 0x66d653]
rol ebx, cl
mov dword [esp + 0x10], eax
add edx, 4
mov ecx, esi
add eax, ebx
cmp edx, 0x10
mov ebx, dword [esp + 0x10]
mov esi, eax
jb 0x5e16a0
cmp edx, 0x20
jae 0x5e17a4
lea esp, [esp]
movzx ebp, byte [edx + 0x66d610]
mov eax, ebx
xor eax, esi
and eax, edi
xor eax, ebx
add eax, dword [esp + ebp*4 + 0x14]
add eax, dword [edx*4 + 0x66d690]
add eax, ecx
mov cl, byte [edx + 0x66d650]
rol eax, cl
mov ecx, edi
mov edi, ebx
mov ebx, esi
add eax, esi
inc edx
cmp edx, 0x20
mov esi, eax
jb 0x5e1770
cmp edx, 0x30
mov eax, dword [esp + 0x58]
jae 0x5e17fd
mov eax, 0x66d650
sub eax, 0x66d610
mov dword [esp + 0x10], eax
jmp 0x5e17c0
movzx eax, byte [edx + 0x66d610]
mov eax, dword [esp + eax*4 + 0x14]
mov ebp, edi
xor ebp, ebx
xor ebp, esi
add eax, ebp
add eax, dword [edx*4 + 0x66d690]
add eax, ecx
mov ecx, dword [esp + 0x10]
mov cl, byte [ecx + edx + 0x66d610]
rol eax, cl
mov ecx, edi
mov edi, ebx
mov ebx, esi
add eax, esi
inc edx
cmp edx, 0x30
mov esi, eax
jb 0x5e17c0
mov eax, dword [esp + 0x58]
cmp edx, 0x40
jae 0x5e184f
mov eax, 0x66d650
sub eax, 0x66d610
mov dword [esp + 0x10], eax
movzx eax, byte [edx + 0x66d610]
mov eax, dword [esp + eax*4 + 0x14]
mov ebp, edi
not ebp
or ebp, esi
xor ebp, ebx
add eax, ebp
add eax, dword [edx*4 + 0x66d690]
add eax, ecx
mov ecx, dword [esp + 0x10]
mov cl, byte [ecx + edx + 0x66d610]
rol eax, cl
mov ecx, edi
mov edi, ebx
mov ebx, esi
add eax, esi
inc edx
cmp edx, 0x40
mov esi, eax
jb 0x5e1810
mov eax, dword [esp + 0x58]
mov edx, dword [eax + 8]
add edx, ecx
mov ecx, dword [eax + 0xc]
add ecx, esi
mov dword [eax + 0xc], ecx
mov ecx, dword [eax + 0x10]
add ecx, ebx
mov dword [eax + 0x10], ecx
mov ecx, dword [eax + 0x14]
add ecx, edi
pop edi
pop esi
pop ebp
mov dword [eax + 8], edx
mov dword [eax + 0x14], ecx
pop ebx
add esp, 0x44
ret