Function at 0x431580
Capabilities:
Encode data using add xor sub operations
Encode data using xor

Disassembly:
sub esp, 8
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
push ebx
push ebp
push esi
mov esi, dword [esp + 0x1c]
push edi
push eax
push esi
push ecx
call fcn.00430850
mov ecx, eax
mov edx, dword [esi + 4]
shl ecx, 4
add ecx, esi
mov edi, dword [esi + 8]
mov dword [esp + 0x20], eax
mov eax, dword [esi]
mov ebp, dword [ecx]
mov ebx, dword [esi + 0xc]
mov dword [esi], ebp
mov ebp, dword [ecx + 4]
mov dword [esi + 4], ebp
mov ebp, dword [ecx + 8]
mov dword [esi + 8], ebp
mov ebp, dword [ecx + 0xc]
mov dword [esi + 0xc], ebp
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov dword [ecx + 8], edi
mov dword [ecx + 0xc], ebx
lea edx, [esi + 0x10]
sub ecx, 0x10
add esp, 0xc
cmp edx, ecx
jae 0x431736
mov esi, dword [edx]
mov edi, dword [edx + 8]
mov eax, esi
mov ebx, dword [edx + 0xc]
ror eax, 8
xor esi, eax
ror esi, 0x10
xor esi, eax
mov ebp, esi
mov esi, dword [edx + 4]
mov eax, esi
ror eax, 8
xor esi, eax
ror esi, 0x10
xor esi, eax
mov eax, edi
ror eax, 8
xor edi, eax
ror edi, 0x10
xor edi, eax
mov eax, ebx
ror eax, 8
xor ebx, eax
xor esi, edi
ror ebx, 0x10
xor ebx, eax
xor ebp, esi
xor edi, ebx
xor ebx, esi
xor edi, ebp
xor esi, edi
ror edi, 0x10
mov eax, edi
mov edi, ebx
ror edi, 8
and edi, 0xff00ff00
rol ebx, 8
and ebx, 0xff00ff
xor edi, ebx
mov ebx, esi
and bh, 0
shr esi, 8
shl ebx, 8
and esi, 0xff00ff
xor ebx, esi
xor ebx, eax
xor eax, edi
xor ebp, ebx
xor edi, ebx
xor eax, ebp
mov dword [esp + 0x10], edi
mov esi, eax
mov dword [esp + 0x1c], eax
xor esi, ebx
mov ebx, dword [ecx + 8]
mov dword [esp + 0x20], esi
mov esi, dword [ecx]
mov eax, esi
mov dword [esp + 0x24], ebp
ror eax, 8
xor esi, eax
mov ebp, dword [ecx + 0xc]
ror esi, 0x10
xor esi, eax
mov edi, esi
mov esi, dword [ecx + 4]
mov eax, esi
ror eax, 8
xor esi, eax
ror esi, 0x10
xor esi, eax
mov eax, ebx
ror eax, 8
xor ebx, eax
ror ebx, 0x10
xor ebx, eax
mov eax, ebp
ror eax, 8
xor ebp, eax
ror ebp, 0x10
xor ebp, eax
xor esi, ebx
xor ebx, ebp
xor edi, esi
xor ebp, esi
xor ebx, edi
add edx, 0x10
xor esi, ebx
sub ecx, 0x10
ror ebx, 0x10
mov eax, ebx
mov ebx, ebp
ror ebx, 8
and ebx, 0xff00ff00
rol ebp, 8
and ebp, 0xff00ff
xor ebx, ebp
mov ebp, esi
and ebp, 0xffff00ff
shr esi, 8
shl ebp, 8
and esi, 0xff00ff
xor ebp, esi
xor ebp, eax
xor eax, ebx
xor edi, ebp
xor ebx, ebp
xor eax, edi
mov dword [edx - 0x10], edi
mov esi, eax
mov dword [edx - 8], eax
mov eax, dword [esp + 0x24]
xor esi, ebp
mov dword [edx - 0xc], esi
mov dword [edx - 4], ebx
mov dword [ecx + 0x10], eax
mov eax, dword [esp + 0x20]
mov dword [ecx + 0x14], eax
mov eax, dword [esp + 0x1c]
mov dword [ecx + 0x18], eax
mov eax, dword [esp + 0x10]
mov dword [ecx + 0x1c], eax
cmp edx, ecx
jb 0x4315e3
mov esi, dword [edx]
mov edi, dword [edx + 8]
mov eax, esi
ror eax, 8
xor esi, eax
ror esi, 0x10
xor esi, eax
mov ebp, esi
mov esi, dword [edx + 4]
mov eax, esi
mov edx, dword [edx + 0xc]
ror eax, 8
xor esi, eax
ror esi, 0x10
xor esi, eax
mov eax, edi
ror eax, 8
xor edi, eax
ror edi, 0x10
xor edi, eax
mov eax, edx
ror eax, 8
xor edx, eax
xor esi, edi
ror edx, 0x10
xor edx, eax
xor ebp, esi
mov ebx, edx
xor edi, ebx
xor ebx, esi
xor edi, ebp
mov edx, ebx
xor esi, edi
ror edi, 0x10
mov eax, edi
mov edi, esi
ror edx, 8
and edi, 0xffff00ff
and edx, 0xff00ff00
shr esi, 8
rol ebx, 8
shl edi, 8
and esi, 0xff00ff
and ebx, 0xff00ff
xor edi, esi
xor edx, ebx
xor edi, eax
xor eax, edx
xor ebp, edi
xor eax, ebp
mov dword [ecx], ebp
mov esi, eax
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x14]
xor esi, edi
xor edx, edi
mov dword [ecx + 4], esi
pop edi
pop esi
pop ebp
mov dword [ecx + 0xc], edx
pop ebx
add esp, 8
ret