Function at 0x403710
Capabilities:
Encode data using xor
Hash data using sha512
Resolve function by parsing pe exports

Disassembly:
mov eax, 0xfc
call fcn.004249a0
mov eax, dword [0x46b7f0]
xor eax, esp
mov dword [esp + 0xf8], eax
mov ecx, dword [esp + 0x108]
push esi
mov esi, dword [esp + 0x104]
mov dword [esp + 0x74], esi
test ecx, ecx
je 0x4061ab
mov eax, dword [esp + 0x108]
push ebx
add eax, 0x10
push ebp
mov dword [esp + 0x68], eax
push edi
mov eax, dword [esi]
mov dword [esp + 0x48], eax
mov eax, dword [esi + 4]
mov dword [esp + 0x28], eax
mov eax, dword [esi + 8]
mov dword [esp + 0x24], eax
mov eax, dword [esi + 0xc]
mov dword [esp + 0x58], eax
mov eax, dword [esi + 0x10]
mov dword [esp + 0x2c], eax
mov eax, dword [esi + 0x14]
mov dword [esp + 0x38], eax
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x24]
mov dword [esp + 0x44], eax
mov eax, dword [esi + 0x1c]
mov dword [esp + 0x4c], eax
mov eax, dword [esi + 0x20]
mov dword [esp + 0x10], eax
mov eax, dword [esi + 0x28]
mov dword [esp + 0x68], eax
mov eax, dword [esi + 0x2c]
mov dword [esp + 0x60], eax
mov eax, dword [esi + 0x30]
mov dword [esp + 0x5c], eax
mov eax, dword [esi + 0x34]
mov dword [esp + 0x64], eax
mov eax, dword [esi + 0x38]
mov dword [esp + 0x74], eax
mov eax, dword [esi + 0x3c]
mov esi, dword [esp + 0x6c]
dec ecx
mov dword [esp + 0x118], ecx
lea ecx, [esi - 0x10]
mov dword [esp + 0x20], edi
mov dword [esp + 0x70], eax
call fcn.00402eb0
mov ecx, dword [esp + 0x10]
mov ebx, eax
mov eax, dword [esp + 0x20]
shld eax, ecx, 0x17
mov ebp, edx
shr edi, 9
xor edx, edx
or edx, eax
mov eax, dword [esp + 0x10]
shl ecx, 0x17
or edi, ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x14], edi
mov edi, eax
shrd eax, ecx, 0x12
mov dword [esp + 0x18], edx
shl edi, 0xe
xor edx, edx
or edx, eax
mov eax, dword [esp + 0x10]
xor dword [esp + 0x14], edx
shr ecx, 0x12
or edi, ecx
xor dword [esp + 0x18], edi
mov ecx, dword [esp + 0x20]
mov edi, eax
shrd eax, ecx, 0xe
xor edx, edx
shl edi, 0x12
shr ecx, 0xe
or edi, ecx
xor dword [esp + 0x18], edi
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x68]
or edx, eax
xor dword [esp + 0x14], edx
mov edx, dword [esp + 0x20]
not edi
and edi, dword [esp + 0x5c]
not edx
and edx, dword [esp + 0x64]
and ecx, dword [esp + 0x10]
mov dword [esp + 0x88], ebx
mov dword [esp + 0x8c], ebp
mov eax, dword [esp + 0x60]
and eax, dword [esp + 0x20]
xor edi, ecx
xor edx, eax
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
add ecx, edi
adc eax, edx
add ecx, ebx
adc eax, ebp
add ecx, dword [esp + 0x74]
mov edi, dword [esp + 0x28]
adc eax, dword [esp + 0x70]
add ecx, 0xd728ae22
adc eax, 0x428a2f98
add dword [esp + 0x44], ecx
mov dword [esp + 0x18], eax
mov ebp, dword [esp + 0x24]
adc dword [esp + 0x4c], eax
mov eax, dword [esp + 0x24]
xor eax, dword [esp + 0x48]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x58]
xor eax, edi
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x48]
mov ebx, dword [esp + 0x58]
mov ecx, eax
shl ecx, 4
and ebp, eax
mov dword [esp + 0x54], ecx
mov ecx, edi
shrd eax, ecx, 0x1c
shr ecx, 0x1c
or dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x28]
xor edx, edx
or edx, eax
mov eax, dword [esp + 0x48]
shld ecx, eax, 0x1e
and ebx, edi
shr edi, 2
mov dword [esp + 0x40], edx
shl eax, 0x1e
or edi, eax
xor dword [esp + 0x40], edi
mov eax, dword [esp + 0x48]
xor edx, edx
or edx, ecx
mov ecx, dword [esp + 0x28]
xor dword [esp + 0x54], edx
mov edi, ecx
shld ecx, eax, 0x19
shr edi, 7
shl eax, 0x19
or edi, eax
xor dword [esp + 0x40], edi
mov edi, dword [esp + 0x54]
mov eax, dword [esp + 0x34]
and eax, dword [esp + 0x38]
xor edx, edx
or edx, ecx
mov ecx, dword [esp + 0x50]
and ecx, dword [esp + 0x2c]
xor edi, edx
mov edx, dword [esp + 0x40]
xor ecx, ebp
xor eax, ebx
add edx, ecx
adc edi, eax
add edx, dword [esp + 0x14]
lea ecx, [esi - 8]
adc edi, dword [esp + 0x18]
mov dword [esp + 0x74], ebp
mov dword [esp + 0x70], ebx
mov dword [esp + 0x40], edx
mov dword [esp + 0x54], edi
call fcn.00402eb0
mov ebx, eax
mov ebp, edx
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x44]
mov edi, eax
shld eax, ecx, 0x17
shr edi, 9
shl ecx, 0x17
or edi, ecx
mov ecx, dword [esp + 0x4c]
xor edx, edx
or edx, eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x14], edi
mov edi, eax
shrd eax, ecx, 0x12
shl edi, 0xe
shr ecx, 0x12
or edi, ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x18], edx
xor dword [esp + 0x18], edi
xor edx, edx
or edx, eax
xor dword [esp + 0x14], edx
mov eax, dword [esp + 0x44]
mov edi, eax
shrd eax, ecx, 0xe
shl edi, 0x12
shr ecx, 0xe
or edi, ecx
xor dword [esp + 0x18], edi
mov edi, dword [esp + 0x44]
mov ecx, dword [esp + 0x10]
and ecx, dword [esp + 0x44]
xor edx, edx
or edx, eax
xor dword [esp + 0x14], edx
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x20]
and eax, dword [esp + 0x4c]
not edi
and edi, dword [esp + 0x68]
not edx
and edx, dword [esp + 0x60]
xor edi, ecx
mov ecx, dword [esp + 0x14]
xor edx, eax
mov eax, dword [esp + 0x18]
add ecx, edi
adc eax, edx
add ecx, ebx
adc eax, ebp
add ecx, dword [esp + 0x5c]
mov dword [esp + 0x90], ebx
adc eax, dword [esp + 0x64]
mov ebx, dword [esp + 0x40]
add ecx, 0x23ef65cd
adc eax, 0x71374491
add dword [esp + 0x2c], ecx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], eax
adc dword [esp + 0x38], eax
mov dword [esp + 0x94], ebp
mov ebp, dword [esp + 0x54]
mov eax, ebx
mov ecx, ebp
shrd eax, ecx, 0x1c
shr ecx, 0x1c
mov edi, ebx
shl edi, 4
or edi, ecx
xor edx, edx
or edx, eax
mov eax, ebx
mov ecx, ebp
mov dword [esp + 0x1c], edi
shld ecx, eax, 0x1e
mov edi, ebp
mov dword [esp + 0x3c], edx
shr edi, 2
xor edx, edx
shl eax, 0x1e
or edi, eax
xor dword [esp + 0x3c], edi
or edx, ecx
xor dword [esp + 0x1c], edx
mov eax, ebx
mov ecx, ebp
shld ecx, eax, 0x19
shl eax, 0x19
xor edx, edx
or edx, ecx
mov ecx, dword [esp + 0x50]
mov edi, ebp
shr edi, 7
or edi, eax
xor dword [esp + 0x3c], edi
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x34]
xor edi, edx
mov edx, dword [esp + 0x3c]
and ecx, ebx
xor ecx, dword [esp + 0x74]
and eax, ebp
xor eax, dword [esp + 0x70]
add edx, ecx
adc edi, eax
add edx, dword [esp + 0x14]
mov ecx, esi
adc edi, dword [esp + 0x18]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x1c], edi
call fcn.00402eb0
mov ecx, dword [esp + 0x2c]
mov ebx, eax
mov eax, dword [esp + 0x38]
mov edi, eax
shld eax, ecx, 0x17
mov ebp, edx
shr edi, 9
shl ecx, 0x17
or edi, ecx
mov ecx, dword [esp + 0x38]
xor edx, edx
or edx, eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x18], edi
mov edi, eax
shrd eax, ecx, 0x12
mov dword [esp + 0x34], edx
shl edi, 0xe
shr ecx, 0x12
or edi, ecx
xor dword [esp + 0x34], edi
mov ecx, dword [esp + 0x38]
xor edx, edx
or edx, eax
mov eax, dword [esp + 0x2c]
xor dword [esp + 0x18], edx
mov edi, eax
shrd eax, ecx, 0xe
shl edi, 0x12
shr ecx, 0xe
or edi, ecx
xor dword [esp + 0x34], edi
mov edi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x44]
and ecx, dword [esp + 0x2c]
xor edx, edx
or edx, eax
xor dword [esp + 0x18], edx
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x4c]
and eax, dword [esp + 0x38]
not edi
and edi, dword [esp + 0x10]
not edx
and edx, dword [esp + 0x20]
xor edi, ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x98], ebx
mov dword [esp + 0x9c], ebp
xor edx, eax
mov eax, dword [esp + 0x34]
add ecx, edi
adc eax, edx
add ecx, ebx
adc eax, ebp
add ecx, dword [esp + 0x68]
mov ebp, dword [esp + 0x3c]
adc eax, dword [esp + 0x60]
add ecx, 0xec4d3b2f
adc eax, 0xb5c0fbcf
add dword [esp + 0x24], ecx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x1c]
adc dword [esp + 0x58], eax
mov dword [esp + 0x34], eax
mov eax, ebp
shrd eax, ecx, 0x1c
shr ecx, 0x1c
xor ebx, ebx
or ebx, eax
mov edx, ebp
shl edx, 4
or edx, ecx
mov ecx, dword [esp + 0x1c]
mov edi, ecx
mov dword [esp + 0x14], edx
shr edi, 2
xor edx, edx
mov eax, ebp
shld ecx, eax, 0x1e
or edx, ecx
xor dword [esp + 0x14], edx
mov ecx, dword [esp + 0x1c]
shl eax, 0x1e
or edi, eax
xor ebx, edi
mov edi, ecx
mov eax, ebp
shld ecx, eax, 0x19
shr edi, 7
xor edx, edx
or edx, ecx
xor dword [esp + 0x14], edx
mov edx, dword [esp + 0x1c]
xor edx, dword [esp + 0x28]
shl eax, 0x19
and edx, dword [esp + 0x54]
or edi, eax
mov eax, dword [esp + 0x1c]
and eax, dword [esp + 0x28]
xor ebx, edi
mov edi, ebp
xor edi, dword [esp + 0x48]
mov ecx, ebp
and ecx, dword [esp + 0x48]
and edi, dword [esp + 0x40]
mov dword [esp + 0x50], ebx
xor edi, ecx
mov ecx, ebx
mov ebx, dword [esp + 0x14]
xor edx, eax
add ecx, edi
adc ebx, edx
add ecx, dword [esp + 0x18]
adc ebx, dword [esp + 0x34]
mov dword [esp + 0x50], ecx
lea ecx, [esi + 8]
mov dword [esp + 0x14], ebx
call fcn.00402eb0
mov ecx, dword [esp + 0x24]
mov ebx, eax
mov eax, dword [esp + 0x58]
mov edi, eax
shld eax, ecx, 0x17
mov ebp, edx
shr edi, 9
shl ecx, 0x17
xor edx, edx
mov dword [esp + 0xa0], ebx
mov dword [esp + 0xa4], ebp
or edi, ecx
or edx, eax
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x18], edi
mov edi, eax
shrd eax, ecx, 0x12
shr ecx, 0x12
shl edi, 0xe
or edi, ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x30], edx
xor dword [esp + 0x30], edi
xor edx, edx
or edx, eax
xor dword [esp + 0x18], edx
mov eax, dword [esp + 0x24]
mov edi, eax
shrd eax, ecx, 0xe
shr ecx, 0xe
shl edi, 0x12
or edi, ecx
xor dword [esp + 0x30], edi
mov edi, dword [esp + 0x24]
mov ecx, dword [esp + 0x2c]
and ecx, dword [esp + 0x24]
xor edx, edx
or edx, eax
xor dword [esp + 0x18], edx
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x38]
and eax, dword [esp + 0x58]
not edi
and edi, dword [esp + 0x44]
not edx
and edx, dword [esp + 0x4c]
xor edi, ecx
mov ecx, dword [esp + 0x18]
xor edx, eax
mov eax, dword [esp + 0x30]
add ecx, edi
adc eax, edx
add ecx, ebx
adc eax, ebp
add ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x50]
adc eax, dword [esp + 0x20]
add ecx, 0x8189dbbc
adc eax, 0xe9b5dba5
add dword [esp + 0x48], ecx
mov dword [esp + 0x30], eax
mov dword [esp + 0x18], ecx
adc dword [esp + 0x28], eax
mov ecx, dword [esp + 0x14]
mov eax, ebx
shrd eax, ecx, 0x1c
shr ecx, 0x1c
mov edx, ebx
shl edx, 4
or edx, ecx
mov ecx, dword [esp + 0x14]
xor ebp, ebp
or ebp, eax
mov edi, ecx
mov eax, ebx
shld ecx, eax, 0x1e
mov dword [esp + 0x20], edx
shl eax, 0x1e
shr edi, 2
or edi, eax
xor edx, edx
or edx, ecx
mov ecx, dword [esp + 0x14]
xor dword [esp + 0x20], edx
xor ebp, edi
mov edi, ecx
mov eax, ebx
shld ecx, eax, 0x19
shr edi, 7
shl eax, 0x19
xor edx, edx
or edi, eax
mov eax, dword [esp + 0x1c]
and eax, dword [esp + 0x14]
or edx, ecx
xor dword [esp + 0x20], edx
mov edx, dword [esp + 0x1c]
xor edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x3c]
and edx, dword [esp + 0x54]
xor ebp, edi
mov edi, dword [esp + 0x3c]
xor edi, ebx
and edi, dword [esp + 0x40]
and ecx, ebx
xor edi, ecx
mov ecx, dword [esp + 0x20]
xor edx, eax
add ebp, edi
adc ecx, edx
add ebp, dword [esp + 0x18]
adc ecx, dword [esp + 0x30]
mov dword [esp + 0x34], ebp
mov dword [esp + 0x20], ecx
lea ecx, [esi + 0x10]
call fcn.00402eb0
mov ecx, dword [esp + 0x48]
mov ebx, eax
mov eax, dword [esp + 0x28]
mov edi, eax
shld eax, ecx, 0x17
shr edi, 9
shl ecx, 0x17
or edi, ecx
mov ecx, dword [esp + 0x28]
mov ebp, edx
xor edx, edx
or edx, eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x10], edi
mov edi, eax
shrd eax, ecx, 0x12
shl edi, 0xe
shr ecx, 0x12
or edi, ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x30], edx
xor dword [esp + 0x30], edi
xor edx, edx
or edx, eax
xor dword [esp + 0x10], edx
mov eax, dword [esp + 0x48]
mov edi, eax
shrd eax, ecx, 0xe
shl edi, 0x12
shr ecx, 0xe
or edi, ecx
xor dword [esp + 0x30], edi
mov edi, dword [esp + 0x48]
mov ecx, dword [esp + 0x24]
and ecx, dword [esp + 0x48]
xor edx, edx
or edx, eax
xor dword [esp + 0x10], edx
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x58]
and eax, dword [esp + 0x28]
not edi
and edi, dword [esp + 0x2c]
not edx
and edx, dword [esp + 0x38]
xor edi, ecx
mov ecx, dword [esp + 0x10]
xor edx, eax
mov eax, dword [esp + 0x30]
add ecx, edi
adc eax, edx
add ecx, ebx
adc eax, ebp
add ecx, dword [esp + 0x44]
mov dword [esp + 0xa8], ebx
adc eax, dword [esp + 0x4c]
mov dword [esp + 0xac], ebp
mov ebx, dword [esp + 0x34]
add ecx, 0xf348b538
adc eax, 0x3956c25b
add dword [esp + 0x40], ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x20]
adc dword [esp + 0x54], eax
mov dword [esp + 0x30], eax
mov eax, ebx
shrd eax, ecx, 0x1c
shr ecx, 0x1c
xor ebp, ebp
or ebp, eax
mov edx, ebx
shl edx, 4
or edx, ecx
mov ecx, dword [esp + 0x20]
mov edi, ecx
mov dword [esp + 0x18], edx
shr edi, 2
xor edx, edx
mov eax, ebx
shld ecx, eax, 0x1e
or edx, ecx
xor dword [esp + 0x18], edx
mov ecx, dword [esp + 0x20]
shl eax, 0x1e
or edi, eax
xor ebp, edi
mov edi, ecx
xor edx, edx
mov eax, ebx
shld ecx, eax, 0x19
or edx, ecx
xor dword [esp + 0x18], edx
mov edx, dword [esp + 0x14]
xor edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x50]
and edx, dword [esp + 0x1c]
shr edi, 7
shl eax, 0x19
or edi, eax
mov eax, dword [esp + 0x14]
and eax, dword [esp + 0x20]
xor ebp, edi
mov edi, dword [esp + 0x50]
xor edi, ebx
and edi, dword [esp + 0x3c]
and ecx, ebx
xor edi, ecx
mov ecx, dword [esp + 0x18]
xor edx, eax
add ebp, edi
adc ecx, edx
add ebp, dword [esp + 0x10]
adc ecx, dword [esp + 0x30]
mov dword [esp + 0x44], ebp
mov dword [esp + 0x18], ecx
lea ecx, [esi + 0x18]
call fcn.00402eb0
mov ecx, dword [esp + 0x40]
mov ebx, eax
mov eax, dword [esp + 0x54]
mov edi, eax
shld eax, ecx, 0x17
mov ebp, edx
shr edi, 9
xor edx, edx
shl ecx, 0x17
or edi, ecx
mov ecx, dword [esp + 0x54]
or edx, eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x4c], edi
mov edi, eax
mov dword [esp + 0x10], edx
xor edx, edx
shl edi, 0xe
mov dword [esp + 0xb0], ebx
mov dword [esp + 0xb4], ebp
shrd eax, ecx, 0x12
or edx, eax
xor dword [esp + 0x4c], edx
mov eax, dword [esp + 0x40]
shr ecx, 0x12
or edi, ecx
xor dword [esp + 0x10], edi
mov ecx, dword [esp + 0x54]
mov edi, eax
shrd eax, ecx, 0xe
shl edi, 0x12
xor edx, edx
or edx, eax
xor dword [esp + 0x4c], edx
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x54]
and eax, dword [esp + 0x28]
shr ecx, 0xe
or edi, ecx
xor dword [esp + 0x10], edi
mov edi, dword [esp + 0x40]
mov ecx, dword [esp + 0x40]
and ecx, dword [esp + 0x48]
not edi
and edi, dword [esp + 0x24]
not edx
and edx, dword [esp + 0x58]
xor edi, ecx
mov ecx, dword [esp + 0x4c]
xor edx, eax
mov eax, dword [esp + 0x10]
add ecx, edi
adc eax, edx
add ecx, ebx
adc eax, ebp
add ecx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x44]
adc eax, dword [esp + 0x38]
add ecx, 0xb605d019
adc eax, 0x59f111f1
add dword [esp + 0x3c], ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x4c], ecx
adc dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x18]
mov eax, ebx
shrd eax, ecx, 0x1c
shr ecx, 0x1c
mov edx, ebx
shl edx, 4
or edx, ecx
mov ecx, dword [esp + 0x18]
xor ebp, ebp
or ebp, eax
mov edi, ecx
mov dword [esp + 0x2c], edx
shr edi, 2
mov eax, ebx
shld ecx, eax, 0x1e
xor edx, edx
or edx, ecx
mov ecx, dword [esp + 0x18]
xor dword [esp + 0x2c], edx
shl eax, 0x1e
or edi, eax
xor ebp, edi
mov edi, ecx
mov eax, ebx
shld ecx, eax, 0x19
shr edi, 7
xor edx, edx
shl eax, 0x19
or edi, eax
or edx, ecx
xor dword [esp + 0x2c], edx
mov edx, dword [esp + 0x20]
xor edx, dword [esp + 0x18]
xor ebp, edi
mov edi, dword [esp + 0x34]
xor edi, ebx
and edi, dword [esp + 0x50]
and edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x20]
and eax, dword [esp + 0x18]
and ecx, ebx
xor edi, ecx
mov ecx, dword [esp + 0x2c]
xor edx, eax
add ebp, edi
adc ecx, edx
add ebp, dword [esp + 0x4c]
adc ecx, dword [esp + 0x10]
mov dword [esp + 0x38], ebp
mov dword [esp + 0x2c], ecx
lea ecx, [esi + 0x20]
call fcn.00402eb0
mov ecx, dword [esp + 0x3c]
mov ebx, eax
mov eax, dword [esp + 0x1c]
mov edi, eax
shld eax, ecx, 0x17
shr edi, 9
shl ecx, 0x17
or edi, ecx
mov ecx, dword [esp + 0x1c]
mov ebp, edx
xor edx, edx
or edx, eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x4c], edi
mov edi, eax
shrd eax, ecx, 0x12
shl edi, 0xe
shr ecx, 0x12
or edi, ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x10], edx
xor dword [esp + 0x10], edi
xor edx, edx
or edx, eax
xor dword [esp + 0x4c], edx
mov eax, dword [esp + 0x3c]
mov edi, eax
shrd eax, ecx, 0xe
shl edi, 0x12
xor edx, edx
or edx, eax
xor dword [esp + 0x4c], edx
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x54]
and eax, dword [esp + 0x1c]
shr ecx, 0xe
or edi, ecx
xor dword [esp + 0x10], edi
mov edi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x40]
and ecx, dword [esp + 0x3c]
not edi
and edi, dword [esp + 0x48]
not edx
and edx, dword [esp + 0x28]
xor edi, ecx
mov ecx, dword [esp + 0x4c]
xor edx, eax
mov eax, dword [esp + 0x10]
add ecx, edi
adc eax, edx
add ecx, ebx
adc eax, ebp
add ecx, dword [esp + 0x24]
mov dword [esp + 0xb8], ebx
adc eax, dword [esp + 0x58]
mov ebx, dword [esp + 0x38]
add ecx, 0xaf194f9b
adc eax, 0x923f82a4
add dword [esp + 0x50], ecx
mov dword [esp + 0xbc], ebp
mov dword [esp + 0x4c], ecx
adc dword [esp + 0x14], eax
mov dword [esp + 0x10], eax
mov edx, ebx
xor ebp, ebp
mov ecx, dword [esp + 0x2c]
shl edx, 4
mov eax, ebx
shrd eax, ecx, 0x1c
shr ecx, 0x1c
or edx, ecx
mov ecx, dword [esp + 0x2c]
or ebp, eax
mov edi, ecx
mov dword [esp + 0x24], edx
shr edi, 2
xor edx, edx
mov eax, ebx
shld ecx, eax, 0x1e
or edx, ecx
xor dword [esp + 0x24], edx
mov ecx, dword [esp + 0x2c]
shl eax, 0x1e
or edi, eax
xor ebp, edi
mov edi, ecx
xor edx, edx
mov eax, ebx
shld ecx, eax, 0x19
or edx, ecx
xor dword [esp + 0x24], edx
mov edx, dword [esp + 0x18]
xor edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x44]
and edx, dword [esp + 0x20]
shr edi, 7
shl eax, 0x19
or edi, eax
mov eax, dword [esp + 0x18]
and eax, dword [esp + 0x2c]
xor ebp, edi
mov edi, dword [esp + 0x44]
xor edi, ebx
and edi, dword [esp + 0x34]
and ecx, ebx
xor edi, ecx
mov ecx, dword [esp + 0x24]
xor edx, eax
add ebp, edi
adc ecx, edx
add dword [esp + 0x4c], ebp
adc ecx, dword [esp + 0x10]
mov dword [esp + 0x24], ecx
lea ecx, [esi + 0x28]
call fcn.00402eb0
mov ecx, dword [esp + 0x50]
mov ebx, eax
mov eax, dword [esp + 0x14]
mov edi, eax
shld eax, ecx, 0x17
mov ebp, edx
shr edi, 9
shl ecx, 0x17
or edi, ecx
mov ecx, dword [esp + 0x14]
xor edx, edx
or edx, eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x58], edi
mov edi, eax
shrd eax, ecx, 0x12
mov dword [esp + 0x10], edx
xor edx, edx
shl edi, 0xe
shr ecx, 0x12
or edx, eax
mov eax, dword [esp + 0x50]
xor dword [esp + 0x58], edx
or edi, ecx
xor dword [esp + 0x10], edi
mov ecx, dword [esp + 0x14]
mov edi, eax
xor edx, edx
mov dword [esp + 0xc0], ebx
mov dword [esp + 0xc4], ebp
shl edi, 0x12
shrd eax, ecx, 0xe
or edx, eax
xor dword [esp + 0x58], edx
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
and eax, dword [esp + 0x14]
shr ecx, 0xe
or edi, ecx
xor dword [esp + 0x10], edi
mov edi, dword [esp + 0x50]
mov ecx, dword [esp + 0x3c]
and ecx, dword [esp + 0x50]
not edi
and edi, dword [esp + 0x40]
not edx
and edx, dword [esp + 0x54]
xor edi, ecx
mov ecx, dword [esp + 0x58]
xor edx, eax
mov eax, dword [esp + 0x10]
add ecx, edi
adc eax, edx
add ecx, ebx
adc eax, ebp
add ecx, dword [esp + 0x48]
mov ebx, dword [esp + 0x4c]
adc eax, dword [esp + 0x28]
add ecx, 0xda6d8118
adc eax, 0xab1c5ed5
add dword [esp + 0x34], ecx
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x24]
adc dword [esp + 0x20], eax
mov dword [esp + 0x10], eax
mov eax, ebx
shrd eax, ecx, 0x1c
shr ecx, 0x1c
xor ebp, ebp
or ebp, eax
mov edx, ebx
shl edx, 4
or edx, ecx
mov ecx, dword [esp + 0x24]
mov edi, ecx
mov dword [esp + 0x48], edx
shr edi, 2
xor edx, edx
mov eax, ebx
shld ecx, eax, 0x1e
or edx, ecx
xor dword [esp + 0x48], edx
mov ecx, dword [esp + 0x24]
shl eax, 0x1e
or edi, eax
xor ebp, edi
mov edi, ecx
mov eax, ebx
shld ecx, eax, 0x19
shr edi, 7
xor edx, edx
or edx, ecx
xor dword [esp + 0x48], edx
mov edx, dword [esp + 0x2c]
xor edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x38]
and edx, dword [esp + 0x18]
shl eax, 0x19
or edi, eax
mov eax, dword [esp + 0x2c]
and eax, dword [esp + 0x24]
xor ebp, edi
mov edi, dword [esp + 0x38]
xor edi, ebx
and edi, dword [esp + 0x44]
and ecx, ebx
xor edi, ecx
mov ecx, dword [esp + 0x48]
xor edx, eax
add ebp, edi
adc ecx, edx
add dword [esp + 0x58], ebp
adc ecx, dword [esp + 0x10]
mov dword [esp + 0x48], ecx
lea ecx, [esi + 0x30]
call fcn.00402eb0
mov ecx, dword [esp + 0x34]
mov ebx, eax
mov eax, dword [esp + 0x20]
mov edi, eax
shld eax, ecx, 0x17
shr edi, 9
shl ecx, 0x17
or edi, ecx
mov ecx, dword [esp + 0x20]
mov ebp, edx
xor edx, edx
or edx, eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x28], edi
mov edi, eax
shrd eax, ecx, 0x12
shl edi, 0xe
shr ecx, 0x12
or edi, ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x10], edx
xor dword [esp + 0x10], edi
xor edx, edx
or edx, eax
xor dword [esp + 0x28], edx
mov eax, dword [esp + 0x34]
mov edi, eax
shrd eax, ecx, 0xe
shl edi, 0x12
xor edx, edx
or edx, eax
xor dword [esp + 0x28], edx
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x14]
and eax, dword [esp + 0x20]
shr ecx, 0xe
or edi, ecx
xor dword [esp + 0x10], edi
mov edi, dword [esp + 0x34]
mov ecx, dword [esp + 0x50]
and ecx, dword [esp + 0x34]
not edi
and edi, dword [esp + 0x3c]
not edx
and edx, dword [esp + 0x1c]
xor edi, ecx
mov ecx, dword [esp + 0x28]
xor edx, eax
mov eax, dword [esp + 0x10]
add ecx, edi
adc eax, edx
mov edx, dword [esp + 0x58]
mov edi, dword [esp + 0x48]
add ecx, ebx
adc eax, ebp
add ecx, dword [esp + 0x40]
mov dword [esp + 0xc8], ebx
adc eax, dword [esp + 0x54]
mov ebx, dword [esp + 0x24]
add ecx, 0xa3030242
adc eax, 0xd807aa98
add dword [esp + 0x44], ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0xcc], ebp
adc dword [esp + 0x18], eax
mov eax, dword [esp + 0x4c]
mov ebp, dword [esp + 0x4c]
xor eax, edx
mov dword [esp + 0x5c], eax
mov eax, ebx
xor eax, edi
and ebp, edx
and ebx, edi
mov dword [esp + 0x28], ecx
mov dword [esp + 0x68], eax
mov dword [esp + 0x74], ebp
mov dword [esp + 0x70], ebx
mov eax, edx
mov ecx, edi
shrd eax, ecx, 0x1c
shr ecx, 0x1c
mov esi, edx
shl esi, 4
or esi, ecx
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x30], 0
or dword [esp + 0x30], eax
mov eax, dword [esp + 0x58]
shld ecx, eax, 0x1e
shl eax, 0x1e
xor edx, edx
or edx, ecx
mov ecx, dword [esp + 0x48]
shr edi, 2
or edi, eax
xor dword [esp + 0x30], edi
mov eax, dword [esp + 0x58]
mov edi, ecx
shld ecx, eax, 0x19
xor esi, edx
shl eax, 0x19
xor edx, edx
or edx, ecx
mov ecx, dword [esp + 0x5c]
and ecx, dword [esp + 0x38]
shr edi, 7
or edi, eax
xor dword [esp + 0x30], edi
mov eax, dword [esp + 0x68]
and eax, dword [esp + 0x2c]
xor esi, edx
mov edx, dword [esp + 0x30]
xor ecx, ebp
xor eax, ebx
add edx, ecx
mov ecx, dword [esp + 0x6c]
adc esi, eax
add edx, dword [esp + 0x28]
adc esi, dword [esp + 0x10]
add ecx, 0x38
mov dword [esp + 0x30], edx
mov dword [esp + 0x54], esi
call fcn.00402eb0
mov ecx, dword [esp + 0x44]
mov ebx, eax
mov eax, dword [esp + 0x18]
mov edi, eax
shld eax, ecx, 0x17
mov ebp, edx
shl ecx, 0x17
shr edi, 9
or edi, ecx
mov ecx, dword [esp + 0x18]
xor edx, edx
or edx, eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x40], edi
mov edi, eax
shrd eax, ecx, 0x12
mov dword [esp + 0x28], edx
shr ecx, 0x12
xor edx, edx
shl edi, 0xe
or edi, ecx
xor dword [esp + 0x28], edi
mov ecx, dword [esp + 0x18]
or edx, eax
mov eax, dword [esp + 0x44]
xor dword [esp + 0x40], edx
mov edi, eax
shrd eax, ecx, 0xe
xor edx, edx
shl edi, 0x12
shr ecx, 0xe
or edx, eax
mov dword [esp + 0xd0], ebx
mov dword [esp + 0xd4], ebp
or edi, ecx
xor dword [esp + 0x28], edi
xor dword [esp + 0x40], edx
mov edi, dword [esp + 0x44]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x34]
and ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x20]
and eax, dword [esp + 0x18]
not edi
and edi, dword [esp + 0x50]
not edx
and edx, dword [esp + 0x14]
xor edi, ecx
mov ecx, dword [esp + 0x40]
xor edx, eax
mov eax, dword [esp + 0x28]
add ecx, edi
adc eax, edx
add ecx, ebx
adc eax, ebp
add ecx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x54]
adc eax, dword [esp + 0x1c]
add ecx, 0x45706fbe
adc eax, 0x12835b01
add dword [esp + 0x38], ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x40], ecx
adc dword [esp + 0x2c], eax
mov eax, dword [esp + 0x30]
mov esi, eax
mov ecx, ebx
shrd eax, ecx, 0x1c
shr ecx, 0x1c
shl esi, 4
or esi, ecx
xor ebp, ebp
or ebp, eax
mov eax, dword [esp + 0x30]
mov ecx, ebx
shld ecx, eax, 0x1e
shl eax, 0x1e
xor edx, edx
or edx, ecx
mov edi, ebx
shr edi, 2
or edi, eax
mov eax, dword [esp + 0x30]
xor esi, edx
xor ebp, edi
mov ecx, ebx
shld ecx, eax, 0x19
xor edx, edx
or edx, ecx
mov ecx, dword [esp + 0x5c]
and ecx, dword [esp + 0x30]
shl eax, 0x19
xor ecx, dword [esp + 0x74]
mov edi, ebx
shr edi, 7
or edi, eax
mov eax, dword [esp + 0x68]
and eax, ebx
xor eax, dword [esp + 0x70]
xor esi, edx
xor ebp, edi
add ebp, ecx
mov ecx, dword [esp + 0x6c]
adc esi, eax
add dword [esp + 0x40], ebp
lea ecx, [ecx + 0x40]
adc esi, dword [esp + 0x28]
call fcn.00402eb0
mov ebx, eax
mov eax, dword [esp + 0x2c]
mov ebp, edx
mov edi, eax
shr edi, 9
mov dword [esp + 0xd8], ebx
mov dword [esp + 0xdc], ebp
xor edx, edx
mov ecx, dword [esp + 0x38]
shld eax, ecx, 0x17
or edx, eax
mov eax, dword [esp + 0x38]
shl ecx, 0x17
or edi, ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x1c], edi
mov edi, eax
shrd eax, ecx, 0x12
shl edi, 0xe
shr ecx, 0x12
or edi, ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x3c], edx
xor dword [esp + 0x3c], edi
xor edx, edx
or edx, eax
xor dword [esp + 0x1c], edx
mov eax, dword [esp + 0x38]
mov edi, eax
shrd eax, ecx, 0xe
shl edi, 0x12
shr ecx, 0xe
or edi, ecx
xor dword [esp + 0x3c], edi
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x44]
and ecx, dword [esp + 0x38]
xor edx, edx
or edx, eax
xor dword [esp + 0x1c], edx
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x18]
and eax, dword [esp + 0x2c]
not edi
and edi, dword [esp + 0x34]
not edx
and edx, dword [esp + 0x20]
xor edi, ecx
mov ecx, dword [esp + 0x1c]
xor edx, eax
mov eax, dword [esp + 0x3c]
add ecx, edi
adc eax, edx
add ecx, ebx
adc eax, ebp
add ecx, dword [esp + 0x50]
mov ebx, dword [esp + 0x40]
adc eax, dword [esp + 0x14]
add ecx, 0x4ee4b28c
adc eax, 0x243185be
add dword [esp + 0x4c], ecx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x1c], ecx
adc dword [esp + 0x24], eax
mov eax, ebx
mov ecx, esi
shrd eax, ecx, 0x1c
xor edx, edx
or edx, eax
shr ecx, 0x1c
mov ebp, ebx
shl ebp, 4
or ebp, ecx
mov eax, ebx
mov ecx, esi
shld ecx, eax, 0x1e
mov edi, esi
shr edi, 2
shl eax, 0x1e
or edi, eax
mov dword [esp + 0x10], edx
xor dword [esp + 0x10], edi
xor edx, edx
or edx, ecx
mov edi, esi
xor ebp, edx
shr edi, 7
xor edx, edx
mov eax, ebx
mov ecx, esi
shld ecx, eax, 0x19
or edx, ecx
shl eax, 0x19
or edi, eax
xor dword [esp + 0x10], edi
xor ebp, edx
mov edi, ebx
xor edi, dword [esp + 0x58]
mov edx, esi
xor edx, dword [esp + 0x48]
and edi, dword [esp + 0x30]
and edx, dword [esp + 0x54]
mov ecx, ebx
and ecx, dword [esp + 0x58]
mov eax, esi
and eax, dword [esp + 0x48]
xor edi, ecx
mov ecx, dword [esp + 0x10]
xor edx, eax
add ecx, edi
adc ebp, edx
add ecx, dword [esp + 0x1c]
adc ebp, dword [esp + 0x3c]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x3c], ebp
lea ecx, [ecx + 0x48]
call fcn.00402eb0
mov ecx, dword [esp + 0x4c]
mov ebx, eax
mov eax, dword [esp + 0x24]
mov edi, eax
shld eax, ecx, 0x17
mov ebp, edx
shr edi, 9
shl ecx, 0x17
or edi, ecx
mov ecx, dword [esp + 0x24]
xor edx, edx
or edx, eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x14], edi
mov edi, eax
shrd eax, ecx, 0x12
mov dword [esp + 0x1c], edx
shl edi, 0xe
xor edx, edx
or edx, eax
mov eax, dword [esp + 0x4c]
xor dword [esp + 0x14], edx
shr ecx, 0x12
or edi, ecx
xor dword [esp + 0x1c], edi
mov ecx, dword [esp + 0x24]
mov edi, eax
shrd eax, ecx, 0xe
shl edi, 0x12
shr ecx, 0xe
or edi, ecx
xor dword [esp + 0x1c], edi
mov edi, dword [esp + 0x4c]
mov ecx, dword [esp + 0x38]
and ecx, dword [esp + 0x4c]
xor edx, edx
or edx, eax
xor dword [esp + 0x14], edx
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x2c]
and eax, dword [esp + 0x24]
not edi
and edi, dword [esp + 0x44]
not edx
and edx, dword [esp + 0x18]
xor edi, ecx
mov ecx, dword [esp + 0x14]
xor edx, eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0xe0], ebx
mov dword [esp + 0xe4], ebp
add ecx, edi
adc eax, edx
add ecx, ebx
adc eax, ebp
add ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x3c]
adc eax, dword [esp + 0x20]
add ecx, 0xd5ffb4e2
adc eax, 0x550c7dc3
add dword [esp + 0x58], ecx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], eax
adc dword [esp + 0x48], eax
mov eax, dword [esp + 0x10]
mov ebp, eax
xor edx, edx
mov ecx, ebx
shrd eax, ecx, 0x1c
or edx, eax
mov eax, dword [esp + 0x10]
shr ecx, 0x1c
shl ebp, 4
or ebp, ecx
mov dword [esp + 0x34], edx
xor edx, edx
mov ecx, ebx
shld ecx, eax, 0x1e
or edx, ecx
shl eax, 0x1e
mov edi, ebx
shr edi, 2
or edi, eax
xor dword [esp + 0x34], edi
mov eax, dword [esp + 0x10]
xor ebp, edx
mov ecx, ebx
shld ecx, eax, 0x19
shl eax, 0x19
xor edx, edx
or edx, ecx
mov ecx, dword [esp + 0x40]
and ecx, dword [esp + 0x10]
mov edi, ebx
shr edi, 7
or edi, eax
xor dword [esp + 0x34], edi
mov edi, dword [esp + 0x40]
xor edi, dword [esp + 0x10]
xor ebp, edx
and edi, dword [esp + 0x30]
mov edx, esi
xor edx, ebx
and edx, dword [esp + 0x54]
xor edi, ecx
mov ecx, dword [esp + 0x34]
mov eax, esi
and eax, ebx
xor edx, eax
add ecx, edi
adc ebp, edx
add ecx, dword [esp + 0x14]
adc ebp, dword [esp + 0x1c]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x1c], ebp
lea ecx, [ecx + 0x50]
call fcn.00402eb0
mov ecx, dword [esp + 0x58]
mov ebx, eax
mov eax, dword [esp + 0x48]
mov edi, eax
shld eax, ecx, 0x17
mov ebp, edx
shr edi, 9
shl ecx, 0x17
xor edx, edx
or edi, ecx
or edx, eax
mov dword [esp + 0xe8], ebx
mov dword [esp + 0xec], ebp
mov dword [esp + 0x14], edi
mov dword [esp + 0x20], edx
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x48]
mov edi, eax
shrd eax, ecx, 0x12
shl edi, 0xe
shr ecx, 0x12
or edi, ecx
xor dword [esp + 0x20], edi
mov ecx, dword [esp + 0x48]
xor edx, edx
or edx, eax
xor dword [esp + 0x14], edx
mov eax, dword [esp + 0x58]
mov edi, eax
shrd eax, ecx, 0xe
shl edi, 0x12
shr ecx, 0xe
or edi, ecx
xor dword [esp + 0x20], edi
mov edi, dword [esp + 0x58]
mov ecx, dword [esp + 0x4c]
and ecx, dword [esp + 0x58]
xor edx, edx
or edx, eax
xor dword [esp + 0x14], edx
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x24]
and eax, dword [esp + 0x48]
not edi
and edi, dword [esp + 0x38]
not edx
and edx, dword [esp + 0x2c]
xor edi, ecx
mov ecx, dword [esp + 0x14]
xor edx, eax
mov eax, dword [esp + 0x20]
add ecx, edi
adc eax, edx
add ecx, ebx
adc eax, ebp
add ecx, dword [esp + 0x44]
mov ebx, dword [esp + 0x1c]
adc eax, dword [esp + 0x18]
add ecx, 0xf27b896f
adc eax, 0x72be5d74
add dword [esp + 0x30], ecx
mov dword [esp + 0x20], eax
mov dword [esp + 0x14], ecx
adc dword [esp + 0x54], eax
mov eax, dword [esp + 0x34]
mov ebp, eax
mov ecx, ebx
shrd eax, ecx, 0x1c
xor edx, edx
or edx, eax
mov eax, dword [esp + 0x34]
shr ecx, 0x1c
shl ebp, 4
or ebp, ecx
mov ecx, ebx
shld ecx, eax, 0x1e
mov dword [esp + 0x50], edx
shl eax, 0x1e
xor edx, edx
or edx, ecx
mov edi, ebx
shr edi, 2
or edi, eax
xor dword [esp + 0x50], edi
mov eax, dword [esp + 0x34]
mov ecx, ebx
shld ecx, eax, 0x19
xor ebp, edx
mov edi, ebx
shr edi, 7
shl eax, 0x19
xor edx, edx
or edi, eax
xor dword [esp + 0x50], edi
or edx, ecx
xor ebp, edx
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x3c]
mov edi, ecx
xor edi, dword [esp + 0x34]
and ecx, dword [esp + 0x34]
and edi, dword [esp + 0x40]
mov edx, eax
xor edx, ebx
xor edi, ecx
mov ecx, dword [esp + 0x50]
and edx, esi
and eax, ebx
xor edx, eax
add ecx, edi
adc ebp, edx
add ecx, dword [esp + 0x14]
adc ebp, dword [esp + 0x20]
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x18], ebp
lea ecx, [ecx + 0x58]
call fcn.00402eb0
mov ecx, dword [esp + 0x30]
mov ebx, eax
mov eax, dword [esp + 0x54]
mov edi, eax
shld eax, ecx, 0x17
shr edi, 9
shl ecx, 0x17
or edi, ecx
mov ecx, dword [esp + 0x54]
mov ebp, edx
xor edx, edx
or edx, eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x44], edi
mov edi, eax
shrd eax, ecx, 0x12
shl edi, 0xe
shr ecx, 0x12
or edi, ecx
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x14], edx
xor dword [esp + 0x14], edi
xor edx, edx
or edx, eax
xor dword [esp + 0x44], edx
mov eax, dword [esp + 0x30]
mov edi, eax
shrd eax, ecx, 0xe
shl edi, 0x12
shr ecx, 0xe
or edi, ecx
xor dword [esp + 0x14], edi
mov ecx, dword [esp + 0x30]
xor edx, edx
or edx, eax
xor dword [esp + 0x44], edx
mov eax, dword [esp + 0x54]
mov edi, ecx
and ecx, dword [esp + 0x58]
mov edx, eax
and eax, dword [esp + 0x48]
not edi
and edi, dword [esp + 0x4c]
not edx
and edx, dword [esp + 0x24]
xor edi, ecx
mov ecx, dword [esp + 0x44]
xor edx, eax
mov eax, dword [esp + 0x14]
add ecx, edi
adc eax, edx
add ecx, ebx
adc eax, ebp
add ecx, dword [esp + 0x38]
mov dword [esp + 0xf0], ebx
adc eax, dword [esp + 0x2c]
add ecx, 0x3b1696b1
mov dword [esp + 0xf4], ebp
mov dword [esp + 0x44], ecx
adc eax, 0x80deb1fe
add dword [esp + 0x40], ecx
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x14], eax
adc esi, eax
mov eax, dword [esp + 0x50]
mov ebp, eax
xor edx, edx
mov ecx, ebx
shrd eax, ecx, 0x1c
or edx, eax
mov eax, dword [esp + 0x50]
shr ecx, 0x1c
shl ebp, 4
or ebp, ecx
mov dword [esp + 0x28], edx
xor edx, edx
mov ecx, ebx
shld ecx, eax, 0x1e
or edx, ecx
shl eax, 0x1e
mov edi, ebx
shr edi, 2
or edi, eax
xor dword [esp + 0x28], edi
mov eax, dword [esp + 0x50]
xor ebp, edx
xor edx, edx
mov ecx, ebx
shld ecx, eax, 0x19
or edx, ecx
mov ecx, dword [esp + 0x34]
shl eax, 0x19
mov edi, ebx
shr edi, 7
or edi, eax
xor dword [esp + 0x28], edi
mov eax, dword [esp + 0x1c]
xor ebp, edx
mov edi, ecx
xor edi, dword [esp + 0x50]
and ecx, dword [esp + 0x50]
and edi, dword [esp + 0x10]
mov edx, eax
xor edx, ebx
and edx, dword [esp + 0x3c]
xor edi, ecx
mov ecx, dword [esp + 0x28]
and eax, ebx
xor edx, eax
add ecx, edi
adc ebp, edx
add ecx, dword [esp + 0x44]
adc ebp, dword [esp + 0x14]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x20], ebp
lea ecx, [ecx + 0x60]
call fcn.00402eb0
mov ecx, dword [esp + 0x40]
mov ebx, eax
mov eax, esi
shld eax, ecx, 0x17
mov ebp, edx
shl ecx, 0x17
mov edi, esi
shr edi, 9
or edi, ecx
xor edx, edx
or edx, eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x38], edi
mov edi, eax
mov ecx, esi
shrd eax, ecx, 0x12
mov dword [esp + 0x44], edx
xor edx, edx
shl edi, 0xe
mov dword [esp + 0xf8], ebx
mov dword [esp + 0xfc], ebp
shr ecx, 0x12
or edx, eax
xor dword [esp + 0x38], edx
or edi, ecx
xor dword [esp + 0x44], edi
mov eax, dword [esp + 0x40]
mov edi, eax
shl edi, 0x12
xor edx, edx
mov ecx, esi
shrd eax, ecx, 0xe
or edx, eax
xor dword [esp + 0x38], edx
mov eax, dword [esp + 0x54]
shr ecx, 0xe
or edi, ecx
xor dword [esp + 0x44], edi
mov edi, dword [esp + 0x40]
mov ecx, dword [esp + 0x30]
and ecx, dword [esp + 0x40]
and eax, esi
not edi
and edi, dword [esp + 0x58]
mov edx, esi
xor edi, ecx
mov ecx, dword [esp + 0x38]
not edx
and edx, dword [esp + 0x48]
xor edx, eax
mov eax, dword [esp + 0x44]
add ecx, edi
adc eax, edx
add ecx, ebx
adc eax, ebp
add ecx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x20]
adc eax, dword [esp + 0x24]
add ecx, 0x25c71235
adc eax, 0x9bdc06a7
add dword [esp + 0x10], ecx
mov dword [esp + 0x44], eax
mov dword [esp + 0x38], ecx
adc dword [esp + 0x3c], eax
mov eax, dword [esp + 0x28]
mov ebp, eax
xor edx, edx
mov ecx, ebx
shrd eax, ecx, 0x1c
or edx, eax
mov eax, dword [esp + 0x28]
shr ecx, 0x1c
shl ebp, 4
or ebp, ecx
mov dword [esp + 0x24], edx
mov ecx, ebx
shld ecx, eax, 0x1e
xor edx, edx
or edx, ecx
shl eax, 0x1e
mov edi, ebx
shr edi, 2
or edi, eax
xor dword [esp + 0x24], edi
mov eax, dword [esp + 0x28]
mov ecx, ebx
shld ecx, eax, 0x19
xor ebp, edx
xor edx, edx
mov edi, ebx
shr edi, 7
shl eax, 0x19
or edi, eax
xor dword [esp + 0x24], edi
mov eax, dword [esp + 0x18]
or edx, ecx
mov ecx, dword [esp + 0x50]
xor ebp, edx
mov edi, ecx
xor edi, dword [esp + 0x28]
mov edx, eax
xor edx, ebx
and edi, dword [esp + 0x34]
and ecx, dword [esp + 0x28]
and edx, dword [esp + 0x1c]
xor edi, ecx
mov ecx, dword [esp + 0x24]
and eax, ebx
xor edx, eax
add ecx, edi
adc ebp, edx
add ecx, dword [esp + 0x38]
adc ebp, dword [esp + 0x44]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x14], ebp
lea ecx, [ecx + 0x68]
call fcn.00402eb0
mov ecx, dword [esp + 0x10]
mov ebx, eax
mov eax, dword [esp + 0x3c]
mov edi, eax
shld eax, ecx, 0x17
shr edi, 9
shl ecx, 0x17
or edi, ecx
mov ecx, dword [esp + 0x3c]
mov ebp, edx
xor edx, edx
or edx, eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x4c], edi
mov edi, eax
shrd eax, ecx, 0x12
shl edi, 0xe
shr ecx, 0x12
or edi, ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x38], edx
xor dword [esp + 0x38], edi
xor edx, edx
or edx, eax
xor dword [esp + 0x4c], edx
mov eax, dword [esp + 0x10]
mov edi, eax
shrd eax, ecx, 0xe
shl edi, 0x12
shr ecx, 0xe
or edi, ecx
xor dword [esp + 0x38], edi
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x40]
and ecx, dword [esp + 0x10]
xor edx, edx
or edx, eax
xor dword [esp + 0x4c], edx
mov edx, dword [esp + 0x3c]
not edi
and edi, dword [esp + 0x30]
not edx
and edx, dword [esp + 0x54]
xor edi, ecx
mov ecx, dword [esp + 0x4c]
mov eax, esi
and eax, dword [esp + 0x3c]
mov dword [esp + 0x104], ebp
xor edx, eax
mov eax, dword [esp + 0x38]
add ecx, edi
adc eax, edx
add ecx, ebx
adc eax, ebp
add ecx, dword [esp + 0x58]
mov dword [esp + 0x100], ebx
adc eax, dword [esp + 0x48]
add ecx, 0xcf692694
adc eax, 0xc19bf174
add dword [esp + 0x34], ecx
mov dword [esp + 0x38], eax
mov dword [esp + 0x4c], ecx
adc dword [esp + 0x1c], eax
mov eax, dword [esp + 0x24]
mov ebp, eax
xor edx, edx
mov ebx, dword [esp + 0x14]
mov ecx, ebx
shrd eax, ecx, 0x1c
or edx, eax
mov eax, dword [esp + 0x24]
shr ecx, 0x1c
shl ebp, 4
or ebp, ecx
mov dword [esp + 0x2c], edx
xor edx, edx
mov ecx, ebx
shld ecx, eax, 0x1e
or edx, ecx
shl eax, 0x1e
mov edi, ebx
shr edi, 2
or edi, eax
xor dword [esp + 0x2c], edi
mov eax, dword [esp + 0x24]
xor ebp, edx
xor edx, edx
mov ecx, ebx
shld ecx, eax, 0x19
or edx, ecx
mov ecx, dword [esp + 0x28]
shl eax, 0x19
mov edi, ebx
shr edi, 7
or edi, eax
xor dword [esp + 0x2c], edi
mov eax, dword [esp + 0x20]
xor ebp, edx
mov edi, ecx
xor edi, dword [esp + 0x24]
and ecx, dword [esp + 0x24]
and edi, dword [esp + 0x50]
mov edx, eax
xor edx, ebx
and edx, dword [esp + 0x18]
and eax, ebx
xor edi, ecx
mov ecx, dword [esp + 0x2c]
xor edx, eax
add ecx, edi
adc ebp, edx
add ecx, dword [esp + 0x4c]
mov edx, 0x11
adc ebp, dword [esp + 0x38]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x48], ebp
mov dword [esp + 0x58], edx
mov dword [esp + 0x4c], 0x435db0
mov eax, edx
and eax, 0xf
lea ecx, [esp + 0x88]
lea ecx, [ecx + eax*8]
mov dword [esp + 0x38], ecx
lea eax, [edx - 3]
and eax, 0xf
lea ecx, [esp + 0x88]
mov ebx, dword [ecx + eax*8 + 4]
mov ebp, dword [ecx + eax*8]
lea eax, [ecx + eax*8]
mov dword [esp + 0x84], eax
lea eax, [edx - 1]
mov edx, ecx
and eax, 0xf
mov ecx, ebx
lea edx, [edx + eax*8]
mov eax, ebp
shrd eax, ecx, 0x13
shr ecx, 0x13
mov dword [esp + 0x68], edx
mov edi, ebp
shl edi, 0xd
or edi, ecx
xor edx, edx
or edx, eax
mov eax, ebp
mov ecx, ebx
shld ecx, eax, 3
mov dword [esp + 0x64], edi
shl eax, 3
mov dword [esp + 0x60], edx
mov edi, ebx
shrd ebp, ebx, 6
shr edi, 0x1d
or edi, eax
mov eax, dword [esp + 0x60]
xor eax, edi
mov edi, dword [esp + 0x38]
xor eax, ebp
xor edx, edx
or edx, ecx
mov ecx, dword [esp + 0x64]
xor ecx, edx
mov edx, dword [edi]
shr ebx, 6
xor ecx, ebx
mov dword [esp + 0x64], ecx
mov ecx, dword [edi + 4]
mov dword [esp + 0x60], eax
mov eax, edx
shrd eax, ecx, 8
shr ecx, 8
mov ebp, edx
shl ebp, 0x18
or ebp, ecx
mov ecx, dword [esp + 0x38]
xor ebx, ebx
or ebx, eax
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
shrd eax, ecx, 1
mov edi, edx
shr ecx, 1
shl edi, 0x1f
or edi, ecx
xor ebp, edi
mov edi, dword [esp + 0x38]
xor edx, edx
mov ecx, dword [edi]
or edx, eax
mov eax, dword [edi + 4]
shrd ecx, eax, 7
xor ebx, edx
mov edx, dword [esp + 0x64]
shr eax, 7
xor ebx, ecx
mov ecx, dword [esp + 0x60]
xor ebp, eax
add ecx, ebx
adc edx, ebp
mov eax, dword [esp + 0x58]
add eax, 0xfffffff8
and eax, 0xf
add ecx, dword [esp + eax*8 + 0x88]
adc edx, dword [esp + eax*8 + 0x8c]
mov eax, dword [esp + 0x68]
add dword [eax], ecx
mov ecx, dword [esp + 0x1c]
mov ebp, ecx
adc dword [eax + 4], edx
mov eax, dword [esp + 0x34]
shld ecx, eax, 0x17
shl eax, 0x17
xor ebx, ebx
or ebx, ecx
mov ecx, dword [esp + 0x1c]
shr ebp, 9
or ebp, eax
mov eax, dword [esp + 0x34]
mov edi, eax
shrd eax, ecx, 0x12
shl edi, 0xe
xor edx, edx
or edx, eax
mov eax, dword [esp + 0x34]
shr ecx, 0x12
or edi, ecx
mov ecx, dword [esp + 0x1c]
xor ebx, edi
mov edi, eax
shrd eax, ecx, 0xe
xor ebp, edx
shl edi, 0x12
shr ecx, 0xe
or edi, ecx
mov ecx, dword [esp + 0x10]
and ecx, dword [esp + 0x34]
xor ebx, edi
mov edi, dword [esp + 0x34]
xor edx, edx
or edx, eax
mov eax, dword [esp + 0x3c]
and eax, dword [esp + 0x1c]
xor ebp, edx
mov edx, dword [esp + 0x1c]
not edi
and edi, dword [esp + 0x40]
not edx
xor edi, ecx
and edx, esi
xor edx, eax
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x14]
add ebp, edi
mov edi, dword [esp + 0x24]
adc ebx, edx
add ebp, dword [eax - 8]
mov edx, dword [esp + 0x68]
adc ebx, dword [eax - 4]
add ebp, dword [edx]
mov eax, edi
adc ebx, dword [edx + 4]
add ebp, dword [esp + 0x30]
mov edx, dword [esp + 0x48]
adc ebx, dword [esp + 0x54]
add dword [esp + 0x50], ebp
mov dword [esp + 0x30], 0
adc dword [esp + 0x18], ebx
xor eax, dword [esp + 0x2c]
and edi, dword [esp + 0x2c]
mov dword [esp + 0x5c], eax
mov eax, ecx
xor eax, edx
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x2c]
and ecx, edx
mov dword [esp + 0x70], edi
mov edi, eax
mov dword [esp + 0x74], ecx
shl edi, 4
mov ecx, edx
shrd eax, ecx, 0x1c
or dword [esp + 0x30], eax
mov eax, dword [esp + 0x2c]
shr ecx, 0x1c
or edi, ecx
mov ecx, dword [esp + 0x48]
shld ecx, eax, 0x1e
shl eax, 0x1e
mov dword [esp + 0x54], edi
mov edi, edx
shr edi, 2
or edi, eax
xor dword [esp + 0x30], edi
mov eax, dword [esp + 0x2c]
xor edx, edx
or edx, ecx
xor dword [esp + 0x54], edx
mov ecx, dword [esp + 0x48]
mov edi, ecx
shld ecx, eax, 0x19
shl eax, 0x19
shr edi, 7
or edi, eax
xor dword [esp + 0x30], edi
mov edi, dword [esp + 0x54]
mov eax, dword [esp + 0x7c]
and eax, dword [esp + 0x20]
xor edx, edx
xor eax, dword [esp + 0x74]
or edx, ecx
mov ecx, dword [esp + 0x5c]
and ecx, dword [esp + 0x28]
xor edi, edx
xor ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x30]
add edx, ecx
adc edi, eax
add edx, ebp
adc edi, ebx
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x58]
lea ecx, [esp + 0x88]
lea eax, [edx + 1]
and eax, 0xf
mov dword [esp + 0x54], edi
lea ecx, [ecx + eax*8]
mov dword [esp + 0x44], ecx
lea eax, [edx - 2]
and eax, 0xf
lea ecx, [esp + 0x88]
xor edx, edx
mov ebx, dword [ecx + eax*8 + 4]
mov ebp, dword [ecx + eax*8]
lea eax, [ecx + eax*8]
mov dword [esp + 0x78], eax
mov ecx, ebx
mov eax, ebp
shrd eax, ecx, 0x13
or edx, eax
shr ecx, 0x13
mov edi, ebp
shl edi, 0xd
or edi, ecx
mov ecx, ebx
mov eax, ebp
shld ecx, eax, 3
mov dword [esp + 0x64], edi
mov edi, ebx
shl eax, 3
mov dword [esp + 0x60], edx
shr edi, 0x1d
xor edx, edx
or edi, eax
mov eax, dword [esp + 0x60]
shrd ebp, ebx, 6
or edx, ecx
mov ecx, dword [esp + 0x64]
xor eax, edi
xor ecx, edx
shr ebx, 6
xor eax, ebp
mov edi, dword [esp + 0x44]
xor ecx, ebx
mov edx, dword [edi]
mov dword [esp + 0x64], ecx
mov ecx, dword [edi + 4]
mov dword [esp + 0x60], eax
mov eax, edx
shrd eax, ecx, 8
shr ecx, 8
mov ebp, edx
shl ebp, 0x18
or ebp, ecx
mov ecx, dword [esp + 0x44]
xor ebx, ebx
or ebx, eax
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
shrd eax, ecx, 1
shr ecx, 1
mov edi, edx
shl edi, 0x1f
or edi, ecx
xor ebp, edi
mov edi, dword [esp + 0x44]
xor edx, edx
mov ecx, dword [edi]
or edx, eax
mov eax, dword [edi + 4]
shrd ecx, eax, 7
xor ebx, edx
mov edx, dword [esp + 0x64]
xor ebx, ecx
mov ecx, dword [esp + 0x60]
shr eax, 7
xor ebp, eax
mov eax, dword [esp + 0x58]
add ecx, ebx
adc edx, ebp
add eax, 0xfffffff9
and eax, 0xf
add ecx, dword [esp + eax*8 + 0x88]
adc edx, dword [esp + eax*8 + 0x8c]
mov eax, dword [esp + 0x38]
add dword [eax], ecx
mov ecx, dword [esp + 0x18]
mov ebp, ecx
adc dword [eax + 4], edx
mov eax, dword [esp + 0x50]
shld ecx, eax, 0x17
shl eax, 0x17
shr ebp, 9
or ebp, eax
mov eax, dword [esp + 0x50]
xor ebx, ebx
or ebx, ecx
mov ecx, dword [esp + 0x18]
mov edi, eax
shrd eax, ecx, 0x12
shl edi, 0xe
xor edx, edx
or edx, eax
mov eax, dword [esp + 0x50]
shr ecx, 0x12
or edi, ecx
mov ecx, dword [esp + 0x18]
xor ebx, edi
mov edi, eax
shrd eax, ecx, 0xe
xor ebp, edx
shl edi, 0x12
xor edx, edx
shr ecx, 0xe
or edi, ecx
or edx, eax
xor ebx, edi
mov edi, dword [esp + 0x50]
xor ebp, edx
mov edx, dword [esp + 0x18]
not edi
and edi, dword [esp + 0x10]
not edx
and edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x34]
and ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x1c]
and eax, dword [esp + 0x18]
xor edi, ecx
xor edx, eax
mov eax, dword [esp + 0x4c]
add ebp, edi
adc ebx, edx
add ebp, dword [eax]
mov ecx, dword [esp + 0x54]
adc ebx, dword [eax + 4]
mov eax, dword [esp + 0x38]
add ebp, dword [eax]
adc ebx, dword [eax + 4]
add ebp, dword [esp + 0x40]
mov eax, dword [esp + 0x30]
adc ebx, esi
add dword [esp + 0x28], ebp
mov esi, eax
adc dword [esp + 0x20], ebx
shrd eax, ecx, 0x1c
shr ecx, 0x1c
xor edx, edx
or edx, eax
mov eax, dword [esp + 0x30]
shl esi, 4
or esi, ecx
mov ecx, dword [esp + 0x54]
mov edi, ecx
shld ecx, eax, 0x1e
shl eax, 0x1e
mov dword [esp + 0x40], edx
shr edi, 2
or edi, eax
xor dword [esp + 0x40], edi
mov eax, dword [esp + 0x30]
xor edx, edx
or edx, ecx
mov ecx, dword [esp + 0x54]
mov edi, ecx
shld ecx, eax, 0x19
xor esi, edx
shl eax, 0x19
xor edx, edx
or edx, ecx
mov ecx, dword [esp + 0x5c]
and ecx, dword [esp + 0x30]
shr edi, 7
xor ecx, dword [esp + 0x70]
or edi, eax
xor dword [esp + 0x40], edi
mov eax, dword [esp + 0x7c]
and eax, dword [esp + 0x54]
xor esi, edx
xor eax, dword [esp + 0x74]
mov edx, dword [esp + 0x40]
add edx, ecx
adc esi, eax
mov eax, dword [esp + 0x58]
add edx, ebp
adc esi, ebx
add eax, 2
and eax, 0xf
lea ecx, [esp + 0x88]
mov dword [esp + 0x40], edx
lea ecx, [ecx + eax*8]
mov eax, dword [esp + 0x68]
mov dword [esp + 0x64], ecx
mov ebp, dword [eax]
mov ebx, dword [eax + 4]
mov eax, ebp
mov ecx, ebx
shrd eax, ecx, 0x13
mov edi, ebp
xor edx, edx
shl edi, 0xd
shr ecx, 0x13
or edx, eax
mov dword [esp + 0x60], edx
or edi, ecx
mov eax, ebp
mov dword [esp + 0x5c], edi
mov ecx, ebx
shld ecx, eax, 3
shl eax, 3
xor edx, edx
or edx, ecx
mov ecx, dword [esp + 0x5c]
xor ecx, edx
mov edi, ebx
shrd ebp, ebx, 6
shr edi, 0x1d
or edi, eax
mov eax, dword [esp + 0x60]
xor eax, edi
mov edi, dword [esp + 0x64]
xor eax, ebp
mov edx, dword [edi]
mov dword [esp + 0x60], eax
shr ebx, 6
xor ecx, ebx
mov dword [esp + 0x5c], ecx
mov ecx, dword [edi + 4]
mov eax, edx
shrd eax, ecx, 8
shr ecx, 8
mov ebp, edx
shl ebp, 0x18
or ebp, ecx
mov ecx, dword [esp + 0x64]
xor ebx, ebx
or ebx, eax
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
shrd eax, ecx, 1
shr ecx, 1
mov edi, edx
shl edi, 0x1f
or edi, ecx
xor ebp, edi
mov edi, dword [esp + 0x64]
xor edx, edx
mov ecx, dword [edi]
or edx, eax
mov eax, dword [edi + 4]
shrd ecx, eax, 7
xor ebx, edx
mov edx, dword [esp + 0x5c]
shr eax, 7
xor ebp, eax
mov eax, dword [esp + 0x58]
xor ebx, ecx
mov ecx, dword [esp + 0x60]
add ecx, ebx
adc edx, ebp
add eax, 0xfffffffa
and eax, 0xf
add ecx, dword [esp + eax*8 + 0x88]
adc edx, dword [esp + eax*8 + 0x8c]
mov eax, dword [esp + 0x44]
add dword [eax], ecx
mov ecx, dword [esp + 0x20]
mov ebp, ecx
adc dword [eax + 4], edx
mov eax, dword [esp + 0x28]
shld ecx, eax, 0x17
shl eax, 0x17
shr ebp, 9
xor ebx, ebx
or ebp, eax
mov eax, dword [esp + 0x28]
or ebx, ecx
mov ecx, dword [esp + 0x20]
mov edi, eax
shrd eax, ecx, 0x12
xor edx, edx
shl edi, 0xe
shr ecx, 0x12
or edx, eax
or edi, ecx
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x20]
xor ebx, edi
xor ebp, edx
mov edi, eax
shrd eax, ecx, 0xe
shl edi, 0x12
xor edx, edx
or edx, eax
mov eax, dword [esp + 0x18]
and eax, dword [esp + 0x20]
shr ecx, 0xe
or edi, ecx
mov ecx, dword [esp + 0x50]
and ecx, dword [esp + 0x28]
xor ebx, edi
mov edi, dword [esp + 0x28]
xor ebp, edx
mov edx, dword [esp + 0x20]
not edi
and edi, dword [esp + 0x34]
not edx
and edx, dword [esp + 0x1c]
xor edi, ecx
xor edx, eax
mov eax, dword [esp + 0x4c]
add ebp, edi
adc ebx, edx
add ebp, dword [eax + 8]
mov ecx, esi
adc ebx, dword [eax + 0xc]
mov eax, dword [esp + 0x44]
add ebp, dword [eax]
adc ebx, dword [eax + 4]
add ebp, dword [esp + 0x10]
mov eax, dword [esp + 0x40]
adc ebx, dword [esp + 0x3c]
add dword [esp + 0x24], ebp
mov edx, eax
adc dword [esp + 0x14], ebx
shrd eax, ecx, 0x1c
xor edi, edi
or edi, eax
mov eax, dword [esp + 0x40]
shl edx, 4
shr ecx, 0x1c
or edx, ecx
mov dword [esp + 0x10], edi
mov dword [esp + 0x3c], edx
mov ecx, esi
shld ecx, eax, 0x1e
xor edx, edx
or edx, ecx
xor dword [esp + 0x3c], edx
shl eax, 0x1e
mov edi, esi
shr edi, 2
or edi, eax
xor dword [esp + 0x10], edi
mov eax, dword [esp + 0x40]
mov ecx, esi
shld ecx, eax, 0x19
shl eax, 0x19
mov edi, esi
shr edi, 7
or edi, eax
xor dword [esp + 0x10], edi
mov edi, dword [esp + 0x40]
xor edi, dword [esp + 0x2c]
xor edx, edx
and edi, dword [esp + 0x30]
or edx, ecx
xor dword [esp + 0x3c], edx
mov ecx, dword [esp + 0x40]
and ecx, dword [esp + 0x2c]
mov edx, esi
xor edx, dword [esp + 0x48]
mov eax, esi
and edx, dword [esp + 0x54]
and eax, dword [esp + 0x48]
xor edi, ecx
mov ecx, dword [esp + 0x10]
xor edx, eax
add ecx, edi
mov eax, dword [esp + 0x3c]
adc eax, edx
add ecx, ebp
adc eax, ebx
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x10], ecx
add eax, 3
and eax, 0xf
lea ecx, [esp + 0x88]
xor edx, edx
lea ecx, [ecx + eax*8]
mov eax, dword [esp + 0x38]
mov dword [esp + 0x60], ecx
mov ebx, dword [eax + 4]
mov ebp, dword [eax]
mov eax, ebp
mov ecx, ebx
shrd eax, ecx, 0x13
or edx, eax
shr ecx, 0x13
mov edi, ebp
shl edi, 0xd
or edi, ecx
mov eax, ebp
mov ecx, ebx
shld ecx, eax, 3
mov dword [esp + 0x38], edi
shl eax, 3
mov edi, ebx
shrd ebp, ebx, 6
mov dword [esp + 0x5c], edx
shr edi, 0x1d
or edi, eax
mov eax, dword [esp + 0x5c]
xor eax, edi
mov edi, dword [esp + 0x60]
xor eax, ebp
xor edx, edx
or edx, ecx
mov ecx, dword [esp + 0x38]
xor ecx, edx
mov edx, dword [edi]
shr ebx, 6
xor ecx, ebx
mov dword [esp + 0x38], ecx
mov ecx, dword [edi + 4]
mov dword [esp + 0x5c], eax
mov eax, edx
shrd eax, ecx, 8
shr ecx, 8
mov ebp, edx
shl ebp, 0x18
or ebp, ecx
mov ecx, dword [esp + 0x60]
xor ebx, ebx
or ebx, eax
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
shrd eax, ecx, 1
mov edi, edx
shr ecx, 1
shl edi, 0x1f
or edi, ecx
xor ebp, edi
mov edi, dword [esp + 0x60]
xor edx, edx
mov ecx, dword [edi]
or edx, eax
mov eax, dword [edi + 4]
shrd ecx, eax, 7
xor ebx, edx
mov edx, dword [esp + 0x38]
shr eax, 7
xor ebx, ecx
mov ecx, dword [esp + 0x5c]
xor ebp, eax
add ecx, ebx
adc edx, ebp
mov eax, dword [esp + 0x58]
add eax, 0xfffffffb
and eax, 0xf
add ecx, dword [esp + eax*8 + 0x88]
adc edx, dword [esp + eax*8 + 0x8c]
mov eax, dword [esp + 0x64]
add dword [eax], ecx
mov ecx, dword [esp + 0x14]
mov ebp, ecx
adc dword [eax + 4], edx
mov eax, dword [esp + 0x24]
shld ecx, eax, 0x17
shl eax, 0x17
xor ebx, ebx
or ebx, ecx
mov ecx, dword [esp + 0x14]
shr ebp, 9
or ebp, eax
mov eax, dword [esp + 0x24]
mov edi, eax
shrd eax, ecx, 0x12
shl edi, 0xe
xor edx, edx
or edx, eax
mov eax, dword [esp + 0x24]
shr ecx, 0x12
or edi, ecx
mov ecx, dword [esp + 0x14]
xor ebx, edi
xor ebp, edx
mov edi, eax
shrd eax, ecx, 0xe
shl edi, 0x12
xor edx, edx
or edx, eax
mov eax, dword [esp + 0x20]
and eax, dword [esp + 0x14]
shr ecx, 0xe
or edi, ecx
mov ecx, dword [esp + 0x28]
and ecx, dword [esp + 0x24]
xor ebx, edi
mov edi, dword [esp + 0x24]
xor ebp, edx
mov edx, dword [esp + 0x14]
not edi
and edi, dword [esp + 0x50]
not edx
and edx, dword [esp + 0x18]
xor edi, ecx
xor edx, eax
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x3c]
add ebp, edi
adc ebx, edx
add ebp, dword [eax + 0x10]
adc ebx, dword [eax + 0x14]
mov eax, dword [esp + 0x64]
add ebp, dword [eax]
adc ebx, dword [eax + 4]
add ebp, dword [esp + 0x34]
mov eax, dword [esp + 0x10]
adc ebx, dword [esp + 0x1c]
add dword [esp + 0x2c], ebp
mov edx, eax
adc dword [esp + 0x48], ebx
shrd eax, ecx, 0x1c
xor edi, edi
shl edx, 4
shr ecx, 0x1c
or edi, eax
mov eax, dword [esp + 0x10]
or edx, ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x34], edi
mov edi, ecx
mov dword [esp + 0x1c], edx
shr edi, 2
xor edx, edx
shld ecx, eax, 0x1e
or edx, ecx
xor dword [esp + 0x1c], edx
mov ecx, dword [esp + 0x3c]
shl eax, 0x1e
or edi, eax
xor dword [esp + 0x34], edi
mov eax, dword [esp + 0x10]
mov edi, ecx
shld ecx, eax, 0x19
shl eax, 0x19
shr edi, 7
or edi, eax
xor dword [esp + 0x34], edi
mov edi, dword [esp + 0x40]
xor edi, dword [esp + 0x10]
xor edx, edx
and edi, dword [esp + 0x30]
or edx, ecx
xor dword [esp + 0x1c], edx
mov ecx, dword [esp + 0x40]
and ecx, dword [esp + 0x10]
mov edx, esi
xor edx, dword [esp + 0x3c]
xor edi, ecx
and edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x34]
mov eax, esi
and eax, dword [esp + 0x3c]
xor edx, eax
mov eax, dword [esp + 0x1c]
add ecx, edi
adc eax, edx
add ecx, ebp
adc eax, ebx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x58]
add eax, 4
and eax, 0xf
mov dword [esp + 0x34], ecx
lea ecx, [esp + 0x88]
xor edx, edx
lea ecx, [ecx + eax*8]
mov eax, dword [esp + 0x44]
mov dword [esp + 0x38], ecx
mov ebx, dword [eax + 4]
mov ebp, dword [eax]
mov eax, ebp
mov ecx, ebx
shrd eax, ecx, 0x13
or edx, eax
shr ecx, 0x13
mov edi, ebp
shl edi, 0xd
or edi, ecx
mov eax, ebp
mov ecx, ebx
shld ecx, eax, 3
mov dword [esp + 0x44], edi
mov edi, ebx
shl eax, 3
mov dword [esp + 0x5c], edx
shr edi, 0x1d
or edi, eax
mov eax, dword [esp + 0x5c]
shrd ebp, ebx, 6
xor edx, edx
or edx, ecx
mov ecx, dword [esp + 0x44]
xor eax, edi
mov edi, dword [esp + 0x38]
xor ecx, edx
mov edx, dword [edi]
shr ebx, 6
xor eax, ebp
xor ecx, ebx
mov ebp, edx
mov dword [esp + 0x5c], eax
xor ebx, ebx
mov dword [esp + 0x44], ecx
shl ebp, 0x18
mov eax, edx
mov ecx, dword [edi + 4]
shrd eax, ecx, 8
or ebx, eax
shr ecx, 8
or ebp, ecx
mov ecx, dword [esp + 0x38]
mov edi, edx
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
shrd eax, ecx, 1
shr ecx, 1
shl edi, 0x1f
or edi, ecx
xor ebp, edi
mov edi, dword [esp + 0x38]
xor edx, edx
mov ecx, dword [edi]
or edx, eax
mov eax, dword [edi + 4]
shrd ecx, eax, 7
xor ebx, edx
mov edx, dword [esp + 0x44]
xor ebx, ecx
mov ecx, dword [esp + 0x5c]
shr eax, 7
xor ebp, eax
mov eax, dword [esp + 0x58]
add ecx, ebx
adc edx, ebp
add eax, 0xfffffffc
and eax, 0xf
add ecx, dword [esp + eax*8 + 0x88]
adc edx, dword [esp + eax*8 + 0x8c]
mov eax, dword [esp + 0x60]
add dword [eax], ecx
mov ecx, dword [esp + 0x48]
mov ebp, ecx
adc dword [eax + 4], edx
mov eax, dword [esp + 0x2c]
shld ecx, eax, 0x17
shl eax, 0x17
shr ebp, 9
or ebp, eax
mov eax, dword [esp + 0x2c]
xor ebx, ebx
or ebx, ecx
mov ecx, dword [esp + 0x48]
mov edi, eax
shrd eax, ecx, 0x12
shl edi, 0xe
xor edx, edx
or edx, eax
mov eax, dword [esp + 0x2c]
shr ecx, 0x12
or edi, ecx
mov ecx, dword [esp + 0x48]
xor ebx, edi
mov edi, eax
shrd eax, ecx, 0xe
xor ebp, edx
shl edi, 0x12
xor edx, edx
or edx, eax
mov eax, dword [esp + 0x14]
and eax, dword [esp + 0x48]
shr ecx, 0xe
or edi, ecx
mov ecx, dword [esp + 0x24]
and ecx, dword [esp + 0x2c]
xor ebx, edi
mov edi, dword [esp + 0x2c]
xor ebp, edx
mov edx, dword [esp + 0x48]
not edi
and edi, dword [esp + 0x28]
not edx
and edx, dword [esp + 0x20]
xor edi, ecx
xor edx, eax
add ebp, edi
adc ebx, edx
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x1c]
add ebp, dword [eax + 0x18]
adc ebx, dword [eax + 0x1c]
mov eax, dword [esp + 0x60]
add ebp, dword [eax]
adc ebx, dword [eax + 4]
add ebp, dword [esp + 0x50]
mov eax, dword [esp + 0x34]
adc ebx, dword [esp + 0x18]
add dword [esp + 0x30], ebp
mov edx, eax
adc dword [esp + 0x54], ebx
shrd eax, ecx, 0x1c
xor edi, edi
or edi, eax
mov eax, dword [esp + 0x34]
shr ecx, 0x1c
shl edx, 4
or edx, ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x50], edi
mov edi, ecx
shld ecx, eax, 0x1e
shl eax, 0x1e
shr edi, 2
or edi, eax
xor dword [esp + 0x50], edi
mov eax, dword [esp + 0x34]
mov dword [esp + 0x18], edx
xor edx, edx
or edx, ecx
xor dword [esp + 0x18], edx
mov ecx, dword [esp + 0x1c]
mov edi, ecx
shld ecx, eax, 0x19
shl eax, 0x19
shr edi, 7
or edi, eax
xor dword [esp + 0x50], edi
mov eax, dword [esp + 0x3c]
xor edx, edx
or edx, ecx
xor dword [esp + 0x18], edx
mov ecx, dword [esp + 0x10]
mov edi, ecx
xor edi, dword [esp + 0x34]
and ecx, dword [esp + 0x34]
and edi, dword [esp + 0x40]
mov edx, eax
and eax, dword [esp + 0x1c]
xor edx, dword [esp + 0x1c]
xor edi, ecx
mov ecx, dword [esp + 0x50]
and edx, esi
xor edx, eax
mov eax, dword [esp + 0x18]
add ecx, edi
adc eax, edx
add ecx, ebp
adc eax, ebx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x58]
add eax, 5
mov dword [esp + 0x50], ecx
and eax, 0xf
lea ecx, [esp + 0x88]
xor edx, edx
lea ecx, [ecx + eax*8]
mov eax, dword [esp + 0x64]
mov dword [esp + 0x44], ecx
mov ebp, dword [eax]
mov ebx, dword [eax + 4]
mov eax, ebp
mov ecx, ebx
shrd eax, ecx, 0x13
mov edi, ebp
shl edi, 0xd
shr ecx, 0x13
or edx, eax
mov dword [esp + 0x5c], edx
or edi, ecx
mov eax, ebp
mov ecx, ebx
shld ecx, eax, 3
shl eax, 3
mov dword [esp + 0x64], edi
mov edi, ebx
shrd ebp, ebx, 6
shr edi, 0x1d
or edi, eax
mov eax, dword [esp + 0x5c]
xor eax, edi
mov edi, dword [esp + 0x44]
xor eax, ebp
xor edx, edx
or edx, ecx
mov ecx, dword [esp + 0x64]
xor ecx, edx
mov edx, dword [edi]
shr ebx, 6
xor ecx, ebx
mov dword [esp + 0x64], ecx
mov ecx, dword [edi + 4]
mov dword [esp + 0x5c], eax
mov eax, edx
shrd eax, ecx, 8
shr ecx, 8
mov ebp, edx
shl ebp, 0x18
or ebp, ecx
mov ecx, dword [esp + 0x44]
xor ebx, ebx
or ebx, eax
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
shrd eax, ecx, 1
shr ecx, 1
mov edi, edx
shl edi, 0x1f
or edi, ecx
xor ebp, edi
mov edi, dword [esp + 0x44]
xor edx, edx
mov ecx, dword [edi]
or edx, eax
mov eax, dword [edi + 4]
shrd ecx, eax, 7
shr eax, 7
xor ebp, eax
mov eax, dword [esp + 0x5c]
xor ebx, edx
mov edx, dword [esp + 0x84]
xor ebx, ecx
mov ecx, dword [esp + 0x64]
add eax, ebx
adc ecx, ebp
add eax, dword [edx]
adc ecx, dword [edx + 4]
mov edx, dword [esp + 0x38]
add dword [edx], eax
mov eax, dword [esp + 0x30]
adc dword [edx + 4], ecx
mov ecx, dword [esp + 0x54]
mov ebp, ecx
shld ecx, eax, 0x17
shl eax, 0x17
shr ebp, 9
or ebp, eax
mov eax, dword [esp + 0x30]
xor ebx, ebx
or ebx, ecx
mov ecx, dword [esp + 0x54]
mov edi, eax
shrd eax, ecx, 0x12
xor edx, edx
shl edi, 0xe
shr ecx, 0x12
or edx, eax
or edi, ecx
xor ebp, edx
xor ebx, edi
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x54]
mov edi, eax
shrd eax, ecx, 0xe
shl edi, 0x12
xor edx, edx
or edx, eax
mov eax, dword [esp + 0x54]
shr ecx, 0xe
or edi, ecx
mov ecx, dword [esp + 0x30]
xor ebx, edi
xor ebp, edx
mov edx, eax
and eax, dword [esp + 0x48]
mov edi, ecx
and ecx, dword [esp + 0x2c]
not edi
and edi, dword [esp + 0x24]
not edx
and edx, dword [esp + 0x14]
xor edi, ecx
xor edx, eax
mov eax, dword [esp + 0x4c]
add ebp, edi
adc ebx, edx
add ebp, dword [eax + 0x20]
mov ecx, dword [esp + 0x18]
adc ebx, dword [eax + 0x24]
mov eax, dword [esp + 0x38]
add ebp, dword [eax]
adc ebx, dword [eax + 4]
add ebp, dword [esp + 0x28]
mov eax, dword [esp + 0x50]
adc ebx, dword [esp + 0x20]
add dword [esp + 0x40], ebp
mov edx, eax
adc esi, ebx
shrd eax, ecx, 0x1c
xor edi, edi
or edi, eax
mov eax, dword [esp + 0x50]
shl edx, 4
shr ecx, 0x1c
or edx, ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x28], edi
mov edi, ecx
shld ecx, eax, 0x1e
mov dword [esp + 0x20], edx
shr edi, 2
xor edx, edx
or edx, ecx
mov ecx, dword [esp + 0x18]
xor dword [esp + 0x20], edx
shl eax, 0x1e
or edi, eax
xor dword [esp + 0x28], edi
mov eax, dword [esp + 0x50]
mov edi, ecx
shld ecx, eax, 0x19
shr edi, 7
xor edx, edx
or edx, ecx
xor dword [esp + 0x20], edx
mov ecx, dword [esp + 0x34]
shl eax, 0x19
or edi, eax
xor dword [esp + 0x28], edi
mov eax, dword [esp + 0x1c]
mov edi, ecx
xor edi, dword [esp + 0x50]
and ecx, dword [esp + 0x50]
and edi, dword [esp + 0x10]
mov edx, eax
xor edx, dword [esp + 0x18]
and eax, dword [esp + 0x18]
and edx, dword [esp + 0x3c]
xor edi, ecx
mov ecx, dword [esp + 0x28]
xor edx, eax
add ecx, edi
mov eax, dword [esp + 0x20]
adc eax, edx
add ecx, ebp
adc eax, ebx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x28], ecx
add eax, 6
and eax, 0xf
lea ecx, [esp + 0x88]
xor edx, edx
lea ecx, [ecx + eax*8]
mov eax, dword [esp + 0x60]
mov dword [esp + 0x64], ecx
mov ebx, dword [eax + 4]
mov ebp, dword [eax]
mov eax, ebp
mov ecx, ebx
shrd eax, ecx, 0x13
or edx, eax
shr ecx, 0x13
mov edi, ebp
shl edi, 0xd
or edi, ecx
mov eax, ebp
mov ecx, ebx
shld ecx, eax, 3
shl eax, 3
mov dword [esp + 0x60], edi
mov edi, ebx
shrd ebp, ebx, 6
mov dword [esp + 0x5c], edx
shr edi, 0x1d
or edi, eax
mov eax, dword [esp + 0x5c]
xor eax, edi
mov edi, dword [esp + 0x64]
xor eax, ebp
xor edx, edx
or edx, ecx
mov ecx, dword [esp + 0x60]
xor ecx, edx
mov edx, dword [edi]
shr ebx, 6
xor ecx, ebx
mov dword [esp + 0x60], ecx
mov ecx, dword [edi + 4]
mov dword [esp + 0x5c], eax
mov eax, edx
shrd eax, ecx, 8
shr ecx, 8
mov ebp, edx
shl ebp, 0x18
or ebp, ecx
mov ecx, dword [esp + 0x64]
xor ebx, ebx
or ebx, eax
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
shrd eax, ecx, 1
mov edi, edx
shr ecx, 1
shl edi, 0x1f
or edi, ecx
xor ebp, edi
mov edi, dword [esp + 0x64]
xor edx, edx
mov ecx, dword [edi]
or edx, eax
mov eax, dword [edi + 4]
shrd ecx, eax, 7
shr eax, 7
xor ebx, edx
mov edx, dword [esp + 0x78]
xor ebp, eax
mov eax, dword [esp + 0x5c]
xor ebx, ecx
mov ecx, dword [esp + 0x60]
add eax, ebx
adc ecx, ebp
add eax, dword [edx]
mov ebp, esi
adc ecx, dword [edx + 4]
mov edx, dword [esp + 0x44]
add dword [edx], eax
mov eax, dword [esp + 0x40]
adc dword [edx + 4], ecx
xor ebx, ebx
shr ebp, 9
mov ecx, esi
shld ecx, eax, 0x17
or ebx, ecx
shl eax, 0x17
or ebp, eax
mov eax, dword [esp + 0x40]
mov edi, eax
shl edi, 0xe
xor edx, edx
mov ecx, esi
shrd eax, ecx, 0x12
or edx, eax
mov eax, dword [esp + 0x40]
shr ecx, 0x12
or edi, ecx
xor ebx, edi
xor ebp, edx
mov edi, eax
shl edi, 0x12
xor edx, edx
mov ecx, esi
shrd eax, ecx, 0xe
or edx, eax
mov eax, dword [esp + 0x54]
shr ecx, 0xe
or edi, ecx
mov ecx, dword [esp + 0x30]
and ecx, dword [esp + 0x40]
xor ebx, edi
mov edi, dword [esp + 0x40]
xor ebp, edx
and eax, esi
not edi
and edi, dword [esp + 0x2c]
mov edx, esi
xor edi, ecx
not edx
and edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x20]
xor edx, eax
mov eax, dword [esp + 0x4c]
add ebp, edi
adc ebx, edx
add ebp, dword [eax + 0x28]
adc ebx, dword [eax + 0x2c]
mov eax, dword [esp + 0x44]
add ebp, dword [eax]
adc ebx, dword [eax + 4]
add ebp, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
adc ebx, dword [esp + 0x14]
add dword [esp + 0x10], ebp
mov edx, eax
adc dword [esp + 0x3c], ebx
shrd eax, ecx, 0x1c
xor edi, edi
or edi, eax
mov eax, dword [esp + 0x28]
shl edx, 4
shr ecx, 0x1c
or edx, ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x24], edi
mov edi, ecx
shld ecx, eax, 0x1e
mov dword [esp + 0x14], edx
shr edi, 2
shl eax, 0x1e
xor edx, edx
or edi, eax
or edx, ecx
xor dword [esp + 0x24], edi
xor dword [esp + 0x14], edx
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x28]
mov edi, ecx
shld ecx, eax, 0x19
shl eax, 0x19
shr edi, 7
or edi, eax
xor dword [esp + 0x24], edi
mov eax, dword [esp + 0x18]
xor edx, edx
or edx, ecx
xor dword [esp + 0x14], edx
mov ecx, dword [esp + 0x50]
mov edx, eax
and eax, dword [esp + 0x20]
xor edx, dword [esp + 0x20]
mov edi, ecx
and ecx, dword [esp + 0x28]
xor edi, dword [esp + 0x28]
and edx, dword [esp + 0x1c]
and edi, dword [esp + 0x34]
xor edx, eax
mov eax, dword [esp + 0x14]
xor edi, ecx
mov ecx, dword [esp + 0x24]
add ecx, edi
adc eax, edx
add ecx, ebp
adc eax, ebx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x58]
add eax, 7
and eax, 0xf
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + eax*8 + 0x88]
mov eax, dword [esp + eax*8 + 0x8c]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x60], ecx
mov ebx, dword [eax + 4]
mov ebp, dword [eax]
mov ecx, ebx
mov eax, ebp
shrd eax, ecx, 0x13
shr ecx, 0x13
mov edi, ebp
xor edx, edx
or edx, eax
shl edi, 0xd
or edi, ecx
mov ecx, ebx
mov eax, ebp
shld ecx, eax, 3
mov dword [esp + 0x44], edi
mov edi, ebx
shl eax, 3
mov dword [esp + 0x38], edx
shrd ebp, ebx, 6
xor edx, edx
or edx, ecx
mov ecx, dword [esp + 0x44]
shr edi, 0x1d
or edi, eax
mov eax, dword [esp + 0x38]
xor ecx, edx
mov edx, dword [esp + 0x60]
xor eax, edi
xor eax, ebp
shr ebx, 6
xor ecx, ebx
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x38], eax
mov eax, edx
shrd eax, ecx, 8
mov ebp, edx
xor ebx, ebx
shl ebp, 0x18
shr ecx, 8
or ebx, eax
or ebp, ecx
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x5c]
shrd eax, ecx, 1
shr ecx, 1
mov edi, edx
xor edx, edx
or edx, eax
mov eax, dword [esp + 0x5c]
shl edi, 0x1f
or edi, ecx
mov ecx, dword [esp + 0x60]
shrd ecx, eax, 7
xor ebx, edx
mov edx, dword [esp + 0x68]
xor ebx, ecx
mov ecx, dword [esp + 0x44]
xor ebp, edi
shr eax, 7
xor ebp, eax
mov eax, dword [esp + 0x38]
add eax, ebx
adc ecx, ebp
add eax, dword [edx]
adc ecx, dword [edx + 4]
mov edx, dword [esp + 0x64]
add dword [edx], eax
mov eax, dword [esp + 0x10]
adc dword [edx + 4], ecx
mov ecx, dword [esp + 0x3c]
mov ebp, ecx
shld ecx, eax, 0x17
shl eax, 0x17
xor ebx, ebx
or ebx, ecx
mov ecx, dword [esp + 0x3c]
shr ebp, 9
or ebp, eax
mov eax, dword [esp + 0x10]
mov edi, eax
shrd eax, ecx, 0x12
shl edi, 0xe
xor edx, edx
or edx, eax
mov eax, dword [esp + 0x10]
shr ecx, 0x12
or edi, ecx
mov ecx, dword [esp + 0x3c]
xor ebx, edi
xor ebp, edx
mov edi, eax
shrd eax, ecx, 0xe
shl edi, 0x12
xor edx, edx
or edx, eax
shr ecx, 0xe
or edi, ecx
mov ecx, dword [esp + 0x40]
and ecx, dword [esp + 0x10]
xor ebx, edi
mov edi, dword [esp + 0x10]
xor ebp, edx
mov edx, dword [esp + 0x3c]
not edi
and edi, dword [esp + 0x30]
not edx
and edx, dword [esp + 0x54]
mov eax, esi
and eax, dword [esp + 0x3c]
xor edi, ecx
xor edx, eax
mov eax, dword [esp + 0x4c]
add ebp, edi
adc ebx, edx
add ebp, dword [eax + 0x30]
adc ebx, dword [eax + 0x34]
mov eax, dword [esp + 0x64]
add ebp, dword [eax]
adc ebx, dword [eax + 4]
add ebp, dword [esp + 0x2c]
adc ebx, dword [esp + 0x48]
add dword [esp + 0x34], ebp
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
adc dword [esp + 0x1c], ebx
mov edx, eax
shrd eax, ecx, 0x1c
xor edi, edi
or edi, eax
mov eax, dword [esp + 0x24]
shl edx, 4
shr ecx, 0x1c
or edx, ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x2c], edi
mov edi, ecx
shld ecx, eax, 0x1e
mov dword [esp + 0x48], edx
xor edx, edx
or edx, ecx
xor dword [esp + 0x48], edx
mov ecx, dword [esp + 0x14]
shr edi, 2
shl eax, 0x1e
or edi, eax
xor dword [esp + 0x2c], edi
mov eax, dword [esp + 0x24]
mov edi, ecx
shld ecx, eax, 0x19
xor edx, edx
or edx, ecx
xor dword [esp + 0x48], edx
mov ecx, dword [esp + 0x28]
shr edi, 7
shl eax, 0x19
or edi, eax
xor dword [esp + 0x2c], edi
mov eax, dword [esp + 0x20]
mov edx, eax
xor edx, dword [esp + 0x14]
and eax, dword [esp + 0x14]
and edx, dword [esp + 0x18]
mov edi, ecx
xor edi, dword [esp + 0x24]
and ecx, dword [esp + 0x24]
and edi, dword [esp + 0x50]
xor edx, eax
mov eax, dword [esp + 0x2c]
xor edi, ecx
mov ecx, dword [esp + 0x48]
add eax, edi
adc ecx, edx
mov edx, dword [esp + 0x58]
add eax, ebp
adc ecx, ebx
add dword [esp + 0x4c], 0x40
add edx, 8
mov dword [esp + 0x2c], eax
lea eax, [edx - 1]
mov dword [esp + 0x48], ecx
mov dword [esp + 0x58], edx
cmp eax, 0x50
jl 0x404f41
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x78], esi
mov esi, dword [esp + 0x80]
add dword [esi], eax
mov eax, dword [esp + 0x24]
adc dword [esi + 4], ecx
add dword [esi + 8], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x118]
adc dword [esi + 0xc], eax
mov eax, dword [esp + 0x28]
add dword [esi + 0x10], eax
mov eax, dword [esp + 0x20]
adc dword [esi + 0x14], eax
mov eax, dword [esp + 0x50]
add dword [esi + 0x18], eax
mov eax, dword [esp + 0x18]
adc dword [esi + 0x1c], eax
mov eax, dword [esp + 0x34]
add dword [esi + 0x20], eax
mov eax, dword [esp + 0x1c]
adc dword [esi + 0x24], eax
mov eax, dword [esp + 0x10]
add dword [esi + 0x28], eax
mov eax, dword [esp + 0x3c]
adc dword [esi + 0x2c], eax
mov eax, dword [esp + 0x40]
add dword [esi + 0x30], eax
mov eax, dword [esp + 0x78]
adc dword [esi + 0x34], eax
mov eax, dword [esp + 0x30]
add dword [esi + 0x38], eax
mov eax, dword [esp + 0x54]
adc dword [esi + 0x3c], eax
sub dword [esp + 0x6c], 0xffffff80
test ecx, ecx
jne 0x403754
pop edi
pop ebp
pop ebx
mov ecx, dword [esp + 0xfc]
pop esi
xor ecx, esp
call fcn.00424ad5
add esp, 0xfc
ret