Function at 0x1004d360
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x254
call fcn.1002f700
mov ecx, dword [esp + 0x25c]
push ebx
mov ebx, dword [esp + 0x25c]
mov eax, dword [ebx]
mov dword [esp + 0x18], eax
mov eax, dword [ebx + 4]
mov dword [esp + 0x1c], eax
mov eax, dword [ebx + 8]
mov dword [esp + 0x14], eax
mov eax, dword [ebx + 0xc]
push ebp
push esi
mov esi, dword [ebx + 0x10]
push edi
mov dword [esp + 0x30], eax
mov eax, dword [ebx + 0x14]
mov dword [esp + 0x14], eax
mov eax, dword [ebx + 0x18]
lea edi, [esp + 0x54]
sub edi, ecx
mov dword [esp + 0x10], edi
mov dword [esp + 0x18], eax
mov eax, dword [ebx + 0x1c]
lea edi, [esp + 0x58]
xor edx, edx
sub edi, ecx
mov dword [esp + 0x2c], eax
lea eax, [ecx + 8]
mov dword [esp + 0x1c], edi
jmp 0x1004d3d0
mov ecx, dword [eax - 8]
mov edi, ecx
and edi, 0xff0000
mov ebp, ecx
shr ebp, 0x10
or edi, ebp
shr edi, 8
mov ebp, ecx
shl ebp, 0x10
and ecx, 0xff00
or ebp, ecx
mov ecx, dword [eax - 4]
shl ebp, 8
or edi, ebp
mov dword [esp + edx*4 + 0x54], edi
mov edi, ecx
and edi, 0xff0000
mov ebp, ecx
shr ebp, 0x10
or edi, ebp
mov ebp, ecx
shl ebp, 0x10
shr edi, 8
and ecx, 0xff00
or ebp, ecx
mov ecx, dword [eax]
shl ebp, 8
or edi, ebp
mov dword [esp + edx*4 + 0x58], edi
mov edi, ecx
and edi, 0xff0000
mov ebp, ecx
shr ebp, 0x10
or edi, ebp
mov ebp, ecx
shl ebp, 0x10
and ecx, 0xff00
or ebp, ecx
mov ecx, dword [esp + 0x10]
shl ebp, 8
shr edi, 8
or edi, ebp
mov dword [ecx + eax], edi
mov ecx, dword [eax + 4]
mov edi, ecx
mov ebp, ecx
shr ebp, 0x10
and edi, 0xff0000
or edi, ebp
mov ebp, ecx
shl ebp, 0x10
and ecx, 0xff00
or ebp, ecx
mov ecx, dword [esp + 0x1c]
shr edi, 8
shl ebp, 8
or edi, ebp
mov dword [ecx + eax], edi
add edx, 4
add eax, 0x10
cmp edx, 0x10
jl 0x1004d3d0
lea eax, [esp + 0x70]
mov dword [esp + 0x10], 0xd
lea esp, [esp]
mov edi, dword [eax + 0x18]
rol edi, 0xf
mov ebp, dword [eax - 0x1c]
mov ecx, dword [eax]
mov edx, edi
xor edx, ebp
xor edx, ecx
mov ecx, edx
rol ecx, 0xf
ror edx, 9
xor ecx, edx
mov edx, dword [eax - 0x10]
rol edx, 7
xor ecx, edx
xor ecx, edi
xor ecx, dword [eax + 0xc]
mov edx, dword [eax + 0x1c]
mov edi, dword [eax - 0x18]
xor ecx, ebp
xor ecx, dword [eax]
mov ebp, dword [eax + 4]
rol edx, 0xf
mov dword [esp + 0x1c], edx
xor edx, ebp
xor edx, edi
mov edi, dword [eax - 0xc]
rol edi, 7
mov ebp, edx
rol ebp, 0xf
xor edi, ebp
mov ebp, dword [eax + 8]
ror edx, 9
xor edi, edx
xor edi, dword [eax + 0x10]
mov edx, dword [eax + 0x20]
xor edi, dword [esp + 0x1c]
mov dword [eax + 0x24], ecx
xor edi, dword [eax + 4]
add eax, 0x10
xor edi, dword [eax - 0x28]
rol edx, 0xf
mov dword [eax + 0x18], edi
mov edi, dword [eax - 0x24]
mov dword [esp + 0x1c], edx
xor edx, ebp
xor edx, edi
mov edi, dword [eax - 0x18]
rol edi, 7
mov ebp, edx
rol ebp, 0xf
xor edi, ebp
ror edx, 9
xor edi, edx
xor edi, dword [eax + 4]
mov edx, dword [eax - 4]
xor edi, dword [esp + 0x1c]
xor edi, dword [eax - 8]
xor edi, dword [eax - 0x24]
rol ecx, 0xf
mov dword [esp + 0x1c], ecx
mov dword [eax + 0x1c], edi
mov edi, dword [eax - 0x20]
xor edx, edi
xor edx, ecx
mov ecx, dword [eax - 0x14]
rol ecx, 7
mov ebp, edx
rol ebp, 0xf
xor ecx, ebp
ror edx, 9
xor ecx, edx
xor ecx, dword [eax + 8]
xor ecx, dword [eax - 4]
xor ecx, edi
xor ecx, dword [esp + 0x1c]
sub dword [esp + 0x10], 1
mov dword [eax + 0x20], ecx
jne 0x1004d4a0
xor eax, eax
lea ecx, [ecx]
mov edx, dword [esp + eax + 0x64]
xor edx, dword [esp + eax + 0x54]
mov ecx, dword [esp + eax + 0x68]
xor ecx, dword [esp + eax + 0x58]
mov dword [esp + eax + 0x164], edx
mov edx, dword [esp + eax + 0x6c]
xor edx, dword [esp + eax + 0x5c]
mov dword [esp + eax + 0x168], ecx
mov ecx, dword [esp + eax + 0x70]
xor ecx, dword [esp + eax + 0x60]
mov dword [esp + eax + 0x16c], edx
mov dword [esp + eax + 0x170], ecx
add eax, 0x10
cmp eax, 0x100
jl 0x1004d580
mov ebp, dword [esp + 0x28]
mov dword [esp + 0x10], 0
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
and ecx, 0x1f
rol edi, 0xc
mov edx, 0x79cc4519
rol edx, cl
mov ecx, dword [esp + 0x10]
xor eax, ebp
xor eax, dword [esp + 0x24]
add edx, edi
add edx, esi
rol edx, 7
xor edi, edx
add eax, edi
add eax, dword [esp + ecx*4 + 0x164]
mov ecx, dword [esp + 0x18]
xor ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
add eax, dword [esp + 0x30]
xor ecx, esi
add ecx, dword [esp + edi*4 + 0x54]
inc edi
add ecx, edx
add ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x20]
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x14]
rol ebp, 9
ror edx, 0xd
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], esi
mov edx, ecx
ror edx, 0xf
mov esi, ecx
rol esi, 9
xor edx, esi
xor edx, ecx
cmp edi, 0x10
mov dword [esp + 0x20], ebp
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x24], eax
mov esi, edx
mov dword [esp + 0x10], edi
jl 0x1004d5d2
mov dword [esp + 0x28], ebp
mov dword [esp + 0x10], 0x10
jmp 0x1004d680
mov ecx, dword [esp + 0x10]
and ecx, 0x1f
mov edx, eax
rol edx, 0xc
mov edi, 0x7a879d8a
rol edi, cl
mov ecx, eax
and eax, dword [esp + 0x28]
or ecx, ebp
and ecx, dword [esp + 0x20]
mov ebp, dword [esp + 0x10]
or ecx, eax
add ecx, dword [esp + ebp*4 + 0x164]
add edi, edx
add ecx, dword [esp + 0x30]
add edi, esi
rol edi, 7
xor edx, edi
add edx, ecx
mov ecx, esi
not ecx
and ecx, dword [esp + 0x18]
mov eax, edx
mov edx, dword [esp + 0x14]
and edx, esi
or ecx, edx
add ecx, dword [esp + ebp*4 + 0x54]
mov edx, dword [esp + 0x20]
add ecx, edi
add ecx, dword [esp + 0x2c]
mov edi, dword [esp + 0x28]
mov ebp, dword [esp + 0x24]
rol edi, 9
mov dword [esp + 0x20], edi
mov edi, dword [esp + 0x18]
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x14]
ror edi, 0xd
mov dword [esp + 0x14], esi
mov esi, ecx
mov dword [esp + 0x18], edi
ror esi, 0xf
mov edi, ecx
rol edi, 9
xor esi, edi
xor esi, ecx
mov ecx, dword [esp + 0x10]
inc ecx
cmp ecx, 0x40
mov dword [esp + 0x30], edx
mov dword [esp + 0x28], ebp
mov dword [esp + 0x24], eax
mov dword [esp + 0x10], ecx
jl 0x1004d680
mov ecx, dword [ebx]
xor ecx, eax
mov eax, dword [ebx + 4]
xor eax, ebp
mov dword [ebx + 4], eax
mov eax, dword [ebx + 8]
xor eax, dword [esp + 0x20]
pop edi
mov dword [ebx + 8], eax
mov eax, dword [ebx + 0xc]
xor eax, edx
mov dword [ebx + 0xc], eax
mov eax, dword [ebx + 0x10]
xor eax, esi
mov dword [ebx + 0x10], eax
mov eax, dword [ebx + 0x14]
xor eax, dword [esp + 0x10]
pop esi
mov dword [ebx + 0x14], eax
mov eax, dword [ebx + 0x18]
xor eax, dword [esp + 0x10]
pop ebp
mov dword [ebx + 0x18], eax
mov eax, dword [ebx + 0x1c]
xor eax, dword [esp + 0x20]
mov dword [ebx], ecx
mov dword [ebx + 0x1c], eax
pop ebx
add esp, 0x254
ret