Function at 0x40f262
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x88
push ebx
push ebp
push esi
push edi
mov edx, dword [esp + 0x9c]
mov ecx, dword [edx]
mov dword [esp + 0x58], ecx
mov ecx, dword [edx + 4]
mov dword [esp + 0x5c], ecx
mov ecx, dword [edx + 8]
mov dword [esp + 0x50], ecx
mov ecx, dword [edx + 0xc]
mov dword [esp + 0x54], ecx
mov ecx, dword [edx + 0x10]
mov dword [esp + 0x40], ecx
mov ecx, dword [edx + 0x14]
mov dword [esp + 0x44], ecx
mov ecx, dword [edx + 0x18]
mov dword [esp + 0x48], ecx
mov ecx, dword [edx + 0x1c]
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x4c], ecx
mov ecx, dword [edx + 0x20]
mov dword [esp + 0x20], ecx
mov ecx, dword [edx + 0x24]
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0x28]
mov dword [esp + 0x38], ecx
mov ecx, dword [edx + 0x2c]
mov dword [esp + 0x3c], ecx
mov ecx, dword [edx + 0x30]
mov dword [esp + 0x28], ecx
mov ecx, dword [edx + 0x34]
mov dword [esp + 0x2c], ecx
mov ecx, dword [edx + 0x38]
mov dword [esp + 0x30], ecx
mov ecx, dword [edx + 0x3c]
xor edi, edi
mov dword [esp + 0x34], ecx
mov dword [esp + 0x10], edi
jmp 0x40f2fc
mov edx, dword [esp + 0x9c]
mov eax, dword [esp + 0x1c]
mov esi, dword [eax]
mov ecx, dword [eax + 4]
add eax, 8
mov dword [esp + 0x1c], eax
mov eax, ecx
sar ecx, 0x1f
or ecx, esi
xor ebx, ebx
or eax, ebx
mov esi, ecx
mov ecx, eax
mov ebx, esi
shrd ecx, ebx, 8
mov ebp, eax
mov dword [esp + 0x78], esi
shld esi, ebp, 8
shr ebx, 8
xor ebx, esi
shl ebp, 8
xor ecx, ebp
mov esi, 0xff00ff
and ecx, esi
and ebx, esi
mov esi, dword [esp + 0x78]
shld esi, eax, 8
shl eax, 8
xor ecx, eax
xor ebx, esi
shl edi, 3
mov dword [esp + 0x14], esi
lea esi, [edi + edx + 0x50]
mov eax, ecx
mov edx, ebx
shrd eax, edx, 0x10
mov dword [esp + 0x14], edi
mov edi, eax
mov eax, ecx
mov ebp, ebx
shld ebp, eax, 0x10
shld ebx, ecx, 0x10
shr edx, 0x10
shl eax, 0x10
xor edi, eax
xor edx, ebp
mov eax, 0xffff
and edx, eax
xor edx, ebx
and edi, eax
mov eax, dword [esp + 0x20]
shl ecx, 0x10
xor edi, ecx
mov dword [esi + 4], edx
mov edx, dword [esp + 0x24]
mov dword [esi], edi
mov ecx, eax
mov ebx, edx
shld ebx, ecx, 0x17
mov dword [esp + 0x18], esi
mov edi, edx
mov esi, edx
shl ecx, 0x17
sar edi, 0x1f
sar esi, 9
or edi, ebx
or esi, ecx
mov ebx, eax
mov cl, 0x12
xor ebp, ebp
shl ebx, 0xe
call fcn.004184d0
or ebx, edx
mov edx, dword [esp + 0x24]
or ebp, eax
mov eax, dword [esp + 0x20]
xor edi, ebx
mov ebx, eax
xor esi, ebp
mov cl, 0xe
xor ebp, ebp
shl ebx, 0x12
call fcn.004184d0
mov ecx, dword [esp + 0x24]
or ebp, eax
mov eax, dword [esp + 0x20]
or ebx, edx
mov edx, dword [esp + 0x38]
and edx, dword [esp + 0x20]
xor edi, ebx
mov ebx, dword [esp + 0x3c]
and ebx, dword [esp + 0x24]
not ecx
and ecx, dword [esp + 0x2c]
not eax
and eax, dword [esp + 0x28]
xor ecx, ebx
xor eax, edx
xor esi, ebp
add esi, eax
mov eax, dword [esp + 0x14]
adc edi, ecx
add esi, dword [eax + 0x41cda8]
mov ecx, dword [esp + 0x50]
adc edi, dword [eax + 0x41cdac]
mov eax, dword [esp + 0x18]
add esi, dword [eax]
adc edi, dword [eax + 4]
add esi, dword [esp + 0x30]
mov eax, dword [esp + 0x58]
adc edi, dword [esp + 0x34]
add dword [esp + 0x48], esi
mov dword [esp + 0x64], edi
mov ebx, eax
adc dword [esp + 0x4c], edi
mov edi, dword [esp + 0x5c]
xor ecx, eax
mov dword [esp + 0x88], ecx
mov ecx, dword [esp + 0x54]
xor ecx, edi
mov dword [esp + 0x8c], ecx
mov ecx, dword [esp + 0x50]
and ecx, eax
mov dword [esp + 0x90], ecx
mov ecx, dword [esp + 0x54]
and ecx, edi
mov dword [esp + 0x94], ecx
mov edx, edi
mov cl, 0x1c
xor ebp, ebp
shl ebx, 4
call fcn.004184d0
or ebp, eax
or ebx, edx
mov edx, dword [esp + 0x58]
mov eax, edi
mov ecx, edi
shld edi, edx, 0x1e
sar eax, 2
sar ecx, 0x1f
or ecx, edi
mov edi, dword [esp + 0x58]
shl edx, 0x1e
or eax, edx
xor ebp, eax
mov eax, dword [esp + 0x5c]
xor ebx, ecx
mov ecx, eax
mov edx, eax
shld eax, edi, 0x19
sar ecx, 7
sar edx, 0x1f
or edx, eax
mov eax, dword [esp + 0x88]
and eax, dword [esp + 0x40]
shl edi, 0x19
xor eax, dword [esp + 0x90]
or ecx, edi
xor ebp, ecx
mov ecx, dword [esp + 0x8c]
and ecx, dword [esp + 0x44]
xor ebx, edx
xor ecx, dword [esp + 0x94]
add ebp, eax
adc ebx, ecx
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
add ebp, esi
adc ebx, dword [esp + 0x64]
xor esi, esi
inc dword [esp + 0x10]
add eax, 8
mov dword [esp + 0x1c], eax
mov eax, edx
or eax, esi
sar edx, 0x1f
or edx, ecx
mov ecx, eax
mov edi, edx
mov dword [esp + 0x34], ebx
mov ebx, edi
mov esi, ecx
shld ebx, esi, 8
shrd eax, edx, 8
shld edi, ecx, 8
shl esi, 8
xor eax, esi
shl ecx, 8
shr edx, 8
xor edx, ebx
mov esi, 0xff00ff
and eax, esi
xor eax, ecx
mov ecx, dword [esp + 0x10]
and edx, esi
mov esi, dword [esp + 0x9c]
xor edx, edi
shl ecx, 3
mov dword [esp + 0x14], ecx
lea ecx, [ecx + esi + 0x50]
mov esi, eax
mov edi, edx
shrd esi, edi, 0x10
mov ebx, esi
mov dword [esp + 0x30], ebp
mov esi, eax
mov ebp, edx
shld ebp, esi, 0x10
shr edi, 0x10
shl esi, 0x10
xor ebx, esi
xor edi, ebp
shld edx, eax, 0x10
mov esi, 0xffff
and ebx, esi
and edi, esi
xor edi, edx
mov edx, dword [esp + 0x4c]
mov dword [ecx + 4], edi
shl eax, 0x10
xor ebx, eax
mov eax, dword [esp + 0x48]
mov dword [ecx], ebx
mov dword [esp + 0x18], ecx
mov ecx, eax
mov ebx, edx
shld ebx, ecx, 0x17
mov edi, edx
mov esi, edx
shl ecx, 0x17
sar edi, 0x1f
sar esi, 9
or edi, ebx
or esi, ecx
mov ebx, eax
mov cl, 0x12
xor ebp, ebp
shl ebx, 0xe
call fcn.004184d0
or ebp, eax
mov eax, dword [esp + 0x48]
or ebx, edx
xor esi, ebp
xor edi, ebx
mov edx, dword [esp + 0x4c]
mov ebx, eax
mov cl, 0xe
xor ebp, ebp
shl ebx, 0x12
call fcn.004184d0
mov ecx, dword [esp + 0x4c]
or ebp, eax
mov eax, dword [esp + 0x48]
or ebx, edx
mov edx, dword [esp + 0x20]
and edx, dword [esp + 0x48]
xor edi, ebx
mov ebx, dword [esp + 0x24]
and ebx, dword [esp + 0x4c]
not eax
and eax, dword [esp + 0x38]
not ecx
and ecx, dword [esp + 0x3c]
xor eax, edx
xor ecx, ebx
xor esi, ebp
add esi, eax
mov eax, dword [esp + 0x14]
adc edi, ecx
add esi, dword [eax + 0x41cda8]
mov cl, 0x1c
adc edi, dword [eax + 0x41cdac]
mov eax, dword [esp + 0x18]
add esi, dword [eax]
adc edi, dword [eax + 4]
add esi, dword [esp + 0x28]
mov eax, dword [esp + 0x30]
adc edi, dword [esp + 0x2c]
add dword [esp + 0x40], esi
mov dword [esp + 0x64], edi
mov ebx, eax
adc dword [esp + 0x44], edi
mov edi, dword [esp + 0x34]
mov edx, edi
xor ebp, ebp
shl ebx, 4
call fcn.004184d0
or ebx, edx
mov edx, dword [esp + 0x30]
or ebp, eax
mov eax, edi
mov ecx, edi
shld edi, edx, 0x1e
sar eax, 2
sar ecx, 0x1f
or ecx, edi
mov edi, dword [esp + 0x30]
shl edx, 0x1e
or eax, edx
xor ebx, ecx
xor ebp, eax
mov eax, dword [esp + 0x34]
mov ecx, eax
mov edx, eax
shld eax, edi, 0x19
sar ecx, 7
sar edx, 0x1f
or edx, eax
mov eax, dword [esp + 0x88]
and eax, dword [esp + 0x30]
shl edi, 0x19
xor eax, dword [esp + 0x90]
or ecx, edi
xor ebp, ecx
mov ecx, dword [esp + 0x8c]
and ecx, dword [esp + 0x34]
xor ebx, edx
xor ecx, dword [esp + 0x94]
add ebp, eax
adc ebx, ecx
add ebp, esi
adc ebx, dword [esp + 0x64]
inc dword [esp + 0x10]
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], ebx
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
xor esi, esi
add eax, 8
mov dword [esp + 0x1c], eax
mov eax, edx
or eax, esi
sar edx, 0x1f
or edx, ecx
mov ecx, eax
mov edi, edx
mov ebx, edi
mov esi, ecx
shld ebx, esi, 8
shrd eax, edx, 8
shld edi, ecx, 8
shl esi, 8
xor eax, esi
shl ecx, 8
shr edx, 8
xor edx, ebx
mov esi, 0xff00ff
and eax, esi
xor eax, ecx
mov ecx, dword [esp + 0x10]
and edx, esi
mov esi, dword [esp + 0x9c]
xor edx, edi
shl ecx, 3
mov dword [esp + 0x14], ecx
lea ecx, [ecx + esi + 0x50]
mov esi, eax
mov edi, edx
shrd esi, edi, 0x10
mov ebx, esi
mov esi, eax
mov ebp, edx
shld ebp, esi, 0x10
shr edi, 0x10
shl esi, 0x10
xor ebx, esi
xor edi, ebp
shld edx, eax, 0x10
mov esi, 0xffff
and ebx, esi
and edi, esi
xor edi, edx
mov edx, dword [esp + 0x44]
mov dword [ecx + 4], edi
shl eax, 0x10
xor ebx, eax
mov eax, dword [esp + 0x40]
mov dword [ecx], ebx
mov dword [esp + 0x18], ecx
mov ecx, eax
mov ebx, edx
shld ebx, ecx, 0x17
mov edi, edx
mov esi, edx
shl ecx, 0x17
sar edi, 0x1f
sar esi, 9
or edi, ebx
or esi, ecx
mov ebx, eax
mov cl, 0x12
xor ebp, ebp
shl ebx, 0xe
call fcn.004184d0
or ebx, edx
mov edx, dword [esp + 0x44]
or ebp, eax
mov eax, dword [esp + 0x40]
xor edi, ebx
mov ebx, eax
xor esi, ebp
mov cl, 0xe
xor ebp, ebp
shl ebx, 0x12
call fcn.004184d0
mov ecx, dword [esp + 0x44]
or ebp, eax
mov eax, dword [esp + 0x40]
or ebx, edx
mov edx, dword [esp + 0x48]
and edx, dword [esp + 0x40]
xor edi, ebx
mov ebx, dword [esp + 0x4c]
and ebx, dword [esp + 0x44]
not eax
and eax, dword [esp + 0x20]
not ecx
and ecx, dword [esp + 0x24]
xor eax, edx
xor ecx, ebx
xor esi, ebp
add esi, eax
mov eax, dword [esp + 0x14]
adc edi, ecx
add esi, dword [eax + 0x41cda8]
mov cl, 0x1c
adc edi, dword [eax + 0x41cdac]
mov eax, dword [esp + 0x18]
add esi, dword [eax]
adc edi, dword [eax + 4]
add esi, dword [esp + 0x38]
adc edi, dword [esp + 0x3c]
add dword [esp + 0x50], esi
mov dword [esp + 0x64], edi
mov dword [esp + 0x60], esi
adc dword [esp + 0x54], edi
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x2c]
mov ebx, edi
mov eax, edi
mov edx, esi
xor ebp, ebp
shl ebx, 4
call fcn.004184d0
or ebx, edx
or ebp, eax
mov edx, esi
shld edx, edi, 0x1e
shl edi, 0x1e
mov eax, esi
sar eax, 2
or eax, edi
mov ecx, esi
sar ecx, 0x1f
or ecx, edx
mov edx, dword [esp + 0x28]
xor ebp, eax
xor ebx, ecx
mov edi, esi
shld edi, edx, 0x19
shl edx, 0x19
mov eax, esi
sar eax, 7
or eax, edx
mov edx, dword [esp + 0x28]
and edx, dword [esp + 0x58]
mov ecx, esi
sar ecx, 0x1f
or ecx, edi
xor ebp, eax
mov eax, dword [esp + 0x28]
xor eax, dword [esp + 0x58]
xor ebx, ecx
and eax, dword [esp + 0x30]
mov ecx, esi
xor ecx, dword [esp + 0x5c]
and esi, dword [esp + 0x5c]
and ecx, dword [esp + 0x34]
xor eax, edx
xor ecx, esi
add ebp, eax
adc ebx, ecx
add ebp, dword [esp + 0x60]
adc ebx, dword [esp + 0x64]
mov dword [esp + 0x38], ebp
mov dword [esp + 0x3c], ebx
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
xor esi, esi
inc dword [esp + 0x10]
add eax, 8
mov dword [esp + 0x1c], eax
mov eax, edx
or eax, esi
sar edx, 0x1f
or edx, ecx
mov ecx, eax
mov edi, edx
mov ebx, edi
mov esi, ecx
shld ebx, esi, 8
shrd eax, edx, 8
shld edi, ecx, 8
shl esi, 8
xor eax, esi
shl ecx, 8
shr edx, 8
xor edx, ebx
mov esi, 0xff00ff
and eax, esi
xor eax, ecx
mov ecx, dword [esp + 0x10]
and edx, esi
mov esi, dword [esp + 0x9c]
xor edx, edi
shl ecx, 3
mov dword [esp + 0x14], ecx
lea ecx, [ecx + esi + 0x50]
mov esi, eax
mov edi, edx
shrd esi, edi, 0x10
mov ebx, esi
mov esi, eax
mov ebp, edx
shld ebp, esi, 0x10
shr edi, 0x10
shl esi, 0x10
xor ebx, esi
xor edi, ebp
shld edx, eax, 0x10
mov esi, 0xffff
and ebx, esi
and edi, esi
xor edi, edx
mov edx, dword [esp + 0x54]
mov dword [ecx + 4], edi
shl eax, 0x10
xor ebx, eax
mov eax, dword [esp + 0x50]
mov dword [ecx], ebx
mov dword [esp + 0x18], ecx
mov ecx, eax
mov ebx, edx
shld ebx, ecx, 0x17
mov edi, edx
mov esi, edx
shl ecx, 0x17
sar edi, 0x1f
sar esi, 9
or edi, ebx
or esi, ecx
mov ebx, eax
mov cl, 0x12
xor ebp, ebp
shl ebx, 0xe
call fcn.004184d0
or ebp, eax
mov eax, dword [esp + 0x50]
or ebx, edx
mov edx, dword [esp + 0x54]
xor edi, ebx
xor esi, ebp
mov ebx, eax
xor ebp, ebp
shl ebx, 0x12
mov cl, 0xe
call fcn.004184d0
mov ecx, dword [esp + 0x54]
or ebp, eax
mov eax, dword [esp + 0x50]
or ebx, edx
mov edx, dword [esp + 0x40]
and edx, dword [esp + 0x50]
xor edi, ebx
mov ebx, dword [esp + 0x44]
and ebx, dword [esp + 0x54]
not eax
and eax, dword [esp + 0x48]
not ecx
and ecx, dword [esp + 0x4c]
xor eax, edx
xor ecx, ebx
xor esi, ebp
add esi, eax
mov eax, dword [esp + 0x14]
adc edi, ecx
add esi, dword [eax + 0x41cda8]
mov cl, 0x1c
adc edi, dword [eax + 0x41cdac]
mov eax, dword [esp + 0x18]
add esi, dword [eax]
adc edi, dword [eax + 4]
add esi, dword [esp + 0x20]
adc edi, dword [esp + 0x24]
add dword [esp + 0x58], esi
mov dword [esp + 0x64], edi
mov dword [esp + 0x60], esi
adc dword [esp + 0x5c], edi
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0x3c]
mov ebx, edi
mov eax, edi
mov edx, esi
xor ebp, ebp
shl ebx, 4
call fcn.004184d0
or ebx, edx
or ebp, eax
mov edx, esi
shld edx, edi, 0x1e
shl edi, 0x1e
mov eax, esi
sar eax, 2
or eax, edi
xor ebp, eax
mov ecx, esi
sar ecx, 0x1f
or ecx, edx
mov edx, dword [esp + 0x38]
xor ebx, ecx
mov edi, esi
shld edi, edx, 0x19
shl edx, 0x19
mov eax, esi
sar eax, 7
or eax, edx
mov edx, dword [esp + 0x28]
and edx, dword [esp + 0x38]
xor ebp, eax
mov eax, dword [esp + 0x28]
xor eax, dword [esp + 0x38]
mov ecx, esi
and eax, dword [esp + 0x30]
sar ecx, 0x1f
or ecx, edi
mov edi, dword [esp + 0x2c]
xor ebx, ecx
mov ecx, dword [esp + 0x2c]
xor ecx, esi
and ecx, dword [esp + 0x34]
and edi, esi
xor eax, edx
xor ecx, edi
add ebp, eax
adc ebx, ecx
add ebp, dword [esp + 0x60]
adc ebx, dword [esp + 0x64]
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
xor esi, esi
inc dword [esp + 0x10]
add eax, 8
mov dword [esp + 0x1c], eax
mov eax, edx
or eax, esi
sar edx, 0x1f
or edx, ecx
mov ecx, eax
mov edi, edx
mov dword [esp + 0x24], ebx
mov ebx, edi
mov esi, ecx
shld ebx, esi, 8
shrd eax, edx, 8
shld edi, ecx, 8
shl esi, 8
xor eax, esi
shl ecx, 8
shr edx, 8
xor edx, ebx
mov esi, 0xff00ff
and eax, esi
xor eax, ecx
mov ecx, dword [esp + 0x10]
and edx, esi
mov esi, dword [esp + 0x9c]
xor edx, edi
shl ecx, 3
mov dword [esp + 0x14], ecx
lea ecx, [ecx + esi + 0x50]
mov esi, eax
mov edi, edx
shrd esi, edi, 0x10
mov ebx, esi
mov dword [esp + 0x20], ebp
mov esi, eax
mov ebp, edx
shld ebp, esi, 0x10
shr edi, 0x10
shl esi, 0x10
xor ebx, esi
xor edi, ebp
shld edx, eax, 0x10
mov esi, 0xffff
and ebx, esi
and edi, esi
xor edi, edx
mov edx, dword [esp + 0x5c]
mov dword [ecx + 4], edi
shl eax, 0x10
xor ebx, eax
mov eax, dword [esp + 0x58]
mov dword [ecx], ebx
mov dword [esp + 0x18], ecx
mov ecx, eax
mov ebx, edx
shld ebx, ecx, 0x17
mov edi, edx
mov esi, edx
shl ecx, 0x17
sar edi, 0x1f
sar esi, 9
or edi, ebx
or esi, ecx
mov ebx, eax
mov cl, 0x12
xor ebp, ebp
shl ebx, 0xe
call fcn.004184d0
or ebp, eax
mov eax, dword [esp + 0x58]
or ebx, edx
xor edi, ebx
xor esi, ebp
mov ebx, eax
xor ebp, ebp
shl ebx, 0x12
mov edx, dword [esp + 0x5c]
mov cl, 0xe
call fcn.004184d0
mov ecx, dword [esp + 0x5c]
or ebp, eax
mov eax, dword [esp + 0x58]
or ebx, edx
mov edx, dword [esp + 0x50]
and edx, dword [esp + 0x58]
xor edi, ebx
mov ebx, dword [esp + 0x54]
and ebx, dword [esp + 0x5c]
not eax
and eax, dword [esp + 0x40]
not ecx
and ecx, dword [esp + 0x44]
xor eax, edx
xor ecx, ebx
xor esi, ebp
add esi, eax
mov eax, dword [esp + 0x14]
adc edi, ecx
add esi, dword [eax + 0x41cda8]
mov cl, 0x1c
adc edi, dword [eax + 0x41cdac]
mov eax, dword [esp + 0x18]
add esi, dword [eax]
adc edi, dword [eax + 4]
add esi, dword [esp + 0x48]
adc edi, dword [esp + 0x4c]
add dword [esp + 0x30], esi
mov dword [esp + 0x64], edi
mov dword [esp + 0x60], esi
adc dword [esp + 0x34], edi
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
mov ebx, edi
mov eax, edi
mov edx, esi
xor ebp, ebp
shl ebx, 4
call fcn.004184d0
or ebx, edx
or ebp, eax
mov edx, esi
shld edx, edi, 0x1e
shl edi, 0x1e
mov eax, esi
sar eax, 2
or eax, edi
mov ecx, esi
sar ecx, 0x1f
or ecx, edx
mov edx, dword [esp + 0x20]
xor ebp, eax
xor ebx, ecx
mov edi, esi
shld edi, edx, 0x19
shl edx, 0x19
mov eax, esi
sar eax, 7
or eax, edx
mov edx, dword [esp + 0x38]
and edx, dword [esp + 0x20]
xor ebp, eax
mov eax, dword [esp + 0x38]
xor eax, dword [esp + 0x20]
mov ecx, esi
and eax, dword [esp + 0x28]
sar ecx, 0x1f
or ecx, edi
mov edi, dword [esp + 0x3c]
xor ebx, ecx
mov ecx, dword [esp + 0x3c]
xor ecx, esi
and ecx, dword [esp + 0x2c]
and edi, esi
xor eax, edx
xor ecx, edi
add ebp, eax
adc ebx, ecx
add ebp, dword [esp + 0x60]
mov eax, dword [esp + 0x1c]
adc ebx, dword [esp + 0x64]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
xor esi, esi
inc dword [esp + 0x10]
add eax, 8
mov dword [esp + 0x1c], eax
mov eax, edx
or eax, esi
sar edx, 0x1f
or edx, ecx
mov ecx, eax
mov edi, edx
mov dword [esp + 0x4c], ebx
mov ebx, edi
mov esi, ecx
shld ebx, esi, 8
shrd eax, edx, 8
shld edi, ecx, 8
shl esi, 8
xor eax, esi
shl ecx, 8
shr edx, 8
xor edx, ebx
mov esi, 0xff00ff
and eax, esi
xor eax, ecx
mov ecx, dword [esp + 0x10]
and edx, esi
mov esi, dword [esp + 0x9c]
xor edx, edi
shl ecx, 3
mov dword [esp + 0x14], ecx
lea ecx, [ecx + esi + 0x50]
mov esi, eax
mov edi, edx
shrd esi, edi, 0x10
mov ebx, esi
mov dword [esp + 0x48], ebp
mov esi, eax
mov ebp, edx
shld ebp, esi, 0x10
shr edi, 0x10
shl esi, 0x10
xor ebx, esi
xor edi, ebp
shld edx, eax, 0x10
mov esi, 0xffff
and ebx, esi
and edi, esi
xor edi, edx
mov edx, dword [esp + 0x34]
mov dword [ecx + 4], edi
shl eax, 0x10
xor ebx, eax
mov eax, dword [esp + 0x30]
mov dword [ecx], ebx
mov dword [esp + 0x18], ecx
mov ecx, eax
mov ebx, edx
shld ebx, ecx, 0x17
mov edi, edx
mov esi, edx
shl ecx, 0x17
sar edi, 0x1f
sar esi, 9
or edi, ebx
or esi, ecx
mov ebx, eax
mov cl, 0x12
xor ebp, ebp
shl ebx, 0xe
call fcn.004184d0
or ebp, eax
mov eax, dword [esp + 0x30]
or ebx, edx
xor esi, ebp
xor edi, ebx
mov ebx, eax
mov edx, dword [esp + 0x34]
mov cl, 0xe
xor ebp, ebp
shl ebx, 0x12
call fcn.004184d0
mov ecx, dword [esp + 0x34]
or ebp, eax
mov eax, dword [esp + 0x30]
or ebx, edx
mov edx, dword [esp + 0x30]
and edx, dword [esp + 0x58]
xor edi, ebx
mov ebx, dword [esp + 0x34]
and ebx, dword [esp + 0x5c]
not eax
and eax, dword [esp + 0x50]
not ecx
and ecx, dword [esp + 0x54]
xor eax, edx
xor ecx, ebx
xor esi, ebp
add esi, eax
mov eax, dword [esp + 0x14]
adc edi, ecx
add esi, dword [eax + 0x41cda8]
mov cl, 0x1c
adc edi, dword [eax + 0x41cdac]
mov eax, dword [esp + 0x18]
add esi, dword [eax]
adc edi, dword [eax + 4]
add esi, dword [esp + 0x40]
adc edi, dword [esp + 0x44]
add dword [esp + 0x28], esi
mov dword [esp + 0x64], edi
mov dword [esp + 0x60], esi
adc dword [esp + 0x2c], edi
mov edi, dword [esp + 0x48]
mov esi, dword [esp + 0x4c]
mov ebx, edi
mov eax, edi
mov edx, esi
xor ebp, ebp
shl ebx, 4
call fcn.004184d0
or ebx, edx
or ebp, eax
mov edx, esi
shld edx, edi, 0x1e
shl edi, 0x1e
mov eax, esi
sar eax, 2
or eax, edi
mov ecx, esi
sar ecx, 0x1f
or ecx, edx
mov edx, dword [esp + 0x48]
xor ebp, eax
xor ebx, ecx
mov edi, esi
shld edi, edx, 0x19
shl edx, 0x19
mov eax, esi
sar eax, 7
or eax, edx
mov edx, dword [esp + 0x20]
and edx, dword [esp + 0x48]
mov ecx, esi
sar ecx, 0x1f
or ecx, edi
mov edi, dword [esp + 0x24]
xor ebp, eax
mov eax, dword [esp + 0x20]
xor eax, dword [esp + 0x48]
xor ebx, ecx
mov ecx, dword [esp + 0x24]
and eax, dword [esp + 0x38]
xor ecx, esi
and ecx, dword [esp + 0x3c]
and edi, esi
xor eax, edx
xor ecx, edi
add ebp, eax
adc ebx, ecx
add ebp, dword [esp + 0x60]
mov eax, dword [esp + 0x1c]
adc ebx, dword [esp + 0x64]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
xor esi, esi
inc dword [esp + 0x10]
add eax, 8
mov dword [esp + 0x1c], eax
mov eax, edx
or eax, esi
sar edx, 0x1f
or edx, ecx
mov ecx, eax
mov edi, edx
mov dword [esp + 0x44], ebx
mov ebx, edi
mov esi, ecx
shld ebx, esi, 8
shrd eax, edx, 8
shld edi, ecx, 8
shl esi, 8
xor eax, esi
shl ecx, 8
shr edx, 8
xor edx, ebx
mov esi, 0xff00ff
and eax, esi
xor eax, ecx
mov ecx, dword [esp + 0x10]
and edx, esi
mov esi, dword [esp + 0x9c]
xor edx, edi
shl ecx, 3
mov dword [esp + 0x14], ecx
lea ecx, [ecx + esi + 0x50]
mov esi, eax
mov edi, edx
shrd esi, edi, 0x10
mov ebx, esi
mov dword [esp + 0x40], ebp
mov esi, eax
mov ebp, edx
shld ebp, esi, 0x10
shr edi, 0x10
shl esi, 0x10
xor ebx, esi
xor edi, ebp
shld edx, eax, 0x10
mov esi, 0xffff
and ebx, esi
and edi, esi
xor edi, edx
mov edx, dword [esp + 0x2c]
mov dword [ecx + 4], edi
shl eax, 0x10
xor ebx, eax
mov eax, dword [esp + 0x28]
mov dword [ecx], ebx
mov dword [esp + 0x18], ecx
mov ecx, eax
mov ebx, edx
shld ebx, ecx, 0x17
mov edi, edx
mov esi, edx
shl ecx, 0x17
sar edi, 0x1f
sar esi, 9
or edi, ebx
or esi, ecx
mov ebx, eax
mov cl, 0x12
xor ebp, ebp
shl ebx, 0xe
call fcn.004184d0
or ebp, eax
or ebx, edx
xor esi, ebp
xor edi, ebx
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
mov ebx, eax
mov cl, 0xe
xor ebp, ebp
shl ebx, 0x12
call fcn.004184d0
mov ecx, dword [esp + 0x2c]
or ebp, eax
mov eax, dword [esp + 0x28]
or ebx, edx
mov edx, dword [esp + 0x30]
and edx, dword [esp + 0x28]
xor edi, ebx
mov ebx, dword [esp + 0x34]
and ebx, dword [esp + 0x2c]
not eax
and eax, dword [esp + 0x58]
not ecx
and ecx, dword [esp + 0x5c]
xor eax, edx
xor ecx, ebx
xor esi, ebp
add esi, eax
mov eax, dword [esp + 0x14]
adc edi, ecx
add esi, dword [eax + 0x41cda8]
mov cl, 0x1c
adc edi, dword [eax + 0x41cdac]
mov eax, dword [esp + 0x18]
add esi, dword [eax]
adc edi, dword [eax + 4]
add esi, dword [esp + 0x50]
adc edi, dword [esp + 0x54]
add dword [esp + 0x38], esi
mov dword [esp + 0x64], edi
mov dword [esp + 0x60], esi
adc dword [esp + 0x3c], edi
mov edi, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
mov ebx, edi
mov eax, edi
mov edx, esi
xor ebp, ebp
shl ebx, 4
call fcn.004184d0
or ebx, edx
or ebp, eax
mov edx, esi
shld edx, edi, 0x1e
shl edi, 0x1e
mov eax, esi
sar eax, 2
or eax, edi
mov ecx, esi
sar ecx, 0x1f
or ecx, edx
mov edx, dword [esp + 0x40]
xor ebp, eax
xor ebx, ecx
mov edi, esi
shld edi, edx, 0x19
shl edx, 0x19
mov eax, esi
sar eax, 7
or eax, edx
mov edx, dword [esp + 0x48]
and edx, dword [esp + 0x40]
mov ecx, esi
sar ecx, 0x1f
or ecx, edi
mov edi, dword [esp + 0x4c]
xor ebp, eax
mov eax, dword [esp + 0x48]
xor eax, dword [esp + 0x40]
xor ebx, ecx
mov ecx, dword [esp + 0x4c]
and eax, dword [esp + 0x20]
xor ecx, esi
and ecx, dword [esp + 0x24]
and edi, esi
xor ecx, edi
xor eax, edx
add ebp, eax
adc ebx, ecx
add ebp, dword [esp + 0x60]
mov eax, dword [esp + 0x1c]
adc ebx, dword [esp + 0x64]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
xor esi, esi
inc dword [esp + 0x10]
add eax, 8
mov dword [esp + 0x1c], eax
mov eax, edx
or eax, esi
sar edx, 0x1f
or edx, ecx
mov ecx, eax
mov edi, edx
mov dword [esp + 0x54], ebx
mov ebx, edi
mov esi, ecx
shld ebx, esi, 8
shrd eax, edx, 8
shld edi, ecx, 8
shl esi, 8
xor eax, esi
shl ecx, 8
shr edx, 8
xor edx, ebx
mov esi, 0xff00ff
and eax, esi
xor eax, ecx
mov ecx, dword [esp + 0x10]
and edx, esi
mov esi, dword [esp + 0x9c]
xor edx, edi
shl ecx, 3
mov dword [esp + 0x14], ecx
lea ecx, [ecx + esi + 0x50]
mov esi, eax
mov edi, edx
shrd esi, edi, 0x10
mov ebx, esi
mov dword [esp + 0x50], ebp
mov esi, eax
mov ebp, edx
shld ebp, esi, 0x10
shr edi, 0x10
shl esi, 0x10
xor ebx, esi
xor edi, ebp
shld edx, eax, 0x10
mov esi, 0xffff
and ebx, esi
and edi, esi
xor edi, edx
mov edx, dword [esp + 0x3c]
mov dword [ecx + 4], edi
shl eax, 0x10
xor ebx, eax
mov eax, dword [esp + 0x38]
mov dword [ecx], ebx
mov dword [esp + 0x18], ecx
mov ecx, eax
mov ebx, edx
shld ebx, ecx, 0x17
mov edi, edx
mov esi, edx
shl ecx, 0x17
sar edi, 0x1f
sar esi, 9
or edi, ebx
or esi, ecx
mov ebx, eax
mov cl, 0x12
xor ebp, ebp
shl ebx, 0xe
call fcn.004184d0
or ebp, eax
or ebx, edx
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
xor edi, ebx
mov ebx, eax
xor esi, ebp
mov cl, 0xe
xor ebp, ebp
shl ebx, 0x12
call fcn.004184d0
mov ecx, dword [esp + 0x3c]
or ebp, eax
mov eax, dword [esp + 0x38]
or ebx, edx
mov edx, dword [esp + 0x28]
and edx, dword [esp + 0x38]
xor edi, ebx
mov ebx, dword [esp + 0x2c]
and ebx, dword [esp + 0x3c]
not eax
and eax, dword [esp + 0x30]
not ecx
and ecx, dword [esp + 0x34]
xor eax, edx
xor ecx, ebx
xor esi, ebp
add esi, eax
mov eax, dword [esp + 0x14]
adc edi, ecx
add esi, dword [eax + 0x41cda8]
mov cl, 0x1c
adc edi, dword [eax + 0x41cdac]
mov eax, dword [esp + 0x18]
add esi, dword [eax]
adc edi, dword [eax + 4]
add esi, dword [esp + 0x58]
adc edi, dword [esp + 0x5c]
add dword [esp + 0x20], esi
mov dword [esp + 0x64], edi
mov dword [esp + 0x60], esi
adc dword [esp + 0x24], edi
mov edi, dword [esp + 0x50]
mov esi, dword [esp + 0x54]
mov ebx, edi
mov eax, edi
mov edx, esi
xor ebp, ebp
shl ebx, 4
call fcn.004184d0
or ebx, edx
or ebp, eax
mov edx, esi
shld edx, edi, 0x1e
shl edi, 0x1e
mov eax, esi
sar eax, 2
or eax, edi
mov ecx, esi
sar ecx, 0x1f
or ecx, edx
mov edx, dword [esp + 0x50]
xor ebp, eax
xor ebx, ecx
mov edi, esi
shld edi, edx, 0x19
mov eax, esi
sar eax, 7
shl edx, 0x19
or eax, edx
mov edx, dword [esp + 0x40]
mov ecx, esi
sar ecx, 0x1f
or ecx, edi
xor ebp, eax
mov eax, dword [esp + 0x40]
xor eax, dword [esp + 0x50]
xor ebx, ecx
mov ecx, dword [esp + 0x44]
and eax, dword [esp + 0x48]
xor ecx, esi
and ecx, dword [esp + 0x4c]
and edx, dword [esp + 0x50]
mov edi, dword [esp + 0x44]
and edi, esi
xor ecx, edi
mov edi, dword [esp + 0x10]
xor eax, edx
add ebp, eax
adc ebx, ecx
add ebp, dword [esp + 0x60]
adc ebx, dword [esp + 0x64]
inc edi
cmp edi, 0x10
mov dword [esp + 0x58], ebp
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x10], edi
jl 0x40f2f1
lea eax, [edi - 7]
mov dword [esp + 0x14], eax
lea eax, [edi - 2]
mov dword [esp + 0x18], eax
lea eax, [edi + 1]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0x68]
and ecx, 0xf
mov esi, dword [eax + ecx*8 + 0x50]
mov ecx, dword [eax + ecx*8 + 0x54]
mov dword [esp + 0x70], ecx
mov ecx, dword [esp + 0x18]
and ecx, 0xf
mov edx, dword [eax + ecx*8 + 0x50]
mov ebx, dword [eax + ecx*8 + 0x54]
and edi, 0xf
lea eax, [eax + edi*8 + 0x50]
mov dword [esp + 0x1c], eax
mov edi, edx
mov dword [esp + 0x74], edx
mov eax, edx
mov edx, ebx
mov cl, 0x13
mov dword [esp + 0x6c], esi
mov dword [esp + 0x78], ebx
xor ebp, ebp
shl edi, 0xd
call fcn.004184d0
or edi, edx
mov edx, dword [esp + 0x74]
or ebp, eax
mov eax, ebx
mov ecx, ebx
shld ebx, edx, 3
sar eax, 0x1d
sar ecx, 0x1f
shl edx, 3
or eax, edx
mov edx, dword [esp + 0x78]
or ecx, ebx
xor ebp, eax
mov eax, dword [esp + 0x74]
xor edi, ecx
mov cl, 6
call fcn.004184d0
xor edi, edx
mov edx, dword [esp + 0x70]
xor ebp, eax
mov dword [esp + 0x84], edi
mov edi, esi
mov eax, esi
mov cl, 8
mov dword [esp + 0x7c], ebp
xor ebx, ebx
shl edi, 0x18
call fcn.004184d0
or ebx, eax
xor eax, eax
or edi, edx
mov edx, dword [esp + 0x70]
mov dword [esp + 0x80], eax
mov ebp, esi
mov eax, esi
mov cl, 1
shl ebp, 0x1f
call fcn.004184d0
mov ecx, dword [esp + 0x80]
or ecx, eax
or ebp, edx
mov edx, dword [esp + 0x70]
xor ebx, ecx
mov eax, esi
mov cl, 7
xor edi, ebp
call fcn.004184d0
mov esi, dword [esp + 0x84]
mov ecx, dword [esp + 0x9c]
xor edi, edx
mov edx, dword [esp + 0x7c]
xor ebx, eax
mov eax, dword [esp + 0x14]
add edx, ebx
adc esi, edi
and eax, 0xf
add edx, dword [ecx + eax*8 + 0x50]
adc esi, dword [ecx + eax*8 + 0x54]
mov eax, dword [esp + 0x1c]
add dword [eax], edx
mov edx, dword [esp + 0x24]
mov ebx, edx
adc dword [eax + 4], esi
mov eax, dword [esp + 0x20]
mov ecx, eax
shld ebx, ecx, 0x17
mov edi, edx
mov esi, edx
shl ecx, 0x17
sar edi, 0x1f
sar esi, 9
or edi, ebx
or esi, ecx
mov ebx, eax
mov cl, 0x12
xor ebp, ebp
shl ebx, 0xe
call fcn.004184d0
or ebx, edx
mov edx, dword [esp + 0x24]
or ebp, eax
mov eax, dword [esp + 0x20]
xor edi, ebx
mov ebx, eax
xor esi, ebp
mov cl, 0xe
xor ebp, ebp
shl ebx, 0x12
call fcn.004184d0
mov ecx, dword [esp + 0x24]
or ebp, eax
mov eax, dword [esp + 0x20]
or ebx, edx
mov edx, dword [esp + 0x38]
and edx, dword [esp + 0x20]
xor edi, ebx
mov ebx, dword [esp + 0x3c]
and ebx, dword [esp + 0x24]
not ecx
and ecx, dword [esp + 0x2c]
not eax
and eax, dword [esp + 0x28]
xor ecx, ebx
xor eax, edx
xor esi, ebp
add esi, eax
mov eax, dword [esp + 0x10]
adc edi, ecx
add esi, dword [eax*8 + 0x41cda8]
mov ecx, dword [esp + 0x50]
adc edi, dword [eax*8 + 0x41cdac]
mov eax, dword [esp + 0x1c]
add esi, dword [eax]
adc edi, dword [eax + 4]
add esi, dword [esp + 0x30]
mov eax, dword [esp + 0x58]
adc edi, dword [esp + 0x34]
add dword [esp + 0x48], esi
mov dword [esp + 0x64], edi
mov ebx, eax
adc dword [esp + 0x4c], edi
mov edi, dword [esp + 0x5c]
xor ecx, eax
mov dword [esp + 0x88], ecx
mov ecx, dword [esp + 0x54]
xor ecx, edi
mov dword [esp + 0x8c], ecx
mov ecx, dword [esp + 0x50]
and ecx, eax
mov dword [esp + 0x90], ecx
mov ecx, dword [esp + 0x54]
and ecx, edi
mov dword [esp + 0x94], ecx
mov edx, edi
mov cl, 0x1c
xor ebp, ebp
shl ebx, 4
call fcn.004184d0
or ebp, eax
or ebx, edx
mov edx, dword [esp + 0x58]
mov eax, edi
sar eax, 2
mov ecx, edi
shld edi, edx, 0x1e
sar ecx, 0x1f
or ecx, edi
mov edi, dword [esp + 0x58]
xor ebx, ecx
shl edx, 0x1e
or eax, edx
xor ebp, eax
mov eax, dword [esp + 0x5c]
mov ecx, eax
sar ecx, 7
mov edx, eax
shld eax, edi, 0x19
sar edx, 0x1f
or edx, eax
mov eax, dword [esp + 0x88]
and eax, dword [esp + 0x40]
shl edi, 0x19
xor eax, dword [esp + 0x90]
or ecx, edi
xor ebp, ecx
mov ecx, dword [esp + 0x8c]
and ecx, dword [esp + 0x44]
xor ebx, edx
xor ecx, dword [esp + 0x94]
add ebp, eax
mov eax, dword [esp + 0x9c]
adc ebx, ecx
add ebp, esi
adc ebx, dword [esp + 0x64]
inc dword [esp + 0x10]
inc dword [esp + 0x68]
mov ecx, dword [esp + 0x68]
inc dword [esp + 0x18]
inc dword [esp + 0x14]
and ecx, 0xf
mov esi, dword [eax + ecx*8 + 0x50]
mov ecx, dword [eax + ecx*8 + 0x54]
mov dword [esp + 0x70], ecx
mov ecx, dword [esp + 0x18]
and ecx, 0xf
mov edx, dword [eax + ecx*8 + 0x50]
mov edi, dword [eax + ecx*8 + 0x54]
mov ecx, dword [esp + 0x10]
and ecx, 0xf
lea eax, [eax + ecx*8 + 0x50]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x1c], eax
mov ebx, edx
mov dword [esp + 0x74], edx
mov eax, edx
mov dword [esp + 0x30], ebp
mov edx, edi
mov cl, 0x13
mov dword [esp + 0x6c], esi
mov dword [esp + 0x78], edi
xor ebp, ebp
shl ebx, 0xd
call fcn.004184d0
or ebx, edx
mov edx, dword [esp + 0x74]
or ebp, eax
mov eax, edi
mov ecx, edi
shld edi, edx, 3
sar eax, 0x1d
sar ecx, 0x1f
shl edx, 3
or eax, edx
mov edx, dword [esp + 0x78]
or ecx, edi
xor ebp, eax
mov eax, dword [esp + 0x74]
xor ebx, ecx
mov cl, 6
call fcn.004184d0
xor ebx, edx
mov edx, dword [esp + 0x70]
xor ebp, eax
mov edi, esi
mov dword [esp + 0x80], ebx
mov eax, esi
mov cl, 8
mov dword [esp + 0x7c], ebp
xor ebx, ebx
shl edi, 0x18
call fcn.004184d0
or ebx, eax
xor eax, eax
or edi, edx
mov edx, dword [esp + 0x70]
mov dword [esp + 0x84], eax
mov ebp, esi
mov eax, esi
mov cl, 1
shl ebp, 0x1f
call fcn.004184d0
mov ecx, dword [esp + 0x84]
or ecx, eax
or ebp, edx
mov edx, dword [esp + 0x70]
xor ebx, ecx
mov eax, esi
mov cl, 7
xor edi, ebp
call fcn.004184d0
mov esi, dword [esp + 0x80]
mov ecx, dword [esp + 0x9c]
xor ebx, eax
mov eax, dword [esp + 0x14]
xor edi, edx
mov edx, dword [esp + 0x7c]
add edx, ebx
adc esi, edi
and eax, 0xf
add edx, dword [ecx + eax*8 + 0x50]
adc esi, dword [ecx + eax*8 + 0x54]
mov eax, dword [esp + 0x1c]
add dword [eax], edx
mov edx, dword [esp + 0x4c]
mov ebx, edx
adc dword [eax + 4], esi
mov eax, dword [esp + 0x48]
mov ecx, eax
shld ebx, ecx, 0x17
mov edi, edx
mov esi, edx
shl ecx, 0x17
sar edi, 0x1f
sar esi, 9
or edi, ebx
or esi, ecx
mov ebx, eax
mov cl, 0x12
xor ebp, ebp
shl ebx, 0xe
call fcn.004184d0
or ebx, edx
mov edx, dword [esp + 0x4c]
or ebp, eax
mov eax, dword [esp + 0x48]
xor edi, ebx
mov ebx, eax
xor esi, ebp
mov cl, 0xe
xor ebp, ebp
shl ebx, 0x12
call fcn.004184d0
mov ecx, dword [esp + 0x4c]
or ebp, eax
mov eax, dword [esp + 0x48]
or ebx, edx
not eax
xor esi, ebp
xor edi, ebx
and eax, dword [esp + 0x38]
not ecx
and ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x20]
and edx, dword [esp + 0x48]
mov ebx, dword [esp + 0x24]
and ebx, dword [esp + 0x4c]
xor eax, edx
xor ecx, ebx
add esi, eax
mov eax, dword [esp + 0x10]
adc edi, ecx
add esi, dword [eax*8 + 0x41cda8]
mov cl, 0x1c
adc edi, dword [eax*8 + 0x41cdac]
mov eax, dword [esp + 0x1c]
add esi, dword [eax]
adc edi, dword [eax + 4]
add esi, dword [esp + 0x28]
mov eax, dword [esp + 0x30]
adc edi, dword [esp + 0x2c]
add dword [esp + 0x40], esi
mov dword [esp + 0x64], edi
mov ebx, eax
adc dword [esp + 0x44], edi
mov edi, dword [esp + 0x34]
mov edx, edi
xor ebp, ebp
shl ebx, 4
call fcn.004184d0
or ebx, edx
mov edx, dword [esp + 0x30]
or ebp, eax
mov eax, edi
sar eax, 2
mov ecx, edi
shld edi, edx, 0x1e
sar ecx, 0x1f
or ecx, edi
mov edi, dword [esp + 0x30]
xor ebx, ecx
shl edx, 0x1e
or eax, edx
xor ebp, eax
mov eax, dword [esp + 0x34]
mov ecx, eax
sar ecx, 7
mov edx, eax
shld eax, edi, 0x19
sar edx, 0x1f
or edx, eax
mov eax, dword [esp + 0x88]
and eax, dword [esp + 0x30]
shl edi, 0x19
xor eax, dword [esp + 0x90]
or ecx, edi
xor ebp, ecx
mov ecx, dword [esp + 0x8c]
and ecx, dword [esp + 0x34]
xor ebx, edx
xor ecx, dword [esp + 0x94]
add ebp, eax
mov eax, dword [esp + 0x9c]
adc ebx, ecx
add ebp, esi
adc ebx, dword [esp + 0x64]
inc dword [esp + 0x10]
inc dword [esp + 0x68]
mov ecx, dword [esp + 0x68]
inc dword [esp + 0x18]
inc dword [esp + 0x14]
and ecx, 0xf
mov esi, dword [eax + ecx*8 + 0x50]
mov ecx, dword [eax + ecx*8 + 0x54]
mov dword [esp + 0x70], ecx
mov ecx, dword [esp + 0x18]
and ecx, 0xf
mov edx, dword [eax + ecx*8 + 0x50]
mov edi, dword [eax + ecx*8 + 0x54]
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x6c], esi
mov dword [esp + 0x74], edx
mov ecx, dword [esp + 0x10]
and ecx, 0xf
lea eax, [eax + ecx*8 + 0x50]
mov dword [esp + 0x1c], eax
mov ebx, edx
mov eax, edx
mov edx, edi
mov cl, 0x13
mov dword [esp + 0x78], edi
xor ebp, ebp
shl ebx, 0xd
call fcn.004184d0
or ebx, edx
mov edx, dword [esp + 0x74]
or ebp, eax
mov eax, edi
mov ecx, edi
shld edi, edx, 3
sar eax, 0x1d
sar ecx, 0x1f
shl edx, 3
or eax, edx
mov edx, dword [esp + 0x78]
or ecx, edi
xor ebp, eax
mov eax, dword [esp + 0x74]
xor ebx, ecx
mov cl, 6
call fcn.004184d0
xor ebx, edx
mov edx, dword [esp + 0x70]
xor ebp, eax
mov edi, esi
mov dword [esp + 0x80], ebx
mov eax, esi
mov cl, 8
mov dword [esp + 0x7c], ebp
xor ebx, ebx
shl edi, 0x18
call fcn.004184d0
or ebx, eax
xor eax, eax
or edi, edx
mov edx, dword [esp + 0x70]
mov dword [esp + 0x84], eax
mov ebp, esi
mov eax, esi
mov cl, 1
shl ebp, 0x1f
call fcn.004184d0
mov ecx, dword [esp + 0x84]
or ecx, eax
or ebp, edx
mov edx, dword [esp + 0x70]
xor ebx, ecx
mov eax, esi
mov cl, 7
xor edi, ebp
call fcn.004184d0
mov esi, dword [esp + 0x80]
mov ecx, dword [esp + 0x9c]
xor ebx, eax
mov eax, dword [esp + 0x14]
xor edi, edx
mov edx, dword [esp + 0x7c]
add edx, ebx
adc esi, edi
and eax, 0xf
add edx, dword [ecx + eax*8 + 0x50]
adc esi, dword [ecx + eax*8 + 0x54]
mov eax, dword [esp + 0x1c]
add dword [eax], edx
mov edx, dword [esp + 0x44]
mov edi, edx
adc dword [eax + 4], esi
mov eax, dword [esp + 0x40]
mov esi, edx
sar esi, 9
sar edi, 0x1f
mov ecx, eax
mov ebx, edx
shld ebx, ecx, 0x17
shl ecx, 0x17
or edi, ebx
or esi, ecx
mov ebx, eax
mov cl, 0x12
xor ebp, ebp
shl ebx, 0xe
call fcn.004184d0
or ebx, edx
mov edx, dword [esp + 0x44]
or ebp, eax
mov eax, dword [esp + 0x40]
xor edi, ebx
mov ebx, eax
xor esi, ebp
mov cl, 0xe
xor ebp, ebp
shl ebx, 0x12
call fcn.004184d0
mov ecx, dword [esp + 0x44]
or ebp, eax
mov eax, dword [esp + 0x40]
or ebx, edx
mov edx, dword [esp + 0x48]
and edx, dword [esp + 0x40]
xor edi, ebx
mov ebx, dword [esp + 0x4c]
and ebx, dword [esp + 0x44]
not eax
and eax, dword [esp + 0x20]
not ecx
and ecx, dword [esp + 0x24]
xor eax, edx
xor ecx, ebx
xor esi, ebp
add esi, eax
mov eax, dword [esp + 0x10]
adc edi, ecx
add esi, dword [eax*8 + 0x41cda8]
mov cl, 0x1c
adc edi, dword [eax*8 + 0x41cdac]
mov eax, dword [esp + 0x1c]
add esi, dword [eax]
adc edi, dword [eax + 4]
add esi, dword [esp + 0x38]
adc edi, dword [esp + 0x3c]
add dword [esp + 0x50], esi
mov dword [esp + 0x64], edi
mov dword [esp + 0x60], esi
adc dword [esp + 0x54], edi
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x2c]
mov ebx, edi
mov eax, edi
mov edx, esi
xor ebp, ebp
shl ebx, 4
call fcn.004184d0
or ebx, edx
or ebp, eax
mov edx, esi
shld edx, edi, 0x1e
shl edi, 0x1e
mov eax, esi
sar eax, 2
or eax, edi
mov ecx, esi
sar ecx, 0x1f
or ecx, edx
mov edx, dword [esp + 0x28]
mov edi, esi
shld edi, edx, 0x19
xor ebp, eax
xor ebx, ecx
mov eax, esi
mov ecx, esi
sar eax, 7
shl edx, 0x19
sar ecx, 0x1f
or eax, edx
mov edx, dword [esp + 0x28]
and edx, dword [esp + 0x58]
or ecx, edi
xor ebx, ecx
xor ebp, eax
mov eax, dword [esp + 0x28]
xor eax, dword [esp + 0x58]
mov ecx, esi
xor ecx, dword [esp + 0x5c]
and eax, dword [esp + 0x30]
and ecx, dword [esp + 0x34]
and esi, dword [esp + 0x5c]
xor eax, edx
xor ecx, esi
add ebp, eax
mov eax, dword [esp + 0x9c]
adc ebx, ecx
add ebp, dword [esp + 0x60]
adc ebx, dword [esp + 0x64]
inc dword [esp + 0x10]
inc dword [esp + 0x68]
mov ecx, dword [esp + 0x68]
inc dword [esp + 0x18]
inc dword [esp + 0x14]
and ecx, 0xf
mov esi, dword [eax + ecx*8 + 0x50]
mov ecx, dword [eax + ecx*8 + 0x54]
mov dword [esp + 0x70], ecx
mov ecx, dword [esp + 0x18]
and ecx, 0xf
mov edx, dword [eax + ecx*8 + 0x50]
mov edi, dword [eax + ecx*8 + 0x54]
mov ecx, dword [esp + 0x10]
and ecx, 0xf
lea eax, [eax + ecx*8 + 0x50]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x1c], eax
mov ebx, edx
mov dword [esp + 0x74], edx
mov eax, edx
mov dword [esp + 0x38], ebp
mov edx, edi
mov cl, 0x13
mov dword [esp + 0x6c], esi
mov dword [esp + 0x78], edi
xor ebp, ebp
shl ebx, 0xd
call fcn.004184d0
or ebx, edx
mov edx, dword [esp + 0x74]
or ebp, eax
mov eax, edi
mov ecx, edi
shld edi, edx, 3
sar eax, 0x1d
sar ecx, 0x1f
shl edx, 3
or eax, edx
mov edx, dword [esp + 0x78]
or ecx, edi
xor ebp, eax
mov eax, dword [esp + 0x74]
xor ebx, ecx
mov cl, 6
call fcn.004184d0
xor ebx, edx
mov edx, dword [esp + 0x70]
xor ebp, eax
mov edi, esi
mov dword [esp + 0x80], ebx
mov eax, esi
mov cl, 8
mov dword [esp + 0x7c], ebp
xor ebx, ebx
shl edi, 0x18
call fcn.004184d0
or ebx, eax
mov ebp, esi
or edi, edx
xor eax, eax
shl ebp, 0x1f
mov edx, dword [esp + 0x70]
mov dword [esp + 0x84], eax
mov eax, esi
mov cl, 1
call fcn.004184d0
mov ecx, dword [esp + 0x84]
or ecx, eax
or ebp, edx
mov edx, dword [esp + 0x70]
xor ebx, ecx
mov eax, esi
mov cl, 7
xor edi, ebp
call fcn.004184d0
mov esi, dword [esp + 0x80]
mov ecx, dword [esp + 0x9c]
xor ebx, eax
mov eax, dword [esp + 0x14]
xor edi, edx
mov edx, dword [esp + 0x7c]
add edx, ebx
adc esi, edi
and eax, 0xf
add edx, dword [ecx + eax*8 + 0x50]
adc esi, dword [ecx + eax*8 + 0x54]
mov eax, dword [esp + 0x1c]
add dword [eax], edx
mov edx, dword [esp + 0x54]
mov ebx, edx
adc dword [eax + 4], esi
mov eax, dword [esp + 0x50]
mov ecx, eax
shld ebx, ecx, 0x17
mov edi, edx
mov esi, edx
shl ecx, 0x17
sar edi, 0x1f
sar esi, 9
or edi, ebx
or esi, ecx
mov ebx, eax
mov cl, 0x12
xor ebp, ebp
shl ebx, 0xe
call fcn.004184d0
or ebx, edx
mov edx, dword [esp + 0x54]
or ebp, eax
mov eax, dword [esp + 0x50]
xor edi, ebx
mov ebx, eax
xor esi, ebp
mov cl, 0xe
xor ebp, ebp
shl ebx, 0x12
call fcn.004184d0
mov ecx, dword [esp + 0x54]
or ebp, eax
mov eax, dword [esp + 0x50]
or ebx, edx
mov edx, dword [esp + 0x40]
and edx, dword [esp + 0x50]
xor edi, ebx
mov ebx, dword [esp + 0x44]
and ebx, dword [esp + 0x54]
not eax
and eax, dword [esp + 0x48]
not ecx
and ecx, dword [esp + 0x4c]
xor eax, edx
xor esi, ebp
xor ecx, ebx
add esi, eax
mov eax, dword [esp + 0x10]
adc edi, ecx
add esi, dword [eax*8 + 0x41cda8]
adc edi, dword [eax*8 + 0x41cdac]
mov eax, dword [esp + 0x1c]
add esi, dword [eax]
adc edi, dword [eax + 4]
add esi, dword [esp + 0x20]
adc edi, dword [esp + 0x24]
add dword [esp + 0x58], esi
mov dword [esp + 0x64], edi
mov dword [esp + 0x60], esi
adc dword [esp + 0x5c], edi
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0x3c]
mov ebx, edi
mov eax, edi
mov edx, esi
mov cl, 0x1c
xor ebp, ebp
shl ebx, 4
call fcn.004184d0
or ebx, edx
or ebp, eax
mov edx, esi
shld edx, edi, 0x1e
shl edi, 0x1e
mov eax, esi
sar eax, 2
or eax, edi
xor ebp, eax
mov ecx, esi
sar ecx, 0x1f
or ecx, edx
mov edx, dword [esp + 0x38]
xor ebx, ecx
mov edi, esi
shld edi, edx, 0x19
shl edx, 0x19
mov eax, esi
sar eax, 7
or eax, edx
mov edx, dword [esp + 0x28]
and edx, dword [esp + 0x38]
xor ebp, eax
mov eax, dword [esp + 0x28]
xor eax, dword [esp + 0x38]
mov ecx, esi
and eax, dword [esp + 0x30]
sar ecx, 0x1f
or ecx, edi
mov edi, dword [esp + 0x2c]
xor ebx, ecx
mov ecx, dword [esp + 0x2c]
xor ecx, esi
and ecx, dword [esp + 0x34]
and edi, esi
xor ecx, edi
xor eax, edx
add ebp, eax
mov eax, dword [esp + 0x9c]
adc ebx, ecx
add ebp, dword [esp + 0x60]
adc ebx, dword [esp + 0x64]
inc dword [esp + 0x10]
inc dword [esp + 0x68]
mov ecx, dword [esp + 0x68]
inc dword [esp + 0x18]
inc dword [esp + 0x14]
and ecx, 0xf
mov esi, dword [eax + ecx*8 + 0x50]
mov ecx, dword [eax + ecx*8 + 0x54]
mov dword [esp + 0x70], ecx
mov ecx, dword [esp + 0x18]
and ecx, 0xf
mov edx, dword [eax + ecx*8 + 0x50]
mov edi, dword [eax + ecx*8 + 0x54]
mov ecx, dword [esp + 0x10]
and ecx, 0xf
mov dword [esp + 0x24], ebx
mov dword [esp + 0x20], ebp
lea eax, [eax + ecx*8 + 0x50]
mov ebx, edx
xor ebp, ebp
mov dword [esp + 0x6c], esi
mov dword [esp + 0x74], edx
mov dword [esp + 0x78], edi
mov dword [esp + 0x1c], eax
shl ebx, 0xd
mov eax, edx
mov edx, edi
mov cl, 0x13
call fcn.004184d0
or ebx, edx
mov edx, dword [esp + 0x74]
or ebp, eax
mov eax, edi
mov ecx, edi
shld edi, edx, 3
sar eax, 0x1d
sar ecx, 0x1f
shl edx, 3
or eax, edx
mov edx, dword [esp + 0x78]
or ecx, edi
xor ebp, eax
mov eax, dword [esp + 0x74]
xor ebx, ecx
mov cl, 6
call fcn.004184d0
xor ebx, edx
mov edx, dword [esp + 0x70]
xor ebp, eax
mov edi, esi
mov dword [esp + 0x80], ebx
mov eax, esi
mov cl, 8
mov dword [esp + 0x7c], ebp
xor ebx, ebx
shl edi, 0x18
call fcn.004184d0
or ebx, eax
xor eax, eax
or edi, edx
mov edx, dword [esp + 0x70]
mov dword [esp + 0x84], eax
mov ebp, esi
mov eax, esi
mov cl, 1
shl ebp, 0x1f
call fcn.004184d0
mov ecx, dword [esp + 0x84]
or ecx, eax
or ebp, edx
mov edx, dword [esp + 0x70]
xor ebx, ecx
mov eax, esi
mov cl, 7
xor edi, ebp
call fcn.004184d0
mov esi, dword [esp + 0x80]
mov ecx, dword [esp + 0x9c]
xor ebx, eax
mov eax, dword [esp + 0x14]
xor edi, edx
mov edx, dword [esp + 0x7c]
add edx, ebx
adc esi, edi
and eax, 0xf
add edx, dword [ecx + eax*8 + 0x50]
adc esi, dword [ecx + eax*8 + 0x54]
mov eax, dword [esp + 0x1c]
add dword [eax], edx
mov edx, dword [esp + 0x5c]
mov ebx, edx
adc dword [eax + 4], esi
mov eax, dword [esp + 0x58]
mov ecx, eax
shld ebx, ecx, 0x17
mov edi, edx
sar edi, 0x1f
mov esi, edx
shl ecx, 0x17
sar esi, 9
or edi, ebx
or esi, ecx
mov ebx, eax
xor ebp, ebp
shl ebx, 0xe
mov cl, 0x12
call fcn.004184d0
or ebx, edx
mov edx, dword [esp + 0x5c]
or ebp, eax
mov eax, dword [esp + 0x58]
xor edi, ebx
mov ebx, eax
xor esi, ebp
mov cl, 0xe
xor ebp, ebp
shl ebx, 0x12
call fcn.004184d0
mov ecx, dword [esp + 0x5c]
or ebp, eax
mov eax, dword [esp + 0x58]
or ebx, edx
mov edx, dword [esp + 0x50]
and edx, dword [esp + 0x58]
xor edi, ebx
mov ebx, dword [esp + 0x54]
and ebx, dword [esp + 0x5c]
not eax
and eax, dword [esp + 0x40]
not ecx
and ecx, dword [esp + 0x44]
xor eax, edx
xor ecx, ebx
xor esi, ebp
add esi, eax
mov eax, dword [esp + 0x10]
adc edi, ecx
add esi, dword [eax*8 + 0x41cda8]
mov cl, 0x1c
adc edi, dword [eax*8 + 0x41cdac]
mov eax, dword [esp + 0x1c]
add esi, dword [eax]
adc edi, dword [eax + 4]
add esi, dword [esp + 0x48]
adc edi, dword [esp + 0x4c]
add dword [esp + 0x30], esi
mov dword [esp + 0x64], edi
mov dword [esp + 0x60], esi
adc dword [esp + 0x34], edi
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
mov ebx, edi
mov eax, edi
mov edx, esi
xor ebp, ebp
shl ebx, 4
call fcn.004184d0
or ebx, edx
or ebp, eax
mov edx, esi
shld edx, edi, 0x1e
shl edi, 0x1e
mov eax, esi
sar eax, 2
or eax, edi
mov ecx, esi
sar ecx, 0x1f
or ecx, edx
mov edx, dword [esp + 0x20]
xor ebp, eax
xor ebx, ecx
mov edi, esi
shld edi, edx, 0x19
mov eax, esi
sar eax, 7
shl edx, 0x19
or eax, edx
mov ecx, esi
sar ecx, 0x1f
or ecx, edi
xor ebp, eax
mov eax, dword [esp + 0x38]
xor eax, dword [esp + 0x20]
xor ebx, ecx
mov ecx, dword [esp + 0x3c]
xor ecx, esi
and eax, dword [esp + 0x28]
and ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x38]
and edx, dword [esp + 0x20]
mov edi, dword [esp + 0x3c]
xor eax, edx
and edi, esi
xor ecx, edi
add ebp, eax
mov eax, dword [esp + 0x9c]
adc ebx, ecx
add ebp, dword [esp + 0x60]
adc ebx, dword [esp + 0x64]
inc dword [esp + 0x10]
inc dword [esp + 0x68]
mov ecx, dword [esp + 0x68]
inc dword [esp + 0x18]
inc dword [esp + 0x14]
and ecx, 0xf
mov esi, dword [eax + ecx*8 + 0x50]
mov ecx, dword [eax + ecx*8 + 0x54]
mov dword [esp + 0x70], ecx
mov ecx, dword [esp + 0x18]
and ecx, 0xf
mov edx, dword [eax + ecx*8 + 0x50]
mov edi, dword [eax + ecx*8 + 0x54]
mov ecx, dword [esp + 0x10]
and ecx, 0xf
lea eax, [eax + ecx*8 + 0x50]
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x1c], eax
mov ebx, edx
mov dword [esp + 0x74], edx
mov eax, edx
mov dword [esp + 0x48], ebp
mov edx, edi
mov cl, 0x13
mov dword [esp + 0x6c], esi
mov dword [esp + 0x78], edi
xor ebp, ebp
shl ebx, 0xd
call fcn.004184d0
or ebx, edx
mov edx, dword [esp + 0x74]
or ebp, eax
mov eax, edi
mov ecx, edi
shld edi, edx, 3
sar eax, 0x1d
sar ecx, 0x1f
shl edx, 3
or eax, edx
mov edx, dword [esp + 0x78]
or ecx, edi
xor ebp, eax
mov eax, dword [esp + 0x74]
xor ebx, ecx
mov cl, 6
call fcn.004184d0
xor ebx, edx
mov edx, dword [esp + 0x70]
xor ebp, eax
mov edi, esi
mov dword [esp + 0x80], ebx
mov eax, esi
mov cl, 8
mov dword [esp + 0x7c], ebp
xor ebx, ebx
shl edi, 0x18
call fcn.004184d0
or ebx, eax
xor eax, eax
or edi, edx
mov edx, dword [esp + 0x70]
mov dword [esp + 0x84], eax
mov ebp, esi
mov eax, esi
mov cl, 1
shl ebp, 0x1f
call fcn.004184d0
mov ecx, dword [esp + 0x84]
or ecx, eax
or ebp, edx
mov edx, dword [esp + 0x70]
xor ebx, ecx
mov eax, esi
mov cl, 7
xor edi, ebp
call fcn.004184d0
mov esi, dword [esp + 0x80]
mov ecx, dword [esp + 0x9c]
xor ebx, eax
mov eax, dword [esp + 0x14]
xor edi, edx
mov edx, dword [esp + 0x7c]
add edx, ebx
adc esi, edi
and eax, 0xf
add edx, dword [ecx + eax*8 + 0x50]
adc esi, dword [ecx + eax*8 + 0x54]
mov eax, dword [esp + 0x1c]
add dword [eax], edx
mov edx, dword [esp + 0x34]
mov ebx, edx
adc dword [eax + 4], esi
mov eax, dword [esp + 0x30]
mov ecx, eax
shld ebx, ecx, 0x17
mov edi, edx
mov esi, edx
shl ecx, 0x17
sar edi, 0x1f
sar esi, 9
or edi, ebx
or esi, ecx
mov ebx, eax
mov cl, 0x12
xor ebp, ebp
shl ebx, 0xe
call fcn.004184d0
or ebx, edx
mov edx, dword [esp + 0x34]
or ebp, eax
mov eax, dword [esp + 0x30]
xor edi, ebx
mov ebx, eax
xor esi, ebp
mov cl, 0xe
xor ebp, ebp
shl ebx, 0x12
call fcn.004184d0
mov ecx, dword [esp + 0x34]
or ebp, eax
mov eax, dword [esp + 0x30]
or ebx, edx
mov edx, dword [esp + 0x30]
and edx, dword [esp + 0x58]
xor edi, ebx
mov ebx, dword [esp + 0x34]
and ebx, dword [esp + 0x5c]
not eax
and eax, dword [esp + 0x50]
xor esi, ebp
xor eax, edx
not ecx
and ecx, dword [esp + 0x54]
xor ecx, ebx
add esi, eax
mov eax, dword [esp + 0x10]
adc edi, ecx
add esi, dword [eax*8 + 0x41cda8]
adc edi, dword [eax*8 + 0x41cdac]
mov eax, dword [esp + 0x1c]
add esi, dword [eax]
adc edi, dword [eax + 4]
add esi, dword [esp + 0x40]
adc edi, dword [esp + 0x44]
add dword [esp + 0x28], esi
mov dword [esp + 0x64], edi
mov dword [esp + 0x60], esi
adc dword [esp + 0x2c], edi
mov edi, dword [esp + 0x48]
mov ebx, edi
mov esi, dword [esp + 0x4c]
mov eax, edi
mov edx, esi
mov cl, 0x1c
xor ebp, ebp
shl ebx, 4
call fcn.004184d0
or ebx, edx
or ebp, eax
mov edx, esi
shld edx, edi, 0x1e
shl edi, 0x1e
mov eax, esi
sar eax, 2
or eax, edi
xor ebp, eax
mov ecx, esi
sar ecx, 0x1f
or ecx, edx
mov edx, dword [esp + 0x48]
xor ebx, ecx
mov edi, esi
shld edi, edx, 0x19
shl edx, 0x19
mov eax, esi
sar eax, 7
or eax, edx
mov edx, dword [esp + 0x20]
and edx, dword [esp + 0x48]
xor ebp, eax
mov eax, dword [esp + 0x20]
xor eax, dword [esp + 0x48]
mov ecx, esi
and eax, dword [esp + 0x38]
sar ecx, 0x1f
or ecx, edi
mov edi, dword [esp + 0x24]
xor ebx, ecx
mov ecx, dword [esp + 0x24]
xor ecx, esi
and ecx, dword [esp + 0x3c]
xor eax, edx
and edi, esi
xor ecx, edi
add ebp, eax
mov eax, dword [esp + 0x9c]
adc ebx, ecx
add ebp, dword [esp + 0x60]
adc ebx, dword [esp + 0x64]
inc dword [esp + 0x10]
inc dword [esp + 0x68]
mov ecx, dword [esp + 0x68]
inc dword [esp + 0x18]
inc dword [esp + 0x14]
and ecx, 0xf
mov esi, dword [eax + ecx*8 + 0x50]
mov ecx, dword [eax + ecx*8 + 0x54]
mov dword [esp + 0x70], ecx
mov ecx, dword [esp + 0x18]
and ecx, 0xf
mov edx, dword [eax + ecx*8 + 0x50]
mov edi, dword [eax + ecx*8 + 0x54]
mov ecx, dword [esp + 0x10]
and ecx, 0xf
lea eax, [eax + ecx*8 + 0x50]
mov dword [esp + 0x44], ebx
mov dword [esp + 0x1c], eax
mov ebx, edx
mov dword [esp + 0x74], edx
mov eax, edx
mov dword [esp + 0x40], ebp
mov edx, edi
mov cl, 0x13
mov dword [esp + 0x6c], esi
mov dword [esp + 0x78], edi
xor ebp, ebp
shl ebx, 0xd
call fcn.004184d0
or ebp, eax
or ebx, edx
mov eax, edi
mov edx, dword [esp + 0x74]
mov ecx, edi
shld edi, edx, 3
sar eax, 0x1d
sar ecx, 0x1f
shl edx, 3
or eax, edx
mov edx, dword [esp + 0x78]
or ecx, edi
xor ebp, eax
mov eax, dword [esp + 0x74]
xor ebx, ecx
mov cl, 6
call fcn.004184d0
xor ebx, edx
mov edx, dword [esp + 0x70]
xor ebp, eax
mov edi, esi
mov dword [esp + 0x80], ebx
mov eax, esi
mov cl, 8
mov dword [esp + 0x7c], ebp
xor ebx, ebx
shl edi, 0x18
call fcn.004184d0
or ebx, eax
xor eax, eax
or edi, edx
mov edx, dword [esp + 0x70]
mov dword [esp + 0x84], eax
mov ebp, esi
mov eax, esi
mov cl, 1
shl ebp, 0x1f
call fcn.004184d0
mov ecx, dword [esp + 0x84]
or ecx, eax
or ebp, edx
mov edx, dword [esp + 0x70]
xor ebx, ecx
mov eax, esi
mov cl, 7
xor edi, ebp
call fcn.004184d0
mov esi, dword [esp + 0x80]
mov ecx, dword [esp + 0x9c]
xor ebx, eax
mov eax, dword [esp + 0x14]
xor edi, edx
mov edx, dword [esp + 0x7c]
add edx, ebx
adc esi, edi
and eax, 0xf
add edx, dword [ecx + eax*8 + 0x50]
adc esi, dword [ecx + eax*8 + 0x54]
mov eax, dword [esp + 0x1c]
add dword [eax], edx
mov edx, dword [esp + 0x2c]
mov ebx, edx
adc dword [eax + 4], esi
mov eax, dword [esp + 0x28]
mov ecx, eax
shld ebx, ecx, 0x17
mov edi, edx
mov esi, edx
shl ecx, 0x17
sar edi, 0x1f
sar esi, 9
or edi, ebx
or esi, ecx
mov ebx, eax
mov cl, 0x12
xor ebp, ebp
shl ebx, 0xe
call fcn.004184d0
or ebp, eax
mov eax, dword [esp + 0x28]
or ebx, edx
xor esi, ebp
xor edi, ebx
mov ebx, eax
mov edx, dword [esp + 0x2c]
mov cl, 0xe
xor ebp, ebp
shl ebx, 0x12
call fcn.004184d0
mov ecx, dword [esp + 0x2c]
or ebp, eax
mov eax, dword [esp + 0x28]
or ebx, edx
mov edx, dword [esp + 0x30]
and edx, dword [esp + 0x28]
xor edi, ebx
mov ebx, dword [esp + 0x34]
and ebx, dword [esp + 0x2c]
not eax
and eax, dword [esp + 0x58]
not ecx
and ecx, dword [esp + 0x5c]
xor eax, edx
xor ecx, ebx
xor esi, ebp
add esi, eax
mov eax, dword [esp + 0x10]
adc edi, ecx
add esi, dword [eax*8 + 0x41cda8]
mov cl, 0x1c
adc edi, dword [eax*8 + 0x41cdac]
mov eax, dword [esp + 0x1c]
add esi, dword [eax]
adc edi, dword [eax + 4]
add esi, dword [esp + 0x50]
adc edi, dword [esp + 0x54]
add dword [esp + 0x38], esi
mov dword [esp + 0x64], edi
mov dword [esp + 0x60], esi
adc dword [esp + 0x3c], edi
mov edi, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
mov ebx, edi
mov eax, edi
mov edx, esi
xor ebp, ebp
shl ebx, 4
call fcn.004184d0
or ebx, edx
or ebp, eax
mov edx, esi
shld edx, edi, 0x1e
shl edi, 0x1e
mov eax, esi
sar eax, 2
or eax, edi
mov ecx, esi
sar ecx, 0x1f
or ecx, edx
mov edx, dword [esp + 0x40]
xor ebp, eax
xor ebx, ecx
mov edi, esi
shld edi, edx, 0x19
shl edx, 0x19
mov eax, esi
sar eax, 7
or eax, edx
mov edx, dword [esp + 0x48]
and edx, dword [esp + 0x40]
mov ecx, esi
sar ecx, 0x1f
or ecx, edi
mov edi, dword [esp + 0x4c]
xor ebp, eax
mov eax, dword [esp + 0x48]
xor eax, dword [esp + 0x40]
xor ebx, ecx
mov ecx, dword [esp + 0x4c]
and eax, dword [esp + 0x20]
xor ecx, esi
and ecx, dword [esp + 0x24]
and edi, esi
xor eax, edx
xor ecx, edi
add ebp, eax
mov eax, dword [esp + 0x9c]
adc ebx, ecx
add ebp, dword [esp + 0x60]
adc ebx, dword [esp + 0x64]
inc dword [esp + 0x10]
inc dword [esp + 0x68]
mov ecx, dword [esp + 0x68]
inc dword [esp + 0x18]
inc dword [esp + 0x14]
and ecx, 0xf
mov esi, dword [eax + ecx*8 + 0x50]
mov ecx, dword [eax + ecx*8 + 0x54]
mov dword [esp + 0x70], ecx
mov ecx, dword [esp + 0x18]
and ecx, 0xf
mov edx, dword [eax + ecx*8 + 0x50]
mov edi, dword [eax + ecx*8 + 0x54]
mov ecx, dword [esp + 0x10]
and ecx, 0xf
lea eax, [eax + ecx*8 + 0x50]
mov dword [esp + 0x54], ebx
mov dword [esp + 0x1c], eax
mov ebx, edx
mov dword [esp + 0x74], edx
mov eax, edx
mov dword [esp + 0x50], ebp
mov edx, edi
mov cl, 0x13
mov dword [esp + 0x6c], esi
mov dword [esp + 0x78], edi
xor ebp, ebp
shl ebx, 0xd
call fcn.004184d0
or ebx, edx
mov edx, dword [esp + 0x74]
or ebp, eax
mov eax, edi
mov ecx, edi
shld edi, edx, 3
sar eax, 0x1d
sar ecx, 0x1f
shl edx, 3
or eax, edx
mov edx, dword [esp + 0x78]
or ecx, edi
xor ebp, eax
mov eax, dword [esp + 0x74]
xor ebx, ecx
mov cl, 6
call fcn.004184d0
xor ebx, edx
mov edx, dword [esp + 0x70]
xor ebp, eax
mov edi, esi
mov dword [esp + 0x80], ebx
mov eax, esi
mov cl, 8
mov dword [esp + 0x7c], ebp
xor ebx, ebx
shl edi, 0x18
call fcn.004184d0
or ebx, eax
xor eax, eax
or edi, edx
mov edx, dword [esp + 0x70]
mov dword [esp + 0x84], eax
mov ebp, esi
mov eax, esi
mov cl, 1
shl ebp, 0x1f
call fcn.004184d0
mov ecx, dword [esp + 0x84]
or ecx, eax
or ebp, edx
mov edx, dword [esp + 0x70]
xor ebx, ecx
mov eax, esi
mov cl, 7
xor edi, ebp
call fcn.004184d0
mov esi, dword [esp + 0x80]
mov ecx, dword [esp + 0x9c]
xor ebx, eax
mov eax, dword [esp + 0x14]
xor edi, edx
mov edx, dword [esp + 0x7c]
add edx, ebx
adc esi, edi
and eax, 0xf
add edx, dword [ecx + eax*8 + 0x50]
adc esi, dword [ecx + eax*8 + 0x54]
mov eax, dword [esp + 0x1c]
add dword [eax], edx
mov edx, dword [esp + 0x3c]
mov ebx, edx
adc dword [eax + 4], esi
mov eax, dword [esp + 0x38]
mov ecx, eax
shld ebx, ecx, 0x17
mov edi, edx
mov esi, edx
shl ecx, 0x17
sar edi, 0x1f
sar esi, 9
or edi, ebx
or esi, ecx
mov ebx, eax
mov cl, 0x12
xor ebp, ebp
shl ebx, 0xe
call fcn.004184d0
or ebx, edx
mov edx, dword [esp + 0x3c]
or ebp, eax
mov eax, dword [esp + 0x38]
xor edi, ebx
mov ebx, eax
xor esi, ebp
mov cl, 0xe
xor ebp, ebp
shl ebx, 0x12
call fcn.004184d0
mov ecx, dword [esp + 0x3c]
or ebp, eax
mov eax, dword [esp + 0x38]
or ebx, edx
mov edx, dword [esp + 0x28]
and edx, dword [esp + 0x38]
xor edi, ebx
mov ebx, dword [esp + 0x2c]
and ebx, dword [esp + 0x3c]
not eax
and eax, dword [esp + 0x30]
xor esi, ebp
xor eax, edx
not ecx
and ecx, dword [esp + 0x34]
xor ecx, ebx
add esi, eax
mov eax, dword [esp + 0x10]
adc edi, ecx
add esi, dword [eax*8 + 0x41cda8]
mov cl, 0x1c
adc edi, dword [eax*8 + 0x41cdac]
mov eax, dword [esp + 0x1c]
add esi, dword [eax]
adc edi, dword [eax + 4]
add esi, dword [esp + 0x58]
adc edi, dword [esp + 0x5c]
add dword [esp + 0x20], esi
mov dword [esp + 0x64], edi
mov dword [esp + 0x60], esi
adc dword [esp + 0x24], edi
mov edi, dword [esp + 0x50]
mov esi, dword [esp + 0x54]
mov ebx, edi
mov eax, edi
mov edx, esi
xor ebp, ebp
shl ebx, 4
call fcn.004184d0
or ebx, edx
or ebp, eax
mov edx, esi
shld edx, edi, 0x1e
shl edi, 0x1e
mov eax, esi
sar eax, 2
or eax, edi
xor ebp, eax
mov ecx, esi
sar ecx, 0x1f
or ecx, edx
mov edx, dword [esp + 0x50]
xor ebx, ecx
mov edi, esi
shld edi, edx, 0x19
shl edx, 0x19
mov eax, esi
sar eax, 7
or eax, edx
mov edx, dword [esp + 0x40]
and edx, dword [esp + 0x50]
xor ebp, eax
mov eax, dword [esp + 0x40]
xor eax, dword [esp + 0x50]
mov ecx, esi
and eax, dword [esp + 0x48]
sar ecx, 0x1f
or ecx, edi
mov edi, dword [esp + 0x44]
xor ebx, ecx
mov ecx, dword [esp + 0x44]
xor ecx, esi
and ecx, dword [esp + 0x4c]
and edi, esi
xor ecx, edi
mov edi, dword [esp + 0x10]
xor eax, edx
add ebp, eax
adc ebx, ecx
add ebp, dword [esp + 0x60]
adc ebx, dword [esp + 0x64]
inc edi
inc dword [esp + 0x68]
inc dword [esp + 0x18]
inc dword [esp + 0x14]
cmp edi, 0x50
mov ecx, ebp
mov edx, ebx
mov dword [esp + 0x58], ecx
mov dword [esp + 0x5c], edx
mov dword [esp + 0x10], edi
jl 0x41024e
mov eax, dword [esp + 0x9c]
add dword [eax], ecx
mov ecx, dword [esp + 0x50]
pop edi
adc dword [eax + 4], edx
add dword [eax + 8], ecx
mov ecx, dword [esp + 0x3c]
adc dword [eax + 0xc], esi
add dword [eax + 0x10], ecx
mov ecx, dword [esp + 0x40]
pop esi
adc dword [eax + 0x14], ecx
mov ecx, dword [esp + 0x40]
add dword [eax + 0x18], ecx
mov ecx, dword [esp + 0x44]
pop ebp
adc dword [eax + 0x1c], ecx
mov ecx, dword [esp + 0x14]
add dword [eax + 0x20], ecx
mov ecx, dword [esp + 0x18]
pop ebx
adc dword [eax + 0x24], ecx
mov ecx, dword [esp + 0x28]
add dword [eax + 0x28], ecx
mov ecx, dword [esp + 0x2c]
adc dword [eax + 0x2c], ecx
mov ecx, dword [esp + 0x18]
add dword [eax + 0x30], ecx
mov ecx, dword [esp + 0x1c]
adc dword [eax + 0x34], ecx
mov ecx, dword [esp + 0x20]
add dword [eax + 0x38], ecx
mov ecx, dword [esp + 0x24]
adc dword [eax + 0x3c], ecx
add esp, 0x88
ret