Function at 0xa675e0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0xb8
lea edi, [esp + 0x38]
mov dword [esp + 0xc], edi
mov ebp, edi
lea esi, [esi]
lea edi, [edi]
movzx esi, byte [edx]
add ebp, 0x10
add eax, 0x20
movzx ebx, byte [eax - 0x20]
add edx, 0x10
movzx ecx, byte [edx - 0xf]
sub ebx, esi
movzx esi, byte [eax - 0x1f]
sub esi, ecx
mov ecx, ebx
sub ecx, esi
add ebx, esi
movzx esi, byte [eax - 0x1d]
shl ecx, 0x10
lea edi, [ecx + ebx]
movzx ebx, byte [edx - 0xe]
movzx ecx, byte [eax - 0x1e]
mov dword [esp], edi
movzx edi, byte [edx - 0xb]
sub ecx, ebx
movzx ebx, byte [edx - 0xd]
sub esi, ebx
mov ebx, ecx
sub ebx, esi
add ecx, esi
shl ebx, 0x10
lea esi, [ebx + ecx]
movzx ecx, byte [eax - 0x1c]
mov dword [esp + 4], esi
movzx esi, byte [edx - 0xc]
sub ecx, esi
movzx esi, byte [eax - 0x1b]
mov ebx, ecx
sub esi, edi
movzx edi, byte [edx - 9]
sub ebx, esi
add ecx, esi
movzx esi, byte [edx - 0xa]
shl ebx, 0x10
add ebx, ecx
movzx ecx, byte [eax - 0x1a]
mov dword [esp + 8], ebx
sub ecx, esi
movzx esi, byte [eax - 0x19]
mov ebx, ecx
sub esi, edi
mov edi, dword [esp + 4]
sub ebx, esi
add ecx, esi
shl ebx, 0x10
add ebx, ecx
mov ecx, dword [esp]
mov esi, ecx
sub ecx, edi
add esi, edi
mov edi, dword [esp + 8]
mov dword [esp], ecx
lea ecx, [edi + ebx]
sub edi, ebx
mov ebx, edi
mov edi, ecx
add edi, esi
sub esi, ecx
mov dword [ebp - 0x10], edi
mov edi, dword [esp]
mov dword [ebp - 8], esi
mov ecx, edi
lea esi, [edi + ebx]
sub ecx, ebx
mov dword [ebp - 0xc], esi
lea edi, [esp + 0xb8]
mov dword [ebp - 4], ecx
cmp edi, ebp
jne 0xa67600
xor eax, eax
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x10]
mov esi, dword [eax]
mov ebx, dword [eax + 0x30]
mov ebp, dword [eax + 0x70]
lea edx, [esi + ecx]
sub esi, ecx
mov ecx, dword [eax + 0x20]
lea edi, [ecx + ebx]
sub ecx, ebx
lea ebx, [edx + edi]
sub edx, edi
mov dword [esp + 0xc], edx
lea edi, [esi + ecx]
mov edx, dword [eax + 0x50]
sub esi, ecx
mov ecx, dword [eax + 0x40]
mov dword [esp + 4], edi
mov dword [esp + 0x14], esi
lea edi, [ecx + edx]
sub ecx, edx
mov edx, dword [eax + 0x60]
lea esi, [edx + ebp]
sub edx, ebp
lea ebp, [edi + esi]
sub edi, esi
lea esi, [ecx + edx]
sub ecx, edx
mov dword [esp + 0x18], ecx
lea ecx, [ebx + ebp]
sub ebx, ebp
mov dword [esp + 0x20], ebx
shr ebx, 0xf
and ebx, 0x10001
mov ebp, ebx
shl ebp, 0x10
sub ebp, ebx
mov dword [esp], ebp
mov ebp, dword [esp + 4]
mov dword [esp + 0x1c], ecx
shr ecx, 0xf
mov edx, ecx
and edx, 0x10001
mov ebx, ebp
mov ecx, edx
add ebx, esi
mov dword [esp + 0x24], ebx
shr ebx, 0xf
and ebx, 0x10001
shl ecx, 0x10
sub ecx, edx
mov edx, ebx
shl edx, 0x10
sub edx, ebx
mov ebx, ebp
sub ebx, esi
mov ebp, ebx
shr ebp, 0xf
mov dword [esp + 4], edx
mov edx, ebp
and edx, 0x10001
mov esi, edx
shl esi, 0x10
sub esi, edx
mov dword [esp + 8], esi
mov esi, dword [esp + 0xc]
mov dword [esp + 0x28], ebx
mov edx, esi
add edx, edi
mov dword [esp + 0x2c], edx
shr edx, 0xf
mov ebx, edx
mov edx, esi
and ebx, 0x10001
mov ebp, ebx
shl ebp, 0x10
sub ebp, ebx
sub edx, edi
mov ebx, edx
shr ebx, 0xf
and ebx, 0x10001
mov dword [esp + 0xc], ebp
mov ebp, dword [esp + 0x14]
mov edi, ebx
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x18]
shl edi, 0x10
sub edi, ebx
mov dword [esp + 0x10], edi
mov edi, ebp
add edi, edx
mov esi, edi
shr esi, 0xf
and esi, 0x10001
mov ebx, esi
shl ebx, 0x10
sub ebx, esi
mov esi, ebp
sub esi, edx
mov ebp, esi
shr ebp, 0xf
mov edx, ebp
and edx, 0x10001
mov ebp, edx
shl ebp, 0x10
sub ebp, edx
mov edx, dword [esp + 0x1c]
add edx, ecx
xor ecx, edx
mov edx, dword [esp + 0x20]
add edx, dword [esp]
xor edx, dword [esp]
add edx, ecx
mov ecx, dword [esp + 0x24]
add ecx, dword [esp + 4]
xor ecx, dword [esp + 4]
add edx, ecx
mov ecx, dword [esp + 0x28]
add ecx, dword [esp + 8]
xor ecx, dword [esp + 8]
add ecx, edx
mov edx, dword [esp + 0x2c]
add edx, dword [esp + 0xc]
xor edx, dword [esp + 0xc]
add ecx, edx
mov edx, dword [esp + 0x30]
add edx, dword [esp + 0x10]
xor edx, dword [esp + 0x10]
add edx, ecx
lea ecx, [edi + ebx]
xor ebx, ecx
add esi, ebp
lea ecx, [edx + ebx]
xor ebp, esi
add ebp, ecx
add eax, 4
movzx edx, bp
shr ebp, 0x10
add ebp, edx
lea edi, [esp + 0x48]
add dword [esp + 0x34], ebp
cmp edi, eax
jne 0xa676e1
mov eax, dword [esp + 0x34]
add esp, 0xb8
pop ebx
pop esi
pop edi
pop ebp
ret