Function at 0x49a7ef
Capabilities:
Encrypt data using chaskey

Disassembly:
add dword [esp + 8], esi
mov ecx, ebx
bswap ebx
mov edx, edi
sub edi, edx
inc edi
mov edi, 0xa547b2d9
sub ebx, edi
xchg edi, ebx
and edx, 0xa5484907
dec ebx
jmp 0x49ad07
push esi
mov ebx, edi
mov ebx, edx
and edi, 0xa54d25e7
inc ecx
sub edi, ebx
ror ecx, 0x15
sub ecx, 0xa54dfbd4
add ecx, ebx
mov edi, ecx
ror edi, 0x1e
mov ebx, ecx
and edx, 0xa54f0243
jmp 0x4993b5
mov dword [esp + 0x5c], 0
and ecx, edx
shl ebx, 9
mov ecx, edi
shl ecx, 0x16
bswap ebx
or ecx, edx
xor edx, ecx
mov edi, ebx
sub ebx, ecx
or edi, ebx
xchg ebx, ecx
or edi, ecx
jmp 0x499122
add esi, dword [esp + 0x28]
not ecx
sub ebx, edx
shr ebx, 0x17
and ebx, edx
neg ebx
mov edi, ecx
xor edx, edi
jmp 0x498961
pop esi
or ecx, edx
and edi, ebx
or edi, edx
xor ebx, edx
dec ecx
xor ebx, edx
add edi, ebx
bswap edi
mov ecx, edx
add edi, 0xa56bd358
sub ebx, 0xa56c07a1
xor edx, ebx
jmp 0x49a2be
ret
mov dword [esp + 0xa0], eax
sub ecx, edi
mov ebx, 0xa58f6aba
and edi, ebx
mov edx, ecx
or edi, ecx
shl edx, 0x12
sub edx, ebx
bswap edi
rol ebx, 0x19
xor edi, edx
inc ebx
jmp 0x49b0c0
mov esi, dword [esi]
and edi, edx
inc ecx
nop
or edx, edi
ror ecx, 0xb
xor ecx, ebx
not ebx
inc ecx
jmp 0x4999b8
add esi, dword [esp + 0xa0]
inc ecx
sub ecx, 0xa599c219
mov ecx, edi
and edi, ebx
sub ecx, edi
and edx, ebx
xchg edi, ecx
or ecx, edx
jmp 0x49b4a4
add esi, dword [esp + 0x28]
xor ecx, edx
or edi, edx
not edx
xor edx, ebx
sub edi, ecx
shl ebx, 0x12
ror edi, 0x1d
neg ebx
shl edx, 0x1e
add ebx, ecx
and ecx, edx
jmp 0x49a552
mov esi, dword [esp + 8]
xchg edi, edx
or edx, ecx
xor ecx, 0xa5b34f19
xchg ebx, edi
xchg edx, ebx
xchg ebx, edi
mov ecx, 0xa5b5c209
jmp 0x49a6c6
inc esi
sub ebx, 0xa5c07e07
or edx, ebx
add ecx, edx
add edx, 0xa5c11c40
or ebx, 0xa5c15082
bswap ebx
bswap ebx
ror edi, 0x17
xor edi, 0xa5c2256f
sub edx, 0xa5c25e01
jmp 0x49ae67
add esi, dword [esp + 0x28]
xchg ecx, edi
xchg ecx, ebx
xor edx, 0xa5de80f9
or ecx, edi
add edx, ebx
inc ecx
neg edx
shl edx, 0xd
and ebx, edi
and edx, ebx
xor ecx, edx
or edi, edx
sub ebx, edx
sub edi, 0xa5e59bab
xor ebx, edx
and ecx, edx
jmp 0x49b259
mov dword [esp + 0x28], 0
sub edx, edi
sub edx, ecx
xor edx, ebx
mov ecx, edx
xor edi, 0xa5fea4d4
and ebx, 0xa5fee446
and edx, edi
mov edx, edi
jmp 0x499ef5
mov esi, dword [esi]
rol edi, 0x12
and ecx, 0xa5ffc698
xor edx, ecx
add edi, edx
jmp 0x499724
add dword [esp + 8], 4
xor ecx, 0xa602a4fe
bswap edi
shr edx, 0x13
and ecx, edx
and ebx, edx
neg edx
sub ecx, edx
add ecx, edi
add ebx, 0xa6044eba
ror ebx, 0xf
jmp 0x4994ac
mov dword [esp + 8], esi
or ebx, edx
sub edx, ecx
or edx, 0xa60aff9b
mov edx, 0xa60b30f2
and edx, edi
sub edi, ebx
sub edi, ecx
not ecx
shl edx, 0x1d
or edx, 0xa60ca2e6
xor edx, ecx
xchg ecx, edi
bswap ecx
or ecx, ebx
and edx, 0xa60da418
jmp 0x49aa90
mov esi, dword [esi]
or edi, ecx
mov edi, 0xa6136bfd
xchg ebx, ecx
mov ecx, ebx
xchg ecx, ebx
mov ebx, edi
or edi, ecx
and edi, ebx
and edi, 0xa614d45f
jmp 0x4991db
mov dword [esp + 0x28], esi
mov edx, edi
xor ecx, 0xa6154e67
bswap edi
sub ecx, edx
mov edx, edi
mov ecx, edi
ror edx, 0x12
xor edx, edi
add ecx, edi
neg ecx
sub edi, edx
jmp 0x49ac0a
xor eax, eax
xor edx, edi
bswap ecx
and ebx, 0xa627af01
shr ebx, 0x1f
rol edx, 0xd
sub edi, ebx
neg edi
or ecx, ebx
mov ecx, edi
mov edx, ecx
xchg edi, edx
and edi, 0xa6298405
xchg ebx, edi
shl edx, 0x17
xchg edx, edi
jmp 0x499e59
mov dword [esp + 8], esi
and ecx, edx
sub ecx, edi
and edx, edi
not ebx
or edx, ebx
and edi, ecx
sub edi, edx
rol edi, 0x18
xchg edi, ebx
or edi, 0xa641772c
bswap ecx
xor ecx, edx
jmp 0x49a3c6
mov esi, dword [esp + 8]
ror ecx, 5
or ecx, ebx
not edi
sub ecx, edx
shl ebx, 0x1e
bswap edx
xor ecx, edi
and ebx, edx
sub ebx, ecx
or ecx, edx
sub ebx, edx
jmp 0x49aeb4
mov dword [esp + 0xd0], esi
mov ebx, 0xa648f57d
xor ebx, ecx
mov edi, ebx
and ebx, edx
and edi, ecx
and ecx, 0xa649f1ff
not edx
neg edi
and edx, ebx
xchg ebx, edi
sub edx, ebx
jmp 0x499d88
add esi, 0xc
mov edx, 0xa658bb26
bswap edi
or ecx, edx
ror ecx, 3
add ecx, 0xa6598910
not edi
mov edx, ecx
sub ebx, edi
mov edx, ebx
not edi
xchg ebx, edi
mov edx, ebx
or ebx, edi
jmp 0x49914a
mov esi, dword [esi]
nop
add ecx, edx
mov edi, ebx
or ebx, ecx
inc edx
add ebx, ecx
or ecx, 0xa68990d4
add ebx, edx
jmp 0x499c1a
mov esi, dword [esp + 0x28]
or edi, edx
shl ecx, 0x11
inc ebx
add edx, ecx
sub edx, 0xa6944538
add ebx, edi
add edi, 0xa69f11cc
jmp 0x49a6e7
mov esi, dword [esp + 0xa0]
neg ebx
add edx, ebx
xor edx, ebx
neg ecx
ror edx, 0x14
sub edx, 0xa6aaad81
and ebx, edx
shl ebx, 0xa
xor ecx, 0xa6ab57d0
sub ebx, edx
inc edi
mov edx, 0xa6abf087
xor ebx, ecx
xor edi, edx
jmp 0x49b598
jne 0x499e59
and edi, ecx
add edi, ecx
shl ecx, 8
bswap edx
xor edi, 0xa6b1ebd1
xor ecx, edi
or edx, 0xa6b25eed
ror edi, 0x18
inc ebx
not edx
mov ebx, edi
rol ecx, 0x14
sub edx, ebx
jmp 0x498a94
add esi, dword [esp + 0x28]
sub ebx, 0xa6f0a113
dec ecx
mov ecx, ebx
or ecx, edx
xor ecx, edx
jmp 0x49aed3
movzx esi, word [esi]
shl edi, 0xe
rol edi, 8
not edx
or ebx, 0xa7054c9b
ror ebx, 0x17
xor ecx, edx
mov edx, 0xa705e997
sub edi, ecx
xchg edx, edi
dec edx
and edi, 0xa706c5c4
and ecx, edi
add edi, ecx
jmp 0x49b2c2
mov esi, dword [esp + 0x5c]
dec edx
neg edx
or edx, 0xa709e357
add ebx, edi
xchg ecx, ebx
bswap edx
xchg edx, ecx
not ecx
inc edi
mov edi, ebx
dec edi
shr ecx, 0x10
xor edx, 0xa70bf7b2
sub ecx, 0xa70c2bff
inc ecx
jmp 0x498cd2
mov esi, dword [esi]
not ebx
add edi, 0xa7147c87
and edx, ecx
xchg ecx, ebx
and ebx, 0xa71520e3
xor ebx, edx
add ecx, ebx
xor ecx, edi
jmp 0x49b515
mov esi, dword [esi]
inc ebx
or edi, ebx
rol edx, 0x11
xchg edx, ebx
jmp 0x49944a
mov esi, 0x30
neg edx
sub ebx, edx
xor edx, ecx
mov ebx, 0xa72d27ea
sub ebx, edx
and ecx, edx
rol ecx, 0x10
jmp 0x499e78
add esi, 0x3c
or ecx, ebx
sub ebx, 0xa732cef8
mov ecx, edi
not ecx
ror ecx, 0xe
mov ecx, edi
add ecx, 0xa733cfef
xchg ecx, edi
jmp 0x499265
xor al, byte [esi]
and edi, edx
rol ebx, 6
sub edi, ebx
mov ebx, edx
mov ebx, 0xa739447e
xchg ecx, ebx
or edi, ecx
add edi, 0xa739ee1e
jmp 0x49a429
mov esi, dword fs:[esi]
xor edi, edx
mov edi, edx
xor edx, ebx
jmp 0x49a7ac
mov dword [esp + 8], 0
mov edi, 0xa740f2dc
sub ecx, edx
neg edx
xor edx, ecx
nop
and edi, edx
and edi, ecx
mov edx, edi
dec ebx
add edx, edi
jmp 0x4994d0
mov esi, dword [esp + 8]
dec ebx
sub edx, ebx
dec ecx
or edi, ebx
xchg ecx, ebx
shl edi, 0x16
sub edi, ebx
and ecx, 0xa752d29e
jmp 0x49a2a3
mov esi, dword [esi]
mov edi, ebx
or ecx, 0xa784ca88
mov edx, edi
or edx, ecx
neg edx
dec edi
sub ecx, ebx
rol edx, 0x11
jmp 0x498fef
cmp eax, dword [esp + 0xd0]
jmp 0x49aa32
mov esi, dword [esp + 0x28]
add ebx, edx
xor ebx, edi
or ebx, 0xa7c1cf08
sub edi, ecx
and ecx, edi
rol ecx, 0x19
add ecx, 0xa7c33147
ror ebx, 0xc
not ecx
and edx, 0xa7c3d63d
add ecx, 0xa7c40ab7
jmp 0x498916
rol eax, 8
xor edx, edi
xchg ebx, edi
mov edi, edx
or ebx, 0xa7ccb180
or edx, ebx
and ebx, ecx
shr edi, 0x19
and ebx, edi
add ebx, 0xa7cdbc6f
jmp 0x498f1b
inc dword [esp + 0xa0]
bswap edx
ror ebx, 0x12
sub edi, edx
neg edi
mov edx, ebx
and edx, ecx
or edi, edx
jmp 0x49af5b
mov dword [esp + 0x5c], esi
xchg ecx, ebx
inc edx
or ecx, 0xa7e64a12
sub ecx, 0xa7e680ed
sub edx, edi
and edi, 0xa7e6e826
xor edx, edi
sub ecx, ebx
or ecx, edi
xor edx, ebx
neg edi
bswap ecx
add ebx, edx
jmp 0x49afdc
mov esi, dword [esi]
neg ecx
rol edx, 0x12
bswap edx
mov ecx, ebx
mov ebx, 0xa8188e24
or edx, edi
not ecx
mov edx, edi
shr edx, 0xe
xor edi, ebx
sub edx, 0xa81cb8fa
jmp 0x499542
add dword [esp + 8], eax
and ecx, edi
mov edx, 0xa824bf12
inc edi
mov ebx, 0xa825243a
xchg edi, ebx
or ecx, 0xa8259a18
not ecx
and edx, ecx
dec edi
jmp 0x49aa6b
mov esi, dword [esi]
xchg edi, edx
sub edi, 0xa82fd082
xor ebx, ecx
or ebx, 0xa83047d2
and ecx, edi
not edx
bswap ebx
and ecx, edx
xchg edx, edi
jmp 0x49adbb
add esi, dword [esp + 8]
add ebx, ecx
mov edx, ecx
xor edx, ebx
add edi, 0xa832266d
rol ebx, 0x1e
xchg edi, ebx
mov edx, ebx
and ebx, ecx
or ecx, edx
jmp 0x499c79
add esi, 0xc
xor ebx, edi
sub edx, ecx
xchg edx, ecx
or ebx, edx
neg ebx
mov edx, 0xa852dc76
add edi, ebx
inc edi
sub edi, edx
xchg edi, ecx
xchg edx, ebx
or edx, ebx
not ebx
bswap edx
jmp 0x49a5ac
sub esp, 0x14c
ror ebx, 0x1e
add edx, edi
inc ecx
xor edx, 0xa85fdafc
xor ecx, 0xa8600c12
inc edx
mov edi, edx
add ecx, 0xa860b617
mov ebx, edi
and ebx, edi
sub ebx, ecx
jmp 0x49b1f6
mov dword [esp + 0x5c], esi
neg ecx
rol ebx, 0x14
and ebx, ecx
nop
add ebx, 0xa878f754
xchg ecx, ebx
not edx
shr ecx, 0x15
shr edx, 0x12
jmp 0x49a479
mov esi, dword [esi]
mov ecx, edi
xor edx, ecx
shl ebx, 1
nop
or ebx, ecx
and ecx, edi
xchg edi, ecx
sub ebx, ecx
shr edi, 1
or ecx, 0xa888f522
jmp 0x499285
mov esi, dword [esp + 0x5c]
inc edx
sub ecx, ebx
mov edx, ebx
or edx, ebx
and edi, ecx
bswap edx
rol edx, 0x11
add edi, 0xa8958807
shr edi, 0xd
sub edi, ebx
shl ecx, 0xe
and ebx, edx
mov edx, ebx
xor edi, 0xa896ce59
dec edi
neg ecx
jmp 0x49aadb
jne 0x49a479
add edi, ecx
ror ecx, 9
or edx, edi
and ebx, edi
xor edi, ecx
xor ebx, 0xa89f894f
mov ebx, edx
or ebx, 0xa8a15f28
sub ebx, 0xa8a19121
inc ebx
add ebx, 0xa8a1ff6b
or edx, edi
mov edx, ebx
xchg edi, ecx
mov ebx, edx
jmp 0x499180
mov esi, dword [esp + 8]
xor edi, ecx
mov edi, ebx
sub ecx, edi
shl ebx, 7
ror edi, 7
xor ecx, edx
shl ecx, 0xf
add edx, ecx
xchg edi, edx
or ebx, ecx
sub edx, ebx
jmp 0x498c8a
add dword [esp + 8], 0x78
xor edx, edi
sub edx, edi
or edx, edi
shr ecx, 2
xor edi, 0xa8a6381d
xor ecx, ebx
jmp 0x49977f
mov esi, dword [esi]
mov ecx, edi
and ecx, ebx
shr edi, 0x19
mov edx, ecx
add edx, 0xa8b2892e
xor ebx, edi
ror ecx, 0x1e
shl edi, 7
mov edx, ebx
or edx, 0xa8b39573
and edi, 0xa8b3c966
or edi, 0xa8b3fddf
and ecx, edi
jmp 0x498a32
mov esi, dword [esp + 0x28]
rol ebx, 0x1c
add ebx, edi
and ebx, edx
shr edi, 0x1b
add ecx, ebx
xchg ecx, ebx
or edi, ecx
sub edi, 0xa8ce0120
sub ecx, ebx
jmp 0x499def
add dword [esp + 8], 0x20
shl ecx, 8
bswap edi
xor ecx, 0xa8fb0742
inc ecx
xor ecx, edx
nop
dec edi
shr ebx, 4
jmp 0x498e87
add esi, dword [esp + 0x28]
mov ecx, edx
ror edx, 0x1c
rol ebx, 0x18
xor ecx, edx
sub edi, ebx
xor ecx, ebx
sub ecx, edi
or edx, 0xa913a248
nop
jmp 0x49a92f
cmp byte [esi], 0
jmp 0x4998a1
mov esi, dword [esi]
sub ebx, edx
bswap ecx
xchg edx, ebx
shr ecx, 4
rol ecx, 0xa
add ecx, ebx
ror edi, 0x14
bswap ebx
sub ebx, edi
ror edx, 0xb
jmp 0x498e46
add esp, 0x14c
and ecx, edi
not ecx
neg edi
rol ecx, 5
or ecx, edx
xor ebx, ecx
xor ebx, edi
add ecx, ebx
or edi, edx
jmp 0x498b45
add dword [esp + 0x5c], 4
xchg edx, edi
sub ebx, edx
dec ebx
shl edx, 0x1c
add edi, ecx
xor ecx, ebx
rol ebx, 0x10
or edx, 0xa942b02d
mov ebx, 0xa942e7e3
sub edx, edi
jmp 0x49a9d6
mov eax, 2
and ebx, edi
bswap ebx
mov ecx, 0xa95a4766
add edx, ebx
sub ebx, edi
neg edi
jmp 0x499823
sub dword [esp + 8], 8
sub edx, ebx
xor edi, ecx
sub ecx, 0xa971ce64
and ebx, edi
not ebx
xchg ebx, ecx
sub edx, ebx
xor edi, ebx
xor ebx, ecx
add edi, ecx
add ecx, ebx
mov ebx, edx
jmp 0x49a00a
mov dword [esp + 0xa0], 0
add ebx, edi
mov edx, ecx
mov edx, edi
and edi, edx
jmp 0x4989d6
mov dword [esp + 8], esi
add ecx, edx
dec edi
or edx, ebx
shl ecx, 2
and edx, edi
xor edx, 0xa9a3b4a2
xchg ecx, edx
sub ebx, edi
inc edi
ror ecx, 0x1e
neg edi
xor edi, ebx
sub edi, ebx
rol ecx, 0x19
shr edx, 0x1f
add edi, ebx
jmp 0x499b5b
mul esi
xchg edi, ecx
xchg ebx, edi
or ecx, ebx
rol ecx, 0xb
shl ecx, 8
not ecx
and ecx, ebx
jmp 0x49a662
mov eax, 4
add ebx, 0xa9f8729e
or edx, ecx
add ebx, edx
and ecx, edi
and edi, ebx
xchg ecx, edx
not ecx
jmp 0x499b12
add esi, 0x18
not ecx
sub ecx, ebx
inc edx
xor ebx, edx
and edx, edi
xor ebx, 0xaa07802a
or ebx, edi
add edi, ebx
mov ecx, ebx
and edx, 0xaa0848e3
and edx, ebx
jmp 0x49a9b6
mul esi
add ecx, ebx
xchg ecx, edx
xor edi, edx
mov ebx, edx
jmp 0x498c2a