Function at 0x44b9c0
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x78
push ebx
push ebp
push esi
push edi
mov eax, dword [esp + 0x8c]
mov edx, dword [eax]
mov dword [esp + 0x40], edx
mov edx, dword [eax + 4]
mov dword [esp + 0x44], edx
mov edx, dword [eax + 8]
mov dword [esp + 0x38], edx
mov edx, dword [eax + 0xc]
mov dword [esp + 0x3c], edx
mov edx, dword [eax + 0x10]
mov dword [esp + 0x48], edx
mov edx, dword [eax + 0x14]
mov esi, dword [eax + 0x28]
mov dword [esp + 0x4c], edx
mov edx, dword [eax + 0x18]
mov dword [esp + 0x50], esi
mov esi, dword [eax + 0x2c]
mov dword [esp + 0x60], edx
mov edx, dword [eax + 0x1c]
mov dword [esp + 0x54], esi
mov esi, dword [eax + 0x30]
lea ecx, [eax + 0x50]
mov dword [esp + 0x64], edx
mov edx, dword [eax + 0x20]
mov dword [esp + 0x58], esi
mov esi, dword [eax + 0x34]
mov dword [esp + 0x30], edx
mov edx, dword [eax + 0x24]
mov dword [esp + 0x5c], esi
mov esi, dword [eax + 0x38]
mov eax, dword [eax + 0x3c]
mov dword [esp + 0x6c], eax
mov eax, 0x4ce658
sub eax, ecx
mov dword [esp + 0x20], eax
mov eax, 0x10
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x34], edx
mov dword [esp + 0x68], esi
mov dword [esp + 0x10], ecx
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x90]
mov ecx, dword [eax + 4]
mov edi, dword [eax]
add eax, 8
mov esi, ecx
mov dword [esp + 0x90], eax
xor eax, eax
or esi, eax
sar ecx, 0x1f
or ecx, edi
mov ebx, ecx
mov ecx, esi
mov eax, ebx
shrd ecx, eax, 8
shr eax, 8
mov edi, eax
mov eax, esi
mov ebp, ebx
shld ebx, esi, 8
shld ebp, eax, 8
shl eax, 8
xor ecx, eax
xor edi, ebp
shl esi, 8
and ecx, 0xff00ff
xor ecx, esi
and edi, 0xff00ff
xor edi, ebx
mov eax, ecx
mov esi, edi
shrd eax, esi, 0x10
mov ebx, eax
mov eax, ecx
mov ebp, edi
shld ebp, eax, 0x10
shld edi, ecx, 0x10
shr esi, 0x10
shl eax, 0x10
xor ebx, eax
mov eax, dword [esp + 0x10]
xor esi, ebp
shl ecx, 0x10
and ebx, 0xffff
xor ebx, ecx
and esi, 0xffff
xor esi, edi
mov dword [eax], ebx
mov dword [eax + 4], esi
mov eax, dword [esp + 0x30]
mov ecx, eax
mov ebx, edx
shld ebx, ecx, 0x17
mov edi, edx
mov esi, edx
shl ecx, 0x17
sar edi, 0x1f
sar esi, 9
or edi, ebx
or esi, ecx
mov ebx, eax
mov cl, 0x12
xor ebp, ebp
shl ebx, 0xe
call fcn.004aaa40
or ebx, edx
mov edx, dword [esp + 0x34]
or ebp, eax
mov eax, dword [esp + 0x30]
xor edi, ebx
mov ebx, eax
xor esi, ebp
mov cl, 0xe
xor ebp, ebp
shl ebx, 0x12
call fcn.004aaa40
or ebp, eax
mov eax, dword [esp + 0x30]
or ebx, edx
xor esi, ebp
xor edi, ebx
mov edx, eax
mov ecx, dword [esp + 0x34]
mov ebp, dword [esp + 0x58]
not edx
and edx, ebp
mov ebp, dword [esp + 0x5c]
mov ebx, ecx
not ebx
and ebx, ebp
mov ebp, dword [esp + 0x50]
and ebp, eax
mov eax, dword [esp + 0x54]
and eax, ecx
mov ecx, dword [esp + 0x20]
xor ebx, eax
mov eax, dword [esp + 0x10]
xor edx, ebp
mov ebp, dword [eax + 4]
add esi, edx
mov edx, dword [ecx + eax + 4]
adc edi, ebx
mov ebx, dword [ecx + eax]
mov ecx, dword [eax]
add esi, ebx
mov ebx, dword [esp + 0x68]
adc edi, edx
add esi, ecx
adc edi, ebp
mov ebp, dword [esp + 0x40]
add esi, ebx
mov ebx, dword [esp + 0x44]
mov dword [esp + 0x70], esi
adc edi, dword [esp + 0x6c]
mov esi, ebp
mov dword [esp + 0x74], edi
mov eax, ebp
mov edx, ebx
mov cl, 0x1c
xor edi, edi
shl esi, 4
call fcn.004aaa40
or edi, eax
or esi, edx
mov eax, ebx
shld eax, ebp, 0x1e
shl ebp, 0x1e
mov ecx, ebx
sar ecx, 2
or ecx, ebp
mov edx, ebx
sar edx, 0x1f
or edx, eax
mov eax, dword [esp + 0x40]
xor esi, edx
xor edi, ecx
mov ebp, ebx
shld ebp, eax, 0x19
shl eax, 0x19
mov ecx, ebx
sar ecx, 7
or ecx, eax
mov eax, dword [esp + 0x38]
mov edx, ebx
sar edx, 0x1f
or edx, ebp
mov ebp, dword [esp + 0x3c]
xor esi, edx
xor edi, ecx
mov ecx, dword [esp + 0x40]
mov edx, eax
xor edx, ecx
and edx, dword [esp + 0x48]
and eax, ecx
mov ecx, dword [esp + 0x3c]
xor ebp, ebx
and ebp, dword [esp + 0x4c]
and ecx, ebx
xor edx, eax
xor ebp, ecx
add edi, edx
adc esi, ebp
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x68], edx
mov edx, dword [esp + 0x54]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x5c], edx
mov edx, eax
add edx, ecx
mov ecx, dword [esp + 0x74]
mov ebp, ecx
adc ebp, dword [esp + 0x64]
mov dword [esp + 0x30], edx
mov edx, ebp
mov ebp, dword [esp + 0x48]
mov dword [esp + 0x60], ebp
mov ebp, dword [esp + 0x4c]
mov dword [esp + 0x64], ebp
mov ebp, dword [esp + 0x38]
add edi, eax
mov eax, dword [esp + 0x18]
adc esi, ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x48], ebp
mov ebp, dword [esp + 0x3c]
add ecx, 8
mov dword [esp + 0x4c], ebp
mov ebp, dword [esp + 0x40]
dec eax
mov dword [esp + 0x34], edx
mov dword [esp + 0x38], ebp
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], esi
mov dword [esp + 0x10], ecx
mov dword [esp + 0x18], eax
jne 0x44ba60
mov ecx, dword [esp + 0x14]
mov edx, 0xe
mov dword [esp + 0x10], edx
mov eax, dword [esp + 0x1c]
lea esi, [edx + 3]
and esi, 0xf
mov edi, dword [eax + esi*8]
mov esi, dword [eax + esi*8 + 4]
and edx, 0xf
mov dword [esp + 0x78], edi
mov edi, dword [eax + edx*8]
and ecx, 0xf
mov dword [esp + 0x7c], esi
mov esi, dword [eax + edx*8 + 4]
lea eax, [eax + ecx*8]
mov dword [esp + 0x18], eax
mov ebx, edi
mov eax, edi
mov edx, esi
mov cl, 0x13
mov dword [esp + 0x80], edi
xor ebp, ebp
shl ebx, 0xd
call fcn.004aaa40
or ebp, eax
or ebx, edx
mov eax, esi
shld eax, edi, 3
mov ecx, esi
sar ecx, 0x1d
mov edx, esi
sar edx, 0x1f
or edx, eax
mov eax, dword [esp + 0x80]
shl edi, 3
or ecx, edi
xor ebp, ecx
xor ebx, edx
mov edx, esi
mov cl, 6
call fcn.004aaa40
mov esi, dword [esp + 0x78]
mov edi, dword [esp + 0x7c]
xor ebx, edx
xor ebp, eax
mov dword [esp + 0x2c], ebx
mov ebx, esi
mov dword [esp + 0x28], ebp
mov eax, esi
mov edx, edi
mov cl, 8
xor ebp, ebp
shl ebx, 0x18
call fcn.004aaa40
or ebp, eax
mov eax, esi
xor ecx, ecx
shl eax, 0x1f
or ebx, edx
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], ecx
mov eax, esi
mov edx, edi
mov cl, 1
call fcn.004aaa40
mov ecx, dword [esp + 0x20]
or ecx, eax
mov eax, dword [esp + 0x24]
or eax, edx
xor ebp, ecx
xor ebx, eax
mov eax, esi
mov edx, edi
mov cl, 7
call fcn.004aaa40
mov ecx, dword [esp + 0x28]
xor ebp, eax
mov eax, dword [esp + 0x10]
xor ebx, edx
mov edx, dword [esp + 0x2c]
add ecx, ebp
lea esi, [eax - 5]
adc edx, ebx
and esi, 0xf
mov eax, dword [esp + 0x1c]
add ecx, dword [eax + esi*8]
mov ebx, dword [eax + esi*8 + 4]
mov eax, dword [esp + 0x18]
mov edi, dword [eax]
mov esi, dword [eax + 4]
adc edx, ebx
add edi, ecx
adc esi, edx
mov edx, dword [esp + 0x34]
mov dword [eax], edi
mov dword [eax + 4], esi
mov eax, dword [esp + 0x30]
mov ecx, eax
mov ebx, edx
shld ebx, ecx, 0x17
mov edi, edx
mov esi, edx
shl ecx, 0x17
sar edi, 0x1f
sar esi, 9
or edi, ebx
or esi, ecx
mov ebx, eax
mov cl, 0x12
xor ebp, ebp
shl ebx, 0xe
call fcn.004aaa40
or ebx, edx
mov edx, dword [esp + 0x34]
or ebp, eax
mov eax, dword [esp + 0x30]
xor edi, ebx
mov ebx, eax
xor esi, ebp
mov cl, 0xe
xor ebp, ebp
shl ebx, 0x12
call fcn.004aaa40
mov ecx, dword [esp + 0x34]
or ebp, eax
mov eax, dword [esp + 0x30]
or ebx, edx
xor edi, ebx
xor esi, ebp
mov ebp, dword [esp + 0x58]
mov edx, eax
not edx
and edx, ebp
mov ebp, dword [esp + 0x5c]
mov ebx, ecx
not ebx
and ebx, ebp
mov ebp, dword [esp + 0x50]
and ebp, eax
mov eax, dword [esp + 0x54]
and eax, ecx
xor ebx, eax
mov eax, dword [esp + 0x14]
xor edx, ebp
add esi, edx
mov edx, dword [eax*8 + 0x4ce65c]
adc edi, ebx
mov ebx, dword [eax*8 + 0x4ce658]
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
mov ebp, dword [eax + 4]
add esi, ebx
mov ebx, dword [esp + 0x68]
adc edi, edx
add esi, ecx
adc edi, ebp
mov ebp, dword [esp + 0x40]
add esi, ebx
mov dword [esp + 0x70], esi
adc edi, dword [esp + 0x6c]
mov dword [esp + 0x74], edi
mov edi, ebp
xor ebx, ebx
mov esi, dword [esp + 0x44]
mov eax, ebp
mov edx, esi
mov cl, 0x1c
shl edi, 4
call fcn.004aaa40
or edi, edx
or ebx, eax
mov eax, esi
shld eax, ebp, 0x1e
shl ebp, 0x1e
mov ecx, esi
sar ecx, 2
or ecx, ebp
xor ebx, ecx
mov edx, esi
sar edx, 0x1f
or edx, eax
mov eax, dword [esp + 0x40]
xor edi, edx
mov ebp, esi
shld ebp, eax, 0x19
shl eax, 0x19
mov ecx, esi
sar ecx, 7
or ecx, eax
mov eax, dword [esp + 0x40]
xor ebx, ecx
mov ecx, dword [esp + 0x38]
mov edx, esi
sar edx, 0x1f
or edx, ebp
mov ebp, dword [esp + 0x3c]
xor edi, edx
xor ebp, esi
and ebp, dword [esp + 0x4c]
mov edx, ecx
xor edx, eax
and edx, dword [esp + 0x48]
and ecx, eax
mov eax, dword [esp + 0x3c]
xor edx, ecx
mov ecx, dword [esp + 0x58]
and eax, esi
xor ebp, eax
mov eax, dword [esp + 0x50]
add ebx, edx
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x30]
mov dword [esp + 0x50], edx
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x68], ecx
mov ecx, dword [esp + 0x54]
adc edi, ebp
mov ebp, dword [esp + 0x60]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x74]
mov edx, eax
add edx, ebp
mov ebp, ecx
adc ebp, dword [esp + 0x64]
mov dword [esp + 0x2c], ebp
mov ebp, edx
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x48]
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0x38]
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x40]
mov dword [esp + 0x30], ebp
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], esi
mov edx, dword [esp + 0x10]
add ebx, eax
adc edi, ecx
mov ecx, dword [esp + 0x14]
inc ecx
inc edx
cmp ecx, 0x50
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], edi
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], edx
jl 0x44bcd2
mov eax, dword [esp + 0x8c]
mov ecx, dword [eax]
mov edx, dword [eax + 0xc]
add ecx, ebx
mov ebx, dword [eax + 4]
adc ebx, edi
mov edi, dword [eax + 8]
mov dword [eax], ecx
mov ecx, dword [esp + 0x38]
add edi, ecx
mov ecx, dword [eax + 0x10]
adc edx, esi
mov esi, dword [eax + 0x1c]
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0x48]
add ecx, edx
mov edx, dword [esp + 0x60]
mov dword [eax + 0x10], ecx
mov ecx, dword [esp + 0x4c]
mov dword [eax + 4], ebx
mov ebx, dword [eax + 0x14]
adc ebx, ecx
mov ecx, dword [esp + 0x64]
mov dword [eax + 8], edi
mov edi, dword [eax + 0x18]
add edi, edx
mov edx, dword [eax + 0x20]
adc esi, ecx
mov ecx, dword [eax + 0x24]
add edx, ebp
mov ebp, dword [eax + 0x28]
mov dword [eax + 0x20], edx
mov edx, dword [esp + 0x34]
adc ecx, edx
mov edx, dword [esp + 0x54]
mov dword [eax + 0x24], ecx
mov ecx, dword [esp + 0x50]
add ebp, ecx
mov ecx, dword [esp + 0x58]
mov dword [eax + 0x14], ebx
mov ebx, dword [eax + 0x2c]
adc ebx, edx
mov edx, dword [esp + 0x5c]
mov dword [eax + 0x18], edi
mov edi, dword [eax + 0x30]
add edi, ecx
mov ecx, dword [esp + 0x68]
mov dword [eax + 0x1c], esi
mov esi, dword [eax + 0x34]
adc esi, edx
mov edx, dword [eax + 0x38]
add edx, ecx
mov ecx, dword [eax + 0x3c]
mov dword [eax + 0x30], edi
pop edi
mov dword [eax + 0x34], esi
mov dword [eax + 0x38], edx
mov edx, dword [esp + 0x68]
pop esi
mov dword [eax + 0x28], ebp
adc ecx, edx
pop ebp
mov dword [eax + 0x2c], ebx
mov dword [eax + 0x3c], ecx
pop ebx
add esp, 0x78
ret