Function at 0x59f170
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.0054b5d8
xor ecx, ecx
mov eax, 0x634044
mov dword [esp + 4], ecx
cmp dword [esp + 4], 0
je 0x59f1ff
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 0x59f201
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 0x59f2e6
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 0x59f2e9
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 0x59f3c9
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 0x59f3cc
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 0x59f4b2
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 0x59f4b5
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 0x59f59b
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 0x59f59e
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 0x59f67e
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 0x59f681
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 0x59f767
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 0x59f76a
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 0x59f84e
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 0x59f851
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 0x59f935
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 0x59f938
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 0x59fa1e
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 0x59fa21
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 0x59fb06
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 0x59fb09
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 0x59fbef
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 0x59fbf2
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 0x59fcd8
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 0x59fcdb
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 0x59fdbb
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 0x59fdbe
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 0x59fea4
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 0x59fea7
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 0x59ff87
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 0x59ff8a
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 0x59f1a1
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