Function at 0x656b04
Capabilities:
Encrypt data using hc-128

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xffffffd8
mov ecx, 0x20
mov dword [esp], eax
lea esi, [esp + 8]
mov ebx, dword [esp]
mov edx, dword [esp]
add ebx, 0x28
add edx, 8
mov eax, esi
call fcn.005c83bc
xor ecx, ecx
mov eax, 0x685cb0
mov dword [esp + 4], ecx
cmp dword [esp + 4], 0
je 0x656b93
mov edx, dword [ebx + 0x38]
mov ecx, dword [ebx + 0x38]
shl ecx, 0xf
mov edi, dword [ebx + 0x38]
shr edx, 0x11
mov ebp, dword [ebx + 4]
or edx, ecx
mov ecx, dword [ebx + 0x38]
shr ecx, 0x13
shl edi, 0xd
or ecx, edi
mov edi, dword [ebx + 4]
xor edx, ecx
mov ecx, dword [ebx + 0x38]
shr ecx, 0xa
xor edx, ecx
mov ecx, dword [ebx + 4]
shr ecx, 7
add edx, dword [ebx + 0x24]
shl edi, 0x19
or ecx, edi
mov edi, dword [ebx + 4]
shl ebp, 0xe
shr edi, 0x12
or edi, ebp
xor ecx, edi
mov edi, dword [ebx + 4]
shr edi, 3
xor ecx, edi
add edx, ecx
add dword [ebx], edx
mov edx, dword [ebx]
jmp 0x656b95
mov edx, dword [ebx]
add edx, dword [eax]
mov ecx, dword [esi + 0x10]
shr ecx, 6
mov edi, dword [esi + 0x10]
shl edi, 0x1a
or ecx, edi
mov edi, dword [esi + 0x10]
shr edi, 0xb
mov ebp, dword [esi + 0x10]
shl ebp, 0x15
or edi, ebp
xor ecx, edi
mov edi, dword [esi + 0x10]
shr edi, 0x19
mov ebp, dword [esi + 0x10]
shl ebp, 7
or edi, ebp
xor ecx, edi
add edx, ecx
mov ecx, dword [esi + 0x14]
xor ecx, dword [esi + 0x18]
and ecx, dword [esi + 0x10]
xor ecx, dword [esi + 0x18]
add edx, ecx
add dword [esi + 0x1c], edx
mov edx, dword [esi + 0x1c]
add dword [esi + 0xc], edx
mov edx, dword [esi]
mov ecx, edx
shr ecx, 2
mov edi, edx
shl edi, 0x1e
or ecx, edi
mov edi, edx
shr edi, 0xd
mov ebp, edx
shl ebp, 0x13
or edi, ebp
xor ecx, edi
mov edi, edx
shr edi, 0x16
mov ebp, edx
shl ebp, 0xa
or edi, ebp
xor ecx, edi
mov edi, edx
and edi, dword [esi + 4]
xor edx, dword [esi + 4]
and edx, dword [esi + 8]
or edi, edx
add ecx, edi
add dword [esi + 0x1c], ecx
cmp dword [esp + 4], 0
je 0x656c7a
mov edx, dword [ebx + 0x3c]
mov ecx, dword [ebx + 0x3c]
shl ecx, 0xf
mov edi, dword [ebx + 0x3c]
shr edx, 0x11
mov ebp, dword [ebx + 8]
or edx, ecx
mov ecx, dword [ebx + 0x3c]
shr ecx, 0x13
shl edi, 0xd
or ecx, edi
mov edi, dword [ebx + 8]
xor edx, ecx
mov ecx, dword [ebx + 0x3c]
shr ecx, 0xa
xor edx, ecx
mov ecx, dword [ebx + 8]
shr ecx, 7
add edx, dword [ebx + 0x28]
shl edi, 0x19
or ecx, edi
mov edi, dword [ebx + 8]
shl ebp, 0xe
shr edi, 0x12
or edi, ebp
xor ecx, edi
mov edi, dword [ebx + 8]
shr edi, 3
xor ecx, edi
add edx, ecx
add dword [ebx + 4], edx
mov edx, dword [ebx + 4]
jmp 0x656c7d
mov edx, dword [ebx + 4]
add edx, dword [eax + 4]
mov ecx, dword [esi + 0xc]
shr ecx, 6
mov edi, dword [esi + 0xc]
shl edi, 0x1a
or ecx, edi
mov edi, dword [esi + 0xc]
shr edi, 0xb
mov ebp, dword [esi + 0xc]
shl ebp, 0x15
or edi, ebp
xor ecx, edi
mov edi, dword [esi + 0xc]
shr edi, 0x19
mov ebp, dword [esi + 0xc]
shl ebp, 7
or edi, ebp
xor ecx, edi
add edx, ecx
mov ecx, dword [esi + 0x10]
xor ecx, dword [esi + 0x14]
and ecx, dword [esi + 0xc]
xor ecx, dword [esi + 0x14]
add edx, ecx
add dword [esi + 0x18], edx
mov edx, dword [esi + 0x18]
add dword [esi + 8], edx
mov edx, dword [esi + 0x1c]
mov ecx, edx
shr ecx, 2
mov edi, edx
shl edi, 0x1e
or ecx, edi
mov edi, edx
shr edi, 0xd
mov ebp, edx
shl ebp, 0x13
or edi, ebp
xor ecx, edi
mov edi, edx
shr edi, 0x16
mov ebp, edx
shl ebp, 0xa
or edi, ebp
xor ecx, edi
mov edi, edx
and edi, dword [esi]
xor edx, dword [esi]
and edx, dword [esi + 4]
or edi, edx
add ecx, edi
add dword [esi + 0x18], ecx
cmp dword [esp + 4], 0
je 0x656d5d
mov edx, dword [ebx]
mov ecx, dword [ebx]
shl ecx, 0xf
mov edi, dword [ebx]
shr edx, 0x11
mov ebp, dword [ebx + 0xc]
or edx, ecx
mov ecx, dword [ebx]
shr ecx, 0x13
shl edi, 0xd
or ecx, edi
mov edi, dword [ebx + 0xc]
xor edx, ecx
mov ecx, dword [ebx]
shr ecx, 0xa
xor edx, ecx
mov ecx, dword [ebx + 0xc]
shr ecx, 7
add edx, dword [ebx + 0x2c]
shl edi, 0x19
or ecx, edi
mov edi, dword [ebx + 0xc]
shl ebp, 0xe
shr edi, 0x12
or edi, ebp
xor ecx, edi
mov edi, dword [ebx + 0xc]
shr edi, 3
xor ecx, edi
add edx, ecx
add dword [ebx + 8], edx
mov edx, dword [ebx + 8]
jmp 0x656d60
mov edx, dword [ebx + 8]
add edx, dword [eax + 8]
mov ecx, dword [esi + 8]
shr ecx, 6
mov edi, dword [esi + 8]
shl edi, 0x1a
or ecx, edi
mov edi, dword [esi + 8]
shr edi, 0xb
mov ebp, dword [esi + 8]
shl ebp, 0x15
or edi, ebp
xor ecx, edi
mov edi, dword [esi + 8]
shr edi, 0x19
mov ebp, dword [esi + 8]
shl ebp, 7
or edi, ebp
xor ecx, edi
add edx, ecx
mov ecx, dword [esi + 0xc]
xor ecx, dword [esi + 0x10]
and ecx, dword [esi + 8]
xor ecx, dword [esi + 0x10]
add edx, ecx
add dword [esi + 0x14], edx
mov edx, dword [esi + 0x14]
add dword [esi + 4], edx
mov edx, dword [esi + 0x18]
mov ecx, edx
shr ecx, 2
mov edi, edx
shl edi, 0x1e
or ecx, edi
mov edi, edx
shr edi, 0xd
mov ebp, edx
shl ebp, 0x13
or edi, ebp
xor ecx, edi
mov edi, edx
shr edi, 0x16
mov ebp, edx
shl ebp, 0xa
or edi, ebp
xor ecx, edi
mov edi, edx
and edi, dword [esi + 0x1c]
xor edx, dword [esi + 0x1c]
and edx, dword [esi]
or edi, edx
add ecx, edi
add dword [esi + 0x14], ecx
cmp dword [esp + 4], 0
je 0x656e46
mov edx, dword [ebx + 4]
mov ecx, dword [ebx + 4]
shl ecx, 0xf
mov edi, dword [ebx + 4]
shr edx, 0x11
mov ebp, dword [ebx + 0x10]
or edx, ecx
mov ecx, dword [ebx + 4]
shr ecx, 0x13
shl edi, 0xd
or ecx, edi
mov edi, dword [ebx + 0x10]
xor edx, ecx
mov ecx, dword [ebx + 4]
shr ecx, 0xa
xor edx, ecx
mov ecx, dword [ebx + 0x10]
shr ecx, 7
add edx, dword [ebx + 0x30]
shl edi, 0x19
or ecx, edi
mov edi, dword [ebx + 0x10]
shl ebp, 0xe
shr edi, 0x12
or edi, ebp
xor ecx, edi
mov edi, dword [ebx + 0x10]
shr edi, 3
xor ecx, edi
add edx, ecx
add dword [ebx + 0xc], edx
mov edx, dword [ebx + 0xc]
jmp 0x656e49
mov edx, dword [ebx + 0xc]
add edx, dword [eax + 0xc]
mov ecx, dword [esi + 4]
shr ecx, 6
mov edi, dword [esi + 4]
shl edi, 0x1a
or ecx, edi
mov edi, dword [esi + 4]
shr edi, 0xb
mov ebp, dword [esi + 4]
shl ebp, 0x15
or edi, ebp
xor ecx, edi
mov edi, dword [esi + 4]
shr edi, 0x19
mov ebp, dword [esi + 4]
shl ebp, 7
or edi, ebp
xor ecx, edi
add edx, ecx
mov ecx, dword [esi + 8]
xor ecx, dword [esi + 0xc]
and ecx, dword [esi + 4]
xor ecx, dword [esi + 0xc]
add edx, ecx
add dword [esi + 0x10], edx
mov edx, dword [esi + 0x10]
add dword [esi], edx
mov edx, dword [esi + 0x14]
mov ecx, edx
shr ecx, 2
mov edi, edx
shl edi, 0x1e
or ecx, edi
mov edi, edx
shr edi, 0xd
mov ebp, edx
shl ebp, 0x13
or edi, ebp
xor ecx, edi
mov edi, edx
shr edi, 0x16
mov ebp, edx
shl ebp, 0xa
or edi, ebp
xor ecx, edi
mov edi, edx
and edi, dword [esi + 0x18]
xor edx, dword [esi + 0x18]
and edx, dword [esi + 0x1c]
or edi, edx
add ecx, edi
add dword [esi + 0x10], ecx
cmp dword [esp + 4], 0
je 0x656f2f
mov edx, dword [ebx + 8]
mov ecx, dword [ebx + 8]
shl ecx, 0xf
mov edi, dword [ebx + 8]
shr edx, 0x11
mov ebp, dword [ebx + 0x14]
or edx, ecx
mov ecx, dword [ebx + 8]
shr ecx, 0x13
shl edi, 0xd
or ecx, edi
mov edi, dword [ebx + 0x14]
xor edx, ecx
mov ecx, dword [ebx + 8]
shr ecx, 0xa
xor edx, ecx
mov ecx, dword [ebx + 0x14]
shr ecx, 7
add edx, dword [ebx + 0x34]
shl edi, 0x19
or ecx, edi
mov edi, dword [ebx + 0x14]
shl ebp, 0xe
shr edi, 0x12
or edi, ebp
xor ecx, edi
mov edi, dword [ebx + 0x14]
shr edi, 3
xor ecx, edi
add edx, ecx
add dword [ebx + 0x10], edx
mov edx, dword [ebx + 0x10]
jmp 0x656f32
mov edx, dword [ebx + 0x10]
add edx, dword [eax + 0x10]
mov ecx, dword [esi]
shr ecx, 6
mov edi, dword [esi]
shl edi, 0x1a
or ecx, edi
mov edi, dword [esi]
shr edi, 0xb
mov ebp, dword [esi]
shl ebp, 0x15
or edi, ebp
xor ecx, edi
mov edi, dword [esi]
shr edi, 0x19
mov ebp, dword [esi]
shl ebp, 7
or edi, ebp
xor ecx, edi
add edx, ecx
mov ecx, dword [esi + 4]
xor ecx, dword [esi + 8]
and ecx, dword [esi]
xor ecx, dword [esi + 8]
add edx, ecx
add dword [esi + 0xc], edx
mov edx, dword [esi + 0xc]
add dword [esi + 0x1c], edx
mov edx, dword [esi + 0x10]
mov ecx, edx
shr ecx, 2
mov edi, edx
shl edi, 0x1e
or ecx, edi
mov edi, edx
shr edi, 0xd
mov ebp, edx
shl ebp, 0x13
or edi, ebp
xor ecx, edi
mov edi, edx
shr edi, 0x16
mov ebp, edx
shl ebp, 0xa
or edi, ebp
xor ecx, edi
mov edi, edx
and edi, dword [esi + 0x14]
xor edx, dword [esi + 0x14]
and edx, dword [esi + 0x18]
or edi, edx
add ecx, edi
add dword [esi + 0xc], ecx
cmp dword [esp + 4], 0
je 0x657012
mov edx, dword [ebx + 0xc]
mov ecx, dword [ebx + 0xc]
shl ecx, 0xf
mov edi, dword [ebx + 0xc]
shr edx, 0x11
mov ebp, dword [ebx + 0x18]
or edx, ecx
mov ecx, dword [ebx + 0xc]
shr ecx, 0x13
shl edi, 0xd
or ecx, edi
mov edi, dword [ebx + 0x18]
xor edx, ecx
mov ecx, dword [ebx + 0xc]
shr ecx, 0xa
xor edx, ecx
mov ecx, dword [ebx + 0x18]
shr ecx, 7
add edx, dword [ebx + 0x38]
shl edi, 0x19
or ecx, edi
mov edi, dword [ebx + 0x18]
shl ebp, 0xe
shr edi, 0x12
or edi, ebp
xor ecx, edi
mov edi, dword [ebx + 0x18]
shr edi, 3
xor ecx, edi
add edx, ecx
add dword [ebx + 0x14], edx
mov edx, dword [ebx + 0x14]
jmp 0x657015
mov edx, dword [ebx + 0x14]
add edx, dword [eax + 0x14]
mov ecx, dword [esi + 0x1c]
shr ecx, 6
mov edi, dword [esi + 0x1c]
shl edi, 0x1a
or ecx, edi
mov edi, dword [esi + 0x1c]
shr edi, 0xb
mov ebp, dword [esi + 0x1c]
shl ebp, 0x15
or edi, ebp
xor ecx, edi
mov edi, dword [esi + 0x1c]
shr edi, 0x19
mov ebp, dword [esi + 0x1c]
shl ebp, 7
or edi, ebp
xor ecx, edi
add edx, ecx
mov ecx, dword [esi]
xor ecx, dword [esi + 4]
and ecx, dword [esi + 0x1c]
xor ecx, dword [esi + 4]
add edx, ecx
add dword [esi + 8], edx
mov edx, dword [esi + 8]
add dword [esi + 0x18], edx
mov edx, dword [esi + 0xc]
mov ecx, edx
shr ecx, 2
mov edi, edx
shl edi, 0x1e
or ecx, edi
mov edi, edx
shr edi, 0xd
mov ebp, edx
shl ebp, 0x13
or edi, ebp
xor ecx, edi
mov edi, edx
shr edi, 0x16
mov ebp, edx
shl ebp, 0xa
or edi, ebp
xor ecx, edi
mov edi, edx
and edi, dword [esi + 0x10]
xor edx, dword [esi + 0x10]
and edx, dword [esi + 0x14]
or edi, edx
add ecx, edi
add dword [esi + 8], ecx
cmp dword [esp + 4], 0
je 0x6570fb
mov edx, dword [ebx + 0x10]
mov ecx, dword [ebx + 0x10]
shl ecx, 0xf
mov edi, dword [ebx + 0x10]
shr edx, 0x11
mov ebp, dword [ebx + 0x1c]
or edx, ecx
mov ecx, dword [ebx + 0x10]
shr ecx, 0x13
shl edi, 0xd
or ecx, edi
mov edi, dword [ebx + 0x1c]
xor edx, ecx
mov ecx, dword [ebx + 0x10]
shr ecx, 0xa
xor edx, ecx
mov ecx, dword [ebx + 0x1c]
shr ecx, 7
add edx, dword [ebx + 0x3c]
shl edi, 0x19
or ecx, edi
mov edi, dword [ebx + 0x1c]
shl ebp, 0xe
shr edi, 0x12
or edi, ebp
xor ecx, edi
mov edi, dword [ebx + 0x1c]
shr edi, 3
xor ecx, edi
add edx, ecx
add dword [ebx + 0x18], edx
mov edx, dword [ebx + 0x18]
jmp 0x6570fe
mov edx, dword [ebx + 0x18]
add edx, dword [eax + 0x18]
mov ecx, dword [esi + 0x18]
shr ecx, 6
mov edi, dword [esi + 0x18]
shl edi, 0x1a
or ecx, edi
mov edi, dword [esi + 0x18]
shr edi, 0xb
mov ebp, dword [esi + 0x18]
shl ebp, 0x15
or edi, ebp
xor ecx, edi
mov edi, dword [esi + 0x18]
shr edi, 0x19
mov ebp, dword [esi + 0x18]
shl ebp, 7
or edi, ebp
xor ecx, edi
add edx, ecx
mov ecx, dword [esi + 0x1c]
xor ecx, dword [esi]
and ecx, dword [esi + 0x18]
xor ecx, dword [esi]
add edx, ecx
add dword [esi + 4], edx
mov edx, dword [esi + 4]
add dword [esi + 0x14], edx
mov edx, dword [esi + 8]
mov ecx, edx
shr ecx, 2
mov edi, edx
shl edi, 0x1e
or ecx, edi
mov edi, edx
shr edi, 0xd
mov ebp, edx
shl ebp, 0x13
or edi, ebp
xor ecx, edi
mov edi, edx
shr edi, 0x16
mov ebp, edx
shl ebp, 0xa
or edi, ebp
xor ecx, edi
mov edi, edx
and edi, dword [esi + 0xc]
xor edx, dword [esi + 0xc]
and edx, dword [esi + 0x10]
or edi, edx
add ecx, edi
add dword [esi + 4], ecx
cmp dword [esp + 4], 0
je 0x6571e2
mov edx, dword [ebx + 0x14]
mov ecx, dword [ebx + 0x14]
shl ecx, 0xf
mov edi, dword [ebx + 0x14]
shr edx, 0x11
mov ebp, dword [ebx + 0x20]
or edx, ecx
mov ecx, dword [ebx + 0x14]
shr ecx, 0x13
shl edi, 0xd
or ecx, edi
mov edi, dword [ebx + 0x20]
xor edx, ecx
mov ecx, dword [ebx + 0x14]
shr ecx, 0xa
xor edx, ecx
mov ecx, dword [ebx + 0x20]
shr ecx, 7
add edx, dword [ebx]
shl edi, 0x19
or ecx, edi
mov edi, dword [ebx + 0x20]
shl ebp, 0xe
shr edi, 0x12
or edi, ebp
xor ecx, edi
mov edi, dword [ebx + 0x20]
shr edi, 3
xor ecx, edi
add edx, ecx
add dword [ebx + 0x1c], edx
mov edx, dword [ebx + 0x1c]
jmp 0x6571e5
mov edx, dword [ebx + 0x1c]
add edx, dword [eax + 0x1c]
mov ecx, dword [esi + 0x14]
shr ecx, 6
mov edi, dword [esi + 0x14]
shl edi, 0x1a
or ecx, edi
mov edi, dword [esi + 0x14]
shr edi, 0xb
mov ebp, dword [esi + 0x14]
shl ebp, 0x15
or edi, ebp
xor ecx, edi
mov edi, dword [esi + 0x14]
shr edi, 0x19
mov ebp, dword [esi + 0x14]
shl ebp, 7
or edi, ebp
xor ecx, edi
add edx, ecx
mov ecx, dword [esi + 0x18]
xor ecx, dword [esi + 0x1c]
and ecx, dword [esi + 0x14]
xor ecx, dword [esi + 0x1c]
add edx, ecx
add dword [esi], edx
mov edx, dword [esi]
add dword [esi + 0x10], edx
mov edx, dword [esi + 4]
mov ecx, edx
shr ecx, 2
mov edi, edx
shl edi, 0x1e
or ecx, edi
mov edi, edx
shr edi, 0xd
mov ebp, edx
shl ebp, 0x13
or edi, ebp
xor ecx, edi
mov edi, edx
shr edi, 0x16
mov ebp, edx
shl ebp, 0xa
or edi, ebp
xor ecx, edi
mov edi, edx
and edi, dword [esi + 8]
xor edx, dword [esi + 8]
and edx, dword [esi + 0xc]
or edi, edx
add ecx, edi
add dword [esi], ecx
cmp dword [esp + 4], 0
je 0x6572c9
mov edx, dword [ebx + 0x18]
mov ecx, dword [ebx + 0x18]
shl ecx, 0xf
mov edi, dword [ebx + 0x18]
shr edx, 0x11
mov ebp, dword [ebx + 0x24]
or edx, ecx
mov ecx, dword [ebx + 0x18]
shr ecx, 0x13
shl edi, 0xd
or ecx, edi
mov edi, dword [ebx + 0x24]
xor edx, ecx
mov ecx, dword [ebx + 0x18]
shr ecx, 0xa
xor edx, ecx
mov ecx, dword [ebx + 0x24]
shr ecx, 7
add edx, dword [ebx + 4]
shl edi, 0x19
or ecx, edi
mov edi, dword [ebx + 0x24]
shl ebp, 0xe
shr edi, 0x12
or edi, ebp
xor ecx, edi
mov edi, dword [ebx + 0x24]
shr edi, 3
xor ecx, edi
add edx, ecx
add dword [ebx + 0x20], edx
mov edx, dword [ebx + 0x20]
jmp 0x6572cc
mov edx, dword [ebx + 0x20]
add edx, dword [eax + 0x20]
mov ecx, dword [esi + 0x10]
shr ecx, 6
mov edi, dword [esi + 0x10]
shl edi, 0x1a
or ecx, edi
mov edi, dword [esi + 0x10]
shr edi, 0xb
mov ebp, dword [esi + 0x10]
shl ebp, 0x15
or edi, ebp
xor ecx, edi
mov edi, dword [esi + 0x10]
shr edi, 0x19
mov ebp, dword [esi + 0x10]
shl ebp, 7
or edi, ebp
xor ecx, edi
add edx, ecx
mov ecx, dword [esi + 0x14]
xor ecx, dword [esi + 0x18]
and ecx, dword [esi + 0x10]
xor ecx, dword [esi + 0x18]
add edx, ecx
add dword [esi + 0x1c], edx
mov edx, dword [esi + 0x1c]
add dword [esi + 0xc], edx
mov edx, dword [esi]
mov ecx, edx
shr ecx, 2
mov edi, edx
shl edi, 0x1e
or ecx, edi
mov edi, edx
shr edi, 0xd
mov ebp, edx
shl ebp, 0x13
or edi, ebp
xor ecx, edi
mov edi, edx
shr edi, 0x16
mov ebp, edx
shl ebp, 0xa
or edi, ebp
xor ecx, edi
mov edi, edx
and edi, dword [esi + 4]
xor edx, dword [esi + 4]
and edx, dword [esi + 8]
or edi, edx
add ecx, edi
add dword [esi + 0x1c], ecx
cmp dword [esp + 4], 0
je 0x6573b2
mov edx, dword [ebx + 0x1c]
mov ecx, dword [ebx + 0x1c]
shl ecx, 0xf
mov edi, dword [ebx + 0x1c]
shr edx, 0x11
mov ebp, dword [ebx + 0x28]
or edx, ecx
mov ecx, dword [ebx + 0x1c]
shr ecx, 0x13
shl edi, 0xd
or ecx, edi
mov edi, dword [ebx + 0x28]
xor edx, ecx
mov ecx, dword [ebx + 0x1c]
shr ecx, 0xa
xor edx, ecx
mov ecx, dword [ebx + 0x28]
shr ecx, 7
add edx, dword [ebx + 8]
shl edi, 0x19
or ecx, edi
mov edi, dword [ebx + 0x28]
shl ebp, 0xe
shr edi, 0x12
or edi, ebp
xor ecx, edi
mov edi, dword [ebx + 0x28]
shr edi, 3
xor ecx, edi
add edx, ecx
add dword [ebx + 0x24], edx
mov edx, dword [ebx + 0x24]
jmp 0x6573b5
mov edx, dword [ebx + 0x24]
add edx, dword [eax + 0x24]
mov ecx, dword [esi + 0xc]
shr ecx, 6
mov edi, dword [esi + 0xc]
shl edi, 0x1a
or ecx, edi
mov edi, dword [esi + 0xc]
shr edi, 0xb
mov ebp, dword [esi + 0xc]
shl ebp, 0x15
or edi, ebp
xor ecx, edi
mov edi, dword [esi + 0xc]
shr edi, 0x19
mov ebp, dword [esi + 0xc]
shl ebp, 7
or edi, ebp
xor ecx, edi
add edx, ecx
mov ecx, dword [esi + 0x10]
xor ecx, dword [esi + 0x14]
and ecx, dword [esi + 0xc]
xor ecx, dword [esi + 0x14]
add edx, ecx
add dword [esi + 0x18], edx
mov edx, dword [esi + 0x18]
add dword [esi + 8], edx
mov edx, dword [esi + 0x1c]
mov ecx, edx
shr ecx, 2
mov edi, edx
shl edi, 0x1e
or ecx, edi
mov edi, edx
shr edi, 0xd
mov ebp, edx
shl ebp, 0x13
or edi, ebp
xor ecx, edi
mov edi, edx
shr edi, 0x16
mov ebp, edx
shl ebp, 0xa
or edi, ebp
xor ecx, edi
mov edi, edx
and edi, dword [esi]
xor edx, dword [esi]
and edx, dword [esi + 4]
or edi, edx
add ecx, edi
add dword [esi + 0x18], ecx
cmp dword [esp + 4], 0
je 0x65749a
mov edx, dword [ebx + 0x20]
mov ecx, dword [ebx + 0x20]
shl ecx, 0xf
mov edi, dword [ebx + 0x20]
shr edx, 0x11
mov ebp, dword [ebx + 0x2c]
or edx, ecx
mov ecx, dword [ebx + 0x20]
shr ecx, 0x13
shl edi, 0xd
or ecx, edi
mov edi, dword [ebx + 0x2c]
xor edx, ecx
mov ecx, dword [ebx + 0x20]
shr ecx, 0xa
xor edx, ecx
mov ecx, dword [ebx + 0x2c]
shr ecx, 7
add edx, dword [ebx + 0xc]
shl edi, 0x19
or ecx, edi
mov edi, dword [ebx + 0x2c]
shl ebp, 0xe
shr edi, 0x12
or edi, ebp
xor ecx, edi
mov edi, dword [ebx + 0x2c]
shr edi, 3
xor ecx, edi
add edx, ecx
add dword [ebx + 0x28], edx
mov edx, dword [ebx + 0x28]
jmp 0x65749d
mov edx, dword [ebx + 0x28]
add edx, dword [eax + 0x28]
mov ecx, dword [esi + 8]
shr ecx, 6
mov edi, dword [esi + 8]
shl edi, 0x1a
or ecx, edi
mov edi, dword [esi + 8]
shr edi, 0xb
mov ebp, dword [esi + 8]
shl ebp, 0x15
or edi, ebp
xor ecx, edi
mov edi, dword [esi + 8]
shr edi, 0x19
mov ebp, dword [esi + 8]
shl ebp, 7
or edi, ebp
xor ecx, edi
add edx, ecx
mov ecx, dword [esi + 0xc]
xor ecx, dword [esi + 0x10]
and ecx, dword [esi + 8]
xor ecx, dword [esi + 0x10]
add edx, ecx
add dword [esi + 0x14], edx
mov edx, dword [esi + 0x14]
add dword [esi + 4], edx
mov edx, dword [esi + 0x18]
mov ecx, edx
shr ecx, 2
mov edi, edx
shl edi, 0x1e
or ecx, edi
mov edi, edx
shr edi, 0xd
mov ebp, edx
shl ebp, 0x13
or edi, ebp
xor ecx, edi
mov edi, edx
shr edi, 0x16
mov ebp, edx
shl ebp, 0xa
or edi, ebp
xor ecx, edi
mov edi, edx
and edi, dword [esi + 0x1c]
xor edx, dword [esi + 0x1c]
and edx, dword [esi]
or edi, edx
add ecx, edi
add dword [esi + 0x14], ecx
cmp dword [esp + 4], 0
je 0x657583
mov edx, dword [ebx + 0x24]
mov ecx, dword [ebx + 0x24]
shl ecx, 0xf
mov edi, dword [ebx + 0x24]
shr edx, 0x11
mov ebp, dword [ebx + 0x30]
or edx, ecx
mov ecx, dword [ebx + 0x24]
shr ecx, 0x13
shl edi, 0xd
or ecx, edi
mov edi, dword [ebx + 0x30]
xor edx, ecx
mov ecx, dword [ebx + 0x24]
shr ecx, 0xa
xor edx, ecx
mov ecx, dword [ebx + 0x30]
shr ecx, 7
add edx, dword [ebx + 0x10]
shl edi, 0x19
or ecx, edi
mov edi, dword [ebx + 0x30]
shl ebp, 0xe
shr edi, 0x12
or edi, ebp
xor ecx, edi
mov edi, dword [ebx + 0x30]
shr edi, 3
xor ecx, edi
add edx, ecx
add dword [ebx + 0x2c], edx
mov edx, dword [ebx + 0x2c]
jmp 0x657586
mov edx, dword [ebx + 0x2c]
add edx, dword [eax + 0x2c]
mov ecx, dword [esi + 4]
shr ecx, 6
mov edi, dword [esi + 4]
shl edi, 0x1a
or ecx, edi
mov edi, dword [esi + 4]
shr edi, 0xb
mov ebp, dword [esi + 4]
shl ebp, 0x15
or edi, ebp
xor ecx, edi
mov edi, dword [esi + 4]
shr edi, 0x19
mov ebp, dword [esi + 4]
shl ebp, 7
or edi, ebp
xor ecx, edi
add edx, ecx
mov ecx, dword [esi + 8]
xor ecx, dword [esi + 0xc]
and ecx, dword [esi + 4]
xor ecx, dword [esi + 0xc]
add edx, ecx
add dword [esi + 0x10], edx
mov edx, dword [esi + 0x10]
add dword [esi], edx
mov edx, dword [esi + 0x14]
mov ecx, edx
shr ecx, 2
mov edi, edx
shl edi, 0x1e
or ecx, edi
mov edi, edx
shr edi, 0xd
mov ebp, edx
shl ebp, 0x13
or edi, ebp
xor ecx, edi
mov edi, edx
shr edi, 0x16
mov ebp, edx
shl ebp, 0xa
or edi, ebp
xor ecx, edi
mov edi, edx
and edi, dword [esi + 0x18]
xor edx, dword [esi + 0x18]
and edx, dword [esi + 0x1c]
or edi, edx
add ecx, edi
add dword [esi + 0x10], ecx
cmp dword [esp + 4], 0
je 0x65766c
mov edx, dword [ebx + 0x28]
mov ecx, dword [ebx + 0x28]
shl ecx, 0xf
mov edi, dword [ebx + 0x28]
shr edx, 0x11
mov ebp, dword [ebx + 0x34]
or edx, ecx
mov ecx, dword [ebx + 0x28]
shr ecx, 0x13
shl edi, 0xd
or ecx, edi
mov edi, dword [ebx + 0x34]
xor edx, ecx
mov ecx, dword [ebx + 0x28]
shr ecx, 0xa
xor edx, ecx
mov ecx, dword [ebx + 0x34]
shr ecx, 7
add edx, dword [ebx + 0x14]
shl edi, 0x19
or ecx, edi
mov edi, dword [ebx + 0x34]
shl ebp, 0xe
shr edi, 0x12
or edi, ebp
xor ecx, edi
mov edi, dword [ebx + 0x34]
shr edi, 3
xor ecx, edi
add edx, ecx
add dword [ebx + 0x30], edx
mov edx, dword [ebx + 0x30]
jmp 0x65766f
mov edx, dword [ebx + 0x30]
add edx, dword [eax + 0x30]
mov ecx, dword [esi]
shr ecx, 6
mov edi, dword [esi]
shl edi, 0x1a
or ecx, edi
mov edi, dword [esi]
shr edi, 0xb
mov ebp, dword [esi]
shl ebp, 0x15
or edi, ebp
xor ecx, edi
mov edi, dword [esi]
shr edi, 0x19
mov ebp, dword [esi]
shl ebp, 7
or edi, ebp
xor ecx, edi
add edx, ecx
mov ecx, dword [esi + 4]
xor ecx, dword [esi + 8]
and ecx, dword [esi]
xor ecx, dword [esi + 8]
add edx, ecx
add dword [esi + 0xc], edx
mov edx, dword [esi + 0xc]
add dword [esi + 0x1c], edx
mov edx, dword [esi + 0x10]
mov ecx, edx
shr ecx, 2
mov edi, edx
shl edi, 0x1e
or ecx, edi
mov edi, edx
shr edi, 0xd
mov ebp, edx
shl ebp, 0x13
or edi, ebp
xor ecx, edi
mov edi, edx
shr edi, 0x16
mov ebp, edx
shl ebp, 0xa
or edi, ebp
xor ecx, edi
mov edi, edx
and edi, dword [esi + 0x14]
xor edx, dword [esi + 0x14]
and edx, dword [esi + 0x18]
or edi, edx
add ecx, edi
add dword [esi + 0xc], ecx
cmp dword [esp + 4], 0
je 0x65774f
mov edx, dword [ebx + 0x2c]
mov ecx, dword [ebx + 0x2c]
shl ecx, 0xf
mov edi, dword [ebx + 0x2c]
shr edx, 0x11
mov ebp, dword [ebx + 0x38]
or edx, ecx
mov ecx, dword [ebx + 0x2c]
shr ecx, 0x13
shl edi, 0xd
or ecx, edi
mov edi, dword [ebx + 0x38]
xor edx, ecx
mov ecx, dword [ebx + 0x2c]
shr ecx, 0xa
xor edx, ecx
mov ecx, dword [ebx + 0x38]
shr ecx, 7
add edx, dword [ebx + 0x18]
shl edi, 0x19
or ecx, edi
mov edi, dword [ebx + 0x38]
shl ebp, 0xe
shr edi, 0x12
or edi, ebp
xor ecx, edi
mov edi, dword [ebx + 0x38]
shr edi, 3
xor ecx, edi
add edx, ecx
add dword [ebx + 0x34], edx
mov edx, dword [ebx + 0x34]
jmp 0x657752
mov edx, dword [ebx + 0x34]
add edx, dword [eax + 0x34]
mov ecx, dword [esi + 0x1c]
shr ecx, 6
mov edi, dword [esi + 0x1c]
shl edi, 0x1a
or ecx, edi
mov edi, dword [esi + 0x1c]
shr edi, 0xb
mov ebp, dword [esi + 0x1c]
shl ebp, 0x15
or edi, ebp
xor ecx, edi
mov edi, dword [esi + 0x1c]
shr edi, 0x19
mov ebp, dword [esi + 0x1c]
shl ebp, 7
or edi, ebp
xor ecx, edi
add edx, ecx
mov ecx, dword [esi]
xor ecx, dword [esi + 4]
and ecx, dword [esi + 0x1c]
xor ecx, dword [esi + 4]
add edx, ecx
add dword [esi + 8], edx
mov edx, dword [esi + 8]
add dword [esi + 0x18], edx
mov edx, dword [esi + 0xc]
mov ecx, edx
shr ecx, 2
mov edi, edx
shl edi, 0x1e
or ecx, edi
mov edi, edx
shr edi, 0xd
mov ebp, edx
shl ebp, 0x13
or edi, ebp
xor ecx, edi
mov edi, edx
shr edi, 0x16
mov ebp, edx
shl ebp, 0xa
or edi, ebp
xor ecx, edi
mov edi, edx
and edi, dword [esi + 0x10]
xor edx, dword [esi + 0x10]
and edx, dword [esi + 0x14]
or edi, edx
add ecx, edi
add dword [esi + 8], ecx
cmp dword [esp + 4], 0
je 0x657838
mov edx, dword [ebx + 0x30]
mov ecx, dword [ebx + 0x30]
shl ecx, 0xf
mov edi, dword [ebx + 0x30]
shr edx, 0x11
mov ebp, dword [ebx + 0x3c]
or edx, ecx
mov ecx, dword [ebx + 0x30]
shr ecx, 0x13
shl edi, 0xd
or ecx, edi
mov edi, dword [ebx + 0x3c]
xor edx, ecx
mov ecx, dword [ebx + 0x30]
shr ecx, 0xa
xor edx, ecx
mov ecx, dword [ebx + 0x3c]
shr ecx, 7
add edx, dword [ebx + 0x1c]
shl edi, 0x19
or ecx, edi
mov edi, dword [ebx + 0x3c]
shl ebp, 0xe
shr edi, 0x12
or edi, ebp
xor ecx, edi
mov edi, dword [ebx + 0x3c]
shr edi, 3
xor ecx, edi
add edx, ecx
add dword [ebx + 0x38], edx
mov edx, dword [ebx + 0x38]
jmp 0x65783b
mov edx, dword [ebx + 0x38]
add edx, dword [eax + 0x38]
mov ecx, dword [esi + 0x18]
shr ecx, 6
mov edi, dword [esi + 0x18]
shl edi, 0x1a
or ecx, edi
mov edi, dword [esi + 0x18]
shr edi, 0xb
mov ebp, dword [esi + 0x18]
shl ebp, 0x15
or edi, ebp
xor ecx, edi
mov edi, dword [esi + 0x18]
shr edi, 0x19
mov ebp, dword [esi + 0x18]
shl ebp, 7
or edi, ebp
xor ecx, edi
add edx, ecx
mov ecx, dword [esi + 0x1c]
xor ecx, dword [esi]
and ecx, dword [esi + 0x18]
xor ecx, dword [esi]
add edx, ecx
add dword [esi + 4], edx
mov edx, dword [esi + 4]
add dword [esi + 0x14], edx
mov edx, dword [esi + 8]
mov ecx, edx
shr ecx, 2
mov edi, edx
shl edi, 0x1e
or ecx, edi
mov edi, edx
shr edi, 0xd
mov ebp, edx
shl ebp, 0x13
or edi, ebp
xor ecx, edi
mov edi, edx
shr edi, 0x16
mov ebp, edx
shl ebp, 0xa
or edi, ebp
xor ecx, edi
mov edi, edx
and edi, dword [esi + 0xc]
xor edx, dword [esi + 0xc]
and edx, dword [esi + 0x10]
or edi, edx
add ecx, edi
add dword [esi + 4], ecx
cmp dword [esp + 4], 0
je 0x65791b
mov edx, dword [ebx + 0x34]
mov ecx, dword [ebx + 0x34]
shl ecx, 0xf
mov edi, dword [ebx + 0x34]
shr edx, 0x11
mov ebp, dword [ebx]
or edx, ecx
mov ecx, dword [ebx + 0x34]
shr ecx, 0x13
shl edi, 0xd
or ecx, edi
mov edi, dword [ebx]
xor edx, ecx
mov ecx, dword [ebx + 0x34]
shr ecx, 0xa
xor edx, ecx
mov ecx, dword [ebx]
shr ecx, 7
add edx, dword [ebx + 0x20]
shl edi, 0x19
or ecx, edi
mov edi, dword [ebx]
shl ebp, 0xe
shr edi, 0x12
or edi, ebp
xor ecx, edi
mov edi, dword [ebx]
shr edi, 3
xor ecx, edi
add edx, ecx
add dword [ebx + 0x3c], edx
mov edx, dword [ebx + 0x3c]
jmp 0x65791e
mov edx, dword [ebx + 0x3c]
add edx, dword [eax + 0x3c]
mov ecx, dword [esi + 0x14]
shr ecx, 6
mov edi, dword [esi + 0x14]
shl edi, 0x1a
or ecx, edi
mov edi, dword [esi + 0x14]
shr edi, 0xb
mov ebp, dword [esi + 0x14]
shl ebp, 0x15
or edi, ebp
xor ecx, edi
mov edi, dword [esi + 0x14]
shr edi, 0x19
mov ebp, dword [esi + 0x14]
shl ebp, 7
or edi, ebp
xor ecx, edi
add edx, ecx
mov ecx, dword [esi + 0x18]
xor ecx, dword [esi + 0x1c]
and ecx, dword [esi + 0x14]
xor ecx, dword [esi + 0x1c]
add edx, ecx
add dword [esi], edx
mov edx, dword [esi]
add dword [esi + 0x10], edx
mov edx, dword [esi + 4]
mov ecx, edx
shr ecx, 2
mov edi, edx
shl edi, 0x1e
or ecx, edi
mov edi, edx
shr edi, 0xd
mov ebp, edx
shl ebp, 0x13
or edi, ebp
xor ecx, edi
mov edi, edx
shr edi, 0x16
mov ebp, edx
shl ebp, 0xa
or edi, ebp
xor ecx, edi
mov edi, edx
and edi, dword [esi + 8]
xor edx, dword [esi + 8]
and edx, dword [esi + 0xc]
or edi, edx
add ecx, edi
add dword [esi], ecx
add dword [esp + 4], 0x10
add eax, 0x40
cmp dword [esp + 4], 0x40
jb 0x656b35
mov eax, dword [esp]
mov edx, dword [esi]
add dword [eax + 8], edx
mov ecx, dword [esp]
mov ebx, dword [esi + 4]
add dword [ecx + 0xc], ebx
mov eax, dword [esp]
mov edx, dword [esi + 8]
add dword [eax + 0x10], edx
mov ecx, dword [esp]
mov ebx, dword [esi + 0xc]
add dword [ecx + 0x14], ebx
mov eax, dword [esp]
mov edx, dword [esi + 0x10]
add dword [eax + 0x18], edx
mov ecx, dword [esp]
mov ebx, dword [esi + 0x14]
add dword [ecx + 0x1c], ebx
mov eax, dword [esp]
mov edx, dword [esi + 0x18]
add dword [eax + 0x20], edx
mov ecx, dword [esp]
mov ebx, dword [esi + 0x1c]
add dword [ecx + 0x24], ebx
add esp, 0x28
pop ebp
pop edi
pop esi
pop ebx
ret