Function at 0x403970
Capabilities:
Encode data using xor

Disassembly:
mov dword [esp + 0x14], edi
xor eax, dword [edi]
xor ebx, dword [edi + 4]
xor ecx, dword [edi + 8]
xor edx, dword [edi + 0xc]
mov esi, dword [edi + 0xf0]
lea esi, [esi + esi - 2]
lea esi, [edi + esi*8]
mov dword [esp + 0x18], esi
mov edi, dword [ebp - 0x80]
mov esi, dword [ebp - 0x60]
mov edi, dword [ebp - 0x40]
mov esi, dword [ebp - 0x20]
mov edi, dword [ebp]
mov esi, dword [ebp + 0x20]
mov edi, dword [ebp + 0x40]
mov esi, dword [ebp + 0x60]
nop
lea esi, [esi]
mov esi, eax
and esi, 0xff
movzx esi, byte [ebp + esi - 0x80]
movzx edi, dh
movzx edi, byte [ebp + edi - 0x80]
shl edi, 8
xor esi, edi
mov edi, ecx
shr edi, 0x10
and edi, 0xff
movzx edi, byte [ebp + edi - 0x80]
shl edi, 0x10
xor esi, edi
mov edi, ebx
shr edi, 0x18
movzx edi, byte [ebp + edi - 0x80]
shl edi, 0x18
xor esi, edi
mov dword [esp + 4], esi
mov esi, ebx
and esi, 0xff
movzx esi, byte [ebp + esi - 0x80]
movzx edi, ah
movzx edi, byte [ebp + edi - 0x80]
shl edi, 8
xor esi, edi
mov edi, edx
shr edi, 0x10
and edi, 0xff
movzx edi, byte [ebp + edi - 0x80]
shl edi, 0x10
xor esi, edi
mov edi, ecx
shr edi, 0x18
movzx edi, byte [ebp + edi - 0x80]
shl edi, 0x18
xor esi, edi
mov dword [esp + 8], esi
mov esi, ecx
and esi, 0xff
movzx esi, byte [ebp + esi - 0x80]
movzx edi, bh
movzx edi, byte [ebp + edi - 0x80]
shl edi, 8
xor esi, edi
mov edi, eax
shr edi, 0x10
and edi, 0xff
movzx edi, byte [ebp + edi - 0x80]
shl edi, 0x10
xor esi, edi
mov edi, edx
shr edi, 0x18
movzx edi, byte [ebp + edi - 0x80]
shl edi, 0x18
xor esi, edi
and edx, 0xff
movzx edx, byte [ebp + edx - 0x80]
movzx ecx, ch
movzx ecx, byte [ebp + ecx - 0x80]
shl ecx, 8
xor edx, ecx
mov ecx, esi
shr ebx, 0x10
and ebx, 0xff
movzx ebx, byte [ebp + ebx - 0x80]
shl ebx, 0x10
xor edx, ebx
shr eax, 0x18
movzx eax, byte [ebp + eax - 0x80]
shl eax, 0x18
xor edx, eax
mov esi, ecx
and esi, 0x80808080
mov edi, esi
shr edi, 7
lea eax, [ecx + ecx]
sub esi, edi
and eax, 0xfefefefe
and esi, 0x1b1b1b1b
xor esi, eax
mov eax, esi
and esi, 0x80808080
mov edi, esi
shr edi, 7
lea ebx, [eax + eax]
sub esi, edi
and ebx, 0xfefefefe
and esi, 0x1b1b1b1b
xor eax, ecx
xor esi, ebx
mov ebx, esi
and esi, 0x80808080
mov edi, esi
shr edi, 7
lea ebp, [ebx + ebx]
sub esi, edi
and ebp, 0xfefefefe
and esi, 0x1b1b1b1b
xor ebx, ecx
rol ecx, 8
xor ebp, esi
xor ecx, eax
xor eax, ebp
rol eax, 0x18
xor ecx, ebx
xor ebx, ebp
rol ebx, 0x10
xor ecx, ebp
rol ebp, 8
xor ecx, eax
xor ecx, ebx
mov eax, dword [esp + 4]
xor ecx, ebp
mov dword [esp + 0xc], ecx
mov esi, edx
and esi, 0x80808080
mov edi, esi
shr edi, 7
lea ebx, [edx + edx]
sub esi, edi
and ebx, 0xfefefefe
and esi, 0x1b1b1b1b
xor esi, ebx
mov ebx, esi
and esi, 0x80808080
mov edi, esi
shr edi, 7
lea ecx, [ebx + ebx]
sub esi, edi
and ecx, 0xfefefefe
and esi, 0x1b1b1b1b
xor ebx, edx
xor esi, ecx
mov ecx, esi
and esi, 0x80808080
mov edi, esi
shr edi, 7
lea ebp, [ecx + ecx]
sub esi, edi
and ebp, 0xfefefefe
and esi, 0x1b1b1b1b
xor ecx, edx
rol edx, 8
xor ebp, esi
xor edx, ebx
xor ebx, ebp
rol ebx, 0x18
xor edx, ecx
xor ecx, ebp
rol ecx, 0x10
xor edx, ebp
rol ebp, 8
xor edx, ebx
xor edx, ecx
mov ebx, dword [esp + 8]
xor edx, ebp
mov dword [esp + 0x10], edx
mov esi, eax
and esi, 0x80808080
mov edi, esi
shr edi, 7
lea ecx, [eax + eax]
sub esi, edi
and ecx, 0xfefefefe
and esi, 0x1b1b1b1b
xor esi, ecx
mov ecx, esi
and esi, 0x80808080
mov edi, esi
shr edi, 7
lea edx, [ecx + ecx]
sub esi, edi
and edx, 0xfefefefe
and esi, 0x1b1b1b1b
xor ecx, eax
xor esi, edx
mov edx, esi
and esi, 0x80808080
mov edi, esi
shr edi, 7
lea ebp, [edx + edx]
sub esi, edi
and ebp, 0xfefefefe
and esi, 0x1b1b1b1b
xor edx, eax
rol eax, 8
xor ebp, esi
xor eax, ecx
xor ecx, ebp
rol ecx, 0x18
xor eax, edx
xor edx, ebp
rol edx, 0x10
xor eax, ebp
rol ebp, 8
xor eax, ecx
xor eax, edx
xor eax, ebp
mov esi, ebx
and esi, 0x80808080
mov edi, esi
shr edi, 7
lea ecx, [ebx + ebx]
sub esi, edi
and ecx, 0xfefefefe
and esi, 0x1b1b1b1b
xor esi, ecx
mov ecx, esi
and esi, 0x80808080
mov edi, esi
shr edi, 7
lea edx, [ecx + ecx]
sub esi, edi
and edx, 0xfefefefe
and esi, 0x1b1b1b1b
xor ecx, ebx
xor esi, edx
mov edx, esi
and esi, 0x80808080
mov edi, esi
shr edi, 7
lea ebp, [edx + edx]
sub esi, edi
and ebp, 0xfefefefe
and esi, 0x1b1b1b1b
xor edx, ebx
rol ebx, 8
xor ebp, esi
xor ebx, ecx
xor ecx, ebp
rol ecx, 0x18
xor ebx, edx
xor edx, ebp
rol edx, 0x10
xor ebx, ebp
rol ebp, 8
xor ebx, ecx
xor ebx, edx
mov ecx, dword [esp + 0xc]
xor ebx, ebp
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
mov ebp, dword [esp + 0x1c]
add edi, 0x10
xor eax, dword [edi]
xor ebx, dword [edi + 4]
xor ecx, dword [edi + 8]
xor edx, dword [edi + 0xc]
cmp edi, dword [esp + 0x18]
mov dword [esp + 0x14], edi
jb 0x4039b0
mov esi, eax
and esi, 0xff
movzx esi, byte [ebp + esi - 0x80]
movzx edi, dh
movzx edi, byte [ebp + edi - 0x80]
shl edi, 8
xor esi, edi
mov edi, ecx
shr edi, 0x10
and edi, 0xff
movzx edi, byte [ebp + edi - 0x80]
shl edi, 0x10
xor esi, edi
mov edi, ebx
shr edi, 0x18
movzx edi, byte [ebp + edi - 0x80]
shl edi, 0x18
xor esi, edi
mov dword [esp + 4], esi
mov esi, ebx
and esi, 0xff
movzx esi, byte [ebp + esi - 0x80]
movzx edi, ah
movzx edi, byte [ebp + edi - 0x80]
shl edi, 8
xor esi, edi
mov edi, edx
shr edi, 0x10
and edi, 0xff
movzx edi, byte [ebp + edi - 0x80]
shl edi, 0x10
xor esi, edi
mov edi, ecx
shr edi, 0x18
movzx edi, byte [ebp + edi - 0x80]
shl edi, 0x18
xor esi, edi
mov dword [esp + 8], esi
mov esi, ecx
and esi, 0xff
movzx esi, byte [ebp + esi - 0x80]
movzx edi, bh
movzx edi, byte [ebp + edi - 0x80]
shl edi, 8
xor esi, edi
mov edi, eax
shr edi, 0x10
and edi, 0xff
movzx edi, byte [ebp + edi - 0x80]
shl edi, 0x10
xor esi, edi
mov edi, edx
shr edi, 0x18
movzx edi, byte [ebp + edi - 0x80]
shl edi, 0x18
xor esi, edi
mov edi, dword [esp + 0x14]
and edx, 0xff
movzx edx, byte [ebp + edx - 0x80]
movzx ecx, ch
movzx ecx, byte [ebp + ecx - 0x80]
shl ecx, 8
xor edx, ecx
mov ecx, esi
shr ebx, 0x10
and ebx, 0xff
movzx ebx, byte [ebp + ebx - 0x80]
shl ebx, 0x10
xor edx, ebx
mov ebx, dword [esp + 8]
shr eax, 0x18
movzx eax, byte [ebp + eax - 0x80]
shl eax, 0x18
xor edx, eax
mov eax, dword [esp + 4]
xor eax, dword [edi + 0x10]
xor ebx, dword [edi + 0x14]
xor ecx, dword [edi + 0x18]
xor edx, dword [edi + 0x1c]
ret