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

Disassembly:
mov eax, 0x13c
call fcn.00476ea0
mov eax, dword [0x548280]
xor eax, esp
mov dword [esp + 0x138], eax
mov ecx, dword [esp + 0x148]
push ebx
mov ebx, dword [esp + 0x144]
mov dword [esp + 0x84], ebx
test ecx, ecx
je 0x4c4a25
mov edx, dword [esp + 0x148]
push ebp
add edx, 2
push esi
mov dword [esp + 0x68], edx
push edi
jmp 0x4c18b0
mov eax, dword [ebx]
dec ecx
mov dword [esp + 0xac], eax
mov dword [esp + 0x14], eax
mov eax, dword [ebx + 8]
mov dword [esp + 0xb4], eax
mov dword [esp + 0x44], eax
mov eax, dword [ebx + 0x10]
mov dword [esp + 0xa8], eax
mov dword [esp + 0x60], eax
mov eax, dword [ebx + 0x28]
mov dword [esp + 0x84], eax
mov eax, dword [ebx + 0x2c]
mov dword [esp + 0x80], eax
mov eax, dword [ebx + 0x30]
mov dword [esp + 0x8c], eax
mov eax, dword [ebx + 0x34]
mov dword [esp + 0x88], eax
movzx eax, byte [edx - 2]
cdq
mov dword [esp + 0x158], ecx
mov ebp, eax
mov ecx, dword [ebx + 4]
mov eax, dword [esp + 0x6c]
mov dword [esp + 0xbc], ecx
mov dword [esp + 0x1c], ecx
mov ecx, dword [ebx + 0xc]
movzx eax, byte [eax - 1]
mov dword [esp + 0xa4], ecx
mov dword [esp + 0x34], ecx
mov ecx, dword [ebx + 0x14]
mov dword [esp + 0xb0], ecx
mov dword [esp + 0x54], ecx
mov ecx, edx
shld ecx, ebp, 8
cdq
shl ebp, 8
or ecx, edx
or ebp, eax
mov esi, dword [ebx + 0x20]
mov eax, dword [esp + 0x6c]
shld ecx, ebp, 8
mov edi, dword [ebx + 0x24]
shl ebp, 8
movzx eax, byte [eax]
cdq
or ebp, eax
mov dword [esp + 0x7c], esi
mov eax, dword [esp + 0x6c]
or ecx, edx
shld ecx, ebp, 8
mov dword [esp + 0x78], edi
shl ebp, 8
movzx eax, byte [eax + 1]
cdq
or ebp, eax
or ecx, edx
mov eax, dword [esp + 0x6c]
shld ecx, ebp, 8
shl ebp, 8
movzx eax, byte [eax + 2]
cdq
or ebp, eax
or ecx, edx
mov eax, dword [esp + 0x6c]
shld ecx, ebp, 8
shl ebp, 8
movzx eax, byte [eax + 3]
cdq
or ebp, eax
or ecx, edx
mov eax, dword [esp + 0x6c]
shld ecx, ebp, 8
shl ebp, 8
movzx eax, byte [eax + 4]
cdq
or ebp, eax
or ecx, edx
mov eax, dword [esp + 0x6c]
shld ecx, ebp, 8
shl ebp, 8
movzx eax, byte [eax + 5]
cdq
or ebp, eax
or ecx, edx
mov eax, dword [ebx + 0x38]
xor edx, edx
mov dword [esp + 0x94], eax
mov eax, dword [ebx + 0x3c]
mov ebx, edi
mov dword [esp + 0x9c], eax
xor edi, edi
mov dword [esp + 0x64], ecx
mov eax, esi
mov dword [esp + 0xcc], ecx
mov ecx, dword [esp + 0x78]
shld ecx, eax, 0x17
shr ebx, 9
shl eax, 0x17
or edi, ecx
mov ecx, dword [esp + 0x78]
or ebx, eax
mov eax, dword [esp + 0x7c]
shrd eax, ecx, 0x12
shl esi, 0xe
or edx, eax
shr ecx, 0x12
mov eax, dword [esp + 0x7c]
or esi, ecx
mov ecx, dword [esp + 0x78]
xor edi, esi
mov esi, eax
mov dword [esp + 0xc8], ebp
shrd eax, ecx, 0xe
xor ebx, edx
shl esi, 0x12
xor edx, edx
shr ecx, 0xe
or edx, eax
or esi, ecx
mov ecx, dword [esp + 0x84]
xor edi, esi
and ecx, dword [esp + 0x7c]
xor ebx, edx
mov esi, dword [esp + 0x7c]
mov edx, dword [esp + 0x78]
not esi
and esi, dword [esp + 0x8c]
not edx
and edx, dword [esp + 0x88]
xor esi, ecx
mov eax, dword [esp + 0x80]
and eax, dword [esp + 0x78]
xor edx, eax
mov eax, dword [esp + 0x90]
add ebx, esi
mov esi, dword [esp + 0x14]
adc edi, edx
add ebx, dword [esp + 0x94]
mov ecx, dword [eax + 0x18]
adc edi, dword [esp + 0x9c]
add ebx, ebp
mov edx, dword [eax + 0x1c]
mov eax, edx
adc edi, dword [esp + 0x64]
add ebx, 0xd728ae22
mov dword [esp + 0xb8], ecx
adc edi, 0x428a2f98
mov dword [esp + 0xc0], edx
add ecx, ebx
mov dword [esp + 0x10], ecx
adc eax, edi
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x44]
xor eax, esi
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x34]
xor eax, dword [esp + 0x1c]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x44]
and eax, esi
mov dword [esp + 0x3c], eax
mov ebp, dword [esp + 0x34]
xor edx, edx
mov ecx, dword [esp + 0x1c]
and ebp, ecx
mov eax, dword [esp + 0x14]
shrd eax, ecx, 0x1c
shl esi, 4
or edx, eax
shr ecx, 0x1c
or esi, ecx
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x18], esi
mov esi, ecx
shld ecx, eax, 0x1e
mov dword [esp + 0x38], edx
xor edx, edx
or edx, ecx
shl eax, 0x1e
xor dword [esp + 0x18], edx
xor edx, edx
mov ecx, dword [esp + 0x1c]
shr esi, 2
or esi, eax
mov dword [esp + 0x70], ebp
xor dword [esp + 0x38], esi
mov esi, ecx
mov eax, dword [esp + 0x14]
shld ecx, eax, 0x19
shr esi, 7
or edx, ecx
shl eax, 0x19
mov ecx, dword [esp + 0x68]
or esi, eax
and ecx, dword [esp + 0x60]
xor dword [esp + 0x38], esi
xor ecx, dword [esp + 0x3c]
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x74]
xor esi, edx
and eax, dword [esp + 0x54]
mov edx, dword [esp + 0x38]
xor eax, ebp
add edx, ecx
adc esi, eax
add edx, ebx
mov ebx, dword [esp + 0x6c]
adc esi, edi
mov dword [esp + 0x38], edx
mov dword [esp + 0x18], esi
movzx eax, byte [ebx + 6]
cdq
mov ebp, eax
mov ecx, edx
movzx eax, byte [ebx + 7]
shld ecx, ebp, 8
cdq
shl ebp, 8
or ecx, edx
or ebp, eax
movzx eax, byte [ebx + 8]
shld ecx, ebp, 8
cdq
shl ebp, 8
or ecx, edx
or ebp, eax
movzx eax, byte [ebx + 9]
shld ecx, ebp, 8
cdq
shl ebp, 8
or ecx, edx
or ebp, eax
movzx eax, byte [ebx + 0xa]
shld ecx, ebp, 8
cdq
shl ebp, 8
or ecx, edx
or ebp, eax
movzx eax, byte [ebx + 0xb]
shld ecx, ebp, 8
shl ebp, 8
cdq
xor edi, edi
or ecx, edx
or ebp, eax
movzx eax, byte [ebx + 0xc]
shld ecx, ebp, 8
cdq
or ecx, edx
shl ebp, 8
or ebp, eax
movzx eax, byte [ebx + 0xd]
shld ecx, ebp, 8
cdq
or ecx, edx
shl ebp, 8
or ebp, eax
mov dword [esp + 0x64], ecx
mov eax, dword [esp + 0x10]
xor edx, edx
mov dword [esp + 0xd4], ecx
mov ecx, dword [esp + 0x48]
mov ebx, ecx
shld ecx, eax, 0x17
shr ebx, 9
or edi, ecx
shl eax, 0x17
mov ecx, dword [esp + 0x48]
or ebx, eax
mov eax, dword [esp + 0x10]
mov esi, eax
shrd eax, ecx, 0x12
shl esi, 0xe
or edx, eax
shr ecx, 0x12
mov eax, dword [esp + 0x10]
or esi, ecx
mov ecx, dword [esp + 0x48]
xor edi, esi
xor ebx, edx
mov dword [esp + 0xd0], ebp
xor edx, edx
mov esi, eax
shrd eax, ecx, 0xe
shl esi, 0x12
or edx, eax
shr ecx, 0xe
mov eax, dword [esp + 0x78]
or esi, ecx
and eax, dword [esp + 0x48]
xor edi, esi
mov esi, dword [esp + 0x10]
xor ebx, edx
mov edx, dword [esp + 0x48]
not esi
and esi, dword [esp + 0x84]
not edx
and edx, dword [esp + 0x80]
mov ecx, dword [esp + 0x7c]
xor edx, eax
and ecx, dword [esp + 0x10]
xor esi, ecx
mov ecx, dword [esp + 0x18]
add ebx, esi
adc edi, edx
add ebx, ebp
mov ebp, dword [esp + 0x38]
mov esi, ebp
adc edi, dword [esp + 0x64]
mov eax, ebp
add ebx, dword [esp + 0x8c]
adc edi, dword [esp + 0x88]
add ebx, 0x23ef65cd
adc edi, 0x71374491
add dword [esp + 0x60], ebx
adc dword [esp + 0x54], edi
xor edx, edx
shrd eax, ecx, 0x1c
shl esi, 4
shr ecx, 0x1c
or edx, eax
mov dword [esp + 0x30], edx
or esi, ecx
mov eax, ebp
mov ecx, dword [esp + 0x18]
xor edx, edx
mov dword [esp + 0x28], esi
mov esi, ecx
shld ecx, eax, 0x1e
shr esi, 2
or edx, ecx
shl eax, 0x1e
xor dword [esp + 0x28], edx
or esi, eax
xor dword [esp + 0x30], esi
mov eax, ebp
mov ecx, dword [esp + 0x18]
xor edx, edx
mov esi, ecx
shld ecx, eax, 0x19
shr esi, 7
or edx, ecx
shl eax, 0x19
mov ecx, dword [esp + 0x68]
or esi, eax
xor dword [esp + 0x30], esi
and ecx, ebp
xor ecx, dword [esp + 0x3c]
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x74]
xor esi, edx
and eax, dword [esp + 0x18]
xor eax, dword [esp + 0x70]
mov edx, dword [esp + 0x30]
add edx, ecx
adc esi, eax
add edx, ebx
mov ebx, dword [esp + 0x6c]
adc esi, edi
mov dword [esp + 0x30], edx
mov dword [esp + 0x28], esi
movzx eax, byte [ebx + 0xe]
cdq
mov ebp, eax
mov ecx, edx
movzx eax, byte [ebx + 0xf]
shld ecx, ebp, 8
cdq
shl ebp, 8
or ecx, edx
or ebp, eax
movzx eax, byte [ebx + 0x10]
shld ecx, ebp, 8
cdq
shl ebp, 8
or ecx, edx
or ebp, eax
movzx eax, byte [ebx + 0x11]
shld ecx, ebp, 8
cdq
shl ebp, 8
or ecx, edx
or ebp, eax
movzx eax, byte [ebx + 0x12]
shld ecx, ebp, 8
cdq
shl ebp, 8
or ecx, edx
or ebp, eax
movzx eax, byte [ebx + 0x13]
shld ecx, ebp, 8
cdq
shl ebp, 8
or ecx, edx
or ebp, eax
movzx eax, byte [ebx + 0x14]
shld ecx, ebp, 8
cdq
shl ebp, 8
or ecx, edx
or ebp, eax
shld ecx, ebp, 8
shl ebp, 8
movzx eax, byte [ebx + 0x15]
xor edi, edi
cdq
or ecx, edx
or ebp, eax
mov eax, dword [esp + 0x60]
xor edx, edx
mov dword [esp + 0x64], ecx
mov dword [esp + 0xdc], ecx
mov ecx, dword [esp + 0x54]
mov ebx, ecx
shld ecx, eax, 0x17
shr ebx, 9
or edi, ecx
shl eax, 0x17
mov ecx, dword [esp + 0x54]
or ebx, eax
mov eax, dword [esp + 0x60]
mov esi, eax
shrd eax, ecx, 0x12
shl esi, 0xe
or edx, eax
shr ecx, 0x12
mov eax, dword [esp + 0x60]
or esi, ecx
mov ecx, dword [esp + 0x54]
xor edi, esi
xor ebx, edx
mov dword [esp + 0xd8], ebp
mov esi, eax
xor edx, edx
shrd eax, ecx, 0xe
shl esi, 0x12
or edx, eax
shr ecx, 0xe
mov eax, dword [esp + 0x48]
or esi, ecx
and eax, dword [esp + 0x54]
xor edi, esi
mov esi, dword [esp + 0x60]
xor ebx, edx
mov edx, dword [esp + 0x54]
not esi
and esi, dword [esp + 0x7c]
not edx
and edx, dword [esp + 0x78]
mov ecx, dword [esp + 0x10]
xor edx, eax
and ecx, dword [esp + 0x60]
xor esi, ecx
mov ecx, dword [esp + 0x28]
add ebx, esi
adc edi, edx
add ebx, ebp
mov ebp, dword [esp + 0x30]
mov esi, ebp
adc edi, dword [esp + 0x64]
mov eax, ebp
add ebx, dword [esp + 0x84]
adc edi, dword [esp + 0x80]
add ebx, 0xec4d3b2f
adc edi, 0xb5c0fbcf
add dword [esp + 0x44], ebx
adc dword [esp + 0x34], edi
xor edx, edx
shrd eax, ecx, 0x1c
shl esi, 4
shr ecx, 0x1c
or edx, eax
or esi, ecx
mov dword [esp + 0x2c], edx
mov ecx, dword [esp + 0x28]
mov eax, ebp
mov dword [esp + 0x3c], esi
xor edx, edx
mov esi, ecx
shld ecx, eax, 0x1e
shr esi, 2
shl eax, 0x1e
or esi, eax
or edx, ecx
xor dword [esp + 0x3c], edx
mov eax, ebp
xor dword [esp + 0x2c], esi
xor edx, edx
mov ecx, dword [esp + 0x28]
mov esi, ecx
shld ecx, eax, 0x19
shr esi, 7
or edx, ecx
shl eax, 0x19
xor dword [esp + 0x3c], edx
or esi, eax
xor dword [esp + 0x2c], esi
mov ecx, ebp
and ecx, dword [esp + 0x14]
mov esi, ebp
mov eax, dword [esp + 0x28]
mov edx, eax
and eax, dword [esp + 0x1c]
xor edx, dword [esp + 0x1c]
and edx, dword [esp + 0x18]
xor esi, dword [esp + 0x14]
xor edx, eax
and esi, dword [esp + 0x38]
mov eax, dword [esp + 0x2c]
xor esi, ecx
mov ecx, dword [esp + 0x3c]
add eax, esi
adc ecx, edx
add eax, ebx
mov ebx, dword [esp + 0x6c]
adc ecx, edi
mov dword [esp + 0x2c], eax
mov dword [esp + 0x3c], ecx
movzx eax, byte [ebx + 0x16]
cdq
mov ebp, eax
mov ecx, edx
movzx eax, byte [ebx + 0x17]
shld ecx, ebp, 8
cdq
shl ebp, 8
or ecx, edx
or ebp, eax
movzx eax, byte [ebx + 0x18]
shld ecx, ebp, 8
cdq
shl ebp, 8
or ecx, edx
or ebp, eax
movzx eax, byte [ebx + 0x19]
shld ecx, ebp, 8
cdq
shl ebp, 8
or ecx, edx
or ebp, eax
movzx eax, byte [ebx + 0x1a]
shld ecx, ebp, 8
cdq
shl ebp, 8
or ecx, edx
or ebp, eax
movzx eax, byte [ebx + 0x1b]
shld ecx, ebp, 8
cdq
shl ebp, 8
or ecx, edx
or ebp, eax
movzx eax, byte [ebx + 0x1c]
shld ecx, ebp, 8
cdq
shl ebp, 8
or ecx, edx
or ebp, eax
movzx eax, byte [ebx + 0x1d]
shld ecx, ebp, 8
cdq
shl ebp, 8
or ebp, eax
or ecx, edx
mov dword [esp + 0x64], ecx
mov eax, dword [esp + 0x44]
xor edi, edi
mov dword [esp + 0xe4], ecx
xor edx, edx
mov ecx, dword [esp + 0x34]
mov ebx, ecx
shld ecx, eax, 0x17
shr ebx, 9
or edi, ecx
shl eax, 0x17
mov ecx, dword [esp + 0x34]
or ebx, eax
mov eax, dword [esp + 0x44]
mov esi, eax
shrd eax, ecx, 0x12
shl esi, 0xe
or edx, eax
shr ecx, 0x12
or esi, ecx
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x34]
xor edi, esi
xor ebx, edx
mov dword [esp + 0xe0], ebp
xor edx, edx
mov esi, eax
shrd eax, ecx, 0xe
shl esi, 0x12
or edx, eax
shr ecx, 0xe
mov eax, dword [esp + 0x54]
or esi, ecx
and eax, dword [esp + 0x34]
xor edi, esi
mov esi, dword [esp + 0x44]
xor ebx, edx
mov edx, dword [esp + 0x34]
not esi
and esi, dword [esp + 0x10]
not edx
and edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x60]
xor edx, eax
and ecx, dword [esp + 0x44]
xor esi, ecx
mov ecx, dword [esp + 0x3c]
add ebx, esi
adc edi, edx
add ebx, ebp
mov ebp, dword [esp + 0x2c]
mov esi, ebp
adc edi, dword [esp + 0x64]
mov eax, ebp
add ebx, dword [esp + 0x7c]
adc edi, dword [esp + 0x78]
add ebx, 0x8189dbbc
adc edi, 0xe9b5dba5
add dword [esp + 0x14], ebx
adc dword [esp + 0x1c], edi
xor edx, edx
shrd eax, ecx, 0x1c
shl esi, 4
shr ecx, 0x1c
or edx, eax
or esi, ecx
mov dword [esp + 0x24], edx
mov ecx, dword [esp + 0x3c]
mov eax, ebp
mov dword [esp + 0x40], esi
xor edx, edx
mov esi, ecx
shld ecx, eax, 0x1e
shr esi, 2
shl eax, 0x1e
or edx, ecx
mov ecx, dword [esp + 0x3c]
or esi, eax
xor dword [esp + 0x24], esi
mov esi, ecx
xor dword [esp + 0x40], edx
shr esi, 7
mov eax, ebp
xor edx, edx
shld ecx, eax, 0x19
or edx, ecx
shl eax, 0x19
xor dword [esp + 0x40], edx
or esi, eax
xor dword [esp + 0x24], esi
mov edx, dword [esp + 0x28]
xor edx, dword [esp + 0x3c]
and edx, dword [esp + 0x18]
mov esi, dword [esp + 0x30]
mov eax, dword [esp + 0x28]
xor esi, ebp
and eax, dword [esp + 0x3c]
and esi, dword [esp + 0x38]
xor edx, eax
mov ecx, dword [esp + 0x30]
and ecx, ebp
mov eax, dword [esp + 0x24]
xor esi, ecx
mov ecx, dword [esp + 0x40]
add eax, esi
adc ecx, edx
add eax, ebx
mov ebx, dword [esp + 0x6c]
adc ecx, edi
mov dword [esp + 0x24], eax
mov dword [esp + 0x40], ecx
movzx eax, byte [ebx + 0x1e]
cdq
mov ebp, eax
mov ecx, edx
movzx eax, byte [ebx + 0x1f]
shld ecx, ebp, 8
cdq
shl ebp, 8
or ecx, edx
or ebp, eax
movzx eax, byte [ebx + 0x20]
shld ecx, ebp, 8
cdq
shl ebp, 8
or ecx, edx
or ebp, eax
movzx eax, byte [ebx + 0x21]
shld ecx, ebp, 8
cdq
shl ebp, 8
or ecx, edx
or ebp, eax
movzx eax, byte [ebx + 0x22]
shld ecx, ebp, 8
cdq
shl ebp, 8
or ecx, edx
or ebp, eax
movzx eax, byte [ebx + 0x23]
shld ecx, ebp, 8
cdq
shl ebp, 8
or ecx, edx
or ebp, eax
movzx eax, byte [ebx + 0x24]
shld ecx, ebp, 8
cdq
shl ebp, 8
or ecx, edx
or ebp, eax
movzx eax, byte [ebx + 0x25]
shld ecx, ebp, 8
cdq
or ecx, edx
shl ebp, 8
mov dword [esp + 0x64], ecx
or ebp, eax
mov dword [esp + 0xec], ecx
mov ecx, dword [esp + 0x1c]
mov ebx, ecx
mov dword [esp + 0xe8], ebp
shr ebx, 9
mov eax, dword [esp + 0x14]
xor edi, edi
shld ecx, eax, 0x17
xor edx, edx
or edi, ecx
shl eax, 0x17
mov ecx, dword [esp + 0x1c]
or ebx, eax
mov eax, dword [esp + 0x14]
mov esi, eax
shrd eax, ecx, 0x12
shl esi, 0xe
or edx, eax
shr ecx, 0x12
or esi, ecx
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
xor edi, esi
xor ebx, edx
mov esi, eax
shrd eax, ecx, 0xe
shl esi, 0x12
xor edx, edx
or edx, eax
shr ecx, 0xe
or esi, ecx
mov eax, dword [esp + 0x34]
and eax, dword [esp + 0x1c]
xor edi, esi
mov esi, dword [esp + 0x14]
xor ebx, edx
mov edx, dword [esp + 0x1c]
not esi
and esi, dword [esp + 0x60]
not edx
and edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x44]
xor edx, eax
and ecx, dword [esp + 0x14]
xor esi, ecx
mov ecx, dword [esp + 0x40]
add ebx, esi
adc edi, edx
add ebx, ebp
mov ebp, dword [esp + 0x24]
mov esi, ebp
adc edi, dword [esp + 0x64]
mov eax, ebp
add ebx, dword [esp + 0x10]
adc edi, dword [esp + 0x48]
add ebx, 0xf348b538
adc edi, 0x3956c25b
add dword [esp + 0x38], ebx
adc dword [esp + 0x18], edi
xor edx, edx
shrd eax, ecx, 0x1c
shl esi, 4
or edx, eax
shr ecx, 0x1c
or esi, ecx
mov dword [esp + 0x48], edx
mov ecx, dword [esp + 0x40]
mov eax, ebp
mov dword [esp + 0x10], esi
xor edx, edx
mov esi, ecx
shld ecx, eax, 0x1e
shr esi, 2
shl eax, 0x1e
or edx, ecx
mov ecx, dword [esp + 0x40]
or esi, eax
xor dword [esp + 0x48], esi
mov eax, ebp
xor dword [esp + 0x10], edx
mov esi, ecx
shld ecx, eax, 0x19
shr esi, 7
xor edx, edx
shl eax, 0x19
or esi, eax
or edx, ecx
xor dword [esp + 0x48], esi
xor dword [esp + 0x10], edx
mov edx, dword [esp + 0x3c]
xor edx, dword [esp + 0x40]
and edx, dword [esp + 0x28]
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x3c]
xor esi, ebp
and eax, dword [esp + 0x40]
and esi, dword [esp + 0x30]
xor edx, eax
mov ecx, dword [esp + 0x2c]
and ecx, ebp
mov eax, dword [esp + 0x48]
xor esi, ecx
mov ecx, dword [esp + 0x10]
add eax, esi
adc ecx, edx
add eax, ebx
mov ebx, dword [esp + 0x6c]
adc ecx, edi
mov dword [esp + 0x48], eax
mov dword [esp + 0x10], ecx
xor edi, edi
movzx eax, byte [ebx + 0x26]
cdq
mov ebp, eax
mov ecx, edx
movzx eax, byte [ebx + 0x27]
shld ecx, ebp, 8
cdq
shl ebp, 8
or ecx, edx
or ebp, eax
movzx eax, byte [ebx + 0x28]
shld ecx, ebp, 8
cdq
shl ebp, 8
or ecx, edx
or ebp, eax
movzx eax, byte [ebx + 0x29]
shld ecx, ebp, 8
cdq
shl ebp, 8
or ecx, edx
or ebp, eax
movzx eax, byte [ebx + 0x2a]
shld ecx, ebp, 8
cdq
shl ebp, 8
or ecx, edx
or ebp, eax
movzx eax, byte [ebx + 0x2b]
shld ecx, ebp, 8
cdq
shl ebp, 8
or ecx, edx
or ebp, eax
movzx eax, byte [ebx + 0x2c]
shld ecx, ebp, 8
cdq
shl ebp, 8
or ecx, edx
or ebp, eax
movzx eax, byte [ebx + 0x2d]
shld ecx, ebp, 8
cdq
or ecx, edx
shl ebp, 8
or ebp, eax
mov dword [esp + 0x64], ecx
mov eax, dword [esp + 0x38]
mov dword [esp + 0xf4], ecx
mov ecx, dword [esp + 0x18]
mov ebx, ecx
shld ecx, eax, 0x17
shr ebx, 9
shl eax, 0x17
mov dword [esp + 0xf0], ebp
or ebx, eax
mov eax, dword [esp + 0x38]
or edi, ecx
mov ecx, dword [esp + 0x18]
mov esi, eax
shrd eax, ecx, 0x12
shl esi, 0xe
xor edx, edx
or edx, eax
shr ecx, 0x12
or esi, ecx
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x18]
xor edi, esi
xor ebx, edx
mov esi, eax
shrd eax, ecx, 0xe
shl esi, 0x12
xor edx, edx
or edx, eax
shr ecx, 0xe
or esi, ecx
mov eax, dword [esp + 0x18]
and eax, dword [esp + 0x1c]
xor edi, esi
mov esi, dword [esp + 0x38]
xor ebx, edx
mov edx, dword [esp + 0x18]
not esi
and esi, dword [esp + 0x44]
not edx
and edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
xor edx, eax
and ecx, dword [esp + 0x14]
xor esi, ecx
mov ecx, dword [esp + 0x10]
add ebx, esi
adc edi, edx
add ebx, ebp
mov ebp, dword [esp + 0x48]
mov esi, ebp
adc edi, dword [esp + 0x64]
mov eax, ebp
add ebx, dword [esp + 0x60]
adc edi, dword [esp + 0x54]
add ebx, 0xb605d019
adc edi, 0x59f111f1
add dword [esp + 0x30], ebx
adc dword [esp + 0x28], edi
xor edx, edx
shrd eax, ecx, 0x1c
shl esi, 4
or edx, eax
shr ecx, 0x1c
or esi, ecx
mov dword [esp + 0x60], edx
mov ecx, dword [esp + 0x10]
mov eax, ebp
mov dword [esp + 0x20], esi
xor edx, edx
mov esi, ecx
shld ecx, eax, 0x1e
shr esi, 2
shl eax, 0x1e
or edx, ecx
mov ecx, dword [esp + 0x10]
or esi, eax
xor dword [esp + 0x60], esi
mov eax, ebp
xor dword [esp + 0x20], edx
mov esi, ecx
shld ecx, eax, 0x19
shr esi, 7
xor edx, edx
shl eax, 0x19
or edx, ecx
xor dword [esp + 0x20], edx
or esi, eax
xor dword [esp + 0x60], esi
mov esi, dword [esp + 0x24]
xor esi, ebp
mov edx, dword [esp + 0x40]
xor edx, dword [esp + 0x10]
and edx, dword [esp + 0x3c]
and esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x40]
and eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
xor edx, eax
and ecx, ebp
mov eax, dword [esp + 0x60]
xor esi, ecx
mov ecx, dword [esp + 0x20]
add eax, esi
adc ecx, edx
add eax, ebx
mov ebx, dword [esp + 0x6c]
adc ecx, edi
mov dword [esp + 0x60], eax
mov dword [esp + 0x20], ecx
xor edi, edi
movzx eax, byte [ebx + 0x2e]
cdq
mov ebp, eax
mov ecx, edx
movzx eax, byte [ebx + 0x2f]
shld ecx, ebp, 8
cdq
shl ebp, 8
or ecx, edx
or ebp, eax
movzx eax, byte [ebx + 0x30]
shld ecx, ebp, 8
cdq
shl ebp, 8
or ecx, edx
or ebp, eax
movzx eax, byte [ebx + 0x31]
shld ecx, ebp, 8
cdq
shl ebp, 8
or ecx, edx
or ebp, eax
movzx eax, byte [ebx + 0x32]
shld ecx, ebp, 8
cdq
shl ebp, 8
or ecx, edx
or ebp, eax
movzx eax, byte [ebx + 0x33]
shld ecx, ebp, 8
cdq
shl ebp, 8
or ecx, edx
or ebp, eax
movzx eax, byte [ebx + 0x34]
shld ecx, ebp, 8
cdq
shl ebp, 8
or ecx, edx
or ebp, eax
movzx eax, byte [ebx + 0x35]
shld ecx, ebp, 8
cdq
or ecx, edx
shl ebp, 8
or ebp, eax
mov dword [esp + 0x64], ecx
mov eax, dword [esp + 0x30]
xor edx, edx
mov dword [esp + 0xfc], ecx
mov ecx, dword [esp + 0x28]
mov ebx, ecx
shld ecx, eax, 0x17
shr ebx, 9
shl eax, 0x17
or edi, ecx
or ebx, eax
mov dword [esp + 0xf8], ebp
mov eax, dword [esp + 0x30]
mov esi, eax
shl esi, 0xe
mov ecx, dword [esp + 0x28]
shrd eax, ecx, 0x12
or edx, eax
shr ecx, 0x12
or esi, ecx
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x28]
xor edi, esi
xor ebx, edx
mov esi, eax
shrd eax, ecx, 0xe
shl esi, 0x12
xor edx, edx
or edx, eax
shr ecx, 0xe
or esi, ecx
mov eax, dword [esp + 0x18]
and eax, dword [esp + 0x28]
xor edi, esi
mov esi, dword [esp + 0x30]
xor ebx, edx
mov edx, dword [esp + 0x28]
not esi
and esi, dword [esp + 0x14]
not edx
and edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x38]
xor edx, eax
and ecx, dword [esp + 0x30]
xor esi, ecx
mov ecx, dword [esp + 0x20]
add ebx, esi
adc edi, edx
add ebx, ebp
mov ebp, dword [esp + 0x60]
mov esi, ebp
adc edi, dword [esp + 0x64]
mov eax, ebp
add ebx, dword [esp + 0x44]
adc edi, dword [esp + 0x34]
add ebx, 0xaf194f9b
adc edi, 0x923f82a4
add dword [esp + 0x2c], ebx
adc dword [esp + 0x3c], edi
xor edx, edx
shrd eax, ecx, 0x1c
shl esi, 4
or edx, eax
shr ecx, 0x1c
or esi, ecx
mov dword [esp + 0x54], edx
mov ecx, dword [esp + 0x20]
mov eax, ebp
mov dword [esp + 0x34], esi
xor edx, edx
mov esi, ecx
shld ecx, eax, 0x1e
shr esi, 2
or edx, ecx
shl eax, 0x1e
mov ecx, dword [esp + 0x20]
or esi, eax
xor dword [esp + 0x54], esi
mov eax, ebp
xor dword [esp + 0x34], edx
mov esi, ecx
shld ecx, eax, 0x19
shr esi, 7
xor edx, edx
shl eax, 0x19
or edx, ecx
xor dword [esp + 0x34], edx
or esi, eax
xor dword [esp + 0x54], esi
mov esi, dword [esp + 0x48]
mov edx, dword [esp + 0x10]
xor esi, ebp
xor edx, dword [esp + 0x20]
and esi, dword [esp + 0x24]
and edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x48]
and ecx, ebp
mov eax, dword [esp + 0x10]
and eax, dword [esp + 0x20]
xor esi, ecx
mov ecx, dword [esp + 0x34]
xor edx, eax
mov eax, dword [esp + 0x54]
add eax, esi
adc ecx, edx
add eax, ebx
mov ebx, dword [esp + 0x6c]
adc ecx, edi
mov dword [esp + 0x54], eax
mov dword [esp + 0x34], ecx
xor edi, edi
movzx eax, byte [ebx + 0x36]
cdq
mov ebp, eax
mov ecx, edx
movzx eax, byte [ebx + 0x37]
shld ecx, ebp, 8
cdq
or ecx, edx
shl ebp, 8
or ebp, eax
movzx eax, byte [ebx + 0x38]
shld ecx, ebp, 8
cdq
or ecx, edx
shl ebp, 8
or ebp, eax
movzx eax, byte [ebx + 0x39]
shld ecx, ebp, 8
cdq
or ecx, edx
shl ebp, 8
or ebp, eax
movzx eax, byte [ebx + 0x3a]
shld ecx, ebp, 8
cdq
or ecx, edx
shl ebp, 8
or ebp, eax
movzx eax, byte [ebx + 0x3b]
shld ecx, ebp, 8
cdq
or ecx, edx
shl ebp, 8
or ebp, eax
movzx eax, byte [ebx + 0x3c]
shld ecx, ebp, 8
cdq
or ecx, edx
shl ebp, 8
or ebp, eax
movzx eax, byte [ebx + 0x3d]
shld ecx, ebp, 8
cdq
or ecx, edx
shl ebp, 8
or ebp, eax
mov dword [esp + 0x64], ecx
mov eax, dword [esp + 0x2c]
xor edx, edx
mov dword [esp + 0x104], ecx
mov ecx, dword [esp + 0x3c]
mov ebx, ecx
shld ecx, eax, 0x17
shr ebx, 9
shl eax, 0x17
or edi, ecx
mov ecx, dword [esp + 0x3c]
or ebx, eax
mov eax, dword [esp + 0x2c]
mov esi, eax
shrd eax, ecx, 0x12
shl esi, 0xe
shr ecx, 0x12
or edx, eax
mov dword [esp + 0x100], ebp
or esi, ecx
mov eax, dword [esp + 0x2c]
xor edi, esi
mov ecx, dword [esp + 0x3c]
xor ebx, edx
xor edx, edx
mov esi, eax
shrd eax, ecx, 0xe
shl esi, 0x12
or edx, eax
shr ecx, 0xe
or esi, ecx
mov eax, dword [esp + 0x28]
and eax, dword [esp + 0x3c]
xor edi, esi
mov esi, dword [esp + 0x2c]
xor ebx, edx
mov edx, dword [esp + 0x3c]
not esi
and esi, dword [esp + 0x38]
not edx
and edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x30]
xor edx, eax
and ecx, dword [esp + 0x2c]
xor esi, ecx
mov ecx, dword [esp + 0x34]
add ebx, esi
adc edi, edx
add ebx, ebp
mov ebp, dword [esp + 0x54]
mov esi, ebp
adc edi, dword [esp + 0x64]
mov eax, ebp
add ebx, dword [esp + 0x14]
adc edi, dword [esp + 0x1c]
add ebx, 0xda6d8118
adc edi, 0xab1c5ed5
add dword [esp + 0x24], ebx
adc dword [esp + 0x40], edi
xor edx, edx
shrd eax, ecx, 0x1c
shl esi, 4
or edx, eax
shr ecx, 0x1c
or esi, ecx
mov dword [esp + 0x1c], edx
mov ecx, dword [esp + 0x34]
xor edx, edx
mov dword [esp + 0x14], esi
mov eax, ebp
mov esi, ecx
shld ecx, eax, 0x1e
shr esi, 2
or edx, ecx
shl eax, 0x1e
xor dword [esp + 0x14], edx
or esi, eax
xor dword [esp + 0x1c], esi
mov eax, ebp
mov ecx, dword [esp + 0x34]
xor edx, edx
mov esi, ecx
shld ecx, eax, 0x19
shr esi, 7
shl eax, 0x19
or edx, ecx
xor dword [esp + 0x14], edx
or esi, eax
xor dword [esp + 0x1c], esi
mov esi, dword [esp + 0x60]
mov edx, dword [esp + 0x20]
xor esi, ebp
xor edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x60]
and esi, dword [esp + 0x48]
and ecx, ebp
mov eax, dword [esp + 0x20]
xor esi, ecx
and edx, dword [esp + 0x10]
and eax, dword [esp + 0x34]
xor edx, eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
add eax, esi
adc ecx, edx
add eax, ebx
mov ebx, dword [esp + 0x6c]
adc ecx, edi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], ecx
xor edi, edi
movzx eax, byte [ebx + 0x3e]
cdq
mov ebp, eax
mov ecx, edx
movzx eax, byte [ebx + 0x3f]
shld ecx, ebp, 8
cdq
or ecx, edx
shl ebp, 8
or ebp, eax
movzx eax, byte [ebx + 0x40]
shld ecx, ebp, 8
cdq
or ecx, edx
shl ebp, 8
or ebp, eax
movzx eax, byte [ebx + 0x41]
shld ecx, ebp, 8
cdq
or ecx, edx
shl ebp, 8
or ebp, eax
movzx eax, byte [ebx + 0x42]
shld ecx, ebp, 8
cdq
or ecx, edx
shl ebp, 8
or ebp, eax
movzx eax, byte [ebx + 0x43]
shld ecx, ebp, 8
cdq
or ecx, edx
shl ebp, 8
or ebp, eax
movzx eax, byte [ebx + 0x44]
shld ecx, ebp, 8
cdq
or ecx, edx
shl ebp, 8
or ebp, eax
movzx eax, byte [ebx + 0x45]
shld ecx, ebp, 8
cdq
or ecx, edx
shl ebp, 8
or ebp, eax
mov dword [esp + 0x64], ecx
mov eax, dword [esp + 0x24]
xor edx, edx
mov dword [esp + 0x10c], ecx
mov ecx, dword [esp + 0x40]
mov ebx, ecx
shld ecx, eax, 0x17
shr ebx, 9
shl eax, 0x17
or edi, ecx
mov ecx, dword [esp + 0x40]
or ebx, eax
mov eax, dword [esp + 0x24]
mov esi, eax
shrd eax, ecx, 0x12
shl esi, 0xe
shr ecx, 0x12
or edx, eax
mov eax, dword [esp + 0x24]
or esi, ecx
xor edi, esi
mov dword [esp + 0x108], ebp
xor ebx, edx
mov esi, eax
xor edx, edx
mov ecx, dword [esp + 0x40]
shrd eax, ecx, 0xe
shl esi, 0x12
or edx, eax
shr ecx, 0xe
or esi, ecx
mov eax, dword [esp + 0x3c]
and eax, dword [esp + 0x40]
xor edi, esi
mov esi, dword [esp + 0x24]
xor ebx, edx
mov edx, dword [esp + 0x40]
not esi
and esi, dword [esp + 0x30]
not edx
and edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
xor edx, eax
and ecx, dword [esp + 0x24]
xor esi, ecx
mov dword [esp + 0x4c], 0
mov ecx, dword [esp + 0x54]
add ebx, esi
mov esi, dword [esp + 0x14]
mov eax, ecx
adc edi, edx
mov edx, dword [esp + 0x1c]
add ebx, ebp
mov ebp, dword [esp + 0x34]
adc edi, dword [esp + 0x64]
add ebx, dword [esp + 0x38]
adc edi, dword [esp + 0x18]
add ebx, 0xa3030242
adc edi, 0xd807aa98
add dword [esp + 0x48], ebx
adc dword [esp + 0x10], edi
xor eax, edx
mov dword [esp + 0x68], eax
and ecx, edx
mov eax, ebp
mov dword [esp + 0x18], ecx
xor eax, esi
mov ecx, esi
mov dword [esp + 0x74], eax
and ebp, esi
mov eax, edx
shr esi, 2
shl eax, 4
mov dword [esp + 0x44], eax
mov eax, edx
shrd eax, ecx, 0x1c
xor edx, edx
mov dword [esp + 0x70], ebp
or dword [esp + 0x4c], eax
mov eax, dword [esp + 0x1c]
shr ecx, 0x1c
or dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x14]
shld ecx, eax, 0x1e
shl eax, 0x1e
or edx, ecx
mov ecx, dword [esp + 0x14]
or esi, eax
xor dword [esp + 0x4c], esi
mov esi, ecx
mov eax, dword [esp + 0x1c]
xor dword [esp + 0x44], edx
xor edx, edx
shld ecx, eax, 0x19
shr esi, 7
shl eax, 0x19
or edx, ecx
mov ecx, dword [esp + 0x68]
or esi, eax
xor dword [esp + 0x4c], esi
mov esi, dword [esp + 0x44]
mov eax, dword [esp + 0x74]
xor esi, edx
and ecx, dword [esp + 0x60]
and eax, dword [esp + 0x20]
xor ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x4c]
xor eax, ebp
add edx, ecx
adc esi, eax
add edx, ebx
mov ebx, dword [esp + 0x6c]
adc esi, edi
mov dword [esp + 0x4c], edx
mov dword [esp + 0x44], esi
movzx eax, byte [ebx + 0x46]
cdq
mov edi, eax
mov ecx, edx
movzx eax, byte [ebx + 0x47]
shld ecx, edi, 8
cdq
or ecx, edx
shl edi, 8
or edi, eax
movzx eax, byte [ebx + 0x48]
shld ecx, edi, 8
cdq
or ecx, edx
shl edi, 8
or edi, eax
movzx eax, byte [ebx + 0x49]
shld ecx, edi, 8
cdq
or ecx, edx
shl edi, 8
or edi, eax
movzx eax, byte [ebx + 0x4a]
shld ecx, edi, 8
cdq
or ecx, edx
shl edi, 8
or edi, eax
movzx eax, byte [ebx + 0x4b]
shld ecx, edi, 8
cdq
or ecx, edx
shl edi, 8
or edi, eax
movzx eax, byte [ebx + 0x4c]
shld ecx, edi, 8
cdq
or ecx, edx
shl edi, 8
or edi, eax
movzx eax, byte [ebx + 0x4d]
shld ecx, edi, 8
cdq
xor ebx, ebx
or ecx, edx
shl edi, 8
or edi, eax
mov dword [esp + 0x64], ecx
mov eax, dword [esp + 0x48]
xor edx, edx
mov dword [esp + 0x114], ecx
mov ecx, dword [esp + 0x10]
mov ebp, ecx
shld ecx, eax, 0x17
shr ebp, 9
shl eax, 0x17
or ebx, ecx
mov ecx, dword [esp + 0x10]
or ebp, eax
mov eax, dword [esp + 0x48]
mov esi, eax
shrd eax, ecx, 0x12
shl esi, 0xe
shr ecx, 0x12
or edx, eax
mov eax, dword [esp + 0x48]
or esi, ecx
xor ebx, esi
mov dword [esp + 0x110], edi
xor ebp, edx
mov esi, eax
xor edx, edx
mov ecx, dword [esp + 0x10]
shrd eax, ecx, 0xe
shl esi, 0x12
or edx, eax
shr ecx, 0xe
or esi, ecx
mov eax, dword [esp + 0x40]
and eax, dword [esp + 0x10]
xor ebx, esi
mov esi, dword [esp + 0x48]
xor ebp, edx
mov edx, dword [esp + 0x10]
not esi
and esi, dword [esp + 0x2c]
not edx
and edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x24]
xor edx, eax
and ecx, dword [esp + 0x48]
xor esi, ecx
mov eax, dword [esp + 0x4c]
add ebp, esi
mov ecx, eax
adc ebx, edx
mov edx, dword [esp + 0x44]
add ebp, edi
adc ebx, dword [esp + 0x64]
add ebp, dword [esp + 0x30]
adc ebx, dword [esp + 0x28]
add ebp, 0x45706fbe
adc ebx, 0x12835b01
add dword [esp + 0x60], ebp
adc dword [esp + 0x20], ebx
xor esi, esi
shrd eax, edx, 0x1c
shl ecx, 4
or esi, eax
shr edx, 0x1c
mov eax, dword [esp + 0x4c]
or ecx, edx
mov edx, dword [esp + 0x44]
mov edi, edx
shld edx, eax, 0x1e
mov dword [esp + 0x5c], esi
xor esi, esi
shl eax, 0x1e
or esi, edx
mov edx, dword [esp + 0x44]
xor ecx, esi
shr edi, 2
xor esi, esi
or edi, eax
mov eax, dword [esp + 0x4c]
xor dword [esp + 0x5c], edi
mov edi, edx
shld edx, eax, 0x19
shr edi, 7
shl eax, 0x19
or esi, edx
mov edx, dword [esp + 0x68]
or edi, eax
xor dword [esp + 0x5c], edi
xor ecx, esi
and edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x74]
and eax, dword [esp + 0x44]
xor eax, dword [esp + 0x70]
xor edx, dword [esp + 0x18]
mov esi, dword [esp + 0x5c]
add esi, edx
adc ecx, eax
add esi, ebp
mov dword [esp + 0x5c], esi
mov esi, dword [esp + 0x6c]
adc ecx, ebx
movzx eax, byte [esi + 0x4e]
cdq
mov ebx, eax
mov ebp, edx
shld ebp, ebx, 8
shl ebx, 8
movzx eax, byte [esi + 0x4f]
cdq
or ebx, eax
or ebp, edx
movzx eax, byte [esi + 0x50]
shld ebp, ebx, 8
cdq
or ebp, edx
shl ebx, 8
or ebx, eax
movzx eax, byte [esi + 0x51]
shld ebp, ebx, 8
cdq
or ebp, edx
shl ebx, 8
or ebx, eax
movzx eax, byte [esi + 0x52]
shld ebp, ebx, 8
cdq
or ebp, edx
shl ebx, 8
or ebx, eax
movzx eax, byte [esi + 0x53]
shld ebp, ebx, 8
cdq
or ebp, edx
shl ebx, 8
or ebx, eax
movzx eax, byte [esi + 0x54]
shld ebp, ebx, 8
cdq
or ebp, edx
shl ebx, 8
or ebx, eax
movzx eax, byte [esi + 0x55]
shld ebp, ebx, 8
cdq
xor esi, esi
or ebp, edx
shl ebx, 8
mov edx, dword [esp + 0x20]
or ebx, eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x70], ebp
mov dword [esp + 0x11c], ebp
mov ebp, edx
shld edx, eax, 0x17
mov dword [esp + 0x64], ebx
shl eax, 0x17
mov dword [esp + 0x118], ebx
xor ebx, ebx
or ebx, edx
shr ebp, 9
mov edx, dword [esp + 0x20]
or ebp, eax
mov eax, dword [esp + 0x60]
mov edi, eax
shrd eax, edx, 0x12
shl edi, 0xe
shr edx, 0x12
or esi, eax
mov eax, dword [esp + 0x60]
or edi, edx
mov edx, dword [esp + 0x20]
xor ebx, edi
xor ebp, esi
mov edi, eax
shrd eax, edx, 0xe
shl edi, 0x12
xor esi, esi
shr edx, 0xe
or esi, eax
or edi, edx
xor ebp, esi
mov esi, dword [esp + 0x20]
xor ebx, edi
mov edi, dword [esp + 0x60]
not esi
not edi
and edi, dword [esp + 0x24]
and esi, dword [esp + 0x40]
mov edx, dword [esp + 0x48]
and edx, dword [esp + 0x60]
mov eax, dword [esp + 0x10]
xor edi, edx
and eax, dword [esp + 0x20]
mov edx, ecx
xor esi, eax
add ebp, edi
mov eax, dword [esp + 0x5c]
adc ebx, esi
add ebp, dword [esp + 0x64]
mov esi, eax
adc ebx, dword [esp + 0x70]
add ebp, dword [esp + 0x2c]
adc ebx, dword [esp + 0x3c]
add ebp, 0x4ee4b28c
adc ebx, 0x243185be
add dword [esp + 0x54], ebp
adc dword [esp + 0x34], ebx
xor edi, edi
shrd eax, edx, 0x1c
shl esi, 4
or edi, eax
shr edx, 0x1c
mov eax, dword [esp + 0x5c]
or esi, edx
mov dword [esp + 0x58], edi
mov edx, ecx
shld edx, eax, 0x1e
mov dword [esp + 0x50], esi
mov edi, ecx
shl eax, 0x1e
xor esi, esi
or esi, edx
shr edi, 2
xor dword [esp + 0x50], esi
or edi, eax
xor dword [esp + 0x58], edi
xor esi, esi
mov eax, dword [esp + 0x5c]
mov edx, ecx
shld edx, eax, 0x19
mov edi, ecx
shl eax, 0x19
or esi, edx
xor dword [esp + 0x50], esi
mov esi, ecx
mov edx, dword [esp + 0x5c]
xor esi, dword [esp + 0x14]
and esi, dword [esp + 0x44]
shr edi, 7
or edi, eax
mov eax, ecx
xor dword [esp + 0x58], edi
mov edi, edx
and eax, dword [esp + 0x14]
xor edi, dword [esp + 0x1c]
xor esi, eax
and edx, dword [esp + 0x1c]
and edi, dword [esp + 0x4c]
mov eax, dword [esp + 0x50]
xor edi, edx
mov edx, dword [esp + 0x58]
add edx, edi
adc eax, esi
mov esi, dword [esp + 0x6c]
add edx, ebp
mov dword [esp + 0x58], edx
adc eax, ebx
mov dword [esp + 0x50], eax
movzx eax, byte [esi + 0x56]
cdq
mov ebx, eax
mov ebp, edx
movzx eax, byte [esi + 0x57]
shld ebp, ebx, 8
cdq
shl ebx, 8
or ebp, edx
or ebx, eax
shld ebp, ebx, 8
movzx eax, byte [esi + 0x58]
shl ebx, 8
cdq
or ebx, eax
or ebp, edx
movzx eax, byte [esi + 0x59]
shld ebp, ebx, 8
cdq
or ebp, edx
shl ebx, 8
or ebx, eax
movzx eax, byte [esi + 0x5a]
shld ebp, ebx, 8
cdq
or ebp, edx
shl ebx, 8
or ebx, eax
movzx eax, byte [esi + 0x5b]
shld ebp, ebx, 8
cdq
or ebp, edx
shl ebx, 8
or ebx, eax
movzx eax, byte [esi + 0x5c]
shld ebp, ebx, 8
cdq
or ebp, edx
shl ebx, 8
or ebx, eax
movzx eax, byte [esi + 0x5d]
shld ebp, ebx, 8
cdq
xor esi, esi
or ebp, edx
shl ebx, 8
mov edx, dword [esp + 0x34]
or ebx, eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x70], ebp
mov dword [esp + 0x124], ebp
mov ebp, edx
shld edx, eax, 0x17
mov dword [esp + 0x64], ebx
shl eax, 0x17
mov dword [esp + 0x120], ebx
xor ebx, ebx
or ebx, edx
shr ebp, 9
mov edx, dword [esp + 0x34]
or ebp, eax
mov eax, dword [esp + 0x54]
mov edi, eax
shrd eax, edx, 0x12
shl edi, 0xe
or esi, eax
shr edx, 0x12
mov eax, dword [esp + 0x54]
or edi, edx
mov edx, dword [esp + 0x34]
xor ebx, edi
mov edi, eax
xor ebp, esi
shrd eax, edx, 0xe
shl edi, 0x12
xor esi, esi
shr edx, 0xe
or esi, eax
mov eax, dword [esp + 0x20]
or edi, edx
mov edx, dword [esp + 0x60]
xor ebx, edi
mov edi, dword [esp + 0x54]
xor ebp, esi
mov esi, dword [esp + 0x34]
not edi
and edi, dword [esp + 0x48]
not esi
and edx, dword [esp + 0x54]
and esi, dword [esp + 0x10]
and eax, dword [esp + 0x34]
xor edi, edx
xor esi, eax
mov edx, dword [esp + 0x50]
add ebp, edi
mov eax, dword [esp + 0x58]
adc ebx, esi
add ebp, dword [esp + 0x64]
mov esi, eax
adc ebx, dword [esp + 0x70]
add ebp, dword [esp + 0x24]
adc ebx, dword [esp + 0x40]
add ebp, 0xd5ffb4e2
adc ebx, 0x550c7dc3
add dword [esp + 0x1c], ebp
adc dword [esp + 0x14], ebx
xor edi, edi
shrd eax, edx, 0x1c
shl esi, 4
or edi, eax
shr edx, 0x1c
mov eax, dword [esp + 0x58]
or esi, edx
mov edx, dword [esp + 0x50]
mov dword [esp + 0x2c], edi
mov edi, edx
shld edx, eax, 0x1e
shr edi, 2
shl eax, 0x1e
or edi, eax
mov dword [esp + 0x24], esi
xor dword [esp + 0x2c], edi
xor esi, esi
mov eax, dword [esp + 0x58]
or esi, edx
xor dword [esp + 0x24], esi
xor esi, esi
mov edx, dword [esp + 0x50]
mov edi, edx
shld edx, eax, 0x19
shr edi, 7
shl eax, 0x19
or esi, edx
xor dword [esp + 0x24], esi
or edi, eax
xor dword [esp + 0x2c], edi
mov esi, ecx
xor esi, dword [esp + 0x50]
mov eax, ecx
and eax, dword [esp + 0x50]
mov edi, dword [esp + 0x5c]
xor edi, dword [esp + 0x58]
and edi, dword [esp + 0x4c]
and esi, dword [esp + 0x44]
mov edx, dword [esp + 0x5c]
xor esi, eax
and edx, dword [esp + 0x58]
mov eax, dword [esp + 0x24]
xor edi, edx
mov edx, dword [esp + 0x2c]
add edx, edi
adc eax, esi
mov esi, dword [esp + 0x6c]
add edx, ebp
mov dword [esp + 0x2c], edx
adc eax, ebx
mov dword [esp + 0x24], eax
movzx eax, byte [esi + 0x5e]
cdq
mov ebx, eax
mov ebp, edx
movzx eax, byte [esi + 0x5f]
shld ebp, ebx, 8
cdq
shl ebx, 8
or ebp, edx
or ebx, eax
movzx eax, byte [esi + 0x60]
shld ebp, ebx, 8
cdq
shl ebx, 8
or ebx, eax
or ebp, edx
movzx eax, byte [esi + 0x61]
shld ebp, ebx, 8
cdq
or ebp, edx
shl ebx, 8
or ebx, eax
movzx eax, byte [esi + 0x62]
shld ebp, ebx, 8
cdq
or ebp, edx
shl ebx, 8
or ebx, eax
movzx eax, byte [esi + 0x63]
shld ebp, ebx, 8
cdq
or ebp, edx
shl ebx, 8
or ebx, eax
movzx eax, byte [esi + 0x64]
shld ebp, ebx, 8
cdq
or ebp, edx
shl ebx, 8
or ebx, eax
movzx eax, byte [esi + 0x65]
shld ebp, ebx, 8
cdq
xor esi, esi
or ebp, edx
shl ebx, 8
mov edx, dword [esp + 0x14]
or ebx, eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x70], ebp
mov dword [esp + 0x12c], ebp
mov ebp, edx
shld edx, eax, 0x17
mov dword [esp + 0x64], ebx
shl eax, 0x17
mov dword [esp + 0x128], ebx
xor ebx, ebx
or ebx, edx
shr ebp, 9
mov edx, dword [esp + 0x14]
or ebp, eax
mov eax, dword [esp + 0x1c]
mov edi, eax
shrd eax, edx, 0x12
shl edi, 0xe
or esi, eax
shr edx, 0x12
mov eax, dword [esp + 0x1c]
or edi, edx
mov edx, dword [esp + 0x14]
xor ebx, edi
xor ebp, esi
mov edi, eax
shrd eax, edx, 0xe
shl edi, 0x12
xor esi, esi
or esi, eax
shr edx, 0xe
mov eax, dword [esp + 0x34]
or edi, edx
mov edx, dword [esp + 0x54]
xor ebx, edi
mov edi, dword [esp + 0x1c]
xor ebp, esi
mov esi, dword [esp + 0x14]
not edi
and edi, dword [esp + 0x60]
not esi
and edx, dword [esp + 0x1c]
and esi, dword [esp + 0x20]
xor edi, edx
and eax, dword [esp + 0x14]
xor esi, eax
add ebp, edi
adc ebx, esi
add ebp, dword [esp + 0x64]
adc ebx, dword [esp + 0x70]
add ebp, dword [esp + 0x48]
mov eax, dword [esp + 0x2c]
mov esi, eax
adc ebx, dword [esp + 0x10]
add ebp, 0xf27b896f
mov edx, dword [esp + 0x24]
adc ebx, 0x72be5d74
add dword [esp + 0x4c], ebp
adc dword [esp + 0x44], ebx
xor edi, edi
shrd eax, edx, 0x1c
shl esi, 4
or edi, eax
shr edx, 0x1c
mov eax, dword [esp + 0x2c]
or esi, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x18], edi
mov edi, edx
shld edx, eax, 0x1e
shr edi, 2
shl eax, 0x1e
or edi, eax
mov dword [esp + 0x30], esi
xor dword [esp + 0x18], edi
xor esi, esi
mov eax, dword [esp + 0x2c]
or esi, edx
xor dword [esp + 0x30], esi
xor esi, esi
mov edx, dword [esp + 0x24]
mov edi, edx
shld edx, eax, 0x19
shr edi, 7
shl eax, 0x19
or esi, edx
xor dword [esp + 0x30], esi
or edi, eax
xor dword [esp + 0x18], edi
mov edx, dword [esp + 0x58]
mov edi, edx
and edx, dword [esp + 0x2c]
xor edi, dword [esp + 0x2c]
mov eax, dword [esp + 0x50]
mov esi, eax
and eax, dword [esp + 0x24]
xor esi, dword [esp + 0x24]
and edi, dword [esp + 0x5c]
and esi, ecx
xor esi, eax
xor edi, edx
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x30]
add edx, edi
adc eax, esi
mov esi, dword [esp + 0x6c]
add edx, ebp
mov dword [esp + 0x18], edx
adc eax, ebx
mov dword [esp + 0x30], eax
movzx eax, byte [esi + 0x66]
cdq
mov ebx, eax
mov ebp, edx
movzx eax, byte [esi + 0x67]
shld ebp, ebx, 8
cdq
shl ebx, 8
or ebp, edx
or ebx, eax
movzx eax, byte [esi + 0x68]
shld ebp, ebx, 8
cdq
shl ebx, 8
or ebp, edx
or ebx, eax
movzx eax, byte [esi + 0x69]
shld ebp, ebx, 8
cdq
shl ebx, 8
or ebx, eax
movzx eax, byte [esi + 0x6a]
or ebp, edx
shld ebp, ebx, 8
cdq
or ebp, edx
shl ebx, 8
or ebx, eax
movzx eax, byte [esi + 0x6b]
shld ebp, ebx, 8
cdq
or ebp, edx
shl ebx, 8
or ebx, eax
movzx eax, byte [esi + 0x6c]
shld ebp, ebx, 8
cdq
or ebp, edx
shl ebx, 8
or ebx, eax
movzx eax, byte [esi + 0x6d]
shld ebp, ebx, 8
cdq
xor esi, esi
or ebp, edx
shl ebx, 8
mov edx, dword [esp + 0x44]
or ebx, eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x70], ebp
mov dword [esp + 0x134], ebp
mov ebp, edx
shld edx, eax, 0x17
mov dword [esp + 0x64], ebx
shl eax, 0x17
mov dword [esp + 0x130], ebx
xor ebx, ebx
or ebx, edx
shr ebp, 9
mov edx, dword [esp + 0x44]
or ebp, eax
mov eax, dword [esp + 0x4c]
mov edi, eax
shrd eax, edx, 0x12
shl edi, 0xe
or esi, eax
shr edx, 0x12
mov eax, dword [esp + 0x4c]
or edi, edx
mov edx, dword [esp + 0x44]
xor ebx, edi
xor ebp, esi
mov edi, eax
shrd eax, edx, 0xe
shl edi, 0x12
xor esi, esi
or esi, eax
shr edx, 0xe
mov eax, dword [esp + 0x44]
or edi, edx
mov edx, dword [esp + 0x4c]
xor ebx, edi
xor ebp, esi
mov edi, edx
and edx, dword [esp + 0x1c]
mov esi, eax
and eax, dword [esp + 0x14]
not edi
and edi, dword [esp + 0x54]
not esi
and esi, dword [esp + 0x34]
xor edi, edx
xor esi, eax
add ebp, edi
adc ebx, esi
add ebp, dword [esp + 0x64]
adc ebx, dword [esp + 0x70]
add ebp, dword [esp + 0x60]
adc ebx, dword [esp + 0x20]
add ebp, 0x3b1696b1
adc ebx, 0x80deb1fe
add dword [esp + 0x5c], ebp
adc ecx, ebx
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x30]
mov esi, eax
shrd eax, edx, 0x1c
xor edi, edi
shl esi, 4
or edi, eax
shr edx, 0x1c
mov eax, dword [esp + 0x18]
or esi, edx
mov edx, dword [esp + 0x30]
mov dword [esp + 0x28], edi
mov edi, edx
shld edx, eax, 0x1e
shr edi, 2
shl eax, 0x1e
or edi, eax
mov dword [esp + 0x38], esi
xor dword [esp + 0x28], edi
xor esi, esi
mov eax, dword [esp + 0x18]
or esi, edx
xor dword [esp + 0x38], esi
xor esi, esi
mov edx, dword [esp + 0x30]
mov edi, edx
shld edx, eax, 0x19
shr edi, 7
shl eax, 0x19
or esi, edx
xor dword [esp + 0x38], esi
or edi, eax
xor dword [esp + 0x28], edi
mov edx, dword [esp + 0x2c]
mov edi, edx
and edx, dword [esp + 0x18]
xor edi, dword [esp + 0x18]
mov eax, dword [esp + 0x24]
mov esi, eax
and eax, dword [esp + 0x30]
xor esi, dword [esp + 0x30]
and edi, dword [esp + 0x58]
and esi, dword [esp + 0x50]
xor edi, edx
mov edx, dword [esp + 0x28]
xor esi, eax
mov eax, dword [esp + 0x38]
add edx, edi
adc eax, esi
mov esi, dword [esp + 0x6c]
add edx, ebp
mov dword [esp + 0x28], edx
adc eax, ebx
mov dword [esp + 0x38], eax
movzx eax, byte [esi + 0x6e]
cdq
mov ebx, eax
mov ebp, edx
movzx eax, byte [esi + 0x6f]
shld ebp, ebx, 8
cdq
shl ebx, 8
or ebp, edx
or ebx, eax
movzx eax, byte [esi + 0x70]
shld ebp, ebx, 8
cdq
shl ebx, 8
or ebp, edx
or ebx, eax
movzx eax, byte [esi + 0x71]
shld ebp, ebx, 8
cdq
shl ebx, 8
or ebp, edx
or ebx, eax
movzx eax, byte [esi + 0x72]
shld ebp, ebx, 8
cdq
shl ebx, 8
or ebx, eax
or ebp, edx
movzx eax, byte [esi + 0x73]
shld ebp, ebx, 8
cdq
or ebp, edx
shl ebx, 8
or ebx, eax
movzx eax, byte [esi + 0x74]
shld ebp, ebx, 8
cdq
or ebp, edx
shl ebx, 8
or ebx, eax
movzx eax, byte [esi + 0x75]
shld ebp, ebx, 8
cdq
xor esi, esi
or ebp, edx
shl ebx, 8
or ebx, eax
mov dword [esp + 0x70], ebp
mov eax, dword [esp + 0x5c]
mov edx, ecx
shld edx, eax, 0x17
mov dword [esp + 0x13c], ebp
mov ebp, ecx
shl eax, 0x17
mov dword [esp + 0x64], ebx
mov dword [esp + 0x138], ebx
xor ebx, ebx
or ebx, edx
shr ebp, 9
or ebp, eax
mov edx, ecx
mov eax, dword [esp + 0x5c]
mov edi, eax
shrd eax, edx, 0x12
shl edi, 0xe
or esi, eax
shr edx, 0x12
mov eax, dword [esp + 0x5c]
or edi, edx
xor ebx, edi
xor ebp, esi
xor esi, esi
mov edi, eax
shl edi, 0x12
mov edx, ecx
shrd eax, edx, 0xe
or esi, eax
shr edx, 0xe
mov eax, dword [esp + 0x44]
or edi, edx
mov edx, dword [esp + 0x4c]
xor ebx, edi
and edx, dword [esp + 0x5c]
xor ebp, esi
mov edi, dword [esp + 0x5c]
and eax, ecx
not edi
mov esi, ecx
and edi, dword [esp + 0x1c]
not esi
and esi, dword [esp + 0x14]
xor edi, edx
xor esi, eax
mov eax, dword [esp + 0x28]
add ebp, edi
adc ebx, esi
add ebp, dword [esp + 0x64]
mov esi, eax
adc ebx, dword [esp + 0x70]
add ebp, dword [esp + 0x54]
adc ebx, dword [esp + 0x34]
add ebp, 0x25c71235
adc ebx, 0x9bdc06a7
add dword [esp + 0x58], ebp
adc dword [esp + 0x50], ebx
xor edi, edi
shl esi, 4
mov edx, dword [esp + 0x38]
shrd eax, edx, 0x1c
or edi, eax
shr edx, 0x1c
mov eax, dword [esp + 0x28]
or esi, edx
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], edi
mov edi, edx
shld edx, eax, 0x1e
shr edi, 2
shl eax, 0x1e
or edi, eax
mov dword [esp + 0x20], esi
xor dword [esp + 0x10], edi
xor esi, esi
mov eax, dword [esp + 0x28]
or esi, edx
xor dword [esp + 0x20], esi
xor esi, esi
mov edx, dword [esp + 0x38]
mov edi, edx
shld edx, eax, 0x19
shr edi, 7
shl eax, 0x19
or esi, edx
xor dword [esp + 0x20], esi
or edi, eax
xor dword [esp + 0x10], edi
mov edx, dword [esp + 0x18]
mov edi, edx
and edx, dword [esp + 0x28]
xor edi, dword [esp + 0x28]
mov eax, dword [esp + 0x30]
mov esi, eax
and eax, dword [esp + 0x38]
xor esi, dword [esp + 0x38]
and edi, dword [esp + 0x2c]
and esi, dword [esp + 0x24]
xor edi, edx
mov edx, dword [esp + 0x10]
xor esi, eax
mov eax, dword [esp + 0x20]
add edx, edi
adc eax, esi
mov esi, dword [esp + 0x6c]
add edx, ebp
mov dword [esp + 0x10], edx
adc eax, ebx
mov dword [esp + 0x20], eax
movzx eax, byte [esi + 0x76]
cdq
mov ebx, eax
mov ebp, edx
movzx eax, byte [esi + 0x77]
shld ebp, ebx, 8
cdq
shl ebx, 8
or ebp, edx
or ebx, eax
movzx eax, byte [esi + 0x78]
shld ebp, ebx, 8
cdq
shl ebx, 8
or ebp, edx
or ebx, eax
movzx eax, byte [esi + 0x79]
shld ebp, ebx, 8
cdq
shl ebx, 8
or ebp, edx
or ebx, eax
movzx eax, byte [esi + 0x7a]
shld ebp, ebx, 8
cdq
shl ebx, 8
or ebp, edx
or ebx, eax
movzx eax, byte [esi + 0x7b]
shld ebp, ebx, 8
shl ebx, 8
cdq
or ebx, eax
or ebp, edx
movzx eax, byte [esi + 0x7c]
shld ebp, ebx, 8
cdq
or ebp, edx
shl ebx, 8
or ebx, eax
movzx eax, byte [esi + 0x7d]
shld ebp, ebx, 8
cdq
xor esi, esi
or ebp, edx
shl ebx, 8
mov edx, dword [esp + 0x50]
or ebx, eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x70], ebp
mov dword [esp + 0x144], ebp
mov ebp, edx
shld edx, eax, 0x17
mov dword [esp + 0x64], ebx
shl eax, 0x17
mov dword [esp + 0x140], ebx
xor ebx, ebx
or ebx, edx
shr ebp, 9
mov edx, dword [esp + 0x50]
or ebp, eax
mov eax, dword [esp + 0x58]
mov edi, eax
shrd eax, edx, 0x12
shl edi, 0xe
or esi, eax
shr edx, 0x12
mov eax, dword [esp + 0x58]
or edi, edx
mov edx, dword [esp + 0x50]
xor ebx, edi
xor ebp, esi
mov edi, eax
shrd eax, edx, 0xe
xor esi, esi
shl edi, 0x12
or esi, eax
shr edx, 0xe
or edi, edx
xor ebp, esi
mov esi, dword [esp + 0x50]
xor ebx, edi
mov edi, dword [esp + 0x58]
not esi
and esi, dword [esp + 0x44]
not edi
and edi, dword [esp + 0x4c]
mov eax, ecx
and eax, dword [esp + 0x50]
mov edx, dword [esp + 0x5c]
xor esi, eax
and edx, dword [esp + 0x58]
mov eax, dword [esp + 0x10]
xor edi, edx
mov edx, dword [esp + 0x20]
add ebp, edi
adc ebx, esi
add ebp, dword [esp + 0x64]
mov esi, eax
adc ebx, dword [esp + 0x70]
add ebp, dword [esp + 0x1c]
adc ebx, dword [esp + 0x14]
add ebp, 0xcf692694
adc ebx, 0xc19bf174
add dword [esp + 0x2c], ebp
adc dword [esp + 0x24], ebx
xor edi, edi
shrd eax, edx, 0x1c
shl esi, 4
shr edx, 0x1c
or edi, eax
mov dword [esp + 0x40], edi
mov eax, dword [esp + 0x10]
or esi, edx
mov edx, dword [esp + 0x20]
mov edi, edx
shld edx, eax, 0x1e
shr edi, 2
shl eax, 0x1e
or edi, eax
mov dword [esp + 0x3c], esi
xor dword [esp + 0x40], edi
xor esi, esi
mov eax, dword [esp + 0x10]
or esi, edx
xor dword [esp + 0x3c], esi
xor esi, esi
mov edx, dword [esp + 0x20]
mov edi, edx
shld edx, eax, 0x19
shr edi, 7
or esi, edx
shl eax, 0x19
xor dword [esp + 0x3c], esi
or edi, eax
xor dword [esp + 0x40], edi
mov edx, dword [esp + 0x28]
mov edi, edx
xor edi, dword [esp + 0x10]
mov eax, dword [esp + 0x38]
mov esi, eax
xor esi, dword [esp + 0x20]
and edx, dword [esp + 0x10]
and edi, dword [esp + 0x18]
and eax, dword [esp + 0x20]
xor edi, edx
and esi, dword [esp + 0x30]
mov edx, dword [esp + 0x40]
xor esi, eax
mov eax, dword [esp + 0x3c]
add edx, edi
mov dword [esp + 0x60], 0x526490
adc eax, esi
add edx, ebp
mov esi, 0x11
mov dword [esp + 0x40], edx
adc eax, ebx
mov dword [esp + 0x54], esi
mov dword [esp + 0x3c], eax
mov eax, esi
lea edx, [esp + 0xc8]
and eax, 0xf
lea edx, [edx + eax*8]
mov dword [esp + 0x48], edx
lea eax, [esi - 3]
and eax, 0xf
lea edx, [esp + 0xc8]
mov ebx, dword [edx + eax*8 + 4]
lea eax, [edx + eax*8]
mov ebp, dword [eax]
mov edi, ebp
mov dword [esp + 0xc4], eax
lea eax, [esi - 1]
mov esi, edx
shl edi, 0xd
and eax, 0xf
mov edx, ebx
lea esi, [esi + eax*8]
mov eax, ebp
shrd eax, edx, 0x13
mov dword [esp + 0x74], esi
xor esi, esi
or esi, eax
shr edx, 0x13
or edi, edx
mov dword [esp + 0x1c], esi
mov edx, ebx
mov dword [esp + 0x14], edi
mov eax, ebp
mov edi, ebx
shld edx, eax, 3
shrd ebp, ebx, 6
shl eax, 3
xor esi, esi
or esi, edx
shr edi, 0x1d
mov edx, dword [esp + 0x14]
or edi, eax
mov eax, dword [esp + 0x1c]
xor edx, esi
xor eax, edi
shr ebx, 6
mov edi, dword [esp + 0x48]
xor edx, ebx
xor eax, ebp
mov dword [esp + 0x14], edx
mov dword [esp + 0x1c], eax
xor ebx, ebx
mov esi, dword [edi]
mov ebp, esi
mov edx, dword [edi + 4]
mov eax, esi
shrd eax, edx, 8
shl ebp, 0x18
mov edi, esi
shr edx, 8
or ebx, eax
or ebp, edx
shl edi, 0x1f
mov edx, dword [esp + 0x48]
xor esi, esi
mov eax, dword [edx]
mov edx, dword [edx + 4]
shrd eax, edx, 1
shr edx, 1
or esi, eax
or edi, edx
xor ebx, esi
xor ebp, edi
mov edi, dword [esp + 0x48]
mov eax, dword [edi + 4]
mov edx, dword [edi]
shrd edx, eax, 7
xor ebx, edx
shr eax, 7
mov edx, dword [esp + 0x1c]
xor ebp, eax
add edx, ebx
mov ebx, dword [esp + 0x14]
adc ebx, ebp
mov eax, dword [esp + 0x54]
add eax, 0xfffffff8
and eax, 0xf
add edx, dword [esp + eax*8 + 0xc8]
adc ebx, dword [esp + eax*8 + 0xcc]
mov eax, dword [esp + 0x74]
add dword [eax], edx
mov edx, dword [esp + 0x24]
mov ebp, edx
adc dword [eax + 4], ebx
xor ebx, ebx
mov eax, dword [esp + 0x2c]
xor esi, esi
shld edx, eax, 0x17
shr ebp, 9
or ebx, edx
shl eax, 0x17
mov edx, dword [esp + 0x24]
or ebp, eax
mov eax, dword [esp + 0x2c]
mov edi, eax
shrd eax, edx, 0x12
shl edi, 0xe
or esi, eax
shr edx, 0x12
mov eax, dword [esp + 0x2c]
or edi, edx
mov edx, dword [esp + 0x24]
xor ebx, edi
xor ebp, esi
mov edi, eax
shrd eax, edx, 0xe
shl edi, 0x12
xor esi, esi
or esi, eax
shr edx, 0xe
mov eax, dword [esp + 0x50]
or edi, edx
and eax, dword [esp + 0x24]
xor ebx, edi
mov edi, dword [esp + 0x2c]
xor ebp, esi
mov esi, dword [esp + 0x24]
not edi
and edi, dword [esp + 0x5c]
not esi
mov edx, dword [esp + 0x58]
and esi, ecx
and edx, dword [esp + 0x2c]
xor esi, eax
mov eax, dword [esp + 0x60]
xor edi, edx
mov edx, dword [esp + 0x20]
add ebp, edi
mov edi, dword [esp + 0x10]
adc ebx, esi
mov esi, dword [esp + 0x74]
add ebp, dword [eax - 8]
adc ebx, dword [eax - 4]
mov eax, edi
add ebp, dword [esi]
adc ebx, dword [esi + 4]
add ebp, dword [esp + 0x4c]
mov esi, dword [esp + 0x3c]
adc ebx, dword [esp + 0x44]
add dword [esp + 0x18], ebp
mov dword [esp + 0x4c], 0
adc dword [esp + 0x30], ebx
xor eax, dword [esp + 0x40]
and edi, dword [esp + 0x40]
mov dword [esp + 0x68], eax
mov eax, edx
xor eax, esi
mov dword [esp + 0x70], edi
and edx, esi
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x40]
mov edi, eax
mov dword [esp + 0x64], edx
mov edx, esi
shl edi, 4
shrd eax, edx, 0x1c
or dword [esp + 0x4c], eax
mov eax, dword [esp + 0x40]
shr edx, 0x1c
or edi, edx
mov edx, dword [esp + 0x3c]
shld edx, eax, 0x1e
mov dword [esp + 0x44], edi
mov edi, esi
shl eax, 0x1e
xor esi, esi
or esi, edx
shr edi, 2
xor dword [esp + 0x44], esi
or edi, eax
xor dword [esp + 0x4c], edi
xor esi, esi
mov edx, dword [esp + 0x3c]
mov edi, edx
mov eax, dword [esp + 0x40]
shld edx, eax, 0x19
shr edi, 7
shl eax, 0x19
or esi, edx
mov edx, dword [esp + 0x68]
or edi, eax
xor dword [esp + 0x4c], edi
and edx, dword [esp + 0x28]
xor edx, dword [esp + 0x70]
mov edi, dword [esp + 0x44]
mov eax, dword [esp + 0x98]
xor edi, esi
and eax, dword [esp + 0x38]
xor eax, dword [esp + 0x64]
mov esi, dword [esp + 0x4c]
add esi, edx
lea edx, [esp + 0xc8]
adc edi, eax
add esi, ebp
mov dword [esp + 0x4c], esi
adc edi, ebx
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x44], edi
xor esi, esi
lea eax, [ebx + 1]
and eax, 0xf
lea edx, [edx + eax*8]
mov dword [esp + 0x1c], edx
lea eax, [ebx - 2]
and eax, 0xf
lea edx, [esp + 0xc8]
mov ebx, dword [edx + eax*8 + 4]
lea eax, [edx + eax*8]
mov ebp, dword [eax]
mov edx, ebx
mov dword [esp + 0xa0], eax
mov edi, ebp
mov eax, ebp
shl edi, 0xd
shrd eax, edx, 0x13
or esi, eax
shr edx, 0x13
or edi, edx
mov dword [esp + 0x14], esi
mov edx, ebx
mov dword [esp + 0x34], edi
mov eax, ebp
mov edi, ebx
shld edx, eax, 3
shr edi, 0x1d
xor esi, esi
shl eax, 3
or esi, edx
mov edx, dword [esp + 0x34]
or edi, eax
mov eax, dword [esp + 0x14]
xor edx, esi
shrd ebp, ebx, 6
xor eax, edi
shr ebx, 6
xor eax, ebp
mov edi, dword [esp + 0x1c]
xor edx, ebx
mov dword [esp + 0x34], edx
xor ebx, ebx
mov dword [esp + 0x14], eax
mov esi, dword [edi]
mov ebp, esi
mov edx, dword [edi + 4]
mov eax, esi
shrd eax, edx, 8
shl ebp, 0x18
mov edi, esi
or ebx, eax
shr edx, 8
or ebp, edx
shl edi, 0x1f
mov edx, dword [esp + 0x1c]
xor esi, esi
mov eax, dword [edx]
mov edx, dword [edx + 4]
shrd eax, edx, 1
shr edx, 1
or esi, eax
or edi, edx
xor ebx, esi
xor ebp, edi
mov edi, dword [esp + 0x1c]
mov eax, dword [edi + 4]
mov edx, dword [edi]
shrd edx, eax, 7
xor ebx, edx
shr eax, 7
mov edx, dword [esp + 0x14]
xor ebp, eax
mov eax, dword [esp + 0x54]
add edx, ebx
mov ebx, dword [esp + 0x34]
adc ebx, ebp
add eax, 0xfffffff9
and eax, 0xf
add edx, dword [esp + eax*8 + 0xc8]
adc ebx, dword [esp + eax*8 + 0xcc]
mov eax, dword [esp + 0x48]
add dword [eax], edx
mov edx, dword [esp + 0x30]
mov ebp, edx
adc dword [eax + 4], ebx
xor ebx, ebx
mov eax, dword [esp + 0x18]
xor esi, esi
shld edx, eax, 0x17
shr ebp, 9
or ebx, edx
shl eax, 0x17
mov edx, dword [esp + 0x30]
or ebp, eax
mov eax, dword [esp + 0x18]
mov edi, eax
shrd eax, edx, 0x12
shl edi, 0xe
shr edx, 0x12
or esi, eax
mov eax, dword [esp + 0x18]
or edi, edx
mov edx, dword [esp + 0x30]
xor ebx, edi
mov edi, eax
xor ebp, esi
shrd eax, edx, 0xe
shl edi, 0x12
xor esi, esi
shr edx, 0xe
or esi, eax
or edi, edx
xor ebp, esi
mov esi, dword [esp + 0x30]
xor ebx, edi
mov edi, dword [esp + 0x18]
not esi
not edi
and edi, dword [esp + 0x58]
and esi, dword [esp + 0x50]
mov edx, dword [esp + 0x2c]
and edx, dword [esp + 0x18]
mov eax, dword [esp + 0x24]
xor edi, edx
and eax, dword [esp + 0x30]
xor esi, eax
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x60]
add ebp, edi
adc ebx, esi
add ebp, dword [eax]
adc ebx, dword [eax + 4]
mov eax, dword [esp + 0x48]
add ebp, dword [eax]
adc ebx, dword [eax + 4]
add ebp, dword [esp + 0x5c]
mov eax, dword [esp + 0x4c]
adc ebx, ecx
add dword [esp + 0x28], ebp
mov ecx, eax
adc dword [esp + 0x38], ebx
xor esi, esi
shrd eax, edx, 0x1c
shl ecx, 4
or esi, eax
shr edx, 0x1c
mov eax, dword [esp + 0x4c]
or ecx, edx
mov edx, dword [esp + 0x44]
mov edi, edx
shld edx, eax, 0x1e
mov dword [esp + 0x5c], esi
xor esi, esi
shl eax, 0x1e
or esi, edx
mov edx, dword [esp + 0x44]
xor ecx, esi
shr edi, 2
xor esi, esi
or edi, eax
mov eax, dword [esp + 0x4c]
xor dword [esp + 0x5c], edi
mov edi, edx
shld edx, eax, 0x19
shr edi, 7
shl eax, 0x19
or esi, edx
mov edx, dword [esp + 0x68]
or edi, eax
and edx, dword [esp + 0x4c]
xor ecx, esi
xor dword [esp + 0x5c], edi
xor edx, dword [esp + 0x70]
mov eax, dword [esp + 0x98]
and eax, dword [esp + 0x44]
xor eax, dword [esp + 0x64]
mov esi, dword [esp + 0x5c]
add esi, edx
lea edx, [esp + 0xc8]
adc ecx, eax
mov eax, dword [esp + 0x54]
add esi, ebp
mov dword [esp + 0x5c], esi
adc ecx, ebx
add eax, 2
and eax, 0xf
xor esi, esi
lea edx, [edx + eax*8]
mov eax, dword [esp + 0x74]
mov dword [esp + 0x14], edx
mov ebp, dword [eax]
mov edi, ebp
mov ebx, dword [eax + 4]
mov eax, ebp
mov edx, ebx
shl edi, 0xd
shrd eax, edx, 0x13
shr edx, 0x13
or esi, eax
mov dword [esp + 0x34], esi
or edi, edx
mov eax, ebp
mov edx, ebx
mov dword [esp + 0x68], edi
shld edx, eax, 3
mov edi, ebx
xor esi, esi
shl eax, 3
or esi, edx
mov edx, dword [esp + 0x68]
shrd ebp, ebx, 6
xor edx, esi
shr edi, 0x1d
or edi, eax
shr ebx, 6
mov eax, dword [esp + 0x34]
xor edx, ebx
xor eax, edi
mov dword [esp + 0x68], edx
mov edi, dword [esp + 0x14]
xor eax, ebp
mov dword [esp + 0x34], eax
xor ebx, ebx
mov esi, dword [edi]
mov ebp, esi
mov edx, dword [edi + 4]
mov eax, esi
shrd eax, edx, 8
shl ebp, 0x18
mov edi, esi
or ebx, eax
shr edx, 8
or ebp, edx
shl edi, 0x1f
mov edx, dword [esp + 0x14]
xor esi, esi
mov eax, dword [edx]
mov edx, dword [edx + 4]
shrd eax, edx, 1
shr edx, 1
or esi, eax
or edi, edx
xor ebx, esi
xor ebp, edi
mov edi, dword [esp + 0x14]
mov eax, dword [edi + 4]
mov edx, dword [edi]
shrd edx, eax, 7
xor ebx, edx
shr eax, 7
mov edx, dword [esp + 0x34]
xor ebp, eax
mov eax, dword [esp + 0x54]
add edx, ebx
mov ebx, dword [esp + 0x68]
adc ebx, ebp
add eax, 0xfffffffa
and eax, 0xf
add edx, dword [esp + eax*8 + 0xc8]
adc ebx, dword [esp + eax*8 + 0xcc]
mov eax, dword [esp + 0x1c]
add dword [eax], edx
mov edx, dword [esp + 0x38]
mov ebp, edx
adc dword [eax + 4], ebx
xor ebx, ebx
mov eax, dword [esp + 0x28]
xor esi, esi
shld edx, eax, 0x17
shr ebp, 9
shl eax, 0x17
or ebx, edx
mov edx, dword [esp + 0x38]
or ebp, eax
mov eax, dword [esp + 0x28]
mov edi, eax
shrd eax, edx, 0x12
shl edi, 0xe
shr edx, 0x12
or esi, eax
or edi, edx
mov eax, dword [esp + 0x28]
xor ebx, edi
mov edx, dword [esp + 0x38]
xor ebp, esi
xor esi, esi
mov edi, eax
shrd eax, edx, 0xe
shl edi, 0x12
or esi, eax
shr edx, 0xe
or edi, edx
mov eax, dword [esp + 0x30]
and eax, dword [esp + 0x38]
xor ebx, edi
mov edi, dword [esp + 0x28]
xor ebp, esi
mov esi, dword [esp + 0x38]
not edi
and edi, dword [esp + 0x2c]
not esi
and esi, dword [esp + 0x24]
mov edx, dword [esp + 0x18]
xor esi, eax
and edx, dword [esp + 0x28]
mov eax, dword [esp + 0x60]
xor edi, edx
add ebp, edi
mov edx, ecx
adc ebx, esi
add ebp, dword [eax + 8]
adc ebx, dword [eax + 0xc]
mov eax, dword [esp + 0x1c]
add ebp, dword [eax]
adc ebx, dword [eax + 4]
add ebp, dword [esp + 0x58]
mov eax, dword [esp + 0x5c]
mov esi, eax
adc ebx, dword [esp + 0x50]
add dword [esp + 0x10], ebp
adc dword [esp + 0x20], ebx
xor edi, edi
shrd eax, edx, 0x1c
shl esi, 4
or edi, eax
shr edx, 0x1c
mov eax, dword [esp + 0x5c]
or esi, edx
mov dword [esp + 0x58], edi
mov edx, ecx
shld edx, eax, 0x1e
mov dword [esp + 0x50], esi
mov edi, ecx
shr edi, 2
xor esi, esi
or esi, edx
shl eax, 0x1e
xor dword [esp + 0x50], esi
or edi, eax
xor dword [esp + 0x58], edi
mov edx, ecx
mov eax, dword [esp + 0x5c]
xor esi, esi
shld edx, eax, 0x19
mov edi, ecx
shr edi, 7
or esi, edx
xor dword [esp + 0x50], esi
mov esi, ecx
xor esi, dword [esp + 0x3c]
mov edx, dword [esp + 0x5c]
and edx, dword [esp + 0x40]
and esi, dword [esp + 0x44]
shl eax, 0x19
or edi, eax
mov eax, ecx
xor dword [esp + 0x58], edi
mov edi, dword [esp + 0x5c]
xor edi, dword [esp + 0x40]
and edi, dword [esp + 0x4c]
and eax, dword [esp + 0x3c]
xor edi, edx
mov edx, dword [esp + 0x58]
xor esi, eax
add edx, edi
mov eax, dword [esp + 0x50]
adc eax, esi
add edx, ebp
mov dword [esp + 0x58], edx
lea edx, [esp + 0xc8]
adc eax, ebx
xor esi, esi
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x54]
add eax, 3
and eax, 0xf
lea edx, [edx + eax*8]
mov eax, dword [esp + 0x48]
mov dword [esp + 0x34], edx
mov ebx, dword [eax + 4]
mov edx, ebx
mov ebp, dword [eax]
mov eax, ebp
shrd eax, edx, 0x13
mov edi, ebp
or esi, eax
shr edx, 0x13
shl edi, 0xd
mov eax, ebp
or edi, edx
mov dword [esp + 0x68], esi
mov dword [esp + 0x48], edi
mov edx, ebx
shld edx, eax, 3
mov edi, ebx
xor esi, esi
or esi, edx
shl eax, 3
mov edx, dword [esp + 0x48]
shrd ebp, ebx, 6
xor edx, esi
shr edi, 0x1d
or edi, eax
shr ebx, 6
mov eax, dword [esp + 0x68]
xor edx, ebx
xor eax, edi
mov dword [esp + 0x48], edx
mov edi, dword [esp + 0x34]
xor eax, ebp
mov dword [esp + 0x68], eax
xor ebx, ebx
mov esi, dword [edi]
mov ebp, esi
mov edx, dword [edi + 4]
mov eax, esi
shrd eax, edx, 8
shl ebp, 0x18
mov edi, esi
shr edx, 8
or ebx, eax
or ebp, edx
shl edi, 0x1f
mov edx, dword [esp + 0x34]
xor esi, esi
mov eax, dword [edx]
mov edx, dword [edx + 4]
shrd eax, edx, 1
shr edx, 1
or esi, eax
or edi, edx
xor ebx, esi
xor ebp, edi
mov edi, dword [esp + 0x34]
mov eax, dword [edi + 4]
mov edx, dword [edi]
shrd edx, eax, 7
xor ebx, edx
shr eax, 7
mov edx, dword [esp + 0x68]
xor ebp, eax
add edx, ebx
mov ebx, dword [esp + 0x48]
adc ebx, ebp
mov eax, dword [esp + 0x54]
add eax, 0xfffffffb
and eax, 0xf
add edx, dword [esp + eax*8 + 0xc8]
adc ebx, dword [esp + eax*8 + 0xcc]
mov eax, dword [esp + 0x14]
add dword [eax], edx
mov edx, dword [esp + 0x20]
mov ebp, edx
adc dword [eax + 4], ebx
xor ebx, ebx
mov eax, dword [esp + 0x10]
xor esi, esi
shld edx, eax, 0x17
shr ebp, 9
or ebx, edx
shl eax, 0x17
mov edx, dword [esp + 0x20]
or ebp, eax
mov eax, dword [esp + 0x10]
mov edi, eax
shrd eax, edx, 0x12
shl edi, 0xe
or esi, eax
shr edx, 0x12
mov eax, dword [esp + 0x10]
or edi, edx
mov edx, dword [esp + 0x20]
xor ebx, edi
xor ebp, esi
mov edi, eax
shrd eax, edx, 0xe
xor esi, esi
shl edi, 0x12
or esi, eax
shr edx, 0xe
mov eax, dword [esp + 0x38]
or edi, edx
and eax, dword [esp + 0x20]
xor ebx, edi
mov edi, dword [esp + 0x10]
xor ebp, esi
mov esi, dword [esp + 0x20]
not edi
and edi, dword [esp + 0x18]
not esi
and esi, dword [esp + 0x30]
mov edx, dword [esp + 0x28]
xor esi, eax
and edx, dword [esp + 0x10]
mov eax, dword [esp + 0x60]
xor edi, edx
add ebp, edi
mov edx, dword [esp + 0x50]
adc ebx, esi
add ebp, dword [eax + 0x10]
adc ebx, dword [eax + 0x14]
mov eax, dword [esp + 0x14]
add ebp, dword [eax]
adc ebx, dword [eax + 4]
add ebp, dword [esp + 0x2c]
mov eax, dword [esp + 0x58]
mov esi, eax
adc ebx, dword [esp + 0x24]
add dword [esp + 0x40], ebp
adc dword [esp + 0x3c], ebx
xor edi, edi
shrd eax, edx, 0x1c
shl esi, 4
or edi, eax
shr edx, 0x1c
mov eax, dword [esp + 0x58]
or esi, edx
mov edx, dword [esp + 0x50]
mov dword [esp + 0x2c], edi
mov edi, edx
mov dword [esp + 0x24], esi
xor esi, esi
shr edi, 2
shld edx, eax, 0x1e
or esi, edx
shl eax, 0x1e
xor dword [esp + 0x24], esi
or edi, eax
xor dword [esp + 0x2c], edi
xor esi, esi
mov edx, dword [esp + 0x50]
mov edi, edx
mov eax, dword [esp + 0x58]
shld edx, eax, 0x19
shr edi, 7
shl eax, 0x19
or esi, edx
xor dword [esp + 0x24], esi
or edi, eax
xor dword [esp + 0x2c], edi
mov esi, ecx
xor esi, dword [esp + 0x50]
mov eax, ecx
and eax, dword [esp + 0x50]
and esi, dword [esp + 0x44]
mov edi, dword [esp + 0x5c]
xor esi, eax
xor edi, dword [esp + 0x58]
and edi, dword [esp + 0x4c]
mov edx, dword [esp + 0x5c]
and edx, dword [esp + 0x58]
mov eax, dword [esp + 0x24]
xor edi, edx
mov edx, dword [esp + 0x2c]
add edx, edi
adc eax, esi
add edx, ebp
mov dword [esp + 0x2c], edx
lea edx, [esp + 0xc8]
adc eax, ebx
xor esi, esi
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x54]
add eax, 4
and eax, 0xf
lea edx, [edx + eax*8]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x48], edx
mov ebx, dword [eax + 4]
mov edx, ebx
mov ebp, dword [eax]
mov eax, ebp
shrd eax, edx, 0x13
mov edi, ebp
or esi, eax
shr edx, 0x13
shl edi, 0xd
mov eax, ebp
or edi, edx
mov dword [esp + 0x68], esi
mov dword [esp + 0x1c], edi
mov edx, ebx
shld edx, eax, 3
mov edi, ebx
xor esi, esi
shl eax, 3
or esi, edx
mov edx, dword [esp + 0x1c]
shr edi, 0x1d
xor edx, esi
or edi, eax
mov eax, dword [esp + 0x68]
xor eax, edi
mov edi, dword [esp + 0x48]
shrd ebp, ebx, 6
shr ebx, 6
xor eax, ebp
mov esi, dword [edi]
xor edx, ebx
mov ebp, esi
mov dword [esp + 0x68], eax
xor ebx, ebx
mov dword [esp + 0x1c], edx
shl ebp, 0x18
mov eax, esi
mov edx, dword [edi + 4]
mov edi, esi
shrd eax, edx, 8
shl edi, 0x1f
xor esi, esi
or ebx, eax
shr edx, 8
or ebp, edx
mov edx, dword [esp + 0x48]
mov eax, dword [edx]
mov edx, dword [edx + 4]
shrd eax, edx, 1
or esi, eax
shr edx, 1
or edi, edx
xor ebx, esi
xor ebp, edi
mov edi, dword [esp + 0x48]
mov eax, dword [edi + 4]
mov edx, dword [edi]
shrd edx, eax, 7
xor ebx, edx
shr eax, 7
mov edx, dword [esp + 0x68]
xor ebp, eax
mov eax, dword [esp + 0x54]
add edx, ebx
mov ebx, dword [esp + 0x1c]
adc ebx, ebp
add eax, 0xfffffffc
and eax, 0xf
add edx, dword [esp + eax*8 + 0xc8]
adc ebx, dword [esp + eax*8 + 0xcc]
mov eax, dword [esp + 0x34]
add dword [eax], edx
mov edx, dword [esp + 0x3c]
mov ebp, edx
adc dword [eax + 4], ebx
xor ebx, ebx
mov eax, dword [esp + 0x40]
xor esi, esi
shld edx, eax, 0x17
shr ebp, 9
or ebx, edx
shl eax, 0x17
mov edx, dword [esp + 0x3c]
or ebp, eax
mov eax, dword [esp + 0x40]
mov edi, eax
shrd eax, edx, 0x12
shl edi, 0xe
or esi, eax
shr edx, 0x12
mov eax, dword [esp + 0x40]
or edi, edx
mov edx, dword [esp + 0x3c]
xor ebx, edi
xor ebp, esi
mov edi, eax
shrd eax, edx, 0xe
shl edi, 0x12
xor esi, esi
or esi, eax
shr edx, 0xe
mov eax, dword [esp + 0x20]
or edi, edx
mov edx, dword [esp + 0x10]
xor ebx, edi
mov edi, dword [esp + 0x40]
xor ebp, esi
mov esi, dword [esp + 0x3c]
not edi
and edi, dword [esp + 0x28]
not esi
and edx, dword [esp + 0x40]
and esi, dword [esp + 0x38]
xor edi, edx
and eax, dword [esp + 0x3c]
xor esi, eax
add ebp, edi
adc ebx, esi
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x24]
add ebp, dword [eax + 0x18]
adc ebx, dword [eax + 0x1c]
mov eax, dword [esp + 0x34]
add ebp, dword [eax]
adc ebx, dword [eax + 4]
add ebp, dword [esp + 0x18]
mov eax, dword [esp + 0x2c]
mov esi, eax
adc ebx, dword [esp + 0x30]
add dword [esp + 0x4c], ebp
adc dword [esp + 0x44], ebx
xor edi, edi
shrd eax, edx, 0x1c
shl esi, 4
or edi, eax
shr edx, 0x1c
mov eax, dword [esp + 0x2c]
or esi, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x18], edi
mov edi, edx
shld edx, eax, 0x1e
shr edi, 2
shl eax, 0x1e
or edi, eax
mov dword [esp + 0x30], esi
xor dword [esp + 0x18], edi
xor esi, esi
mov eax, dword [esp + 0x2c]
or esi, edx
xor dword [esp + 0x30], esi
xor esi, esi
mov edx, dword [esp + 0x24]
mov edi, edx
shld edx, eax, 0x19
shr edi, 7
shl eax, 0x19
or esi, edx
xor dword [esp + 0x30], esi
or edi, eax
xor dword [esp + 0x18], edi
mov edx, dword [esp + 0x58]
mov edi, edx
and edx, dword [esp + 0x2c]
xor edi, dword [esp + 0x2c]
and edi, dword [esp + 0x5c]
mov eax, dword [esp + 0x50]
xor edi, edx
mov edx, dword [esp + 0x18]
mov esi, eax
and eax, dword [esp + 0x24]
xor esi, dword [esp + 0x24]
and esi, ecx
xor esi, eax
mov eax, dword [esp + 0x30]
add edx, edi
adc eax, esi
add edx, ebp
mov dword [esp + 0x18], edx
lea edx, [esp + 0xc8]
adc eax, ebx
xor esi, esi
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x54]
add eax, 5
and eax, 0xf
lea edx, [edx + eax*8]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x1c], edx
mov ebp, dword [eax]
mov edi, ebp
mov ebx, dword [eax + 4]
mov eax, ebp
mov edx, ebx
shl edi, 0xd
shrd eax, edx, 0x13
shr edx, 0x13
or esi, eax
mov dword [esp + 0x68], esi
or edi, edx
mov eax, ebp
mov dword [esp + 0x14], edi
mov edx, ebx
shld edx, eax, 3
mov edi, ebx
xor esi, esi
or esi, edx
shl eax, 3
mov edx, dword [esp + 0x14]
xor edx, esi
shr edi, 0x1d
or edi, eax
mov eax, dword [esp + 0x68]
xor eax, edi
mov edi, dword [esp + 0x1c]
shrd ebp, ebx, 6
xor eax, ebp
shr ebx, 6
mov esi, dword [edi]
xor edx, ebx
mov dword [esp + 0x14], edx
mov ebp, esi
mov edx, dword [edi + 4]
xor ebx, ebx
mov dword [esp + 0x68], eax
mov edi, esi
shl ebp, 0x18
mov eax, esi
shrd eax, edx, 8
shl edi, 0x1f
xor esi, esi
shr edx, 8
or ebx, eax
or ebp, edx
mov edx, dword [esp + 0x1c]
mov eax, dword [edx]
mov edx, dword [edx + 4]
shrd eax, edx, 1
shr edx, 1
or esi, eax
or edi, edx
xor ebx, esi
mov esi, dword [esp + 0xc4]
xor ebp, edi
mov edi, dword [esp + 0x1c]
mov eax, dword [edi + 4]
mov edx, dword [edi]
shrd edx, eax, 7
xor ebx, edx
shr eax, 7
mov edx, dword [esp + 0x14]
xor ebp, eax
mov eax, dword [esp + 0x68]
add eax, ebx
mov ebx, dword [esp + 0x48]
adc edx, ebp
add eax, dword [esi]
adc edx, dword [esi + 4]
add dword [ebx], eax
mov eax, dword [esp + 0x4c]
adc dword [ebx + 4], edx
xor ebx, ebx
mov edx, dword [esp + 0x44]
xor esi, esi
mov ebp, edx
shld edx, eax, 0x17
shr ebp, 9
shl eax, 0x17
or ebx, edx
mov edx, dword [esp + 0x44]
or ebp, eax
mov eax, dword [esp + 0x4c]
mov edi, eax
shrd eax, edx, 0x12
shl edi, 0xe
shr edx, 0x12
or esi, eax
or edi, edx
xor ebp, esi
xor ebx, edi
mov eax, dword [esp + 0x4c]
xor esi, esi
mov edx, dword [esp + 0x44]
mov edi, eax
shrd eax, edx, 0xe
shl edi, 0x12
or esi, eax
shr edx, 0xe
or edi, edx
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x4c]
xor ebx, edi
xor ebp, esi
mov edi, edx
and edx, dword [esp + 0x40]
mov esi, eax
and eax, dword [esp + 0x3c]
not edi
and edi, dword [esp + 0x10]
not esi
and esi, dword [esp + 0x20]
xor edi, edx
xor esi, eax
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x60]
add ebp, edi
adc ebx, esi
add ebp, dword [eax + 0x20]
adc ebx, dword [eax + 0x24]
mov eax, dword [esp + 0x48]
add ebp, dword [eax]
adc ebx, dword [eax + 4]
add ebp, dword [esp + 0x28]
mov eax, dword [esp + 0x18]
mov esi, eax
adc ebx, dword [esp + 0x38]
add dword [esp + 0x5c], ebp
adc ecx, ebx
xor edi, edi
shrd eax, edx, 0x1c
shl esi, 4
or edi, eax
shr edx, 0x1c
mov eax, dword [esp + 0x18]
or esi, edx
mov edx, dword [esp + 0x30]
mov dword [esp + 0x28], edi
mov edi, edx
shld edx, eax, 0x1e
mov dword [esp + 0x38], esi
xor esi, esi
shr edi, 2
or esi, edx
xor dword [esp + 0x38], esi
xor esi, esi
mov edx, dword [esp + 0x30]
shl eax, 0x1e
or edi, eax
mov eax, dword [esp + 0x18]
xor dword [esp + 0x28], edi
mov edi, edx
shld edx, eax, 0x19
shr edi, 7
or esi, edx
shl eax, 0x19
xor dword [esp + 0x38], esi
or edi, eax
xor dword [esp + 0x28], edi
mov edx, dword [esp + 0x2c]
mov edi, edx
mov eax, dword [esp + 0x24]
mov esi, eax
xor edi, dword [esp + 0x18]
xor esi, dword [esp + 0x30]
and edx, dword [esp + 0x18]
and edi, dword [esp + 0x58]
and esi, dword [esp + 0x50]
xor edi, edx
and eax, dword [esp + 0x30]
mov edx, dword [esp + 0x28]
xor esi, eax
add edx, edi
mov eax, dword [esp + 0x38]
adc eax, esi
add edx, ebp
mov dword [esp + 0x28], edx
lea edx, [esp + 0xc8]
adc eax, ebx
xor esi, esi
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x54]
add eax, 6
and eax, 0xf
lea edx, [edx + eax*8]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x14], edx
mov ebx, dword [eax + 4]
mov edx, ebx
mov ebp, dword [eax]
mov eax, ebp
shrd eax, edx, 0x13
mov edi, ebp
or esi, eax
shr edx, 0x13
shl edi, 0xd
mov eax, ebp
or edi, edx
mov dword [esp + 0x68], esi
mov dword [esp + 0x34], edi
mov edx, ebx
shld edx, eax, 3
mov edi, ebx
xor esi, esi
or esi, edx
shl eax, 3
mov edx, dword [esp + 0x34]
xor edx, esi
shr edi, 0x1d
or edi, eax
mov eax, dword [esp + 0x68]
xor eax, edi
mov edi, dword [esp + 0x14]
shrd ebp, ebx, 6
xor eax, ebp
shr ebx, 6
mov esi, dword [edi]
xor edx, ebx
mov dword [esp + 0x34], edx
mov ebp, esi
mov edx, dword [edi + 4]
xor ebx, ebx
mov dword [esp + 0x68], eax
mov edi, esi
mov eax, esi
shl ebp, 0x18
shrd eax, edx, 8
shl edi, 0x1f
xor esi, esi
shr edx, 8
or ebx, eax
or ebp, edx
mov edx, dword [esp + 0x14]
mov eax, dword [edx]
mov edx, dword [edx + 4]
shrd eax, edx, 1
shr edx, 1
or esi, eax
or edi, edx
xor ebx, esi
mov esi, dword [esp + 0xa0]
xor ebp, edi
mov edi, dword [esp + 0x14]
mov eax, dword [edi + 4]
mov edx, dword [edi]
shrd edx, eax, 7
shr eax, 7
xor ebx, edx
mov edx, dword [esp + 0x34]
xor ebp, eax
mov eax, dword [esp + 0x68]
add eax, ebx
adc edx, ebp
add eax, dword [esi]
mov ebp, ecx
mov ebx, dword [esp + 0x1c]
adc edx, dword [esi + 4]
add dword [ebx], eax
mov eax, dword [esp + 0x5c]
adc dword [ebx + 4], edx
xor ebx, ebx
shr ebp, 9
xor esi, esi
mov edx, ecx
shld edx, eax, 0x17
or ebx, edx
shl eax, 0x17
or ebp, eax
mov edx, ecx
mov eax, dword [esp + 0x5c]
mov edi, eax
shrd eax, edx, 0x12
shl edi, 0xe
or esi, eax
shr edx, 0x12
mov eax, dword [esp + 0x5c]
or edi, edx
xor ebx, edi
xor ebp, esi
xor esi, esi
mov edi, eax
shl edi, 0x12
mov edx, ecx
shrd eax, edx, 0xe
or esi, eax
shr edx, 0xe
mov eax, dword [esp + 0x44]
or edi, edx
mov edx, dword [esp + 0x4c]
xor ebx, edi
and edx, dword [esp + 0x5c]
xor ebp, esi
mov edi, dword [esp + 0x5c]
and eax, ecx
not edi
mov esi, ecx
and edi, dword [esp + 0x40]
not esi
and esi, dword [esp + 0x3c]
xor edi, edx
xor esi, eax
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x60]
add ebp, edi
adc ebx, esi
add ebp, dword [eax + 0x28]
adc ebx, dword [eax + 0x2c]
mov eax, dword [esp + 0x1c]
add ebp, dword [eax]
adc ebx, dword [eax + 4]
add ebp, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
mov esi, eax
adc ebx, dword [esp + 0x20]
add dword [esp + 0x58], ebp
adc dword [esp + 0x50], ebx
xor edi, edi
shrd eax, edx, 0x1c
shl esi, 4
or edi, eax
shr edx, 0x1c
mov eax, dword [esp + 0x28]
or esi, edx
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], edi
mov edi, edx
shld edx, eax, 0x1e
mov dword [esp + 0x20], esi
xor esi, esi
shr edi, 2
or esi, edx
shl eax, 0x1e
or edi, eax
xor dword [esp + 0x10], edi
xor dword [esp + 0x20], esi
xor esi, esi
mov edx, dword [esp + 0x38]
mov edi, edx
mov eax, dword [esp + 0x28]
shld edx, eax, 0x19
shr edi, 7
or esi, edx
shl eax, 0x19
xor dword [esp + 0x20], esi
or edi, eax
xor dword [esp + 0x10], edi
mov edx, dword [esp + 0x18]
mov edi, edx
and edx, dword [esp + 0x28]
xor edi, dword [esp + 0x28]
and edi, dword [esp + 0x2c]
mov eax, dword [esp + 0x30]
xor edi, edx
mov edx, dword [esp + 0x10]
mov esi, eax
and eax, dword [esp + 0x38]
xor esi, dword [esp + 0x38]
and esi, dword [esp + 0x24]
xor esi, eax
mov eax, dword [esp + 0x20]
add edx, edi
adc eax, esi
add edx, ebp
mov dword [esp + 0x10], edx
adc eax, ebx
xor esi, esi
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x54]
add eax, 7
and eax, 0xf
mov edx, dword [esp + eax*8 + 0xc8]
mov eax, dword [esp + eax*8 + 0xcc]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x1c], edx
mov ebx, dword [eax + 4]
mov edx, ebx
mov ebp, dword [eax]
mov eax, ebp
shrd eax, edx, 0x13
mov edi, ebp
or esi, eax
shr edx, 0x13
shl edi, 0xd
mov eax, ebp
or edi, edx
mov dword [esp + 0x48], esi
mov edx, ebx
mov dword [esp + 0x34], edi
shld edx, eax, 3
mov edi, ebx
xor esi, esi
shl eax, 3
or esi, edx
mov edx, dword [esp + 0x34]
shrd ebp, ebx, 6
shr edi, 0x1d
xor edx, esi
mov esi, dword [esp + 0x1c]
or edi, eax
mov eax, dword [esp + 0x48]
xor eax, edi
shr ebx, 6
xor eax, ebp
xor edx, ebx
mov dword [esp + 0x34], edx
mov ebp, esi
mov edx, dword [esp + 0x68]
xor ebx, ebx
mov dword [esp + 0x48], eax
mov eax, esi
shrd eax, edx, 8
shl ebp, 0x18
shr edx, 8
or ebx, eax
or ebp, edx
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x68]
mov edi, esi
shrd eax, edx, 1
shl edi, 0x1f
xor esi, esi
or esi, eax
shr edx, 1
or edi, edx
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x1c]
xor ebx, esi
shrd edx, eax, 7
mov esi, dword [esp + 0x74]
xor ebp, edi
xor ebx, edx
shr eax, 7
mov edx, dword [esp + 0x34]
xor ebp, eax
mov eax, dword [esp + 0x48]
add eax, ebx
mov ebx, dword [esp + 0x14]
adc edx, ebp
add eax, dword [esi]
adc edx, dword [esi + 4]
add dword [ebx], eax
mov eax, dword [esp + 0x58]
adc dword [ebx + 4], edx
xor ebx, ebx
mov edx, dword [esp + 0x50]
xor esi, esi
mov ebp, edx
shld edx, eax, 0x17
shr ebp, 9
or ebx, edx
shl eax, 0x17
mov edx, dword [esp + 0x50]
or ebp, eax
mov eax, dword [esp + 0x58]
mov edi, eax
shrd eax, edx, 0x12
shl edi, 0xe
or esi, eax
shr edx, 0x12
mov eax, dword [esp + 0x58]
or edi, edx
mov edx, dword [esp + 0x50]
xor ebx, edi
xor ebp, esi
mov edi, eax
shrd eax, edx, 0xe
xor esi, esi
shl edi, 0x12
or esi, eax
shr edx, 0xe
or edi, edx
xor ebp, esi
mov esi, dword [esp + 0x50]
xor ebx, edi
mov edi, dword [esp + 0x58]
not esi
and esi, dword [esp + 0x44]
not edi
and edi, dword [esp + 0x4c]
mov eax, ecx
and eax, dword [esp + 0x50]
mov edx, dword [esp + 0x5c]
xor esi, eax
and edx, dword [esp + 0x58]
mov eax, dword [esp + 0x60]
xor edi, edx
add ebp, edi
adc ebx, esi
add ebp, dword [eax + 0x30]
adc ebx, dword [eax + 0x34]
mov eax, dword [esp + 0x14]
add ebp, dword [eax]
adc ebx, dword [eax + 4]
add ebp, dword [esp + 0x40]
adc ebx, dword [esp + 0x3c]
add dword [esp + 0x2c], ebp
mov eax, dword [esp + 0x10]
mov esi, eax
adc dword [esp + 0x24], ebx
xor edi, edi
mov edx, dword [esp + 0x20]
shrd eax, edx, 0x1c
shl esi, 4
or edi, eax
shr edx, 0x1c
mov eax, dword [esp + 0x10]
or esi, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x40], edi
mov edi, edx
shld edx, eax, 0x1e
mov dword [esp + 0x3c], esi
xor esi, esi
or esi, edx
shr edi, 2
xor dword [esp + 0x3c], esi
xor esi, esi
mov edx, dword [esp + 0x20]
shl eax, 0x1e
or edi, eax
mov eax, dword [esp + 0x10]
xor dword [esp + 0x40], edi
mov edi, edx
shld edx, eax, 0x19
shr edi, 7
or esi, edx
shl eax, 0x19
xor dword [esp + 0x3c], esi
or edi, eax
xor dword [esp + 0x40], edi
mov eax, dword [esp + 0x38]
mov esi, eax
xor esi, dword [esp + 0x20]
mov edx, dword [esp + 0x28]
mov edi, edx
xor edi, dword [esp + 0x10]
and esi, dword [esp + 0x30]
and edx, dword [esp + 0x10]
and eax, dword [esp + 0x20]
and edi, dword [esp + 0x18]
xor esi, eax
mov eax, dword [esp + 0x40]
xor edi, edx
mov edx, dword [esp + 0x3c]
add eax, edi
adc edx, esi
mov esi, dword [esp + 0x54]
add eax, ebp
mov dword [esp + 0x40], eax
adc edx, ebx
add dword [esp + 0x60], 0x40
add esi, 8
mov dword [esp + 0x3c], edx
mov dword [esp + 0x54], esi
lea eax, [esi - 1]
cmp eax, 0x50
jl 0x4c3742
mov ebx, dword [esp + 0x90]
mov eax, dword [esp + 0xac]
add eax, dword [esp + 0x40]
mov esi, dword [esp + 0xbc]
adc esi, edx
mov dword [ebx], eax
mov eax, dword [esp + 0xb4]
add eax, dword [esp + 0x10]
mov edx, dword [esp + 0xa4]
adc edx, dword [esp + 0x20]
mov dword [ebx + 8], eax
mov eax, dword [esp + 0xa8]
add eax, dword [esp + 0x28]
mov dword [ebx + 0xc], edx
mov edx, dword [esp + 0xb0]
adc edx, dword [esp + 0x38]
mov dword [ebx + 0x10], eax
mov eax, dword [esp + 0xb8]
add eax, dword [esp + 0x18]
mov dword [ebx + 0x14], edx
mov edx, dword [esp + 0xc0]
adc edx, dword [esp + 0x30]
mov dword [ebx + 0x18], eax
mov eax, dword [esp + 0x7c]
add eax, dword [esp + 0x2c]
mov dword [ebx + 0x1c], edx
mov edx, dword [esp + 0x78]
adc edx, dword [esp + 0x24]
mov dword [ebx + 0x20], eax
mov eax, dword [esp + 0x84]
add eax, dword [esp + 0x58]
mov dword [ebx + 0x24], edx
mov edx, dword [esp + 0x80]
adc edx, dword [esp + 0x50]
mov dword [ebx + 0x28], eax
mov eax, dword [esp + 0x8c]
add eax, dword [esp + 0x5c]
mov dword [ebx + 0x2c], edx
mov edx, dword [esp + 0x88]
adc edx, ecx
mov dword [ebx + 0x30], eax
mov eax, dword [esp + 0x94]
add eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x9c]
adc ecx, dword [esp + 0x44]
mov dword [ebx + 0x34], edx
mov edx, dword [esp + 0x6c]
mov dword [ebx + 0x3c], ecx
sub edx, 0xffffff80
mov ecx, dword [esp + 0x158]
mov dword [ebx + 4], esi
mov dword [ebx + 0x38], eax
mov dword [esp + 0x6c], edx
test ecx, ecx
jne 0x4c18b0
pop edi
pop esi
pop ebp
mov ecx, dword [esp + 0x13c]
pop ebx
xor ecx, esp
call fcn.004632a9
add esp, 0x13c
ret