Function at 0x59eef4
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.0054b35c
xor ecx, ecx
mov eax, 0x5d0048
mov dword [esp + 4], ecx
cmp dword [esp + 4], 0
je 0x59ef83
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 0x59ef85
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 0x59f06a
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 0x59f06d
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 0x59f14d
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 0x59f150
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 0x59f236
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 0x59f239
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 0x59f31f
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 0x59f322
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 0x59f402
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 0x59f405
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 0x59f4eb
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 0x59f4ee
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 0x59f5d2
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 0x59f5d5
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 0x59f6b9
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 0x59f6bc
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 0x59f7a2
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 0x59f7a5
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 0x59f88a
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 0x59f88d
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 0x59f973
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 0x59f976
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 0x59fa5c
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 0x59fa5f
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 0x59fb3f
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 0x59fb42
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 0x59fc28
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 0x59fc2b
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 0x59fd0b
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 0x59fd0e
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 0x59ef25
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