Function at 0x516250
Capabilities:
Encode data using xor

Disassembly:
sub esp, 8
mov eax, dword [esp + 0xc]
push ebx
push ebp
push esi
mov esi, dword [ecx + 0x228]
push edi
mov dword [esp + 0x1c], esi
mov edx, dword [esi]
xor edx, dword [eax]
mov edi, dword [esi + 0xc]
xor edi, dword [eax + 0xc]
mov ebx, dword [esi + 8]
xor edi, edx
xor ebx, dword [eax + 8]
mov ecx, dword [esi + 4]
mov ebp, ebx
xor ecx, dword [eax + 4]
mov esi, edi
xor ebp, ecx
and esi, ecx
xor esi, edx
mov ecx, edi
or ecx, edx
xor ecx, ebp
xor ebp, edi
xor edi, ebx
or ebx, esi
xor ebx, ebp
not ebp
or ebp, esi
rol ebx, 3
mov eax, ebp
xor eax, edi
or edi, ecx
xor esi, eax
xor ebp, edi
xor ebp, ebx
mov eax, edi
xor eax, esi
rol eax, 0xd
xor ebp, eax
rol ebp, 1
mov edx, ebp
mov dword [esp + 0x14], ebp
xor edx, eax
shl ebp, 7
lea esi, [eax*8]
xor ebp, ebx
mov eax, dword [esp + 0x1c]
xor esi, ebx
mov ebx, dword [esp + 0x14]
xor esi, ecx
rol esi, 7
xor edx, esi
xor ebp, esi
xor ebx, dword [eax + 0x14]
xor esi, dword [eax + 0x1c]
rol edx, 5
xor edx, dword [eax + 0x10]
rol ebp, 0x16
not edx
xor ebp, dword [eax + 0x18]
mov ecx, edx
and edx, ebx
not ebp
xor ebp, edx
or edx, esi
xor ebx, edx
xor esi, ebp
xor edx, ecx
or ecx, ebx
or ebp, edx
xor ebx, esi
and ebp, ecx
xor edx, ebx
mov eax, ebp
and ebx, ebp
and eax, edx
xor ebx, edx
xor eax, ecx
rol ebp, 0xd
rol esi, 3
lea edi, [ebp*8]
xor edi, ebx
mov edx, ebp
xor edx, eax
xor edi, esi
xor edx, esi
mov eax, dword [esp + 0x1c]
rol edx, 1
mov ebx, edx
rol edi, 7
shl ebx, 7
xor ebx, edi
xor ebx, esi
mov esi, edi
xor edi, dword [eax + 0x2c]
xor esi, ebp
xor esi, edx
rol ebx, 0x16
xor ebx, dword [eax + 0x28]
xor edx, dword [eax + 0x24]
rol esi, 5
xor esi, dword [eax + 0x20]
mov ecx, esi
and ecx, ebx
xor ecx, edi
or edi, esi
mov eax, ecx
xor edi, edx
xor eax, edx
xor ebx, eax
mov eax, edi
xor esi, ebx
rol ebx, 0xd
or eax, esi
xor eax, ecx
and ecx, edi
xor esi, ecx
mov dword [esp + 0x14], eax
xor eax, esi
lea ebp, [ebx*8]
not esi
xor eax, edi
xor ebp, esi
rol eax, 3
mov esi, dword [esp + 0x14]
xor ebp, eax
xor esi, eax
rol ebp, 7
xor esi, ebx
rol esi, 1
mov ecx, esi
mov edx, esi
shl ecx, 7
xor edx, ebp
xor ecx, ebp
xor edx, ebx
xor ecx, eax
rol edx, 5
mov eax, dword [esp + 0x1c]
rol ecx, 0x16
xor esi, dword [eax + 0x34]
xor ebp, dword [eax + 0x3c]
xor edx, dword [eax + 0x30]
xor ecx, dword [eax + 0x38]
mov eax, edx
or edx, ebp
xor ebp, esi
and esi, eax
xor eax, ecx
or eax, esi
xor ecx, ebp
and ebp, edx
xor edx, esi
xor ebp, eax
and eax, edx
xor esi, ebp
xor eax, ecx
or esi, edx
xor esi, ecx
mov ebx, esi
or ebx, ebp
xor ebx, ebp
rol ebp, 3
xor ebx, edx
rol ebx, 0xd
mov edx, ebx
xor edx, ebp
xor edx, esi
rol edx, 1
lea edi, [ebx*8]
mov esi, edx
xor edi, ebp
xor edi, eax
shl esi, 7
xor esi, ebp
rol edi, 7
mov ebp, dword [esp + 0x1c]
xor esi, edi
xor ebx, edi
rol esi, 0x16
xor ebx, edx
rol ebx, 5
xor esi, dword [ebp + 0x48]
xor edi, dword [ebp + 0x4c]
xor ebx, dword [ebp + 0x40]
mov eax, dword [ebp + 0x44]
xor eax, edi
not edi
xor edx, eax
xor esi, edi
xor edi, ebx
mov ecx, edi
and ecx, edx
xor edx, edi
xor ebx, edx
xor ecx, esi
and esi, edx
mov eax, ecx
xor esi, ebx
or eax, edx
and ebx, ecx
rol ecx, 0xd
xor edi, ebx
xor eax, ebx
or ebx, edi
xor ebx, esi
and esi, edi
not ebx
lea edx, [ecx*8]
rol ebx, 3
xor edx, ebx
xor edx, edi
mov edi, edx
mov edx, ebx
xor edx, esi
rol edi, 7
xor edx, ecx
xor edx, eax
mov eax, edi
rol edx, 1
xor eax, ecx
xor eax, edx
mov esi, edx
xor edx, dword [ebp + 0x54]
shl esi, 7
xor esi, ebx
rol eax, 5
xor eax, dword [ebp + 0x50]
xor esi, edi
xor edi, dword [ebp + 0x5c]
xor eax, edx
rol esi, 0x16
xor edx, edi
xor esi, dword [ebp + 0x58]
not edi
xor esi, edi
mov ebx, eax
and ebx, edx
xor ebx, esi
or esi, edx
xor edx, edi
and edi, ebx
mov ebp, esi
xor edi, eax
xor ebp, edx
xor ebp, ebx
xor esi, eax
mov ecx, edi
rol ebx, 0xd
and ecx, eax
not esi
xor ecx, ebp
or ebp, edi
rol ecx, 3
xor edi, ecx
lea eax, [ebx*8]
xor ebp, eax
xor edi, ebx
mov eax, dword [esp + 0x1c]
xor ebp, esi
xor ebp, ecx
rol edi, 1
mov dword [esp + 0x10], edi
mov esi, edi
rol ebp, 7
shl esi, 7
mov edi, ebp
xor edi, dword [esp + 0x10]
xor esi, ebp
xor ebp, dword [eax + 0x6c]
xor esi, ecx
xor edi, ebx
rol esi, 0x16
xor esi, dword [eax + 0x68]
mov edx, ebp
mov ebx, dword [esp + 0x10]
not esi
rol edi, 5
mov ecx, edx
xor edi, dword [eax + 0x60]
or ecx, esi
mov eax, dword [eax + 0x64]
and ebp, edi
xor ebp, esi
xor edi, edx
xor eax, ebp
xor ecx, edi
xor ebx, eax
mov esi, ebp
or edi, ebx
mov dword [esp + 0x10], ebx
xor ecx, ebx
xor edx, edi
mov ebx, ebp
xor esi, edx
or ebx, edi
not ebp
xor ebx, ecx
xor esi, ebx
rol ebx, 0xd
mov eax, esi
rol esi, 3
and eax, ecx
mov ecx, esi
xor ecx, dword [esp + 0x10]
xor eax, ebp
lea ebp, [ebx*8]
xor ecx, ebx
xor ebp, esi
rol ecx, 1
xor ebp, eax
mov edi, ecx
rol ebp, 7
mov eax, ecx
xor eax, ebp
shl edi, 7
xor eax, ebx
xor edi, esi
mov ebx, dword [esp + 0x1c]
xor edi, ebp
rol eax, 5
xor eax, dword [ebx + 0x70]
xor ecx, dword [ebx + 0x74]
xor ebp, dword [ebx + 0x7c]
rol edi, 0x16
xor edi, dword [ebx + 0x78]
mov edx, edi
mov dword [esp + 0x14], 3
and edx, ecx
xor edx, ebp
and ebp, ecx
xor edi, edx
xor edx, ecx
mov esi, edi
xor ecx, eax
xor ebp, ecx
or esi, eax
xor esi, edx
xor edx, ebp
and ebp, esi
xor ebp, edi
xor edi, edx
not edi
and edx, esi
xor edx, edi
and edi, esi
xor edi, ecx
xor edi, ebp
rol edx, 0xd
sub ebx, 0xffffff80
mov dword [esp + 0x10], edx
rol ebp, 3
mov dword [esp + 0x1c], ebx
lea ecx, [edx*8]
mov edx, ebp
xor edx, edi
xor ecx, esi
xor edx, dword [esp + 0x10]
xor ecx, ebp
mov esi, dword [ebx + 0xc]
rol edx, 1
mov edi, edx
rol ecx, 7
shl edi, 7
mov eax, ecx
xor eax, edx
xor edi, ecx
xor edx, dword [ebx + 4]
xor edi, ebp
xor eax, dword [esp + 0x10]
xor esi, ecx
rol eax, 5
xor eax, dword [ebx]
xor esi, eax
rol edi, 0x16
xor edi, dword [ebx + 8]
mov ecx, esi
and ecx, edx
mov ebx, edi
xor ebx, edx
xor ecx, eax
mov edx, esi
or edx, eax
xor edx, ebx
xor ebx, esi
xor esi, edi
or edi, ecx
xor edi, ebx
not ebx
or ebx, ecx
rol edi, 3
mov eax, ebx
xor eax, esi
or esi, edx
xor ecx, eax
xor ebx, esi
mov eax, esi
xor ebx, edi
xor eax, ecx
rol eax, 0xd
xor ebx, eax
rol ebx, 1
mov dword [esp + 0x10], ebx
mov esi, dword [esp + 0x10]
lea ebp, [eax*8]
xor ebp, edi
xor ebp, edx
mov edx, ebx
xor edx, eax
shl ebx, 7
mov eax, dword [esp + 0x1c]
xor ebx, edi
rol ebp, 7
xor edx, ebp
xor ebx, ebp
rol edx, 5
xor edx, dword [eax + 0x10]
xor esi, dword [eax + 0x14]
not edx
xor ebp, dword [eax + 0x1c]
mov ecx, edx
rol ebx, 0x16
and edx, esi
xor ebx, dword [eax + 0x18]
not ebx
xor ebx, edx
or edx, ebp
xor ebp, ebx
xor esi, edx
xor edx, ecx
or ecx, esi
xor esi, ebp
or ebx, edx
xor edx, esi
rol ebp, 3
and ebx, ecx
mov dword [esp + 0x10], ebp
and esi, ebx
mov eax, ebx
xor esi, edx
rol ebx, 0xd
and eax, edx
mov edx, ebx
xor eax, ecx
xor edx, eax
mov eax, dword [esp + 0x1c]
xor edx, ebp
lea edi, [ebx*8]
xor edi, esi
rol edx, 1
xor edi, ebp
mov ebp, edx
rol edi, 7
shl ebp, 7
mov esi, edi
xor esi, ebx
xor ebp, edi
xor edi, dword [eax + 0x2c]
xor esi, edx
xor edx, dword [eax + 0x24]
xor ebp, dword [esp + 0x10]
rol esi, 5
xor esi, dword [eax + 0x20]
mov ecx, esi
rol ebp, 0x16
xor ebp, dword [eax + 0x28]
and ecx, ebp
xor ecx, edi
or edi, esi
mov eax, ecx
xor edi, edx
xor eax, edx
xor ebp, eax
mov eax, edi
xor esi, ebp
rol ebp, 0xd
or eax, esi
xor eax, ecx
and ecx, edi
xor esi, ecx
mov dword [esp + 0x10], eax
xor eax, esi
lea ebx, [ebp*8]
not esi
xor eax, edi
xor ebx, esi
rol eax, 3
mov esi, dword [esp + 0x10]
xor ebx, eax
xor esi, eax
rol ebx, 7
xor esi, ebp
rol esi, 1
mov ecx, esi
mov edx, esi
shl ecx, 7
xor edx, ebx
xor ecx, ebx
xor edx, ebp
xor ecx, eax
rol edx, 5
mov eax, dword [esp + 0x1c]
rol ecx, 0x16
xor edx, dword [eax + 0x30]
xor ebx, dword [eax + 0x3c]
xor esi, dword [eax + 0x34]
xor ecx, dword [eax + 0x38]
mov eax, edx
or edx, ebx
xor ebx, esi
and esi, eax
xor eax, ecx
or eax, esi
xor ecx, ebx
and ebx, edx
xor edx, esi
xor ebx, eax
and eax, edx
xor esi, ebx
xor eax, ecx
or esi, edx
xor esi, ecx
mov ebp, esi
or ebp, ebx
xor ebp, ebx
rol ebx, 3
xor ebp, edx
rol ebp, 0xd
mov edx, ebp
xor edx, ebx
xor edx, esi
rol edx, 1
lea edi, [ebp*8]
mov esi, edx
xor edi, ebx
xor edi, eax
shl esi, 7
xor esi, ebx
rol edi, 7
mov ebx, dword [esp + 0x1c]
xor esi, edi
xor ebp, edi
rol esi, 0x16
xor ebp, edx
rol ebp, 5
xor edi, dword [ebx + 0x4c]
xor esi, dword [ebx + 0x48]
xor ebp, dword [ebx + 0x40]
mov eax, dword [ebx + 0x44]
xor eax, edi
not edi
xor edx, eax
xor esi, edi
xor edi, ebp
mov ecx, edi
and ecx, edx
xor edx, edi
xor ebp, edx
xor ecx, esi
and esi, edx
mov eax, ecx
xor esi, ebp
or eax, edx
and ebp, ecx
rol ecx, 0xd
xor edi, ebp
xor eax, ebp
or ebp, edi
xor ebp, esi
and esi, edi
not ebp
lea edx, [ecx*8]
rol ebp, 3
xor edx, ebp
xor edx, edi
mov edi, edx
mov dword [esp + 0x10], edx
mov edx, ebp
rol edi, 7
xor edx, esi
xor edx, ecx
xor edx, eax
mov eax, edi
rol edx, 1
xor eax, ecx
mov esi, edx
xor eax, edx
shl esi, 7
xor esi, ebp
xor esi, edi
xor edx, dword [ebx + 0x54]
xor edi, dword [ebx + 0x5c]
rol esi, 0x16
xor esi, dword [ebx + 0x58]
rol eax, 5
xor eax, dword [ebx + 0x50]
xor eax, edx
xor edx, edi
not edi
mov ebx, eax
xor esi, edi
and ebx, edx
xor ebx, esi
or esi, edx
xor edx, edi
mov ebp, esi
and edi, ebx
xor ebp, edx
xor edi, eax
xor ebp, ebx
xor esi, eax
rol ebx, 0xd
mov ecx, edi
not esi
and ecx, eax
xor ecx, ebp
or ebp, edi
rol ecx, 3
lea eax, [ebx*8]
xor ebp, eax
xor edi, ecx
mov eax, dword [esp + 0x1c]
xor ebp, esi
xor edi, ebx
xor ebp, ecx
rol edi, 1
rol ebp, 7
mov esi, edi
mov dword [esp + 0x10], edi
mov edi, ebp
xor edi, dword [esp + 0x10]
shl esi, 7
xor edi, ebx
mov ebx, dword [esp + 0x10]
xor esi, ebp
xor ebp, dword [eax + 0x6c]
xor esi, ecx
rol esi, 0x16
mov edx, ebp
xor esi, dword [eax + 0x68]
mov ecx, edx
rol edi, 5
not esi
xor edi, dword [eax + 0x60]
or ecx, esi
mov eax, dword [eax + 0x64]
and ebp, edi
xor ebp, esi
xor edi, edx
xor eax, ebp
xor ecx, edi
xor ebx, eax
mov esi, ebp
or edi, ebx
mov dword [esp + 0x10], ebx
xor ecx, ebx
xor edx, edi
mov ebx, ebp
xor esi, edx
or ebx, edi
not ebp
xor ebx, ecx
xor esi, ebx
rol ebx, 0xd
mov eax, esi
rol esi, 3
and eax, ecx
xor eax, ebp
lea ebp, [ebx*8]
xor ebp, esi
xor ebp, eax
rol ebp, 7
mov ecx, esi
xor ecx, dword [esp + 0x10]
xor ecx, ebx
rol ecx, 1
mov edx, ecx
mov eax, ecx
shl edx, 7
xor eax, ebp
xor edx, esi
xor eax, ebx
mov ebx, dword [esp + 0x1c]
xor edx, ebp
rol edx, 0x16
rol eax, 5
xor edx, dword [ebx + 0x78]
xor ecx, dword [ebx + 0x74]
mov edi, edx
xor ebp, dword [ebx + 0x7c]
and edx, ecx
xor eax, dword [ebx + 0x70]
xor edx, ebp
xor edi, edx
and ebp, ecx
xor edx, ecx
mov esi, edi
xor ecx, eax
or esi, eax
xor esi, edx
xor ebp, ecx
xor edx, ebp
and ebp, esi
xor ebp, edi
xor edi, edx
not edi
and edx, esi
xor edx, edi
and edi, esi
xor edi, ecx
mov dword [esp + 0x10], edx
xor edi, ebp
dec dword [esp + 0x14]
jne 0x5165a6
mov edx, dword [ebx + 0x80]
xor esi, dword [ebx + 0x8c]
xor edi, dword [ebx + 0x84]
xor ebp, dword [ebx + 0x88]
mov eax, dword [esp + 0x20]
xor edx, dword [esp + 0x10]
mov dword [esp + 0x1c], esi
test eax, eax
je 0x51695a
mov ecx, dword [eax]
jmp 0x51695c
xor ecx, ecx
xor ecx, edx
mov edx, dword [esp + 0x24]
mov dword [edx], ecx
test eax, eax
je 0x516973
add eax, 4
test eax, eax
je 0x516973
mov ecx, dword [eax]
jmp 0x516975
xor ecx, ecx
xor ecx, edi
mov dword [edx + 4], ecx
test eax, eax
je 0x516989
add eax, 4
test eax, eax
je 0x516989
mov ecx, dword [eax]
jmp 0x51698b
xor ecx, ecx
pop edi
xor ecx, ebp
mov dword [edx + 8], ecx
pop esi
pop ebp
pop ebx
test eax, eax
je 0x5169ae
add eax, 4
test eax, eax
je 0x5169ae
mov eax, dword [eax]
xor eax, dword [esp + 0xc]
mov dword [edx + 0xc], eax
add esp, 8
ret 0xc
xor eax, eax
xor eax, dword [esp + 0xc]
mov dword [edx + 0xc], eax
add esp, 8
ret 0xc