Function at 0x447149
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push ebx
push esi
mov eax, ecx
push edi
push 0x1d
mov edi, edx
mov dword [ebp - 0x10], eax
push dword [eax]
mov esi, dword [eax + 4]
call fcn.00651f8f
push 0x1d
push esi
mov dword [ebp - 4], eax
call fcn.00651f8f
mov ecx, dword [ebp - 4]
add esp, 0x10
cmp dword [ebp + 8], 0
mov dword [ebp - 8], eax
push 0x3f
pop ebx
je 0x4472b8
lea eax, [edi + 8]
mov dword [ebp - 0xc], 8
mov dword [ebp + 8], eax
mov edi, dword [eax - 8]
mov eax, dword [eax - 4]
xor edi, ecx
xor eax, ecx
push 4
push eax
call fcn.00651f8f
mov esi, eax
mov eax, edi
mov edx, esi
shr eax, 0x12
shr edx, 0x12
mov ecx, esi
and edx, ebx
shr ecx, 0xa
and ecx, ebx
and eax, ebx
push 4
mov edx, dword [edx*4 + 0x6bd748]
xor edx, dword [ecx*4 + 0x6bd548]
mov ecx, esi
shr ecx, 2
and ecx, ebx
shr esi, 0x1a
xor edx, dword [ecx*4 + 0x6bd348]
xor edx, dword [eax*4 + 0x6bd648]
mov eax, edi
mov ecx, dword [ebp - 8]
shr eax, 0xa
and eax, ebx
xor edx, dword [eax*4 + 0x6bd448]
mov eax, edi
shr eax, 2
and eax, ebx
shr edi, 0x1a
xor edx, dword [eax*4 + 0x6bd248]
mov eax, dword [ebp + 8]
xor edx, dword [esi*4 + 0x6bd948]
xor edx, dword [edi*4 + 0x6bd848]
xor ecx, edx
mov edi, dword [eax]
mov eax, dword [eax + 4]
xor edi, ecx
xor eax, ecx
mov dword [ebp - 8], ecx
push eax
call fcn.00651f8f
mov esi, eax
add esp, 0x10
mov edx, esi
mov ecx, esi
shr edx, 0x12
mov eax, edi
and edx, ebx
shr ecx, 0xa
and ecx, ebx
shr eax, 0x12
and eax, ebx
mov edx, dword [edx*4 + 0x6bd748]
xor edx, dword [ecx*4 + 0x6bd548]
mov ecx, esi
shr ecx, 2
and ecx, ebx
shr esi, 0x1a
xor edx, dword [ecx*4 + 0x6bd348]
xor edx, dword [eax*4 + 0x6bd648]
mov eax, edi
mov ecx, dword [ebp - 4]
shr eax, 0xa
and eax, ebx
xor edx, dword [eax*4 + 0x6bd448]
mov eax, edi
shr eax, 2
and eax, ebx
shr edi, 0x1a
xor edx, dword [eax*4 + 0x6bd248]
xor edx, dword [esi*4 + 0x6bd948]
xor edx, dword [edi*4 + 0x6bd848]
mov eax, dword [ebp + 8]
xor ecx, edx
mov dword [ebp - 4], ecx
add eax, 0x10
sub dword [ebp - 0xc], 1
mov dword [ebp + 8], eax
jne 0x447193
jmp 0x4473e5
lea eax, [edi + 0x70]
mov dword [ebp - 0xc], 8
mov dword [ebp + 8], eax
mov edi, dword [eax + 8]
mov eax, dword [eax + 0xc]
xor edi, ecx
xor eax, ecx
push 4
push eax
call fcn.00651f8f
mov esi, eax
mov eax, edi
mov edx, esi
shr eax, 0x12
shr edx, 0x12
mov ecx, esi
and edx, ebx
shr ecx, 0xa
and ecx, ebx
and eax, ebx
push 4
mov edx, dword [edx*4 + 0x6bd748]
xor edx, dword [ecx*4 + 0x6bd548]
mov ecx, esi
shr ecx, 2
and ecx, ebx
shr esi, 0x1a
xor edx, dword [ecx*4 + 0x6bd348]
xor edx, dword [eax*4 + 0x6bd648]
mov eax, edi
mov ecx, dword [ebp - 8]
shr eax, 0xa
and eax, ebx
xor edx, dword [eax*4 + 0x6bd448]
mov eax, edi
shr eax, 2
and eax, ebx
shr edi, 0x1a
xor edx, dword [eax*4 + 0x6bd248]
mov eax, dword [ebp + 8]
xor edx, dword [esi*4 + 0x6bd948]
xor edx, dword [edi*4 + 0x6bd848]
xor ecx, edx
mov edi, dword [eax]
mov eax, dword [eax + 4]
xor edi, ecx
xor eax, ecx
mov dword [ebp - 8], ecx
push eax
call fcn.00651f8f
mov esi, eax
add esp, 0x10
mov edx, esi
mov ecx, esi
shr edx, 0x12
mov eax, edi
and edx, ebx
shr ecx, 0xa
and ecx, ebx
shr eax, 0x12
and eax, ebx
mov edx, dword [edx*4 + 0x6bd748]
xor edx, dword [ecx*4 + 0x6bd548]
mov ecx, esi
shr ecx, 2
and ecx, ebx
shr esi, 0x1a
xor edx, dword [ecx*4 + 0x6bd348]
xor edx, dword [eax*4 + 0x6bd648]
mov eax, edi
mov ecx, dword [ebp - 4]
shr eax, 0xa
and eax, ebx
xor edx, dword [eax*4 + 0x6bd448]
mov eax, edi
shr eax, 2
and eax, ebx
shr edi, 0x1a
xor edx, dword [eax*4 + 0x6bd248]
xor edx, dword [esi*4 + 0x6bd948]
xor edx, dword [edi*4 + 0x6bd848]
mov eax, dword [ebp + 8]
xor ecx, edx
mov dword [ebp - 4], ecx
sub eax, 0x10
sub dword [ebp - 0xc], 1
mov dword [ebp + 8], eax
jne 0x4472c5
mov eax, dword [ebp - 8]
push 3
push eax
call fcn.00651f8f
mov esi, dword [ebp - 0x10]
push 3
mov dword [esi], eax
mov eax, dword [ebp - 4]
push eax
call fcn.00651f8f
add esp, 0x10
mov dword [esi + 4], eax
pop edi
pop esi
pop ebx
leave
ret