Function at 0x576d6d
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push ebx
push esi
push edi
mov esi, ecx
mov ecx, dword [esi + 0xf78]
mov ebx, dword [esi + 0xaf4]
xor edi, edi
inc edi
push edi
call fcn.0057514d
mov ecx, dword [esi + 0xf78]
push 2
mov dword [ebp - 0x10], eax
call fcn.005751da
dec eax
je 0x576eb2
dec eax
je 0x576e9a
dec eax
je 0x576e82
mov ecx, dword [esi + 0xf78]
push edi
call fcn.0057514d
test eax, eax
je 0x576e1d
push dword [esi + 0xf78]
mov eax, dword [esi + 0xc0]
mov ecx, ebx
mov dword [ebp - 0xc], 2
call fcn.00576909
and dword [ebp - 4], 0
cmp dword [esi + 0xbc], 0
mov ecx, dword [esi + 0xaf4]
jle 0x576e6a
xor ebx, ebx
cmp dword [esi + 0xb8], ebx
jle 0x577070
mov eax, dword [ebp - 4]
lea edx, [eax + ebx]
test edx, edx
je 0x577055
test eax, eax
jne 0x577020
mov eax, dword [ecx - 0x78]
and eax, edi
jmp 0x577058
mov ecx, dword [esi + 0xf78]
push edi
call fcn.0057514d
test eax, eax
je 0x576e3d
mov ecx, esi
mov dword [ebp - 0xc], 4
call fcn.00576a2e
jmp 0x576ddc
and dword [ebp - 0xc], 0
xor ecx, ecx
cmp dword [ebp - 0x10], ecx
je 0x576e6a
cmp dword [esi + 0xc0], ecx
jle 0x576e6a
mov eax, dword [ebx]
mov edx, eax
not edx
xor edx, eax
and edx, edi
xor edx, eax
mov dword [ebx], edx
inc ecx
add ebx, 0x78
cmp ecx, dword [esi + 0xc0]
jl 0x576e50
cmp dword [ebp + 8], 0
mov eax, dword [ebp - 0xc]
jne 0x577087
mov dword [esi + 0x490], eax
jmp 0x5770a9
mov ecx, esi
mov dword [ebp - 0xc], 3
call fcn.00576a2e
cmp eax, 0xffffff9c
jne 0x576e41
jmp 0x5770ab
push dword [esi + 0xf78]
mov eax, dword [esi + 0xc0]
mov ecx, ebx
mov dword [ebp - 0xc], edi
call fcn.00576909
jmp 0x576e41
mov ecx, dword [esi + 0xf78]
push edi
call fcn.0057514d
test eax, eax
je 0x576f73
and dword [ebp - 8], 0
cmp dword [esi + 0xb8], 0
mov dword [ebp - 0xc], 6
jle 0x576e41
mov ecx, dword [esi + 0xf78]
push edi
call fcn.0057514d
test eax, eax
je 0x576f35
and dword [ebp - 4], 0
cmp dword [esi + 0xbc], 0
jle 0x576f5c
mov eax, dword [esi + 0xb8]
imul eax, dword [ebp - 4]
add eax, dword [ebp - 8]
mov ecx, dword [esi + 0xf78]
imul eax, eax, 0x78
push 1
lea edi, [eax + ebx]
call fcn.0057514d
xor eax, dword [edi]
and eax, 1
xor dword [edi], eax
inc dword [ebp - 4]
mov eax, dword [ebp - 4]
cmp eax, dword [esi + 0xbc]
jl 0x576efb
xor edi, edi
inc edi
jmp 0x576f5c
xor ecx, ecx
cmp dword [esi + 0xbc], ecx
jle 0x576f5c
mov eax, dword [esi + 0xb8]
imul eax, ecx
add eax, dword [ebp - 8]
imul eax, eax, 0x78
add eax, ebx
and dword [eax], 0xfffffffe
inc ecx
cmp ecx, dword [esi + 0xbc]
jl 0x576f3f
inc dword [ebp - 8]
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0xb8]
jl 0x576ede
jmp 0x576e41
and dword [ebp - 4], 0
cmp dword [esi + 0xbc], 0
mov dword [ebp - 0xc], 5
jle 0x576e41
mov ecx, dword [esi + 0xf78]
push edi
call fcn.0057514d
test eax, eax
je 0x576fe2
and dword [ebp - 8], 0
cmp dword [esi + 0xb8], 0
jle 0x577009
mov eax, dword [esi + 0xb8]
imul eax, dword [ebp - 4]
add eax, dword [ebp - 8]
mov ecx, dword [esi + 0xf78]
imul eax, eax, 0x78
push 1
lea edi, [eax + ebx]
call fcn.0057514d
xor eax, dword [edi]
and eax, 1
xor dword [edi], eax
inc dword [ebp - 8]
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0xb8]
jl 0x576fa8
xor edi, edi
inc edi
jmp 0x577009
xor ecx, ecx
cmp dword [esi + 0xb8], ecx
jle 0x577009
mov eax, dword [esi + 0xb8]
imul eax, dword [ebp - 4]
add eax, ecx
imul eax, eax, 0x78
add eax, ebx
and dword [eax], 0xfffffffe
inc ecx
cmp ecx, dword [esi + 0xb8]
jl 0x576fec
inc dword [ebp - 4]
mov eax, dword [ebp - 4]
cmp eax, dword [esi + 0xbc]
jl 0x576f8b
jmp 0x576e41
test ebx, ebx
jne 0x577038
mov eax, dword [esi + 0xb8]
imul eax, eax, 0x78
mov edx, ecx
sub edx, eax
mov eax, dword [edx]
jmp 0x576e16
mov edx, dword [esi + 0xb8]
mov eax, dword [ecx - 0x78]
imul edx, edx, 0x78
and eax, edi
mov edi, ecx
sub edi, edx
mov edx, dword [edi]
xor edi, edi
inc edi
and edx, edi
cmp eax, edx
je 0x577058
mov eax, dword [ebp - 0x10]
mov edx, dword [ecx]
and eax, edi
xor eax, edx
mov dword [ecx], eax
add ecx, 0x78
inc ebx
cmp ebx, dword [esi + 0xb8]
jl 0x576dfd
inc dword [ebp - 4]
mov eax, dword [ebp - 4]
cmp eax, dword [esi + 0xbc]
jl 0x576def
jmp 0x576e6a
cmp dword [ebp + 8], 4
jne 0x577095
mov dword [esi + 0x3988], eax
jmp 0x5770a9
cmp dword [ebp + 8], 3
jne 0x5770a3
mov dword [esi + 0x498], eax
jmp 0x5770a9
mov dword [esi + 0x494], eax
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret 4