Function at 0x100046d0
Capabilities:
Encode data using xor

Disassembly:
mov eax, 8
call fcn.10086e00
push ebx
mov ebx, dword [esp + 0x10]
push ebp
push esi
mov esi, dword [esp + 0x20]
mov ebp, dword [ebx + 8]
mov ecx, dword [ebx]
mov edx, dword [ebx + 0xc]
push edi
mov edi, dword [ebx + 4]
test esi, esi
mov dword [esp + 0x10], ebp
je 0x10004d2f
mov eax, dword [esp + 0x20]
mov dword [esp + 0x14], esi
add eax, 0x10
mov esi, edx
xor esi, ebp
mov ebp, dword [eax - 0x10]
and esi, edi
xor esi, edx
add esi, ebp
mov ebp, dword [esp + 0x10]
add ecx, esi
xor ebp, edi
mov esi, ecx
shr esi, 0x1d
shl ecx, 3
or esi, ecx
mov ecx, dword [eax - 0xc]
and ebp, esi
mov dword [esp + 0x1c], esi
xor ebp, dword [esp + 0x10]
add ebp, ecx
add edx, ebp
mov ebp, edi
mov ecx, edx
xor ebp, esi
shr ecx, 0x19
shl edx, 7
or ecx, edx
mov edx, dword [eax - 8]
and ebp, ecx
xor ebp, edi
add ebp, edx
mov edx, ebp
mov ebp, dword [esp + 0x10]
add ebp, edx
mov edx, ebp
shr edx, 0x15
shl ebp, 0xb
or edx, ebp
mov ebp, ecx
xor ebp, esi
and ebp, edx
xor ebp, esi
mov esi, dword [eax - 4]
add ebp, esi
add edi, ebp
mov ebp, ecx
mov esi, edi
xor ebp, edx
shl esi, 0x13
shr edi, 0xd
or esi, edi
mov edi, dword [eax]
and ebp, esi
xor ebp, ecx
add ebp, edi
mov edi, ebp
mov ebp, dword [esp + 0x1c]
add ebp, edi
mov edi, ebp
shr edi, 0x1d
shl ebp, 3
or edi, ebp
mov ebp, edx
xor ebp, esi
mov dword [esp + 0x1c], edi
and ebp, edi
mov edi, dword [eax + 4]
xor ebp, edx
add ebp, edi
add ecx, ebp
mov ebp, dword [esp + 0x1c]
mov edi, ecx
shr edi, 0x19
shl ecx, 7
or edi, ecx
mov ecx, esi
xor ecx, ebp
mov ebp, dword [eax + 8]
and ecx, edi
xor ecx, esi
add ecx, ebp
add edx, ecx
mov ebp, edi
mov ecx, edx
shr ecx, 0x15
shl edx, 0xb
or ecx, edx
mov edx, dword [esp + 0x1c]
xor ebp, edx
and ebp, ecx
xor ebp, edx
mov edx, dword [eax + 0xc]
add ebp, edx
add esi, ebp
mov ebp, edi
mov edx, esi
xor ebp, ecx
shl edx, 0x13
shr esi, 0xd
or edx, esi
mov esi, dword [eax + 0x10]
and ebp, edx
xor ebp, edi
add ebp, esi
mov esi, ebp
mov ebp, dword [esp + 0x1c]
add ebp, esi
mov esi, ebp
shr esi, 0x1d
shl ebp, 3
or esi, ebp
mov ebp, ecx
xor ebp, edx
mov dword [esp + 0x1c], esi
and ebp, esi
mov esi, dword [eax + 0x14]
xor ebp, ecx
add ebp, esi
add edi, ebp
mov ebp, dword [esp + 0x1c]
mov esi, edi
shr esi, 0x19
shl edi, 7
or esi, edi
mov edi, edx
xor edi, ebp
mov ebp, dword [eax + 0x18]
and edi, esi
xor edi, edx
add edi, ebp
mov ebp, esi
add ecx, edi
mov edi, ecx
shr edi, 0x15
shl ecx, 0xb
or edi, ecx
mov ecx, dword [esp + 0x1c]
xor ebp, ecx
and ebp, edi
xor ebp, ecx
mov ecx, dword [eax + 0x1c]
add ebp, ecx
add edx, ebp
mov ebp, esi
mov ecx, edx
xor ebp, edi
shl ecx, 0x13
shr edx, 0xd
or ecx, edx
mov edx, dword [eax + 0x20]
and ebp, ecx
xor ebp, esi
add ebp, edx
mov edx, ebp
mov ebp, dword [esp + 0x1c]
add ebp, edx
mov edx, ebp
shr edx, 0x1d
shl ebp, 3
or edx, ebp
mov ebp, edi
mov dword [esp + 0x1c], edx
xor ebp, ecx
and ebp, edx
mov edx, dword [eax + 0x24]
xor ebp, edi
add ebp, edx
mov edx, ecx
add esi, ebp
mov ebp, esi
shr ebp, 0x19
shl esi, 7
or ebp, esi
mov esi, dword [esp + 0x1c]
xor edx, esi
mov esi, dword [eax + 0x28]
and edx, ebp
xor edx, ecx
add edx, esi
mov esi, dword [esp + 0x1c]
add edi, edx
mov edx, edi
shr edx, 0x15
shl edi, 0xb
or edx, edi
mov edi, ebp
xor edi, esi
and edi, edx
xor edi, esi
mov esi, dword [eax + 0x2c]
add edi, esi
add ecx, edi
mov edi, edx
mov esi, ecx
shl esi, 0x13
shr ecx, 0xd
or esi, ecx
mov ecx, edx
or ecx, esi
and edi, esi
and ecx, ebp
or ecx, edi
mov edi, dword [eax - 0x10]
add ecx, edi
mov edi, dword [esp + 0x1c]
lea ecx, [edi + ecx + 0x5a827999]
mov edi, ecx
shr edi, 0x1d
shl ecx, 3
or edi, ecx
mov ecx, esi
or ecx, edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x24], ecx
mov ecx, esi
and ecx, edi
mov edi, dword [esp + 0x24]
and edi, edx
or edi, ecx
add edi, dword [eax]
lea ebp, [edi + ebp + 0x5a827999]
mov edi, ebp
shr edi, 0x1b
shl ebp, 5
or edi, ebp
mov ebp, dword [esp + 0x24]
and ebp, edi
or ebp, ecx
mov ecx, dword [eax + 0x10]
add ebp, ecx
lea edx, [edx + ebp + 0x5a827999]
mov ebp, dword [esp + 0x1c]
mov ecx, edx
shr ecx, 0x17
shl edx, 9
or ecx, edx
mov edx, ecx
or edx, ebp
mov ebp, ecx
and edx, edi
and ebp, dword [esp + 0x1c]
or edx, ebp
mov ebp, dword [eax + 0x20]
add edx, ebp
mov ebp, ecx
lea esi, [esi + edx + 0x5a827999]
mov edx, esi
shr edx, 0x13
shl esi, 0xd
or edx, esi
mov esi, ecx
or esi, edx
and ebp, edx
and esi, edi
or esi, ebp
mov ebp, dword [eax - 0xc]
add esi, ebp
mov ebp, dword [esp + 0x1c]
lea esi, [esi + ebp + 0x5a827999]
mov ebp, esi
shr ebp, 0x1d
shl esi, 3
or ebp, esi
mov esi, edx
or esi, ebp
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x24], esi
mov esi, edx
and esi, ebp
mov ebp, dword [esp + 0x24]
and ebp, ecx
or ebp, esi
add ebp, dword [eax + 4]
lea edi, [edi + ebp + 0x5a827999]
mov ebp, edi
shr ebp, 0x1b
shl edi, 5
or ebp, edi
mov edi, dword [esp + 0x24]
and edi, ebp
or edi, esi
mov esi, dword [eax + 0x14]
add edi, esi
lea edi, [ecx + edi + 0x5a827999]
mov ecx, edi
shr ecx, 0x17
shl edi, 9
or ecx, edi
mov edi, dword [esp + 0x1c]
mov esi, ecx
or esi, edi
mov edi, ecx
and edi, dword [esp + 0x1c]
and esi, ebp
or esi, edi
mov edi, dword [eax + 0x24]
add esi, edi
mov edi, ecx
lea edx, [edx + esi + 0x5a827999]
mov esi, edx
shr esi, 0x13
shl edx, 0xd
or esi, edx
mov edx, ecx
or edx, esi
and edi, esi
and edx, ebp
or edx, edi
mov edi, dword [eax - 8]
add edx, edi
mov edi, dword [esp + 0x1c]
lea edx, [edi + edx + 0x5a827999]
mov edi, edx
shr edi, 0x1d
shl edx, 3
or edi, edx
mov edx, esi
or edx, edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x24], edx
mov edx, esi
and edx, edi
mov edi, dword [esp + 0x24]
and edi, ecx
or edi, edx
add edi, dword [eax + 8]
lea ebp, [edi + ebp + 0x5a827999]
mov edi, ebp
shr edi, 0x1b
shl ebp, 5
or edi, ebp
mov ebp, dword [esp + 0x24]
and ebp, edi
mov dword [esp + 0x20], edi
or ebp, edx
mov edx, dword [eax + 0x18]
add ebp, edx
lea ebp, [ecx + ebp + 0x5a827999]
mov ecx, ebp
shr ecx, 0x17
shl ebp, 9
or ecx, ebp
mov ebp, dword [esp + 0x1c]
mov edx, ecx
or edx, ebp
mov ebp, ecx
and ebp, dword [esp + 0x1c]
and edx, edi
or edx, ebp
mov ebp, dword [eax + 0x28]
add edx, ebp
lea esi, [esi + edx + 0x5a827999]
mov edx, esi
shr edx, 0x13
shl esi, 0xd
or edx, esi
mov esi, ecx
or esi, edx
mov ebp, edx
and esi, edi
mov edi, ecx
and edi, edx
or esi, edi
mov edi, dword [eax - 4]
add esi, edi
mov edi, dword [esp + 0x1c]
lea edi, [edi + esi + 0x5a827999]
mov esi, edi
shr esi, 0x1d
shl edi, 3
or esi, edi
mov edi, edx
or edi, esi
and ebp, esi
mov dword [esp + 0x24], edi
and edi, ecx
mov dword [esp + 0x1c], ebp
or edi, ebp
mov ebp, dword [eax + 0xc]
add edi, ebp
mov ebp, dword [esp + 0x20]
lea edi, [edi + ebp + 0x5a827999]
mov ebp, edi
shr ebp, 0x1b
shl edi, 5
or ebp, edi
mov edi, dword [esp + 0x24]
mov dword [esp + 0x20], ebp
and edi, ebp
mov ebp, dword [esp + 0x1c]
or edi, ebp
mov ebp, dword [eax + 0x1c]
add edi, ebp
mov ebp, dword [esp + 0x20]
lea ecx, [ecx + edi + 0x5a827999]
mov edi, ecx
shr edi, 0x17
shl ecx, 9
or edi, ecx
mov ecx, edi
or ecx, esi
and ecx, ebp
mov ebp, edi
and ebp, esi
or ecx, ebp
mov ebp, dword [eax + 0x2c]
add ecx, ebp
mov ebp, dword [esp + 0x20]
lea edx, [edx + ecx + 0x5a827999]
mov ecx, edx
shr ecx, 0x13
shl edx, 0xd
or ecx, edx
mov edx, ebp
xor edx, edi
xor edx, ecx
add edx, dword [eax - 0x10]
lea esi, [esi + edx + 0x6ed9eba1]
mov edx, esi
shr edx, 0x1d
shl esi, 3
or edx, esi
mov esi, edi
xor esi, ecx
xor esi, edx
add esi, dword [eax + 0x10]
lea esi, [esi + ebp + 0x6ed9eba1]
mov ebp, esi
shr ebp, 0x17
shl esi, 9
or ebp, esi
mov esi, ebp
xor esi, ecx
xor esi, edx
add esi, dword [eax]
lea esi, [edi + esi + 0x6ed9eba1]
mov edi, esi
shr edi, 0x15
shl esi, 0xb
or edi, esi
mov esi, ebp
xor esi, edi
mov dword [esp + 0x1c], esi
xor esi, edx
add esi, dword [eax + 0x20]
lea ecx, [ecx + esi + 0x6ed9eba1]
mov esi, ecx
shr esi, 0x11
shl ecx, 0xf
or esi, ecx
mov ecx, dword [esp + 0x1c]
xor ecx, esi
add ecx, dword [eax - 8]
lea edx, [edx + ecx + 0x6ed9eba1]
mov ecx, edx
shr ecx, 0x1d
shl edx, 3
or ecx, edx
mov edx, edi
xor edx, esi
xor edx, ecx
add edx, dword [eax + 0x18]
lea edx, [edx + ebp + 0x6ed9eba1]
mov ebp, edx
shr ebp, 0x17
shl edx, 9
or ebp, edx
mov edx, ebp
xor edx, esi
xor edx, ecx
add edx, dword [eax + 8]
lea edx, [edi + edx + 0x6ed9eba1]
mov edi, edx
shr edi, 0x15
shl edx, 0xb
or edi, edx
mov edx, ebp
xor edx, edi
mov dword [esp + 0x1c], edx
xor edx, ecx
add edx, dword [eax + 0x28]
lea esi, [esi + edx + 0x6ed9eba1]
mov edx, esi
shr edx, 0x11
shl esi, 0xf
or edx, esi
mov esi, dword [esp + 0x1c]
xor esi, edx
add esi, dword [eax - 0xc]
lea esi, [ecx + esi + 0x6ed9eba1]
mov ecx, esi
shr ecx, 0x1d
shl esi, 3
or ecx, esi
mov esi, edi
xor esi, edx
xor esi, ecx
add esi, dword [eax + 0x14]
lea ebp, [esi + ebp + 0x6ed9eba1]
mov esi, ebp
shr esi, 0x17
shl ebp, 9
or esi, ebp
mov ebp, esi
xor ebp, edx
xor ebp, ecx
add ebp, dword [eax + 4]
lea edi, [edi + ebp + 0x6ed9eba1]
mov ebp, edi
shl edi, 0xb
shr ebp, 0x15
or ebp, edi
mov edi, esi
xor edi, ebp
mov dword [esp + 0x1c], edi
xor edi, ecx
add edi, dword [eax + 0x24]
lea edi, [edx + edi + 0x6ed9eba1]
mov edx, edi
shr edx, 0x11
shl edi, 0xf
or edx, edi
mov edi, dword [esp + 0x1c]
xor edi, edx
add edi, dword [eax - 4]
lea edi, [ecx + edi + 0x6ed9eba1]
mov ecx, edi
shr ecx, 0x1d
shl edi, 3
or ecx, edi
mov edi, ebp
xor edi, edx
xor edi, ecx
add edi, dword [eax + 0x1c]
lea edi, [esi + edi + 0x6ed9eba1]
mov esi, edi
shr esi, 0x17
shl edi, 9
or esi, edi
mov edi, esi
xor edi, edx
xor edi, ecx
add edi, dword [eax + 0xc]
lea edi, [edi + ebp + 0x6ed9eba1]
mov ebp, edi
shr ebp, 0x15
shl edi, 0xb
or ebp, edi
mov edi, esi
xor edi, ebp
xor edi, ecx
add edi, dword [eax + 0x2c]
lea edx, [edx + edi + 0x6ed9eba1]
mov edi, dword [ebx]
add edi, ecx
mov dword [ebx], edi
mov ecx, edi
mov edi, edx
shr edi, 0x11
shl edx, 0xf
or edi, edx
mov edx, dword [ebx + 4]
add edx, edi
mov dword [ebx + 4], edx
mov edi, edx
mov edx, dword [ebx + 8]
add eax, 0x40
add edx, ebp
mov dword [ebx + 8], edx
mov ebp, edx
mov edx, dword [ebx + 0xc]
mov dword [esp + 0x10], ebp
add edx, esi
mov esi, dword [esp + 0x14]
dec esi
mov dword [ebx + 0xc], edx
mov dword [esp + 0x14], esi
jne 0x10004708
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret