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

Disassembly:
mov eax, 0x144
call fcn.0043c870
cmp dword [esp + 0x14c], 0
mov eax, dword [esp + 0x148]
je 0x47b597
push ebx
push ebp
add ecx, 0x10
push esi
mov dword [esp + 0x5c], ecx
push edi
lea ebx, [ebx]
mov edx, dword [eax]
mov ecx, dword [eax + 4]
mov esi, dword [eax + 0x20]
mov edi, dword [eax + 0x24]
dec dword [esp + 0x15c]
mov dword [esp + 0x48], edx
mov edx, dword [eax + 8]
mov dword [esp + 0x4c], ecx
mov ecx, dword [eax + 0xc]
mov dword [esp + 0x50], edx
mov edx, dword [eax + 0x10]
mov dword [esp + 0x54], ecx
mov ecx, dword [eax + 0x14]
mov dword [esp + 0x38], edx
mov edx, dword [eax + 0x18]
mov dword [esp + 0x3c], ecx
mov ecx, dword [eax + 0x1c]
mov dword [esp + 0x30], edx
mov edx, dword [eax + 0x28]
mov dword [esp + 0x34], ecx
mov ecx, dword [eax + 0x2c]
mov dword [esp + 0x28], edx
mov edx, dword [eax + 0x30]
mov dword [esp + 0x2c], ecx
mov ecx, dword [eax + 0x34]
mov dword [esp + 0x20], edx
mov edx, dword [eax + 0x38]
mov eax, dword [eax + 0x3c]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x60]
add ecx, 0xfffffff0
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], edi
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], eax
call fcn.00478d10
mov dword [esp + 0xb8], edx
xor ecx, ecx
mov edx, esi
mov ebx, edi
shld ebx, edx, 0x17
or ecx, ebx
shl edx, 0x17
mov dword [esp + 0xb4], eax
mov dword [esp + 0x138], ecx
mov ebx, esi
mov ebp, edi
shrd ebx, ebp, 0x12
shr ebp, 0x12
mov eax, edi
shr eax, 9
or eax, edx
xor edx, edx
or edx, ebx
mov ecx, esi
shl ecx, 0xe
or ecx, ebp
xor dword [esp + 0x138], ecx
xor eax, edx
mov ebx, esi
mov ebp, edi
shrd ebx, ebp, 0xe
xor ecx, ecx
or ecx, ebx
mov edx, esi
shl edx, 0x12
shr ebp, 0xe
or edx, ebp
mov ebp, dword [esp + 0x28]
xor eax, ecx
mov ecx, dword [esp + 0x138]
xor ecx, edx
mov edx, esi
mov ebx, edi
and ebp, esi
mov esi, dword [esp + 0x2c]
not edx
and edx, dword [esp + 0x20]
not ebx
and ebx, dword [esp + 0x24]
and esi, edi
xor edx, ebp
xor ebx, esi
add eax, edx
adc ecx, ebx
add eax, dword [esp + 0xb4]
mov esi, dword [esp + 0x30]
adc ecx, dword [esp + 0xb8]
add eax, dword [esp + 0x18]
mov ebp, dword [esp + 0x50]
adc ecx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x54]
add eax, 0xd728ae22
adc ecx, 0x428a2f98
mov dword [esp + 0x14], ecx
mov edx, ebp
add esi, eax
adc dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x48]
xor edx, ecx
mov dword [esp + 0x80], edx
mov edx, dword [esp + 0x4c]
xor ebx, edx
mov dword [esp + 0x84], ebx
mov ebx, ebp
and ebx, ecx
mov dword [esp + 0x78], ebx
mov ebx, dword [esp + 0x54]
and ebx, edx
mov dword [esp + 0x7c], ebx
mov ebx, ecx
shl ebx, 4
mov dword [esp + 0x9c], ebx
mov ebx, ecx
shrd ebx, edx, 0x1c
shr edx, 0x1c
or dword [esp + 0x9c], edx
mov edx, dword [esp + 0x4c]
xor ebp, ebp
or ebp, ebx
mov ebx, edx
shld edx, ecx, 0x1e
mov dword [esp + 0x98], ebp
xor ebp, ebp
or ebp, edx
xor dword [esp + 0x9c], ebp
mov ebp, dword [esp + 0x48]
shl ecx, 0x1e
shr ebx, 2
or ebx, ecx
xor dword [esp + 0x98], ebx
mov ecx, dword [esp + 0x4c]
mov edx, ecx
shld ecx, ebp, 0x19
shr edx, 7
xor ebx, ebx
or ebx, ecx
mov ecx, dword [esp + 0x98]
shl ebp, 0x19
or edx, ebp
mov ebp, dword [esp + 0x84]
and ebp, dword [esp + 0x3c]
xor ecx, edx
mov edx, dword [esp + 0x9c]
xor ebp, dword [esp + 0x7c]
xor edx, ebx
mov ebx, dword [esp + 0x80]
and ebx, dword [esp + 0x38]
mov dword [esp + 0x30], esi
xor ebx, dword [esp + 0x78]
add ecx, ebx
adc edx, ebp
add ecx, eax
adc edx, dword [esp + 0x14]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x60]
add ecx, 0xfffffff8
mov dword [esp + 0x1c], edx
call fcn.00478d10
mov ecx, dword [esp + 0x34]
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc0], edx
xor edx, edx
mov ebp, ecx
and edi, dword [esp + 0x34]
mov eax, ecx
mov ebx, esi
shld ebp, ebx, 0x17
or edx, ebp
shl ebx, 0x17
shr eax, 9
or eax, ebx
xor ebx, ebx
mov dword [esp + 0x150], edx
mov ebp, esi
shrd ebp, ecx, 0x12
or ebx, ebp
mov ebp, dword [esp + 0x34]
xor eax, ebx
shr ecx, 0x12
mov edx, esi
shl edx, 0xe
or edx, ecx
xor dword [esp + 0x150], edx
xor ecx, ecx
mov ebx, esi
shrd ebx, ebp, 0xe
or ecx, ebx
mov ebx, dword [esp + 0x34]
shr ebp, 0xe
xor eax, ecx
mov ecx, dword [esp + 0x150]
mov edx, esi
shl edx, 0x12
or edx, ebp
mov ebp, dword [esp + 0x40]
xor ecx, edx
and ebp, esi
not ebx
and ebx, dword [esp + 0x2c]
mov edx, esi
mov esi, dword [esp + 0x38]
xor ebx, edi
not edx
and edx, dword [esp + 0x28]
xor edx, ebp
mov ebp, dword [esp + 0x1c]
add eax, edx
adc ecx, ebx
add eax, dword [esp + 0xbc]
mov edx, dword [esp + 0x18]
adc ecx, dword [esp + 0xc0]
add eax, dword [esp + 0x20]
mov edi, edx
adc ecx, dword [esp + 0x24]
add eax, 0x23ef65cd
adc ecx, 0x71374491
add esi, eax
adc dword [esp + 0x3c], ecx
shl edi, 4
mov dword [esp + 0xa8], edi
mov edi, edx
shrd edi, ebp, 0x1c
xor ebx, ebx
or ebx, edi
mov edi, dword [esp + 0x1c]
mov dword [esp + 0xa4], ebx
mov ebx, edi
shld edi, edx, 0x1e
shr ebp, 0x1c
or dword [esp + 0xa8], ebp
shl edx, 0x1e
shr ebx, 2
or ebx, edx
mov edx, dword [esp + 0x1c]
xor dword [esp + 0xa4], ebx
xor ebp, ebp
or ebp, edi
xor dword [esp + 0xa8], ebp
mov edi, edx
shr edi, 7
mov dword [esp + 0x38], esi
xor ebx, ebx
mov ebp, dword [esp + 0x18]
shld edx, ebp, 0x19
or ebx, edx
mov edx, dword [esp + 0x80]
and edx, dword [esp + 0x18]
shl ebp, 0x19
xor edx, dword [esp + 0x78]
or edi, ebp
mov ebp, dword [esp + 0xa8]
mov dword [esp + 0x6c], ebx
mov ebx, dword [esp + 0xa4]
xor ebx, edi
mov edi, dword [esp + 0x6c]
xor ebp, edi
mov edi, dword [esp + 0x84]
and edi, dword [esp + 0x1c]
xor edi, dword [esp + 0x7c]
add ebx, edx
adc ebp, edi
add ebx, eax
adc ebp, ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebp
call fcn.00478d10
mov dword [esp + 0xc8], edx
mov edx, dword [esp + 0x3c]
mov ebx, edx
mov dword [esp + 0xc4], eax
xor ecx, ecx
mov eax, edx
mov edi, esi
shld ebx, edi, 0x17
or ecx, ebx
shl edi, 0x17
xor ebx, ebx
shr eax, 9
or eax, edi
mov ebp, esi
shrd ebp, edx, 0x12
or ebx, ebp
mov ebp, dword [esp + 0x3c]
xor eax, ebx
shr edx, 0x12
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
shr ebp, 0xe
mov edx, esi
shl edx, 0x12
or edx, ebp
mov ebp, dword [esp + 0x30]
xor ecx, edx
mov edx, dword [esp + 0x3c]
xor eax, edi
and ebp, esi
mov edi, esi
mov esi, dword [esp + 0x34]
not edi
and edi, dword [esp + 0x40]
mov ebx, edx
and esi, edx
not ebx
and ebx, dword [esp + 0x44]
xor edi, ebp
xor ebx, esi
add eax, edi
adc ecx, ebx
add eax, dword [esp + 0xc4]
adc ecx, dword [esp + 0xc8]
add eax, dword [esp + 0x28]
adc ecx, dword [esp + 0x2c]
add eax, 0xec4d3b2f
adc ecx, 0xb5c0fbcf
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
add dword [esp + 0x50], eax
mov esi, dword [esp + 0x20]
mov edi, esi
adc dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x24]
mov ebx, ecx
shrd edi, ebx, 0x1c
shr ebx, 0x1c
mov eax, esi
shl eax, 4
or eax, ebx
xor ebx, ebx
mov ebp, ecx
shld ebp, esi, 0x1e
or ebx, ebp
xor eax, ebx
mov ebx, dword [esp + 0x20]
xor edx, edx
or edx, edi
shl esi, 0x1e
mov edi, ecx
shr edi, 2
or edi, esi
xor edx, edi
mov ebp, ecx
shld ebp, ebx, 0x19
xor edi, edi
or edi, ebp
shl ebx, 0x19
mov esi, ecx
xor eax, edi
mov edi, dword [esp + 0x20]
shr esi, 7
or esi, ebx
xor edx, esi
mov esi, dword [esp + 0x48]
mov ebp, ecx
xor ebp, dword [esp + 0x4c]
and ecx, dword [esp + 0x4c]
and ebp, dword [esp + 0x1c]
mov ebx, edi
xor ebx, esi
and ebx, dword [esp + 0x18]
and edi, esi
xor ebp, ecx
mov ecx, dword [esp + 0x60]
xor ebx, edi
add edx, ebx
adc eax, ebp
add edx, dword [esp + 0x10]
adc eax, dword [esp + 0x14]
add ecx, 8
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], eax
call fcn.00478d10
mov esi, dword [esp + 0x54]
mov ebx, esi
mov dword [esp + 0xd0], edx
mov edx, dword [esp + 0x50]
mov edi, edx
shld ebx, edi, 0x17
mov dword [esp + 0xcc], eax
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
or edi, esi
xor ebx, ebx
or ebx, ebp
xor ecx, edi
mov esi, edx
xor eax, ebx
xor edi, edi
shl esi, 0x12
mov ebp, dword [esp + 0x54]
mov ebx, edx
shrd ebx, ebp, 0xe
or edi, ebx
xor eax, edi
shr ebp, 0xe
or esi, ebp
mov ebp, dword [esp + 0x38]
xor ecx, esi
mov esi, dword [esp + 0x54]
and ebp, edx
mov edi, edx
mov edx, dword [esp + 0x3c]
and edx, esi
not edi
and edi, dword [esp + 0x30]
mov ebx, esi
xor edi, ebp
not ebx
and ebx, dword [esp + 0x34]
mov esi, dword [esp + 0x28]
xor ebx, edx
add eax, edi
adc ecx, ebx
add eax, dword [esp + 0xcc]
mov edi, esi
adc ecx, dword [esp + 0xd0]
add eax, dword [esp + 0x40]
adc ecx, dword [esp + 0x44]
add eax, 0x8189dbbc
adc ecx, 0xe9b5dba5
add dword [esp + 0x48], eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], eax
adc dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x2c]
mov eax, esi
mov ebx, ecx
shrd edi, ebx, 0x1c
shr ebx, 0x1c
shl eax, 4
or eax, ebx
xor ebx, ebx
mov ebp, ecx
shld ebp, esi, 0x1e
or ebx, ebp
xor eax, ebx
mov ebx, dword [esp + 0x28]
xor edx, edx
or edx, edi
shl esi, 0x1e
mov edi, ecx
shr edi, 2
or edi, esi
xor edx, edi
mov ebp, ecx
shld ebp, ebx, 0x19
xor edi, edi
or edi, ebp
mov ebp, dword [esp + 0x24]
shl ebx, 0x19
mov esi, ecx
shr esi, 7
or esi, ebx
xor eax, edi
mov edi, dword [esp + 0x20]
xor edx, esi
mov esi, dword [esp + 0x28]
mov ebx, edi
xor ebx, esi
and ebx, dword [esp + 0x18]
and edi, esi
mov esi, dword [esp + 0x24]
xor ebp, ecx
and ebp, dword [esp + 0x1c]
and esi, ecx
xor ebx, edi
xor ebp, esi
add edx, ebx
adc eax, ebp
add edx, dword [esp + 0x10]
adc eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x60]
add ecx, 0x10
mov dword [esp + 0x40], edx
mov dword [esp + 0x44], eax
call fcn.00478d10
mov esi, dword [esp + 0x4c]
mov dword [esp + 0xd4], eax
mov dword [esp + 0xd8], edx
mov edx, dword [esp + 0x48]
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
shr eax, 9
or eax, edi
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
xor eax, edi
shr ebp, 0xe
mov esi, edx
shl esi, 0x12
or esi, ebp
mov ebp, dword [esp + 0x50]
xor ecx, esi
mov esi, dword [esp + 0x4c]
and ebp, edx
mov edi, edx
mov edx, dword [esp + 0x54]
not edi
and edi, dword [esp + 0x38]
and edx, esi
xor edi, ebp
mov ebx, esi
mov esi, dword [esp + 0x40]
not ebx
and ebx, dword [esp + 0x3c]
xor ebx, edx
add eax, edi
adc ecx, ebx
add eax, dword [esp + 0xd4]
mov edi, esi
adc ecx, dword [esp + 0xd8]
add eax, dword [esp + 0x30]
adc ecx, dword [esp + 0x34]
add eax, 0xf348b538
adc ecx, 0x3956c25b
add dword [esp + 0x18], eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], eax
adc dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x44]
mov ebx, ecx
shrd edi, ebx, 0x1c
mov eax, esi
xor edx, edx
shr ebx, 0x1c
or edx, edi
shl eax, 4
or eax, ebx
mov edi, ecx
mov ebp, ecx
shr edi, 2
xor ebx, ebx
shld ebp, esi, 0x1e
or ebx, ebp
xor eax, ebx
mov ebx, dword [esp + 0x40]
shl esi, 0x1e
or edi, esi
xor edx, edi
mov ebp, ecx
shld ebp, ebx, 0x19
xor edi, edi
or edi, ebp
mov ebp, dword [esp + 0x2c]
shl ebx, 0x19
mov esi, ecx
shr esi, 7
or esi, ebx
xor eax, edi
mov edi, dword [esp + 0x28]
xor edx, esi
mov esi, dword [esp + 0x40]
xor ebp, ecx
and ebp, dword [esp + 0x24]
mov ebx, edi
xor ebx, esi
and ebx, dword [esp + 0x20]
and edi, esi
mov esi, dword [esp + 0x2c]
and esi, ecx
mov ecx, dword [esp + 0x60]
xor ebx, edi
xor ebp, esi
add edx, ebx
adc eax, ebp
add edx, dword [esp + 0x10]
adc eax, dword [esp + 0x14]
add ecx, 0x18
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], eax
call fcn.00478d10
mov esi, dword [esp + 0x1c]
mov ebx, esi
mov dword [esp + 0xe0], edx
mov edx, dword [esp + 0x18]
mov dword [esp + 0xdc], eax
mov eax, esi
mov edi, edx
shld ebx, edi, 0x17
shl edi, 0x17
xor ecx, ecx
or ecx, ebx
xor ebx, ebx
mov ebp, edx
shrd ebp, esi, 0x12
or ebx, ebp
mov ebp, dword [esp + 0x1c]
shr eax, 9
or eax, edi
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
or edi, ebx
shl esi, 0x12
shr ebp, 0xe
or esi, ebp
xor eax, edi
xor ecx, esi
mov esi, dword [esp + 0x1c]
mov edi, edx
and edx, dword [esp + 0x48]
mov ebx, esi
not edi
and edi, dword [esp + 0x50]
not ebx
and ebx, dword [esp + 0x54]
and esi, dword [esp + 0x4c]
xor ebx, esi
xor edi, edx
add eax, edi
adc ecx, ebx
add eax, dword [esp + 0xdc]
mov esi, dword [esp + 0x30]
adc ecx, dword [esp + 0xe0]
add eax, dword [esp + 0x38]
mov edi, esi
adc ecx, dword [esp + 0x3c]
add eax, 0xb605d019
adc ecx, 0x59f111f1
add dword [esp + 0x20], eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], eax
adc dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x34]
mov eax, esi
mov ebx, ecx
shrd edi, ebx, 0x1c
shr ebx, 0x1c
shl eax, 4
or eax, ebx
xor ebx, ebx
mov ebp, ecx
shld ebp, esi, 0x1e
or ebx, ebp
xor eax, ebx
mov ebx, dword [esp + 0x30]
xor edx, edx
or edx, edi
shl esi, 0x1e
mov edi, ecx
shr edi, 2
or edi, esi
xor edx, edi
mov ebp, ecx
shld ebp, ebx, 0x19
xor edi, edi
or edi, ebp
mov ebp, dword [esp + 0x44]
shl ebx, 0x19
mov esi, ecx
shr esi, 7
or esi, ebx
xor eax, edi
mov edi, dword [esp + 0x40]
xor edx, esi
mov esi, dword [esp + 0x30]
xor ebp, ecx
and ebp, dword [esp + 0x2c]
mov ebx, edi
xor ebx, esi
and ebx, dword [esp + 0x28]
and edi, esi
mov esi, dword [esp + 0x44]
and esi, ecx
mov ecx, dword [esp + 0x60]
xor ebx, edi
xor ebp, esi
add edx, ebx
adc eax, ebp
add edx, dword [esp + 0x10]
adc eax, dword [esp + 0x14]
add ecx, 0x20
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], eax
call fcn.00478d10
mov esi, dword [esp + 0x24]
mov dword [esp + 0xe8], edx
mov edx, dword [esp + 0x20]
mov edi, edx
mov ebx, esi
shld ebx, edi, 0x17
mov dword [esp + 0xe4], eax
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 + 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
xor eax, edi
shr ebp, 0xe
mov esi, edx
shl esi, 0x12
or esi, ebp
mov ebp, dword [esp + 0x18]
xor ecx, esi
mov esi, dword [esp + 0x24]
and ebp, edx
mov edi, edx
mov edx, dword [esp + 0x1c]
and edx, esi
not edi
and edi, dword [esp + 0x48]
mov ebx, esi
xor edi, ebp
not ebx
and ebx, dword [esp + 0x4c]
mov esi, dword [esp + 0x38]
xor ebx, edx
add eax, edi
adc ecx, ebx
add eax, dword [esp + 0xe4]
mov edi, esi
adc ecx, dword [esp + 0xe8]
add eax, dword [esp + 0x50]
adc ecx, dword [esp + 0x54]
add eax, 0xaf194f9b
adc ecx, 0x923f82a4
add dword [esp + 0x28], eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], eax
adc dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x3c]
mov eax, esi
mov ebx, ecx
shrd edi, ebx, 0x1c
shr ebx, 0x1c
shl eax, 4
or eax, ebx
xor ebx, ebx
mov ebp, ecx
shld ebp, esi, 0x1e
or ebx, ebp
xor edx, edx
or edx, edi
xor eax, ebx
mov ebx, dword [esp + 0x38]
shl esi, 0x1e
mov edi, ecx
shr edi, 2
or edi, esi
mov ebp, ecx
shld ebp, ebx, 0x19
xor edx, edi
mov esi, ecx
shr esi, 7
shl ebx, 0x19
xor edi, edi
or esi, ebx
or edi, ebp
xor edx, esi
mov esi, dword [esp + 0x38]
xor eax, edi
mov edi, dword [esp + 0x30]
mov ebx, edi
mov ebp, dword [esp + 0x34]
xor ebx, esi
and ebx, dword [esp + 0x40]
xor ebp, ecx
and ebp, dword [esp + 0x44]
and edi, esi
mov esi, dword [esp + 0x34]
and esi, ecx
mov ecx, dword [esp + 0x60]
xor ebx, edi
xor ebp, esi
add edx, ebx
adc eax, ebp
add edx, dword [esp + 0x10]
adc eax, dword [esp + 0x14]
add ecx, 0x28
mov dword [esp + 0x50], edx
mov dword [esp + 0x54], eax
call fcn.00478d10
mov esi, dword [esp + 0x2c]
mov dword [esp + 0xf0], edx
mov edx, dword [esp + 0x28]
xor ecx, ecx
mov ebx, esi
mov dword [esp + 0xec], eax
mov eax, esi
mov edi, edx
shld ebx, edi, 0x17
or ecx, ebx
shl edi, 0x17
xor ebx, ebx
shr eax, 9
or eax, edi
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
mov ebx, edx
shrd ebx, ebp, 0xe
xor edi, edi
or edi, ebx
shr ebp, 0xe
mov esi, edx
shl esi, 0x12
or esi, ebp
mov ebp, dword [esp + 0x20]
xor ecx, esi
mov esi, dword [esp + 0x2c]
xor eax, edi
and ebp, edx
mov edi, edx
mov edx, dword [esp + 0x24]
and edx, esi
mov ebx, esi
mov esi, dword [esp + 0x50]
not edi
and edi, dword [esp + 0x18]
not ebx
and ebx, dword [esp + 0x1c]
xor edi, ebp
xor ebx, edx
add eax, edi
adc ecx, ebx
add eax, dword [esp + 0xec]
adc ecx, dword [esp + 0xf0]
add eax, dword [esp + 0x48]
adc ecx, dword [esp + 0x4c]
add eax, 0xda6d8118
adc ecx, 0xab1c5ed5
add dword [esp + 0x40], eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
adc dword [esp + 0x44], ecx
mov eax, esi
xor edx, edx
mov ecx, dword [esp + 0x54]
mov edi, esi
mov ebx, ecx
shrd edi, ebx, 0x1c
shr ebx, 0x1c
shl eax, 4
or eax, ebx
or edx, edi
xor ebx, ebx
mov ebp, ecx
shld ebp, esi, 0x1e
or ebx, ebp
xor eax, ebx
mov ebx, dword [esp + 0x50]
shl esi, 0x1e
mov edi, ecx
shr edi, 2
or edi, esi
xor edx, edi
mov ebp, ecx
shld ebp, ebx, 0x19
xor edi, edi
or edi, ebp
mov ebp, dword [esp + 0x3c]
shl ebx, 0x19
mov esi, ecx
shr esi, 7
or esi, ebx
xor eax, edi
mov edi, dword [esp + 0x38]
xor edx, esi
mov esi, dword [esp + 0x50]
xor ebp, ecx
and ebp, dword [esp + 0x34]
mov ebx, edi
xor ebx, esi
and ebx, dword [esp + 0x30]
and edi, esi
mov esi, dword [esp + 0x3c]
and esi, ecx
mov ecx, dword [esp + 0x60]
xor ebx, edi
xor ebp, esi
add edx, ebx
adc eax, ebp
add edx, dword [esp + 0x10]
adc eax, dword [esp + 0x14]
add ecx, 0x30
mov dword [esp + 0x48], edx
mov dword [esp + 0x4c], eax
call fcn.00478d10
mov esi, dword [esp + 0x44]
mov ebx, esi
mov dword [esp + 0xf8], edx
mov edx, dword [esp + 0x40]
mov dword [esp + 0xf4], eax
mov eax, esi
mov edi, edx
shld ebx, edi, 0x17
xor ecx, ecx
or ecx, ebx
shl edi, 0x17
mov ebp, edx
shrd ebp, esi, 0x12
xor ebx, ebx
shr eax, 9
or eax, edi
or ebx, ebp
mov ebp, dword [esp + 0x44]
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
or esi, ebp
mov ebp, dword [esp + 0x28]
xor ecx, esi
mov esi, dword [esp + 0x44]
xor eax, edi
and ebp, edx
mov edi, edx
mov edx, dword [esp + 0x2c]
not edi
and edi, dword [esp + 0x20]
and edx, esi
xor edi, ebp
mov ebp, dword [esp + 0x54]
mov ebx, esi
mov esi, dword [esp + 0x30]
not ebx
and ebx, dword [esp + 0x24]
xor ebx, edx
mov edx, dword [esp + 0x48]
add eax, edi
adc ecx, ebx
add eax, dword [esp + 0xf4]
mov ebx, dword [esp + 0x50]
adc ecx, dword [esp + 0xf8]
add eax, dword [esp + 0x18]
mov edi, dword [esp + 0x4c]
adc ecx, dword [esp + 0x1c]
add eax, 0xa3030242
adc ecx, 0xd807aa98
mov dword [esp + 0x14], ecx
add esi, eax
adc dword [esp + 0x34], ecx
mov ecx, ebx
xor ecx, edx
mov dword [esp + 0x80], ecx
mov ecx, ebp
xor ecx, edi
mov dword [esp + 0x84], ecx
mov ecx, ebx
and ecx, edx
mov dword [esp + 0x78], ecx
mov ecx, ebp
and ecx, edi
mov ebp, edx
shrd ebp, edi, 0x1c
shr edi, 0x1c
mov dword [esp + 0x7c], ecx
mov ecx, edx
xor ebx, ebx
or ebx, ebp
shl ecx, 4
or ecx, edi
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x144], ebx
mov ebx, edi
shld edi, edx, 0x1e
xor ebp, ebp
or ebp, edi
shl edx, 0x1e
shr ebx, 2
or ebx, edx
mov edx, dword [esp + 0x4c]
xor dword [esp + 0x144], ebx
xor ecx, ebp
mov ebp, dword [esp + 0x48]
mov edi, edx
shld edx, ebp, 0x19
shr edi, 7
xor ebx, ebx
or ebx, edx
mov edx, dword [esp + 0x144]
shl ebp, 0x19
or edi, ebp
xor edx, edi
mov edi, dword [esp + 0x80]
and edi, dword [esp + 0x38]
xor ecx, ebx
mov ebx, dword [esp + 0x84]
and ebx, dword [esp + 0x3c]
mov dword [esp + 0x30], esi
xor edi, dword [esp + 0x78]
xor ebx, dword [esp + 0x7c]
add edx, edi
adc ecx, ebx
add edx, eax
adc ecx, dword [esp + 0x14]
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x60]
add ecx, 0x38
call fcn.00478d10
mov dword [esp + 0x100], edx
mov edx, dword [esp + 0x34]
xor ecx, ecx
mov ebx, edx
mov dword [esp + 0xfc], eax
mov edi, esi
shld ebx, edi, 0x17
or ecx, ebx
shl edi, 0x17
xor ebx, ebx
mov eax, edx
mov ebp, esi
shrd ebp, edx, 0x12
or ebx, ebp
mov ebp, dword [esp + 0x34]
shr eax, 9
or eax, edi
xor eax, ebx
shr edx, 0x12
mov edi, esi
shl edi, 0xe
or edi, edx
xor ecx, edi
xor edi, edi
mov ebx, esi
shrd ebx, ebp, 0xe
or edi, ebx
shr ebp, 0xe
mov edx, esi
shl edx, 0x12
or edx, ebp
mov ebp, dword [esp + 0x40]
xor ecx, edx
mov edx, dword [esp + 0x34]
xor eax, edi
and ebp, esi
mov edi, esi
mov esi, dword [esp + 0x44]
and esi, edx
not edi
and edi, dword [esp + 0x28]
mov ebx, edx
mov edx, dword [esp + 0x18]
xor edi, ebp
mov ebp, dword [esp + 0x1c]
not ebx
and ebx, dword [esp + 0x2c]
xor ebx, esi
mov esi, dword [esp + 0x38]
add eax, edi
adc ecx, ebx
add eax, dword [esp + 0xfc]
mov ebx, edx
adc ecx, dword [esp + 0x100]
add eax, dword [esp + 0x20]
adc ecx, dword [esp + 0x24]
add eax, 0x45706fbe
adc ecx, 0x12835b01
add esi, eax
adc dword [esp + 0x3c], ecx
shrd ebx, ebp, 0x1c
mov dword [esp + 0x14], ecx
xor edi, edi
mov ecx, edx
or edi, ebx
shl ecx, 4
shr ebp, 0x1c
mov dword [esp + 0x38], esi
mov dword [esp + 0x13c], edi
or ecx, ebp
mov edi, dword [esp + 0x1c]
mov ebx, edi
shld edi, edx, 0x1e
shl edx, 0x1e
shr ebx, 2
or ebx, edx
xor dword [esp + 0x13c], ebx
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
xor ebp, ebp
or ebp, edi
mov edi, edx
shld edx, ebx, 0x19
xor ecx, ebp
shr edi, 7
shl ebx, 0x19
or edi, ebx
mov ebx, dword [esp + 0x13c]
xor ebp, ebp
or ebp, edx
mov edx, dword [esp + 0x80]
and edx, dword [esp + 0x18]
xor ebx, edi
mov edi, dword [esp + 0x84]
and edi, dword [esp + 0x1c]
xor edx, dword [esp + 0x78]
xor edi, dword [esp + 0x7c]
xor ecx, ebp
add ebx, edx
adc ecx, edi
add ebx, eax
adc ecx, dword [esp + 0x14]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x60]
add ecx, 0x40
call fcn.00478d10
mov dword [esp + 0x108], edx
mov edx, dword [esp + 0x3c]
mov ebx, edx
mov edi, esi
shld ebx, edi, 0x17
mov dword [esp + 0x104], eax
mov eax, edx
shl edi, 0x17
mov ebp, esi
shrd ebp, edx, 0x12
xor ecx, ecx
or ecx, ebx
xor ebx, ebx
or ebx, ebp
mov ebp, dword [esp + 0x3c]
shr eax, 9
or eax, edi
xor eax, ebx
shr edx, 0x12
mov edi, esi
shl edi, 0xe
or edi, edx
mov ebx, esi
shrd ebx, ebp, 0xe
xor ecx, edi
mov edx, esi
shr ebp, 0xe
xor edi, edi
or edi, ebx
shl edx, 0x12
or edx, ebp
mov ebp, dword [esp + 0x30]
xor eax, edi
xor ecx, edx
mov edx, dword [esp + 0x3c]
mov edi, esi
mov ebx, edx
and ebp, esi
mov esi, dword [esp + 0x34]
not edi
and edi, dword [esp + 0x40]
not ebx
and ebx, dword [esp + 0x44]
and esi, edx
xor ebx, esi
xor edi, ebp
add eax, edi
adc ecx, ebx
add eax, dword [esp + 0x104]
mov esi, dword [esp + 0x20]
adc ecx, dword [esp + 0x108]
add eax, dword [esp + 0x28]
mov edi, esi
adc ecx, dword [esp + 0x2c]
add eax, 0x4ee4b28c
adc ecx, 0x243185be
add dword [esp + 0x50], eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], eax
adc dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x24]
mov ebx, ecx
shrd edi, ebx, 0x1c
shr ebx, 0x1c
mov eax, esi
shl eax, 4
or eax, ebx
xor ebx, ebx
mov ebp, ecx
shld ebp, esi, 0x1e
or ebx, ebp
xor eax, ebx
mov ebx, dword [esp + 0x20]
xor edx, edx
or edx, edi
shl esi, 0x1e
mov edi, ecx
shr edi, 2
or edi, esi
xor edx, edi
mov ebp, ecx
shld ebp, ebx, 0x19
xor edi, edi
or edi, ebp
shl ebx, 0x19
mov esi, ecx
xor eax, edi
mov edi, dword [esp + 0x20]
shr esi, 7
or esi, ebx
xor edx, esi
mov esi, dword [esp + 0x48]
mov ebp, ecx
xor ebp, dword [esp + 0x4c]
and ecx, dword [esp + 0x4c]
and ebp, dword [esp + 0x1c]
mov ebx, edi
xor ebx, esi
and ebx, dword [esp + 0x18]
and edi, esi
xor ebp, ecx
mov ecx, dword [esp + 0x60]
xor ebx, edi
add edx, ebx
adc eax, ebp
add edx, dword [esp + 0x10]
adc eax, dword [esp + 0x14]
add ecx, 0x48
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], eax
call fcn.00478d10
mov esi, dword [esp + 0x54]
mov dword [esp + 0x110], edx
mov edx, dword [esp + 0x50]
mov edi, edx
mov ebx, esi
shld ebx, edi, 0x17
mov dword [esp + 0x10c], eax
mov eax, esi
shl edi, 0x17
shr eax, 9
xor ecx, ecx
or eax, edi
or ecx, ebx
mov edi, edx
xor ebx, ebx
shl edi, 0xe
mov ebp, edx
shrd ebp, esi, 0x12
or ebx, ebp
mov ebp, dword [esp + 0x54]
xor eax, ebx
shr esi, 0x12
or edi, esi
xor ecx, edi
xor edi, edi
mov ebx, edx
shrd ebx, ebp, 0xe
or edi, ebx
xor eax, edi
shr ebp, 0xe
mov esi, edx
shl esi, 0x12
or esi, ebp
mov ebp, dword [esp + 0x38]
xor ecx, esi
mov esi, dword [esp + 0x54]
and ebp, edx
mov edi, edx
mov edx, dword [esp + 0x3c]
and edx, esi
not edi
and edi, dword [esp + 0x30]
mov ebx, esi
xor edi, ebp
not ebx
and ebx, dword [esp + 0x34]
mov esi, dword [esp + 0x28]
xor ebx, edx
add eax, edi
adc ecx, ebx
add eax, dword [esp + 0x10c]
mov edi, esi
adc ecx, dword [esp + 0x110]
add eax, dword [esp + 0x40]
adc ecx, dword [esp + 0x44]
add eax, 0xd5ffb4e2
adc ecx, 0x550c7dc3
add dword [esp + 0x48], eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], eax
adc dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x2c]
mov eax, esi
mov ebx, ecx
shrd edi, ebx, 0x1c
shr ebx, 0x1c
shl eax, 4
or eax, ebx
xor ebx, ebx
mov ebp, ecx
shld ebp, esi, 0x1e
or ebx, ebp
xor edx, edx
or edx, edi
xor eax, ebx
mov ebx, dword [esp + 0x28]
shl esi, 0x1e
mov edi, ecx
shr edi, 2
or edi, esi
mov ebp, ecx
shld ebp, ebx, 0x19
xor edx, edi
mov esi, ecx
shr esi, 7
shl ebx, 0x19
or esi, ebx
xor edi, edi
or edi, ebp
xor edx, esi
mov esi, dword [esp + 0x20]
xor eax, edi
mov edi, dword [esp + 0x28]
mov ebx, esi
xor ebx, edi
mov ebp, dword [esp + 0x24]
and ebx, dword [esp + 0x18]
xor ebp, ecx
and ebp, dword [esp + 0x1c]
and esi, edi
mov edi, dword [esp + 0x24]
and edi, ecx
mov ecx, dword [esp + 0x60]
xor ebx, esi
xor ebp, edi
add edx, ebx
adc eax, ebp
add edx, dword [esp + 0x10]
adc eax, dword [esp + 0x14]
add ecx, 0x50
mov dword [esp + 0x40], edx
mov dword [esp + 0x44], eax
call fcn.00478d10
mov esi, dword [esp + 0x4c]
xor ecx, ecx
mov dword [esp + 0x114], eax
mov ebx, esi
mov dword [esp + 0x118], edx
mov edx, dword [esp + 0x48]
mov eax, esi
mov edi, edx
shld ebx, edi, 0x17
or ecx, ebx
shl edi, 0x17
xor ebx, ebx
shr eax, 9
or eax, edi
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
shr ebp, 0xe
xor eax, edi
mov esi, edx
shl esi, 0x12
or esi, ebp
mov ebp, dword [esp + 0x50]
xor ecx, esi
mov esi, dword [esp + 0x4c]
and ebp, edx
mov edi, edx
mov edx, dword [esp + 0x54]
and edx, esi
mov ebx, esi
mov esi, dword [esp + 0x40]
not edi
and edi, dword [esp + 0x38]
not ebx
and ebx, dword [esp + 0x3c]
xor edi, ebp
xor ebx, edx
add eax, edi
adc ecx, ebx
add eax, dword [esp + 0x114]
adc ecx, dword [esp + 0x118]
add eax, dword [esp + 0x30]
adc ecx, dword [esp + 0x34]
add eax, 0xf27b896f
adc ecx, 0x72be5d74
add dword [esp + 0x18], eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
adc dword [esp + 0x1c], ecx
mov eax, esi
xor ecx, ecx
shl eax, 4
mov edx, dword [esp + 0x44]
mov edi, esi
mov ebx, edx
shrd edi, ebx, 0x1c
shr ebx, 0x1c
or eax, ebx
or ecx, edi
xor ebx, ebx
mov ebp, edx
shld ebp, esi, 0x1e
or ebx, ebp
xor eax, ebx
mov ebx, dword [esp + 0x40]
shl esi, 0x1e
mov edi, edx
shr edi, 2
or edi, esi
xor ecx, edi
mov ebp, edx
shld ebp, ebx, 0x19
shl ebx, 0x19
mov esi, edx
shr esi, 7
or esi, ebx
xor edi, edi
or edi, ebp
mov ebp, dword [esp + 0x2c]
xor ecx, esi
mov esi, dword [esp + 0x28]
xor eax, edi
mov edi, dword [esp + 0x40]
mov ebx, esi
xor ebx, edi
and ebx, dword [esp + 0x20]
xor ebp, edx
and ebp, dword [esp + 0x24]
and esi, edi
mov edi, dword [esp + 0x2c]
and edi, edx
xor ebx, esi
xor ebp, edi
add ecx, ebx
adc eax, ebp
add ecx, dword [esp + 0x10]
adc eax, dword [esp + 0x14]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x60]
add ecx, 0x58
mov dword [esp + 0x34], eax
call fcn.00478d10
mov esi, dword [esp + 0x1c]
mov ebx, esi
mov dword [esp + 0x120], edx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x11c], eax
mov eax, esi
mov edi, edx
shld ebx, edi, 0x17
xor ecx, ecx
or ecx, ebx
shl edi, 0x17
mov ebp, edx
shrd ebp, esi, 0x12
xor ebx, ebx
or ebx, ebp
mov ebp, dword [esp + 0x1c]
shr eax, 9
or eax, edi
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
or esi, ebp
xor eax, edi
xor ecx, esi
mov esi, dword [esp + 0x1c]
mov edi, edx
and edx, dword [esp + 0x48]
not edi
and edi, dword [esp + 0x50]
mov ebx, esi
and esi, dword [esp + 0x4c]
xor edi, edx
not ebx
and ebx, dword [esp + 0x54]
xor ebx, esi
add eax, edi
adc ecx, ebx
add eax, dword [esp + 0x11c]
mov esi, dword [esp + 0x30]
adc ecx, dword [esp + 0x120]
add eax, dword [esp + 0x38]
mov edi, esi
adc ecx, dword [esp + 0x3c]
add eax, 0x3b1696b1
adc ecx, 0x80deb1fe
add dword [esp + 0x20], eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], eax
adc dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x34]
mov eax, esi
mov ebx, ecx
shrd edi, ebx, 0x1c
shr ebx, 0x1c
shl eax, 4
or eax, ebx
xor ebx, ebx
mov ebp, ecx
shld ebp, esi, 0x1e
or ebx, ebp
xor eax, ebx
mov ebx, dword [esp + 0x30]
xor edx, edx
or edx, edi
shl esi, 0x1e
mov edi, ecx
shr edi, 2
or edi, esi
mov ebp, ecx
shld ebp, ebx, 0x19
xor edx, edi
shl ebx, 0x19
mov esi, ecx
shr esi, 7
or esi, ebx
xor edi, edi
or edi, ebp
mov ebp, dword [esp + 0x44]
xor eax, edi
mov edi, dword [esp + 0x30]
xor edx, esi
mov esi, dword [esp + 0x40]
xor ebp, ecx
and ebp, dword [esp + 0x2c]
mov ebx, esi
xor ebx, edi
and ebx, dword [esp + 0x28]
and esi, edi
mov edi, dword [esp + 0x44]
and edi, ecx
mov ecx, dword [esp + 0x60]
xor ebx, esi
xor ebp, edi
add edx, ebx
adc eax, ebp
add edx, dword [esp + 0x10]
adc eax, dword [esp + 0x14]
add ecx, 0x60
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], eax
call fcn.00478d10
mov dword [esp + 0x124], eax
mov esi, dword [esp + 0x24]
mov ebx, esi
mov dword [esp + 0x128], edx
mov edx, dword [esp + 0x20]
xor ecx, ecx
mov eax, esi
mov edi, edx
shld ebx, edi, 0x17
or ecx, ebx
shl edi, 0x17
xor ebx, ebx
shr eax, 9
or eax, edi
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
xor eax, edi
shr ebp, 0xe
mov esi, edx
shl esi, 0x12
or esi, ebp
mov ebp, dword [esp + 0x18]
xor ecx, esi
mov esi, dword [esp + 0x24]
and ebp, edx
mov edi, edx
mov edx, dword [esp + 0x1c]
and edx, esi
not edi
and edi, dword [esp + 0x48]
mov ebx, esi
mov esi, dword [esp + 0x38]
xor edi, ebp
not ebx
and ebx, dword [esp + 0x4c]
xor ebx, edx
add eax, edi
adc ecx, ebx
add eax, dword [esp + 0x124]
mov edi, esi
adc ecx, dword [esp + 0x128]
add eax, dword [esp + 0x50]
adc ecx, dword [esp + 0x54]
add eax, 0x25c71235
adc ecx, 0x9bdc06a7
add dword [esp + 0x28], eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], eax
adc dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x3c]
mov eax, esi
mov ebx, ecx
shrd edi, ebx, 0x1c
xor edx, edx
or edx, edi
mov ebp, ecx
shld ebp, esi, 0x1e
shr ebx, 0x1c
shl eax, 4
or eax, ebx
mov edi, ecx
shl esi, 0x1e
shr edi, 2
xor ebx, ebx
or edi, esi
or ebx, ebp
mov esi, ecx
xor edx, edi
xor eax, ebx
shr esi, 7
mov ebx, dword [esp + 0x38]
mov ebp, ecx
shld ebp, ebx, 0x19
shl ebx, 0x19
or esi, ebx
xor edi, edi
or edi, ebp
mov ebp, dword [esp + 0x34]
xor eax, edi
mov edi, dword [esp + 0x38]
xor edx, esi
mov esi, dword [esp + 0x30]
xor ebp, ecx
and ebp, dword [esp + 0x44]
mov ebx, esi
xor ebx, edi
and ebx, dword [esp + 0x40]
and esi, edi
mov edi, dword [esp + 0x34]
and edi, ecx
mov ecx, dword [esp + 0x60]
xor ebx, esi
xor ebp, edi
add edx, ebx
adc eax, ebp
add edx, dword [esp + 0x10]
adc eax, dword [esp + 0x14]
add ecx, 0x68
mov dword [esp + 0x50], edx
mov dword [esp + 0x54], eax
call fcn.00478d10
mov esi, dword [esp + 0x2c]
mov ebx, esi
mov dword [esp + 0x130], edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x12c], eax
mov eax, esi
mov edi, edx
shld ebx, edi, 0x17
shl edi, 0x17
xor ecx, ecx
or ecx, ebx
xor ebx, ebx
mov ebp, edx
shrd ebp, esi, 0x12
or ebx, ebp
mov ebp, dword [esp + 0x2c]
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 esi, edx
shr ebp, 0xe
shl esi, 0x12
or esi, ebp
mov ebp, dword [esp + 0x20]
xor eax, edi
xor ecx, esi
mov esi, dword [esp + 0x2c]
mov edi, edx
and ebp, edx
mov edx, dword [esp + 0x24]
not edi
and edi, dword [esp + 0x18]
mov ebx, esi
not ebx
and ebx, dword [esp + 0x1c]
and edx, esi
xor edi, ebp
xor ebx, edx
add eax, edi
adc ecx, ebx
add eax, dword [esp + 0x12c]
adc ecx, dword [esp + 0x130]
add eax, dword [esp + 0x48]
mov esi, dword [esp + 0x50]
adc ecx, dword [esp + 0x4c]
add eax, 0xcf692694
adc ecx, 0xc19bf174
add dword [esp + 0x40], eax
mov edi, esi
mov dword [esp + 0x10], eax
adc dword [esp + 0x44], ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x54]
mov eax, esi
shl eax, 4
mov ebx, ecx
shrd edi, ebx, 0x1c
shr ebx, 0x1c
or eax, ebx
xor ebx, ebx
mov ebp, ecx
shld ebp, esi, 0x1e
or ebx, ebp
xor eax, ebx
mov ebx, dword [esp + 0x50]
xor edx, edx
or edx, edi
shl esi, 0x1e
mov edi, ecx
shr edi, 2
or edi, esi
xor edx, edi
mov ebp, ecx
shld ebp, ebx, 0x19
shl ebx, 0x19
xor edi, edi
or edi, ebp
mov ebp, dword [esp + 0x3c]
mov esi, ecx
shr esi, 7
or esi, ebx
xor eax, edi
mov edi, dword [esp + 0x50]
xor edx, esi
mov esi, dword [esp + 0x38]
mov ebx, esi
xor ebx, edi
and ebx, dword [esp + 0x30]
and esi, edi
mov edi, dword [esp + 0x3c]
xor ebp, ecx
and ebp, dword [esp + 0x34]
and edi, ecx
xor ebx, esi
xor ebp, edi
add edx, ebx
adc eax, ebp
add edx, dword [esp + 0x10]
mov dword [esp + 0x74], 0x494648
adc eax, dword [esp + 0x14]
mov dword [esp + 0x48], edx
mov dword [esp + 0x4c], eax
mov eax, 0x11
mov dword [esp + 0x70], eax
mov ecx, eax
lea esi, [eax - 3]
lea edi, [eax - 7]
dec eax
and eax, 0xf
and ecx, 0xf
lea edx, [esp + ecx*8 + 0xb4]
mov ecx, dword [edx]
mov dword [esp + 0x90], edx
mov edx, dword [edx + 4]
lea eax, [esp + eax*8 + 0xb4]
mov dword [esp + 0x5c], edx
and esi, 0xf
mov edx, dword [esp + esi*8 + 0xb4]
mov dword [esp + 0xa0], eax
lea esi, [esp + esi*8 + 0xb4]
mov eax, edx
mov dword [esp + 0xb0], esi
mov esi, dword [esi + 4]
mov ebp, esi
shrd eax, ebp, 0x13
xor ebx, ebx
or ebx, eax
mov dword [esp + 0x64], edx
mov dword [esp + 0x8c], edi
mov edi, edx
mov dword [esp + 0x68], esi
mov eax, esi
shld esi, edx, 3
add edx, edx
shr eax, 0x1d
add edx, edx
add edx, edx
or eax, edx
mov edx, dword [esp + 0x64]
xor ebx, eax
mov eax, dword [esp + 0x68]
shrd edx, eax, 6
shr ebp, 0x13
shl edi, 0xd
or edi, ebp
xor ebp, ebp
or ebp, esi
shr eax, 6
xor ebx, edx
xor edi, ebp
xor edi, eax
mov eax, dword [esp + 0x5c]
mov ebp, eax
mov dword [esp + 0x6c], ebx
mov ebx, ecx
shrd ebx, ebp, 8
xor esi, esi
or esi, ebx
mov edx, ecx
mov ebx, ecx
mov dword [esp + 0x58], ecx
shrd ecx, eax, 1
shl edx, 0x18
shr ebp, 8
shr eax, 1
or edx, ebp
xor ebp, ebp
or ebp, ecx
mov ecx, dword [esp + 0x58]
shl ebx, 0x1f
or ebx, eax
mov eax, dword [esp + 0x5c]
shrd ecx, eax, 7
shr eax, 7
xor esi, ebp
xor edx, ebx
xor edx, eax
mov eax, dword [esp + 0x8c]
xor esi, ecx
mov ecx, dword [esp + 0x6c]
add ecx, esi
adc edi, edx
dec eax
and eax, 0xf
add ecx, dword [esp + eax*8 + 0xb4]
adc edi, dword [esp + eax*8 + 0xb8]
mov eax, dword [esp + 0xa0]
add dword [eax], ecx
mov edx, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
adc dword [eax + 4], edi
mov edi, edx
xor ecx, ecx
mov ebx, esi
shld ebx, edi, 0x17
or ecx, ebx
shl edi, 0x17
mov ebp, edx
mov eax, esi
shrd ebp, esi, 0x12
xor ebx, ebx
or ebx, ebp
mov ebp, dword [esp + 0x44]
shr eax, 9
or eax, edi
xor eax, ebx
mov edi, edx
shl edi, 0xe
mov ebx, edx
shrd ebx, ebp, 0xe
shr esi, 0x12
or edi, esi
xor ecx, edi
mov esi, edx
xor edi, edi
or edi, ebx
shl esi, 0x12
shr ebp, 0xe
or esi, ebp
mov ebp, dword [esp + 0x28]
xor eax, edi
xor ecx, esi
mov esi, dword [esp + 0x44]
and ebp, edx
mov edi, edx
mov edx, dword [esp + 0x2c]
and edx, esi
mov ebx, esi
mov esi, dword [esp + 0x50]
not edi
and edi, dword [esp + 0x20]
not ebx
and ebx, dword [esp + 0x24]
xor edi, ebp
xor ebx, edx
mov edx, dword [esp + 0x74]
add eax, edi
adc ecx, ebx
add eax, dword [edx - 8]
mov edi, dword [esp + 0x54]
adc ecx, dword [edx - 4]
mov edx, dword [esp + 0xa0]
add eax, dword [edx]
adc ecx, dword [edx + 4]
add eax, dword [esp + 0x18]
mov edx, edi
adc ecx, dword [esp + 0x1c]
add dword [esp + 0x30], eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
adc dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x48]
mov eax, esi
xor eax, ecx
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x4c]
xor edx, eax
mov dword [esp + 0x84], edx
mov edx, esi
and edx, ecx
mov dword [esp + 0x78], edx
mov edx, edi
and edx, eax
mov dword [esp + 0x7c], edx
mov edx, ecx
xor esi, esi
mov edi, ecx
shl edx, 4
mov ebx, eax
shrd edi, ebx, 0x1c
shr ebx, 0x1c
or edx, ebx
or esi, edi
xor ebx, ebx
mov ebp, eax
shld ebp, ecx, 0x1e
shl ecx, 0x1e
or ebx, ebp
xor edx, ebx
mov ebx, dword [esp + 0x48]
mov edi, eax
shr edi, 2
or edi, ecx
xor esi, edi
mov ecx, eax
shld eax, ebx, 0x19
shr ecx, 7
shl ebx, 0x19
or ecx, ebx
xor esi, ecx
mov ecx, dword [esp + 0x84]
and ecx, dword [esp + 0x3c]
xor edi, edi
xor ecx, dword [esp + 0x7c]
or edi, eax
mov eax, dword [esp + 0x80]
and eax, dword [esp + 0x38]
xor edx, edi
xor eax, dword [esp + 0x78]
add esi, eax
adc edx, ecx
add esi, dword [esp + 0x10]
adc edx, dword [esp + 0x14]
xor edi, edi
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x70]
lea ecx, [edx + 1]
and ecx, 0xf
mov eax, dword [esp + ecx*8 + 0xb4]
lea ecx, [esp + ecx*8 + 0xb4]
add edx, 0xfffffffe
mov dword [esp + 0x94], ecx
mov ecx, dword [ecx + 4]
and edx, 0xf
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + edx*8 + 0xb4]
lea edx, [esp + edx*8 + 0xb4]
mov dword [esp + 0xac], edx
mov edx, dword [edx + 4]
mov ebx, ecx
mov ebp, edx
shrd ebx, ebp, 0x13
mov dword [esp + 0x64], ecx
or edi, ebx
mov dword [esp + 0x18], esi
mov esi, ecx
mov dword [esp + 0x68], edx
mov ebx, edx
shld edx, ecx, 3
add ecx, ecx
shr ebp, 0x13
shl esi, 0xd
add ecx, ecx
or esi, ebp
add ecx, ecx
shr ebx, 0x1d
xor ebp, ebp
or ebx, ecx
mov ecx, dword [esp + 0x68]
or ebp, edx
mov edx, dword [esp + 0x64]
shrd edx, ecx, 6
xor edi, ebx
xor esi, ebp
shr ecx, 6
mov dword [esp + 0x58], eax
xor edi, edx
xor esi, ecx
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x6c], edi
xor edi, edi
mov ebp, ecx
mov ebx, eax
shrd ebx, ebp, 8
or edi, ebx
shr ebp, 8
mov edx, eax
mov ebx, eax
shrd eax, ecx, 1
shl edx, 0x18
or edx, ebp
shl ebx, 0x1f
shr ecx, 1
or ebx, ecx
mov ecx, dword [esp + 0x58]
xor ebp, ebp
or ebp, eax
mov eax, dword [esp + 0x5c]
xor edi, ebp
shrd ecx, eax, 7
xor edi, ecx
mov ecx, dword [esp + 0x6c]
xor edx, ebx
shr eax, 7
xor edx, eax
mov eax, dword [esp + 0x8c]
add ecx, edi
adc esi, edx
and eax, 0xf
add ecx, dword [esp + eax*8 + 0xb4]
adc esi, dword [esp + eax*8 + 0xb8]
mov eax, dword [esp + 0x90]
add dword [eax], ecx
adc dword [eax + 4], esi
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x34]
mov ebx, esi
mov ecx, esi
mov edi, eax
shld ebx, edi, 0x17
shl edi, 0x17
mov ebp, eax
shrd ebp, esi, 0x12
xor edx, edx
or edx, ebx
xor ebx, ebx
or ebx, ebp
mov ebp, dword [esp + 0x34]
shr ecx, 9
or ecx, edi
xor ecx, ebx
shr esi, 0x12
mov edi, eax
shl edi, 0xe
or edi, esi
mov ebx, eax
shrd ebx, ebp, 0xe
xor edx, edi
mov esi, eax
xor edi, edi
or edi, ebx
shr ebp, 0xe
shl esi, 0x12
or esi, ebp
mov ebp, dword [esp + 0x40]
xor ecx, edi
xor edx, esi
mov esi, dword [esp + 0x34]
mov edi, eax
not edi
and edi, dword [esp + 0x28]
and ebp, eax
mov eax, dword [esp + 0x44]
mov ebx, esi
not ebx
and ebx, dword [esp + 0x2c]
and eax, esi
xor edi, ebp
xor ebx, eax
mov eax, dword [esp + 0x74]
add ecx, edi
adc edx, ebx
add ecx, dword [eax]
adc edx, dword [eax + 4]
add ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x90]
adc edx, dword [esp + 0x24]
add ecx, dword [eax]
adc edx, dword [eax + 4]
add dword [esp + 0x38], ecx
mov eax, dword [esp + 0x18]
mov dword [esp + 0x14], edx
adc dword [esp + 0x3c], edx
mov edx, dword [esp + 0x1c]
mov ebx, eax
mov ebp, edx
shrd ebx, ebp, 0x1c
xor edi, edi
or edi, ebx
mov esi, eax
shr ebp, 0x1c
mov ebx, edx
shld edx, eax, 0x1e
shl esi, 4
or esi, ebp
xor ebp, ebp
or ebp, edx
shl eax, 0x1e
xor esi, ebp
mov ebp, dword [esp + 0x18]
shr ebx, 2
or ebx, eax
mov eax, dword [esp + 0x1c]
mov edx, eax
shld eax, ebp, 0x19
xor edi, ebx
shr edx, 7
xor ebx, ebx
or ebx, eax
mov eax, dword [esp + 0x80]
and eax, dword [esp + 0x18]
shl ebp, 0x19
xor eax, dword [esp + 0x78]
or edx, ebp
xor edi, edx
mov edx, dword [esp + 0x84]
and edx, dword [esp + 0x1c]
xor esi, ebx
xor edx, dword [esp + 0x7c]
add edi, eax
mov eax, dword [esp + 0x70]
adc esi, edx
mov edx, dword [esp + 0xa0]
add edi, ecx
adc esi, dword [esp + 0x14]
lea ecx, [eax + 2]
and ecx, 0xf
mov eax, dword [esp + ecx*8 + 0xb4]
lea ecx, [esp + ecx*8 + 0xb4]
mov dword [esp + 0x6c], ecx
mov ecx, dword [ecx + 4]
mov dword [esp + 0x5c], ecx
mov ecx, dword [edx]
mov edx, dword [edx + 4]
mov ebx, ecx
mov ebp, edx
shrd ebx, ebp, 0x13
mov dword [esp + 0x24], esi
mov dword [esp + 0x20], edi
mov esi, ecx
xor edi, edi
shl esi, 0xd
shr ebp, 0x13
or edi, ebx
mov dword [esp + 0x58], eax
mov dword [esp + 0x64], ecx
mov dword [esp + 0x68], edx
or esi, ebp
mov ebx, edx
shld edx, ecx, 3
add ecx, ecx
add ecx, ecx
shr ebx, 0x1d
add ecx, ecx
or ebx, ecx
mov ecx, dword [esp + 0x68]
xor edi, ebx
xor ebp, ebp
or ebp, edx
mov edx, dword [esp + 0x64]
shrd edx, ecx, 6
xor esi, ebp
xor edi, edx
shr ecx, 6
xor esi, ecx
mov ecx, dword [esp + 0x5c]
mov ebx, eax
mov ebp, ecx
shrd ebx, ebp, 8
mov dword [esp + 0x88], edi
xor edi, edi
or edi, ebx
mov edx, eax
mov ebx, eax
shrd eax, ecx, 1
shr ebp, 8
shl edx, 0x18
or edx, ebp
shl ebx, 0x1f
shr ecx, 1
or ebx, ecx
mov ecx, dword [esp + 0x58]
xor ebp, ebp
or ebp, eax
mov eax, dword [esp + 0x5c]
shrd ecx, eax, 7
xor edi, ebp
xor edi, ecx
mov ecx, dword [esp + 0x88]
shr eax, 7
xor edx, ebx
xor edx, eax
mov eax, dword [esp + 0x8c]
add ecx, edi
adc esi, edx
mov edx, dword [esp + 0x38]
inc eax
and eax, 0xf
add ecx, dword [esp + eax*8 + 0xb4]
mov edi, edx
adc esi, dword [esp + eax*8 + 0xb8]
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
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 + 0x3c]
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
or esi, ebp
mov ebp, dword [esp + 0x30]
xor ecx, esi
mov esi, dword [esp + 0x3c]
and ebp, edx
xor eax, edi
mov edi, edx
mov edx, dword [esp + 0x34]
and edx, esi
mov ebx, esi
not ebx
and ebx, dword [esp + 0x44]
not edi
and edi, dword [esp + 0x40]
xor ebx, edx
mov edx, dword [esp + 0x74]
xor edi, ebp
add eax, edi
adc ecx, ebx
add eax, dword [edx + 8]
adc ecx, dword [edx + 0xc]
mov edx, dword [esp + 0x94]
add eax, dword [edx]
adc ecx, dword [edx + 4]
add eax, dword [esp + 0x28]
adc ecx, dword [esp + 0x2c]
add dword [esp + 0x50], eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], eax
adc dword [esp + 0x54], ecx
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
mov edx, ecx
mov esi, ecx
mov ebx, eax
shrd edx, ebx, 0x1c
shr ebx, 0x1c
shl esi, 4
or esi, ebx
xor ebx, ebx
mov ebp, eax
shld ebp, ecx, 0x1e
or ebx, ebp
xor esi, ebx
mov ebx, dword [esp + 0x20]
xor edi, edi
or edi, edx
shl ecx, 0x1e
mov edx, eax
shr edx, 2
or edx, ecx
mov ebp, eax
shld ebp, ebx, 0x19
shl ebx, 0x19
xor edi, edx
mov ecx, eax
shr ecx, 7
or ecx, ebx
xor edx, edx
or edx, ebp
xor edi, ecx
mov ecx, dword [esp + 0x20]
xor esi, edx
mov edx, dword [esp + 0x48]
mov ebx, ecx
xor ebx, edx
and ebx, dword [esp + 0x18]
mov ebp, eax
xor ebp, dword [esp + 0x4c]
and eax, dword [esp + 0x4c]
and ebp, dword [esp + 0x1c]
and ecx, edx
xor ebx, ecx
xor ebp, eax
add edi, ebx
adc esi, ebp
add edi, dword [esp + 0x10]
adc esi, dword [esp + 0x14]
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], esi
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x90]
lea ecx, [eax + 3]
and ecx, 0xf
mov eax, dword [esp + ecx*8 + 0xb4]
lea ecx, [esp + ecx*8 + 0xb4]
mov dword [esp + 0x8c], ecx
mov ecx, dword [ecx + 4]
mov dword [esp + 0x5c], ecx
mov ecx, dword [edx]
mov edx, dword [edx + 4]
mov ebx, ecx
mov ebp, edx
shrd ebx, ebp, 0x13
mov dword [esp + 0x64], ecx
mov esi, ecx
xor edi, edi
or edi, ebx
mov dword [esp + 0x68], edx
mov ebx, edx
shld edx, ecx, 3
add ecx, ecx
shr ebp, 0x13
add ecx, ecx
shl esi, 0xd
or esi, ebp
add ecx, ecx
shr ebx, 0x1d
or ebx, ecx
mov ecx, dword [esp + 0x68]
xor ebp, ebp
or ebp, edx
mov edx, dword [esp + 0x64]
shrd edx, ecx, 6
xor esi, ebp
shr ecx, 6
xor esi, ecx
mov ecx, dword [esp + 0x5c]
xor edi, ebx
xor edi, edx
mov ebx, eax
mov ebp, ecx
shrd ebx, ebp, 8
mov dword [esp + 0x58], eax
mov edx, eax
mov dword [esp + 0x88], edi
xor edi, edi
or edi, ebx
mov ebx, eax
shrd eax, ecx, 1
shl edx, 0x18
shr ebp, 8
or edx, ebp
shr ecx, 1
xor ebp, ebp
or ebp, eax
mov eax, dword [esp + 0x5c]
shl ebx, 0x1f
or ebx, ecx
mov ecx, dword [esp + 0x58]
shrd ecx, eax, 7
shr eax, 7
xor edi, ebp
xor edx, ebx
xor edx, eax
mov eax, dword [esp + 0x70]
xor edi, ecx
mov ecx, dword [esp + 0x88]
add ecx, edi
adc esi, edx
add eax, 0xfffffffb
and eax, 0xf
add ecx, dword [esp + eax*8 + 0xb4]
adc esi, dword [esp + eax*8 + 0xb8]
mov eax, dword [esp + 0x6c]
add dword [eax], ecx
adc dword [eax + 4], esi
mov esi, dword [esp + 0x54]
mov eax, esi
shr eax, 9
xor ecx, ecx
mov edx, dword [esp + 0x50]
mov edi, edx
mov ebx, esi
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 + 0x54]
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
mov esi, edx
xor edi, edi
or edi, ebx
shl esi, 0x12
shr ebp, 0xe
or esi, ebp
mov ebp, dword [esp + 0x38]
xor ecx, esi
mov esi, dword [esp + 0x54]
and ebp, edx
xor eax, edi
mov edi, edx
mov edx, dword [esp + 0x3c]
and edx, esi
mov ebx, esi
not ebx
and ebx, dword [esp + 0x34]
not edi
and edi, dword [esp + 0x30]
xor ebx, edx
mov edx, dword [esp + 0x74]
xor edi, ebp
add eax, edi
adc ecx, ebx
add eax, dword [edx + 0x10]
adc ecx, dword [edx + 0x14]
mov edx, dword [esp + 0x6c]
add eax, dword [edx]
adc ecx, dword [edx + 4]
add eax, dword [esp + 0x40]
adc ecx, dword [esp + 0x44]
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 edx, ecx
mov esi, ecx
mov ebx, eax
shrd edx, ebx, 0x1c
xor edi, edi
or edi, edx
mov ebp, eax
shld ebp, ecx, 0x1e
shr ebx, 0x1c
shl esi, 4
or esi, ebx
shl ecx, 0x1e
mov edx, eax
shr edx, 2
xor ebx, ebx
or edx, ecx
or ebx, ebp
mov ecx, eax
xor esi, ebx
mov ebx, dword [esp + 0x28]
xor edi, edx
shr ecx, 7
xor edx, edx
mov ebp, eax
shld ebp, ebx, 0x19
or edx, ebp
mov ebp, dword [esp + 0x24]
xor esi, edx
mov edx, dword [esp + 0x20]
shl ebx, 0x19
or ecx, ebx
xor edi, ecx
mov ecx, dword [esp + 0x28]
xor ebp, eax
and ebp, dword [esp + 0x1c]
mov ebx, edx
xor ebx, ecx
and ebx, dword [esp + 0x18]
and edx, ecx
mov ecx, dword [esp + 0x24]
xor ebx, edx
mov edx, dword [esp + 0x70]
and ecx, eax
xor ebp, ecx
add edi, ebx
adc esi, ebp
add edi, dword [esp + 0x10]
lea ecx, [edx + 4]
adc esi, dword [esp + 0x14]
mov edx, dword [esp + 0x94]
and ecx, 0xf
mov eax, dword [esp + ecx*8 + 0xb4]
lea ecx, [esp + ecx*8 + 0xb4]
mov dword [esp + 0x90], ecx
mov ecx, dword [ecx + 4]
mov dword [esp + 0x5c], ecx
mov ecx, dword [edx]
mov edx, dword [edx + 4]
mov ebx, ecx
mov ebp, edx
shrd ebx, ebp, 0x13
mov dword [esp + 0x40], edi
mov dword [esp + 0x64], ecx
xor edi, edi
or edi, ebx
mov dword [esp + 0x68], edx
mov ebx, edx
mov dword [esp + 0x44], esi
mov esi, ecx
shld edx, ecx, 3
shr ebp, 0x13
add ecx, ecx
add ecx, ecx
shl esi, 0xd
or esi, ebp
shr ebx, 0x1d
xor ebp, ebp
or ebp, edx
mov edx, dword [esp + 0x64]
add ecx, ecx
or ebx, ecx
mov ecx, dword [esp + 0x68]
shrd edx, ecx, 6
xor esi, ebp
xor edi, ebx
shr ecx, 6
xor esi, ecx
mov ecx, dword [esp + 0x5c]
xor edi, edx
mov ebp, ecx
mov ebx, eax
shrd ebx, ebp, 8
mov dword [esp + 0x88], edi
xor edi, edi
or edi, ebx
mov edx, eax
mov ebx, eax
mov dword [esp + 0x58], eax
shr ebp, 8
shl edx, 0x18
shrd eax, ecx, 1
or edx, ebp
xor ebp, ebp
shl ebx, 0x1f
shr ecx, 1
or ebx, ecx
mov ecx, dword [esp + 0x58]
or ebp, eax
mov eax, dword [esp + 0x5c]
shrd ecx, eax, 7
xor edi, ebp
xor edi, ecx
mov ecx, dword [esp + 0x88]
xor edx, ebx
shr eax, 7
xor edx, eax
mov eax, dword [esp + 0x70]
add ecx, edi
adc esi, edx
mov edx, dword [esp + 0x48]
add eax, 0xfffffffc
and eax, 0xf
add ecx, dword [esp + eax*8 + 0xb4]
mov edi, edx
adc esi, dword [esp + eax*8 + 0xb8]
mov eax, dword [esp + 0x8c]
add dword [eax], ecx
mov ebp, edx
adc dword [eax + 4], esi
mov esi, dword [esp + 0x4c]
xor ecx, ecx
mov ebx, esi
shld ebx, edi, 0x17
or ecx, ebx
shl edi, 0x17
xor ebx, ebx
mov eax, esi
shrd ebp, esi, 0x12
or ebx, ebp
mov ebp, dword [esp + 0x4c]
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
shr ebp, 0xe
mov esi, edx
shl esi, 0x12
or esi, ebp
mov ebp, dword [esp + 0x50]
xor ecx, esi
mov esi, dword [esp + 0x4c]
xor eax, edi
and ebp, edx
mov edi, edx
mov edx, dword [esp + 0x54]
and edx, esi
not edi
and edi, dword [esp + 0x38]
mov ebx, esi
not ebx
and ebx, dword [esp + 0x3c]
xor edi, ebp
xor ebx, edx
mov edx, dword [esp + 0x74]
add eax, edi
adc ecx, ebx
add eax, dword [edx + 0x18]
adc ecx, dword [edx + 0x1c]
mov edx, dword [esp + 0x8c]
add eax, dword [edx]
adc ecx, dword [edx + 4]
add eax, dword [esp + 0x30]
adc ecx, dword [esp + 0x34]
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 eax, dword [esp + 0x44]
mov edx, ecx
mov esi, ecx
shl esi, 4
mov ebx, eax
shrd edx, ebx, 0x1c
shr ebx, 0x1c
or esi, ebx
xor ebx, ebx
xor edi, edi
or edi, edx
mov ebp, eax
shld ebp, ecx, 0x1e
or ebx, ebp
xor esi, ebx
mov ebx, dword [esp + 0x40]
shl ecx, 0x1e
mov edx, eax
shr edx, 2
or edx, ecx
xor edi, edx
xor edx, edx
mov ebp, eax
shld ebp, ebx, 0x19
or edx, ebp
mov ebp, dword [esp + 0x2c]
shl ebx, 0x19
xor esi, edx
mov edx, dword [esp + 0x28]
mov ecx, eax
shr ecx, 7
or ecx, ebx
xor edi, ecx
mov ecx, dword [esp + 0x40]
xor ebp, eax
and ebp, dword [esp + 0x24]
mov ebx, edx
xor ebx, ecx
and ebx, dword [esp + 0x20]
and edx, ecx
mov ecx, dword [esp + 0x2c]
and ecx, eax
xor ebp, ecx
xor ebx, edx
mov edx, dword [esp + 0x70]
add edi, ebx
adc esi, ebp
add edi, dword [esp + 0x10]
lea ecx, [edx + 5]
adc esi, dword [esp + 0x14]
mov edx, dword [esp + 0x6c]
and ecx, 0xf
mov eax, dword [esp + ecx*8 + 0xb4]
lea ecx, [esp + ecx*8 + 0xb4]
mov dword [esp + 0x94], ecx
mov ecx, dword [ecx + 4]
mov dword [esp + 0x5c], ecx
mov ecx, dword [edx]
mov edx, dword [edx + 4]
mov ebx, ecx
mov ebp, edx
shrd ebx, ebp, 0x13
mov dword [esp + 0x30], edi
xor edi, edi
mov dword [esp + 0x34], esi
mov esi, ecx
mov dword [esp + 0x64], ecx
or edi, ebx
mov ebx, edx
mov dword [esp + 0x68], edx
shld edx, ecx, 3
add ecx, ecx
shr ebp, 0x13
shl esi, 0xd
add ecx, ecx
or esi, ebp
shr ebx, 0x1d
add ecx, ecx
xor ebp, ebp
mov dword [esp + 0x58], eax
or ebx, ecx
mov ecx, dword [esp + 0x68]
or ebp, edx
mov edx, dword [esp + 0x64]
xor edi, ebx
xor esi, ebp
shrd edx, ecx, 6
xor edi, edx
shr ecx, 6
xor esi, ecx
mov ecx, dword [esp + 0x5c]
mov ebp, ecx
mov dword [esp + 0x88], edi
xor edi, edi
mov ebx, eax
shrd ebx, ebp, 8
or edi, ebx
mov edx, eax
mov ebx, eax
shrd eax, ecx, 1
shr ebp, 8
shl ebx, 0x1f
shl edx, 0x18
or edx, ebp
shr ecx, 1
or ebx, ecx
mov ecx, dword [esp + 0x58]
xor ebp, ebp
or ebp, eax
mov eax, dword [esp + 0x5c]
xor edi, ebp
shrd ecx, eax, 7
xor edi, ecx
mov ecx, dword [esp + 0x88]
xor edx, ebx
shr eax, 7
xor edx, eax
mov eax, dword [esp + 0xb0]
add ecx, edi
adc esi, edx
add ecx, dword [eax]
mov edx, dword [esp + 0x18]
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 + 0x1c]
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 + 0x1c]
shr eax, 9
or eax, edi
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
xor edi, edi
or edi, ebx
mov esi, edx
shl esi, 0x12
shr ebp, 0xe
or esi, ebp
xor eax, edi
xor ecx, esi
mov esi, dword [esp + 0x1c]
mov edi, edx
mov ebx, esi
not edi
not ebx
and edx, dword [esp + 0x48]
and ebx, dword [esp + 0x54]
and esi, dword [esp + 0x4c]
and edi, dword [esp + 0x50]
xor ebx, esi
xor edi, edx
mov edx, dword [esp + 0x74]
add eax, edi
adc ecx, ebx
add eax, dword [edx + 0x20]
adc ecx, dword [edx + 0x24]
mov edx, dword [esp + 0x90]
add eax, dword [edx]
adc ecx, dword [edx + 4]
add eax, dword [esp + 0x38]
adc ecx, dword [esp + 0x3c]
add dword [esp + 0x20], eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], eax
adc dword [esp + 0x24], ecx
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
mov edx, ecx
mov esi, ecx
mov ebx, eax
shrd edx, ebx, 0x1c
shr ebx, 0x1c
shl esi, 4
or esi, ebx
xor ebx, ebx
mov ebp, eax
shld ebp, ecx, 0x1e
or ebx, ebp
xor esi, ebx
mov ebx, dword [esp + 0x30]
shl ecx, 0x1e
xor edi, edi
or edi, edx
mov edx, eax
shr edx, 2
or edx, ecx
xor edi, edx
xor edx, edx
mov ebp, eax
shld ebp, ebx, 0x19
or edx, ebp
mov ebp, dword [esp + 0x44]
shl ebx, 0x19
xor esi, edx
mov edx, dword [esp + 0x40]
mov ecx, eax
shr ecx, 7
or ecx, ebx
xor edi, ecx
mov ecx, dword [esp + 0x30]
mov ebx, edx
xor ebx, ecx
and ebx, dword [esp + 0x28]
and edx, ecx
mov ecx, dword [esp + 0x44]
xor ebp, eax
and ebp, dword [esp + 0x2c]
and ecx, eax
xor ebp, ecx
xor ebx, edx
mov edx, dword [esp + 0x70]
add edi, ebx
adc esi, ebp
add edi, dword [esp + 0x10]
lea ecx, [edx + 6]
adc esi, dword [esp + 0x14]
mov edx, dword [esp + 0x8c]
and ecx, 0xf
mov eax, dword [esp + ecx*8 + 0xb4]
lea ecx, [esp + ecx*8 + 0xb4]
mov dword [esp + 0x6c], ecx
mov ecx, dword [ecx + 4]
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], ecx
mov ecx, dword [edx]
mov edx, dword [edx + 4]
mov ebx, ecx
xor edi, edi
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
add ecx, ecx
add ecx, ecx
shr ebp, 0x13
add ecx, ecx
shl esi, 0xd
or esi, ebp
shr ebx, 0x1d
or ebx, ecx
mov ecx, dword [esp + 0x68]
xor ebp, ebp
or ebp, edx
mov edx, dword [esp + 0x64]
shrd edx, ecx, 6
xor edi, ebx
xor esi, ebp
shr ecx, 6
xor edi, edx
xor esi, ecx
mov ecx, dword [esp + 0x5c]
mov ebp, ecx
mov ebx, eax
shrd ebx, ebp, 8
mov dword [esp + 0xb0], edi
xor edi, edi
or edi, ebx
mov edx, eax
mov ebx, eax
shrd eax, ecx, 1
shl edx, 0x18
shr ebp, 8
or edx, ebp
shr ecx, 1
shl ebx, 0x1f
or ebx, ecx
mov ecx, dword [esp + 0x58]
xor ebp, ebp
or ebp, eax
mov eax, dword [esp + 0x5c]
shrd ecx, eax, 7
xor edi, ebp
xor edi, ecx
mov ecx, dword [esp + 0xb0]
shr eax, 7
xor edx, ebx
xor edx, eax
mov eax, dword [esp + 0xac]
add ecx, edi
adc esi, edx
add ecx, dword [eax]
mov edx, dword [esp + 0x20]
adc esi, dword [eax + 4]
mov eax, dword [esp + 0x94]
add dword [eax], ecx
mov edi, edx
mov ebp, edx
adc dword [eax + 4], esi
mov esi, dword [esp + 0x24]
mov ebx, esi
shld ebx, edi, 0x17
mov eax, esi
shl edi, 0x17
shr eax, 9
or eax, edi
xor ecx, ecx
or ecx, ebx
mov edi, edx
xor ebx, ebx
shl edi, 0xe
shrd ebp, esi, 0x12
or ebx, ebp
mov ebp, dword [esp + 0x24]
xor eax, ebx
shr esi, 0x12
or edi, esi
xor ecx, edi
mov ebx, edx
shrd ebx, ebp, 0xe
mov esi, edx
xor edi, edi
or edi, ebx
shr ebp, 0xe
shl esi, 0x12
or esi, ebp
mov ebp, dword [esp + 0x18]
xor ecx, esi
mov esi, dword [esp + 0x24]
and ebp, edx
xor eax, edi
mov edi, edx
mov edx, dword [esp + 0x1c]
and edx, esi
mov ebx, esi
not ebx
and ebx, dword [esp + 0x4c]
not edi
and edi, dword [esp + 0x48]
xor ebx, edx
mov edx, dword [esp + 0x74]
xor edi, ebp
add eax, edi
adc ecx, ebx
add eax, dword [edx + 0x28]
adc ecx, dword [edx + 0x2c]
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 + 0x28], eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], eax
adc dword [esp + 0x2c], ecx
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
mov edx, ecx
mov esi, ecx
mov ebx, eax
shrd edx, ebx, 0x1c
shr ebx, 0x1c
shl esi, 4
or esi, ebx
xor ebx, ebx
mov ebp, eax
shld ebp, ecx, 0x1e
or ebx, ebp
xor edi, edi
or edi, edx
xor esi, ebx
mov ebx, dword [esp + 0x38]
shl ecx, 0x1e
mov edx, eax
shr edx, 2
or edx, ecx
xor edi, edx
mov ebp, eax
shld ebp, ebx, 0x19
xor edx, edx
shl ebx, 0x19
or edx, ebp
mov ebp, dword [esp + 0x34]
mov ecx, eax
shr ecx, 7
or ecx, ebx
xor esi, edx
mov edx, dword [esp + 0x30]
xor edi, ecx
mov ecx, dword [esp + 0x38]
mov ebx, edx
xor ebx, ecx
xor ebp, eax
and ebx, dword [esp + 0x40]
and ebp, dword [esp + 0x44]
and edx, ecx
mov ecx, dword [esp + 0x34]
and ecx, eax
xor ebp, ecx
mov ecx, dword [esp + 0x70]
xor ebx, edx
add edi, ebx
adc esi, ebp
add edi, dword [esp + 0x10]
adc esi, dword [esp + 0x14]
add ecx, 7
and ecx, 0xf
mov edx, dword [esp + ecx*8 + 0xb8]
mov eax, dword [esp + ecx*8 + 0xb4]
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x90]
mov ecx, dword [edx]
mov edx, dword [edx + 4]
mov ebx, ecx
mov ebp, edx
shrd ebx, ebp, 0x13
mov dword [esp + 0x64], ecx
mov dword [esp + 0x50], edi
xor edi, edi
or edi, ebx
mov dword [esp + 0x68], edx
mov ebx, edx
mov dword [esp + 0x54], esi
mov esi, ecx
shld edx, ecx, 3
add ecx, ecx
shr ebp, 0x13
add ecx, ecx
add ecx, ecx
shl esi, 0xd
or esi, ebp
shr ebx, 0x1d
or ebx, ecx
mov ecx, dword [esp + 0x68]
xor ebp, ebp
or ebp, edx
mov edx, dword [esp + 0x64]
shrd edx, ecx, 6
shr ecx, 6
xor edi, ebx
xor esi, ebp
xor esi, ecx
mov ecx, dword [esp + 0x5c]
xor edi, edx
mov ebp, ecx
mov ebx, eax
shrd ebx, ebp, 8
mov dword [esp + 0xac], edi
xor edi, edi
or edi, ebx
mov dword [esp + 0x58], eax
mov edx, eax
mov ebx, eax
shrd eax, ecx, 1
shl edx, 0x18
shr ebp, 8
or edx, ebp
shr ecx, 1
xor ebp, ebp
or ebp, eax
mov eax, dword [esp + 0x5c]
shl ebx, 0x1f
or ebx, ecx
mov ecx, dword [esp + 0x58]
shrd ecx, eax, 7
xor edi, ebp
shr eax, 7
xor edx, ebx
xor edi, ecx
mov ecx, dword [esp + 0xac]
xor edx, eax
mov eax, dword [esp + 0xa0]
add ecx, edi
adc esi, edx
add ecx, dword [eax]
mov edx, dword [esp + 0x28]
adc esi, dword [eax + 4]
mov eax, dword [esp + 0x6c]
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
shl edi, 0x17
xor ecx, ecx
or ecx, ebx
xor ebx, ebx
mov eax, esi
shrd ebp, esi, 0x12
or ebx, ebp
mov ebp, dword [esp + 0x2c]
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 esi, edx
shl esi, 0x12
shr ebp, 0xe
or esi, ebp
mov ebp, dword [esp + 0x20]
xor ecx, esi
mov esi, dword [esp + 0x2c]
xor eax, edi
and ebp, edx
mov edi, edx
mov edx, dword [esp + 0x24]
and edx, esi
mov ebx, esi
not ebx
and ebx, dword [esp + 0x1c]
not edi
and edi, dword [esp + 0x18]
xor ebx, edx
mov edx, dword [esp + 0x74]
xor edi, ebp
add eax, edi
adc ecx, ebx
add eax, dword [edx + 0x30]
adc ecx, dword [edx + 0x34]
mov edx, dword [esp + 0x6c]
add eax, dword [edx]
adc ecx, dword [edx + 4]
add eax, dword [esp + 0x48]
adc ecx, dword [esp + 0x4c]
add dword [esp + 0x40], eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x50]
adc dword [esp + 0x44], ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x54]
mov edx, eax
mov ebx, ecx
shrd edx, ebx, 0x1c
mov esi, eax
xor edi, edi
mov ebp, ecx
shr ebx, 0x1c
or edi, edx
shl esi, 4
shld ebp, eax, 0x1e
or esi, ebx
mov edx, ecx
shr edx, 2
xor ebx, ebx
shl eax, 0x1e
or ebx, ebp
or edx, eax
xor esi, ebx
mov ebx, dword [esp + 0x50]
xor edi, edx
xor edx, edx
mov ebp, ecx
shld ebp, ebx, 0x19
or edx, ebp
mov ebp, dword [esp + 0x3c]
shl ebx, 0x19
xor esi, edx
mov edx, dword [esp + 0x38]
mov eax, ecx
shr eax, 7
or eax, ebx
xor edi, eax
mov eax, dword [esp + 0x50]
mov ebx, edx
xor ebx, eax
and ebx, dword [esp + 0x30]
and edx, eax
mov eax, dword [esp + 0x3c]
xor ebp, ecx
and ebp, dword [esp + 0x34]
and eax, ecx
xor ebp, eax
mov eax, dword [esp + 0x70]
xor ebx, edx
add edi, ebx
adc esi, ebp
add edi, dword [esp + 0x10]
adc esi, dword [esp + 0x14]
add dword [esp + 0x74], 0x40
add eax, 8
mov edx, edi
lea edi, [eax - 1]
cmp edi, 0x50
mov dword [esp + 0x48], edx
mov dword [esp + 0x4c], esi
mov dword [esp + 0x70], eax
jl 0x47a3a0
mov eax, dword [esp + 0x158]
add dword [eax], edx
mov edx, dword [esp + 0x50]
adc dword [eax + 4], esi
add dword [eax + 8], edx
mov edx, dword [esp + 0x3c]
adc dword [eax + 0xc], ecx
mov ecx, dword [esp + 0x38]
add dword [eax + 0x10], ecx
mov ecx, dword [esp + 0x30]
adc dword [eax + 0x14], edx
add dword [eax + 0x18], ecx
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x40]
adc dword [eax + 0x1c], edx
add dword [eax + 0x20], ecx
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x28]
adc dword [eax + 0x24], edx
add dword [eax + 0x28], ecx
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x20]
adc dword [eax + 0x2c], edx
add dword [eax + 0x30], ecx
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x18]
adc dword [eax + 0x34], edx
add dword [eax + 0x38], ecx
mov edx, dword [esp + 0x1c]
adc dword [eax + 0x3c], edx
sub dword [esp + 0x60], 0xffffff80
cmp dword [esp + 0x15c], 0
jne 0x478d50
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret