Function at 0x40d810
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, 0x8c0
lea edi, [esp + 0xc0]
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 + 0xc0], ecx
xor dword [esp + edx*8 + 0xc4], ebx
add edx, 1
cmp edx, 0x80
jne 0x40d838
lea eax, [esp + 0xc0]
mov ebx, esi
mov ecx, 0x100
lea edi, [esp + 0x4c0]
mov dword [esp + 0xbc], eax
lea esi, [esp + 0xc0]
mov dword [esp + 0x10], ebx
rep movsd dword es:[edi], dword [esi]
mov esi, eax
lea esi, [esi]
nop
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 + 0x70], eax
xor eax, dword [esi + 0x60]
mov dword [esp + 0x74], edx
xor edx, dword [esi + 0x64]
mov dword [esp + 0x84], eax
mov ebx, dword [esp + 0x84]
mov dword [esp + 0x80], 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 + 0x80]
add ecx, dword [esi + 0x40]
adc ebx, dword [esi + 0x44]
add eax, ecx
adc edx, ebx
mov dword [esp + 0x90], eax
mov ecx, edx
mov edx, eax
xor edx, dword [esi + 0x20]
mov dword [esp + 0x94], 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 + 0xa0], ecx
mov eax, dword [esp + 0x70]
mul dword [esp + 0xa0]
mov dword [esp + 0xa4], ebx
mov ecx, dword [esp + 0x70]
mov ebx, dword [esp + 0x74]
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 + 0x80]
mov ebx, edx
mov edx, dword [esp + 0x84]
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], ebx
xor eax, ecx
xor edx, ebx
mov ecx, eax
shrd ecx, edx, 0x10
mov ebx, edx
shrd ebx, eax, 0x10
mov dword [esp + 0x20], ecx
mov eax, dword [esp + 0x90]
mul dword [esp + 0x20]
mov dword [esp + 0x24], ebx
mov ecx, dword [esp + 0x90]
mov ebx, dword [esp + 0x94]
shld edx, eax, 1
add eax, eax
add ecx, dword [esp + 0x20]
adc ebx, dword [esp + 0x24]
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 + 0x28], ecx
mov dword [esp + 0x2c], 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 + 0x30], edx
mul dword [esi + 0x28]
mov dword [esp + 0x34], 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 + 0xb0], eax
xor eax, dword [esi + 0x68]
mov dword [esp + 0xb4], edx
xor edx, dword [esi + 0x6c]
mov dword [esp + 0x74], eax
mov dword [esp + 0x70], edx
mov eax, edx
mul dword [esi + 0x48]
mov ebx, dword [esp + 0x74]
mov ecx, edx
mov edx, eax
shld ecx, eax, 1
add edx, eax
mov eax, edx
mov edx, ecx
mov ecx, dword [esp + 0x70]
add ecx, dword [esi + 0x48]
adc ebx, dword [esi + 0x4c]
add eax, ecx
adc edx, ebx
mov dword [esp + 0x90], eax
mov ebx, dword [esp + 0xb4]
mov ecx, edx
mov edx, eax
xor edx, dword [esi + 0x28]
mov dword [esp + 0x94], ecx
xor ecx, dword [esi + 0x2c]
mov eax, edx
shrd edx, ecx, 0x18
shrd ecx, eax, 0x18
mov eax, dword [esp + 0xb0]
mov dword [esp + 0xa0], edx
mul dword [esp + 0xa0]
mov dword [esp + 0xa4], ecx
mov ecx, dword [esp + 0xb0]
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 + 0x70]
mov ebx, edx
mov edx, dword [esp + 0x74]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], 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 dword [esp + 0x40], edx
mul dword [esp + 0x40]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x90]
shld edx, eax, 1
add eax, eax
add ecx, dword [esp + 0x40]
adc ebx, dword [esp + 0x44]
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 + 0x48], ecx
mov dword [esp + 0x4c], 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 + 0x50], edx
mul dword [esi + 0x30]
mov dword [esp + 0x54], 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 + 0xb0], eax
xor eax, dword [esi + 0x70]
mov dword [esp + 0xb4], edx
xor edx, dword [esi + 0x74]
mov dword [esp + 0x74], eax
mov ebx, dword [esp + 0x74]
mov dword [esp + 0x70], 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 + 0x70]
add ecx, dword [esi + 0x50]
adc ebx, dword [esi + 0x54]
add eax, ecx
adc edx, ebx
mov dword [esp + 0x90], eax
mov ecx, edx
mov edx, eax
xor edx, dword [esi + 0x30]
mov dword [esp + 0x94], ecx
xor ecx, dword [esi + 0x34]
mov eax, edx
shrd edx, ecx, 0x18
shrd ecx, eax, 0x18
mov eax, dword [esp + 0xb0]
mov dword [esp + 0xa4], ecx
mov dword [esp + 0xa0], edx
mul dword [esp + 0xa0]
mov ecx, dword [esp + 0xb0]
mov ebx, dword [esp + 0xb4]
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 + 0x70]
mov ebx, edx
mov edx, dword [esp + 0x74]
mov dword [esp + 0x58], ecx
mov dword [esp + 0x5c], 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 dword [esp + 0x60], edx
mul dword [esp + 0x60]
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0x90]
shld edx, eax, 1
add eax, eax
add ecx, dword [esp + 0x60]
adc ebx, dword [esp + 0x64]
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 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 + 0x68], edx
mul dword [esi + 0x38]
mov dword [esp + 0x6c], 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 + 0x18], eax
xor eax, dword [esi + 0x78]
mov dword [esp + 0x1c], edx
xor edx, dword [esi + 0x7c]
mov dword [esp + 0xb4], eax
mov ebx, dword [esp + 0xb4]
mov dword [esp + 0xb0], 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 + 0xb0]
add ecx, dword [esi + 0x58]
adc ebx, dword [esi + 0x5c]
add eax, ecx
adc edx, ebx
mov dword [esp + 0x90], eax
mov ebx, dword [esp + 0x1c]
mov ecx, edx
mov edx, eax
xor edx, dword [esi + 0x38]
mov dword [esp + 0x94], ecx
xor ecx, dword [esi + 0x3c]
mov eax, edx
shrd edx, ecx, 0x18
shrd ecx, eax, 0x18
mov eax, dword [esp + 0x18]
mov dword [esp + 0xa0], edx
mul dword [esp + 0xa0]
mov dword [esp + 0xa4], ecx
mov ecx, dword [esp + 0x18]
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 + 0xb0], ecx
mov dword [esp + 0xb4], ebx
xor eax, ecx
xor edx, ebx
mov ecx, edx
mov edx, eax
shrd edx, ecx, 0x10
shrd ecx, eax, 0x10
mov dword [esp + 0x18], edx
mov eax, edx
mul dword [esp + 0x90]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x90]
mov ebx, dword [esp + 0x94]
shld edx, eax, 1
add eax, eax
add ecx, dword [esp + 0x18]
adc ebx, dword [esp + 0x1c]
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
xor edx, ebx
mov ebx, dword [esp + 0x84]
mov ecx, edx
mov edx, eax
shld edx, ecx, 1
shld ecx, eax, 1
mov eax, dword [esp + 0x50]
mov dword [esp + 0x90], edx
mul dword [esp + 0x80]
mov dword [esp + 0x94], ecx
mov ecx, dword [esp + 0x80]
shld edx, eax, 1
add eax, eax
add ecx, dword [esp + 0x50]
adc ebx, dword [esp + 0x54]
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 + 0x80], ecx
mov dword [esp + 0x84], ebx
xor eax, ecx
mov ecx, dword [esp + 0x70]
xor edx, ebx
mov ebx, dword [esp + 0x74]
xchg edx, eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], edx
mul dword [esp + 0x70]
shld edx, eax, 1
add eax, eax
add ecx, dword [esp + 0x18]
adc ebx, dword [esp + 0x1c]
add eax, ecx
adc edx, ebx
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], edx
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
xor edx, dword [esp + 0x70]
xor ecx, dword [esp + 0x74]
mov ebx, dword [esp + 0x84]
mov eax, edx
shrd edx, ecx, 0x18
shrd ecx, eax, 0x18
mov dword [esp + 0x50], edx
mov eax, edx
mul dword [esp + 0x80]
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x80]
shld edx, eax, 1
add eax, eax
add ecx, dword [esp + 0x50]
adc ebx, dword [esp + 0x54]
add ecx, eax
adc ebx, edx
mov dword [esi], ecx
xor ecx, dword [esp + 0x18]
mov dword [esi + 4], ebx
xor ebx, dword [esp + 0x1c]
mov eax, ecx
shrd ecx, ebx, 0x10
shrd ebx, eax, 0x10
mov eax, dword [esp + 0x70]
mov dword [esi + 0x78], ecx
mov dword [esi + 0x7c], ebx
mul ecx
shld edx, eax, 1
add eax, eax
add ecx, dword [esp + 0x70]
adc ebx, dword [esp + 0x74]
add eax, ecx
adc edx, ebx
mov dword [esi + 0x50], eax
xor eax, dword [esp + 0x50]
mov dword [esi + 0x54], edx
xor edx, dword [esp + 0x54]
mov ebx, dword [esp + 0x3c]
mov ecx, eax
shld eax, edx, 1
shld edx, ecx, 1
mov ecx, dword [esp + 0x38]
mov dword [esi + 0x28], eax
mov eax, dword [esp + 0x68]
mov dword [esi + 0x2c], edx
mul dword [esp + 0x38]
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 + 0x20]
mov ebx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], ebx
xor eax, ecx
mov ecx, dword [esp + 0xa0]
xor edx, ebx
mov ebx, dword [esp + 0xa4]
xchg edx, eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], edx
mul dword [esp + 0xa0]
shld edx, eax, 1
add eax, eax
add ecx, dword [esp + 0x70]
adc ebx, dword [esp + 0x74]
add eax, ecx
mov ecx, dword [esp + 0x6c]
adc edx, ebx
mov dword [esp + 0xa0], eax
mov ebx, dword [esp + 0x84]
mov dword [esp + 0xa4], edx
mov edx, dword [esp + 0x68]
xor ecx, dword [esp + 0xa4]
xor edx, dword [esp + 0xa0]
mov eax, edx
shrd edx, ecx, 0x18
mov dword [esp + 0x68], edx
shrd ecx, eax, 0x18
mov eax, edx
mul dword [esp + 0x80]
mov dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0x80]
shld edx, eax, 1
add eax, eax
add ecx, dword [esp + 0x68]
adc ebx, dword [esp + 0x6c]
add ecx, eax
adc ebx, edx
mov dword [esi + 8], ecx
xor ecx, dword [esp + 0x70]
mov dword [esi + 0xc], ebx
xor ebx, dword [esp + 0x74]
mov eax, ecx
shrd ecx, ebx, 0x10
shrd ebx, eax, 0x10
mov dword [esi + 0x60], ecx
mov eax, dword [esp + 0xa0]
mov dword [esi + 0x64], ebx
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 + 0x58], eax
xor eax, dword [esp + 0x68]
mov dword [esi + 0x5c], edx
xor edx, dword [esp + 0x6c]
mov ebx, dword [esp + 0x5c]
mov ecx, eax
shld eax, edx, 1
shld edx, ecx, 1
mov ecx, dword [esp + 0x58]
mov dword [esi + 0x30], eax
mov eax, dword [esp + 0x90]
mov dword [esi + 0x34], edx
mul dword [esp + 0x58]
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 + 0x40]
mov ebx, edx
mov edx, dword [esp + 0x44]
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], ebx
xor eax, ecx
mov ecx, dword [esp + 0x28]
xor edx, ebx
mov dword [esp + 0x74], eax
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x70], edx
mov eax, edx
mul dword [esp + 0x28]
shld edx, eax, 1
add eax, eax
add ecx, dword [esp + 0x70]
adc ebx, dword [esp + 0x74]
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 + 0xa0], ecx
mov dword [esp + 0xa4], ebx
xor eax, ecx
xor edx, ebx
mov ebx, dword [esp + 0x84]
mov ecx, edx
mov edx, eax
shrd edx, ecx, 0x18
shrd ecx, eax, 0x18
mov dword [esp + 0x90], edx
mov eax, edx
mul dword [esp + 0x80]
mov dword [esp + 0x94], ecx
mov ecx, dword [esp + 0x80]
shld edx, eax, 1
add eax, eax
add ecx, dword [esp + 0x90]
adc ebx, dword [esp + 0x94]
add ecx, eax
adc ebx, edx
mov dword [esi + 0x10], ecx
xor ecx, dword [esp + 0x70]
mov dword [esi + 0x14], ebx
xor ebx, dword [esp + 0x74]
mov eax, ecx
shrd ecx, ebx, 0x10
shrd ebx, eax, 0x10
mov eax, dword [esp + 0xa0]
mov dword [esi + 0x68], ecx
mov dword [esi + 0x6c], ebx
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 + 0x40], eax
xor eax, dword [esp + 0x90]
mov dword [esi + 0x44], edx
xor edx, dword [esp + 0x94]
mov ebx, dword [esp + 0xb4]
mov ecx, eax
shld eax, edx, 1
shld edx, ecx, 1
mov ecx, dword [esp + 0xb0]
mov dword [esi + 0x38], eax
mov eax, dword [esp + 0x30]
mov dword [esi + 0x3c], edx
mul dword [esp + 0xb0]
shld edx, eax, 1
add eax, eax
add ecx, dword [esp + 0x30]
adc ebx, dword [esp + 0x34]
add eax, ecx
adc edx, ebx
mov ecx, eax
mov eax, dword [esp + 0x60]
mov ebx, edx
mov edx, dword [esp + 0x64]
mov dword [esp + 0xa0], ecx
mov dword [esp + 0xa4], ebx
xor eax, ecx
mov ecx, dword [esp + 0x48]
xor edx, ebx
mov dword [esp + 0x84], eax
mov ebx, dword [esp + 0x4c]
mov dword [esp + 0x80], edx
mov eax, edx
mul dword [esp + 0x48]
shld edx, eax, 1
add eax, eax
add ecx, dword [esp + 0x80]
adc ebx, dword [esp + 0x84]
add eax, ecx
adc edx, ebx
mov ecx, eax
mov eax, dword [esp + 0x30]
mov ebx, edx
mov edx, dword [esp + 0x34]
mov dword [esp + 0x90], ecx
mov dword [esp + 0x94], 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 + 0x70], edx
mov eax, edx
mul dword [esp + 0xa0]
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 0xa0]
shld edx, eax, 1
add eax, eax
add ecx, dword [esp + 0x70]
adc ebx, dword [esp + 0x74]
add ecx, eax
adc ebx, edx
mov dword [esi + 0x18], ecx
xor ecx, dword [esp + 0x80]
mov dword [esi + 0x1c], ebx
xor ebx, dword [esp + 0x84]
mov eax, ecx
shrd ecx, ebx, 0x10
shrd ebx, eax, 0x10
mov eax, dword [esp + 0x90]
mov dword [esi + 0x74], ebx
mov dword [esi + 0x70], ecx
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 + 0x48], eax
xor eax, dword [esp + 0x70]
sub esi, 0xffffff80
mov dword [esi - 0x34], edx
xor edx, dword [esp + 0x74]
mov ecx, eax
shld eax, edx, 1
shld edx, ecx, 1
mov dword [esi - 0x60], eax
lea eax, [esp + 0x4c0]
mov dword [esi - 0x5c], edx
cmp eax, esi
jne 0x40d888
mov ebx, dword [esp + 0x10]
lea eax, [esp + 0x140]
mov dword [esp + 0xb8], eax
mov dword [esp + 4], ebx
lea esi, [esi]
lea esi, [esi]
mov edi, dword [esp + 0xbc]
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 + 0x70], eax
xor eax, dword [edi + 0x300]
mov dword [esp + 0x74], edx
xor edx, dword [edi + 0x304]
mov dword [esp + 0x84], eax
mov ebx, dword [esp + 0x84]
mov dword [esp + 0x80], edx
mov eax, edx
mov ecx, dword [esp + 0x80]
mul dword [edi + 0x200]
mov edi, edx
mov esi, eax
shld edi, eax, 1
add esi, eax
mov edx, edi
mov edi, dword [esp + 0xbc]
mov eax, esi
add ecx, dword [edi + 0x200]
adc ebx, dword [edi + 0x204]
add eax, ecx
adc edx, ebx
mov dword [esp + 0x90], eax
mov ecx, edx
mov edx, eax
xor edx, dword [edi + 0x100]
mov dword [esp + 0x94], 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 + 0xa0], ecx
mov eax, dword [esp + 0x70]
mul dword [esp + 0xa0]
mov dword [esp + 0xa4], ebx
mov ecx, dword [esp + 0x70]
mov ebx, dword [esp + 0x74]
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 + 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 + 0x90]
mov esi, ecx
mov edi, ebx
mov ebx, dword [esp + 0x94]
mov dword [esp + 8], esi
mov dword [esp + 0xc], edi
mul ecx
mov ecx, dword [esp + 0x90]
shld edx, eax, 1
add eax, eax
add ecx, esi
adc ebx, edi
add eax, ecx
mov edi, dword [esp + 0xbc]
adc edx, ebx
mov ecx, eax
mov eax, dword [esp + 0xa0]
mov ebx, edx
mov edx, dword [esp + 0xa4]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], ebx
mov esi, dword [edi + 0x108]
xor eax, ecx
xor edx, ebx
mov ecx, eax
mov ebx, edx
shld ecx, edx, 1
shld ebx, eax, 1
mov eax, dword [edi + 8]
mov dword [esp + 0xa0], ecx
mov ecx, edi
mul dword [edi + 0x108]
mov dword [esp + 0xa4], ebx
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 + 0xbc]
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], edx
xor eax, dword [edi + 0x308]
xor edx, dword [edi + 0x30c]
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb0], edx
mov eax, edx
mul dword [edi + 0x208]
mov ecx, dword [esp + 0xb0]
mov ebx, dword [esp + 0xb4]
mov edi, edx
mov esi, eax
shld edi, eax, 1
add esi, eax
mov edx, edi
mov edi, dword [esp + 0xbc]
mov eax, esi
add ecx, dword [edi + 0x208]
adc ebx, dword [edi + 0x20c]
add eax, ecx
adc edx, ebx
mov dword [esp + 0x80], eax
mov ebx, dword [esp + 0x6c]
mov ecx, edx
mov edx, eax
xor edx, dword [edi + 0x108]
mov dword [esp + 0x84], ecx
xor ecx, dword [edi + 0x10c]
mov eax, edx
shrd edx, ecx, 0x18
shrd ecx, eax, 0x18
mov eax, dword [esp + 0x68]
mov dword [esp + 0x90], edx
mul dword [esp + 0x90]
mov dword [esp + 0x94], ecx
mov ecx, dword [esp + 0x68]
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 + 0xb0]
mov ebx, edx
mov edx, dword [esp + 0xb4]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], 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 edi, ecx
mov ecx, dword [esp + 0x80]
mov esi, edx
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], 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 + 0x90]
mov ebx, edx
mov edx, dword [esp + 0x94]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], ebx
mov edi, dword [esp + 0xbc]
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 + 0x30], edx
mul dword [edi + 0x180]
mov dword [esp + 0x34], 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 + 0xbc]
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], edx
xor eax, dword [edi + 0x380]
xor edx, dword [edi + 0x384]
xchg edx, eax
mov dword [esp + 0xb0], eax
mov ecx, dword [esp + 0xb0]
mov dword [esp + 0xb4], edx
mov ebx, dword [esp + 0xb4]
mul dword [edi + 0x280]
mov edi, edx
mov esi, eax
shld edi, eax, 1
add esi, eax
mov edx, edi
mov edi, dword [esp + 0xbc]
mov eax, esi
add ecx, dword [edi + 0x280]
adc ebx, dword [edi + 0x284]
add eax, ecx
adc edx, ebx
mov dword [esp + 0x80], eax
mov ecx, edx
mov edx, eax
xor edx, dword [edi + 0x180]
mov dword [esp + 0x84], ecx
xor ecx, dword [edi + 0x184]
mov eax, edx
shrd edx, ecx, 0x18
shrd ecx, eax, 0x18
mov eax, dword [esp + 0x68]
mov dword [esp + 0x90], edx
mul dword [esp + 0x90]
mov dword [esp + 0x94], ecx
mov ecx, dword [esp + 0x68]
mov ebx, dword [esp + 0x6c]
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 + 0xb0]
mov ebx, edx
mov edx, dword [esp + 0xb4]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], 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 + 0x80]
mov esi, ecx
mov edi, ebx
mov ebx, dword [esp + 0x84]
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], edi
mul ecx
mov ecx, dword [esp + 0x80]
shld edx, eax, 1
add eax, eax
add ecx, esi
adc ebx, edi
add eax, ecx
mov edi, dword [esp + 0xbc]
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
mov esi, dword [edi + 0x188]
xor eax, ecx
xor edx, ebx
mov ecx, edx
mov edx, eax
shld edx, ecx, 1
shld ecx, eax, 1
mov eax, dword [edi + 0x88]
mov dword [esp + 0x60], edx
mul dword [edi + 0x188]
mov dword [esp + 0x64], ecx
mov ecx, edi
mov edi, dword [edi + 0x18c]
shld edx, eax, 1
add eax, eax
add esi, dword [ecx + 0x88]
adc edi, dword [ecx + 0x8c]
add eax, esi
adc edx, edi
mov edi, dword [esp + 0xbc]
mov dword [esp + 0x68], eax
mov ecx, edx
mov edx, eax
mov dword [esp + 0x6c], ecx
xor edx, dword [edi + 0x388]
xor ecx, dword [edi + 0x38c]
mov eax, edx
mov edx, ecx
xchg edx, eax
mov dword [esp + 0x90], eax
mov ecx, dword [esp + 0x90]
mov dword [esp + 0x94], edx
mov ebx, dword [esp + 0x94]
mul dword [edi + 0x288]
mov edi, edx
mov esi, eax
shld edi, eax, 1
add esi, eax
mov edx, edi
mov edi, dword [esp + 0xbc]
mov eax, esi
add ecx, dword [edi + 0x288]
adc ebx, dword [edi + 0x28c]
add eax, ecx
adc edx, ebx
mov dword [esp + 0xb0], eax
xor eax, dword [edi + 0x188]
mov dword [esp + 0xb4], edx
xor edx, dword [edi + 0x18c]
mov ebx, dword [esp + 0x6c]
mov ecx, edx
mov edx, eax
shrd edx, ecx, 0x18
shrd ecx, eax, 0x18
mov eax, dword [esp + 0x68]
mov dword [esp + 0x80], edx
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 + 0xb0]
mov dword [esp + 0x90], edx
mul dword [esp + 0x90]
mov dword [esp + 0x94], ecx
mov ecx, dword [esp + 0xb0]
mov ebx, dword [esp + 0xb4]
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 + 0x30]
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 + 0x30]
adc ebx, dword [esp + 0x34]
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 + 0xb0], ecx
mov dword [esp + 0xb4], 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 + 0x30]
mov ebx, edx
mov edx, dword [esp + 0x34]
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], 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 eax, dword [esp + 0xb0]
mov dword [esp + 0x90], edx
mul dword [esp + 0x90]
mov dword [esp + 0x94], ecx
mov ecx, dword [esp + 0xb0]
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 + 0xbc]
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 + 0xb0], ecx
mov dword [esp + 0xb4], ebx
xor eax, ecx
xor edx, ebx
mov ecx, eax
mov ebx, edx
shrd ecx, edx, 0x10
mov edx, dword [esp + 0x44]
shrd ebx, eax, 0x10
mov eax, dword [esp + 0x40]
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 + 0xa0]
adc edx, ebx
mov ebx, dword [esp + 0xa4]
mov esi, eax
mov edi, edx
mov eax, dword [esp + 0x90]
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], ebx
mov edx, dword [esp + 0x94]
xor eax, esi
mov dword [esp + 0x70], esi
mov ecx, dword [esp + 0x20]
mov ebx, eax
mov dword [esp + 0x74], edi
xor edx, edi
mov edi, dword [esp + 0xbc]
mov esi, edx
shld ebx, edx, 1
shld esi, eax, 1
mov eax, dword [esp + 0x20]
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 + 0x24]
mov edx, esi
adc ebx, dword [esp + 0x64]
add eax, ecx
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x80], eax
adc edx, ebx
mov ebx, dword [esp + 0x6c]
mov esi, edx
mov edx, dword [esp + 8]
xor ecx, esi
mov dword [esp + 0x84], esi
mov esi, ecx
xor edx, eax
mov eax, dword [esp + 0x68]
mov edi, edx
mul ecx
mov ecx, dword [esp + 0x68]
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 ecx, dword [esp + 0x94]
xor edx, dword [esp + 0x90]
mov eax, edx
shrd edx, ecx, 0x18
mov dword [esp + 0x60], edx
shrd ecx, eax, 0x18
mov eax, dword [esp + 0x80]
mul dword [esp + 0x60]
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0x80]
mov ebx, dword [esp + 0x84]
shld edx, eax, 1
add eax, eax
add ecx, dword [esp + 0x60]
adc ebx, dword [esp + 0x64]
add eax, ecx
mov ecx, dword [esp + 0xb0]
adc edx, ebx
mov ebx, dword [esp + 0xb4]
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 + 0xbc]
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 + 0x98], eax
adc edx, ebx
mov dword [esp + 0x48], eax
mov dword [esp + 0x90], esi
mov dword [esp + 0x9c], edx
movups xmm7, xmmword [esp + 0x90]
mov dword [esp + 0x4c], edx
mov edi, dword [esp + 0xbc]
mov eax, dword [esp + 0x38]
mul dword [esp + 0x58]
mov ecx, dword [esp + 0x38]
movups xmmword [edi + 0x280], xmm7
mov ebx, dword [esp + 0x3c]
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
mov ecx, dword [esp + 0x14]
adc edx, ebx
mov dword [esp + 0xb0], eax
mov ebx, dword [esp + 0x1c]
mov esi, edx
mov edx, dword [esp + 0x10]
mov dword [esp + 0xb4], esi
xor ecx, esi
xor edx, eax
mov eax, edx
mov edx, ecx
xchg edx, eax
mov ecx, eax
mov dword [esp + 0x74], edx
mov eax, dword [esp + 0x18]
mov dword [esp + 0x70], ecx
mov ecx, dword [esp + 0x18]
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
mov ecx, dword [esp + 0x5c]
adc edx, ebx
mov dword [esp + 0x80], eax
mov ebx, dword [esp + 0xb4]
mov esi, edx
mov edx, dword [esp + 0x58]
mov dword [esp + 0x84], esi
xor ecx, esi
xor edx, eax
mov eax, edx
shrd edx, ecx, 0x18
mov dword [esp + 0x90], edx
shrd ecx, eax, 0x18
mov eax, dword [esp + 0xb0]
mul dword [esp + 0x90]
mov dword [esp + 0x94], ecx
mov ecx, dword [esp + 0xb0]
mov esi, eax
mov edi, edx
shld edi, eax, 1
add esi, eax
add ecx, dword [esp + 0x90]
adc ebx, dword [esp + 0x94]
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x70]
add esi, ecx
adc edi, ebx
mov dword [esp + 0x58], esi
xor edx, edi
mov dword [esp + 0x5c], edi
mov edi, dword [esp + 0xbc]
xor eax, esi
mov ebx, edx
shrd ebx, eax, 0x10
mov ecx, eax
mov eax, dword [esp + 0x68]
shrd ecx, edx, 0x10
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x74], edx
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]
add eax, ecx
mov ecx, dword [esp + 0x4c]
adc edx, ebx
xor ecx, dword [esp + 0x64]
mov ebx, eax
mov esi, edx
mov edx, dword [esp + 0x48]
mov dword [esp + 0xb0], ebx
xor edx, dword [esp + 0x60]
mov dword [esp + 0xb4], esi
mov eax, edx
shld edx, ecx, 1
mov dword [esp + 0x80], edx
shld ecx, eax, 1
mov edx, dword [esp + 0x90]
mov dword [esp + 0x84], ecx
mov ecx, dword [esp + 0x94]
xor edx, ebx
xor ecx, esi
mov eax, edx
shld edx, ecx, 1
shld ecx, eax, 1
mov dword [esp + 0x88], edx
mov dword [esp + 0x8c], ecx
movups xmm3, xmmword [esp + 0x80]
mov esi, dword [esp + 0xa0]
mov eax, dword [esp + 0x50]
mov edi, dword [esp + 0xbc]
mov ebx, dword [esp + 0x54]
mul esi
movups xmmword [edi + 0x180], xmm3
mov edi, dword [esp + 0xa4]
mov ecx, edx
mov edx, eax
shld ecx, eax, 1
add edx, eax
mov eax, edx
mov edx, ecx
mov ecx, dword [esp + 0x50]
add ecx, esi
adc ebx, edi
add eax, ecx
mov ecx, eax
mov eax, dword [esp + 0x40]
adc edx, ebx
mov ebx, edx
mov edx, dword [esp + 0x44]
mov dword [esp + 0x90], ecx
mov dword [esp + 0x94], ebx
xor eax, ecx
mov ecx, dword [esp + 0x28]
mov edi, eax
mov eax, dword [esp + 0x28]
xor edx, ebx
mov esi, edx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x74], edi
mov dword [esp + 0x70], 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 + 0xa0]
mov ebx, edx
mov edx, dword [esp + 0xa4]
mov dword [esp + 0xa0], ecx
mov dword [esp + 0xa4], ebx
xor eax, ecx
xor edx, ebx
mov ebx, dword [esp + 0x94]
mov ecx, edx
mov edx, eax
shrd edx, ecx, 0x18
shrd ecx, eax, 0x18
mov eax, dword [esp + 0x90]
mov edi, ecx
mov ecx, dword [esp + 0x90]
mov esi, edx
mov dword [esp + 0x80], esi
mov dword [esp + 0x84], edi
mul edx
shld edx, eax, 1
add eax, eax
add ecx, esi
mov esi, dword [esp + 0x58]
adc ebx, edi
mov edi, dword [esp + 0x5c]
add eax, ecx
adc edx, ebx
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], edx
mov dword [esp + 0x90], esi
mov dword [esp + 0x94], edi
movups xmm5, xmmword [esp + 0x90]
xor edx, dword [esp + 0x74]
mov edi, dword [esp + 0xbc]
xor eax, dword [esp + 0x70]
movups xmmword [edi + 0x80], xmm5
mov edi, edx
shrd edi, eax, 0x10
mov esi, eax
mov eax, dword [esp + 0xa0]
shrd esi, edx, 0x10
mov ebx, edi
mov edi, dword [esp + 0xbc]
mov ecx, esi
mul esi
mov dword [edi + 0x384], ebx
mov dword [edi + 0x380], esi
mov edi, dword [esp + 0xbc]
shld edx, eax, 1
add eax, eax
add ecx, dword [esp + 0xa0]
adc ebx, dword [esp + 0xa4]
mov esi, dword [esp + 0xb4]
add eax, ecx
adc edx, ebx
mov dword [esp + 0xa8], eax
xor eax, dword [esp + 0x80]
add edi, 0x10
mov dword [esp + 0xac], edx
xor edx, dword [esp + 0x84]
mov ebx, dword [esp + 0xb0]
mov dword [esp + 0xa4], esi
mov ecx, eax
shld eax, edx, 1
shld edx, ecx, 1
mov dword [edi + 0xf0], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 0xa0], ebx
movups xmm7, xmmword [esp + 0xa0]
mov dword [edi + 0xf4], edx
movups xmmword [edi + 0x1f0], xmm7
mov dword [esp + 0xbc], edi
cmp edi, eax
jne 0x40e2c0
mov ebx, dword [esp + 4]
lea esi, [esp + 0x4c0]
mov ecx, 0x100
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
lea esi, [esi]
lea esi, [esi]
mov eax, dword [esp + ecx*8 + 0xc0]
mov edx, dword [esp + ecx*8 + 0xc4]
xor dword [ebx + ecx*8], eax
xor dword [ebx + ecx*8 + 4], edx
add ecx, 1
cmp ecx, 0x80
jne 0x40f050
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret