Function at 0x50ab22
Capabilities:
Encrypt data using chaskey

Disassembly:
mov esi, dword [esi]
xor edx, 0xf6ccde23
and edx, ecx
or ebx, ecx
xor edx, ecx
add ebx, edx
and edi, ebx
dec edx
neg edi
sub ecx, ebx
jmp 0x509365
mov esi, dword [esp + 0xf8]
sub ecx, edx
xor edx, ebx
and edi, edx
and ebx, 0xf6e0f51f
jmp 0x50ae8f
add dword [esp + 0xf8], esi
add edi, 0xf6eb37b9
xor edx, ecx
rol ebx, 0x16
sub edx, ebx
add edi, ecx
shl ebx, 5
xchg edi, edx
and edi, 0xf6ecd8c7
and ecx, edi
jmp 0x5097cf
mov esi, dword [esp + 0x20]
and ecx, 0xf6ed5d52
add ecx, ebx
xor edi, ebx
and ecx, 0xf6ee0916
shr ebx, 1
xor ecx, edi
sub ecx, edx
add ebx, edx
mov ecx, edi
sub ecx, 0xf6ef69a7
and ecx, edx
jmp 0x509127
pop esi
add edx, ebx
add ebx, ecx
and ecx, 0xf70462f6
dec ebx
and edi, ebx
or ebx, edi
and ecx, 0xf7055435
sub edx, edi
shl ecx, 0x1b
add edi, 0xf7060442
xchg ecx, edx
jmp 0x509e23
add esi, dword [esp + 0x13c]
neg edx
shl edx, 9
xchg edx, ebx
and edi, 0xf7146bc1
and edi, 0xf714a4a6
sub ebx, ecx
or edi, 0xf71518b2
jmp 0x50a589
add dword [esp + 0x3c], 4
shl edi, 0xb
mov edx, edi
or ebx, edx
xor edx, ebx
ror edi, 0xa
and edx, 0xf72df6e0
xchg ecx, edx
dec edi
add ebx, ecx
shl ecx, 0xa
mov ecx, 0xf72f2567
mov edi, 0xf72f613d
jmp 0x508737
mov dword [esp + 0x20], 0
xchg edx, ebx
xor edi, edx
or ebx, ecx
add ecx, 0xf740728b
and ecx, ebx
add edi, ecx
sub edx, 0xfaebffdf
inc edi
or edi, edx
jmp 0x509300
add esi, dword [esp + 0x20]
add edx, 0xfaece2af
sub ecx, edi
xchg edi, ebx
add edx, ebx
inc ebx
add ebx, edx
add edi, ebx
and ecx, edx
and edi, edx
rol ebx, 0x13
jmp 0x508884
mov esi, dword [esi]
and edx, edi
shr edx, 0x17
neg edx
and edi, ecx
mov edx, 0xfafa5ab2
not edx
add ebx, edx
bswap ecx
sub edx, 0xfafb560c
xor edx, ecx
add edi, edx
and edi, ebx
and ecx, ebx
or edx, edi
jmp 0x508292
mov esi, dword [esp + 0xf8]
and ecx, ebx
ror ecx, 0x18
jmp 0x508837
rol eax, 8
mov edx, 0xfb0a2316
xor ebx, ecx
xchg edx, edi
or ebx, edx
shr edx, 0x12
shl edi, 0x13
sub ebx, edi
add ebx, ecx
ror edx, 0x19
and edi, ebx
bswap ebx
bswap edx
jmp 0x508a5d
jne 0x50a3a1
mov ebx, edx
and ecx, edx
xor edx, ecx
dec ebx
rol ebx, 0xc
add edi, edx
sub ecx, 0xfb2eed6b
jmp 0x50934a
mov esi, dword [esp + 0x3c]
ror ecx, 1
xor ebx, ecx
bswap edi
xor edi, ecx
add ebx, edx
or ecx, edx
xor ebx, edi
bswap edx
sub edx, ebx
sub ecx, edi
xor ecx, edi
xchg ebx, edx
or ebx, 0xfb4735af
neg ebx
jmp 0x508f83
mov esi, dword [esi]
sub edi, ebx
xor edx, 0xfb5806f4
shr edi, 0x1f
or ebx, edi
xor ebx, edi
mov edi, ecx
add ebx, ecx
xor ecx, edx
not ebx
and edx, edi
xchg edx, ebx
and edx, ebx
jmp 0x509396
mov dword [esp + 0x3c], esi
mov edi, ecx
sub edi, ebx
add ebx, edi
xor ecx, edx
ror ebx, 0x1b
shr ebx, 0x12
and edx, ebx
sub edi, ecx
jmp 0x50a3a1
inc esi
sub edi, ecx
or edx, 0xfb82dad5
or edx, 0xfb8316ac
mov edx, 0xfb83552e
xor edx, ebx
xor ebx, 0xfb83cda0
shl ebx, 2
and ecx, ebx
inc edx
jmp 0x50938e
mov dword [esp + 0x20], esi
or ecx, ebx
xor edx, ecx
or ecx, edi
xor edx, 0xfb944e24
bswap edx
neg ebx
add ecx, edi
bswap edi
mov edx, ecx
or ecx, 0xfb95cb03
or edx, ecx
not ebx
mov edi, 0xfb967c93
jmp 0x507e4f
mov esi, dword [esp + 0xf8]
and ebx, edi
sub ecx, edx
and ebx, edi
sub ecx, edx
xor ecx, edx
shr edi, 0x1b
sub ebx, edx
sub edx, ebx
add edx, 0xfb98ad9c
add edx, ebx
not edi
jmp 0x507cdc
mov esi, dword [esp + 0x13c]
or edi, ebx
xor edi, ebx
add edi, 0xfbbed9d7
xor edi, ebx
not ebx
xchg edx, ebx
or ecx, 0xfbbfcb2b
ror edi, 1
sub ebx, edx
jmp 0x50b4c3
mov esi, dword [esi]
sub edi, edx
add edx, ebx
add edi, 0xfbeff10f
sub ebx, ecx
xor edi, ebx
jmp 0x509070
mov dword [esp + 0x13c], eax
mov ecx, 0xfbf40ca8
and ecx, edi
sub edi, ebx
add edx, ebx
jmp 0x5099b1
add esi, dword [esp + 0x20]
or edx, 0xfc0de32c
add edi, ecx
sub ebx, edi
add ecx, edi
mov ecx, ebx
sub edi, 0xfc0fd03f
jmp 0x50a6fc
movzx esi, word [esi]
rol ecx, 0x14
sub ebx, ecx
sub ebx, ecx
or edi, ecx
shr edi, 0x1b
mov edi, 0xfc121f41
add edx, 0xfc12a1c3
jmp 0x509c34
add esi, 0x3c
and ecx, edi
xor ebx, ecx
or edi, 0xfc1eb189
sub edx, ecx
or edi, edx
xchg ebx, edi
xchg edi, ebx
jmp 0x50a5fb
jne 0x50b162
mov ecx, ebx
dec ecx
dec edx
sub ebx, edi
xchg edi, edx
or edx, edi
add edx, edi
or edx, edi
bswap ebx
xchg edi, ebx
jmp 0x507f8e
add dword [esp + 0xf8], eax
and ecx, edx
or edi, ebx
shl ebx, 6
or edi, edx
xor ecx, edi
and ebx, 0xfc41522a
add ebx, edx
xchg ebx, edi
bswap edx
rol ebx, 1
jmp 0x507d9a
mov dword [esp + 0xf8], 0
xchg edx, edi
mov ebx, edi
not edx
neg edi
sub ebx, ecx
sub edi, ebx
rol edi, 5
xchg ecx, edx
xchg edi, ecx
jmp 0x509bcc
add esi, 0x18
shl ebx, 0x18
neg edi
sub ecx, edi
or edi, edx
and ecx, edx
mov edx, 0xfc4781fb
xchg edi, ebx
add ecx, edi
inc edx
mov ecx, edi
and ebx, edx
and ebx, 0xfc495406
jmp 0x50b410
add dword [esp + 0xf8], 4
add ebx, edx
add edi, 0xfc49dc47
add edx, 0xfc4a2392
jmp 0x5083ea
add esi, dword [esp + 0x20]
and edi, 0xfc4a70a6
sub ebx, 0xfc4ab985
xor ebx, 0xfc4af474
dec ecx
or ecx, edx
and edx, edi
add edx, ebx
not edi
xor ecx, edi
jmp 0x50ad93
cmp byte [esi], 0
jmp 0x509141
add esi, dword [esp + 0x20]
or ebx, ecx
neg ecx
jmp 0x50aa05
mov dword [esp + 0xf8], esi
neg edi
add edi, 0xfc6ccc9f
xor ebx, edx
and ecx, edx
add edx, 0xfc6df564
and ebx, 0xfc6e3750
add ecx, ebx
not ecx
xor ebx, ecx
and ebx, ecx
jmp 0x509d8c
mov esi, dword [esi]
add edx, ecx
shl edx, 5
bswap edi
xchg ebx, ecx
xchg ebx, edi
or edi, 0xfc7ab5af
xchg edx, ecx
shr ebx, 0x1f
shl edx, 0xd
mov edi, 0xfc7bb01f
shl edi, 3
not edx
xchg edi, edx
sub ebx, 0xfc7d28df
and edx, ecx
jmp 0x50a056
add dword [esp + 0xf8], 0x20
neg ebx
neg edi
add edi, edx
or ebx, edx
xchg edx, ebx
add edi, 0xfc9f396e
inc ecx
or edi, ecx
sub ebx, 0xfc9ff796
xor edi, ecx
add edi, 0xfca06fac
jmp 0x50affe
mov esi, dword [esi]
not edi
and edi, ecx
ror edi, 3
sub ecx, edi
shl ebx, 0x1c
dec ecx
add ebx, 0xfcc27011
sub edx, edi
add ecx, edi
or ebx, edx
xchg ebx, edx
neg edx
jmp 0x50ac5d
sub dword [esp + 0xf8], 8
xor ecx, ebx
sub ebx, 0xfcc4e807
mov ebx, edx
nop
shr ebx, 0x11
sub ecx, edi
jmp 0x508b8a
mov esi, dword fs:[esi]
sub ecx, edx
rol ecx, 7
shl ebx, 0x10
jmp 0x50aef6
mov dword [esp + 0x128], esi
sub ebx, edx
xor ebx, 0xfcf126a3
neg ebx
ror edx, 0x1a
mov edi, edx
shr ebx, 0x1b
xor ebx, edi
mov edx, ebx
xchg edi, ebx
jmp 0x50a46a
xor eax, eax
add ebx, edx
sub ebx, ecx
xchg ebx, ecx
and edi, ebx
shr edx, 0x13
sub ecx, edi
inc edi
inc edi
xor edi, ecx
jmp 0x50b162
mul esi
mov ecx, edx
xor edi, edx
and edx, ecx
neg edi
xor ecx, edx
or ecx, edx
dec edx
neg edi
and ebx, 0xfd02801d
mov edx, 0xfd02e658
neg ecx
jmp 0x5092da
add esp, 0x160
shl edx, 6
xor ebx, 0xfd216b85
shl edi, 0xa
sub edx, 0xfd2234ae
neg edx
or edx, ecx
add ecx, edi
mov ecx, edi
jmp 0x509f08
mov esi, dword [esp + 0x20]
mov edi, edx
xor ebx, edi
ror ebx, 0x1d
sub ebx, ecx
shr ecx, 0x17
or edx, edi
or edx, 0xfd2d4567
not edx
jmp 0x507e27
cmp eax, dword [esp + 0x128]
jmp 0x5085fb
ret
add esi, 0xc
xchg ecx, ebx
xor edx, edi
or ebx, edx
sub ecx, ebx
and edi, 0xfd949d28
ror ebx, 0xb
jmp 0x50998d
inc dword [esp + 0x13c]
mov ecx, edi
ror edx, 0xf
xor ecx, edx
add ecx, edx
sub edx, ebx
not ebx
mov ecx, 0xfdf7ea4f
sub ebx, edx
add edi, edx
sub edx, ecx
jmp 0x50815d
add dword [esp + 0xf8], 0x78
xor edi, ebx
not ebx
ror edi, 0x1c
shr ecx, 2
mov ebx, 0xfdfd4a90
and edi, ecx
jmp 0x50aae5
mov esi, 0x30
dec edi
shl ebx, 0x1d
or edi, edx
neg edx
shr edx, 0x11
add edx, 0xfe0da7c3
shr ebx, 1
xchg ebx, edx
or ecx, ebx
xor ebx, 0xfe121509
sub ebx, ecx
inc ebx
xor edx, edi
xor ebx, 0xfe1475c7
mov edi, ecx
add edi, ebx
jmp 0x509b10
mov dword [esp + 0xf8], esi
and edx, ebx
mov ebx, 0xfe3a80c9
neg ebx
and edi, edx
and edx, ecx
jmp 0x50a3d8
mov eax, 4
add ecx, edx
xchg edx, ecx
and edi, ebx
and ebx, ecx
add edi, ebx
xchg edi, ecx
sub edi, edx
neg ebx
xchg edi, ebx
add ebx, edx
sub ebx, edx
mov edi, 0xfe45be0d
and edi, edx
sub edi, ecx
jmp 0x509090
mov esi, dword [esi]
and ecx, 0xfe50f005
xor ecx, edi
bswap ebx
xor ecx, edi
sub edx, 0xfe529956
inc edi
xor ebx, ecx
inc edi
jmp 0x50a549
add esi, dword [esp + 0xf8]
xor ebx, ecx
ror ebx, 0xe
xor ecx, 0xfe5c3b9c
sub ebx, 0xfe5c9ba7
or ebx, edx
dec edi
mov ebx, edi
xor ecx, ebx
jmp 0x50acd2
push esi
or edi, ebx
shr ecx, 3
mov ebx, 0xfe757553
neg ebx
sub ebx, ecx
bswap ecx
shl ebx, 0x18
add edx, edi
or ebx, edx
mov edi, edx
and edx, 0xfe78b200
jmp 0x509bf0
mov esi, dword [esi]
not edx
sub edi, ecx
and ecx, ebx
jmp 0x509323
mov dword [esp + 0x13c], 0
sub edx, 0xfeb08f28
xchg edx, edi
xor ebx, ecx
xchg edx, edi
or ebx, edi
add ecx, 0xfeb2b6ec
mov ecx, edi
bswap ebx
add ebx, 0xfeb40f0a
mov ecx, edi
xor ebx, ecx
and ecx, edx
add edi, ebx
jmp 0x50b1a4
add esi, dword [esp + 0x20]
xchg ecx, edx
or ecx, edx
and edx, ecx
xor ecx, edx
mov edx, ebx
mov edi, ebx
not ebx
neg edi
and ecx, 0xfec7296c
rol edx, 0x1b
mov edx, ebx
and edx, ecx
jmp 0x509d3b
mov dword [esp + 0x3c], esi
inc ebx
and ecx, 0xfed76f94
shl edx, 0x17
add ebx, ecx
sub edi, edx
sub edi, ebx
or edi, 0xfed98ebe
and ebx, ecx
rol ebx, 0x1d
mov ecx, edi
not edx
jmp 0x50b361
mov esi, dword [esp + 0x3c]
add ecx, ebx
ror edx, 0x17
add ecx, 0xfedcdfbe
add ebx, ecx
add edx, edi
sub ebx, edx
jmp 0x508072
mov esi, dword [esp + 0x20]
xchg ebx, edi
add ebx, edi
bswap edx
mov edi, ebx
add ecx, edx
xor ebx, edi
nop
or edi, edx
xchg ecx, ebx
dec ebx
mov ebx, edi
jmp 0x50a649
sub esp, 0x160
sub edi, edx
shl edi, 0x19
mov edi, ecx
xchg ebx, edi
or ecx, 0xfefb6321
ror ebx, 0xf
xchg ecx, ebx
sub ebx, edx
xor edx, edi
jmp 0x50a8ca
mov esi, dword [esi]
bswap edi
dec edx
or ecx, ebx
add edi, ebx
add ecx, edi
or ebx, 0xff2348e5
rol edx, 0x14
rol edi, 0x16
and edx, 0xff248497
shr edi, 0xe
jmp 0x50a841
mov esi, dword [esi]
or edx, ebx
mov edi, 0xff2f9e7b
xor ebx, ecx
sub edi, edx
not ebx
jmp 0x509555
mov dword [esp + 0xf8], esi
rol edi, 0x1a
or ecx, ebx
xchg ecx, ebx
add edi, ecx
or edx, ecx
and ebx, edi
sub edx, ecx
jmp 0x50aa30
mov esi, dword [esi]
rol edi, 0x16
mov ecx, 0xff64cb74
or edx, ebx
sub edi, ebx
sub edi, ebx
add edi, ecx
xchg edi, ebx
or edx, ecx
add ecx, edx
or edx, 0xff68beb2
add ecx, 0xff692447
mov edx, ecx
jmp 0x50a969
add esi, 0xc
add ecx, ebx
mov edi, ecx
xchg edi, ebx
and ebx, edi
ror edx, 0x14
or ecx, 0xff72e272
or edx, edi
xor ecx, ebx
xor edx, ebx
xor edi, ebx
add edx, ebx
mov edx, 0xff75f9fb
jmp 0x509604
mov esi, dword [esp + 0xf8]
or ecx, ebx
xor ebx, 0xff93ef9e
inc edi
sub ecx, edi
sub ebx, 0xff95253b
add ebx, 0xff958895
xor edi, ebx
jmp 0x508340
xor al, byte [esi]
mov edi, edx
xor edi, edx
xor ebx, ecx
mov edi, ebx
add ebx, 0xffc0995c
or ebx, ecx
shl edx, 0x14
xchg ecx, ebx
add edx, 0xffc242f4
add ebx, edx
add ebx, ecx
xor ecx, edx
shl edx, 0x1b
jmp 0x508431
mov dword [esp + 0x3c], 0
sub edi, ecx
add edi, ecx
or edx, 0xffca7a38
jmp 0x508269
mov eax, 2
sub ebx, ecx
xchg edi, edx
and ecx, edx
dec edi
sub ebx, 0x3a1ff
sub edx, edi
dec edx
xor edx, 0x45319
mov ebx, 0x49926
xchg edx, ebx
and edi, 0x50f78
add ebx, edi
rol edi, 5
mov ebx, edx
jmp 0x508dc2
mov esi, dword [esi]
sub edx, ebx
neg ebx
mov edi, ecx
not edi
xor edi, 0x12a519
mov ecx, edx
mov ecx, 0x1320f2
neg edx
and ecx, 0x139858
sub edi, 0x13d53c
jmp 0x508b59
mul esi
and edi, 0x20f4f8
mov edi, ecx
add edx, edi
sub ecx, 0x21a47c
bswap ecx
xchg ebx, edi
or edx, ebx
shl edi, 0xd
dec edi
sub edi, edx
mov edi, ecx
sub edx, 0x23eab5
rol ecx, 0x1c
shl edi, 0x1b
nop
and ecx, edi
jmp 0x508fb3