Function at 0x40ae71
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x70
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov ecx, dword [eax]
mov dword [ebp - 0x20], ecx
mov ecx, dword [eax + 4]
mov dword [ebp - 0x3c], ecx
mov ecx, dword [eax + 8]
mov dword [ebp - 0x24], ecx
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0xc], ecx
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x10], ecx
mov ecx, dword [eax + 0x14]
mov dword [ebp - 0x44], ecx
mov ecx, dword [eax + 0x18]
mov dword [ebp - 0x14], ecx
mov ecx, dword [eax + 0x1c]
mov dword [ebp - 0x2c], ecx
mov ecx, dword [eax + 0x20]
mov dword [ebp - 0x18], ecx
mov ecx, dword [eax + 0x24]
mov dword [ebp - 0x30], ecx
mov ecx, dword [eax + 0x28]
mov dword [ebp - 0x1c], ecx
mov ecx, dword [eax + 0x2c]
mov dword [ebp - 0x34], ecx
mov ecx, dword [eax + 0x30]
mov dword [ebp - 0x28], ecx
mov ecx, dword [eax + 0x34]
mov dword [ebp - 0x40], ecx
mov ecx, dword [eax + 0x38]
mov eax, dword [eax + 0x3c]
mov dword [ebp - 8], ecx
xor ecx, ecx
mov dword [ebp - 0x38], eax
mov dword [ebp - 4], ecx
mov ecx, dword [ebp + 0xc]
mov esi, dword [ecx + 4]
mov edx, esi
mov eax, dword [ecx]
mov edi, esi
add ecx, 8
sar edx, 0x1f
or edx, eax
mov dword [ebp + 0xc], ecx
mov eax, esi
mov ebx, edx
shld ebx, edi, 8
mov ecx, edx
shrd eax, ecx, 8
shld edx, esi, 8
shr ecx, 8
xor ebx, ecx
shl edi, 8
xor edi, eax
shl esi, 8
mov eax, 0xff00ff
and edi, eax
and ebx, eax
xor edi, esi
xor ebx, edx
mov edx, edi
mov esi, ebx
shld esi, edx, 0x10
mov eax, edi
mov ecx, ebx
shrd eax, ecx, 0x10
shl edx, 0x10
xor edx, eax
shr ecx, 0x10
xor esi, ecx
mov eax, 0xffff
mov ecx, dword [ebp + 8]
and esi, eax
and edx, eax
mov eax, dword [ebp - 4]
shld ebx, edi, 0x10
xor esi, ebx
shl edi, 0x10
mov dword [ecx + eax*8 + 0x54], esi
xor edx, edi
mov dword [ecx + eax*8 + 0x50], edx
xor edx, edx
mov ecx, dword [ebp - 0x30]
mov ebx, ecx
mov eax, dword [ebp - 0x18]
mov edi, ecx
shld ecx, eax, 0x17
sar ebx, 9
shl eax, 0x17
or ebx, eax
sar edi, 0x1f
mov eax, dword [ebp - 0x18]
or edi, ecx
mov ecx, dword [ebp - 0x30]
mov esi, eax
shrd eax, ecx, 0x12
shl esi, 0xe
sar ecx, 0x12
or edx, eax
mov eax, dword [ebp - 0x18]
or esi, ecx
mov ecx, dword [ebp - 0x30]
xor edi, esi
xor ebx, edx
mov esi, eax
shrd eax, ecx, 0xe
xor edx, edx
shl esi, 0x12
sar ecx, 0xe
or edx, eax
or esi, ecx
xor ebx, edx
mov edx, dword [ebp - 0x30]
xor edi, esi
mov esi, dword [ebp - 0x18]
not esi
and esi, dword [ebp - 0x28]
not edx
and edx, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x1c]
and ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x34]
xor esi, ecx
and eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 4]
xor edx, eax
mov eax, dword [ebp + 8]
add ebx, esi
mov esi, dword [ebp - 0x20]
adc edi, edx
mov edx, dword [ebp - 0x3c]
add ebx, dword [ecx*8 + 0x424798]
adc edi, dword [ecx*8 + 0x42479c]
add ebx, dword [eax + ecx*8 + 0x50]
adc edi, dword [eax + ecx*8 + 0x54]
add ebx, dword [ebp - 8]
mov eax, dword [ebp - 0x24]
adc edi, dword [ebp - 0x38]
add dword [ebp - 0x14], ebx
mov ecx, dword [ebp - 0xc]
adc dword [ebp - 0x2c], edi
xor eax, esi
and dword [ebp - 8], 0
mov dword [ebp - 0x5c], eax
mov eax, ecx
xor eax, edx
and ecx, edx
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x24]
and eax, esi
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x54], eax
mov ecx, edx
mov eax, dword [ebp - 0x20]
shrd eax, ecx, 0x1c
shl esi, 4
or dword [ebp - 8], eax
mov eax, dword [ebp - 0x20]
sar ecx, 0x1c
or esi, ecx
mov ecx, dword [ebp - 0x3c]
shld ecx, eax, 0x1e
mov dword [ebp - 0x38], esi
mov esi, edx
sar esi, 2
shl eax, 0x1e
or esi, eax
sar edx, 0x1f
xor dword [ebp - 8], esi
or edx, ecx
xor dword [ebp - 0x38], edx
mov ecx, dword [ebp - 0x3c]
mov esi, ecx
mov eax, dword [ebp - 0x20]
mov edx, ecx
shld ecx, eax, 0x19
sar esi, 7
shl eax, 0x19
or esi, eax
sar edx, 0x1f
xor dword [ebp - 8], esi
or edx, ecx
mov esi, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x5c]
xor esi, edx
and ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x58]
and eax, dword [ebp - 0x44]
xor ecx, dword [ebp - 0x54]
xor eax, dword [ebp - 0x50]
mov edx, dword [ebp - 8]
add edx, ecx
adc esi, eax
add edx, ebx
mov dword [ebp - 8], edx
adc esi, edi
mov dword [ebp - 0x38], esi
mov ecx, dword [ebp + 0xc]
inc dword [ebp - 4]
mov esi, dword [ecx + 4]
mov edx, esi
mov eax, dword [ecx]
mov edi, esi
add ecx, 8
sar edx, 0x1f
or edx, eax
mov dword [ebp + 0xc], ecx
mov eax, esi
mov ebx, edx
shld ebx, edi, 8
mov ecx, edx
shrd eax, ecx, 8
shld edx, esi, 8
shr ecx, 8
xor ebx, ecx
shl edi, 8
xor edi, eax
shl esi, 8
mov eax, 0xff00ff
and edi, eax
and ebx, eax
xor edi, esi
xor ebx, edx
mov edx, edi
mov esi, ebx
shld esi, edx, 0x10
mov eax, edi
mov ecx, ebx
shrd eax, ecx, 0x10
shl edx, 0x10
xor edx, eax
shr ecx, 0x10
xor esi, ecx
mov eax, 0xffff
mov ecx, dword [ebp - 4]
and esi, eax
and edx, eax
mov eax, dword [ebp + 8]
shld ebx, edi, 0x10
xor esi, ebx
shl edi, 0x10
mov dword [eax + ecx*8 + 0x54], esi
xor edx, edi
mov dword [eax + ecx*8 + 0x50], edx
xor edx, edx
mov ecx, dword [ebp - 0x2c]
mov ebx, ecx
mov eax, dword [ebp - 0x14]
mov edi, ecx
shld ecx, eax, 0x17
sar ebx, 9
shl eax, 0x17
or ebx, eax
sar edi, 0x1f
mov eax, dword [ebp - 0x14]
or edi, ecx
mov ecx, dword [ebp - 0x2c]
mov esi, eax
shrd eax, ecx, 0x12
shl esi, 0xe
sar ecx, 0x12
or edx, eax
mov eax, dword [ebp - 0x14]
or esi, ecx
mov ecx, dword [ebp - 0x2c]
xor edi, esi
xor ebx, edx
mov esi, eax
shrd eax, ecx, 0xe
shl esi, 0x12
xor edx, edx
sar ecx, 0xe
or edx, eax
or esi, ecx
xor ebx, edx
xor edi, esi
mov esi, dword [ebp - 0x14]
not esi
and esi, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x18]
not edx
and ecx, dword [ebp - 0x14]
and edx, dword [ebp - 0x34]
xor esi, ecx
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x30]
and eax, dword [ebp - 0x2c]
xor edx, eax
mov eax, dword [ebp + 8]
add ebx, esi
adc edi, edx
add ebx, dword [ecx*8 + 0x424798]
adc edi, dword [ecx*8 + 0x42479c]
add ebx, dword [eax + ecx*8 + 0x50]
adc edi, dword [eax + ecx*8 + 0x54]
add ebx, dword [ebp - 0x28]
mov eax, dword [ebp - 8]
mov edx, eax
adc edi, dword [ebp - 0x40]
add dword [ebp - 0x10], ebx
mov ecx, dword [ebp - 0x38]
adc dword [ebp - 0x44], edi
xor esi, esi
shrd eax, ecx, 0x1c
shl edx, 4
or esi, eax
sar ecx, 0x1c
mov eax, dword [ebp - 8]
or edx, ecx
mov ecx, dword [ebp - 0x38]
mov dword [ebp - 0x40], edx
mov edx, ecx
mov dword [ebp - 0x28], esi
mov esi, ecx
shld ecx, eax, 0x1e
sar esi, 2
shl eax, 0x1e
or esi, eax
sar edx, 0x1f
xor dword [ebp - 0x28], esi
or edx, ecx
xor dword [ebp - 0x40], edx
mov ecx, dword [ebp - 0x38]
mov esi, ecx
mov eax, dword [ebp - 8]
mov edx, ecx
shld ecx, eax, 0x19
sar esi, 7
shl eax, 0x19
or esi, eax
sar edx, 0x1f
xor dword [ebp - 0x28], esi
or edx, ecx
mov esi, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x5c]
xor esi, edx
and ecx, dword [ebp - 8]
xor ecx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x58]
and eax, dword [ebp - 0x38]
xor eax, dword [ebp - 0x50]
mov edx, dword [ebp - 0x28]
add edx, ecx
mov ecx, dword [ebp + 0xc]
adc esi, eax
add edx, ebx
mov dword [ebp - 0x28], edx
mov eax, dword [ecx]
adc esi, edi
inc dword [ebp - 4]
mov dword [ebp - 0x40], esi
mov esi, dword [ecx + 4]
mov edx, esi
add ecx, 8
sar edx, 0x1f
mov dword [ebp + 0xc], ecx
or edx, eax
mov edi, esi
mov eax, esi
mov ebx, edx
shld ebx, edi, 8
mov ecx, edx
shrd eax, ecx, 8
shld edx, esi, 8
shr ecx, 8
xor ebx, ecx
shl esi, 8
shl edi, 8
xor edi, eax
mov eax, 0xff00ff
and edi, eax
and ebx, eax
xor edi, esi
xor ebx, edx
mov edx, edi
mov esi, ebx
shld esi, edx, 0x10
mov eax, edi
mov ecx, ebx
shrd eax, ecx, 0x10
shl edx, 0x10
xor edx, eax
shr ecx, 0x10
xor esi, ecx
mov eax, 0xffff
mov ecx, dword [ebp - 4]
and esi, eax
and edx, eax
mov eax, dword [ebp + 8]
shld ebx, edi, 0x10
xor esi, ebx
shl edi, 0x10
mov dword [eax + ecx*8 + 0x54], esi
xor edx, edi
mov dword [eax + ecx*8 + 0x50], edx
xor edx, edx
mov ecx, dword [ebp - 0x44]
mov ebx, ecx
mov eax, dword [ebp - 0x10]
mov edi, ecx
shld ecx, eax, 0x17
sar ebx, 9
shl eax, 0x17
or ebx, eax
sar edi, 0x1f
mov eax, dword [ebp - 0x10]
or edi, ecx
mov ecx, dword [ebp - 0x44]
mov esi, eax
shrd eax, ecx, 0x12
shl esi, 0xe
or edx, eax
sar ecx, 0x12
mov eax, dword [ebp - 0x10]
or esi, ecx
mov ecx, dword [ebp - 0x44]
xor edi, esi
mov esi, eax
xor ebx, edx
shrd eax, ecx, 0xe
shl esi, 0x12
xor edx, edx
sar ecx, 0xe
or edx, eax
mov eax, dword [ebp - 0x2c]
or esi, ecx
mov ecx, dword [ebp - 0x14]
xor edi, esi
mov esi, dword [ebp - 0x10]
xor ebx, edx
mov edx, dword [ebp - 0x44]
not esi
and esi, dword [ebp - 0x18]
not edx
and ecx, dword [ebp - 0x10]
and edx, dword [ebp - 0x30]
xor esi, ecx
and eax, dword [ebp - 0x44]
xor edx, eax
mov ecx, dword [ebp - 4]
add ebx, esi
mov eax, dword [ebp + 8]
adc edi, edx
add ebx, dword [ecx*8 + 0x424798]
adc edi, dword [ecx*8 + 0x42479c]
add ebx, dword [eax + ecx*8 + 0x50]
adc edi, dword [eax + ecx*8 + 0x54]
add ebx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x28]
mov edx, eax
adc edi, dword [ebp - 0x34]
add dword [ebp - 0x24], ebx
mov ecx, dword [ebp - 0x40]
adc dword [ebp - 0xc], edi
xor esi, esi
shrd eax, ecx, 0x1c
shl edx, 4
or esi, eax
sar ecx, 0x1c
mov eax, dword [ebp - 0x28]
or edx, ecx
mov ecx, dword [ebp - 0x40]
mov dword [ebp - 0x34], edx
mov edx, ecx
mov dword [ebp - 0x1c], esi
mov esi, ecx
shld ecx, eax, 0x1e
sar edx, 0x1f
or edx, ecx
shl eax, 0x1e
xor dword [ebp - 0x34], edx
mov ecx, dword [ebp - 0x40]
mov edx, ecx
sar esi, 2
or esi, eax
sar edx, 0x1f
xor dword [ebp - 0x1c], esi
mov esi, ecx
mov eax, dword [ebp - 0x28]
shld ecx, eax, 0x19
sar esi, 7
or edx, ecx
shl eax, 0x19
xor dword [ebp - 0x34], edx
or esi, eax
xor dword [ebp - 0x1c], esi
mov ecx, dword [ebp - 0x28]
mov esi, ecx
xor esi, dword [ebp - 0x20]
and ecx, dword [ebp - 0x20]
and esi, dword [ebp - 8]
mov eax, dword [ebp - 0x40]
xor esi, ecx
mov ecx, dword [ebp - 0x1c]
mov edx, eax
xor edx, dword [ebp - 0x3c]
and eax, dword [ebp - 0x3c]
and edx, dword [ebp - 0x38]
xor edx, eax
mov eax, dword [ebp - 0x34]
add ecx, esi
adc eax, edx
add ecx, ebx
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp + 0xc]
adc eax, edi
inc dword [ebp - 4]
mov dword [ebp - 0x34], eax
mov esi, dword [ecx + 4]
mov edx, esi
mov eax, dword [ecx]
mov edi, esi
sar edx, 0x1f
add ecx, 8
or edx, eax
mov dword [ebp + 0xc], ecx
mov ebx, edx
mov eax, esi
shld ebx, edi, 8
shl edi, 8
mov ecx, edx
shrd eax, ecx, 8
shld edx, esi, 8
xor edi, eax
shr ecx, 8
xor ebx, ecx
shl esi, 8
mov eax, 0xff00ff
and edi, eax
and ebx, eax
xor edi, esi
xor ebx, edx
mov edx, edi
mov esi, ebx
shld esi, edx, 0x10
mov eax, edi
mov ecx, ebx
shrd eax, ecx, 0x10
shl edx, 0x10
xor edx, eax
shr ecx, 0x10
xor esi, ecx
mov eax, 0xffff
mov ecx, dword [ebp - 4]
and esi, eax
and edx, eax
mov eax, dword [ebp + 8]
shld ebx, edi, 0x10
xor esi, ebx
shl edi, 0x10
mov dword [eax + ecx*8 + 0x54], esi
xor edx, edi
mov dword [eax + ecx*8 + 0x50], edx
xor edx, edx
mov ecx, dword [ebp - 0xc]
mov ebx, ecx
mov eax, dword [ebp - 0x24]
mov edi, ecx
shld ecx, eax, 0x17
sar edi, 0x1f
or edi, ecx
shl eax, 0x17
mov ecx, dword [ebp - 0xc]
sar ebx, 9
or ebx, eax
mov eax, dword [ebp - 0x24]
mov esi, eax
shrd eax, ecx, 0x12
shl esi, 0xe
or edx, eax
sar ecx, 0x12
mov eax, dword [ebp - 0x24]
or esi, ecx
mov ecx, dword [ebp - 0xc]
xor edi, esi
xor ebx, edx
mov esi, eax
shrd eax, ecx, 0xe
shl esi, 0x12
xor edx, edx
sar ecx, 0xe
or edx, eax
mov eax, dword [ebp - 0x44]
or esi, ecx
mov ecx, dword [ebp - 0x10]
xor edi, esi
mov esi, dword [ebp - 0x24]
xor ebx, edx
mov edx, dword [ebp - 0xc]
not esi
and ecx, dword [ebp - 0x24]
not edx
and esi, dword [ebp - 0x14]
and edx, dword [ebp - 0x2c]
xor esi, ecx
and eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 4]
xor edx, eax
add ebx, esi
adc edi, edx
add ebx, dword [ecx*8 + 0x424798]
adc edi, dword [ecx*8 + 0x42479c]
mov eax, dword [ebp + 8]
add ebx, dword [eax + ecx*8 + 0x50]
adc edi, dword [eax + ecx*8 + 0x54]
add ebx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
mov edx, eax
adc edi, dword [ebp - 0x30]
add dword [ebp - 0x20], ebx
mov ecx, dword [ebp - 0x34]
adc dword [ebp - 0x3c], edi
xor esi, esi
shrd eax, ecx, 0x1c
shl edx, 4
or esi, eax
sar ecx, 0x1c
mov eax, dword [ebp - 0x1c]
or edx, ecx
mov ecx, dword [ebp - 0x34]
mov dword [ebp - 0x30], edx
mov edx, ecx
mov dword [ebp - 0x18], esi
mov esi, ecx
shld ecx, eax, 0x1e
sar edx, 0x1f
or edx, ecx
shl eax, 0x1e
xor dword [ebp - 0x30], edx
mov ecx, dword [ebp - 0x34]
mov edx, ecx
sar esi, 2
or esi, eax
sar edx, 0x1f
xor dword [ebp - 0x18], esi
mov esi, ecx
mov eax, dword [ebp - 0x1c]
shld ecx, eax, 0x19
sar esi, 7
or edx, ecx
shl eax, 0x19
xor dword [ebp - 0x30], edx
or esi, eax
xor dword [ebp - 0x18], esi
mov ecx, dword [ebp - 0x28]
mov esi, ecx
and ecx, dword [ebp - 0x1c]
xor esi, dword [ebp - 0x1c]
and esi, dword [ebp - 8]
mov eax, dword [ebp - 0x40]
xor esi, ecx
mov ecx, dword [ebp - 0x18]
mov edx, eax
xor edx, dword [ebp - 0x34]
and eax, dword [ebp - 0x34]
and edx, dword [ebp - 0x38]
xor edx, eax
mov eax, dword [ebp - 0x30]
add ecx, esi
adc eax, edx
add ecx, ebx
mov dword [ebp - 0x18], ecx
mov ecx, dword [ebp + 0xc]
adc eax, edi
inc dword [ebp - 4]
mov dword [ebp - 0x30], eax
mov esi, dword [ecx + 4]
mov edx, esi
mov eax, dword [ecx]
mov edi, esi
add ecx, 8
sar edx, 0x1f
or edx, eax
mov dword [ebp + 0xc], ecx
mov ebx, edx
mov eax, esi
shld ebx, edi, 8
mov ecx, edx
shrd eax, ecx, 8
shl edi, 8
shr ecx, 8
xor edi, eax
shld edx, esi, 8
xor ebx, ecx
mov eax, 0xff00ff
and edi, eax
shl esi, 8
xor edi, esi
and ebx, eax
xor ebx, edx
mov eax, edi
mov edx, edi
mov esi, ebx
shld esi, edx, 0x10
mov ecx, ebx
shrd eax, ecx, 0x10
shl edx, 0x10
xor edx, eax
shr ecx, 0x10
xor esi, ecx
mov eax, 0xffff
mov ecx, dword [ebp - 4]
and esi, eax
and edx, eax
mov eax, dword [ebp + 8]
shld ebx, edi, 0x10
xor esi, ebx
shl edi, 0x10
mov dword [eax + ecx*8 + 0x54], esi
xor edx, edi
mov dword [eax + ecx*8 + 0x50], edx
xor edx, edx
mov ecx, dword [ebp - 0x3c]
mov ebx, ecx
mov eax, dword [ebp - 0x20]
mov edi, ecx
shld ecx, eax, 0x17
sar edi, 0x1f
or edi, ecx
shl eax, 0x17
mov ecx, dword [ebp - 0x3c]
sar ebx, 9
or ebx, eax
mov eax, dword [ebp - 0x20]
mov esi, eax
shrd eax, ecx, 0x12
shl esi, 0xe
or edx, eax
sar ecx, 0x12
mov eax, dword [ebp - 0x20]
or esi, ecx
mov ecx, dword [ebp - 0x3c]
xor edi, esi
xor ebx, edx
mov esi, eax
shrd eax, ecx, 0xe
shl esi, 0x12
xor edx, edx
or edx, eax
sar ecx, 0xe
mov eax, dword [ebp - 0xc]
or esi, ecx
and eax, dword [ebp - 0x3c]
xor edi, esi
mov esi, dword [ebp - 0x20]
xor ebx, edx
mov edx, dword [ebp - 0x3c]
not esi
and esi, dword [ebp - 0x10]
not edx
and edx, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x24]
xor edx, eax
and ecx, dword [ebp - 0x20]
mov eax, dword [ebp + 8]
xor esi, ecx
mov ecx, dword [ebp - 4]
add ebx, esi
adc edi, edx
add ebx, dword [ecx*8 + 0x424798]
adc edi, dword [ecx*8 + 0x42479c]
add ebx, dword [eax + ecx*8 + 0x50]
adc edi, dword [eax + ecx*8 + 0x54]
add ebx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov edx, eax
adc edi, dword [ebp - 0x2c]
add dword [ebp - 8], ebx
mov ecx, dword [ebp - 0x30]
adc dword [ebp - 0x38], edi
xor esi, esi
shrd eax, ecx, 0x1c
shl edx, 4
or esi, eax
sar ecx, 0x1c
mov eax, dword [ebp - 0x18]
or edx, ecx
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x2c], edx
mov edx, ecx
mov dword [ebp - 0x14], esi
mov esi, ecx
shld ecx, eax, 0x1e
sar edx, 0x1f
or edx, ecx
shl eax, 0x1e
xor dword [ebp - 0x2c], edx
mov ecx, dword [ebp - 0x30]
mov edx, ecx
sar esi, 2
or esi, eax
sar edx, 0x1f
xor dword [ebp - 0x14], esi
mov esi, ecx
mov eax, dword [ebp - 0x18]
shld ecx, eax, 0x19
sar esi, 7
or edx, ecx
shl eax, 0x19
xor dword [ebp - 0x2c], edx
or esi, eax
xor dword [ebp - 0x14], esi
mov ecx, dword [ebp - 0x1c]
mov esi, ecx
and ecx, dword [ebp - 0x18]
xor esi, dword [ebp - 0x18]
and esi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x34]
xor esi, ecx
mov ecx, dword [ebp - 0x14]
mov edx, eax
and eax, dword [ebp - 0x30]
xor edx, dword [ebp - 0x30]
and edx, dword [ebp - 0x40]
xor edx, eax
mov eax, dword [ebp - 0x2c]
add ecx, esi
adc eax, edx
add ecx, ebx
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp + 0xc]
adc eax, edi
inc dword [ebp - 4]
mov dword [ebp - 0x2c], eax
mov esi, dword [ecx + 4]
mov edx, esi
mov eax, dword [ecx]
mov edi, esi
add ecx, 8
sar edx, 0x1f
or edx, eax
mov dword [ebp + 0xc], ecx
mov ebx, edx
mov eax, esi
shld ebx, edi, 8
mov ecx, edx
shrd eax, ecx, 8
shl edi, 8
xor edi, eax
shr ecx, 8
mov eax, 0xff00ff
xor ebx, ecx
and edi, eax
and ebx, eax
shld edx, esi, 8
xor ebx, edx
shl esi, 8
xor edi, esi
mov ecx, ebx
mov edx, edi
mov esi, ebx
shld esi, edx, 0x10
mov eax, edi
shrd eax, ecx, 0x10
shld ebx, edi, 0x10
shr ecx, 0x10
xor esi, ecx
shl edx, 0x10
mov ecx, dword [ebp - 4]
xor edx, eax
shl edi, 0x10
mov eax, 0xffff
and esi, eax
and edx, eax
mov eax, dword [ebp + 8]
xor edx, edi
xor esi, ebx
mov dword [eax + ecx*8 + 0x54], esi
mov dword [eax + ecx*8 + 0x50], edx
xor edx, edx
mov ecx, dword [ebp - 0x38]
mov ebx, ecx
mov eax, dword [ebp - 8]
mov edi, ecx
shld ecx, eax, 0x17
sar edi, 0x1f
or edi, ecx
shl eax, 0x17
mov ecx, dword [ebp - 0x38]
sar ebx, 9
or ebx, eax
mov eax, dword [ebp - 8]
mov esi, eax
shrd eax, ecx, 0x12
shl esi, 0xe
or edx, eax
sar ecx, 0x12
mov eax, dword [ebp - 8]
or esi, ecx
mov ecx, dword [ebp - 0x38]
xor edi, esi
xor ebx, edx
mov esi, eax
shrd eax, ecx, 0xe
shl esi, 0x12
xor edx, edx
or edx, eax
sar ecx, 0xe
mov eax, dword [ebp - 0x38]
or esi, ecx
mov ecx, dword [ebp - 8]
xor edi, esi
xor ebx, edx
mov esi, ecx
and ecx, dword [ebp - 0x20]
mov edx, eax
and eax, dword [ebp - 0x3c]
not esi
and esi, dword [ebp - 0x24]
not edx
and edx, dword [ebp - 0xc]
xor esi, ecx
mov ecx, dword [ebp - 4]
xor edx, eax
mov eax, dword [ebp + 8]
add ebx, esi
adc edi, edx
add ebx, dword [ecx*8 + 0x424798]
adc edi, dword [ecx*8 + 0x42479c]
add ebx, dword [eax + ecx*8 + 0x50]
adc edi, dword [eax + ecx*8 + 0x54]
add ebx, dword [ebp - 0x10]
adc edi, dword [ebp - 0x44]
add dword [ebp - 0x28], ebx
adc dword [ebp - 0x40], edi
mov eax, dword [ebp - 0x14]
xor esi, esi
mov ecx, dword [ebp - 0x2c]
mov edx, eax
shrd eax, ecx, 0x1c
shl edx, 4
or esi, eax
sar ecx, 0x1c
or edx, ecx
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x44], edx
mov edx, ecx
mov dword [ebp - 0x10], esi
mov esi, ecx
shld ecx, eax, 0x1e
sar edx, 0x1f
or edx, ecx
shl eax, 0x1e
xor dword [ebp - 0x44], edx
mov ecx, dword [ebp - 0x2c]
mov edx, ecx
sar esi, 2
or esi, eax
sar edx, 0x1f
xor dword [ebp - 0x10], esi
mov esi, ecx
mov eax, dword [ebp - 0x14]
shld ecx, eax, 0x19
sar esi, 7
or edx, ecx
shl eax, 0x19
xor dword [ebp - 0x44], edx
or esi, eax
xor dword [ebp - 0x10], esi
mov ecx, dword [ebp - 0x18]
mov esi, ecx
xor esi, dword [ebp - 0x14]
and ecx, dword [ebp - 0x14]
and esi, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x30]
xor esi, ecx
mov ecx, dword [ebp - 0x10]
mov edx, eax
xor edx, dword [ebp - 0x2c]
and eax, dword [ebp - 0x2c]
and edx, dword [ebp - 0x34]
xor edx, eax
mov eax, dword [ebp - 0x44]
add ecx, esi
adc eax, edx
add ecx, ebx
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebp + 0xc]
adc eax, edi
inc dword [ebp - 4]
mov dword [ebp - 0x44], eax
mov esi, dword [ecx + 4]
mov edx, esi
mov eax, dword [ecx]
mov edi, esi
sar edx, 0x1f
add ecx, 8
or edx, eax
mov dword [ebp + 0xc], ecx
mov ebx, edx
mov eax, esi
shld ebx, edi, 8
mov ecx, edx
shrd eax, ecx, 8
shl edi, 8
xor edi, eax
shr ecx, 8
shld edx, esi, 8
mov eax, 0xff00ff
xor ebx, ecx
and edi, eax
shl esi, 8
and ebx, eax
xor edi, esi
xor ebx, edx
mov edx, edi
mov esi, ebx
shld esi, edx, 0x10
mov eax, edi
mov ecx, ebx
shrd eax, ecx, 0x10
shl edx, 0x10
xor edx, eax
shr ecx, 0x10
xor esi, ecx
mov eax, 0xffff
mov ecx, dword [ebp - 4]
and esi, eax
and edx, eax
mov eax, dword [ebp + 8]
shld ebx, edi, 0x10
xor esi, ebx
shl edi, 0x10
mov dword [eax + ecx*8 + 0x54], esi
xor edx, edi
mov dword [eax + ecx*8 + 0x50], edx
xor edx, edx
mov ecx, dword [ebp - 0x40]
mov ebx, ecx
mov eax, dword [ebp - 0x28]
mov edi, ecx
shld ecx, eax, 0x17
sar edi, 0x1f
or edi, ecx
shl eax, 0x17
mov ecx, dword [ebp - 0x40]
sar ebx, 9
or ebx, eax
mov eax, dword [ebp - 0x28]
mov esi, eax
shrd eax, ecx, 0x12
shl esi, 0xe
or edx, eax
sar ecx, 0x12
mov eax, dword [ebp - 0x28]
or esi, ecx
mov ecx, dword [ebp - 0x40]
xor edi, esi
xor ebx, edx
mov esi, eax
shrd eax, ecx, 0xe
shl esi, 0x12
xor edx, edx
or edx, eax
sar ecx, 0xe
mov eax, dword [ebp - 0x38]
or esi, ecx
and eax, dword [ebp - 0x40]
xor edi, esi
mov esi, dword [ebp - 0x28]
xor ebx, edx
mov edx, dword [ebp - 0x40]
not esi
and esi, dword [ebp - 0x20]
not edx
and edx, dword [ebp - 0x3c]
mov ecx, dword [ebp - 8]
xor edx, eax
and ecx, dword [ebp - 0x28]
mov eax, dword [ebp + 8]
xor esi, ecx
mov ecx, dword [ebp - 4]
add ebx, esi
adc edi, edx
add ebx, dword [ecx*8 + 0x424798]
adc edi, dword [ecx*8 + 0x42479c]
add ebx, dword [eax + ecx*8 + 0x50]
adc edi, dword [eax + ecx*8 + 0x54]
add ebx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x10]
mov edx, eax
adc edi, dword [ebp - 0xc]
add dword [ebp - 0x1c], ebx
adc dword [ebp - 0x34], edi
xor esi, esi
shl edx, 4
mov ecx, dword [ebp - 0x44]
shrd eax, ecx, 0x1c
or esi, eax
sar ecx, 0x1c
or edx, ecx
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x44]
mov dword [ebp - 0xc], edx
mov edx, ecx
mov dword [ebp - 0x24], esi
mov esi, ecx
shld ecx, eax, 0x1e
sar edx, 0x1f
or edx, ecx
sar esi, 2
xor dword [ebp - 0xc], edx
mov ecx, dword [ebp - 0x44]
mov edx, ecx
shl eax, 0x1e
or esi, eax
sar edx, 0x1f
xor dword [ebp - 0x24], esi
mov esi, ecx
mov eax, dword [ebp - 0x10]
shld ecx, eax, 0x19
sar esi, 7
or edx, ecx
shl eax, 0x19
xor dword [ebp - 0xc], edx
or esi, eax
xor dword [ebp - 0x24], esi
mov ecx, dword [ebp - 0x14]
mov esi, ecx
xor esi, dword [ebp - 0x10]
and ecx, dword [ebp - 0x10]
and esi, dword [ebp - 0x18]
mov eax, dword [ebp - 0x2c]
xor esi, ecx
mov ecx, dword [ebp - 0x24]
mov edx, eax
xor edx, dword [ebp - 0x44]
and eax, dword [ebp - 0x44]
and edx, dword [ebp - 0x30]
xor edx, eax
mov eax, dword [ebp - 0xc]
add ecx, esi
adc eax, edx
add ecx, ebx
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp + 0xc]
adc eax, edi
inc dword [ebp - 4]
mov dword [ebp - 0xc], eax
mov esi, dword [ecx + 4]
mov edx, esi
mov eax, dword [ecx]
mov edi, esi
sar edx, 0x1f
add ecx, 8
or edx, eax
mov dword [ebp + 0xc], ecx
mov ebx, edx
mov eax, esi
shld ebx, edi, 8
mov ecx, edx
shrd eax, ecx, 8
shl edi, 8
shld edx, esi, 8
xor edi, eax
shr ecx, 8
xor ebx, ecx
shl esi, 8
mov eax, 0xff00ff
and edi, eax
and ebx, eax
xor edi, esi
xor ebx, edx
mov edx, edi
mov esi, ebx
shld esi, edx, 0x10
shl edx, 0x10
mov eax, edi
mov ecx, ebx
shrd eax, ecx, 0x10
shld ebx, edi, 0x10
xor edx, eax
shr ecx, 0x10
xor esi, ecx
shl edi, 0x10
mov ecx, dword [ebp - 4]
mov eax, 0xffff
and esi, eax
and edx, eax
mov eax, dword [ebp + 8]
xor edx, edi
xor esi, ebx
mov dword [eax + ecx*8 + 0x54], esi
mov dword [eax + ecx*8 + 0x50], edx
xor edx, edx
mov ecx, dword [ebp - 0x34]
mov ebx, ecx
mov eax, dword [ebp - 0x1c]
mov edi, ecx
shld ecx, eax, 0x17
sar edi, 0x1f
or edi, ecx
shl eax, 0x17
mov ecx, dword [ebp - 0x34]
sar ebx, 9
or ebx, eax
mov eax, dword [ebp - 0x1c]
mov esi, eax
shrd eax, ecx, 0x12
shl esi, 0xe
or edx, eax
sar ecx, 0x12
mov eax, dword [ebp - 0x1c]
or esi, ecx
mov ecx, dword [ebp - 0x34]
xor edi, esi
xor ebx, edx
mov esi, eax
shrd eax, ecx, 0xe
xor edx, edx
shl esi, 0x12
or edx, eax
sar ecx, 0xe
mov eax, dword [ebp - 0x40]
or esi, ecx
and eax, dword [ebp - 0x34]
xor edi, esi
mov esi, dword [ebp - 0x1c]
xor ebx, edx
mov edx, dword [ebp - 0x34]
not esi
and esi, dword [ebp - 8]
not edx
and edx, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x28]
xor edx, eax
and ecx, dword [ebp - 0x1c]
mov eax, dword [ebp + 8]
xor esi, ecx
mov ecx, dword [ebp - 4]
add ebx, esi
adc edi, edx
add ebx, dword [ecx*8 + 0x424798]
adc edi, dword [ecx*8 + 0x42479c]
add ebx, dword [eax + ecx*8 + 0x50]
adc edi, dword [eax + ecx*8 + 0x54]
add ebx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x24]
mov edx, eax
adc edi, dword [ebp - 0x3c]
add dword [ebp - 0x18], ebx
mov ecx, dword [ebp - 0xc]
adc dword [ebp - 0x30], edi
xor esi, esi
shrd eax, ecx, 0x1c
shl edx, 4
sar ecx, 0x1c
or esi, eax
mov eax, dword [ebp - 0x24]
or edx, ecx
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x20], esi
mov esi, ecx
mov dword [ebp - 0x3c], edx
mov edx, ecx
shld ecx, eax, 0x1e
sar esi, 2
shl eax, 0x1e
or esi, eax
sar edx, 0x1f
xor dword [ebp - 0x20], esi
or edx, ecx
xor dword [ebp - 0x3c], edx
mov ecx, dword [ebp - 0xc]
mov esi, ecx
mov eax, dword [ebp - 0x24]
mov edx, ecx
shld ecx, eax, 0x19
sar esi, 7
shl eax, 0x19
or esi, eax
sar edx, 0x1f
xor dword [ebp - 0x20], esi
or edx, ecx
xor dword [ebp - 0x3c], edx
mov ecx, dword [ebp - 0x10]
mov esi, ecx
xor esi, dword [ebp - 0x24]
and esi, dword [ebp - 0x14]
and ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x44]
xor esi, ecx
mov ecx, dword [ebp - 0x20]
mov edx, eax
xor edx, dword [ebp - 0xc]
and eax, dword [ebp - 0xc]
and edx, dword [ebp - 0x2c]
xor edx, eax
mov eax, dword [ebp - 0x3c]
add ecx, esi
mov esi, dword [ebp - 4]
adc eax, edx
add ecx, ebx
mov dword [ebp - 0x20], ecx
adc eax, edi
inc esi
mov dword [ebp - 0x3c], eax
mov dword [ebp - 4], esi
cmp esi, 0x10
jl 0x40aee1
lea eax, [esi - 7]
mov dword [ebp + 0xc], eax
lea edi, [esi - 2]
lea eax, [esi + 1]
mov dword [ebp - 0x4c], edi
mov dword [ebp - 0x48], eax
mov edx, dword [ebp + 8]
and eax, 0xf
and edi, 0xf
and esi, 0xf
mov dword [ebp - 0x68], esi
mov ecx, dword [edx + eax*8 + 0x50]
mov eax, dword [edx + eax*8 + 0x54]
mov ebx, dword [edx + edi*8 + 0x50]
mov esi, ebx
mov edi, dword [edx + edi*8 + 0x54]
xor edx, edx
mov dword [ebp - 0x54], ecx
mov ecx, edi
mov dword [ebp - 0x50], eax
mov eax, ebx
shrd eax, ecx, 0x13
shl esi, 0xd
or edx, eax
sar ecx, 0x13
or esi, ecx
mov dword [ebp - 0x58], edx
mov eax, ebx
mov dword [ebp - 0x5c], esi
mov ecx, edi
mov esi, edi
shld ecx, eax, 3
sar esi, 0x1d
mov edx, edi
shl eax, 3
or esi, eax
sar edx, 0x1f
mov eax, dword [ebp - 0x58]
or edx, ecx
mov ecx, dword [ebp - 0x5c]
xor eax, esi
xor ecx, edx
mov edx, dword [ebp - 0x54]
shrd ebx, edi, 6
mov esi, edx
xor eax, ebx
sar edi, 6
xor ecx, edi
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x5c], ecx
mov eax, edx
mov ecx, dword [ebp - 0x50]
mov ebx, edx
shrd eax, ecx, 8
shl ebx, 0x18
xor edi, edi
sar ecx, 8
or edi, eax
mov eax, dword [ebp - 0x54]
or ebx, ecx
mov ecx, dword [ebp - 0x50]
xor edx, edx
shrd eax, ecx, 1
shl esi, 0x1f
or edx, eax
sar ecx, 1
mov eax, dword [ebp - 0x50]
or esi, ecx
mov ecx, dword [ebp - 0x54]
xor edi, edx
mov edx, dword [ebp - 0x5c]
xor ebx, esi
mov esi, dword [ebp + 8]
shrd ecx, eax, 7
sar eax, 7
xor edi, ecx
mov ecx, dword [ebp - 0x58]
xor ebx, eax
mov eax, dword [ebp + 0xc]
add ecx, edi
adc edx, ebx
mov ebx, dword [ebp - 0x68]
and eax, 0xf
add ecx, dword [esi + eax*8 + 0x50]
adc edx, dword [esi + eax*8 + 0x54]
add dword [esi + ebx*8 + 0x50], ecx
adc dword [esi + ebx*8 + 0x54], edx
mov ecx, dword [ebp - 0x30]
mov edx, ecx
mov eax, dword [ebp - 0x18]
mov edi, ecx
shld ecx, eax, 0x17
sar edx, 9
shl eax, 0x17
or edx, eax
sar edi, 0x1f
mov eax, dword [ebp - 0x18]
or edi, ecx
mov ecx, dword [ebp - 0x30]
mov esi, eax
shrd eax, ecx, 0x12
shl esi, 0xe
sar ecx, 0x12
or esi, ecx
mov dword [ebp - 0x50], edx
mov ecx, dword [ebp - 0x30]
xor edi, esi
xor edx, edx
or edx, eax
mov eax, dword [ebp - 0x18]
xor dword [ebp - 0x50], edx
mov esi, eax
shrd eax, ecx, 0xe
xor edx, edx
shl esi, 0x12
or edx, eax
sar ecx, 0xe
xor dword [ebp - 0x50], edx
or esi, ecx
mov edx, dword [ebp - 0x30]
xor edi, esi
mov esi, dword [ebp - 0x18]
not edx
and edx, dword [ebp - 0x40]
not esi
and esi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x34]
and eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x1c]
xor edx, eax
and ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x50]
xor esi, ecx
mov ecx, dword [ebp - 4]
add eax, esi
mov esi, dword [ebp - 0x20]
adc edi, edx
mov edx, dword [ebp - 0x3c]
add eax, dword [ecx*8 + 0x424798]
adc edi, dword [ecx*8 + 0x42479c]
mov ecx, dword [ebp + 8]
add eax, dword [ecx + ebx*8 + 0x50]
adc edi, dword [ecx + ebx*8 + 0x54]
mov ecx, edx
add eax, dword [ebp - 8]
mov ebx, dword [ebp - 0x24]
adc edi, dword [ebp - 0x38]
add dword [ebp - 0x14], eax
mov dword [ebp - 0x50], eax
mov eax, ebx
adc dword [ebp - 0x2c], edi
xor eax, esi
and dword [ebp - 8], 0
and ebx, esi
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0xc]
xor eax, edx
mov dword [ebp - 0x68], ebx
mov ebx, dword [ebp - 0xc]
mov dword [ebp - 0x64], eax
and ebx, edx
mov eax, dword [ebp - 0x20]
shrd eax, ecx, 0x1c
shl esi, 4
or dword [ebp - 8], eax
sar ecx, 0x1c
mov dword [ebp - 0x70], ebx
or esi, ecx
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x3c]
shld ecx, eax, 0x1e
mov dword [ebp - 0x38], esi
mov esi, edx
sar esi, 2
shl eax, 0x1e
or esi, eax
sar edx, 0x1f
xor dword [ebp - 8], esi
or edx, ecx
xor dword [ebp - 0x38], edx
mov ecx, dword [ebp - 0x3c]
mov esi, ecx
mov eax, dword [ebp - 0x20]
mov edx, ecx
shld ecx, eax, 0x19
sar esi, 7
shl eax, 0x19
or esi, eax
sar edx, 0x1f
xor dword [ebp - 8], esi
or edx, ecx
mov esi, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x60]
xor esi, edx
and ecx, dword [ebp - 0x10]
xor ecx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x64]
and eax, dword [ebp - 0x44]
mov edx, dword [ebp - 8]
xor eax, ebx
add edx, ecx
adc esi, eax
add edx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x48]
adc esi, edi
mov dword [ebp - 8], edx
mov edi, dword [ebp - 0x4c]
mov edx, dword [ebp + 8]
mov dword [ebp - 0x38], esi
mov esi, dword [ebp - 4]
inc esi
inc eax
mov dword [ebp - 0x48], eax
inc edi
inc dword [ebp + 0xc]
and eax, 0xf
mov dword [ebp - 0x4c], edi
and edi, 0xf
mov dword [ebp - 4], esi
and esi, 0xf
mov dword [ebp - 0x6c], esi
mov ecx, dword [edx + eax*8 + 0x50]
mov eax, dword [edx + eax*8 + 0x54]
mov ebx, dword [edx + edi*8 + 0x50]
mov esi, ebx
mov edi, dword [edx + edi*8 + 0x54]
xor edx, edx
mov dword [ebp - 0x5c], eax
mov eax, ebx
mov dword [ebp - 0x58], ecx
mov ecx, edi
shrd eax, ecx, 0x13
shl esi, 0xd
or edx, eax
sar ecx, 0x13
or esi, ecx
mov dword [ebp - 0x54], edx
mov dword [ebp - 0x50], esi
mov eax, ebx
mov ecx, edi
mov esi, edi
shld ecx, eax, 3
sar esi, 0x1d
mov edx, edi
shl eax, 3
sar edx, 0x1f
or esi, eax
mov eax, dword [ebp - 0x54]
or edx, ecx
mov ecx, dword [ebp - 0x50]
xor eax, esi
xor ecx, edx
mov edx, dword [ebp - 0x58]
shrd ebx, edi, 6
mov esi, edx
xor eax, ebx
sar edi, 6
xor ecx, edi
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], ecx
mov eax, edx
mov ecx, dword [ebp - 0x5c]
mov ebx, edx
shrd eax, ecx, 8
xor edi, edi
shl ebx, 0x18
or edi, eax
sar ecx, 8
mov eax, dword [ebp - 0x58]
or ebx, ecx
mov ecx, dword [ebp - 0x5c]
xor edx, edx
shrd eax, ecx, 1
shl esi, 0x1f
or edx, eax
sar ecx, 1
mov eax, dword [ebp - 0x5c]
or esi, ecx
mov ecx, dword [ebp - 0x58]
xor edi, edx
mov edx, dword [ebp - 0x50]
xor ebx, esi
mov esi, dword [ebp + 8]
shrd ecx, eax, 7
xor edi, ecx
sar eax, 7
mov ecx, dword [ebp - 0x54]
xor ebx, eax
mov eax, dword [ebp + 0xc]
add ecx, edi
adc edx, ebx
mov ebx, dword [ebp - 0x6c]
and eax, 0xf
add ecx, dword [esi + eax*8 + 0x50]
adc edx, dword [esi + eax*8 + 0x54]
add dword [esi + ebx*8 + 0x50], ecx
mov ecx, dword [ebp - 0x2c]
mov edi, ecx
adc dword [esi + ebx*8 + 0x54], edx
mov edx, ecx
mov eax, dword [ebp - 0x14]
shld ecx, eax, 0x17
sar edx, 9
shl eax, 0x17
or edx, eax
sar edi, 0x1f
mov eax, dword [ebp - 0x14]
or edi, ecx
mov ecx, dword [ebp - 0x2c]
mov esi, eax
shrd eax, ecx, 0x12
mov dword [ebp - 0x50], edx
xor edx, edx
shl esi, 0xe
or edx, eax
mov eax, dword [ebp - 0x14]
xor dword [ebp - 0x50], edx
xor edx, edx
sar ecx, 0x12
or esi, ecx
mov ecx, dword [ebp - 0x2c]
xor edi, esi
mov esi, eax
shrd eax, ecx, 0xe
shl esi, 0x12
sar ecx, 0xe
or edx, eax
xor dword [ebp - 0x50], edx
or esi, ecx
xor edi, esi
mov edx, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x14]
not edx
and edx, dword [ebp - 0x34]
not esi
and esi, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x30]
and eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x18]
xor edx, eax
and ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x50]
xor esi, ecx
mov ecx, dword [ebp - 4]
add eax, esi
adc edi, edx
add eax, dword [ecx*8 + 0x424798]
adc edi, dword [ecx*8 + 0x42479c]
mov ecx, dword [ebp + 8]
add eax, dword [ecx + ebx*8 + 0x50]
adc edi, dword [ecx + ebx*8 + 0x54]
add eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x38]
adc edi, dword [ebp - 0x40]
add dword [ebp - 0x10], eax
mov dword [ebp - 0x50], eax
adc dword [ebp - 0x44], edi
xor edx, edx
mov eax, dword [ebp - 8]
mov ebx, eax
shrd eax, ecx, 0x1c
shl ebx, 4
or edx, eax
sar ecx, 0x1c
mov eax, dword [ebp - 8]
or ebx, ecx
mov ecx, dword [ebp - 0x38]
mov esi, ecx
mov dword [ebp - 0x28], edx
mov edx, ecx
shld ecx, eax, 0x1e
sar esi, 2
shl eax, 0x1e
or esi, eax
sar edx, 0x1f
xor dword [ebp - 0x28], esi
or edx, ecx
mov ecx, dword [ebp - 0x38]
xor ebx, edx
mov eax, dword [ebp - 8]
mov esi, ecx
mov edx, ecx
sar esi, 7
shld ecx, eax, 0x19
sar edx, 0x1f
shl eax, 0x19
or edx, ecx
mov ecx, dword [ebp - 0x60]
or esi, eax
xor dword [ebp - 0x28], esi
xor ebx, edx
and ecx, dword [ebp - 8]
xor ecx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x64]
and eax, dword [ebp - 0x38]
xor eax, dword [ebp - 0x70]
mov edx, dword [ebp - 0x28]
mov esi, dword [ebp - 4]
add edx, ecx
adc ebx, eax
add edx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x48]
adc ebx, edi
mov dword [ebp - 0x28], edx
inc esi
mov dword [ebp - 0x40], ebx
mov ebx, dword [ebp - 0x4c]
inc eax
mov dword [ebp - 4], esi
inc ebx
mov dword [ebp - 0x48], eax
mov edx, dword [ebp + 8]
and eax, 0xf
and esi, 0xf
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x70], esi
inc dword [ebp + 0xc]
mov ecx, dword [edx + eax*8 + 0x50]
mov eax, dword [edx + eax*8 + 0x54]
mov dword [ebp - 0x5c], eax
mov eax, ebx
and eax, 0xf
mov dword [ebp - 0x58], ecx
mov edi, dword [edx + eax*8 + 0x54]
mov ecx, edi
mov ebx, dword [edx + eax*8 + 0x50]
xor edx, edx
mov eax, ebx
mov esi, ebx
shrd eax, ecx, 0x13
shl esi, 0xd
or edx, eax
sar ecx, 0x13
or esi, ecx
mov dword [ebp - 0x54], edx
mov dword [ebp - 0x50], esi
mov eax, ebx
mov ecx, edi
mov esi, edi
shld ecx, eax, 3
mov edx, edi
sar esi, 0x1d
shl eax, 3
or esi, eax
sar edx, 0x1f
mov eax, dword [ebp - 0x54]
or edx, ecx
mov ecx, dword [ebp - 0x50]
xor eax, esi
xor ecx, edx
mov edx, dword [ebp - 0x58]
shrd ebx, edi, 6
mov esi, edx
xor eax, ebx
sar edi, 6
xor ecx, edi
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], ecx
mov eax, edx
mov ecx, dword [ebp - 0x5c]
mov ebx, edx
shrd eax, ecx, 8
xor edi, edi
shl ebx, 0x18
sar ecx, 8
or edi, eax
mov eax, dword [ebp - 0x58]
or ebx, ecx
mov ecx, dword [ebp - 0x5c]
xor edx, edx
shrd eax, ecx, 1
shl esi, 0x1f
or edx, eax
sar ecx, 1
mov eax, dword [ebp - 0x5c]
or esi, ecx
mov ecx, dword [ebp - 0x58]
xor edi, edx
mov edx, dword [ebp - 0x50]
xor ebx, esi
mov esi, dword [ebp + 8]
shrd ecx, eax, 7
sar eax, 7
xor edi, ecx
mov ecx, dword [ebp - 0x54]
xor ebx, eax
mov eax, dword [ebp + 0xc]
add ecx, edi
adc edx, ebx
and eax, 0xf
add ecx, dword [esi + eax*8 + 0x50]
adc edx, dword [esi + eax*8 + 0x54]
mov ebx, dword [ebp - 0x70]
mov eax, dword [ebp - 0x10]
add dword [esi + ebx*8 + 0x50], ecx
mov ecx, dword [ebp - 0x44]
mov edi, ecx
adc dword [esi + ebx*8 + 0x54], edx
mov edx, ecx
shld ecx, eax, 0x17
sar edx, 9
shl eax, 0x17
or edx, eax
sar edi, 0x1f
mov eax, dword [ebp - 0x10]
or edi, ecx
mov ecx, dword [ebp - 0x44]
mov esi, eax
shrd eax, ecx, 0x12
shl esi, 0xe
sar ecx, 0x12
or esi, ecx
mov dword [ebp - 0x50], edx
mov ecx, dword [ebp - 0x44]
xor edx, edx
or edx, eax
xor edi, esi
xor dword [ebp - 0x50], edx
xor edx, edx
mov eax, dword [ebp - 0x10]
mov esi, eax
shrd eax, ecx, 0xe
shl esi, 0x12
or edx, eax
sar ecx, 0xe
xor dword [ebp - 0x50], edx
or esi, ecx
mov edx, dword [ebp - 0x44]
xor edi, esi
mov esi, dword [ebp - 0x10]
not edx
and edx, dword [ebp - 0x30]
not esi
and esi, dword [ebp - 0x18]
mov eax, dword [ebp - 0x2c]
and eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x14]
xor edx, eax
and ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x50]
xor esi, ecx
mov ecx, dword [ebp - 4]
add eax, esi
adc edi, edx
add eax, dword [ecx*8 + 0x424798]
adc edi, dword [ecx*8 + 0x42479c]
mov ecx, dword [ebp + 8]
add eax, dword [ecx + ebx*8 + 0x50]
adc edi, dword [ecx + ebx*8 + 0x54]
add eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x40]
adc edi, dword [ebp - 0x34]
add dword [ebp - 0x24], eax
mov dword [ebp - 0x50], eax
adc dword [ebp - 0xc], edi
xor edx, edx
mov eax, dword [ebp - 0x28]
mov ebx, eax
shrd eax, ecx, 0x1c
shl ebx, 4
or edx, eax
sar ecx, 0x1c
mov eax, dword [ebp - 0x28]
or ebx, ecx
mov ecx, dword [ebp - 0x40]
mov esi, ecx
mov dword [ebp - 0x1c], edx
mov edx, ecx
shld ecx, eax, 0x1e
sar esi, 2
shl eax, 0x1e
sar edx, 0x1f
or esi, eax
xor dword [ebp - 0x1c], esi
or edx, ecx
mov ecx, dword [ebp - 0x40]
xor ebx, edx
mov eax, dword [ebp - 0x28]
mov esi, ecx
sar esi, 7
mov edx, ecx
shld ecx, eax, 0x19
sar edx, 0x1f
or edx, ecx
shl eax, 0x19
or esi, eax
mov ecx, dword [ebp - 0x28]
xor dword [ebp - 0x1c], esi
xor ebx, edx
mov eax, dword [ebp - 0x40]
mov esi, ecx
xor esi, dword [ebp - 0x20]
mov edx, eax
and eax, dword [ebp - 0x3c]
and esi, dword [ebp - 8]
and ecx, dword [ebp - 0x20]
xor edx, dword [ebp - 0x3c]
xor esi, ecx
and edx, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x1c]
xor edx, eax
mov eax, dword [ebp - 0x48]
add ecx, esi
mov esi, dword [ebp - 4]
adc ebx, edx
add ecx, dword [ebp - 0x50]
mov edx, dword [ebp + 8]
adc ebx, edi
mov dword [ebp - 0x1c], ecx
inc esi
mov dword [ebp - 0x34], ebx
mov ebx, dword [ebp - 0x4c]
inc eax
mov dword [ebp - 0x48], eax
inc ebx
and eax, 0xf
inc dword [ebp + 0xc]
mov dword [ebp - 4], esi
and esi, 0xf
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x4c], ebx
mov ecx, dword [edx + eax*8 + 0x50]
mov eax, dword [edx + eax*8 + 0x54]
mov dword [ebp - 0x5c], eax
mov eax, ebx
and eax, 0xf
mov dword [ebp - 0x58], ecx
mov edi, dword [edx + eax*8 + 0x54]
mov ecx, edi
mov ebx, dword [edx + eax*8 + 0x50]
mov eax, ebx
shrd eax, ecx, 0x13
xor edx, edx
mov esi, ebx
or edx, eax
shl esi, 0xd
sar ecx, 0x13
mov eax, ebx
or esi, ecx
mov dword [ebp - 0x54], edx
mov dword [ebp - 0x50], esi
mov ecx, edi
shld ecx, eax, 3
mov esi, edi
mov edx, edi
shl eax, 3
sar esi, 0x1d
sar edx, 0x1f
or esi, eax
mov eax, dword [ebp - 0x54]
or edx, ecx
mov ecx, dword [ebp - 0x50]
xor eax, esi
xor ecx, edx
mov edx, dword [ebp - 0x58]
mov esi, edx
shrd ebx, edi, 6
shl esi, 0x1f
xor eax, ebx
sar edi, 6
xor ecx, edi
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], ecx
mov eax, edx
mov ecx, dword [ebp - 0x5c]
mov ebx, edx
shrd eax, ecx, 8
xor edi, edi
shl ebx, 0x18
or edi, eax
sar ecx, 8
mov eax, dword [ebp - 0x58]
or ebx, ecx
mov ecx, dword [ebp - 0x5c]
xor edx, edx
shrd eax, ecx, 1
or edx, eax
sar ecx, 1
mov eax, dword [ebp - 0x5c]
or esi, ecx
mov ecx, dword [ebp - 0x58]
xor edi, edx
mov edx, dword [ebp - 0x50]
xor ebx, esi
mov esi, dword [ebp + 8]
shrd ecx, eax, 7
xor edi, ecx
sar eax, 7
mov ecx, dword [ebp - 0x54]
xor ebx, eax
mov eax, dword [ebp + 0xc]
add ecx, edi
adc edx, ebx
mov ebx, dword [ebp - 0x70]
and eax, 0xf
add ecx, dword [esi + eax*8 + 0x50]
adc edx, dword [esi + eax*8 + 0x54]
add dword [esi + ebx*8 + 0x50], ecx
mov ecx, dword [ebp - 0xc]
mov edi, ecx
adc dword [esi + ebx*8 + 0x54], edx
mov edx, ecx
mov eax, dword [ebp - 0x24]
shld ecx, eax, 0x17
sar edx, 9
shl eax, 0x17
or edx, eax
sar edi, 0x1f
mov eax, dword [ebp - 0x24]
or edi, ecx
mov ecx, dword [ebp - 0xc]
mov esi, eax
shrd eax, ecx, 0x12
shl esi, 0xe
mov dword [ebp - 0x50], edx
xor edx, edx
sar ecx, 0x12
or edx, eax
xor dword [ebp - 0x50], edx
or esi, ecx
mov eax, dword [ebp - 0x24]
xor edi, esi
mov ecx, dword [ebp - 0xc]
mov esi, eax
shrd eax, ecx, 0xe
xor edx, edx
shl esi, 0x12
sar ecx, 0xe
or edx, eax
xor dword [ebp - 0x50], edx
or esi, ecx
mov edx, dword [ebp - 0xc]
xor edi, esi
mov esi, dword [ebp - 0x24]
not esi
and esi, dword [ebp - 0x14]
not edx
and edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x44]
and eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x10]
xor edx, eax
and ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x50]
xor esi, ecx
mov ecx, dword [ebp - 4]
add eax, esi
adc edi, edx
add eax, dword [ecx*8 + 0x424798]
adc edi, dword [ecx*8 + 0x42479c]
mov ecx, dword [ebp + 8]
add eax, dword [ecx + ebx*8 + 0x50]
adc edi, dword [ecx + ebx*8 + 0x54]
add eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x34]
adc edi, dword [ebp - 0x30]
add dword [ebp - 0x20], eax
mov dword [ebp - 0x50], eax
adc dword [ebp - 0x3c], edi
xor edx, edx
mov eax, dword [ebp - 0x1c]
mov ebx, eax
shrd eax, ecx, 0x1c
shl ebx, 4
or edx, eax
sar ecx, 0x1c
mov eax, dword [ebp - 0x1c]
or ebx, ecx
mov ecx, dword [ebp - 0x34]
mov esi, ecx
mov dword [ebp - 0x18], edx
mov edx, ecx
shld ecx, eax, 0x1e
sar esi, 2
sar edx, 0x1f
or edx, ecx
shl eax, 0x1e
mov ecx, dword [ebp - 0x34]
or esi, eax
xor dword [ebp - 0x18], esi
xor ebx, edx
mov eax, dword [ebp - 0x1c]
mov esi, ecx
mov edx, ecx
sar esi, 7
shld ecx, eax, 0x19
sar edx, 0x1f
or edx, ecx
shl eax, 0x19
mov ecx, dword [ebp - 0x28]
or esi, eax
xor dword [ebp - 0x18], esi
xor ebx, edx
mov eax, dword [ebp - 0x40]
mov esi, ecx
xor esi, dword [ebp - 0x1c]
mov edx, eax
xor edx, dword [ebp - 0x34]
and esi, dword [ebp - 8]
and ecx, dword [ebp - 0x1c]
and eax, dword [ebp - 0x34]
xor esi, ecx
and edx, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x18]
xor edx, eax
mov eax, dword [ebp - 0x48]
add ecx, esi
mov esi, dword [ebp - 4]
adc ebx, edx
add ecx, dword [ebp - 0x50]
mov dword [ebp - 0x18], ecx
adc ebx, edi
inc esi
mov dword [ebp - 0x30], ebx
inc eax
mov dword [ebp - 4], esi
mov edx, dword [ebp + 8]
and esi, 0xf
mov ebx, dword [ebp - 0x4c]
mov dword [ebp - 0x48], eax
inc ebx
and eax, 0xf
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x70], esi
inc dword [ebp + 0xc]
mov ecx, dword [edx + eax*8 + 0x50]
mov eax, dword [edx + eax*8 + 0x54]
mov dword [ebp - 0x5c], eax
mov eax, ebx
and eax, 0xf
mov dword [ebp - 0x58], ecx
mov edi, dword [edx + eax*8 + 0x54]
mov ecx, edi
mov ebx, dword [edx + eax*8 + 0x50]
mov eax, ebx
shrd eax, ecx, 0x13
xor edx, edx
mov esi, ebx
or edx, eax
sar ecx, 0x13
shl esi, 0xd
mov eax, ebx
or esi, ecx
mov dword [ebp - 0x54], edx
mov ecx, edi
mov dword [ebp - 0x50], esi
shld ecx, eax, 3
mov esi, edi
mov edx, edi
shl eax, 3
shrd ebx, edi, 6
sar edx, 0x1f
or edx, ecx
sar esi, 0x1d
mov ecx, dword [ebp - 0x50]
or esi, eax
mov eax, dword [ebp - 0x54]
xor ecx, edx
mov edx, dword [ebp - 0x58]
xor eax, esi
xor eax, ebx
sar edi, 6
xor ecx, edi
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], ecx
mov eax, edx
mov ecx, dword [ebp - 0x5c]
mov ebx, edx
shrd eax, ecx, 8
xor edi, edi
shl ebx, 0x18
sar ecx, 8
or edi, eax
mov eax, dword [ebp - 0x58]
or ebx, ecx
mov ecx, dword [ebp - 0x5c]
mov esi, edx
shrd eax, ecx, 1
xor edx, edx
shl esi, 0x1f
or edx, eax
sar ecx, 1
mov eax, dword [ebp - 0x5c]
or esi, ecx
mov ecx, dword [ebp - 0x58]
xor edi, edx
mov edx, dword [ebp - 0x50]
xor ebx, esi
shrd ecx, eax, 7
sar eax, 7
xor edi, ecx
mov ecx, dword [ebp - 0x54]
xor ebx, eax
mov eax, dword [ebp + 0xc]
add ecx, edi
adc edx, ebx
and eax, 0xf
mov esi, dword [ebp + 8]
mov ebx, dword [ebp - 0x70]
add ecx, dword [esi + eax*8 + 0x50]
adc edx, dword [esi + eax*8 + 0x54]
add dword [esi + ebx*8 + 0x50], ecx
mov ecx, dword [ebp - 0x3c]
mov edi, ecx
adc dword [esi + ebx*8 + 0x54], edx
mov edx, ecx
mov eax, dword [ebp - 0x20]
shld ecx, eax, 0x17
sar edx, 9
shl eax, 0x17
or edx, eax
sar edi, 0x1f
mov eax, dword [ebp - 0x20]
or edi, ecx
mov ecx, dword [ebp - 0x3c]
mov esi, eax
shrd eax, ecx, 0x12
shl esi, 0xe
sar ecx, 0x12
or esi, ecx
mov dword [ebp - 0x50], edx
mov ecx, dword [ebp - 0x3c]
xor edi, esi
xor edx, edx
or edx, eax
mov eax, dword [ebp - 0x20]
xor dword [ebp - 0x50], edx
mov esi, eax
shrd eax, ecx, 0xe
xor edx, edx
shl esi, 0x12
or edx, eax
sar ecx, 0xe
xor dword [ebp - 0x50], edx
or esi, ecx
mov edx, dword [ebp - 0x3c]
xor edi, esi
mov esi, dword [ebp - 0x20]
not edx
and edx, dword [ebp - 0x44]
not esi
and esi, dword [ebp - 0x10]
mov eax, dword [ebp - 0xc]
and eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x24]
xor edx, eax
and ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x50]
xor esi, ecx
mov ecx, dword [ebp - 4]
add eax, esi
adc edi, edx
add eax, dword [ecx*8 + 0x424798]
adc edi, dword [ecx*8 + 0x42479c]
mov ecx, dword [ebp + 8]
add eax, dword [ecx + ebx*8 + 0x50]
adc edi, dword [ecx + ebx*8 + 0x54]
add eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x30]
adc edi, dword [ebp - 0x2c]
add dword [ebp - 8], eax
mov dword [ebp - 0x50], eax
adc dword [ebp - 0x38], edi
xor edx, edx
mov eax, dword [ebp - 0x18]
mov ebx, eax
shrd eax, ecx, 0x1c
shl ebx, 4
sar ecx, 0x1c
or edx, eax
mov eax, dword [ebp - 0x18]
or ebx, ecx
mov ecx, dword [ebp - 0x30]
mov esi, ecx
mov dword [ebp - 0x14], edx
mov edx, ecx
sar esi, 2
sar edx, 0x1f
shld ecx, eax, 0x1e
or edx, ecx
shl eax, 0x1e
or esi, eax
mov ecx, dword [ebp - 0x30]
xor dword [ebp - 0x14], esi
xor ebx, edx
mov eax, dword [ebp - 0x18]
mov esi, ecx
sar esi, 7
mov edx, ecx
shld ecx, eax, 0x19
sar edx, 0x1f
or edx, ecx
shl eax, 0x19
or esi, eax
mov ecx, dword [ebp - 0x1c]
xor dword [ebp - 0x14], esi
xor ebx, edx
mov eax, dword [ebp - 0x34]
mov esi, ecx
xor esi, dword [ebp - 0x18]
mov edx, eax
and eax, dword [ebp - 0x30]
and esi, dword [ebp - 0x28]
and ecx, dword [ebp - 0x18]
xor edx, dword [ebp - 0x30]
xor esi, ecx
and edx, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x14]
xor edx, eax
mov eax, dword [ebp - 0x48]
add ecx, esi
mov esi, dword [ebp - 4]
adc ebx, edx
add ecx, dword [ebp - 0x50]
mov edx, dword [ebp + 8]
adc ebx, edi
mov dword [ebp - 0x14], ecx
inc esi
mov dword [ebp - 0x2c], ebx
mov ebx, dword [ebp - 0x4c]
inc eax
mov dword [ebp - 0x48], eax
inc ebx
and eax, 0xf
inc dword [ebp + 0xc]
mov dword [ebp - 4], esi
and esi, 0xf
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x4c], ebx
mov ecx, dword [edx + eax*8 + 0x50]
mov eax, dword [edx + eax*8 + 0x54]
mov dword [ebp - 0x5c], eax
mov eax, ebx
and eax, 0xf
mov dword [ebp - 0x58], ecx
mov edi, dword [edx + eax*8 + 0x54]
mov ecx, edi
mov ebx, dword [edx + eax*8 + 0x50]
mov eax, ebx
shrd eax, ecx, 0x13
xor edx, edx
mov esi, ebx
or edx, eax
shl esi, 0xd
sar ecx, 0x13
mov eax, ebx
or esi, ecx
mov dword [ebp - 0x54], edx
mov dword [ebp - 0x50], esi
mov ecx, edi
shld ecx, eax, 3
mov esi, edi
mov edx, edi
shl eax, 3
sar esi, 0x1d
sar edx, 0x1f
or esi, eax
mov eax, dword [ebp - 0x54]
or edx, ecx
mov ecx, dword [ebp - 0x50]
xor eax, esi
xor ecx, edx
mov edx, dword [ebp - 0x58]
shrd ebx, edi, 6
mov esi, edx
xor eax, ebx
sar edi, 6
xor ecx, edi
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], ecx
mov eax, edx
mov ecx, dword [ebp - 0x5c]
mov ebx, edx
shrd eax, ecx, 8
xor edi, edi
shl ebx, 0x18
or edi, eax
sar ecx, 8
mov eax, dword [ebp - 0x58]
or ebx, ecx
mov ecx, dword [ebp - 0x5c]
xor edx, edx
shrd eax, ecx, 1
shl esi, 0x1f
or edx, eax
sar ecx, 1
mov eax, dword [ebp - 0x5c]
or esi, ecx
mov ecx, dword [ebp - 0x58]
xor edi, edx
mov edx, dword [ebp - 0x50]
xor ebx, esi
mov esi, dword [ebp + 8]
shrd ecx, eax, 7
xor edi, ecx
sar eax, 7
mov ecx, dword [ebp - 0x54]
xor ebx, eax
mov eax, dword [ebp + 0xc]
add ecx, edi
adc edx, ebx
mov ebx, dword [ebp - 0x70]
and eax, 0xf
add ecx, dword [esi + eax*8 + 0x50]
adc edx, dword [esi + eax*8 + 0x54]
add dword [esi + ebx*8 + 0x50], ecx
mov ecx, dword [ebp - 0x38]
mov edi, ecx
adc dword [esi + ebx*8 + 0x54], edx
mov edx, ecx
mov eax, dword [ebp - 8]
shld ecx, eax, 0x17
sar edx, 9
shl eax, 0x17
or edx, eax
sar edi, 0x1f
mov eax, dword [ebp - 8]
or edi, ecx
mov ecx, dword [ebp - 0x38]
mov esi, eax
shrd eax, ecx, 0x12
mov dword [ebp - 0x50], edx
xor edx, edx
shl esi, 0xe
or edx, eax
mov eax, dword [ebp - 8]
xor dword [ebp - 0x50], edx
xor edx, edx
sar ecx, 0x12
or esi, ecx
mov ecx, dword [ebp - 0x38]
xor edi, esi
mov esi, eax
shrd eax, ecx, 0xe
shl esi, 0x12
sar ecx, 0xe
or edx, eax
xor dword [ebp - 0x50], edx
or esi, ecx
xor edi, esi
mov eax, dword [ebp - 0x38]
mov edx, eax
and eax, dword [ebp - 0x3c]
not edx
and edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 8]
xor edx, eax
mov eax, dword [ebp - 0x50]
mov esi, ecx
and ecx, dword [ebp - 0x20]
not esi
and esi, dword [ebp - 0x24]
xor esi, ecx
mov ecx, dword [ebp - 4]
add eax, esi
adc edi, edx
add eax, dword [ecx*8 + 0x424798]
adc edi, dword [ecx*8 + 0x42479c]
mov ecx, dword [ebp + 8]
add eax, dword [ecx + ebx*8 + 0x50]
adc edi, dword [ecx + ebx*8 + 0x54]
add eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x2c]
adc edi, dword [ebp - 0x44]
add dword [ebp - 0x28], eax
mov dword [ebp - 0x50], eax
adc dword [ebp - 0x40], edi
xor edx, edx
mov eax, dword [ebp - 0x14]
mov ebx, eax
shrd eax, ecx, 0x1c
shl ebx, 4
or edx, eax
sar ecx, 0x1c
mov eax, dword [ebp - 0x14]
or ebx, ecx
mov ecx, dword [ebp - 0x2c]
mov esi, ecx
mov dword [ebp - 0x10], edx
mov edx, ecx
shld ecx, eax, 0x1e
sar esi, 2
sar edx, 0x1f
or edx, ecx
shl eax, 0x1e
mov ecx, dword [ebp - 0x2c]
or esi, eax
xor dword [ebp - 0x10], esi
xor ebx, edx
mov eax, dword [ebp - 0x14]
mov esi, ecx
mov edx, ecx
sar esi, 7
shld ecx, eax, 0x19
sar edx, 0x1f
or edx, ecx
shl eax, 0x19
mov ecx, dword [ebp - 0x18]
or esi, eax
xor dword [ebp - 0x10], esi
xor ebx, edx
mov eax, dword [ebp - 0x30]
mov esi, ecx
xor esi, dword [ebp - 0x14]
mov edx, eax
xor edx, dword [ebp - 0x2c]
and esi, dword [ebp - 0x1c]
and ecx, dword [ebp - 0x14]
and edx, dword [ebp - 0x34]
xor esi, ecx
and eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x10]
xor edx, eax
add ecx, esi
mov esi, dword [ebp - 4]
adc ebx, edx
add ecx, dword [ebp - 0x50]
mov dword [ebp - 0x10], ecx
adc ebx, edi
inc esi
mov dword [ebp - 0x44], ebx
mov eax, dword [ebp - 0x48]
mov edx, dword [ebp + 8]
inc eax
mov ebx, dword [ebp - 0x4c]
mov dword [ebp - 0x48], eax
inc ebx
and eax, 0xf
mov dword [ebp - 4], esi
and esi, 0xf
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x70], esi
inc dword [ebp + 0xc]
mov ecx, dword [edx + eax*8 + 0x50]
mov eax, dword [edx + eax*8 + 0x54]
mov dword [ebp - 0x5c], eax
mov eax, ebx
and eax, 0xf
mov dword [ebp - 0x58], ecx
mov edi, dword [edx + eax*8 + 0x54]
mov ecx, edi
mov ebx, dword [edx + eax*8 + 0x50]
mov eax, ebx
shrd eax, ecx, 0x13
mov esi, ebx
xor edx, edx
or edx, eax
sar ecx, 0x13
shl esi, 0xd
mov eax, ebx
or esi, ecx
mov dword [ebp - 0x54], edx
mov ecx, edi
mov dword [ebp - 0x50], esi
shld ecx, eax, 3
mov esi, edi
mov edx, edi
shl eax, 3
shrd ebx, edi, 6
sar edx, 0x1f
or edx, ecx
sar esi, 0x1d
mov ecx, dword [ebp - 0x50]
or esi, eax
mov eax, dword [ebp - 0x54]
xor ecx, edx
mov edx, dword [ebp - 0x58]
xor eax, esi
xor eax, ebx
sar edi, 6
xor ecx, edi
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], ecx
mov eax, edx
mov ecx, dword [ebp - 0x5c]
mov ebx, edx
shrd eax, ecx, 8
xor edi, edi
shl ebx, 0x18
sar ecx, 8
or edi, eax
mov eax, dword [ebp - 0x58]
or ebx, ecx
mov ecx, dword [ebp - 0x5c]
mov esi, edx
shrd eax, ecx, 1
xor edx, edx
shl esi, 0x1f
sar ecx, 1
or edx, eax
mov eax, dword [ebp - 0x5c]
or esi, ecx
mov ecx, dword [ebp - 0x58]
xor edi, edx
mov edx, dword [ebp - 0x50]
xor ebx, esi
shrd ecx, eax, 7
sar eax, 7
xor edi, ecx
mov ecx, dword [ebp - 0x54]
xor ebx, eax
add ecx, edi
adc edx, ebx
mov esi, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
mov ebx, dword [ebp - 0x70]
and eax, 0xf
add ecx, dword [esi + eax*8 + 0x50]
adc edx, dword [esi + eax*8 + 0x54]
add dword [esi + ebx*8 + 0x50], ecx
mov ecx, dword [ebp - 0x40]
mov edi, ecx
adc dword [esi + ebx*8 + 0x54], edx
mov edx, ecx
mov eax, dword [ebp - 0x28]
shld ecx, eax, 0x17
sar edx, 9
shl eax, 0x17
or edx, eax
sar edi, 0x1f
mov eax, dword [ebp - 0x28]
or edi, ecx
mov ecx, dword [ebp - 0x40]
mov esi, eax
shrd eax, ecx, 0x12
shl esi, 0xe
sar ecx, 0x12
or esi, ecx
mov dword [ebp - 0x50], edx
mov ecx, dword [ebp - 0x40]
xor edi, esi
xor edx, edx
or edx, eax
mov eax, dword [ebp - 0x28]
xor dword [ebp - 0x50], edx
mov esi, eax
shrd eax, ecx, 0xe
xor edx, edx
shl esi, 0x12
or edx, eax
sar ecx, 0xe
xor dword [ebp - 0x50], edx
or esi, ecx
mov edx, dword [ebp - 0x40]
xor edi, esi
mov esi, dword [ebp - 0x28]
not edx
and edx, dword [ebp - 0x3c]
not esi
and esi, dword [ebp - 0x20]
mov eax, dword [ebp - 0x38]
and eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 8]
xor edx, eax
and ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x50]
xor esi, ecx
mov ecx, dword [ebp - 4]
add eax, esi
adc edi, edx
add eax, dword [ecx*8 + 0x424798]
adc edi, dword [ecx*8 + 0x42479c]
mov ecx, dword [ebp + 8]
add eax, dword [ecx + ebx*8 + 0x50]
adc edi, dword [ecx + ebx*8 + 0x54]
add eax, dword [ebp - 0x24]
mov ebx, dword [ebp - 0x44]
mov ecx, ebx
adc edi, dword [ebp - 0xc]
add dword [ebp - 0x1c], eax
mov dword [ebp - 0x50], eax
adc dword [ebp - 0x34], edi
xor esi, esi
mov eax, dword [ebp - 0x10]
mov edx, eax
shrd eax, ecx, 0x1c
shl edx, 4
or esi, eax
sar ecx, 0x1c
or edx, ecx
mov dword [ebp - 0x24], esi
mov dword [ebp - 0xc], edx
mov esi, ebx
mov eax, dword [ebp - 0x10]
mov ecx, ebx
shld ecx, eax, 0x1e
sar esi, 2
mov edx, ebx
shl eax, 0x1e
or esi, eax
sar edx, 0x1f
xor dword [ebp - 0x24], esi
or edx, ecx
xor dword [ebp - 0xc], edx
mov ecx, ebx
mov eax, dword [ebp - 0x10]
mov esi, ebx
shld ecx, eax, 0x19
sar esi, 7
mov edx, ebx
shl eax, 0x19
or esi, eax
sar edx, 0x1f
xor dword [ebp - 0x24], esi
or edx, ecx
xor dword [ebp - 0xc], edx
mov ecx, dword [ebp - 0x14]
mov esi, ecx
xor esi, dword [ebp - 0x10]
and esi, dword [ebp - 0x18]
and ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x2c]
xor esi, ecx
mov ecx, dword [ebp - 0xc]
mov edx, eax
and eax, ebx
xor edx, ebx
and edx, dword [ebp - 0x30]
mov ebx, dword [ebp - 0x24]
xor edx, eax
mov eax, dword [ebp - 0x48]
add ebx, esi
mov esi, dword [ebp - 4]
adc ecx, edx
add ebx, dword [ebp - 0x50]
mov edx, dword [ebp + 8]
adc ecx, edi
mov dword [ebp - 0x24], ebx
mov ebx, dword [ebp - 0x4c]
inc esi
inc eax
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x48], eax
inc ebx
and eax, 0xf
inc dword [ebp + 0xc]
mov dword [ebp - 4], esi
and esi, 0xf
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x70], esi
mov ecx, dword [edx + eax*8 + 0x50]
mov eax, dword [edx + eax*8 + 0x54]
mov dword [ebp - 0x5c], eax
mov eax, ebx
and eax, 0xf
mov dword [ebp - 0x58], ecx
mov edi, dword [edx + eax*8 + 0x54]
mov ecx, edi
mov ebx, dword [edx + eax*8 + 0x50]
mov eax, ebx
shrd eax, ecx, 0x13
mov esi, ebx
xor edx, edx
shl esi, 0xd
or edx, eax
sar ecx, 0x13
mov eax, ebx
or esi, ecx
mov dword [ebp - 0x54], edx
mov dword [ebp - 0x50], esi
mov edx, edi
mov esi, edi
sar esi, 0x1d
sar edx, 0x1f
mov ecx, edi
shld ecx, eax, 3
shrd ebx, edi, 6
or edx, ecx
shl eax, 3
mov ecx, dword [ebp - 0x50]
or esi, eax
mov eax, dword [ebp - 0x54]
xor ecx, edx
mov edx, dword [ebp - 0x58]
xor eax, esi
xor eax, ebx
sar edi, 6
xor ecx, edi
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], ecx
mov eax, edx
mov ecx, dword [ebp - 0x5c]
mov ebx, edx
shrd eax, ecx, 8
xor edi, edi
shl ebx, 0x18
or edi, eax
sar ecx, 8
mov eax, dword [ebp - 0x58]
or ebx, ecx
mov ecx, dword [ebp - 0x5c]
mov esi, edx
shrd eax, ecx, 1
xor edx, edx
shl esi, 0x1f
or edx, eax
sar ecx, 1
mov eax, dword [ebp - 0x5c]
or esi, ecx
mov ecx, dword [ebp - 0x58]
xor edi, edx
mov edx, dword [ebp - 0x50]
xor ebx, esi
mov esi, dword [ebp + 8]
shrd ecx, eax, 7
xor edi, ecx
sar eax, 7
mov ecx, dword [ebp - 0x54]
xor ebx, eax
mov eax, dword [ebp + 0xc]
add ecx, edi
adc edx, ebx
mov ebx, dword [ebp - 0x70]
and eax, 0xf
add ecx, dword [esi + eax*8 + 0x50]
adc edx, dword [esi + eax*8 + 0x54]
add dword [esi + ebx*8 + 0x50], ecx
mov ecx, dword [ebp - 0x34]
mov edi, ecx
adc dword [esi + ebx*8 + 0x54], edx
mov edx, ecx
mov eax, dword [ebp - 0x1c]
shld ecx, eax, 0x17
sar edx, 9
shl eax, 0x17
or edx, eax
sar edi, 0x1f
mov eax, dword [ebp - 0x1c]
or edi, ecx
mov ecx, dword [ebp - 0x34]
mov esi, eax
shrd eax, ecx, 0x12
mov dword [ebp - 0x50], edx
xor edx, edx
shl esi, 0xe
or edx, eax
xor dword [ebp - 0x50], edx
xor edx, edx
mov eax, dword [ebp - 0x1c]
sar ecx, 0x12
or esi, ecx
mov ecx, dword [ebp - 0x34]
xor edi, esi
mov esi, eax
shl esi, 0x12
shrd eax, ecx, 0xe
or edx, eax
sar ecx, 0xe
xor dword [ebp - 0x50], edx
or esi, ecx
mov edx, dword [ebp - 0x34]
xor edi, esi
mov esi, dword [ebp - 0x1c]
not edx
and edx, dword [ebp - 0x38]
not esi
and esi, dword [ebp - 8]
mov eax, dword [ebp - 0x40]
and eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x28]
xor edx, eax
and ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x50]
xor esi, ecx
mov ecx, dword [ebp - 4]
add eax, esi
adc edi, edx
add eax, dword [ecx*8 + 0x424798]
adc edi, dword [ecx*8 + 0x42479c]
mov ecx, dword [ebp + 8]
add eax, dword [ecx + ebx*8 + 0x50]
adc edi, dword [ecx + ebx*8 + 0x54]
add eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0xc]
adc edi, dword [ebp - 0x3c]
add dword [ebp - 0x18], eax
mov dword [ebp - 0x50], eax
adc dword [ebp - 0x30], edi
xor edx, edx
mov eax, dword [ebp - 0x24]
mov ebx, eax
shrd eax, ecx, 0x1c
shl ebx, 4
or edx, eax
sar ecx, 0x1c
mov eax, dword [ebp - 0x24]
or ebx, ecx
mov ecx, dword [ebp - 0xc]
mov esi, ecx
mov dword [ebp - 0x20], edx
mov edx, ecx
shld ecx, eax, 0x1e
sar esi, 2
sar edx, 0x1f
or edx, ecx
shl eax, 0x1e
mov ecx, dword [ebp - 0xc]
or esi, eax
xor dword [ebp - 0x20], esi
xor ebx, edx
mov eax, dword [ebp - 0x24]
mov esi, ecx
mov edx, ecx
sar esi, 7
shld ecx, eax, 0x19
sar edx, 0x1f
or edx, ecx
shl eax, 0x19
mov ecx, dword [ebp - 0x10]
or esi, eax
xor dword [ebp - 0x20], esi
xor ebx, edx
mov esi, dword [ebp - 0x10]
xor esi, dword [ebp - 0x24]
and esi, dword [ebp - 0x14]
and ecx, dword [ebp - 0x24]
mov dword [ebp - 0x3c], ebx
xor esi, ecx
mov ebx, dword [ebp - 0x44]
mov edx, ebx
xor edx, dword [ebp - 0xc]
mov eax, ebx
and edx, dword [ebp - 0x2c]
and eax, dword [ebp - 0xc]
xor edx, eax
add dword [ebp - 0x20], esi
mov ecx, dword [ebp - 0x3c]
mov esi, dword [ebp - 4]
adc ecx, edx
mov edx, dword [ebp - 0x20]
add edx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x48]
adc ecx, edi
mov dword [ebp - 0x20], edx
mov edi, dword [ebp - 0x4c]
inc esi
inc eax
mov dword [ebp - 0x3c], ecx
inc edi
mov dword [ebp - 4], esi
inc dword [ebp + 0xc]
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x4c], edi
cmp esi, 0x50
jl 0x40bca8
mov eax, dword [ebp + 8]
pop edi
pop esi
add dword [eax], edx
adc dword [eax + 4], ecx
mov ecx, dword [ebp - 0x24]
add dword [eax + 8], ecx
mov ecx, dword [ebp - 0xc]
adc dword [eax + 0xc], ecx
mov ecx, dword [ebp - 0x10]
add dword [eax + 0x10], ecx
mov ecx, dword [ebp - 0x14]
adc dword [eax + 0x14], ebx
add dword [eax + 0x18], ecx
mov ecx, dword [ebp - 0x2c]
adc dword [eax + 0x1c], ecx
mov ecx, dword [ebp - 0x18]
add dword [eax + 0x20], ecx
mov ecx, dword [ebp - 0x30]
adc dword [eax + 0x24], ecx
mov ecx, dword [ebp - 0x1c]
add dword [eax + 0x28], ecx
mov ecx, dword [ebp - 0x34]
adc dword [eax + 0x2c], ecx
mov ecx, dword [ebp - 0x28]
add dword [eax + 0x30], ecx
mov ecx, dword [ebp - 0x40]
adc dword [eax + 0x34], ecx
mov ecx, dword [ebp - 8]
add dword [eax + 0x38], ecx
mov ecx, dword [ebp - 0x38]
adc dword [eax + 0x3c], ecx
pop ebx
mov esp, ebp
pop ebp
ret