Function at 0x40bd20
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
mov esi, edx
xor edx, edx
push ebx
mov ebx, ecx
mov ecx, 0x100
and esp, 0xfffffff0
sub esp, 0x8d0
lea edi, [esp + 0xd0]
rep movsd dword es:[edi], dword [esi]
mov esi, ebx
lea esi, [esi]
mov ecx, dword [eax + edx*8]
mov ebx, dword [eax + edx*8 + 4]
xor dword [esp + edx*8 + 0xd0], ecx
xor dword [esp + edx*8 + 0xd4], ebx
add edx, 1
cmp edx, 0x80
jne 0x40bd48
lea edi, [esp + 0x4d0]
mov ebx, esi
mov ecx, 0x100
lea esi, [esp + 0xd0]
rep movsd dword es:[edi], dword [esi]
nop
mov eax, dword [ebx + ecx*8]
mov edx, dword [ebx + ecx*8 + 4]
xor dword [esp + ecx*8 + 0x4d0], eax
xor dword [esp + ecx*8 + 0x4d4], edx
add ecx, 1
cmp ecx, 0x80
jne 0x40bd80
lea eax, [esp + 0xd0]
mov dword [esp + 0x18], ebx
mov dword [esp + 0xcc], eax
mov esi, eax
lea esi, [esi]
mov eax, dword [esi]
mul dword [esi + 0x20]
mov ecx, dword [esi + 0x20]
mov ebx, dword [esi + 0x24]
shld edx, eax, 1
add eax, eax
add ecx, dword [esi]
adc ebx, dword [esi + 4]
add eax, ecx
adc edx, ebx
mov dword [esp + 0x80], eax
xor eax, dword [esi + 0x60]
mov dword [esp + 0x84], edx
xor edx, dword [esi + 0x64]
mov dword [esp + 0x94], eax
mov ebx, dword [esp + 0x94]
mov dword [esp + 0x90], edx
mov eax, edx
mul dword [esi + 0x40]
mov ecx, edx
mov edx, eax
shld ecx, eax, 1
add edx, eax
mov eax, edx
mov edx, ecx
mov ecx, dword [esp + 0x90]
add ecx, dword [esi + 0x40]
adc ebx, dword [esi + 0x44]
add eax, ecx
adc edx, ebx
mov dword [esp + 0xa0], eax
mov ecx, edx
mov edx, eax
xor edx, dword [esi + 0x20]
mov dword [esp + 0xa4], ecx
xor ecx, dword [esi + 0x24]
mov eax, edx
mov edx, ecx
mov ecx, eax
shrd ecx, edx, 0x18
mov ebx, edx
shrd ebx, eax, 0x18
mov dword [esp + 0xb0], ecx
mov eax, dword [esp + 0x80]
mul dword [esp + 0xb0]
mov dword [esp + 0xb4], ebx
mov ecx, dword [esp + 0x80]
mov ebx, dword [esp + 0x84]
shld edx, eax, 1
add eax, eax
add ecx, dword [esp + 0xb0]
adc ebx, dword [esp + 0xb4]
add eax, ecx
adc edx, ebx
mov ecx, eax
mov eax, dword [esp + 0x90]
mov ebx, edx
mov edx, dword [esp + 0x94]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], ebx
xor eax, ecx
xor edx, ebx
mov ecx, eax
shrd ecx, edx, 0x10
mov ebx, edx
shrd ebx, eax, 0x10
mov dword [esp + 0x28], ecx
mov eax, dword [esp + 0xa0]
mul dword [esp + 0x28]
mov dword [esp + 0x2c], ebx
mov ecx, dword [esp + 0xa0]
mov ebx, dword [esp + 0xa4]
shld edx, eax, 1
add eax, eax
add ecx, dword [esp + 0x28]
adc ebx, dword [esp + 0x2c]
add eax, ecx
adc edx, ebx
mov ecx, eax
mov eax, dword [esp + 0xb0]
mov ebx, edx
mov edx, dword [esp + 0xb4]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], ebx
xor eax, ecx
xor edx, ebx
mov ebx, dword [esi + 0x2c]
mov ecx, edx
mov edx, eax
shld edx, ecx, 1
shld ecx, eax, 1
mov eax, dword [esi + 8]
mov dword [esp + 0x38], edx
mul dword [esi + 0x28]
mov dword [esp + 0x3c], ecx
mov ecx, dword [esi + 0x28]
shld edx, eax, 1
add eax, eax
add ecx, dword [esi + 8]
adc ebx, dword [esi + 0xc]
add eax, ecx
adc edx, ebx
mov dword [esp + 0x80], eax
xor eax, dword [esi + 0x68]
mov dword [esp + 0x84], edx
xor edx, dword [esi + 0x6c]
mov dword [esp + 0x94], eax
mov dword [esp + 0x90], edx
mov eax, edx
mul dword [esi + 0x48]
mov ebx, dword [esp + 0x94]
mov ecx, edx
mov edx, eax
shld ecx, eax, 1
add edx, eax
mov eax, edx
mov edx, ecx
mov ecx, dword [esp + 0x90]
add ecx, dword [esi + 0x48]
adc ebx, dword [esi + 0x4c]
add eax, ecx
adc edx, ebx
mov dword [esp + 0xa0], eax
mov ebx, dword [esp + 0x84]
mov ecx, edx
mov edx, eax
xor edx, dword [esi + 0x28]
mov dword [esp + 0xa4], ecx
xor ecx, dword [esi + 0x2c]
mov eax, edx
shrd edx, ecx, 0x18
shrd ecx, eax, 0x18
mov eax, dword [esp + 0x80]
mov dword [esp + 0xb0], edx
mul dword [esp + 0xb0]
mov dword [esp + 0xb4], ecx
mov ecx, dword [esp + 0x80]
shld edx, eax, 1
add eax, eax
add ecx, dword [esp + 0xb0]
adc ebx, dword [esp + 0xb4]
add eax, ecx
adc edx, ebx
mov ecx, eax
mov eax, dword [esp + 0x90]
mov ebx, edx
mov edx, dword [esp + 0x94]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], ebx
xor eax, ecx
xor edx, ebx
mov ebx, dword [esp + 0xa4]
mov ecx, edx
mov edx, eax
shrd edx, ecx, 0x10
shrd ecx, eax, 0x10
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x48], edx
mul dword [esp + 0x48]
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0xa0]
shld edx, eax, 1
add eax, eax
add ecx, dword [esp + 0x48]
adc ebx, dword [esp + 0x4c]
add eax, ecx
adc edx, ebx
mov ecx, eax
mov eax, dword [esp + 0xb0]
mov ebx, edx
mov edx, dword [esp + 0xb4]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x54], ebx
xor eax, ecx
xor edx, ebx
mov ebx, dword [esi + 0x34]
mov ecx, edx
mov edx, eax
shld edx, ecx, 1
shld ecx, eax, 1
mov eax, dword [esi + 0x10]
mov dword [esp + 0x58], edx
mul dword [esi + 0x30]
mov dword [esp + 0x5c], ecx
mov ecx, dword [esi + 0x30]
shld edx, eax, 1
add eax, eax
add ecx, dword [esi + 0x10]
adc ebx, dword [esi + 0x14]
add eax, ecx
adc edx, ebx
mov dword [esp + 0x80], eax
xor eax, dword [esi + 0x70]
mov dword [esp + 0x84], edx
xor edx, dword [esi + 0x74]
mov dword [esp + 0x94], eax
mov ebx, dword [esp + 0x94]
mov dword [esp + 0x90], edx
mov eax, edx
mul dword [esi + 0x50]
mov ecx, edx
mov edx, eax
shld ecx, eax, 1
add edx, eax
mov eax, edx
mov edx, ecx
mov ecx, dword [esp + 0x90]
add ecx, dword [esi + 0x50]
adc ebx, dword [esi + 0x54]
add eax, ecx
adc edx, ebx
mov dword [esp + 0xa0], eax
mov ecx, edx
mov edx, eax
xor edx, dword [esi + 0x30]
mov dword [esp + 0xa4], ecx
xor ecx, dword [esi + 0x34]
mov eax, edx
shrd edx, ecx, 0x18
shrd ecx, eax, 0x18
mov eax, dword [esp + 0x80]
mov dword [esp + 0xb4], ecx
mov dword [esp + 0xb0], edx
mul dword [esp + 0xb0]
mov ecx, dword [esp + 0x80]
mov ebx, dword [esp + 0x84]
shld edx, eax, 1
add eax, eax
add ecx, dword [esp + 0xb0]
adc ebx, dword [esp + 0xb4]
add eax, ecx
adc edx, ebx
mov ecx, eax
mov eax, dword [esp + 0x90]
mov ebx, edx
mov edx, dword [esp + 0x94]
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], ebx
xor eax, ecx
xor edx, ebx
mov ebx, dword [esp + 0xa4]
mov ecx, edx
mov edx, eax
shrd edx, ecx, 0x10
shrd ecx, eax, 0x10
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x68], edx
mul dword [esp + 0x68]
mov dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0xa0]
shld edx, eax, 1
add eax, eax
add ecx, dword [esp + 0x68]
adc ebx, dword [esp + 0x6c]
add eax, ecx
adc edx, ebx
mov ecx, eax
mov eax, dword [esp + 0xb0]
mov ebx, edx
mov edx, dword [esp + 0xb4]
mov dword [esp + 0x90], ecx
mov dword [esp + 0x94], ebx
xor eax, ecx
xor edx, ebx
mov ebx, dword [esi + 0x3c]
mov ecx, edx
mov edx, eax
shld edx, ecx, 1
shld ecx, eax, 1
mov eax, dword [esi + 0x18]
mov dword [esp + 0xc0], edx
mul dword [esi + 0x38]
mov dword [esp + 0xc4], ecx
mov ecx, dword [esi + 0x38]
shld edx, eax, 1
add eax, eax
add ecx, dword [esi + 0x18]
adc ebx, dword [esi + 0x1c]
add eax, ecx
adc edx, ebx
mov dword [esp + 0x70], eax
xor eax, dword [esi + 0x78]
mov dword [esp + 0x74], edx
xor edx, dword [esi + 0x7c]
mov dword [esp + 0xa4], eax
mov ebx, dword [esp + 0xa4]
mov dword [esp + 0xa0], edx
mov eax, edx
mul dword [esi + 0x58]
mov ecx, edx
mov edx, eax
shld ecx, eax, 1
add edx, eax
mov eax, edx
mov edx, ecx
mov ecx, dword [esp + 0xa0]
add ecx, dword [esi + 0x58]
adc ebx, dword [esi + 0x5c]
add eax, ecx
adc edx, ebx
mov dword [esp + 0x80], eax
mov ebx, dword [esp + 0x74]
mov ecx, edx
mov edx, eax
xor edx, dword [esi + 0x38]
mov dword [esp + 0x84], ecx
xor ecx, dword [esi + 0x3c]
mov eax, edx
shrd edx, ecx, 0x18
shrd ecx, eax, 0x18
mov eax, dword [esp + 0x70]
mov dword [esp + 0xb0], edx
mul dword [esp + 0xb0]
mov dword [esp + 0xb4], ecx
mov ecx, dword [esp + 0x70]
shld edx, eax, 1
add eax, eax
add ecx, dword [esp + 0xb0]
adc ebx, dword [esp + 0xb4]
add eax, ecx
adc edx, ebx
mov ecx, eax
mov eax, dword [esp + 0xa0]
mov ebx, edx
mov edx, dword [esp + 0xa4]
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], ebx
xor eax, ecx
xor edx, ebx
mov ecx, edx
mov edx, eax
shrd edx, ecx, 0x10
shrd ecx, eax, 0x10
mov eax, dword [esp + 0x80]
mov dword [esp + 0xa0], edx
mul dword [esp + 0xa0]
mov dword [esp + 0xa4], ecx
mov ecx, dword [esp + 0x80]
mov ebx, dword [esp + 0x84]
shld edx, eax, 1
add eax, eax
add ecx, dword [esp + 0xa0]
adc ebx, dword [esp + 0xa4]
add eax, ecx
adc edx, ebx
mov ecx, eax
mov eax, dword [esp + 0xb0]
mov ebx, edx
mov edx, dword [esp + 0xb4]
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], ebx
xor eax, ecx
xor edx, ebx
mov ebx, dword [esp + 0x24]
mov ecx, edx
mov edx, eax
shld edx, ecx, 1
shld ecx, eax, 1
mov eax, dword [esp + 0x58]
mov dword [esp + 0xb0], edx
mul dword [esp + 0x20]
mov dword [esp + 0xb4], ecx
mov ecx, dword [esp + 0x20]
shld edx, eax, 1
add eax, eax
add ecx, dword [esp + 0x58]
adc ebx, dword [esp + 0x5c]
add eax, ecx
adc edx, ebx
mov ecx, eax
mov eax, dword [esp + 0xa0]
mov ebx, edx
mov edx, dword [esp + 0xa4]
mov dword [esp + 0xa0], ecx
mov dword [esp + 0xa4], ebx
xor eax, ecx
mov ecx, dword [esp + 0x90]
xor edx, ebx
mov ebx, dword [esp + 0x94]
xchg edx, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
mul dword [esp + 0x90]
shld edx, eax, 1
add eax, eax
add ecx, dword [esp + 0x20]
adc ebx, dword [esp + 0x24]
add eax, ecx
adc edx, ebx
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], edx
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
xor edx, dword [esp + 0x90]
xor ecx, dword [esp + 0x94]
mov ebx, dword [esp + 0xa4]
mov eax, edx
shrd edx, ecx, 0x18
shrd ecx, eax, 0x18
mov dword [esp + 0x58], edx
mov eax, edx
mul dword [esp + 0xa0]
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0xa0]
shld edx, eax, 1
add eax, eax
add ecx, dword [esp + 0x58]
adc ebx, dword [esp + 0x5c]
add ecx, eax
adc ebx, edx
mov dword [esi], ecx
xor ecx, dword [esp + 0x20]
mov dword [esi + 4], ebx
xor ebx, dword [esp + 0x24]
mov eax, ecx
shrd ecx, ebx, 0x10
shrd ebx, eax, 0x10
mov eax, dword [esp + 0x90]
mov dword [esi + 0x78], ecx
mov dword [esi + 0x7c], ebx
mul ecx
shld edx, eax, 1
add eax, eax
add ecx, dword [esp + 0x90]
adc ebx, dword [esp + 0x94]
add eax, ecx
adc edx, ebx
mov dword [esi + 0x50], eax
xor eax, dword [esp + 0x58]
mov dword [esi + 0x54], edx
xor edx, dword [esp + 0x5c]
mov ebx, dword [esp + 0x44]
mov ecx, eax
shld eax, edx, 1
shld edx, ecx, 1
mov ecx, dword [esp + 0x40]
mov dword [esi + 0x28], eax
mov eax, dword [esp + 0xc0]
mov dword [esi + 0x2c], edx
mul dword [esp + 0x40]
shld edx, eax, 1
add eax, eax
add ecx, dword [esp + 0xc0]
adc ebx, dword [esp + 0xc4]
add eax, ecx
adc edx, ebx
mov ecx, eax
mov eax, dword [esp + 0x28]
mov ebx, edx
mov edx, dword [esp + 0x2c]
mov dword [esp + 0xa0], ecx
mov dword [esp + 0xa4], ebx
xor eax, ecx
mov ecx, dword [esp + 0x80]
xor edx, ebx
mov ebx, dword [esp + 0x84]
xchg edx, eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], edx
mul dword [esp + 0x80]
shld edx, eax, 1
add eax, eax
add ecx, dword [esp + 0x58]
adc ebx, dword [esp + 0x5c]
add eax, ecx
mov ecx, dword [esp + 0xc4]
adc edx, ebx
mov dword [esp + 0x90], eax
mov ebx, dword [esp + 0xa4]
mov dword [esp + 0x94], edx
mov edx, dword [esp + 0xc0]
xor ecx, dword [esp + 0x94]
xor edx, dword [esp + 0x90]
mov eax, edx
shrd edx, ecx, 0x18
mov dword [esp + 0x80], edx
shrd ecx, eax, 0x18
mov eax, edx
mul dword [esp + 0xa0]
mov dword [esp + 0x84], ecx
mov ecx, dword [esp + 0xa0]
shld edx, eax, 1
add eax, eax
add ecx, dword [esp + 0x80]
adc ebx, dword [esp + 0x84]
add ecx, eax
adc ebx, edx
mov dword [esi + 8], ecx
xor ecx, dword [esp + 0x58]
mov dword [esi + 0xc], ebx
xor ebx, dword [esp + 0x5c]
mov eax, ecx
shrd ecx, ebx, 0x10
shrd ebx, eax, 0x10
mov eax, dword [esp + 0x90]
mov dword [esi + 0x60], ecx
mov dword [esi + 0x64], ebx
mul ecx
shld edx, eax, 1
add eax, eax
add ecx, dword [esp + 0x90]
adc ebx, dword [esp + 0x94]
add eax, ecx
adc edx, ebx
mov dword [esi + 0x58], eax
xor eax, dword [esp + 0x80]
mov dword [esi + 0x5c], edx
xor edx, dword [esp + 0x84]
mov ebx, dword [esp + 0x64]
mov ecx, eax
shld eax, edx, 1
shld edx, ecx, 1
mov ecx, dword [esp + 0x60]
mov dword [esi + 0x30], eax
mov eax, dword [esp + 0xb0]
mov dword [esi + 0x34], edx
mul dword [esp + 0x60]
shld edx, eax, 1
add eax, eax
add ecx, dword [esp + 0xb0]
adc ebx, dword [esp + 0xb4]
add eax, ecx
adc edx, ebx
mov ecx, eax
mov eax, dword [esp + 0x48]
mov ebx, edx
mov edx, dword [esp + 0x4c]
mov dword [esp + 0xa0], ecx
mov dword [esp + 0xa4], ebx
xor eax, ecx
mov ecx, dword [esp + 0x30]
xor edx, ebx
mov dword [esp + 0x94], eax
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x90], edx
mov eax, edx
mul dword [esp + 0x30]
shld edx, eax, 1
add eax, eax
add ecx, dword [esp + 0x90]
adc ebx, dword [esp + 0x94]
add eax, ecx
adc edx, ebx
mov ecx, eax
mov eax, dword [esp + 0xb0]
mov ebx, edx
mov edx, dword [esp + 0xb4]
mov dword [esp + 0xb0], ecx
mov dword [esp + 0xb4], ebx
xor eax, ecx
xor edx, ebx
mov ebx, dword [esp + 0xa4]
mov ecx, edx
mov edx, eax
shrd edx, ecx, 0x18
shrd ecx, eax, 0x18
mov dword [esp + 0x80], edx
mov eax, edx
mul dword [esp + 0xa0]
mov dword [esp + 0x84], ecx
mov ecx, dword [esp + 0xa0]
shld edx, eax, 1
add eax, eax
add ecx, dword [esp + 0x80]
adc ebx, dword [esp + 0x84]
add ecx, eax
adc ebx, edx
mov dword [esi + 0x10], ecx
xor ecx, dword [esp + 0x90]
mov dword [esi + 0x14], ebx
xor ebx, dword [esp + 0x94]
mov eax, ecx
shrd ecx, ebx, 0x10
shrd ebx, eax, 0x10
mov eax, dword [esp + 0xb0]
mov dword [esi + 0x68], ecx
mov dword [esi + 0x6c], ebx
mul ecx
shld edx, eax, 1
add eax, eax
add ecx, dword [esp + 0xb0]
adc ebx, dword [esp + 0xb4]
add eax, ecx
adc edx, ebx
mov dword [esi + 0x40], eax
xor eax, dword [esp + 0x80]
mov dword [esi + 0x44], edx
xor edx, dword [esp + 0x84]
mov ebx, dword [esp + 0x74]
mov ecx, eax
shld eax, edx, 1
shld edx, ecx, 1
mov ecx, dword [esp + 0x70]
mov dword [esi + 0x38], eax
mov eax, dword [esp + 0x38]
mov dword [esi + 0x3c], edx
mul dword [esp + 0x70]
shld edx, eax, 1
add eax, eax
add ecx, dword [esp + 0x38]
adc ebx, dword [esp + 0x3c]
add eax, ecx
adc edx, ebx
mov ecx, eax
mov eax, dword [esp + 0x68]
mov ebx, edx
mov edx, dword [esp + 0x6c]
mov dword [esp + 0xb0], ecx
mov dword [esp + 0xb4], ebx
xor eax, ecx
mov ecx, dword [esp + 0x50]
xor edx, ebx
mov dword [esp + 0x94], eax
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x90], edx
mov eax, edx
mul dword [esp + 0x50]
shld edx, eax, 1
add eax, eax
add ecx, dword [esp + 0x90]
adc ebx, dword [esp + 0x94]
add eax, ecx
adc edx, ebx
mov ecx, eax
mov eax, dword [esp + 0x38]
mov ebx, edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0xa0], ecx
mov dword [esp + 0xa4], ebx
xor eax, ecx
xor edx, ebx
mov ebx, dword [esp + 0xb4]
mov ecx, edx
mov edx, eax
shrd edx, ecx, 0x18
shrd ecx, eax, 0x18
mov dword [esp + 0x80], edx
mov eax, edx
mul dword [esp + 0xb0]
mov dword [esp + 0x84], ecx
mov ecx, dword [esp + 0xb0]
shld edx, eax, 1
add eax, eax
add ecx, dword [esp + 0x80]
adc ebx, dword [esp + 0x84]
add ecx, eax
adc ebx, edx
mov dword [esi + 0x18], ecx
xor ecx, dword [esp + 0x90]
mov dword [esi + 0x1c], ebx
xor ebx, dword [esp + 0x94]
mov eax, ecx
shrd ecx, ebx, 0x10
shrd ebx, eax, 0x10
mov dword [esi + 0x70], ecx
mov dword [esi + 0x74], ebx
mov eax, dword [esp + 0xa0]
mul ecx
shld edx, eax, 1
add eax, eax
add ecx, dword [esp + 0xa0]
adc ebx, dword [esp + 0xa4]
add eax, ecx
adc edx, ebx
mov dword [esi + 0x48], eax
xor eax, dword [esp + 0x80]
sub esi, 0xffffff80
mov dword [esi - 0x34], edx
xor edx, dword [esp + 0x84]
mov ecx, eax
shld eax, edx, 1
shld edx, ecx, 1
mov dword [esi - 0x60], eax
lea eax, [esp + 0x4d0]
mov dword [esi - 0x5c], edx
cmp eax, esi
jne 0x40bdb8
mov ebx, dword [esp + 0x18]
lea eax, [esp + 0x150]
mov dword [esp + 0xc8], eax
mov dword [esp + 0xc], ebx
lea esi, [esi]
mov edi, dword [esp + 0xcc]
mov eax, dword [edi]
mul dword [edi + 0x100]
mov ecx, dword [edi + 0x100]
mov ebx, dword [edi + 0x104]
shld edx, eax, 1
add eax, eax
add ecx, dword [edi]
adc ebx, dword [edi + 4]
add eax, ecx
adc edx, ebx
mov dword [esp + 0x80], eax
xor eax, dword [edi + 0x300]
mov dword [esp + 0x84], edx
xor edx, dword [edi + 0x304]
mov dword [esp + 0x94], eax
mov ebx, dword [esp + 0x94]
mov dword [esp + 0x90], edx
mov eax, edx
mov ecx, dword [esp + 0x90]
mul dword [edi + 0x200]
mov edi, edx
mov esi, eax
shld edi, eax, 1
add esi, eax
mov edx, edi
mov edi, dword [esp + 0xcc]
mov eax, esi
add ecx, dword [edi + 0x200]
adc ebx, dword [edi + 0x204]
add eax, ecx
adc edx, ebx
mov dword [esp + 0xa0], eax
mov ecx, edx
mov edx, eax
xor edx, dword [edi + 0x100]
mov dword [esp + 0xa4], ecx
xor ecx, dword [edi + 0x104]
mov eax, edx
mov edx, ecx
mov ecx, eax
shrd ecx, edx, 0x18
mov ebx, edx
shrd ebx, eax, 0x18
mov dword [esp + 0xb0], ecx
mov eax, dword [esp + 0x80]
mul dword [esp + 0xb0]
mov dword [esp + 0xb4], ebx
mov ecx, dword [esp + 0x80]
mov ebx, dword [esp + 0x84]
mov esi, eax
mov edi, edx
shld edi, eax, 1
add esi, eax
add ecx, dword [esp + 0xb0]
adc ebx, dword [esp + 0xb4]
mov eax, esi
mov edx, edi
add eax, ecx
adc edx, ebx
mov ecx, eax
mov eax, dword [esp + 0x90]
mov ebx, edx
mov edx, dword [esp + 0x94]
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], ebx
xor eax, ecx
xor edx, ebx
mov ecx, eax
mov ebx, edx
shrd ecx, edx, 0x10
shrd ebx, eax, 0x10
mov eax, dword [esp + 0xa0]
mov esi, ecx
mov edi, ebx
mov ebx, dword [esp + 0xa4]
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], edi
mul ecx
mov ecx, dword [esp + 0xa0]
shld edx, eax, 1
add eax, eax
add ecx, esi
adc ebx, edi
add eax, ecx
mov edi, dword [esp + 0xcc]
adc edx, ebx
mov ecx, eax
mov eax, dword [esp + 0xb0]
mov ebx, edx
mov edx, dword [esp + 0xb4]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], ebx
mov esi, dword [edi + 0x108]
xor eax, ecx
xor edx, ebx
mov ecx, edx
mov edx, eax
shld edx, ecx, 1
shld ecx, eax, 1
mov eax, dword [edi + 8]
mov dword [esp + 0xb0], edx
mul dword [edi + 0x108]
mov dword [esp + 0xb4], ecx
mov ecx, edi
mov edi, dword [edi + 0x10c]
shld edx, eax, 1
add eax, eax
add esi, dword [ecx + 8]
adc edi, dword [ecx + 0xc]
add eax, esi
adc edx, edi
mov edi, dword [esp + 0xcc]
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], edx
xor eax, dword [edi + 0x308]
xor edx, dword [edi + 0x30c]
mov dword [esp + 0x84], eax
mov dword [esp + 0x80], edx
mov eax, edx
mul dword [edi + 0x208]
mov ecx, dword [esp + 0x80]
mov ebx, dword [esp + 0x84]
mov edi, edx
mov esi, eax
shld edi, eax, 1
add esi, eax
mov edx, edi
mov edi, dword [esp + 0xcc]
mov eax, esi
add ecx, dword [edi + 0x208]
adc ebx, dword [edi + 0x20c]
add eax, ecx
adc edx, ebx
mov ecx, eax
xor ecx, dword [edi + 0x108]
mov dword [esp + 0x90], eax
mov ebx, edx
xor ebx, dword [edi + 0x10c]
mov dword [esp + 0x94], edx
mov eax, ecx
mov edx, eax
mov ecx, ebx
shrd edx, ebx, 0x18
shrd ecx, eax, 0x18
mov eax, dword [esp + 0xc0]
mov dword [esp + 0xa0], edx
mov ebx, dword [esp + 0xc4]
mul dword [esp + 0xa0]
mov dword [esp + 0xa4], ecx
mov ecx, dword [esp + 0xc0]
mov esi, eax
mov edi, edx
shld edi, eax, 1
add esi, eax
add ecx, dword [esp + 0xa0]
adc ebx, dword [esp + 0xa4]
mov eax, esi
mov edx, edi
add eax, ecx
adc edx, ebx
mov ecx, eax
mov eax, dword [esp + 0x80]
mov ebx, edx
mov edx, dword [esp + 0x84]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], ebx
xor eax, ecx
xor edx, ebx
mov ebx, dword [esp + 0x94]
mov ecx, edx
mov edx, eax
shrd edx, ecx, 0x10
shrd ecx, eax, 0x10
mov eax, dword [esp + 0x90]
mov edi, ecx
mov ecx, dword [esp + 0x90]
mov esi, edx
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], edi
mul edx
shld edx, eax, 1
add eax, eax
add ecx, esi
adc ebx, edi
add eax, ecx
adc edx, ebx
mov ecx, eax
mov eax, dword [esp + 0xa0]
mov ebx, edx
mov edx, dword [esp + 0xa4]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], ebx
mov edi, dword [esp + 0xcc]
xor eax, ecx
xor edx, ebx
mov ecx, edx
mov edx, eax
mov esi, dword [edi + 0x180]
shld edx, ecx, 1
shld ecx, eax, 1
mov eax, dword [edi + 0x80]
mov dword [esp + 0x38], edx
mul dword [edi + 0x180]
mov dword [esp + 0x3c], ecx
mov ecx, edi
mov edi, dword [edi + 0x184]
shld edx, eax, 1
add eax, eax
add esi, dword [ecx + 0x80]
adc edi, dword [ecx + 0x84]
add eax, esi
adc edx, edi
mov edi, dword [esp + 0xcc]
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], edx
xor eax, dword [edi + 0x380]
xor edx, dword [edi + 0x384]
mov dword [esp + 0xa4], eax
mov ebx, dword [esp + 0xa4]
mov dword [esp + 0xa0], edx
mov eax, edx
mov ecx, dword [esp + 0xa0]
mul dword [edi + 0x280]
mov edi, edx
mov esi, eax
shld edi, eax, 1
add esi, eax
mov edx, edi
mov edi, dword [esp + 0xcc]
mov eax, esi
add ecx, dword [edi + 0x280]
adc ebx, dword [edi + 0x284]
add eax, ecx
adc edx, ebx
mov ecx, eax
xor ecx, dword [edi + 0x180]
mov dword [esp + 0x80], eax
mov ebx, edx
xor ebx, dword [edi + 0x184]
mov dword [esp + 0x84], edx
mov eax, ecx
mov edx, eax
mov ecx, ebx
shrd edx, ebx, 0x18
shrd ecx, eax, 0x18
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x90], edx
mul dword [esp + 0x90]
mov dword [esp + 0x94], ecx
mov ecx, dword [esp + 0xc0]
mov ebx, dword [esp + 0xc4]
mov esi, eax
mov edi, edx
shld edi, eax, 1
add esi, eax
add ecx, dword [esp + 0x90]
adc ebx, dword [esp + 0x94]
mov eax, esi
mov edx, edi
add eax, ecx
adc edx, ebx
mov ecx, eax
mov eax, dword [esp + 0xa0]
mov ebx, edx
mov edx, dword [esp + 0xa4]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], ebx
xor eax, ecx
xor edx, ebx
mov ebx, dword [esp + 0x84]
mov ecx, edx
mov edx, eax
shrd edx, ecx, 0x10
shrd ecx, eax, 0x10
mov eax, dword [esp + 0x80]
mov dword [esp + 0xa0], edx
mul dword [esp + 0xa0]
mov dword [esp + 0xa4], ecx
mov ecx, dword [esp + 0x80]
mov esi, eax
mov edi, edx
shld edi, eax, 1
add esi, eax
add ecx, dword [esp + 0xa0]
adc ebx, dword [esp + 0xa4]
mov eax, esi
mov edx, edi
add eax, ecx
adc edx, ebx
mov ecx, eax
mov eax, dword [esp + 0x90]
mov ebx, edx
mov edx, dword [esp + 0x94]
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], ebx
xor eax, ecx
xor edx, ebx
mov ebx, dword [esp + 0xcc]
mov ecx, edx
mov edx, eax
shld edx, ecx, 1
shld ecx, eax, 1
mov dword [esp + 0x60], edx
mov eax, dword [ebx + 0x88]
mov dword [esp + 0x64], ecx
mul dword [ebx + 0x188]
mov esi, eax
mov edi, edx
add esi, eax
shld edi, eax, 1
mov eax, esi
mov esi, dword [ebx + 0x188]
mov edx, edi
add esi, dword [ebx + 0x88]
mov edi, dword [ebx + 0x18c]
adc edi, dword [ebx + 0x8c]
add eax, esi
mov dword [esp + 0x68], eax
adc edx, edi
mov edi, dword [esp + 0xcc]
mov dword [esp + 0x6c], edx
xor eax, dword [edi + 0x388]
xor edx, dword [edi + 0x38c]
mov dword [esp + 0x94], eax
mov ebx, dword [esp + 0x94]
mov dword [esp + 0x90], edx
mov eax, edx
mov ecx, dword [esp + 0x90]
mul dword [edi + 0x288]
mov edi, edx
mov esi, eax
shld edi, eax, 1
add esi, eax
mov edx, edi
mov edi, dword [esp + 0xcc]
mov eax, esi
add ecx, dword [edi + 0x288]
adc ebx, dword [edi + 0x28c]
add eax, ecx
adc edx, ebx
mov ecx, eax
xor ecx, dword [edi + 0x188]
mov dword [esp + 0xc0], eax
mov ebx, edx
xor ebx, dword [edi + 0x18c]
mov dword [esp + 0xc4], edx
mov eax, ecx
mov edx, eax
mov ecx, ebx
shrd edx, ebx, 0x18
shrd ecx, eax, 0x18
mov eax, dword [esp + 0x68]
mov dword [esp + 0x80], edx
mov ebx, dword [esp + 0x6c]
mul dword [esp + 0x80]
mov dword [esp + 0x84], ecx
mov ecx, dword [esp + 0x68]
mov esi, eax
mov edi, edx
shld edi, eax, 1
add esi, eax
add ecx, dword [esp + 0x80]
adc ebx, dword [esp + 0x84]
mov eax, esi
mov edx, edi
add eax, ecx
adc edx, ebx
mov ecx, eax
mov eax, dword [esp + 0x90]
mov ebx, edx
mov edx, dword [esp + 0x94]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x54], ebx
xor eax, ecx
xor edx, ebx
mov ecx, edx
mov edx, eax
shrd edx, ecx, 0x10
shrd ecx, eax, 0x10
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x90], edx
mov dword [esp + 0x94], ecx
mov ecx, dword [esp + 0xc0]
mul dword [esp + 0x90]
mov ebx, dword [esp + 0xc4]
mov esi, eax
mov edi, edx
shld edi, eax, 1
add esi, eax
add ecx, dword [esp + 0x90]
adc ebx, dword [esp + 0x94]
mov eax, esi
mov edx, edi
add eax, ecx
adc edx, ebx
mov ecx, eax
mov eax, dword [esp + 0x80]
mov ebx, edx
mov edx, dword [esp + 0x84]
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], ebx
xor eax, ecx
xor edx, ebx
mov ebx, dword [esp + 0x74]
mov ecx, edx
mov edx, eax
shld edx, ecx, 1
shld ecx, eax, 1
mov eax, dword [esp + 0x70]
mov dword [esp + 0x58], edx
mul dword [esp + 0x38]
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x70]
mov esi, eax
mov edi, edx
shld edi, eax, 1
add esi, eax
add ecx, dword [esp + 0x38]
adc ebx, dword [esp + 0x3c]
mov eax, esi
mov edx, edi
add eax, ecx
adc edx, ebx
mov ecx, eax
mov eax, dword [esp + 0x90]
mov ebx, edx
mov edx, dword [esp + 0x94]
mov dword [esp + 0xc0], ecx
mov dword [esp + 0xc4], ebx
xor eax, ecx
xor edx, ebx
mov ebx, dword [esp + 0x4c]
xchg edx, eax
mov ecx, eax
mov dword [esp + 0x74], edx
mov eax, dword [esp + 0x48]
mov dword [esp + 0x70], ecx
mov ecx, dword [esp + 0x48]
mul dword [esp + 0x70]
mov esi, eax
mov edi, edx
shld edi, eax, 1
add esi, eax
add ecx, dword [esp + 0x70]
adc ebx, dword [esp + 0x74]
mov eax, esi
mov edx, edi
add eax, ecx
adc edx, ebx
mov ecx, eax
mov eax, dword [esp + 0x38]
mov ebx, edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], ebx
xor eax, ecx
xor edx, ebx
mov ebx, dword [esp + 0xc4]
mov ecx, edx
mov edx, eax
shrd edx, ecx, 0x18
shrd ecx, eax, 0x18
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x90], edx
mul dword [esp + 0x90]
mov dword [esp + 0x94], ecx
mov ecx, dword [esp + 0xc0]
mov esi, eax
mov edi, edx
shld edi, eax, 1
add esi, eax
add ecx, dword [esp + 0x90]
adc ebx, dword [esp + 0x94]
mov eax, esi
mov edx, edi
mov edi, dword [esp + 0xcc]
add eax, ecx
adc edx, ebx
mov ecx, eax
mov eax, dword [esp + 0x70]
mov ebx, edx
mov edx, dword [esp + 0x74]
mov dword [esp + 0xc0], ecx
mov dword [esp + 0xc4], ebx
xor eax, ecx
xor edx, ebx
mov ecx, eax
mov ebx, edx
shrd ecx, edx, 0x10
mov edx, dword [esp + 0xa4]
shrd ebx, eax, 0x10
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x74], edx
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x80]
movups xmm1, xmmword [esp + 0x70]
movups xmmword [edi + 0x380], xmm1
mul ecx
mov esi, eax
mov edi, edx
shld edi, eax, 1
add esi, eax
add ecx, dword [esp + 0x80]
adc ebx, dword [esp + 0x84]
mov eax, esi
mov edx, edi
add eax, ecx
mov ecx, dword [esp + 0xb4]
adc edx, ebx
mov ebx, eax
mov esi, edx
mov edx, dword [esp + 0xb0]
mov dword [esp + 0x80], edx
mov eax, dword [esp + 0x90]
mov edx, dword [esp + 0x94]
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], esi
mov edi, dword [esp + 0xcc]
mov dword [esp + 0x84], ecx
mov ecx, dword [esp + 0x28]
xor eax, ebx
xor edx, esi
mov ebx, eax
mov esi, edx
shld ebx, edx, 1
shld esi, eax, 1
mov eax, dword [esp + 0x28]
mov dword [esp + 0x88], ebx
mul dword [esp + 0x60]
mov dword [esp + 0x8c], esi
movups xmm3, xmmword [esp + 0x80]
mov ebx, eax
mov esi, edx
movups xmmword [edi + 0x100], xmm3
shld esi, eax, 1
add ebx, eax
add ecx, dword [esp + 0x60]
mov eax, ebx
mov ebx, dword [esp + 0x2c]
mov edx, esi
adc ebx, dword [esp + 0x64]
add eax, ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x80], eax
adc edx, ebx
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x84], edx
xor ecx, eax
mov eax, dword [esp + 0x68]
mov edi, ecx
mov ecx, dword [esp + 0x68]
xor ebx, edx
mov esi, ebx
mul ebx
mov ebx, dword [esp + 0x6c]
shld edx, eax, 1
add eax, eax
add ecx, esi
adc ebx, edi
add eax, ecx
mov ecx, dword [esp + 0x64]
adc edx, ebx
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], edx
mov edx, dword [esp + 0x60]
xor edx, dword [esp + 0x90]
xor ecx, dword [esp + 0x94]
mov eax, edx
shrd edx, ecx, 0x18
shrd ecx, eax, 0x18
mov eax, dword [esp + 0x80]
mov dword [esp + 0x60], edx
mov dword [esp + 0x64], ecx
mov ebx, dword [esp + 0x84]
mul dword [esp + 0x60]
mov ecx, edx
mov edx, eax
shld ecx, eax, 1
add edx, eax
mov eax, edx
mov edx, ecx
mov ecx, dword [esp + 0x80]
add ecx, dword [esp + 0x60]
adc ebx, dword [esp + 0x64]
add eax, ecx
mov ecx, dword [esp + 0xc0]
adc edx, ebx
mov ebx, dword [esp + 0xc4]
mov dword [esp + 0x88], eax
xor eax, esi
mov dword [esp + 0x8c], edx
xor edx, edi
mov edi, dword [esp + 0x74]
mov dword [esp + 0x80], ecx
mov ecx, dword [esp + 0xcc]
mov dword [esp + 0x84], ebx
movups xmm5, xmmword [esp + 0x80]
movups xmmword [ecx], xmm5
mov ecx, edx
mov edx, eax
shrd edx, ecx, 0x10
shrd ecx, eax, 0x10
mov eax, dword [esp + 0x90]
mov dword [esp + 0x68], edx
mul dword [esp + 0x68]
mov dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0x90]
mov ebx, eax
mov esi, edx
shld esi, eax, 1
add ebx, eax
add ecx, dword [esp + 0x68]
mov eax, ebx
mov ebx, dword [esp + 0x94]
mov edx, esi
mov dword [esp + 0x94], edi
adc ebx, dword [esp + 0x6c]
mov esi, dword [esp + 0x70]
add eax, ecx
mov dword [esp + 0x48], eax
adc edx, ebx
mov dword [esp + 0x98], eax
mov dword [esp + 0x90], esi
mov dword [esp + 0x4c], edx
mov dword [esp + 0x9c], edx
movups xmm7, xmmword [esp + 0x90]
mov edi, dword [esp + 0xcc]
mov eax, dword [esp + 0x40]
mul dword [esp + 0x58]
mov ecx, dword [esp + 0x40]
movups xmmword [edi + 0x280], xmm7
mov ebx, dword [esp + 0x44]
mov esi, eax
mov edi, edx
shld edi, eax, 1
add esi, eax
add ecx, dword [esp + 0x58]
adc ebx, dword [esp + 0x5c]
mov eax, esi
mov edx, edi
add eax, ecx
adc edx, ebx
mov ecx, eax
mov eax, dword [esp + 0x18]
mov ebx, edx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0xc0], ecx
mov dword [esp + 0xc4], ebx
xor eax, ecx
xor edx, ebx
mov ebx, dword [esp + 0x24]
xchg edx, eax
mov ecx, eax
mov dword [esp + 0x74], edx
mov eax, dword [esp + 0x20]
mov dword [esp + 0x70], ecx
mov ecx, dword [esp + 0x20]
mul dword [esp + 0x70]
mov esi, eax
mov edi, edx
shld edi, eax, 1
add esi, eax
add ecx, dword [esp + 0x70]
adc ebx, dword [esp + 0x74]
mov eax, esi
mov edx, edi
add eax, ecx
adc edx, ebx
mov ecx, eax
mov eax, dword [esp + 0x58]
mov ebx, edx
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], ebx
xor eax, ecx
xor edx, ebx
mov ecx, edx
mov edx, eax
shrd edx, ecx, 0x18
shrd ecx, eax, 0x18
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x90], edx
mul dword [esp + 0x90]
mov dword [esp + 0x94], ecx
mov ecx, dword [esp + 0xc0]
mov ebx, dword [esp + 0xc4]
mov esi, eax
mov edi, edx
mov edx, dword [esp + 0x6c]
shld edi, eax, 1
add esi, eax
add ecx, dword [esp + 0x90]
adc ebx, dword [esp + 0x94]
add esi, ecx
mov ecx, dword [esp + 0x70]
adc edi, ebx
mov ebx, dword [esp + 0x74]
mov dword [esp + 0x74], edx
mov dword [esp + 0xc4], edi
mov dword [esp + 0xc0], esi
xor ecx, esi
xor ebx, edi
mov eax, ecx
mov edi, dword [esp + 0xcc]
shrd ecx, ebx, 0x10
shrd ebx, eax, 0x10
mov eax, dword [esp + 0x68]
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x80]
movups xmm1, xmmword [esp + 0x70]
movups xmmword [edi + 0x300], xmm1
mul ecx
shld edx, eax, 1
add eax, eax
add ecx, dword [esp + 0x80]
adc ebx, dword [esp + 0x84]
mov esi, eax
mov edi, edx
mov edx, dword [esp + 0x48]
add esi, ecx
mov ecx, dword [esp + 0x4c]
adc edi, ebx
xor edx, dword [esp + 0x60]
mov dword [esp + 0x70], esi
xor ecx, dword [esp + 0x64]
mov dword [esp + 0x74], edi
mov eax, edx
shld edx, ecx, 1
shld ecx, eax, 1
mov eax, dword [esp + 0x90]
mov dword [esp + 0x80], edx
mov edx, dword [esp + 0x94]
mov dword [esp + 0x84], ecx
xor eax, esi
xor edx, edi
mov ecx, edx
mov edx, eax
shld edx, ecx, 1
shld ecx, eax, 1
mov dword [esp + 0x88], edx
mov dword [esp + 0x8c], ecx
mov esi, dword [esp + 0xb0]
mov edi, dword [esp + 0xcc]
mov eax, dword [esp + 0x50]
movups xmm3, xmmword [esp + 0x80]
mov ecx, dword [esp + 0x50]
mov ebx, dword [esp + 0x54]
movups xmmword [edi + 0x180], xmm3
mul esi
mov edi, dword [esp + 0xb4]
shld edx, eax, 1
add eax, eax
add ecx, esi
adc ebx, edi
add eax, ecx
mov ecx, eax
mov eax, dword [esp + 0xa0]
adc edx, ebx
mov ebx, edx
mov edx, dword [esp + 0xa4]
mov dword [esp + 0xa0], ecx
mov dword [esp + 0xa4], ebx
xor eax, ecx
mov ecx, dword [esp + 0x30]
mov edi, eax
mov eax, dword [esp + 0x30]
xor edx, ebx
mov esi, edx
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x84], edi
mov dword [esp + 0x80], esi
mul edx
shld edx, eax, 1
add eax, eax
add ecx, esi
adc ebx, edi
add eax, ecx
adc edx, ebx
mov ecx, eax
mov eax, dword [esp + 0xb0]
mov ebx, edx
mov edx, dword [esp + 0xb4]
mov dword [esp + 0xb0], ecx
mov dword [esp + 0xb4], ebx
xor eax, ecx
xor edx, ebx
mov ebx, dword [esp + 0xa4]
mov ecx, edx
mov edx, eax
shrd edx, ecx, 0x18
shrd ecx, eax, 0x18
mov eax, dword [esp + 0xa0]
mov edi, ecx
mov ecx, dword [esp + 0xa0]
mov esi, edx
mov dword [esp + 0x90], esi
mov dword [esp + 0x94], edi
mul edx
shld edx, eax, 1
add eax, eax
add ecx, esi
mov esi, dword [esp + 0xc0]
adc ebx, edi
mov edi, dword [esp + 0xc4]
add eax, ecx
adc edx, ebx
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], edx
mov dword [esp + 0xa0], esi
mov dword [esp + 0xa4], edi
movups xmm5, xmmword [esp + 0xa0]
xor edx, dword [esp + 0x84]
mov edi, dword [esp + 0xcc]
xor eax, dword [esp + 0x80]
movups xmmword [edi + 0x80], xmm5
mov edi, edx
shrd edi, eax, 0x10
mov esi, eax
mov eax, dword [esp + 0xb0]
shrd esi, edx, 0x10
mov ebx, edi
mov edi, dword [esp + 0xcc]
mov ecx, esi
mul esi
mov dword [edi + 0x384], ebx
mov dword [edi + 0x380], esi
mov edi, dword [esp + 0xcc]
shld edx, eax, 1
add eax, eax
add ecx, dword [esp + 0xb0]
adc ebx, dword [esp + 0xb4]
mov esi, dword [esp + 0x74]
add eax, ecx
adc edx, ebx
mov dword [esp + 0xb8], eax
mov ebx, dword [esp + 0x70]
add edi, 0x10
xor eax, dword [esp + 0x90]
mov dword [esp + 0xbc], edx
xor edx, dword [esp + 0x94]
mov dword [esp + 0xb4], esi
mov dword [esp + 0xb0], ebx
movups xmm7, xmmword [esp + 0xb0]
mov ecx, eax
shld eax, edx, 1
shld edx, ecx, 1
movups xmmword [edi + 0x1f0], xmm7
mov dword [edi + 0xf0], eax
mov eax, dword [esp + 0xc8]
mov dword [edi + 0xf4], edx
mov dword [esp + 0xcc], edi
cmp edi, eax
jne 0x40c888
mov ebx, dword [esp + 0xc]
lea esi, [esp + 0x4d0]
mov ecx, 0x100
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
lea esi, [esi]
mov eax, dword [esp + ecx*8 + 0xd0]
mov edx, dword [esp + ecx*8 + 0xd4]
xor dword [ebx + ecx*8], eax
xor dword [ebx + ecx*8 + 4], edx
add ecx, 1
cmp ecx, 0x80
jne 0x40d680
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret