Function at 0x5a7c60
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x81c
mov eax, dword [0x631220]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
push eax
lea eax, [ebp - 0x404]
mov dword [ebp - 0x81c], ecx
push eax
call fcn.005a7ad0
lea eax, [ebp - 0x404]
push esi
push eax
call fcn.005a7bd0
lea eax, [ebp - 0x404]
push eax
lea eax, [ebp - 0x804]
push eax
call fcn.005a7ad0
lea ebx, [ebp - 0x38c]
mov dword [ebp - 0x818], 8
add esp, 0x18
mov dword [ebp - 0x808], ebx
jmp 0x5a7cd0
mov esi, dword [ebx - 0x58]
mov eax, dword [ebp - 0x808]
mov ebx, dword [ebx - 0x54]
mov ecx, dword [eax - 0x78]
mov eax, ecx
mul esi
shld edx, eax, 1
add eax, eax
add eax, ecx
mov ecx, dword [ebp - 0x808]
adc edx, dword [ecx - 0x74]
add eax, esi
mov dword [ecx - 0x78], eax
mov edi, eax
adc edx, ebx
xor eax, eax
mov dword [ecx - 0x74], edx
mov esi, edx
mov edx, dword [ecx - 0x18]
mov ecx, dword [ecx - 0x14]
xor edx, edi
or eax, edx
xor ecx, esi
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 edx, dword [ebp - 0x808]
mov dword [edx - 0x18], eax
mov dword [edx - 0x14], ecx
mov edi, eax
mov ecx, dword [edx - 0x38]
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
mov dword [ecx - 0x34], 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 - 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]
mov edi, eax
or ecx, edx
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
mov ecx, eax
adc edx, ebx
mov dword [esi - 0x6c], edx
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]
adc edx, dword [ecx - 4]
mov dword [ecx - 0x24], edx
xor ebx, dword [ecx - 0x24]
mov edx, dword [ecx - 0x48]
mov dword [ecx - 0x28], eax
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 - 0x80c], ebx
add eax, eax
add eax, dword [edi - 0x60]
adc edx, dword [edi - 0x5c]
add eax, ebx
adc edx, dword [edi - 0x3c]
mov dword [edi - 0x60], eax
mov esi, edx
mov dword [edi - 0x5c], edx
mov edx, eax
xor edx, dword [edi]
xor eax, eax
or eax, edx
mov dword [ebp - 0x810], esi
xor esi, dword [edi + 4]
mov dword [edi + 4], eax
mov eax, dword [ebp - 0x808]
mov dword [edi], esi
mov edi, esi
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 - 0x80c]
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 - 0x80c], eax
shrd dword [ebp - 0x80c], edx, 0x18
mov ecx, eax
xor eax, eax
or eax, dword [ebp - 0x80c]
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 - 0x810]
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 - 0x810], edi
shld edx, eax, 1
add eax, eax
add eax, dword [ebx - 0x20]
adc edx, dword [ebx - 0x1c]
add eax, esi
adc edx, edi
mov dword [ebx - 0x20], eax
mov ecx, eax
mov dword [ebx - 0x1c], edx
mov eax, edx
mov edx, ebx
mov edi, dword [ebp - 0x808]
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 - 0x810]
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
xor ebx, dword [esi - 0x24]
mov edx, dword [esi - 0x50]
xor edx, eax
xor eax, eax
mov ecx, edx
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]
mov ecx, esi
xor edx, dword [eax + 4]
xor eax, eax
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 - 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 - 0x810], 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 ebx, dword [edx - 0x20]
xor edi, dword [edx - 0x1c]
mov ecx, ebx
xor eax, eax
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 - 0x810]
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 - 0x810], esi
mov edx, dword [eax - 0x10]
mov ecx, dword [eax - 0xc]
xor edx, dword [eax - 0x68]
xor ecx, esi
xor eax, eax
or eax, edx
mov esi, dword [ebp - 0x808]
mov edx, dword [ebp - 0x808]
mov dword [edx - 0xc], eax
mov eax, dword [edx - 0x38]
mov dword [edx - 0x10], ecx
mul ecx
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 - 0x810]
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 ebx, dword [ebp - 0x808]
mov dword [ecx - 0x38], eax
mov ecx, edx
shld edx, esi, 1
shr ecx, 0x1f
xor eax, eax
add esi, esi
or ecx, esi
or eax, edx
mov dword [ebx - 0x40], ecx
mov edi, dword [ebx - 0x58]
mov dword [ebx - 0x3c], eax
mov eax, dword [ebx - 0x60]
mul edi
mov esi, dword [ebx - 0x54]
shld edx, eax, 1
mov ecx, dword [ebx - 4]
add eax, eax
add eax, dword [ebx - 0x60]
adc edx, dword [ebx - 0x5c]
add eax, edi
mov dword [ebx - 0x60], eax
adc edx, esi
mov dword [ebx - 0x5c], edx
xor ecx, dword [ebx - 0x5c]
mov edx, dword [ebx - 8]
xor edx, eax
mov dword [ebx - 8], ecx
xor eax, eax
mov dword [ebp - 0x80c], ecx
or eax, edx
mov dword [ebx - 4], eax
mov eax, ebx
mov ebx, dword [eax - 0x30]
mov eax, ebx
mul ecx
shld edx, eax, 1
add eax, eax
add eax, ebx
mov ebx, dword [ebp - 0x808]
adc edx, dword [ebx - 0x2c]
add eax, ecx
mov dword [ebx - 0x30], eax
adc edx, dword [ebx - 4]
xor eax, eax
mov dword [ebx - 0x2c], edx
mov edx, ebx
xor edi, dword [edx - 0x30]
mov ebx, dword [edx - 0x2c]
mov ecx, edi
xor esi, ebx
shl ecx, 8
shrd edi, esi, 0x18
mov dword [ebp - 0x810], ebx
or eax, edi
shr esi, 0x18
mov dword [edx - 0x58], eax
or ecx, esi
mov dword [edx - 0x54], ecx
mov edi, eax
mov esi, ecx
mov ecx, dword [edx - 0x60]
mov eax, ecx
mul edi
shld edx, eax, 1
add eax, eax
add eax, ecx
mov ecx, dword [ebp - 0x808]
adc edx, dword [ecx - 0x5c]
add eax, edi
mov dword [ecx - 0x60], eax
mov eax, dword [ebp - 0x80c]
adc edx, esi
xor eax, dword [ecx - 0x60]
mov dword [ecx - 0x5c], edx
mov edx, dword [ecx - 4]
xor edx, dword [ecx - 0x5c]
mov ecx, eax
mov dword [ebp - 0x80c], eax
xor eax, eax
shrd dword [ebp - 0x80c], edx, 0x10
or eax, dword [ebp - 0x80c]
shl ecx, 0x10
shr edx, 0x10
or ecx, edx
mov edx, dword [ebp - 0x808]
mov dword [edx - 4], ecx
mov ecx, eax
mov dword [edx - 8], eax
mov eax, dword [edx - 0x30]
mul ecx
mov ebx, dword [ebp - 0x808]
shld edx, eax, 1
add eax, eax
add eax, dword [ebx - 0x30]
adc edx, dword [ebp - 0x810]
add eax, ecx
mov dword [ebx - 0x30], eax
adc edx, dword [ebx - 4]
xor edi, eax
xor esi, edx
mov dword [ebx - 0x2c], edx
mov ecx, esi
xor eax, eax
shld esi, edi, 1
shr ecx, 0x1f
add edi, edi
or eax, esi
or ecx, edi
mov dword [ebx - 0x54], eax
mov dword [ebx - 0x58], ecx
sub ebx, 0xffffff80
dec dword [ebp - 0x818]
mov dword [ebp - 0x808], ebx
jne 0x5a7cd0
lea ebx, [ebp - 0x7c]
mov dword [ebp - 0x818], 8
mov dword [ebp - 0x808], ebx
jmp 0x5a8640
mov esi, dword [ebx - 0x288]
mov eax, dword [ebp - 0x808]
mov ebx, dword [ebx - 0x284]
mov ecx, dword [eax - 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
mov eax, dword [ebp - 0x808]
mov dword [ecx - 0x384], edx
mov esi, edx
mov edx, edi
xor edx, dword [ecx - 0x88]
mov ecx, esi
xor ecx, dword [eax - 0x84]
xor eax, eax
or eax, edx
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 edi, eax
mov dword [edx - 0x84], ecx
mov ecx, dword [edx - 0x188]
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
adc edx, dword [esi - 0x37c]
add eax, edi
mov dword [esi - 0x380], eax
adc edx, ebx
mov dword [esi - 0x37c], edx
mov edx, eax
xor edx, dword [esi - 0x80]
xor eax, eax
mov ecx, dword [esi - 0x37c]
or eax, edx
xor ecx, dword [esi - 0x7c]
mov dword [esi - 0x7c], eax
mov eax, dword [ebp - 0x808]
mov dword [esi - 0x80], ecx
mov esi, ecx
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
or ecx, esi
mov dword [edi - 0x27c], eax
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, edi
mov esi, dword [eax - 0x304]
mov ecx, esi
xor ecx, dword [eax - 4]
xor edx, dword [eax - 8]
xor eax, eax
or eax, edx
mov edx, dword [ebp - 0x808]
mov dword [edx - 8], ecx
mov ecx, dword [edx - 0x108]
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 - 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 ecx, esi
mov esi, dword [edi - 0x200]
or eax, ebx
mov dword [edi - 0x208], ecx
mov ecx, dword [edi - 0x300]
mov ebx, dword [edi - 0x1fc]
mov dword [edi - 0x204], eax
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 edx, edi
xor edx, dword [eax]
mov esi, dword [eax - 0x2fc]
mov ecx, esi
xor ecx, dword [eax + 4]
xor eax, eax
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 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 - 0x1fc]
adc edx, esi
mov ebx, dword [edi]
mov dword [edi - 0x300], eax
xor ebx, ecx
mov dword [edi - 0x2fc], edx
mov eax, edx
mov edx, dword [edi + 4]
mov ecx, ebx
xor edx, eax
shl ecx, 0x10
shrd ebx, edx, 0x10
xor eax, eax
or eax, ebx
shr edx, 0x10
mov dword [edi], eax
mov ebx, eax
mov eax, dword [ebp - 0x808]
or ecx, edx
mov dword [edi + 4], ecx
mov edi, ecx
mov dword [ebp - 0x810], ebx
mov ecx, dword [eax - 0x100]
mov eax, ecx
mul ebx
shld edx, eax, 1
add eax, eax
add eax, ecx
mov ecx, dword [ebp - 0x808]
adc edx, dword [ecx - 0xfc]
add eax, ebx
mov ebx, dword [ebp - 0x808]
adc edx, edi
mov dword [ecx - 0x100], eax
mov dword [ecx - 0xfc], edx
mov ecx, eax
mov eax, dword [ebp - 0x808]
mov edx, dword [ebx - 0x200]
xor edx, ecx
mov eax, dword [eax - 0xfc]
xor esi, eax
xor eax, eax
mov ecx, esi
shld esi, edx, 1
shr ecx, 0x1f
or eax, esi
add edx, edx
or ecx, edx
mov edx, ebx
mov esi, dword [edx - 0x27c]
mov dword [edx - 0x1fc], eax
mov eax, dword [edx - 0x388]
mov dword [edx - 0x200], ecx
mov ecx, dword [edx - 0x280]
mul ecx
shld edx, eax, 1
add eax, eax
add eax, dword [ebx - 0x388]
adc edx, dword [ebx - 0x384]
add eax, ecx
mov dword [ebx - 0x388], eax
mov eax, ebx
mov ebx, dword [ebp - 0x810]
adc edx, esi
mov dword [eax - 0x384], edx
mov edx, eax
xor eax, eax
xor edi, dword [edx - 0x384]
xor ebx, dword [edx - 0x388]
or eax, ebx
mov dword [edx], edi
mov dword [edx + 4], eax
mov ebx, edi
mov edi, dword [edx - 0x108]
mov eax, edi
mul ebx
mov dword [ebp - 0x80c], ebx
shld edx, eax, 1
add eax, eax
add eax, edi
mov edi, dword [ebp - 0x808]
adc edx, dword [edi - 0x104]
add eax, ebx
mov dword [edi - 0x108], eax
adc edx, dword [edi + 4]
xor ecx, eax
mov ebx, edx
mov dword [ebp - 0x810], ecx
mov dword [edi - 0x104], edx
xor esi, ebx
mov edx, dword [ebp - 0x810]
xor eax, eax
shrd edx, esi, 0x18
shl ecx, 8
shr esi, 0x18
or eax, edx
or ecx, esi
mov dword [edi - 0x280], eax
mov dword [edi - 0x27c], ecx
mov edi, eax
mov eax, dword [ebp - 0x808]
mov dword [ebp - 0x814], ebx
mov esi, dword [eax - 0x27c]
mov ecx, dword [eax - 0x388]
mov eax, ecx
mul edi
shld edx, eax, 1
mov ebx, dword [ebp - 0x808]
add eax, eax
add eax, ecx
mov ecx, dword [ebp - 0x808]
adc edx, dword [ecx - 0x384]
add eax, edi
mov dword [ecx - 0x388], eax
adc edx, esi
mov eax, dword [ebp - 0x80c]
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 - 0x80c], eax
xor eax, eax
shrd dword [ebp - 0x80c], edx, 0x10
or eax, dword [ebp - 0x80c]
shr edx, 0x10
shl ecx, 0x10
or ecx, edx
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 [ebx - 0x108]
adc edx, dword [ebp - 0x814]
add eax, ecx
mov dword [ebx - 0x108], eax
adc edx, dword [ebx + 4]
xor edi, eax
xor esi, edx
mov dword [ebx - 0x104], edx
xor eax, eax
mov ecx, esi
shld esi, edi, 1
shr ecx, 0x1f
or eax, esi
add edi, edi
mov dword [ebx - 0x27c], eax
or ecx, edi
mov edi, dword [ebx - 0x208]
mov esi, dword [ebx - 0x204]
mov dword [ebx - 0x280], ecx
mov ecx, dword [ebx - 0x380]
mov eax, ecx
mul edi
shld edx, eax, 1
add eax, eax
add eax, ecx
mov ecx, dword [ebx - 0x84]
adc edx, dword [ebx - 0x37c]
add eax, edi
mov dword [ebx - 0x380], eax
adc edx, esi
mov dword [ebx - 0x37c], edx
mov edx, dword [ebx - 0x88]
xor ecx, dword [ebx - 0x37c]
xor edx, eax
xor eax, eax
mov dword [ebx - 0x88], ecx
or eax, edx
mov dword [ebp - 0x80c], ecx
mov dword [ebx - 0x84], eax
mov eax, ebx
mov ebx, dword [eax - 0x100]
mov eax, ebx
mul ecx
shld edx, eax, 1
add eax, eax
add eax, ebx
mov ebx, dword [ebp - 0x808]
adc edx, dword [ebx - 0xfc]
add eax, ecx
mov dword [ebx - 0x100], eax
adc edx, dword [ebx - 0x84]
mov dword [ebx - 0xfc], edx
xor eax, eax
mov edx, ebx
xor edi, dword [edx - 0x100]
mov ebx, dword [edx - 0xfc]
mov ecx, edi
xor esi, ebx
shl ecx, 8
shrd edi, esi, 0x18
mov dword [ebp - 0x814], ebx
or eax, edi
shr esi, 0x18
mov dword [edx - 0x208], eax
or ecx, esi
mov dword [edx - 0x204], ecx
mov edi, eax
mov esi, ecx
mov ebx, dword [ebp - 0x808]
mov ecx, dword [edx - 0x380]
mov eax, ecx
mul edi
shld edx, eax, 1
add eax, eax
add eax, ecx
mov ecx, dword [ebp - 0x808]
adc edx, dword [ecx - 0x37c]
add eax, edi
mov dword [ecx - 0x380], eax
adc edx, esi
mov eax, dword [ebp - 0x80c]
xor eax, dword [ecx - 0x380]
mov dword [ecx - 0x37c], edx
mov edx, dword [ecx - 0x84]
xor edx, dword [ecx - 0x37c]
mov ecx, eax
mov dword [ebp - 0x80c], eax
xor eax, eax
shrd dword [ebp - 0x80c], edx, 0x10
or eax, dword [ebp - 0x80c]
shr edx, 0x10
shl ecx, 0x10
or ecx, edx
mov edx, dword [ebp - 0x808]
mov dword [edx - 0x88], eax
mov dword [edx - 0x84], ecx
mov ecx, eax
mov eax, dword [edx - 0x100]
mul ecx
shld edx, eax, 1
add eax, eax
add eax, dword [ebx - 0x100]
adc edx, dword [ebp - 0x814]
add eax, ecx
mov dword [ebx - 0x100], eax
adc edx, dword [ebx - 0x84]
xor edi, eax
xor esi, edx
mov dword [ebx - 0xfc], edx
mov ecx, esi
xor eax, eax
shld esi, edi, 1
shr ecx, 0x1f
or eax, esi
add edi, edi
mov esi, dword [ebx - 0x1fc]
or ecx, edi
mov edi, dword [ebx - 0x200]
mov dword [ebx - 0x204], eax
mov dword [ebx - 0x208], ecx
mov ecx, dword [ebx - 0x308]
mov eax, ecx
mul edi
shld edx, eax, 1
add eax, eax
add eax, ecx
adc edx, dword [ebx - 0x304]
add eax, edi
mov dword [ebx - 0x308], eax
adc edx, esi
mov dword [ebx - 0x304], edx
mov edx, dword [ebx - 0x80]
xor edx, eax
mov ecx, dword [ebx - 0x7c]
xor ecx, dword [ebx - 0x304]
xor eax, eax
or eax, edx
mov dword [ebx - 0x80], ecx
mov dword [ebx - 0x7c], eax
mov eax, ebx
mov dword [ebp - 0x80c], ecx
mov ebx, dword [eax - 0x188]
mov eax, ebx
mul ecx
shld edx, eax, 1
add eax, eax
add eax, ebx
mov ebx, dword [ebp - 0x808]
adc edx, dword [ebx - 0x184]
add eax, ecx
mov dword [ebx - 0x188], eax
adc edx, dword [ebx - 0x7c]
xor eax, eax
mov dword [ebx - 0x184], edx
mov edx, ebx
xor edi, dword [edx - 0x188]
mov ebx, dword [edx - 0x184]
mov ecx, edi
xor esi, ebx
shl ecx, 8
shrd edi, esi, 0x18
mov dword [ebp - 0x814], ebx
or eax, edi
shr esi, 0x18
mov dword [edx - 0x200], eax
or ecx, esi
mov dword [edx - 0x1fc], ecx
mov edi, eax
mov esi, ecx
mov ebx, dword [ebp - 0x808]
mov ecx, dword [edx - 0x308]
mov eax, ecx
mul edi
shld edx, eax, 1
add eax, eax
add eax, ecx
mov ecx, dword [ebp - 0x808]
adc edx, dword [ecx - 0x304]
add eax, edi
mov dword [ecx - 0x308], eax
mov eax, dword [ebp - 0x80c]
adc edx, esi
xor eax, dword [ecx - 0x308]
mov dword [ecx - 0x304], edx
mov edx, dword [ecx - 0x7c]
xor edx, dword [ecx - 0x304]
mov ecx, eax
mov dword [ebp - 0x80c], eax
xor eax, eax
shrd dword [ebp - 0x80c], edx, 0x10
or eax, dword [ebp - 0x80c]
shr edx, 0x10
shl ecx, 0x10
or ecx, edx
mov edx, dword [ebp - 0x808]
mov dword [edx - 0x80], eax
mov dword [edx - 0x7c], ecx
mov ecx, eax
mov eax, dword [edx - 0x188]
mul ecx
shld edx, eax, 1
add eax, eax
add eax, dword [ebx - 0x188]
adc edx, dword [ebp - 0x814]
add eax, ecx
mov dword [ebx - 0x188], eax
adc edx, dword [ebx - 0x7c]
xor edi, eax
xor esi, edx
mov dword [ebx - 0x184], edx
mov ecx, esi
shr ecx, 0x1f
xor eax, eax
shld esi, edi, 1
or eax, esi
add edi, edi
mov dword [ebx - 0x1fc], eax
or ecx, edi
mov edi, dword [ebx - 0x288]
mov esi, dword [ebx - 0x284]
mov dword [ebx - 0x200], ecx
mov ecx, dword [ebx - 0x300]
mov eax, ecx
mul edi
shld edx, eax, 1
add eax, eax
add eax, ecx
mov ecx, dword [ebx - 4]
adc edx, dword [ebx - 0x2fc]
add eax, edi
mov dword [ebx - 0x300], eax
adc edx, esi
mov dword [ebx - 0x2fc], edx
xor ecx, dword [ebx - 0x2fc]
mov edx, dword [ebx - 8]
xor edx, eax
mov dword [ebx - 8], ecx
xor eax, eax
mov dword [ebp - 0x80c], ecx
or eax, edx
mov dword [ebx - 4], eax
mov eax, ebx
mov ebx, dword [eax - 0x180]
mov eax, ebx
mul ecx
shld edx, eax, 1
add eax, eax
add eax, ebx
mov ebx, dword [ebp - 0x808]
adc edx, dword [ebx - 0x17c]
add eax, ecx
mov dword [ebx - 0x180], eax
adc edx, dword [ebx - 4]
xor eax, eax
mov dword [ebx - 0x17c], edx
mov edx, ebx
xor edi, dword [edx - 0x180]
mov ebx, dword [edx - 0x17c]
mov ecx, edi
xor esi, ebx
shl ecx, 8
shrd edi, esi, 0x18
mov dword [ebp - 0x814], ebx
or eax, edi
shr esi, 0x18
mov dword [edx - 0x288], eax
or ecx, esi
mov dword [edx - 0x284], ecx
mov edi, eax
mov esi, ecx
mov ecx, dword [edx - 0x300]
mov eax, ecx
mul edi
shld edx, eax, 1
add eax, eax
add eax, ecx
mov ecx, dword [ebp - 0x808]
adc edx, dword [ecx - 0x2fc]
add eax, edi
mov dword [ecx - 0x300], eax
mov eax, dword [ebp - 0x80c]
adc edx, esi
xor eax, dword [ecx - 0x300]
mov dword [ecx - 0x2fc], edx
mov edx, dword [ecx - 4]
xor edx, dword [ecx - 0x2fc]
mov ecx, eax
mov dword [ebp - 0x80c], eax
xor eax, eax
shrd dword [ebp - 0x80c], edx, 0x10
or eax, dword [ebp - 0x80c]
shl ecx, 0x10
shr edx, 0x10
or ecx, edx
mov edx, dword [ebp - 0x808]
mov ebx, dword [ebp - 0x808]
mov dword [edx - 8], eax
mov dword [edx - 4], ecx
mov ecx, eax
mov eax, dword [edx - 0x180]
mul ecx
shld edx, eax, 1
add eax, eax
add eax, dword [ebx - 0x180]
adc edx, dword [ebp - 0x814]
add eax, ecx
mov dword [ebx - 0x180], eax
adc edx, dword [ebx - 4]
xor edi, eax
xor esi, edx
mov dword [ebx - 0x17c], edx
mov ecx, esi
xor eax, eax
shld esi, edi, 1
shr ecx, 0x1f
add edi, edi
or eax, esi
or ecx, edi
mov dword [ebx - 0x284], eax
mov dword [ebx - 0x288], ecx
add ebx, 0x10
dec dword [ebp - 0x818]
mov dword [ebp - 0x808], ebx
jne 0x5a8640
mov esi, dword [ebp - 0x81c]
lea eax, [ebp - 0x804]
push eax
push esi
call fcn.005a7ad0
lea eax, [ebp - 0x404]
push eax
push esi
call fcn.005a7bd0
mov ecx, dword [ebp - 4]
add esp, 0x10
xor ecx, ebp
pop edi
pop esi
pop ebx
call fcn.005e0482
mov esp, ebp
pop ebp
ret