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

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