Function at 0x50b5e8
Capabilities:
Encrypt data using chaskey

Disassembly:
mov ebx, dword [esp + 0xbc]
xor edx, edi
sub esi, ecx
sub ecx, 0xe9ce5d8e
dec ecx
jmp 0x508300
mov ebx, dword [ebx]
ror edi, 5
mov ecx, edi
sub edi, 0xe9d95913
mov esi, ecx
mov esi, edi
add edi, esi
sub edx, 0xe9da54dc
jmp 0x50af0b
mul ebx
rol edx, 0x13
ror edx, 0x17
or edi, ecx
inc edi
ror edi, 8
ror ecx, 0x12
inc edx
and edx, ecx
xor ecx, 0xe9dcb94a
jmp 0x50a3ca
ret
xor eax, eax
and ecx, 0xe9f334f1
sub edi, esi
and ecx, esi
or esi, edi
or ecx, esi
shr esi, 0x10
xchg edi, edx
add edi, 0xe9f4e46d
xor esi, 0xe9f52144
and edx, 0xe9f55f4d
add esi, 0xe9f59c16
shr ecx, 0xd
jmp 0x50914c
cmp byte [ebx], 0
jmp 0x50abac
mov ebx, dword [ebx]
xor esi, 0xea1d19ce
add ecx, edx
ror ecx, 5
mov edx, edi
or edx, esi
add ecx, esi
or edi, ecx
mov edi, ecx
shl esi, 5
or ecx, esi
mov ecx, edi
shl edx, 0x13
jmp 0x508c7f
mov ebx, dword [ebx]
ror esi, 0x15
xor esi, edx
and esi, edi
add ecx, 0xea20dcd9
and esi, edx
sub esi, ecx
or esi, edx
add edx, ecx
sub edx, ecx
inc edi
shl esi, 0x18
jmp 0x50a087
sub dword [esp + 0xbc], 8
sub edx, edi
and ecx, edi
sub edx, esi
add edx, esi
shr edi, 0xa
or edi, esi
add edi, edx
or ecx, esi
jmp 0x5094f7
mov ebx, dword [esp + 0xcc]
or ecx, 0xea366e18
xchg edx, esi
sub esi, ecx
jmp 0x50b399
mov dword [esp + 0xe0], eax
shl ecx, 0x16
dec edx
add edi, ecx
xor edi, 0xea46df97
or edx, ecx
and edx, esi
xor edi, 0xea4791fe
sub ecx, 0xea47ce02
mov ecx, edi
and esi, ecx
add ecx, edx
xchg edi, ecx
mov ecx, 0xea49064b
mov ecx, esi
jmp 0x50872f
mov ebx, dword [ebx]
and esi, edx
and esi, edi
mov edx, ecx
shr edx, 0x14
jmp 0x50a780
mov ebx, dword [ebx]
dec ecx
mov edx, ecx
mov edx, esi
neg edx
or ecx, edx
mov ecx, edx
ror esi, 0x11
sub edx, edi
xchg ecx, edi
xchg esi, edx
and edx, ecx
ror edx, 0x1f
neg edx
inc edx
jmp 0x5090f5
add dword [esp + 4], 4
rol ecx, 0x1e
ror ecx, 0x12
add edi, esi
rol edi, 0x15
xchg ecx, edx
xchg edi, ecx
xchg esi, edx
sub esi, edi
sub esi, edi
and ecx, edx
jmp 0x50aa56
mov ebx, dword [ebx]
or edx, edi
sub ecx, edx
neg edx
xchg ecx, edi
inc ecx
mov ecx, edi
add esi, ecx
or ecx, edi
bswap edi
add edi, 0xea651cd1
mov ecx, edx
xor edx, 0xea65908e
sub edi, ecx
jmp 0x509070
mov dword [esp + 0xcc], ebx
bswap ecx
xor ecx, 0xea81683f
or edx, esi
ror edx, 0x1e
add edx, edi
add ecx, edx
mov edx, 0xea8278d2
xchg esi, ecx
xor ecx, edx
sub edi, ecx
sub edx, edi
ror esi, 0x1f
bswap esi
sub edx, edi
add ecx, 0xea844126
jmp 0x50a81a
add ebx, dword [esp + 0xcc]
not ecx
xchg esi, edi
and esi, edx
or esi, ecx
xchg ecx, esi
bswap edi
ror ecx, 6
or ecx, edi
jmp 0x509c8e
add ebx, 0xc
dec ecx
bswap ecx
xor ecx, edi
rol ecx, 0xa
xor ecx, 0xeacec8de
xor esi, edx
or edx, ecx
jmp 0x50990b
xor al, byte [ebx]
add edx, ecx
shr ecx, 2
xor edi, 0xead46b91
or edi, 0xead4a391
add ecx, edx
and ecx, 0xead510aa
mov edi, ecx
dec ecx
shr esi, 0xc
jmp 0x50a5e8
movzx ebx, word [ebx]
shr ecx, 9
xchg edi, edx
or ecx, edx
jmp 0x50831e
add ebx, dword [esp + 0xcc]
add edx, edi
xor esi, edx
xor esi, 0xeae0b0fc
xchg edi, edx
sub edx, 0xeae12034
xor ecx, 0xeae159a5
xor ecx, edx
rol ecx, 0x13
mov ecx, esi
not edi
xor ecx, edx
jmp 0x50adfa
mov ebx, dword [esp + 0xe0]
or esi, 0xeae6cd52
mov edx, 0xeae709d4
add ecx, edx
rol edi, 8
or edi, esi
sub esi, ecx
sub esi, ecx
add edi, esi
shr edi, 0x14
shr ecx, 0x1f
and ecx, edx
or esi, 0xeae94654
mov edi, esi
sub ecx, 0xeae9b342
jmp 0x50aeb8
cmp eax, dword [esp + 0x38]
jmp 0x509a76
mov ebx, dword [esp + 0xbc]
and esi, ecx
sub edi, ecx
bswap edx
mov esi, edx
add ecx, 0xeb100ea9
mov esi, edx
shl edi, 0xe
shr edx, 0x1b
xor edi, ecx
jmp 0x5095e2
mov ebx, dword [ebx]
and ecx, edi
inc esi
or edx, edi
bswap ecx
not edi
or esi, ecx
sub ecx, edi
jmp 0x50a0b7
mov dword [esp + 0xbc], ebx
mov edx, esi
xchg esi, edx
or edx, ecx
and ecx, esi
or esi, edi
xor edi, esi
and ecx, edi
xor ecx, edx
xor edx, 0xeb2bbcfc
jmp 0x509ec3
mov dword [esp + 0xbc], ebx
mov edi, ecx
and edi, edx
bswap esi
add edi, ecx
or edx, ecx
xor edx, edi
not ecx
add edx, 0xeb48b7e2
add edi, 0xeb48feb3
or esi, ecx
ror ecx, 0xf
xchg edi, ecx
inc esi
jmp 0x509aa5
mov ebx, dword [ebx]
add ecx, esi
sub edx, edi
inc edi
bswap esi
or esi, ecx
mov esi, edx
sub edi, 0xeb557b2b
and ecx, edi
or edi, esi
jmp 0x50adcb
jne 0x50a654
rol edx, 0x13
dec edx
sub esi, 0xeb6bf4d9
and edi, ecx
and ecx, edx
rol edx, 0x16
or ecx, 0xeb6cde45
or ecx, 0xeb6d1602
and esi, edx
nop
sub edx, ecx
add edx, edi
jmp 0x50a893
mov ebx, dword [esp + 4]
rol esi, 7
rol ecx, 8
sub esi, 0xeb6eb2e9
and ecx, 0xeb6ef98c
inc ecx
sub esi, edi
and edx, edi
neg edx
rol edi, 6
mov edi, edx
nop
jmp 0x50b076
mov dword [esp + 0xcc], 0
add edx, edi
add esi, edx
or esi, 0xeb7137bf
dec esi
or edx, edi
and edi, 0xeb71eca4
or edx, esi
and ecx, 0xeb7259f0
shr esi, 6
mov ecx, edi
sub edx, esi
jmp 0x50a426
pop ebx
xor esi, 0xeb767a4c
sub esi, ecx
and edi, 0xeb76e824
xchg esi, ecx
mov edi, 0xeb77564e
mov esi, ecx
inc ecx
jmp 0x5094eb
mov dword [esp + 4], ebx
ror ecx, 0x1c
inc edx
sub esi, edi
not edx
inc esi
mov edx, edi
jmp 0x50a654
push ebx
dec edx
mov ecx, esi
add ecx, esi
rol ecx, 0x1a
not ecx
mov esi, 0xeb8e651d
ror ecx, 6
or ecx, edx
ror edx, 6
add edi, esi
jmp 0x508485
mov ebx, dword [esp + 0xbc]
xor ecx, edi
shl ecx, 3
or edi, ecx
add edi, ecx
add ecx, edx
xchg edx, esi
and ecx, edx
not ecx
shr ecx, 4
xor esi, edi
and esi, 0xebaac13d
shr edx, 0xe
xchg esi, edi
bswap edx
xchg esi, edx
jmp 0x50b462
add dword [esp + 0xbc], 0x78
add edx, esi
mov ecx, esi
rol ecx, 0xa
mov esi, edi
sub esi, 0xebb46ad4
mov edi, esi
shr edi, 6
inc ecx
add ecx, edx
add edi, esi
add esi, edi
and edi, edx
dec ecx
xor ecx, esi
jmp 0x508821
mov ebx, dword [ebx]
or edi, edx
ror esi, 0xe
sub ecx, 0xebc33d2c
sub edi, 0xebc375ee
not ecx
xor esi, edx
inc edx
mov esi, ecx
mov edx, edi
inc edi
sub ecx, edx
xor ecx, 0xebc53b7b
jmp 0x50967a
add ebx, 0x18
mov edi, esi
neg edi
dec edx
sub ecx, esi
shr ecx, 0xa
bswap ecx
or ecx, edx
sub esi, 0xebd202f9
mov edx, edi
add edi, 0xebd27d12
sub edi, edx
add ecx, edx
bswap edx
mov esi, ecx
sub edx, ecx
xchg esi, ecx
jmp 0x5086c9
add ebx, dword [esp + 0xcc]
add esi, edi
ror edi, 0x12
dec edx
rol ecx, 0xd
rol edx, 0x1c
sub esi, edi
mov ecx, esi
and esi, edi
jmp 0x509841
mov ebx, dword [esp + 0xcc]
or edi, 0xebe0ef0d
and esi, edi
and ecx, edi
or edi, 0xebe1916d
dec edx
sub edx, 0xebe2020e
and esi, edi
add esi, edi
shr ecx, 0x1d
bswap edi
mov edi, ecx
sub ecx, edi
sub edi, edx
jmp 0x50b23a
inc ebx
mov edi, edx
and edx, ecx
shr edx, 0x1a
xchg edi, esi
and edi, edx
add esi, edi
mov ecx, edx
rol esi, 0xc
xor ecx, esi
mov esi, ecx
xchg esi, ecx
and edx, ecx
mov ecx, edx
add edi, esi
bswap edi
jmp 0x50862c
add dword [esp + 0xbc], eax
or edx, 0xec069b02
or edi, ecx
shr esi, 0x14
mov ecx, 0xec0742ef
neg edi
add esi, 0xec07b11c
rol esi, 0x1b
add ecx, edx
not edx
or esi, ecx
dec esi
jmp 0x509e1e
mov dword [esp + 0xbc], 0
xor edx, 0xec0cc638
bswap esi
sub edx, ecx
xor esi, edx
mov ecx, edi
xchg esi, edi
xchg edx, edi
sub esi, edi
mov edx, edi
and esi, edi
sub ecx, edi
add edx, ecx
jmp 0x50ad29
add ebx, 0x3c
neg ecx
dec edx
and edi, esi
or edx, 0xec1ba4ea
sub esi, ecx
mov edx, ecx
or ecx, esi
ror esi, 0xa
rol esi, 0x15
jmp 0x509fb9
mov ebx, dword fs:[ebx]
and edx, ecx
add edi, 0xec22cd3a
xor esi, ecx
mov esi, 0xec234ac0
xchg edi, ecx
xchg edi, esi
xchg ecx, edi
or edi, edx
jmp 0x50b583
rol eax, 8
sub edx, esi
and esi, ecx
and edx, ecx
rol esi, 0x17
sub ecx, edi
sub edx, edi
sub ecx, edx
jmp 0x50a35b
inc dword [esp + 0xe0]
not ecx
mov edx, ecx
and esi, 0xec316699
mov edx, esi
jmp 0x508a97
mov dword [esp + 0xbc], ebx
xchg edi, edx
and esi, edi
mov edi, esi
sub edi, 0xec4552fc
sub edx, 0xec458ab2
sub esi, ecx
inc ecx
or edx, ecx
shl edx, 0x14
and edx, ecx
xchg esi, edx
or edi, 0xec471a30
not edx
mov edx, 0xec478a81
shr edi, 0x1e
jmp 0x50a18b
mov ebx, dword [esp + 0xcc]
inc esi
mov edi, ecx
xor esi, edx
not edi
bswap edx
or esi, edx
and edi, 0xec5062f2
or ecx, esi
or ecx, edx
mov edx, edi
shr edx, 0xc
add edi, edx
jmp 0x50a4fc
add dword [esp + 0xbc], 4
xchg ecx, edi
xchg edi, esi
shl edi, 0x1e
sub edi, 0xec573745
or esi, 0xec576f1b
bswap edx
sub ecx, edi
jmp 0x508266
mov ebx, dword [esp + 4]
and esi, ecx
mov ecx, 0xec70de30
or edi, esi
or esi, edi
sub ecx, edx
mov edi, ecx
and edi, edx
add edi, esi
dec edi
or ecx, edx
jmp 0x508abb
jne 0x50914c
bswap edi
or ecx, 0xec8852ed
mov edi, esi
add ecx, edx
sub ecx, edi
bswap edx
ror edx, 7
xor ecx, esi
jmp 0x509b30
mov dword [esp + 0x38], ebx
add esi, ecx
add edi, ecx
mov ecx, 0xfbf2c610
xor esi, edi
dec edi
xor edi, 0xfbf37f19
not edx
not edi
mov esi, ecx
rol ecx, 0x1d
dec edx
add esi, 0xfbf4ff88
add edi, 0xfbf53b6e
xchg edx, edi
jmp 0x50b03c
mov ebx, dword [esp + 0xbc]
mov ecx, edx
rol esi, 4
xchg edx, esi
xchg edi, edx
or edx, esi
and edi, esi
and ecx, edx
xor ecx, 0xfbfc3c3a
shl esi, 0x1c
sub esi, edi
jmp 0x50b439
mov ebx, dword [ebx]
xor edi, edx
inc esi
xor esi, edx
bswap edx
sub edi, esi
or edi, edx
sub ecx, edx
sub edx, esi
and edi, esi
or edx, esi
jmp 0x5086ef
add esp, 0xf8
sub esi, edx
dec edi
xchg ecx, edi
inc esi
bswap edx
xchg ecx, esi
xor edx, ecx
mov ecx, edx
jmp 0x5083c2
add ebx, dword [esp + 0xcc]
xchg edx, esi
mov edx, ecx
add edx, esi
or esi, edx
sub esi, 0xfc0ac12e
or edi, edx
sub ecx, esi
mov esi, ecx
shr esi, 0x1f
rol esi, 8
jmp 0x509b83
mul ebx
or ecx, esi
ror esi, 0x11
mov edx, 0xfc128a26
shr ecx, 7
or edx, 0xfc13049f
or esi, edi
xor edi, edx
xchg edx, esi
shl edx, 0x11
jmp 0x50890f
add ebx, dword [esp + 0xcc]
xchg edi, ecx
sub edx, edi
sub edi, 0xfc17cb2f
sub esi, ecx
add edi, esi
xor edx, 0xfc18856e
add edx, esi
mov edx, 0xfc19068b
jmp 0x50b5cc
add dword [esp + 0xbc], 0x20
or edi, ecx
inc edi
add edx, esi
mov edx, esi
and edx, edi
add esi, ecx
xor ecx, 0xfc1e8ecb
add edx, ecx
sub ecx, 0xfc1f187b
xor ecx, 0xfc1f561a
inc esi
mov edi, 0xfc1fd254
jmp 0x50ad99
mov ebx, 0x30
mov esi, edi
sub edx, ecx
ror esi, 0x1e
sub edx, 0xfc2d0b9b
bswap esi
sub edi, ecx
mov edx, 0xfc2dc137
xor edi, esi
add edx, 0xfc2e4ae9
jmp 0x50a572
add ebx, dword [esp + 0xe0]
xor esi, ecx
shr edx, 0x15
rol edi, 0x17
shr ecx, 1
xchg edx, esi
xchg esi, edx
and edx, 0xfc312a0f
and ecx, edx
sub ecx, edi
or esi, edi
add ecx, edi
add edi, ecx
jmp 0x50b228
mov eax, 4
inc edx
or esi, edi
xor edx, edi
or esi, ecx
nop
jmp 0x509172
add dword [esp + 0xbc], ebx
xor edx, 0xfc50a1be
add edi, esi
sub edx, esi
xchg edx, esi
and esi, ecx
sub edi, ecx
sub ecx, edi
add esi, edi
and esi, ecx
sub ecx, edi
jmp 0x50af5d
mov dword [esp + 0xe0], 0
not ecx
dec edx
mov edx, 0xfc5ba53b
xchg ecx, edx
mov edx, esi
add esi, edx
dec ecx
xor esi, edx
or edx, edi
jmp 0x50b4a5
add ebx, dword [esp + 0xbc]
or esi, edx
xor edx, esi
and edx, ecx
mov edi, 0xfc6a62df
rol edi, 9
and esi, edx
not edi
bswap edi
add esi, edi
shr edi, 0x10
nop
or edi, esi
add edi, esi
jmp 0x50897b
mov ebx, dword [ebx]
add esi, edi
xchg esi, edx
jmp 0x50ae42
mov ebx, dword [ebx]
sub esi, ecx
or edi, edx
dec edx
shr ecx, 0x1b
mov edi, esi
and ecx, 0xfc7a1401
shl esi, 0xf
add esi, ecx
rol ecx, 0x18
and edi, ecx
sub edi, ecx
and edx, edi
shr esi, 2
jmp 0x509206
mov dword [esp + 4], 0
xchg ecx, edx
shr esi, 0xf
and edi, ecx
or esi, ecx
add ecx, edi
mov edi, esi
sub ecx, esi
sub edx, esi
or esi, edx
mov edx, edi
add ecx, 0xfc7fc44f
jmp 0x509ad0
mov eax, 2
mov esi, 0xfc89ecdd
not edx
neg edi
xor edi, 0xfc8ab32d
mov edx, edi
dec edx
rol edi, 0xe
jmp 0x509279
add ebx, 0xc
xchg edi, edx
or esi, edi
or ecx, edx
add edi, edx
add edx, esi
or ecx, 0xfc8fa046
neg esi
mov edi, edx
not esi
jmp 0x508a42
mov dword [esp + 4], ebx
add edi, esi
ror edi, 0xb
xor esi, edi
mov edi, esi
xchg edi, edx
inc edx
not esi
and edx, esi
jmp 0x50b556
sub esp, 0xf8
sub edi, 0xfc95c7e0
mov esi, 0xfc96030a
xor edi, 0xfc964005
dec edi
xchg edi, ecx
xor esi, ecx
sub esi, ecx
xchg edi, esi
neg esi
jmp 0x50b2ce