Function at 0x4e6f60
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x818
mov eax, dword [0x88bba0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
mov ecx, 0x100
push ebx
mov ebx, dword [ebp + 0x10]
push esi
mov esi, dword [ebp + 0xc]
push edi
push eax
lea eax, [ebp - 0x404]
mov dword [ebp - 0x818], ebx
lea edi, [ebp - 0x404]
rep movsd dword es:[edi], dword [esi]
push eax
call fcn.004e8970
lea eax, [ebp - 0x804]
mov ecx, 0x100
lea esi, [ebp - 0x404]
lea edi, [ebp - 0x804]
push ebx
rep movsd dword es:[edi], dword [esi]
push eax
call fcn.004e8970
lea edi, [ebp - 0x38c]
mov dword [ebp - 0x814], 8
add esp, 0x10
mov dword [ebp - 0x808], edi
jmp 0x4e6fe0
mov eax, dword [edi - 0x78]
mul dword [edi - 0x58]
mov ebx, dword [edi - 0x54]
shld edx, eax, 1
add eax, eax
add eax, dword [edi - 0x78]
adc edx, dword [edi - 0x74]
add eax, dword [edi - 0x58]
mov dword [edi - 0x78], eax
adc edx, ebx
mov dword [edi - 0x74], edx
mov edi, eax
mov eax, dword [ebp - 0x808]
mov esi, dword [eax - 0x74]
mov edx, dword [eax - 0x18]
mov ecx, dword [eax - 0x14]
xor edx, edi
xor eax, eax
xor ecx, esi
or eax, edx
mov edx, dword [ebp - 0x808]
mov dword [edx - 0x18], ecx
mov ecx, dword [edx - 0x38]
mov dword [edx - 0x14], eax
mov eax, ecx
mul dword [edx - 0x18]
shld edx, eax, 1
add eax, eax
add eax, ecx
mov ecx, dword [ebp - 0x808]
adc edx, dword [ecx - 0x34]
add eax, dword [ecx - 0x18]
mov dword [ecx - 0x38], eax
adc edx, dword [ecx - 0x14]
mov dword [ecx - 0x34], edx
mov edx, dword [ecx - 0x58]
xor ebx, dword [ecx - 0x34]
xor edx, eax
mov ecx, edx
xor eax, eax
shrd edx, ebx, 0x18
shl ecx, 8
or eax, edx
shr ebx, 0x18
mov edx, dword [ebp - 0x808]
or ecx, ebx
mov dword [edx - 0x54], ecx
mov ecx, edx
mov dword [edx - 0x58], eax
mov eax, edi
mul dword [ecx - 0x58]
mov ebx, dword [ecx - 0x54]
shld edx, eax, 1
add eax, eax
add eax, edi
adc edx, esi
mov esi, dword [ecx - 0x58]
add eax, esi
mov dword [ecx - 0x78], eax
adc edx, ebx
mov dword [ecx - 0x74], edx
mov ecx, eax
mov edx, dword [ebp - 0x808]
mov edi, dword [edx - 0x18]
mov eax, dword [edx - 0x74]
xor edi, ecx
mov ecx, edx
mov edx, dword [ecx - 0x14]
mov ecx, edi
xor edx, eax
shl ecx, 0x10
shrd edi, edx, 0x10
xor eax, eax
shr edx, 0x10
or eax, edi
or ecx, edx
mov edi, eax
mov edx, dword [ebp - 0x808]
mov dword [edx - 0x14], ecx
mov ecx, dword [edx - 0x38]
mov dword [edx - 0x18], eax
mov eax, ecx
mul edi
shld edx, eax, 1
add eax, eax
add eax, ecx
mov ecx, dword [ebp - 0x808]
adc edx, dword [ecx - 0x34]
add eax, edi
mov dword [ecx - 0x38], eax
adc edx, dword [ecx - 0x14]
xor esi, eax
xor ebx, edx
mov dword [ecx - 0x34], edx
xor eax, eax
mov ecx, ebx
shld ebx, esi, 1
shr ecx, 0x1f
or eax, ebx
add esi, esi
or ecx, esi
mov esi, dword [ebp - 0x808]
mov edi, dword [esi - 0x50]
mov dword [esi - 0x54], eax
mov eax, dword [esi - 0x70]
mov ebx, dword [esi - 0x4c]
mul edi
mov dword [esi - 0x58], ecx
shld edx, eax, 1
mov ecx, dword [esi - 0xc]
add eax, eax
add eax, dword [esi - 0x70]
adc edx, dword [esi - 0x6c]
add eax, edi
mov dword [esi - 0x70], eax
adc edx, ebx
mov dword [esi - 0x6c], edx
mov edx, dword [esi - 0x10]
xor ecx, dword [esi - 0x6c]
xor edx, eax
xor eax, eax
mov dword [esi - 0x10], ecx
or eax, edx
mov dword [esi - 0xc], eax
mov esi, ecx
mov eax, dword [ebp - 0x808]
mov ecx, dword [eax - 0x30]
mov eax, ecx
mul esi
shld edx, eax, 1
add eax, eax
add eax, ecx
mov ecx, dword [ebp - 0x808]
adc edx, dword [ecx - 0x2c]
add eax, esi
mov esi, eax
mov dword [ecx - 0x30], eax
adc edx, dword [ecx - 0xc]
xor esi, edi
mov dword [ecx - 0x2c], edx
xor eax, eax
xor edx, ebx
mov ecx, esi
shrd esi, edx, 0x18
shl ecx, 8
or eax, esi
shr edx, 0x18
mov esi, dword [ebp - 0x808]
or ecx, edx
mov edi, eax
mov ebx, ecx
mov dword [esi - 0x50], eax
mov eax, dword [esi - 0x70]
mul edi
mov dword [esi - 0x4c], ecx
shld edx, eax, 1
add eax, eax
add eax, dword [esi - 0x70]
adc edx, dword [esi - 0x6c]
add eax, edi
mov dword [esi - 0x70], eax
adc edx, ebx
mov dword [esi - 0x6c], edx
mov ecx, eax
mov eax, edx
mov edx, esi
mov esi, dword [edx - 0x10]
xor esi, ecx
mov ecx, edx
mov edx, dword [ecx - 0xc]
mov ecx, esi
xor edx, eax
shl ecx, 0x10
shrd esi, edx, 0x10
xor eax, eax
shr edx, 0x10
or eax, esi
or ecx, edx
mov esi, eax
mov edx, dword [ebp - 0x808]
mov dword [edx - 0x10], eax
mov dword [edx - 0xc], ecx
mov ecx, dword [edx - 0x30]
mov eax, ecx
mul esi
shld edx, eax, 1
add eax, eax
add eax, ecx
mov ecx, dword [ebp - 0x808]
adc edx, dword [ecx - 0x2c]
add eax, esi
mov esi, eax
mov dword [ecx - 0x30], eax
adc edx, dword [ecx - 0xc]
xor esi, edi
mov edi, ecx
mov dword [ecx - 0x2c], edx
xor eax, eax
mov edx, dword [edi - 0x2c]
xor edx, ebx
mov ebx, dword [edi - 0x44]
mov ecx, edx
shld edx, esi, 1
shr ecx, 0x1f
or eax, edx
add esi, esi
mov dword [edi - 0x4c], eax
or ecx, esi
mov eax, dword [edi - 0x68]
mul dword [edi - 0x48]
mov dword [edi - 0x50], ecx
shld edx, eax, 1
add eax, eax
add eax, dword [edi - 0x68]
adc edx, dword [edi - 0x64]
add eax, dword [edi - 0x48]
mov dword [edi - 0x68], eax
adc edx, ebx
mov dword [edi - 0x64], edx
mov edi, eax
mov eax, dword [ebp - 0x808]
mov edx, dword [eax - 8]
mov ecx, dword [eax - 4]
xor edx, edi
mov esi, dword [eax - 0x64]
xor eax, eax
or eax, edx
xor ecx, esi
mov edx, dword [ebp - 0x808]
mov dword [edx - 8], ecx
mov ecx, dword [edx - 0x28]
mov dword [edx - 4], eax
mov eax, ecx
mul dword [edx - 8]
shld edx, eax, 1
add eax, eax
add eax, ecx
mov ecx, dword [ebp - 0x808]
adc edx, dword [ecx - 0x24]
add eax, dword [ecx - 8]
mov dword [ecx - 0x28], eax
adc edx, dword [ecx - 4]
mov dword [ecx - 0x24], edx
xor ebx, dword [ecx - 0x24]
mov edx, dword [ecx - 0x48]
xor edx, eax
xor eax, eax
mov ecx, edx
shrd edx, ebx, 0x18
shl ecx, 8
or eax, edx
shr ebx, 0x18
mov edx, dword [ebp - 0x808]
or ecx, ebx
mov dword [edx - 0x48], eax
mov eax, edi
mov dword [edx - 0x44], ecx
mov ecx, edx
mul dword [ecx - 0x48]
mov ebx, dword [ecx - 0x44]
shld edx, eax, 1
add eax, eax
add eax, edi
adc edx, esi
mov esi, dword [ecx - 0x48]
add eax, esi
mov dword [ecx - 0x68], eax
adc edx, ebx
mov dword [ecx - 0x64], edx
mov ecx, eax
mov edx, dword [ebp - 0x808]
mov edi, dword [edx - 8]
mov eax, dword [edx - 0x64]
xor edi, ecx
mov ecx, edx
mov edx, dword [ecx - 4]
mov ecx, edi
xor edx, eax
shl ecx, 0x10
shrd edi, edx, 0x10
xor eax, eax
shr edx, 0x10
or eax, edi
or ecx, edx
mov edi, eax
mov edx, dword [ebp - 0x808]
mov dword [edx - 8], eax
mov dword [edx - 4], ecx
mov ecx, dword [edx - 0x28]
mov eax, ecx
mul edi
shld edx, eax, 1
add eax, eax
add eax, ecx
mov ecx, dword [ebp - 0x808]
adc edx, dword [ecx - 0x24]
add eax, edi
mov edi, ecx
adc edx, dword [edi - 4]
xor esi, eax
xor ebx, edx
mov dword [edi - 0x28], eax
xor eax, eax
mov dword [edi - 0x24], edx
mov ecx, ebx
shld ebx, esi, 1
shr ecx, 0x1f
or eax, ebx
add esi, esi
mov ebx, dword [edi - 0x40]
or ecx, esi
mov dword [edi - 0x44], eax
mov eax, dword [edi - 0x60]
mul ebx
mov dword [edi - 0x48], ecx
shld edx, eax, 1
mov dword [ebp - 0x810], ebx
add eax, eax
add eax, dword [edi - 0x60]
adc edx, dword [edi - 0x5c]
add eax, ebx
mov dword [edi - 0x60], eax
adc edx, dword [edi - 0x3c]
mov dword [edi - 0x5c], edx
mov ecx, dword [edi + 4]
mov esi, edx
mov edx, dword [edi]
xor ecx, esi
xor edx, eax
mov dword [edi], ecx
xor eax, eax
mov dword [ebp - 0x80c], esi
or eax, edx
mov dword [edi + 4], eax
mov edi, ecx
mov eax, dword [ebp - 0x808]
mov ebx, dword [eax + 4]
mov ecx, dword [eax - 0x20]
mov eax, ecx
mul edi
shld edx, eax, 1
add eax, eax
add eax, ecx
mov ecx, dword [ebp - 0x808]
adc edx, dword [ecx - 0x1c]
add eax, edi
mov dword [ecx - 0x20], eax
adc edx, ebx
mov eax, dword [ebp - 0x810]
mov dword [ecx - 0x1c], edx
mov ecx, edx
mov edx, dword [ebp - 0x808]
mov esi, edx
xor eax, dword [edx - 0x20]
mov edx, dword [esi - 0x3c]
xor edx, ecx
mov dword [ebp - 0x810], eax
shrd dword [ebp - 0x810], edx, 0x18
mov ecx, eax
xor eax, eax
or eax, dword [ebp - 0x810]
shr edx, 0x18
shl ecx, 8
or ecx, edx
mov edx, esi
mov dword [edx - 0x40], eax
mov dword [edx - 0x3c], ecx
mov ecx, dword [edx - 0x60]
mov eax, ecx
mul dword [edx - 0x40]
shld edx, eax, 1
add eax, eax
add eax, ecx
mov ecx, esi
adc edx, dword [ebp - 0x80c]
add eax, dword [ecx - 0x40]
mov esi, eax
mov dword [ecx - 0x60], eax
adc edx, dword [ecx - 0x3c]
xor esi, edi
mov dword [ecx - 0x5c], edx
xor eax, eax
xor edx, ebx
mov ecx, esi
mov ebx, dword [ebp - 0x808]
shrd esi, edx, 0x10
shl ecx, 0x10
or eax, esi
shr edx, 0x10
or ecx, edx
mov dword [ebx], eax
mov esi, eax
mov dword [ebx + 4], ecx
mov eax, dword [ebx - 0x20]
mov edi, ecx
mul esi
mov dword [ebp - 0x80c], edi
shld edx, eax, 1
add eax, eax
add eax, dword [ebx - 0x20]
adc edx, dword [ebx - 0x1c]
add eax, esi
mov dword [ebx - 0x20], eax
adc edx, edi
mov dword [ebx - 0x1c], edx
mov ecx, eax
mov edi, dword [ebp - 0x808]
mov eax, edx
mov edx, ebx
mov ebx, dword [edx - 0x40]
xor ebx, ecx
mov ecx, edx
mov edx, dword [ecx - 0x3c]
xor edx, eax
xor eax, eax
mov ecx, edx
shld edx, ebx, 1
shr ecx, 0x1f
or eax, edx
add ebx, ebx
mov edx, dword [ebp - 0x808]
or ecx, ebx
mov ebx, dword [edx - 0x4c]
mov dword [edx - 0x3c], eax
mov eax, dword [edx - 0x78]
mov dword [edx - 0x40], ecx
mov ecx, dword [edx - 0x50]
mul ecx
shld edx, eax, 1
add eax, eax
add eax, dword [edi - 0x78]
adc edx, dword [edi - 0x74]
add eax, ecx
mov ecx, edi
adc edx, ebx
mov dword [ecx - 0x78], eax
mov dword [ecx - 0x74], edx
mov edx, eax
mov ecx, dword [ecx - 0x74]
xor edx, esi
xor ecx, dword [ebp - 0x80c]
xor eax, eax
or eax, edx
mov edx, edi
mov esi, dword [edx - 0x28]
mov dword [edx + 4], eax
mov eax, esi
mov dword [edx], ecx
mul ecx
shld edx, eax, 1
add eax, eax
add eax, esi
mov esi, edi
adc edx, dword [esi - 0x24]
add eax, ecx
mov dword [esi - 0x28], eax
adc edx, dword [esi + 4]
mov dword [esi - 0x24], edx
mov edx, dword [esi - 0x50]
xor ebx, dword [esi - 0x24]
xor edx, eax
mov ecx, edx
xor eax, eax
shrd edx, ebx, 0x18
shl ecx, 8
or eax, edx
shr ebx, 0x18
mov dword [esi - 0x50], eax
mov edi, eax
mov eax, dword [esi - 0x78]
or ecx, ebx
mul edi
mov ebx, ecx
mov dword [esi - 0x4c], ecx
shld edx, eax, 1
add eax, eax
add eax, dword [esi - 0x78]
adc edx, dword [esi - 0x74]
add eax, edi
mov dword [esi - 0x78], eax
adc edx, ebx
mov dword [esi - 0x74], edx
mov esi, eax
mov eax, dword [ebp - 0x808]
xor esi, dword [eax]
mov edx, dword [eax - 0x74]
xor edx, dword [eax + 4]
mov ecx, esi
shrd esi, edx, 0x10
xor eax, eax
shl ecx, 0x10
or eax, esi
shr edx, 0x10
or ecx, edx
mov edx, dword [ebp - 0x808]
mov esi, dword [edx - 0x28]
mov dword [edx], eax
mov dword [edx + 4], ecx
mov ecx, eax
mov eax, esi
mul ecx
shld edx, eax, 1
add eax, eax
add eax, esi
mov esi, dword [ebp - 0x808]
adc edx, dword [esi - 0x24]
add eax, ecx
mov ecx, esi
mov esi, eax
adc edx, dword [ecx + 4]
xor esi, edi
mov dword [ecx - 0x28], eax
xor eax, eax
mov dword [ecx - 0x24], edx
xor edx, ebx
mov ecx, edx
shld edx, esi, 1
shr ecx, 0x1f
or eax, edx
add esi, esi
or ecx, esi
mov esi, dword [ebp - 0x808]
mov ebx, dword [esi - 0x48]
mov dword [esi - 0x4c], eax
mov eax, dword [esi - 0x70]
mov edi, dword [esi - 0x44]
mul ebx
mov dword [esi - 0x50], ecx
shld edx, eax, 1
add eax, eax
add eax, dword [esi - 0x70]
adc edx, dword [esi - 0x6c]
add eax, ebx
mov dword [esi - 0x70], eax
mov eax, dword [ebp - 0x808]
adc edx, edi
mov dword [esi - 0x6c], edx
mov esi, edx
mov dword [ebp - 0x80c], esi
mov edx, dword [eax - 0x18]
xor edx, dword [eax - 0x70]
mov ecx, dword [eax - 0x14]
xor eax, eax
or eax, edx
xor ecx, esi
mov edx, dword [ebp - 0x808]
mov esi, dword [ebp - 0x808]
mov dword [edx - 0x14], eax
mov eax, dword [edx - 0x20]
mov dword [edx - 0x18], ecx
mul ecx
shld edx, eax, 1
add eax, eax
add eax, dword [esi - 0x20]
adc edx, dword [esi - 0x1c]
add eax, ecx
mov ecx, esi
adc edx, dword [ecx - 0x14]
mov dword [ecx - 0x1c], edx
mov edx, esi
mov dword [ecx - 0x20], eax
xor eax, eax
xor ebx, dword [edx - 0x20]
xor edi, dword [edx - 0x1c]
mov ecx, ebx
shl ecx, 8
shrd ebx, edi, 0x18
or eax, ebx
shr edi, 0x18
mov dword [edx - 0x48], eax
or ecx, edi
mov dword [edx - 0x44], ecx
mov edi, eax
mov ebx, ecx
mov ecx, dword [edx - 0x70]
mov eax, ecx
mul edi
shld edx, eax, 1
add eax, eax
add eax, ecx
mov ecx, esi
adc edx, dword [ebp - 0x80c]
add eax, edi
mov esi, eax
adc edx, ebx
mov dword [ecx - 0x70], eax
xor esi, dword [ecx - 0x18]
xor eax, eax
mov dword [ecx - 0x6c], edx
xor edx, dword [ecx - 0x14]
mov ecx, esi
shrd esi, edx, 0x10
shl ecx, 0x10
shr edx, 0x10
or eax, esi
or ecx, edx
mov edx, dword [ebp - 0x808]
mov esi, dword [edx - 0x20]
mov dword [edx - 0x18], eax
mov dword [edx - 0x14], ecx
mov ecx, eax
mov eax, esi
mul ecx
shld edx, eax, 1
add eax, eax
add eax, esi
mov esi, dword [ebp - 0x808]
adc edx, dword [esi - 0x1c]
add eax, ecx
mov ecx, esi
mov esi, eax
adc edx, dword [ecx - 0x14]
xor esi, edi
mov dword [ecx - 0x20], eax
xor eax, eax
mov dword [ecx - 0x1c], edx
xor edx, ebx
mov ecx, edx
shld edx, esi, 1
shr ecx, 0x1f
or eax, edx
add esi, esi
or ecx, esi
mov esi, dword [ebp - 0x808]
mov ebx, dword [esi - 0x40]
mov edi, dword [esi - 0x3c]
mov dword [esi - 0x44], eax
mov eax, dword [esi - 0x68]
mul ebx
mov dword [esi - 0x48], ecx
shld edx, eax, 1
add eax, eax
add eax, dword [esi - 0x68]
adc edx, dword [esi - 0x64]
add eax, ebx
mov dword [esi - 0x68], eax
mov eax, dword [ebp - 0x808]
adc edx, edi
mov dword [esi - 0x64], edx
mov esi, edx
mov dword [ebp - 0x80c], esi
mov edx, dword [eax - 0x10]
xor edx, dword [eax - 0x68]
mov ecx, dword [eax - 0xc]
xor eax, eax
xor ecx, esi
or eax, edx
mov edx, dword [ebp - 0x808]
mov dword [edx - 0xc], eax
mov eax, dword [edx - 0x38]
mov dword [edx - 0x10], ecx
mul ecx
mov esi, dword [ebp - 0x808]
shld edx, eax, 1
add eax, eax
add eax, dword [esi - 0x38]
adc edx, dword [esi - 0x34]
add eax, ecx
mov ecx, esi
adc edx, dword [ecx - 0xc]
mov dword [ecx - 0x34], edx
mov edx, esi
mov dword [ecx - 0x38], eax
xor eax, eax
xor ebx, dword [edx - 0x38]
xor edi, dword [edx - 0x34]
mov ecx, ebx
shl ecx, 8
shrd ebx, edi, 0x18
or eax, ebx
shr edi, 0x18
mov dword [edx - 0x40], eax
or ecx, edi
mov dword [edx - 0x3c], ecx
mov edi, eax
mov ebx, ecx
mov ecx, dword [edx - 0x68]
mov eax, ecx
mul edi
shld edx, eax, 1
add eax, eax
add eax, ecx
mov ecx, esi
adc edx, dword [ebp - 0x80c]
add eax, edi
mov esi, eax
adc edx, ebx
mov dword [ecx - 0x68], eax
xor esi, dword [ecx - 0x10]
xor eax, eax
mov dword [ecx - 0x64], edx
xor edx, dword [ecx - 0xc]
mov ecx, esi
shrd esi, edx, 0x10
shl ecx, 0x10
shr edx, 0x10
or eax, esi
or ecx, edx
mov edx, dword [ebp - 0x808]
mov esi, dword [edx - 0x38]
mov dword [edx - 0x10], eax
mov dword [edx - 0xc], ecx
mov ecx, eax
mov eax, esi
mul ecx
shld edx, eax, 1
add eax, eax
add eax, esi
mov esi, dword [ebp - 0x808]
adc edx, dword [esi - 0x34]
add eax, ecx
mov ecx, esi
mov esi, eax
adc edx, dword [ecx - 0xc]
xor esi, edi
mov dword [ecx - 0x34], edx
xor edx, ebx
mov dword [ecx - 0x38], eax
mov ecx, edx
shld edx, esi, 1
shr ecx, 0x1f
xor eax, eax
add esi, esi
or ecx, esi
mov esi, dword [ebp - 0x808]
or eax, edx
mov ebx, dword [esi - 0x58]
mov dword [esi - 0x40], ecx
mov dword [esi - 0x3c], eax
mov eax, dword [esi - 0x60]
mul ebx
mov edi, dword [esi - 0x54]
shld edx, eax, 1
add eax, eax
add eax, dword [esi - 0x60]
adc edx, dword [esi - 0x5c]
add eax, ebx
mov dword [esi - 0x60], eax
adc edx, edi
mov eax, dword [ebp - 0x808]
mov dword [esi - 0x5c], edx
mov esi, edx
mov dword [ebp - 0x80c], esi
mov edx, dword [eax - 8]
xor edx, dword [eax - 0x60]
mov ecx, dword [eax - 4]
xor eax, eax
or eax, edx
xor ecx, esi
mov edx, dword [ebp - 0x808]
mov esi, dword [ebp - 0x808]
mov dword [edx - 4], eax
mov eax, dword [edx - 0x30]
mov dword [edx - 8], ecx
mul ecx
shld edx, eax, 1
add eax, eax
add eax, dword [esi - 0x30]
adc edx, dword [esi - 0x2c]
add eax, ecx
mov ecx, esi
adc edx, dword [ecx - 4]
mov dword [ecx - 0x30], eax
xor eax, eax
mov dword [ecx - 0x2c], edx
mov edx, esi
xor ebx, dword [edx - 0x30]
xor edi, dword [edx - 0x2c]
mov ecx, ebx
shl ecx, 8
shrd ebx, edi, 0x18
or eax, ebx
shr edi, 0x18
mov dword [edx - 0x58], eax
or ecx, edi
mov dword [edx - 0x54], ecx
mov edi, eax
mov ebx, ecx
mov ecx, dword [edx - 0x60]
mov eax, ecx
mul edi
shld edx, eax, 1
add eax, eax
add eax, ecx
mov ecx, esi
adc edx, dword [ebp - 0x80c]
add eax, edi
mov esi, eax
adc edx, ebx
mov dword [ecx - 0x60], eax
xor esi, dword [ecx - 8]
xor eax, eax
mov dword [ecx - 0x5c], edx
xor edx, dword [ecx - 4]
mov ecx, esi
shrd esi, edx, 0x10
shl ecx, 0x10
shr edx, 0x10
or eax, esi
or ecx, edx
mov edx, dword [ebp - 0x808]
mov esi, dword [edx - 0x30]
mov dword [edx - 8], eax
mov dword [edx - 4], ecx
mov ecx, eax
mov eax, esi
mul ecx
shld edx, eax, 1
add eax, eax
add eax, esi
mov esi, dword [ebp - 0x808]
adc edx, dword [esi - 0x2c]
add eax, ecx
mov dword [esi - 0x30], eax
adc edx, dword [esi - 4]
mov dword [esi - 0x2c], edx
mov esi, eax
xor esi, edi
xor eax, eax
mov edi, dword [ebp - 0x808]
mov edx, dword [edi - 0x2c]
xor edx, ebx
mov ecx, edx
shld edx, esi, 1
shr ecx, 0x1f
add esi, esi
or eax, edx
or ecx, esi
mov dword [edi - 0x54], eax
mov dword [edi - 0x58], ecx
sub edi, 0xffffff80
dec dword [ebp - 0x814]
mov dword [ebp - 0x808], edi
jne 0x4e6fe0
lea ecx, [ebp - 0x7c]
mov dword [ebp - 0x814], 8
mov dword [ebp - 0x808], ecx
mov edi, edi
mov esi, dword [ecx - 0x288]
mov ebx, dword [ecx - 0x284]
mov ecx, dword [ecx - 0x388]
mov eax, ecx
mul esi
shld edx, eax, 1
add eax, eax
add eax, ecx
mov ecx, dword [ebp - 0x808]
adc edx, dword [ecx - 0x384]
add eax, esi
mov dword [ecx - 0x388], eax
mov edi, eax
adc edx, ebx
xor eax, eax
mov dword [ecx - 0x384], edx
mov esi, edx
mov edx, dword [ecx - 0x88]
mov ecx, dword [ecx - 0x84]
xor edx, edi
or eax, edx
xor ecx, esi
mov edx, dword [ebp - 0x808]
mov dword [edx - 0x88], ecx
mov ecx, dword [edx - 0x188]
mov dword [edx - 0x84], eax
mov eax, ecx
mul dword [edx - 0x88]
shld edx, eax, 1
add eax, eax
add eax, ecx
mov ecx, dword [ebp - 0x808]
adc edx, dword [ecx - 0x184]
add eax, dword [ecx - 0x88]
mov dword [ecx - 0x188], eax
adc edx, dword [ecx - 0x84]
mov dword [ecx - 0x184], edx
mov edx, dword [ecx - 0x288]
xor ebx, dword [ecx - 0x184]
xor edx, eax
mov ecx, edx
xor eax, eax
shrd edx, ebx, 0x18
shl ecx, 8
or eax, edx
shr ebx, 0x18
mov edx, dword [ebp - 0x808]
or ecx, ebx
mov dword [edx - 0x284], ecx
mov ecx, edx
mov dword [edx - 0x288], eax
mov eax, edi
mul dword [ecx - 0x288]
mov ebx, dword [ecx - 0x284]
shld edx, eax, 1
add eax, eax
add eax, edi
adc edx, esi
mov esi, dword [ecx - 0x288]
add eax, esi
mov dword [ecx - 0x388], eax
adc edx, ebx
mov dword [ecx - 0x384], edx
mov ecx, eax
mov edx, dword [ebp - 0x808]
mov edi, dword [edx - 0x88]
mov eax, dword [edx - 0x384]
xor edi, ecx
mov ecx, edx
mov edx, dword [ecx - 0x84]
mov ecx, edi
xor edx, eax
shl ecx, 0x10
shrd edi, edx, 0x10
xor eax, eax
shr edx, 0x10
or eax, edi
or ecx, edx
mov edx, dword [ebp - 0x808]
mov dword [edx - 0x88], eax
mov dword [edx - 0x84], ecx
mov ecx, dword [edx - 0x188]
mov edi, eax
mov eax, ecx
mul edi
shld edx, eax, 1
add eax, eax
add eax, ecx
mov ecx, dword [ebp - 0x808]
adc edx, dword [ecx - 0x184]
add eax, edi
mov dword [ecx - 0x188], eax
adc edx, dword [ecx - 0x84]
xor esi, eax
mov dword [ecx - 0x184], edx
xor ebx, edx
xor eax, eax
mov ecx, ebx
shld ebx, esi, 1
shr ecx, 0x1f
or eax, ebx
add esi, esi
or ecx, esi
mov esi, dword [ebp - 0x808]
mov edi, dword [esi - 0x280]
mov dword [esi - 0x284], eax
mov ebx, dword [esi - 0x27c]
mov dword [esi - 0x288], ecx
mov ecx, dword [esi - 0x380]
mov eax, ecx
mul edi
shld edx, eax, 1
add eax, eax
add eax, ecx
mov ecx, dword [esi - 0x7c]
adc edx, dword [esi - 0x37c]
add eax, edi
mov dword [esi - 0x380], eax
adc edx, ebx
mov dword [esi - 0x37c], edx
mov edx, dword [esi - 0x80]
xor ecx, dword [esi - 0x37c]
xor edx, eax
xor eax, eax
mov dword [esi - 0x80], ecx
or eax, edx
mov dword [esi - 0x7c], eax
mov esi, ecx
mov eax, dword [ebp - 0x808]
mov ecx, dword [eax - 0x180]
mov eax, ecx
mul esi
shld edx, eax, 1
add eax, eax
add eax, ecx
mov ecx, dword [ebp - 0x808]
adc edx, dword [ecx - 0x17c]
add eax, esi
mov dword [ecx - 0x180], eax
mov esi, eax
adc edx, dword [ecx - 0x7c]
xor esi, edi
mov dword [ecx - 0x17c], edx
xor eax, eax
xor edx, ebx
mov ecx, esi
shrd esi, edx, 0x18
shl ecx, 8
or eax, esi
shr edx, 0x18
mov esi, dword [ebp - 0x808]
or ecx, edx
mov edi, eax
mov ebx, ecx
mov dword [esi - 0x280], eax
mov dword [esi - 0x27c], ecx
mov ecx, dword [esi - 0x380]
mov eax, ecx
mul edi
shld edx, eax, 1
add eax, eax
add eax, ecx
adc edx, dword [esi - 0x37c]
add eax, edi
mov dword [esi - 0x380], eax
mov ecx, eax
adc edx, ebx
mov dword [esi - 0x37c], edx
mov eax, edx
mov edx, esi
mov esi, dword [edx - 0x80]
xor esi, ecx
mov ecx, edx
mov edx, dword [ecx - 0x7c]
mov ecx, esi
xor edx, eax
shl ecx, 0x10
shrd esi, edx, 0x10
xor eax, eax
shr edx, 0x10
or eax, esi
or ecx, edx
mov esi, eax
mov edx, dword [ebp - 0x808]
mov dword [edx - 0x80], eax
mov dword [edx - 0x7c], ecx
mov ecx, dword [edx - 0x180]
mov eax, ecx
mul esi
shld edx, eax, 1
add eax, eax
add eax, ecx
mov ecx, dword [ebp - 0x808]
adc edx, dword [ecx - 0x17c]
add eax, esi
mov esi, eax
mov dword [ecx - 0x180], eax
adc edx, dword [ecx - 0x7c]
xor esi, edi
mov edi, ecx
mov dword [ecx - 0x17c], edx
xor eax, eax
mov edx, dword [edi - 0x17c]
xor edx, ebx
mov ebx, dword [edi - 0x204]
mov ecx, edx
shld edx, esi, 1
shr ecx, 0x1f
or eax, edx
add esi, esi
mov dword [edi - 0x27c], eax
or ecx, esi
mov esi, dword [edi - 0x208]
mov dword [edi - 0x280], ecx
mov ecx, dword [edi - 0x308]
mov eax, ecx
mul esi
shld edx, eax, 1
add eax, eax
add eax, ecx
adc edx, dword [edi - 0x304]
add eax, esi
mov dword [edi - 0x308], eax
adc edx, ebx
mov dword [edi - 0x304], edx
mov edi, eax
mov eax, dword [ebp - 0x808]
mov edx, dword [eax - 8]
mov ecx, dword [eax - 4]
xor edx, edi
mov esi, dword [eax - 0x304]
xor eax, eax
or eax, edx
xor ecx, esi
mov edx, dword [ebp - 0x808]
mov dword [edx - 4], eax
mov dword [edx - 8], ecx
mov ecx, dword [edx - 0x108]
mov eax, ecx
mul dword [edx - 8]
shld edx, eax, 1
add eax, eax
add eax, ecx
mov ecx, dword [ebp - 0x808]
adc edx, dword [ecx - 0x104]
add eax, dword [ecx - 8]
mov dword [ecx - 0x108], eax
adc edx, dword [ecx - 4]
mov dword [ecx - 0x104], edx
xor ebx, dword [ecx - 0x104]
mov edx, dword [ecx - 0x208]
xor edx, eax
xor eax, eax
mov ecx, edx
shrd edx, ebx, 0x18
shl ecx, 8
or eax, edx
shr ebx, 0x18
mov edx, dword [ebp - 0x808]
or ecx, ebx
mov dword [edx - 0x204], ecx
mov ecx, edx
mov dword [edx - 0x208], eax
mov eax, edi
mul dword [ecx - 0x208]
mov ebx, dword [ecx - 0x204]
shld edx, eax, 1
add eax, eax
add eax, edi
adc edx, esi
mov esi, dword [ecx - 0x208]
add eax, esi
mov dword [ecx - 0x308], eax
adc edx, ebx
mov dword [ecx - 0x304], edx
mov ecx, eax
mov edx, dword [ebp - 0x808]
mov edi, dword [edx - 8]
mov eax, dword [edx - 0x304]
xor edi, ecx
mov ecx, edx
mov edx, dword [ecx - 4]
mov ecx, edi
xor edx, eax
shl ecx, 0x10
shrd edi, edx, 0x10
xor eax, eax
shr edx, 0x10
or eax, edi
or ecx, edx
mov edi, eax
mov edx, dword [ebp - 0x808]
mov dword [edx - 8], eax
mov dword [edx - 4], ecx
mov ecx, dword [edx - 0x108]
mov eax, ecx
mul edi
shld edx, eax, 1
add eax, eax
add eax, ecx
mov ecx, dword [ebp - 0x808]
adc edx, dword [ecx - 0x104]
add eax, edi
mov edi, ecx
adc edx, dword [edi - 4]
xor esi, eax
xor ebx, edx
mov dword [edi - 0x108], eax
mov ecx, ebx
mov dword [edi - 0x104], edx
shld ebx, esi, 1
shr ecx, 0x1f
xor eax, eax
add esi, esi
or eax, ebx
mov ebx, dword [edi - 0x1fc]
or ecx, esi
mov esi, dword [edi - 0x200]
mov dword [edi - 0x204], eax
mov dword [edi - 0x208], ecx
mov ecx, dword [edi - 0x300]
mov eax, ecx
mul esi
shld edx, eax, 1
add eax, eax
add eax, ecx
adc edx, dword [edi - 0x2fc]
add eax, esi
mov dword [edi - 0x300], eax
adc edx, ebx
mov dword [edi - 0x2fc], edx
mov edi, eax
mov eax, dword [ebp - 0x808]
mov esi, dword [eax - 0x2fc]
mov edx, dword [eax]
mov ecx, dword [eax + 4]
xor edx, edi
xor eax, eax
xor ecx, esi
or eax, edx
mov edx, dword [ebp - 0x808]
mov dword [edx + 4], eax
mov dword [edx], ecx
mov ecx, dword [edx - 0x100]
mov eax, ecx
mul dword [edx]
shld edx, eax, 1
add eax, eax
add eax, ecx
mov ecx, dword [ebp - 0x808]
adc edx, dword [ecx - 0xfc]
add eax, dword [ecx]
mov dword [ecx - 0x100], eax
adc edx, dword [ecx + 4]
mov dword [ecx - 0xfc], edx
xor ebx, dword [ecx - 0xfc]
mov edx, dword [ecx - 0x200]
xor edx, eax
xor eax, eax
mov ecx, edx
shrd edx, ebx, 0x18
shl ecx, 8
or eax, edx
shr ebx, 0x18
mov edx, dword [ebp - 0x808]
or ecx, ebx
mov dword [edx - 0x200], eax
mov dword [edx - 0x1fc], ecx
mov ecx, eax
mov ebx, dword [edx - 0x1fc]
mov eax, edi
mul ecx
shld edx, eax, 1
add eax, eax
add eax, edi
mov edi, dword [ebp - 0x808]
adc edx, esi
add eax, ecx
mov ecx, eax
mov esi, dword [edi]
adc edx, ebx
mov dword [edi - 0x300], eax
xor esi, ecx
mov dword [edi - 0x2fc], edx
mov eax, edx
mov edx, dword [edi + 4]
mov ecx, esi
xor edx, eax
shl ecx, 0x10
shrd esi, edx, 0x10
xor eax, eax
or eax, esi
shr edx, 0x10
or ecx, edx
mov dword [edi], eax
mov dword [edi + 4], ecx
mov ecx, eax
mov esi, dword [edi + 4]
mov eax, edi
mov edi, dword [eax - 0x100]
mov eax, edi
mul ecx
shld edx, eax, 1
add eax, eax
add eax, edi
mov edi, dword [ebp - 0x808]
adc edx, dword [edi - 0xfc]
add eax, ecx
mov dword [edi - 0x100], eax
adc edx, esi
mov dword [edi - 0xfc], edx
xor ebx, dword [edi - 0xfc]
mov edx, dword [edi - 0x200]
mov ecx, ebx
xor edx, eax
shr ecx, 0x1f
shld ebx, edx, 1
xor eax, eax
or eax, ebx
add edx, edx
mov ebx, dword [edi - 0x280]
or ecx, edx
mov dword [edi - 0x1fc], eax
mov eax, dword [ebp - 0x808]
mov dword [edi - 0x200], ecx
mov edi, dword [edi - 0x27c]
mov ecx, dword [eax - 0x388]
mov eax, ecx
mul ebx
shld edx, eax, 1
add eax, eax
add eax, ecx
mov ecx, dword [ebp - 0x808]
adc edx, dword [ecx - 0x384]
add eax, ebx
mov dword [ecx - 0x388], eax
adc edx, edi
xor eax, eax
mov dword [ecx - 0x384], edx
mov edx, ecx
xor esi, dword [edx - 0x384]
mov ecx, dword [edx]
xor ecx, dword [edx - 0x388]
or eax, ecx
mov dword [edx], esi
mov dword [edx + 4], eax
mov ecx, esi
mov esi, dword [edx - 0x108]
mov eax, esi
mul ecx
mov dword [ebp - 0x810], ecx
shld edx, eax, 1
add eax, eax
add eax, esi
mov esi, dword [ebp - 0x808]
adc edx, dword [esi - 0x104]
add eax, ecx
mov dword [esi - 0x108], eax
adc edx, dword [esi + 4]
xor eax, eax
mov dword [esi - 0x104], edx
mov edx, esi
xor ebx, dword [edx - 0x108]
mov esi, dword [edx - 0x104]
mov ecx, ebx
xor edi, esi
shl ecx, 8
shrd ebx, edi, 0x18
mov dword [ebp - 0x80c], esi
or eax, ebx
shr edi, 0x18
or ecx, edi
mov dword [edx - 0x280], eax
mov dword [edx - 0x27c], ecx
mov edi, eax
mov ebx, ecx
mov ecx, dword [edx - 0x388]
mov eax, ecx
mul edi
shld edx, eax, 1
add eax, eax
add eax, ecx
mov ecx, dword [ebp - 0x808]
adc edx, dword [ecx - 0x384]
add eax, edi
adc edx, ebx
mov dword [ecx - 0x388], eax
mov eax, dword [ebp - 0x810]
xor eax, dword [ecx - 0x388]
mov dword [ecx - 0x384], edx
mov edx, dword [ecx + 4]
xor edx, dword [ecx - 0x384]
mov ecx, eax
mov dword [ebp - 0x810], eax
xor eax, eax
shrd dword [ebp - 0x810], edx, 0x10
or eax, dword [ebp - 0x810]
shr edx, 0x10
shl ecx, 0x10
or ecx, edx
mov esi, dword [ebp - 0x808]
mov edx, dword [ebp - 0x808]
mov dword [edx], eax
mov dword [edx + 4], ecx
mov ecx, eax
mov eax, dword [edx - 0x108]
mul ecx
shld edx, eax, 1
add eax, eax
add eax, dword [esi - 0x108]
adc edx, dword [ebp - 0x80c]
add eax, ecx
mov ecx, esi
mov esi, eax
adc edx, dword [ecx + 4]
xor esi, edi
mov dword [ecx - 0x108], eax
xor eax, eax
mov dword [ecx - 0x104], edx
xor edx, ebx
mov ecx, edx
shld edx, esi, 1
shr ecx, 0x1f
or eax, edx
add esi, esi
or ecx, esi
mov esi, dword [ebp - 0x808]
mov ebx, dword [esi - 0x208]
mov dword [esi - 0x27c], eax
mov edi, dword [esi - 0x204]
mov dword [esi - 0x280], ecx
mov ecx, dword [esi - 0x380]
mov eax, ecx
mul ebx
shld edx, eax, 1
add eax, eax
add eax, ecx
adc edx, dword [esi - 0x37c]
add eax, ebx
mov dword [esi - 0x380], eax
mov eax, dword [ebp - 0x808]
adc edx, edi
mov dword [esi - 0x37c], edx
mov esi, edx
mov dword [ebp - 0x80c], esi
mov edx, dword [eax - 0x88]
xor edx, dword [eax - 0x380]
mov ecx, dword [eax - 0x84]
xor eax, eax
or eax, edx
xor ecx, esi
mov edx, dword [ebp - 0x808]
mov esi, dword [ebp - 0x808]
mov dword [edx - 0x84], eax
mov eax, dword [edx - 0x100]
mov dword [edx - 0x88], ecx
mul ecx
shld edx, eax, 1
add eax, eax
add eax, dword [esi - 0x100]
adc edx, dword [esi - 0xfc]
add eax, ecx
mov ecx, esi
adc edx, dword [ecx - 0x84]
mov dword [ecx - 0xfc], edx
mov edx, esi
mov dword [ecx - 0x100], eax
xor ebx, dword [edx - 0x100]
xor eax, eax
xor edi, dword [edx - 0xfc]
mov ecx, ebx
shl ecx, 8
shrd ebx, edi, 0x18
or eax, ebx
shr edi, 0x18
mov dword [edx - 0x208], eax
or ecx, edi
mov dword [edx - 0x204], ecx
mov edi, eax
mov ebx, ecx
mov ecx, dword [edx - 0x380]
mov eax, ecx
mul edi
shld edx, eax, 1
add eax, eax
add eax, ecx
mov ecx, esi
adc edx, dword [ebp - 0x80c]
add eax, edi
mov esi, eax
adc edx, ebx
mov dword [ecx - 0x380], eax
xor esi, dword [ecx - 0x88]
xor eax, eax
mov dword [ecx - 0x37c], edx
xor edx, dword [ecx - 0x84]
mov ecx, esi
shrd esi, edx, 0x10
shl ecx, 0x10
or eax, esi
shr edx, 0x10
or ecx, edx
mov edx, dword [ebp - 0x808]
mov esi, dword [edx - 0x100]
mov dword [edx - 0x88], eax
mov dword [edx - 0x84], ecx
mov ecx, eax
mov eax, esi
mul ecx
shld edx, eax, 1
add eax, eax
add eax, esi
mov esi, dword [ebp - 0x808]
adc edx, dword [esi - 0xfc]
add eax, ecx
mov ecx, esi
mov esi, eax
adc edx, dword [ecx - 0x84]
xor esi, edi
mov dword [ecx - 0x100], eax
xor eax, eax
mov dword [ecx - 0xfc], edx
xor edx, ebx
mov ecx, edx
shld edx, esi, 1
shr ecx, 0x1f
add esi, esi
or eax, edx
or ecx, esi
mov esi, dword [ebp - 0x808]
mov ebx, dword [esi - 0x200]
mov edi, dword [esi - 0x1fc]
mov dword [esi - 0x204], eax
mov dword [esi - 0x208], ecx
mov ecx, dword [esi - 0x308]
mov eax, ecx
mul ebx
shld edx, eax, 1
add eax, eax
add eax, ecx
adc edx, dword [esi - 0x304]
add eax, ebx
mov dword [esi - 0x308], eax
mov eax, dword [ebp - 0x808]
adc edx, edi
mov dword [esi - 0x304], edx
mov esi, edx
mov dword [ebp - 0x80c], esi
mov edx, dword [eax - 0x80]
xor edx, dword [eax - 0x308]
mov ecx, dword [eax - 0x7c]
xor eax, eax
or eax, edx
xor ecx, esi
mov edx, dword [ebp - 0x808]
mov esi, dword [ebp - 0x808]
mov dword [edx - 0x7c], eax
mov eax, dword [edx - 0x188]
mov dword [edx - 0x80], ecx
mul ecx
shld edx, eax, 1
add eax, eax
add eax, dword [esi - 0x188]
adc edx, dword [esi - 0x184]
add eax, ecx
mov ecx, esi
adc edx, dword [ecx - 0x7c]
mov dword [ecx - 0x184], edx
mov edx, esi
mov dword [ecx - 0x188], eax
xor eax, eax
xor ebx, dword [edx - 0x188]
xor edi, dword [edx - 0x184]
mov ecx, ebx
shl ecx, 8
shrd ebx, edi, 0x18
or eax, ebx
shr edi, 0x18
mov dword [edx - 0x200], eax
or ecx, edi
mov dword [edx - 0x1fc], ecx
mov edi, eax
mov ebx, ecx
mov ecx, dword [edx - 0x308]
mov eax, ecx
mul edi
shld edx, eax, 1
add eax, eax
add eax, ecx
mov ecx, esi
adc edx, dword [ebp - 0x80c]
add eax, edi
mov esi, eax
adc edx, ebx
mov dword [ecx - 0x308], eax
xor esi, dword [ecx - 0x80]
xor eax, eax
mov dword [ecx - 0x304], edx
xor edx, dword [ecx - 0x7c]
mov ecx, esi
shrd esi, edx, 0x10
shl ecx, 0x10
shr edx, 0x10
or eax, esi
or ecx, edx
mov edx, dword [ebp - 0x808]
mov esi, dword [edx - 0x188]
mov dword [edx - 0x80], eax
mov dword [edx - 0x7c], ecx
mov ecx, eax
mov eax, esi
mul ecx
shld edx, eax, 1
add eax, eax
add eax, esi
mov esi, dword [ebp - 0x808]
adc edx, dword [esi - 0x184]
add eax, ecx
mov dword [esi - 0x188], eax
adc edx, dword [esi - 0x7c]
mov dword [esi - 0x184], edx
mov esi, eax
xor esi, edi
mov edi, dword [ebp - 0x808]
mov edx, dword [edi - 0x184]
xor edx, ebx
mov ecx, edx
shr ecx, 0x1f
xor eax, eax
shld edx, esi, 1
mov ebx, dword [edi - 0x284]
or eax, edx
add esi, esi
mov dword [edi - 0x1fc], eax
or ecx, esi
mov esi, dword [edi - 0x300]
mov eax, esi
mov dword [edi - 0x200], ecx
mov ecx, dword [edi - 0x288]
mul ecx
shld edx, eax, 1
add eax, eax
add eax, esi
adc edx, dword [edi - 0x2fc]
add eax, ecx
mov dword [edi - 0x300], eax
mov eax, edi
adc edx, ebx
mov dword [edi - 0x2fc], edx
mov esi, edx
mov dword [ebp - 0x810], esi
mov edi, dword [eax - 8]
xor edi, dword [eax - 0x300]
mov edx, dword [eax - 4]
xor eax, eax
or eax, edi
xor edx, esi
mov edi, dword [ebp - 0x808]
mov esi, dword [ebp - 0x808]
mov dword [edi - 8], edx
mov edx, edi
mov edi, dword [edx - 8]
mov dword [edx - 4], eax
mov eax, dword [edx - 0x180]
mul edi
shld edx, eax, 1
add eax, eax
add eax, dword [esi - 0x180]
adc edx, dword [esi - 0x17c]
add eax, edi
mov dword [esi - 0x180], eax
mov eax, esi
adc edx, dword [esi - 4]
xor ebx, edx
xor ecx, dword [eax - 0x180]
mov dword [eax - 0x17c], edx
xor eax, eax
mov dword [ebp - 0x80c], ecx
mov edx, dword [ebp - 0x80c]
shrd edx, ebx, 0x18
shl ecx, 8
or eax, edx
shr ebx, 0x18
mov edx, esi
or ecx, ebx
mov ebx, eax
mov dword [edx - 0x288], eax
mov dword [edx - 0x284], ecx
mov ecx, dword [edx - 0x300]
mov eax, ecx
mul ebx
shld edx, eax, 1
add eax, eax
add eax, ecx
mov ecx, esi
adc edx, dword [ebp - 0x810]
add eax, ebx
mov esi, eax
adc edx, dword [ecx - 0x284]
xor esi, edi
mov edi, ecx
mov dword [ecx - 0x2fc], edx
mov dword [ecx - 0x300], eax
mov ecx, esi
xor eax, eax
shl ecx, 0x10
mov edx, dword [edi - 0x2fc]
xor edx, dword [edi - 4]
shrd esi, edx, 0x10
shr edx, 0x10
or eax, esi
or ecx, edx
mov esi, dword [edi - 0x180]
mov dword [edi - 8], eax
mov dword [edi - 4], ecx
mov ecx, eax
mov eax, esi
mul ecx
shld edx, eax, 1
add eax, eax
add eax, esi
adc edx, dword [edi - 0x17c]
add eax, ecx
mov ecx, edi
mov edi, eax
adc edx, dword [ecx - 4]
xor edi, ebx
mov esi, edx
mov dword [ecx - 0x17c], edx
xor esi, dword [ecx - 0x284]
mov edx, esi
mov dword [ecx - 0x180], eax
shld esi, edi, 1
shr edx, 0x1f
xor eax, eax
add edi, edi
or eax, esi
or edx, edi
mov dword [ecx - 0x284], eax
mov dword [ecx - 0x288], edx
add ecx, 0x10
dec dword [ebp - 0x814]
mov dword [ebp - 0x808], ecx
jne 0x4e7940
mov eax, dword [ebp - 0x818]
lea esi, [ebp - 0x804]
mov edi, eax
mov ecx, 0x100
rep movsd dword es:[edi], dword [esi]
lea ecx, [ebp - 0x404]
push ecx
push eax
call fcn.004e8970
mov ecx, dword [ebp - 4]
add esp, 8
xor ecx, ebp
pop edi
pop esi
pop ebx
call fcn.00722035
mov esp, ebp
pop ebp
ret