Function at 0x508b10
Capabilities:
Encrypt data using chaskey

Disassembly:
mov ebx, dword [ebx]
sub edx, ecx
sub edx, esi
mov ecx, 0xa435f555
or ecx, 0xa4362e8f
sub ecx, edx
xchg esi, edi
add edx, esi
and edx, ecx
or esi, edi
sub esi, edi
or esi, edi
or edi, 0xa437f294
and edi, esi
jmp 0x50a58f
add ebx, dword [esp + 0xc8]
or ecx, edx
add ecx, edx
or edi, 0xa438de13
neg edi
add edx, esi
add edi, 0xa43993ba
not ecx
add edx, edi
shr edx, 0x14
jmp 0x5092a7
add dword [esp + 0xb8], eax
neg ecx
ror edx, 6
mov ecx, edx
not esi
add ecx, esi
not esi
sub ecx, edi
or edx, edi
or esi, edi
or edi, esi
xchg esi, ecx
not esi
mov edi, esi
xor edx, 0xa43da64a
jmp 0x508fd5
mov dword [esp + 0xb8], ebx
or edi, 0xa4479c38
ror ecx, 0xe
xchg ecx, esi
xor edi, ecx
xor edx, edi
add edi, 0xa448c03e
and edx, edi
add esi, 0xa4492e37
and edi, ecx
xor edx, ecx
jmp 0x50a2ca
inc dword [esp + 0x48]
add edi, edx
xchg ecx, esi
xchg edx, esi
mov edx, 0xa44b281b
jmp 0x508e01
add ebx, dword [esp + 0xc8]
xor edi, esi
shl edi, 8
neg edi
sub ecx, esi
add esi, edi
or ecx, 0xa48d1363
jmp 0x50a624
mov ebx, dword [esp + 0x48]
shl esi, 0x1a
shl esi, 0xe
ror edi, 0x16
mov edx, 0xa49ae4a4
sub ecx, esi
mov esi, edi
add ecx, edx
xchg edi, edx
and edi, ecx
mov ecx, 0xa49c4581
xchg edi, esi
jmp 0x509973
mov ebx, dword [ebx]
sub edx, edi
or edi, esi
sub edx, ecx
rol ecx, 0xd
add esi, edx
and edi, ecx
sub edx, 0xa49e4432
sub edx, esi
or edi, edx
inc esi
jmp 0x508022
add ebx, 0xc
xchg edi, ecx
add edx, ecx
and ecx, esi
sub esi, 0xa49ff937
sub edi, ecx
rol ecx, 0xe
mov ecx, edx
shr edx, 6
jmp 0x50a805
mov eax, 2
xor ecx, edi
and ecx, edx
neg ecx
xchg esi, edx
add ecx, esi
and ecx, edi
bswap edx
mov ecx, edx
jmp 0x5084bc
mov dword [esp + 0x60], ebx
ror esi, 0xc
xchg edi, edx
ror edx, 0xf
xchg esi, edx
add edx, esi
add esi, edx
jmp 0x5091e2
mov dword [esp + 0xbc], 0
add ecx, 0xa4b674a8
mov ecx, edi
bswap edi
and edi, ecx
mov edx, 0xa4b7620d
add esi, 0xa4b79fe1
xchg edx, edi
xor edx, esi
and ecx, 0xa4b8635c
mov edx, edi
jmp 0x508a3b
add ebx, dword [esp + 0xc8]
xchg esi, edx
and edi, esi
ror esi, 0x18
neg edi
xchg ecx, edi
shr ecx, 0x17
dec edx
xor esi, 0xa4be0bfc
mov edi, ecx
ror esi, 0x15
xor ecx, esi
neg esi
xor ecx, esi
jmp 0x50aa5a
mov ebx, dword [ebx]
xor edx, edi
or edx, edi
or edx, 0xa4c8f88c
xchg edi, ecx
xchg esi, ecx
add esi, ecx
sub ecx, 0xa4c9f7b0
or ecx, 0xa4ca34bd
jmp 0x5093e5
mov dword [esp + 0xbc], ebx
and ecx, 0xa4ee4fcc
and ecx, edx
neg esi
sub esi, edi
xor edi, edx
and esi, edi
mov edi, 0xa4f1f277
mov edi, edx
jmp 0x508059
mov ebx, dword [esp + 0xc8]
xor ecx, esi
xchg edx, edi
add edi, edx
jmp 0x509fbf
sub dword [esp + 0xb8], 8
or ecx, 0xa54e290a
add ecx, edi
add esi, edi
bswap edi
add edi, 0xa5507b63
add esi, edi
or esi, edx
and edi, edx
or esi, edx
inc esi
sub edx, ecx
or esi, ecx
add esi, 0xa55540d3
jmp 0x5099a7
mov dword [esp + 0xc8], 0
sub esi, ecx
sub ecx, esi
bswap edi
sub esi, edx
sub esi, edi
add edx, 0xa562752b
sub esi, ecx
mov edi, ecx
and edi, esi
sub edx, esi
inc esi
add ecx, edi
bswap esi
and esi, edi
jmp 0x50a475
add ebx, 0xc
and edx, 0xa56daecb
add edx, ecx
mov ecx, esi
sub ecx, esi
or edx, edi
and edx, edi
add edx, 0xa5713e50
nop
jmp 0x509ab3
mov ebx, dword [ebx]
mov edi, ecx
mov edx, ecx
sub edi, edx
ror esi, 0x1b
xchg esi, edi
xchg ecx, edi
mov ecx, edx
jmp 0x507f35
sub esp, 0xf8
and esi, edi
and esi, 0xa586303a
mov edx, ecx
add edx, esi
or edi, esi
bswap ecx
shr ecx, 0x11
xchg ecx, edi
mov edi, 0xa588f947
shl edi, 0x10
jmp 0x509b10
xor eax, eax
and edi, 0xa58e747c
add edx, 0xa58ed833
sub ecx, esi
neg esi
sub edx, 0xa5901db5
add esi, edx
add edi, ecx
jmp 0x509a1d
mov ebx, dword [esp + 0xc8]
mov edi, ecx
xchg edx, ecx
xor edi, edx
add edi, ecx
and ecx, edx
dec esi
mov ecx, edi
dec edi
xchg edx, ecx
xor edi, 0xa59b5132
mov esi, edx
xor edx, esi
jmp 0x509156
add dword [esp + 0xb8], 4
sub edx, esi
and esi, 0xa5ac806d
bswap edx
bswap esi
mov esi, ecx
jmp 0x508f81
add dword [esp + 0xbc], 4
or ecx, esi
and esi, edi
xchg esi, edi
add edx, edi
mov esi, 0xa5ee5dd0
mov ecx, edx
and edi, esi
jmp 0x50a4c9
mov ebx, dword [ebx]
bswap esi
xchg edi, ecx
jmp 0x5097c8
pop ebx
add edi, ecx
and esi, ecx
sub edi, 0xa61014c0
and esi, edx
xchg edx, ecx
and esi, edx
or esi, edi
neg ecx
add ecx, edi
sub edi, ecx
dec edi
ror edi, 0xb
shr esi, 0x19
xor edi, edx
jmp 0x50914a
mov ebx, dword [esp + 0xb8]
or edi, ecx
shl edi, 0xf
shr esi, 0x1c
xor ecx, edx
sub edi, esi
rol esi, 0xa
or edi, ecx
add esi, ecx
and esi, edi
jmp 0x508ad3
mov ebx, dword [esp + 0xb8]
xor edx, ecx
mov edi, esi
sub ecx, edi
and esi, edi
sub edi, ecx
xchg ecx, edi
xor ecx, edx
shr esi, 4
sub edi, esi
dec edx
xchg esi, ecx
mov edi, esi
xor esi, 0xa6354427
jmp 0x50a32e
mov ebx, dword [esp + 0xb8]
dec ecx
xchg ecx, esi
bswap ecx
sub esi, ecx
or ecx, esi
ror edx, 0x19
sub edi, 0xa659ec77
jmp 0x507f09
cmp eax, dword [esp + 0x60]
jmp 0x50a665
add ebx, 0x3c
add esi, 0xa663d414
add esi, edx
or esi, ecx
shr ecx, 0xb
add edi, 0xa6655d73
sub ecx, 0xa665dcea
xchg esi, edx
shl edx, 0x1a
and esi, edi
mov esi, edx
jmp 0x5084e7
mov ebx, 0x30
mov esi, edi
dec edx
add ecx, esi
shl edx, 9
ror esi, 0x12
ror edi, 0x1b
not edx
neg ecx
shr esi, 7
sub edi, 0xa6869d33
or edi, ecx
mov esi, ecx
mov esi, ecx
xchg edi, edx
or edi, esi
jmp 0x509874
mov dword [esp + 0xbc], ebx
xchg edx, edi
shr edx, 0x13
and esi, edi
add ecx, edi
add edx, 0xa69c8375
not edx
mov edx, ecx
xor edi, esi
bswap edi
jmp 0x508524
add ebx, dword [esp + 0xb8]
xchg edx, edi
xor edi, edx
mov esi, edx
sub edx, ecx
and ecx, 0xa6c9c979
or esi, edi
and edi, ecx
xchg edi, edx
xor edx, 0xa6cb64cc
dec edi
shl edx, 0x10
or edi, esi
xchg esi, ecx
and edi, 0xa6cd4c9d
mov esi, ecx
and edx, 0xa6d26187
jmp 0x508e8e
mul ebx
mov edi, edx
xchg edx, edi
mov edx, 0xa6d89f31
sub ecx, edx
not edx
xchg ecx, edi
add edx, esi
sub edi, 0xa6dad8dc
and edx, esi
xchg ecx, esi
xor edi, 0xa6dc6733
xor edx, 0xa6dcdfa2
jmp 0x507f5c
add ebx, 0x18
and ecx, edx
sub edx, esi
xchg esi, edi
neg edx
sub ecx, 0xa6e856dc
mov esi, edi
xor edx, edi
xchg esi, edx
or edi, edx
bswap edi
sub edx, ecx
inc ecx
dec edi
dec ecx
jmp 0x50a1b5
inc ebx
and ecx, edi
xchg ecx, edx
and esi, edx
dec esi
xor esi, edi
dec esi
xchg esi, edx
sub ecx, edx
bswap edi
mov esi, edi
sub edx, edi
xchg edx, edi
add ecx, edi
or ecx, 0xa741056c
jmp 0x50a453
mov dword [esp + 0xb8], ebx
add esi, ecx
sub ecx, edi
add esi, 0xa780d4de
add edx, ecx
add ecx, 0xa78158b1
xchg ecx, edx
xchg esi, edx
mov ecx, edi
jmp 0x5088a0
mov ebx, dword [ebx]
or edx, edi
neg edx
xor edi, edx
neg esi
xor edx, 0xa783a41b
sub edi, 0xa783eaab
or edi, esi
and esi, edi
or edi, 0xa784c5d4
shl edi, 0x19
jmp 0x509e8b
mov ebx, dword fs:[ebx]
sub esi, edi
mov edi, esi
xchg esi, edx
xor edx, edi
add esi, edx
dec ecx
or ecx, esi
xchg edx, edi
inc esi
xor edx, esi
mov esi, 0xa78fe103
sub edx, esi
dec edx
xor ecx, esi
or edi, ecx
mov edi, 0xa7913029
jmp 0x508a6a
add dword [esp + 0xb8], 0x20
or edi, edx
xor esi, edx
bswap ecx
shl edx, 6
sub esi, edi
xor edi, esi
xor ecx, edx
inc edx
jmp 0x5090e6
mul ebx
and edx, 0xa7a21d71
neg edi
or edx, esi
neg edx
shr esi, 1
jmp 0x50a6ef
mov ebx, dword [esp + 0xb8]
and edx, edi
bswap ecx
bswap esi
or esi, edx
shl edi, 0x16
add edx, esi
sub ecx, edi
xor edx, ecx
mov edi, edx
add ecx, edx
xor edx, ecx
jmp 0x50a1e1
xor al, byte [ebx]
or edi, esi
add ecx, edi
mov edx, 0xa7b46e99
shr edx, 0x12
or ecx, edi
and edx, ecx
or esi, edx
and edx, ecx
jmp 0x50a45b
mov ebx, dword [ebx]
sub edi, 0xa7bd12de
or ecx, 0xa7bd4f0f
xor edi, esi
mov edi, edx
xor ecx, esi
mov esi, edi
xchg edi, edx
add esi, edx
jmp 0x508506
mov dword [esp + 0x48], 0
mov edx, edi
shr edi, 9
xor ecx, edi
mov edi, edx
dec edx
jmp 0x50863a
ret
add ebx, dword [esp + 0x48]
not ecx
sub edi, ecx
mov esi, edx
xchg esi, edx
xor edx, ecx
bswap ecx
xchg ecx, edi
mov ecx, 0xa7e11947
mov ecx, esi
jmp 0x50a3c9
jne 0x509a1d
inc edi
sub edi, edx
neg esi
and edx, esi
mov edi, 0xa7e3ae19
or ecx, edi
ror edi, 0x11
add edi, esi
and ecx, edx
sub ecx, esi
mov esi, edi
and edx, 0xa7e55f80
sub edx, esi
jmp 0x508eec
add ebx, dword [esp + 0xc8]
or esi, ecx
or edx, edi
xchg edi, esi
rol esi, 0x12
inc edi
dec edx
sub ecx, 0xa8026591
inc ecx
add edx, esi
sub ecx, esi
ror esi, 0xa
or esi, edx
jmp 0x50a9d3
mov ebx, dword [ebx]
ror esi, 0x12
mov esi, ecx
xchg ecx, esi
or edi, ecx
or edi, esi
xor ecx, edi
rol edi, 0x17
xchg edx, edi
xchg edx, esi
sub esi, edx
jmp 0x50874c
mov ebx, dword [esp + 0xbc]
xor esi, edi
and esi, edx
mov ecx, 0xa80b3f8e
xor edx, edi
xor edx, esi
add edi, 0xa80bf37e
neg edx
ror esi, 0x12
add edi, ecx
xchg edx, edi
add esi, ecx
jmp 0x509ca4
add dword [esp + 0xb8], ebx
neg esi
neg ecx
dec edi
sub edx, esi
add edi, edx
xchg esi, ecx
jmp 0x5098fc
mov ebx, dword [esp + 0xc8]
not edi
sub esi, ecx
and esi, ecx
xchg esi, ecx
inc ecx
neg ecx
not ecx
dec edi
mov ecx, esi
xor edx, esi
sub edi, esi
jmp 0x5092fe
mov dword [esp + 0xc8], ebx
add edi, ecx
mov edi, 0xa82e7cb5
or edx, ecx
xor ecx, edx
not esi
sub ecx, edx
jmp 0x508bad
movzx ebx, word [ebx]
dec edx
shl esi, 0x10
and edi, esi
or esi, 0xa835426f
rol ecx, 0x1c
xor ecx, edx
xor esi, 0xa835f83e
add edx, ecx
or edi, ecx
xchg edi, ecx
rol edi, 7
xchg esi, edx
jmp 0x50936f
mov ebx, dword [ebx]
or edx, esi
bswap edi
not edi
xor edi, edx
jmp 0x50a119
mov ebx, dword [ebx]
or edx, ecx
or edi, ecx
xor edi, edx
or ecx, esi
bswap esi
and edx, 0xa83ddf1d
not edi
xchg ecx, esi
xor ecx, edx
xor esi, 0xa83ee07e
add esi, ecx
or edx, ecx
sub esi, ecx
add esi, edi
jmp 0x5083ee
add dword [esp + 0xb8], 0x78
mov edi, ecx
sub edx, 0xa84ee86b
xchg ecx, esi
or edi, ecx
xor edi, 0xa84fa1cf
and ecx, edx
jmp 0x50a027
mov ebx, dword [ebx]
mov edi, ecx
and ecx, edx
add edx, edi
xchg ecx, edi
sub edx, esi
xchg ecx, edi
and esi, edx
or edi, edx
mov esi, 0xa857ab76
sub esi, 0xa857e845
not edi
add edx, esi
jmp 0x508698
mov eax, 4
sub edi, edx
xchg esi, ecx
xor ecx, edi
and edi, 0xa861dbb4
xor edx, 0xa86218f7
sub edi, edx
dec ecx
and edx, ecx
jmp 0x50a174
cmp byte [ebx], 0
jmp 0x509cdb
rol eax, 8
sub edi, esi
xchg edi, edx
mov esi, ecx
neg edi
sub esi, ecx
sub esi, 0xa86b6d20
mov esi, edi
jmp 0x509614
mov dword [esp + 0xb8], 0
xchg edi, edx
not esi
and edx, esi
sub edi, esi
and esi, edi
or ecx, edx
mov edi, 0xa86d5b73
xor edi, 0xa86d99e3
xchg edx, edi
sub edi, ecx
xor edi, 0xa86e5c77
jmp 0x508620
mov ebx, dword [esp + 0xbc]
add ecx, esi
mov edx, esi
xor edi, 0xa8722bdb
xor esi, ecx
xor ecx, esi
and ecx, esi
xor ecx, 0xa8731aae
xchg edx, esi
or ecx, edi
jmp 0x5097ec
add ebx, dword [esp + 0xc8]
mov edx, 0xa87e6436
shr ecx, 2
add edi, esi
neg ecx
or ecx, 0xa87f57f5
xchg esi, ecx
shr ecx, 0x17
inc edi
sub esi, edi
or esi, edx
jmp 0x5087ef
mov dword [esp + 0xb8], ebx
mov esi, edx
rol ecx, 0x11
shr edi, 0x19
sub edi, 0xa888c93d
ror esi, 0x15
and ecx, edi
or esi, ecx
add edi, edx
or edx, 0xa88a036f
and ecx, 0xa88a40bc
mov edx, ecx
jmp 0x509f17
jne 0x508059
nop
xchg esi, edi
xchg esi, edi
and edx, ecx
add edi, 0xa88c99ce
add edi, 0xa88cd561
mov esi, edx
neg edi
or esi, edi
or edi, esi
jmp 0x508c23
mov dword [esp + 0x48], eax
rol edx, 5
ror esi, 0xc
dec ecx
add ecx, edx
neg edx
add edi, 0xa896e7ca
and esi, 0xa89724c5
jmp 0x5089e6
mov ebx, dword [ebx]
not ecx
and ecx, edx
jmp 0x509ecb
push ebx
shr esi, 0x1f
xchg esi, edi
xchg esi, edx
rol ecx, 0x16
add ecx, edi
not esi
or edx, esi
add edx, edi
or ecx, esi
dec ecx
jmp 0x508b5a
add esp, 0xf8
and ecx, edx
inc edi
add esi, 0xa8d1b737
and ecx, 0xa8d1f4c0
mov edi, 0xa8d231aa
mov ecx, edx
xchg edi, ecx
xchg esi, edi
add esi, ecx
add edi, esi
and edx, 0xa8d3a272
xor esi, ecx
sub esi, 0xa8d41a15
jmp 0x509baa