Function at 0x523580
Capabilities:
Encrypt data using chaskey
Hash data using murmur3

Disassembly:
mov edx, dword [esp + 4]
mov eax, dword [esp + 8]
push esi
mov ecx, dword [edx]
push edi
mov esi, dword [edx + 4]
push ebp
mov edi, dword [edx + 8]
push ebx
sub esp, 0x6c
mov ebx, dword [eax]
mov ebp, dword [eax + 4]
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov ebx, dword [eax + 8]
mov ebp, dword [eax + 0xc]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ebp
mov ebx, dword [eax + 0x10]
mov ebp, dword [eax + 0x14]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], ebp
mov ebx, dword [eax + 0x18]
mov ebp, dword [eax + 0x1c]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebp
mov ebx, dword [eax + 0x20]
mov ebp, dword [eax + 0x24]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebp
mov ebx, dword [eax + 0x28]
mov ebp, dword [eax + 0x2c]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebp
mov ebx, dword [eax + 0x30]
mov ebp, dword [eax + 0x34]
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebp
mov ebx, dword [eax + 0x38]
mov ebp, dword [eax + 0x3c]
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebp
mov eax, edi
mov ebx, dword [edx + 0xc]
mov ebp, dword [edx + 0x10]
xor eax, ebx
mov edx, dword [esp]
xor eax, esi
add ecx, edx
rol edi, 0xa
add ecx, eax
mov eax, esi
rol ecx, 0xb
add ecx, ebp
xor eax, edi
mov edx, dword [esp + 4]
xor eax, ecx
add ebp, eax
mov eax, ecx
rol esi, 0xa
add ebp, edx
xor eax, esi
rol ebp, 0xe
add ebp, ebx
mov edx, dword [esp + 8]
xor eax, ebp
add ebx, edx
rol ecx, 0xa
add ebx, eax
mov eax, ebp
rol ebx, 0xf
add ebx, edi
xor eax, ecx
mov edx, dword [esp + 0xc]
xor eax, ebx
add edi, eax
mov eax, ebx
rol ebp, 0xa
add edi, edx
xor eax, ebp
rol edi, 0xc
add edi, esi
mov edx, dword [esp + 0x10]
xor eax, edi
add esi, edx
rol ebx, 0xa
add esi, eax
mov eax, edi
rol esi, 5
add esi, ecx
xor eax, ebx
mov edx, dword [esp + 0x14]
xor eax, esi
add ecx, eax
mov eax, esi
rol edi, 0xa
add ecx, edx
xor eax, edi
rol ecx, 8
add ecx, ebp
mov edx, dword [esp + 0x18]
xor eax, ecx
add ebp, edx
rol esi, 0xa
add ebp, eax
mov eax, ecx
rol ebp, 7
add ebp, ebx
xor eax, esi
mov edx, dword [esp + 0x1c]
xor eax, ebp
add ebx, eax
mov eax, ebp
rol ecx, 0xa
add ebx, edx
xor eax, ecx
rol ebx, 9
add ebx, edi
mov edx, dword [esp + 0x20]
xor eax, ebx
add edi, edx
rol ebp, 0xa
add edi, eax
mov eax, ebx
rol edi, 0xb
add edi, esi
xor eax, ebp
mov edx, dword [esp + 0x24]
xor eax, edi
add esi, eax
mov eax, edi
rol ebx, 0xa
add esi, edx
xor eax, ebx
rol esi, 0xd
add esi, ecx
mov edx, dword [esp + 0x28]
xor eax, esi
add ecx, edx
rol edi, 0xa
add ecx, eax
mov eax, esi
rol ecx, 0xe
add ecx, ebp
xor eax, edi
mov edx, dword [esp + 0x2c]
xor eax, ecx
add ebp, eax
mov eax, ecx
rol esi, 0xa
add ebp, edx
xor eax, esi
rol ebp, 0xf
add ebp, ebx
mov edx, dword [esp + 0x30]
xor eax, ebp
add ebx, edx
rol ecx, 0xa
add ebx, eax
mov eax, ebp
rol ebx, 6
add ebx, edi
xor eax, ecx
mov edx, dword [esp + 0x34]
xor eax, ebx
add edi, eax
mov eax, ebx
rol ebp, 0xa
add edi, edx
xor eax, ebp
rol edi, 7
add edi, esi
mov edx, dword [esp + 0x38]
xor eax, edi
add esi, edx
rol ebx, 0xa
add esi, eax
mov eax, edi
rol esi, 9
add esi, ecx
xor eax, ebx
mov edx, dword [esp + 0x3c]
xor eax, esi
add ecx, eax
mov eax, 0xffffffff
rol edi, 0xa
add ecx, edx
mov edx, dword [esp + 0x1c]
rol ecx, 8
add ecx, ebp
add ebp, edx
mov edx, esi
sub eax, ecx
and edx, ecx
and eax, edi
or edx, eax
mov eax, dword [esp + 0x10]
rol esi, 0xa
lea ebp, [ebp + edx + 0x5a827999]
mov edx, 0xffffffff
rol ebp, 7
add ebp, ebx
add ebx, eax
mov eax, ecx
sub edx, ebp
and eax, ebp
and edx, esi
or eax, edx
mov edx, dword [esp + 0x34]
rol ecx, 0xa
lea ebx, [ebx + eax + 0x5a827999]
mov eax, 0xffffffff
rol ebx, 6
add ebx, edi
add edi, edx
mov edx, ebp
sub eax, ebx
and edx, ebx
and eax, ecx
or edx, eax
mov eax, dword [esp + 4]
rol ebp, 0xa
lea edi, [edi + edx + 0x5a827999]
mov edx, 0xffffffff
rol edi, 8
add edi, esi
add esi, eax
mov eax, ebx
sub edx, edi
and eax, edi
and edx, ebp
or eax, edx
mov edx, dword [esp + 0x28]
rol ebx, 0xa
lea esi, [esi + eax + 0x5a827999]
mov eax, 0xffffffff
rol esi, 0xd
add esi, ecx
add ecx, edx
mov edx, edi
sub eax, esi
and edx, esi
and eax, ebx
or edx, eax
mov eax, dword [esp + 0x18]
rol edi, 0xa
lea ecx, [ecx + edx + 0x5a827999]
mov edx, 0xffffffff
rol ecx, 0xb
add ecx, ebp
add ebp, eax
mov eax, esi
sub edx, ecx
and eax, ecx
and edx, edi
or eax, edx
mov edx, dword [esp + 0x3c]
rol esi, 0xa
lea ebp, [ebp + eax + 0x5a827999]
mov eax, 0xffffffff
rol ebp, 9
add ebp, ebx
add ebx, edx
mov edx, ecx
sub eax, ebp
and edx, ebp
and eax, esi
or edx, eax
mov eax, dword [esp + 0xc]
rol ecx, 0xa
lea ebx, [ebx + edx + 0x5a827999]
mov edx, 0xffffffff
rol ebx, 7
add ebx, edi
add edi, eax
mov eax, ebp
sub edx, ebx
and eax, ebx
and edx, ecx
or eax, edx
mov edx, dword [esp + 0x30]
rol ebp, 0xa
lea edi, [edi + eax + 0x5a827999]
mov eax, 0xffffffff
rol edi, 0xf
add edi, esi
add esi, edx
mov edx, ebx
sub eax, edi
and edx, edi
and eax, ebp
or edx, eax
mov eax, dword [esp]
rol ebx, 0xa
lea esi, [esi + edx + 0x5a827999]
mov edx, 0xffffffff
rol esi, 7
add esi, ecx
add ecx, eax
mov eax, edi
sub edx, esi
and eax, esi
and edx, ebx
or eax, edx
mov edx, dword [esp + 0x24]
rol edi, 0xa
lea ecx, [ecx + eax + 0x5a827999]
mov eax, 0xffffffff
rol ecx, 0xc
add ecx, ebp
add ebp, edx
mov edx, esi
sub eax, ecx
and edx, ecx
and eax, edi
or edx, eax
mov eax, dword [esp + 0x14]
rol esi, 0xa
lea ebp, [ebp + edx + 0x5a827999]
mov edx, 0xffffffff
rol ebp, 0xf
add ebp, ebx
add ebx, eax
mov eax, ecx
sub edx, ebp
and eax, ebp
and edx, esi
or eax, edx
mov edx, dword [esp + 8]
rol ecx, 0xa
lea ebx, [ebx + eax + 0x5a827999]
mov eax, 0xffffffff
rol ebx, 9
add ebx, edi
add edi, edx
mov edx, ebp
sub eax, ebx
and edx, ebx
and eax, ecx
or edx, eax
mov eax, dword [esp + 0x38]
rol ebp, 0xa
lea edi, [edi + edx + 0x5a827999]
mov edx, 0xffffffff
rol edi, 0xb
add edi, esi
add esi, eax
mov eax, ebx
sub edx, edi
and eax, edi
and edx, ebp
or eax, edx
mov edx, dword [esp + 0x2c]
rol ebx, 0xa
lea esi, [esi + eax + 0x5a827999]
mov eax, 0xffffffff
rol esi, 7
add esi, ecx
add ecx, edx
mov edx, edi
sub eax, esi
and edx, esi
and eax, ebx
or edx, eax
mov eax, dword [esp + 0x20]
rol edi, 0xa
lea ecx, [ecx + edx + 0x5a827999]
mov edx, 0xffffffff
rol ecx, 0xd
add ecx, ebp
add ebp, eax
mov eax, esi
sub edx, ecx
and eax, ecx
and edx, edi
or eax, edx
mov edx, 0xffffffff
rol esi, 0xa
lea ebp, [ebp + eax + 0x5a827999]
sub edx, ecx
rol ebp, 0xc
add ebp, ebx
mov eax, dword [esp + 0xc]
or edx, ebp
add ebx, eax
xor edx, esi
mov eax, 0xffffffff
rol ecx, 0xa
lea ebx, [ebx + edx + 0x6ed9eba1]
sub eax, ebp
rol ebx, 0xb
add ebx, edi
mov edx, dword [esp + 0x28]
or eax, ebx
add edi, edx
xor eax, ecx
mov edx, 0xffffffff
rol ebp, 0xa
lea edi, [edi + eax + 0x6ed9eba1]
sub edx, ebx
rol edi, 0xd
add edi, esi
mov eax, dword [esp + 0x38]
or edx, edi
add esi, eax
xor edx, ebp
mov eax, 0xffffffff
rol ebx, 0xa
lea esi, [esi + edx + 0x6ed9eba1]
sub eax, edi
rol esi, 6
add esi, ecx
mov edx, dword [esp + 0x10]
or eax, esi
add ecx, edx
xor eax, ebx
mov edx, 0xffffffff
rol edi, 0xa
lea ecx, [ecx + eax + 0x6ed9eba1]
sub edx, esi
rol ecx, 7
add ecx, ebp
mov eax, dword [esp + 0x24]
or edx, ecx
add ebp, eax
xor edx, edi
mov eax, 0xffffffff
rol esi, 0xa
lea ebp, [ebp + edx + 0x6ed9eba1]
sub eax, ecx
rol ebp, 0xe
add ebp, ebx
mov edx, dword [esp + 0x3c]
or eax, ebp
add ebx, edx
xor eax, esi
mov edx, 0xffffffff
rol ecx, 0xa
lea ebx, [ebx + eax + 0x6ed9eba1]
sub edx, ebp
rol ebx, 9
add ebx, edi
mov eax, dword [esp + 0x20]
or edx, ebx
add edi, eax
xor edx, ecx
mov eax, 0xffffffff
rol ebp, 0xa
lea edi, [edi + edx + 0x6ed9eba1]
sub eax, ebx
rol edi, 0xd
add edi, esi
mov edx, dword [esp + 4]
or eax, edi
add esi, edx
xor eax, ebp
mov edx, 0xffffffff
rol ebx, 0xa
lea esi, [esi + eax + 0x6ed9eba1]
sub edx, edi
rol esi, 0xf
add esi, ecx
mov eax, dword [esp + 8]
or edx, esi
add ecx, eax
xor edx, ebx
mov eax, 0xffffffff
rol edi, 0xa
lea ecx, [ecx + edx + 0x6ed9eba1]
sub eax, esi
rol ecx, 0xe
add ecx, ebp
mov edx, dword [esp + 0x1c]
or eax, ecx
add ebp, edx
xor eax, edi
mov edx, 0xffffffff
rol esi, 0xa
lea ebp, [ebp + eax + 0x6ed9eba1]
sub edx, ecx
rol ebp, 8
add ebp, ebx
mov eax, dword [esp]
or edx, ebp
add ebx, eax
xor edx, esi
mov eax, 0xffffffff
rol ecx, 0xa
lea ebx, [ebx + edx + 0x6ed9eba1]
sub eax, ebp
rol ebx, 0xd
add ebx, edi
mov edx, dword [esp + 0x18]
or eax, ebx
add edi, edx
xor eax, ecx
mov edx, 0xffffffff
rol ebp, 0xa
lea edi, [edi + eax + 0x6ed9eba1]
sub edx, ebx
rol edi, 6
add edi, esi
mov eax, dword [esp + 0x34]
or edx, edi
add esi, eax
xor edx, ebp
mov eax, 0xffffffff
rol ebx, 0xa
lea esi, [esi + edx + 0x6ed9eba1]
sub eax, edi
rol esi, 5
add esi, ecx
mov edx, dword [esp + 0x2c]
or eax, esi
add ecx, edx
xor eax, ebx
mov edx, 0xffffffff
rol edi, 0xa
lea ecx, [ecx + eax + 0x6ed9eba1]
sub edx, esi
rol ecx, 0xc
add ecx, ebp
mov eax, dword [esp + 0x14]
or edx, ecx
add ebp, eax
xor edx, edi
mov eax, 0xffffffff
rol esi, 0xa
lea ebp, [ebp + edx + 0x6ed9eba1]
sub eax, ecx
rol ebp, 7
add ebp, ebx
mov edx, dword [esp + 0x30]
or eax, ebp
add ebx, edx
xor eax, esi
mov edx, 0xffffffff
rol ecx, 0xa
lea ebx, [ebx + eax + 0x6ed9eba1]
mov eax, ecx
rol ebx, 5
add ebx, edi
sub edx, ecx
and eax, ebx
and edx, ebp
or edx, eax
mov eax, dword [esp + 4]
rol ebp, 0xa
lea edi, [edi + edx - 0x70e44324]
mov edx, 0xffffffff
add edi, eax
mov eax, ebp
rol edi, 0xb
add edi, esi
sub edx, ebp
and eax, edi
and edx, ebx
or edx, eax
mov eax, dword [esp + 0x24]
rol ebx, 0xa
lea esi, [esi + edx - 0x70e44324]
mov edx, 0xffffffff
add esi, eax
mov eax, ebx
rol esi, 0xc
add esi, ecx
sub edx, ebx
and eax, esi
and edx, edi
or edx, eax
mov eax, dword [esp + 0x2c]
rol edi, 0xa
lea ecx, [ecx + edx - 0x70e44324]
mov edx, 0xffffffff
add ecx, eax
mov eax, edi
rol ecx, 0xe
add ecx, ebp
sub edx, edi
and eax, ecx
and edx, esi
or edx, eax
mov eax, dword [esp + 0x28]
rol esi, 0xa
lea ebp, [ebp + edx - 0x70e44324]
mov edx, 0xffffffff
add ebp, eax
mov eax, esi
rol ebp, 0xf
add ebp, ebx
sub edx, esi
and eax, ebp
and edx, ecx
or edx, eax
mov eax, dword [esp]
rol ecx, 0xa
lea ebx, [ebx + edx - 0x70e44324]
mov edx, 0xffffffff
add ebx, eax
mov eax, ecx
rol ebx, 0xe
add ebx, edi
sub edx, ecx
and eax, ebx
and edx, ebp
or edx, eax
mov eax, dword [esp + 0x20]
rol ebp, 0xa
lea edi, [edi + edx - 0x70e44324]
mov edx, 0xffffffff
add edi, eax
mov eax, ebp
rol edi, 0xf
add edi, esi
sub edx, ebp
and eax, edi
and edx, ebx
or edx, eax
mov eax, dword [esp + 0x30]
rol ebx, 0xa
lea esi, [esi + edx - 0x70e44324]
mov edx, 0xffffffff
add esi, eax
mov eax, ebx
rol esi, 9
add esi, ecx
sub edx, ebx
and eax, esi
and edx, edi
or edx, eax
mov eax, dword [esp + 0x10]
rol edi, 0xa
lea ecx, [ecx + edx - 0x70e44324]
mov edx, 0xffffffff
add ecx, eax
mov eax, edi
rol ecx, 8
add ecx, ebp
sub edx, edi
and eax, ecx
and edx, esi
or edx, eax
mov eax, dword [esp + 0x34]
rol esi, 0xa
lea ebp, [ebp + edx - 0x70e44324]
mov edx, 0xffffffff
add ebp, eax
mov eax, esi
rol ebp, 9
add ebp, ebx
sub edx, esi
and eax, ebp
and edx, ecx
or edx, eax
mov eax, dword [esp + 0xc]
rol ecx, 0xa
lea ebx, [ebx + edx - 0x70e44324]
mov edx, 0xffffffff
add ebx, eax
mov eax, ecx
rol ebx, 0xe
add ebx, edi
sub edx, ecx
and eax, ebx
and edx, ebp
or edx, eax
mov eax, dword [esp + 0x1c]
rol ebp, 0xa
lea edi, [edi + edx - 0x70e44324]
mov edx, 0xffffffff
add edi, eax
mov eax, ebp
rol edi, 5
add edi, esi
sub edx, ebp
and eax, edi
and edx, ebx
or edx, eax
mov eax, dword [esp + 0x3c]
rol ebx, 0xa
lea esi, [esi + edx - 0x70e44324]
mov edx, 0xffffffff
add esi, eax
mov eax, ebx
rol esi, 6
add esi, ecx
sub edx, ebx
and eax, esi
and edx, edi
or edx, eax
mov eax, dword [esp + 0x38]
rol edi, 0xa
lea ecx, [ecx + edx - 0x70e44324]
mov edx, 0xffffffff
add ecx, eax
mov eax, edi
rol ecx, 8
add ecx, ebp
sub edx, edi
and eax, ecx
and edx, esi
or edx, eax
mov eax, dword [esp + 0x14]
rol esi, 0xa
lea ebp, [ebp + edx - 0x70e44324]
mov edx, 0xffffffff
add ebp, eax
mov eax, esi
rol ebp, 6
add ebp, ebx
sub edx, esi
and eax, ebp
and edx, ecx
or edx, eax
mov eax, dword [esp + 0x18]
rol ecx, 0xa
lea ebx, [ebx + edx - 0x70e44324]
mov edx, 0xffffffff
add ebx, eax
mov eax, ecx
rol ebx, 5
add ebx, edi
sub edx, ecx
and eax, ebx
and edx, ebp
or edx, eax
mov eax, dword [esp + 8]
rol ebp, 0xa
lea edi, [edi + edx - 0x70e44324]
mov edx, 0xffffffff
add edi, eax
sub edx, ebp
rol edi, 0xc
add edi, esi
mov eax, dword [esp + 0x10]
or edx, ebx
add esi, eax
xor edx, edi
mov eax, 0xffffffff
rol ebx, 0xa
lea esi, [esi + edx - 0x56ac02b2]
sub eax, ebx
rol esi, 9
add esi, ecx
mov edx, dword [esp]
or eax, edi
add ecx, edx
xor eax, esi
mov edx, 0xffffffff
rol edi, 0xa
lea ecx, [ecx + eax - 0x56ac02b2]
sub edx, edi
rol ecx, 0xf
add ecx, ebp
mov eax, dword [esp + 0x14]
or edx, esi
add ebp, eax
xor edx, ecx
mov eax, 0xffffffff
rol esi, 0xa
lea ebp, [ebp + edx - 0x56ac02b2]
sub eax, esi
rol ebp, 5
add ebp, ebx
mov edx, dword [esp + 0x24]
or eax, ecx
add ebx, edx
xor eax, ebp
mov edx, 0xffffffff
rol ecx, 0xa
lea ebx, [ebx + eax - 0x56ac02b2]
sub edx, ecx
rol ebx, 0xb
add ebx, edi
mov eax, dword [esp + 0x1c]
or edx, ebp
add edi, eax
xor edx, ebx
mov eax, 0xffffffff
rol ebp, 0xa
lea edi, [edi + edx - 0x56ac02b2]
sub eax, ebp
rol edi, 6
add edi, esi
mov edx, dword [esp + 0x30]
or eax, ebx
add esi, edx
xor eax, edi
mov edx, 0xffffffff
rol ebx, 0xa
lea esi, [esi + eax - 0x56ac02b2]
sub edx, ebx
rol esi, 8
add esi, ecx
mov eax, dword [esp + 8]
or edx, edi
add ecx, eax
xor edx, esi
mov eax, 0xffffffff
rol edi, 0xa
lea ecx, [ecx + edx - 0x56ac02b2]
sub eax, edi
rol ecx, 0xd
add ecx, ebp
mov edx, dword [esp + 0x28]
or eax, esi
add ebp, edx
xor eax, ecx
mov edx, 0xffffffff
rol esi, 0xa
lea ebp, [ebp + eax - 0x56ac02b2]
sub edx, esi
rol ebp, 0xc
add ebp, ebx
mov eax, dword [esp + 0x38]
or edx, ecx
add ebx, eax
xor edx, ebp
mov eax, 0xffffffff
rol ecx, 0xa
lea ebx, [ebx + edx - 0x56ac02b2]
sub eax, ecx
rol ebx, 5
add ebx, edi
mov edx, dword [esp + 4]
or eax, ebp
add edi, edx
xor eax, ebx
mov edx, 0xffffffff
rol ebp, 0xa
lea edi, [edi + eax - 0x56ac02b2]
sub edx, ebp
rol edi, 0xc
add edi, esi
mov eax, dword [esp + 0xc]
or edx, ebx
add esi, eax
xor edx, edi
mov eax, 0xffffffff
rol ebx, 0xa
lea esi, [esi + edx - 0x56ac02b2]
sub eax, ebx
rol esi, 0xd
add esi, ecx
mov edx, dword [esp + 0x20]
or eax, edi
add ecx, edx
xor eax, esi
mov edx, 0xffffffff
rol edi, 0xa
lea ecx, [ecx + eax - 0x56ac02b2]
sub edx, edi
rol ecx, 0xe
add ecx, ebp
mov eax, dword [esp + 0x2c]
or edx, esi
add ebp, eax
xor edx, ecx
mov eax, 0xffffffff
rol esi, 0xa
lea ebp, [ebp + edx - 0x56ac02b2]
sub eax, esi
rol ebp, 0xb
add ebp, ebx
mov edx, dword [esp + 0x18]
or eax, ecx
add ebx, edx
xor eax, ebp
mov edx, 0xffffffff
rol ecx, 0xa
lea ebx, [ebx + eax - 0x56ac02b2]
sub edx, ecx
rol ebx, 8
add ebx, edi
mov eax, dword [esp + 0x3c]
or edx, ebp
add edi, eax
xor edx, ebx
mov eax, 0xffffffff
rol ebp, 0xa
lea edi, [edi + edx - 0x56ac02b2]
sub eax, ebp
rol edi, 5
add edi, esi
mov edx, dword [esp + 0x34]
or eax, ebx
add esi, edx
xor eax, edi
mov edx, dword [esp + 0x80]
rol ebx, 0xa
lea esi, [esi + eax - 0x56ac02b2]
mov dword [esp + 0x40], ecx
rol esi, 6
add esi, ecx
mov ecx, dword [edx]
mov dword [esp + 0x44], esi
mov dword [esp + 0x48], edi
mov esi, dword [edx + 4]
mov dword [esp + 0x4c], ebx
mov edi, dword [edx + 8]
mov dword [esp + 0x50], ebp
mov ebx, dword [edx + 0xc]
mov ebp, dword [edx + 0x10]
mov edx, 0xffffffff
sub edx, ebx
mov eax, dword [esp + 0x14]
or edx, edi
add ecx, eax
xor edx, esi
mov eax, 0xffffffff
rol edi, 0xa
lea ecx, [ecx + edx + 0x50a28be6]
sub eax, edi
rol ecx, 8
add ecx, ebp
mov edx, dword [esp + 0x38]
or eax, esi
add ebp, edx
xor eax, ecx
mov edx, 0xffffffff
rol esi, 0xa
lea ebp, [ebp + eax + 0x50a28be6]
sub edx, esi
rol ebp, 9
add ebp, ebx
mov eax, dword [esp + 0x1c]
or edx, ecx
add ebx, eax
xor edx, ebp
mov eax, 0xffffffff
rol ecx, 0xa
lea ebx, [ebx + edx + 0x50a28be6]
sub eax, ecx
rol ebx, 9
add ebx, edi
mov edx, dword [esp]
or eax, ebp
add edi, edx
xor eax, ebx
mov edx, 0xffffffff
rol ebp, 0xa
lea edi, [edi + eax + 0x50a28be6]
sub edx, ebp
rol edi, 0xb
add edi, esi
mov eax, dword [esp + 0x24]
or edx, ebx
add esi, eax
xor edx, edi
mov eax, 0xffffffff
rol ebx, 0xa
lea esi, [esi + edx + 0x50a28be6]
sub eax, ebx
rol esi, 0xd
add esi, ecx
mov edx, dword [esp + 8]
or eax, edi
add ecx, edx
xor eax, esi
mov edx, 0xffffffff
rol edi, 0xa
lea ecx, [ecx + eax + 0x50a28be6]
sub edx, edi
rol ecx, 0xf
add ecx, ebp
mov eax, dword [esp + 0x2c]
or edx, esi
add ebp, eax
xor edx, ecx
mov eax, 0xffffffff
rol esi, 0xa
lea ebp, [ebp + edx + 0x50a28be6]
sub eax, esi
rol ebp, 0xf
add ebp, ebx
mov edx, dword [esp + 0x10]
or eax, ecx
add ebx, edx
xor eax, ebp
mov edx, 0xffffffff
rol ecx, 0xa
lea ebx, [ebx + eax + 0x50a28be6]
sub edx, ecx
rol ebx, 5
add ebx, edi
mov eax, dword [esp + 0x34]
or edx, ebp
add edi, eax
xor edx, ebx
mov eax, 0xffffffff
rol ebp, 0xa
lea edi, [edi + edx + 0x50a28be6]
sub eax, ebp
rol edi, 7
add edi, esi
mov edx, dword [esp + 0x18]
or eax, ebx
add esi, edx
xor eax, edi
mov edx, 0xffffffff
rol ebx, 0xa
lea esi, [esi + eax + 0x50a28be6]
sub edx, ebx
rol esi, 7
add esi, ecx
mov eax, dword [esp + 0x3c]
or edx, edi
add ecx, eax
xor edx, esi
mov eax, 0xffffffff
rol edi, 0xa
lea ecx, [ecx + edx + 0x50a28be6]
sub eax, edi
rol ecx, 8
add ecx, ebp
mov edx, dword [esp + 0x20]
or eax, esi
add ebp, edx
xor eax, ecx
mov edx, 0xffffffff
rol esi, 0xa
lea ebp, [ebp + eax + 0x50a28be6]
sub edx, esi
rol ebp, 0xb
add ebp, ebx
mov eax, dword [esp + 4]
or edx, ecx
add ebx, eax
xor edx, ebp
mov eax, 0xffffffff
rol ecx, 0xa
lea ebx, [ebx + edx + 0x50a28be6]
sub eax, ecx
rol ebx, 0xe
add ebx, edi
mov edx, dword [esp + 0x28]
or eax, ebp
add edi, edx
xor eax, ebx
mov edx, 0xffffffff
rol ebp, 0xa
lea edi, [edi + eax + 0x50a28be6]
sub edx, ebp
rol edi, 0xe
add edi, esi
mov eax, dword [esp + 0xc]
or edx, ebx
add esi, eax
xor edx, edi
mov eax, 0xffffffff
rol ebx, 0xa
lea esi, [esi + edx + 0x50a28be6]
sub eax, ebx
rol esi, 0xc
add esi, ecx
mov edx, dword [esp + 0x30]
or eax, edi
add ecx, edx
xor eax, esi
mov edx, 0xffffffff
rol edi, 0xa
lea ecx, [ecx + eax + 0x50a28be6]
mov eax, edi
rol ecx, 6
add ecx, ebp
sub edx, edi
and eax, ecx
and edx, esi
or edx, eax
mov eax, dword [esp + 0x18]
rol esi, 0xa
lea ebp, [ebp + edx + 0x5c4dd124]
mov edx, 0xffffffff
add ebp, eax
mov eax, esi
rol ebp, 9
add ebp, ebx
sub edx, esi
and eax, ebp
and edx, ecx
or edx, eax
mov eax, dword [esp + 0x2c]
rol ecx, 0xa
lea ebx, [ebx + edx + 0x5c4dd124]
mov edx, 0xffffffff
add ebx, eax
mov eax, ecx
rol ebx, 0xd
add ebx, edi
sub edx, ecx
and eax, ebx
and edx, ebp
or edx, eax
mov eax, dword [esp + 0xc]
rol ebp, 0xa
lea edi, [edi + edx + 0x5c4dd124]
mov edx, 0xffffffff
add edi, eax
mov eax, ebp
rol edi, 0xf
add edi, esi
sub edx, ebp
and eax, edi
and edx, ebx
or edx, eax
mov eax, dword [esp + 0x1c]
rol ebx, 0xa
lea esi, [esi + edx + 0x5c4dd124]
mov edx, 0xffffffff
add esi, eax
mov eax, ebx
rol esi, 7
add esi, ecx
sub edx, ebx
and eax, esi
and edx, edi
or edx, eax
mov eax, dword [esp]
rol edi, 0xa
lea ecx, [ecx + edx + 0x5c4dd124]
mov edx, 0xffffffff
add ecx, eax
mov eax, edi
rol ecx, 0xc
add ecx, ebp
sub edx, edi
and eax, ecx
and edx, esi
or edx, eax
mov eax, dword [esp + 0x34]
rol esi, 0xa
lea ebp, [ebp + edx + 0x5c4dd124]
mov edx, 0xffffffff
add ebp, eax
mov eax, esi
rol ebp, 8
add ebp, ebx
sub edx, esi
and eax, ebp
and edx, ecx
or edx, eax
mov eax, dword [esp + 0x14]
rol ecx, 0xa
lea ebx, [ebx + edx + 0x5c4dd124]
mov edx, 0xffffffff
add ebx, eax
mov eax, ecx
rol ebx, 9
add ebx, edi
sub edx, ecx
and eax, ebx
and edx, ebp
or edx, eax
mov eax, dword [esp + 0x28]
rol ebp, 0xa
lea edi, [edi + edx + 0x5c4dd124]
mov edx, 0xffffffff
add edi, eax
mov eax, ebp
rol edi, 0xb
add edi, esi
sub edx, ebp
and eax, edi
and edx, ebx
or edx, eax
mov eax, dword [esp + 0x38]
rol ebx, 0xa
lea esi, [esi + edx + 0x5c4dd124]
mov edx, 0xffffffff
add esi, eax
mov eax, ebx
rol esi, 7
add esi, ecx
sub edx, ebx
and eax, esi
and edx, edi
or edx, eax
mov eax, dword [esp + 0x3c]
rol edi, 0xa
lea ecx, [ecx + edx + 0x5c4dd124]
mov edx, 0xffffffff
add ecx, eax
mov eax, edi
rol ecx, 7
add ecx, ebp
sub edx, edi
and eax, ecx
and edx, esi
or edx, eax
mov eax, dword [esp + 0x20]
rol esi, 0xa
lea ebp, [ebp + edx + 0x5c4dd124]
mov edx, 0xffffffff
add ebp, eax
mov eax, esi
rol ebp, 0xc
add ebp, ebx
sub edx, esi
and eax, ebp
and edx, ecx
or edx, eax
mov eax, dword [esp + 0x30]
rol ecx, 0xa
lea ebx, [ebx + edx + 0x5c4dd124]
mov edx, 0xffffffff
add ebx, eax
mov eax, ecx
rol ebx, 7
add ebx, edi
sub edx, ecx
and eax, ebx
and edx, ebp
or edx, eax
mov eax, dword [esp + 0x10]
rol ebp, 0xa
lea edi, [edi + edx + 0x5c4dd124]
mov edx, 0xffffffff
add edi, eax
mov eax, ebp
rol edi, 6
add edi, esi
sub edx, ebp
and eax, edi
and edx, ebx
or edx, eax
mov eax, dword [esp + 0x24]
rol ebx, 0xa
lea esi, [esi + edx + 0x5c4dd124]
mov edx, 0xffffffff
add esi, eax
mov eax, ebx
rol esi, 0xf
add esi, ecx
sub edx, ebx
and eax, esi
and edx, edi
or edx, eax
mov eax, dword [esp + 4]
rol edi, 0xa
lea ecx, [ecx + edx + 0x5c4dd124]
mov edx, 0xffffffff
add ecx, eax
mov eax, edi
rol ecx, 0xd
add ecx, ebp
sub edx, edi
and eax, ecx
and edx, esi
or edx, eax
mov eax, dword [esp + 8]
rol esi, 0xa
lea ebp, [ebp + edx + 0x5c4dd124]
mov edx, 0xffffffff
add ebp, eax
sub edx, ecx
rol ebp, 0xb
add ebp, ebx
mov eax, dword [esp + 0x3c]
or edx, ebp
add ebx, eax
xor edx, esi
mov eax, 0xffffffff
rol ecx, 0xa
lea ebx, [ebx + edx + 0x6d703ef3]
sub eax, ebp
rol ebx, 9
add ebx, edi
mov edx, dword [esp + 0x14]
or eax, ebx
add edi, edx
xor eax, ecx
mov edx, 0xffffffff
rol ebp, 0xa
lea edi, [edi + eax + 0x6d703ef3]
sub edx, ebx
rol edi, 7
add edi, esi
mov eax, dword [esp + 4]
or edx, edi
add esi, eax
xor edx, ebp
mov eax, 0xffffffff
rol ebx, 0xa
lea esi, [esi + edx + 0x6d703ef3]
sub eax, edi
rol esi, 0xf
add esi, ecx
mov edx, dword [esp + 0xc]
or eax, esi
add ecx, edx
xor eax, ebx
mov edx, 0xffffffff
rol edi, 0xa
lea ecx, [ecx + eax + 0x6d703ef3]
sub edx, esi
rol ecx, 0xb
add ecx, ebp
mov eax, dword [esp + 0x1c]
or edx, ecx
add ebp, eax
xor edx, edi
mov eax, 0xffffffff
rol esi, 0xa
lea ebp, [ebp + edx + 0x6d703ef3]
sub eax, ecx
rol ebp, 8
add ebp, ebx
mov edx, dword [esp + 0x38]
or eax, ebp
add ebx, edx
xor eax, esi
mov edx, 0xffffffff
rol ecx, 0xa
lea ebx, [ebx + eax + 0x6d703ef3]
sub edx, ebp
rol ebx, 6
add ebx, edi
mov eax, dword [esp + 0x18]
or edx, ebx
add edi, eax
xor edx, ecx
mov eax, 0xffffffff
rol ebp, 0xa
lea edi, [edi + edx + 0x6d703ef3]
sub eax, ebx
rol edi, 6
add edi, esi
mov edx, dword [esp + 0x24]
or eax, edi
add esi, edx
xor eax, ebp
mov edx, 0xffffffff
rol ebx, 0xa
lea esi, [esi + eax + 0x6d703ef3]
sub edx, edi
rol esi, 0xe
add esi, ecx
mov eax, dword [esp + 0x2c]
or edx, esi
add ecx, eax
xor edx, ebx
mov eax, 0xffffffff
rol edi, 0xa
lea ecx, [ecx + edx + 0x6d703ef3]
sub eax, esi
rol ecx, 0xc
add ecx, ebp
mov edx, dword [esp + 0x20]
or eax, ecx
add ebp, edx
xor eax, edi
mov edx, 0xffffffff
rol esi, 0xa
lea ebp, [ebp + eax + 0x6d703ef3]
sub edx, ecx
rol ebp, 0xd
add ebp, ebx
mov eax, dword [esp + 0x30]
or edx, ebp
add ebx, eax
xor edx, esi
mov eax, 0xffffffff
rol ecx, 0xa
lea ebx, [ebx + edx + 0x6d703ef3]
sub eax, ebp
rol ebx, 5
add ebx, edi
mov edx, dword [esp + 8]
or eax, ebx
add edi, edx
xor eax, ecx
mov edx, 0xffffffff
rol ebp, 0xa
lea edi, [edi + eax + 0x6d703ef3]
sub edx, ebx
rol edi, 0xe
add edi, esi
mov eax, dword [esp + 0x28]
or edx, edi
add esi, eax
xor edx, ebp
mov eax, 0xffffffff
rol ebx, 0xa
lea esi, [esi + edx + 0x6d703ef3]
sub eax, edi
rol esi, 0xd
add esi, ecx
mov edx, dword [esp]
or eax, esi
add ecx, edx
xor eax, ebx
mov edx, 0xffffffff
rol edi, 0xa
lea ecx, [ecx + eax + 0x6d703ef3]
sub edx, esi
rol ecx, 0xd
add ecx, ebp
mov eax, dword [esp + 0x10]
or edx, ecx
add ebp, eax
xor edx, edi
mov eax, 0xffffffff
rol esi, 0xa
lea ebp, [ebp + edx + 0x6d703ef3]
sub eax, ecx
rol ebp, 7
add ebp, ebx
mov edx, dword [esp + 0x34]
or eax, ebp
add ebx, edx
xor eax, esi
mov edx, dword [esp + 0x20]
rol ecx, 0xa
lea ebx, [ebx + eax + 0x6d703ef3]
mov eax, 0xffffffff
rol ebx, 5
add ebx, edi
add edi, edx
mov edx, ebp
sub eax, ebx
and edx, ebx
and eax, ecx
or edx, eax
mov eax, dword [esp + 0x18]
rol ebp, 0xa
lea edi, [edi + edx + 0x7a6d76e9]
mov edx, 0xffffffff
rol edi, 0xf
add edi, esi
add esi, eax
mov eax, ebx
sub edx, edi
and eax, edi
and edx, ebp
or eax, edx
mov edx, dword [esp + 0x10]
rol ebx, 0xa
lea esi, [esi + eax + 0x7a6d76e9]
mov eax, 0xffffffff
rol esi, 5
add esi, ecx
add ecx, edx
mov edx, edi
sub eax, esi
and edx, esi
and eax, ebx
or edx, eax
mov eax, dword [esp + 4]
rol edi, 0xa
lea ecx, [ecx + edx + 0x7a6d76e9]
mov edx, 0xffffffff
rol ecx, 8
add ecx, ebp
add ebp, eax
mov eax, esi
sub edx, ecx
and eax, ecx
and edx, edi
or eax, edx
mov edx, dword [esp + 0xc]
rol esi, 0xa
lea ebp, [ebp + eax + 0x7a6d76e9]
mov eax, 0xffffffff
rol ebp, 0xb
add ebp, ebx
add ebx, edx
mov edx, ecx
sub eax, ebp
and edx, ebp
and eax, esi
or edx, eax
mov eax, dword [esp + 0x2c]
rol ecx, 0xa
lea ebx, [ebx + edx + 0x7a6d76e9]
mov edx, 0xffffffff
rol ebx, 0xe
add ebx, edi
add edi, eax
mov eax, ebp
sub edx, ebx
and eax, ebx
and edx, ecx
or eax, edx
mov edx, dword [esp + 0x3c]
rol ebp, 0xa
lea edi, [edi + eax + 0x7a6d76e9]
mov eax, 0xffffffff
rol edi, 0xe
add edi, esi
add esi, edx
mov edx, ebx
sub eax, edi
and edx, edi
and eax, ebp
or edx, eax
mov eax, dword [esp]
rol ebx, 0xa
lea esi, [esi + edx + 0x7a6d76e9]
mov edx, 0xffffffff
rol esi, 6
add esi, ecx
add ecx, eax
mov eax, edi
sub edx, esi
and eax, esi
and edx, ebx
or eax, edx
mov edx, dword [esp + 0x14]
rol edi, 0xa
lea ecx, [ecx + eax + 0x7a6d76e9]
mov eax, 0xffffffff
rol ecx, 0xe
add ecx, ebp
add ebp, edx
mov edx, esi
sub eax, ecx
and edx, ecx
and eax, edi
or edx, eax
mov eax, dword [esp + 0x30]
rol esi, 0xa
lea ebp, [ebp + edx + 0x7a6d76e9]
mov edx, 0xffffffff
rol ebp, 6
add ebp, ebx
add ebx, eax
mov eax, ecx
sub edx, ebp
and eax, ebp
and edx, esi
or eax, edx
mov edx, dword [esp + 8]
rol ecx, 0xa
lea ebx, [ebx + eax + 0x7a6d76e9]
mov eax, 0xffffffff
rol ebx, 9
add ebx, edi
add edi, edx
mov edx, ebp
sub eax, ebx
and edx, ebx
and eax, ecx
or edx, eax
mov eax, dword [esp + 0x34]
rol ebp, 0xa
lea edi, [edi + edx + 0x7a6d76e9]
mov edx, 0xffffffff
rol edi, 0xc
add edi, esi
add esi, eax
mov eax, ebx
sub edx, edi
and eax, edi
and edx, ebp
or eax, edx
mov edx, dword [esp + 0x24]
rol ebx, 0xa
lea esi, [esi + eax + 0x7a6d76e9]
mov eax, 0xffffffff
rol esi, 9
add esi, ecx
add ecx, edx
mov edx, edi
sub eax, esi
and edx, esi
and eax, ebx
or edx, eax
mov eax, dword [esp + 0x1c]
rol edi, 0xa
lea ecx, [ecx + edx + 0x7a6d76e9]
mov edx, 0xffffffff
rol ecx, 0xc
add ecx, ebp
add ebp, eax
mov eax, esi
sub edx, ecx
and eax, ecx
and edx, edi
or eax, edx
mov edx, dword [esp + 0x28]
rol esi, 0xa
lea ebp, [ebp + eax + 0x7a6d76e9]
mov eax, 0xffffffff
rol ebp, 5
add ebp, ebx
add ebx, edx
mov edx, ecx
sub eax, ebp
and edx, ebp
and eax, esi
or edx, eax
mov eax, dword [esp + 0x38]
rol ecx, 0xa
lea ebx, [ebx + edx + 0x7a6d76e9]
mov edx, 0xffffffff
rol ebx, 0xf
add ebx, edi
add edi, eax
mov eax, ebp
sub edx, ebx
and eax, ebx
and edx, ecx
or edx, eax
mov eax, ebx
rol ebp, 0xa
lea edi, [edi + edx + 0x7a6d76e9]
xor eax, ebp
rol edi, 8
add edi, esi
mov edx, dword [esp + 0x30]
xor eax, edi
add esi, edx
rol ebx, 0xa
add esi, eax
mov eax, edi
rol esi, 8
add esi, ecx
xor eax, ebx
mov edx, dword [esp + 0x3c]
xor eax, esi
add ecx, eax
mov eax, esi
rol edi, 0xa
add ecx, edx
xor eax, edi
rol ecx, 5
add ecx, ebp
mov edx, dword [esp + 0x28]
xor eax, ecx
add ebp, edx
rol esi, 0xa
add ebp, eax
mov eax, ecx
rol ebp, 0xc
add ebp, ebx
xor eax, esi
mov edx, dword [esp + 0x10]
xor eax, ebp
add ebx, eax
mov eax, ebp
rol ecx, 0xa
add ebx, edx
xor eax, ecx
rol ebx, 9
add ebx, edi
mov edx, dword [esp + 4]
xor eax, ebx
add edi, edx
rol ebp, 0xa
add edi, eax
mov eax, ebx
rol edi, 0xc
add edi, esi
xor eax, ebp
mov edx, dword [esp + 0x14]
xor eax, edi
add esi, eax
mov eax, edi
rol ebx, 0xa
add esi, edx
xor eax, ebx
rol esi, 5
add esi, ecx
mov edx, dword [esp + 0x20]
xor eax, esi
add ecx, edx
rol edi, 0xa
add ecx, eax
mov eax, esi
rol ecx, 0xe
add ecx, ebp
xor eax, edi
mov edx, dword [esp + 0x1c]
xor eax, ecx
add ebp, eax
mov eax, ecx
rol esi, 0xa
add ebp, edx
xor eax, esi
rol ebp, 6
add ebp, ebx
mov edx, dword [esp + 0x18]
xor eax, ebp
add ebx, edx
rol ecx, 0xa
add ebx, eax
mov eax, ebp
rol ebx, 8
add ebx, edi
xor eax, ecx
mov edx, dword [esp + 8]
xor eax, ebx
add edi, eax
mov eax, ebx
rol ebp, 0xa
add edi, edx
xor eax, ebp
rol edi, 0xd
add edi, esi
mov edx, dword [esp + 0x34]
xor eax, edi
add esi, edx
rol ebx, 0xa
add esi, eax
mov eax, edi
rol esi, 6
add esi, ecx
xor eax, ebx
mov edx, dword [esp + 0x38]
xor eax, esi
add ecx, eax
mov eax, esi
rol edi, 0xa
add ecx, edx
xor eax, edi
rol ecx, 5
add ecx, ebp
mov edx, dword [esp]
xor eax, ecx
add ebp, edx
rol esi, 0xa
add ebp, eax
mov eax, ecx
rol ebp, 0xf
add ebp, ebx
xor eax, esi
mov edx, dword [esp + 0xc]
xor eax, ebp
add ebx, eax
mov eax, ebp
rol ecx, 0xa
add ebx, edx
xor eax, ecx
rol ebx, 0xd
add ebx, edi
mov edx, dword [esp + 0x24]
xor eax, ebx
add edi, edx
rol ebp, 0xa
add edi, eax
mov eax, ebx
rol edi, 0xb
add edi, esi
xor eax, ebp
mov edx, dword [esp + 0x2c]
xor eax, edi
add esi, eax
rol ebx, 0xa
add esi, edx
mov edx, dword [esp + 0x80]
rol esi, 0xb
add esi, ecx
mov eax, dword [edx + 4]
add ebx, eax
mov eax, dword [esp + 0x48]
add ebx, eax
mov eax, dword [edx + 8]
add ebp, eax
mov eax, dword [esp + 0x4c]
add ebp, eax
mov eax, dword [edx + 0xc]
add ecx, eax
mov eax, dword [esp + 0x50]
add ecx, eax
mov eax, dword [edx + 0x10]
add esi, eax
mov eax, dword [esp + 0x40]
add esi, eax
mov eax, dword [edx]
add edi, eax
mov eax, dword [esp + 0x44]
add edi, eax
mov eax, dword [esp + 0x88]
mov dword [edx], ebx
mov dword [edx + 4], ebp
mov dword [edx + 8], ecx
sub eax, 1
mov dword [edx + 0xc], esi
mov dword [edx + 0x10], edi
jle 0x524a64
mov dword [esp + 0x88], eax
mov edi, ecx
mov eax, dword [esp + 0x84]
mov ecx, ebx
add eax, 0x40
mov esi, ebp
mov dword [esp + 0x84], eax
jmp 0x523597
add esp, 0x6c
pop ebx
pop ebp
pop edi
pop esi
ret