Function at 0x49515b
Capabilities:
Encrypt data using chaskey

Disassembly:
mov esi, dword [esp + 0x58]
xor edx, 0x85b201e3
sub edx, edi
xor edx, ebx
xor edi, edx
xor edi, ebx
inc edx
mov edi, ebx
xor ebx, edx
mov edx, edi
add ecx, edx
and edi, ebx
shl ecx, 4
jmp 0x495d60
mov dword [esp + 8], eax
or ebx, 0x85b8e705
mov edi, edx
and edi, 0x85b9848b
add ebx, 0x85b9d674
bswap edx
xchg ecx, ebx
and edi, ecx
or edi, ebx
mov ecx, 0x85bb74c4
or edx, ecx
xor ecx, edx
jmp 0x4962e1
mov dword [esp + 8], 0
inc ebx
or edi, 0x85bcc837
sub edi, 0x85bd1ddc
shl ebx, 7
xor ebx, ecx
xor ecx, ebx
shl ecx, 2
neg ecx
mov edi, ebx
shr edi, 0x17
shr ecx, 8
sub edx, ecx
xchg ebx, edx
shr ebx, 1
xor ecx, edi
sub edx, ecx
jmp 0x496e08
add dword [esp + 0x58], 4
dec edx
sub ecx, edx
sub edi, ecx
xchg ebx, edi
and edi, edx
mov ebx, ecx
ror edi, 8
sub edi, ebx
inc edx
jmp 0x4943c9
mul esi
mov ebx, edi
ror edi, 0x10
or edx, ecx
xor ebx, ecx
not ecx
sub ecx, 0x85cf7cb3
and ecx, edx
or ecx, 0x85d01dad
jmp 0x49440e
add esi, dword [esp + 0x88]
xor ecx, edi
and ebx, edx
rol edx, 4
xchg ecx, edi
shl edi, 0x18
add ecx, edi
mov ecx, 0x85f5cb37
ror edx, 0x1b
not edi
jmp 0x496844
mov dword [esp + 0x58], esi
sub ecx, edx
xchg edx, ebx
shr edx, 0xa
sub edi, 0x86112508
mov edx, edi
xchg ebx, edi
xchg edx, ebx
shr edx, 0x11
jmp 0x4951ff
mov esi, dword [esp + 0x88]
xor ebx, edx
or ecx, ebx
dec ecx
sub ecx, edi
mov ebx, 0x8634fe43
and ecx, 0x863553d8
and ebx, 0x8635a29e
add ecx, edi
inc edx
xchg edx, ebx
jmp 0x495320
add esi, dword [esp + 0x88]
rol ebx, 0x1a
sub edx, ebx
xchg edi, ebx
dec ebx
xchg edx, edi
and edi, ebx
nop
jmp 0x4960eb
mov esi, dword [esi]
dec edx
sub ecx, ebx
xor edi, ecx
xor edx, ecx
sub ecx, edi
and edi, ebx
sub ebx, edx
bswap edx
add edx, edi
jmp 0x496b6d
add dword [esp + 0x6c], 4
shl edx, 1
neg edx
mov ebx, 0x865dbd58
and edi, edx
add ebx, 0x865e5e91
mov ecx, edx
and ebx, ecx
or ecx, edi
add ebx, 0x865fa64a
bswap ecx
xchg edi, ecx
sub edi, edx
not edx
jmp 0x496960
mov esi, dword [esp + 0x58]
rol edi, 9
add ebx, edx
xor ecx, edi
xchg edx, ecx
and ecx, edi
and ecx, ebx
inc ebx
add ebx, edx
sub ecx, 0x868992dd
mov edi, 0x8689e631
mov edx, edi
add ebx, edi
xor ecx, 0x868ad763
jmp 0x494f30
mul esi
mov ecx, edx
rol edx, 4
inc ebx
shr edx, 0x1a
mov edi, 0x869a6642
not ebx
or ebx, ecx
sub ebx, edx
sub edx, ebx
not ecx
and ebx, 0x869c56e6
jmp 0x494d95
add dword [esp + 0x58], eax
xor ebx, edx
mov ebx, edx
and ebx, 0x869d6103
neg edi
or ebx, ecx
sub edi, 0x869e5095
mov ebx, edx
and ecx, 0x869efe99
xchg ebx, edx
add edx, ebx
mov edx, edi
rol edx, 0x13
add edx, ecx
mov edx, edi
add edx, 0x86a12d5f
jmp 0x494cb7
mov esi, dword [esi]
add edi, ecx
shl edi, 0x1a
xchg ebx, ecx
add edi, edx
or edx, 0x86c2d405
mov edx, 0x86c3281d
nop
jmp 0x496a91
pop esi
xchg edi, ebx
mov edi, ebx
shl ecx, 0x1c
and edx, 0x86c7e0fe
mov ecx, edi
xchg edi, ecx
not ebx
jmp 0x496e2c
mov esi, dword [esi]
and ebx, ecx
mov edx, 0x86dc33e7
dec edx
mov ebx, edi
xchg ebx, edi
or ecx, edx
xor edx, edi
bswap ebx
add ecx, edx
rol edi, 0x17
mov edx, ebx
ror ebx, 0xc
jmp 0x495922
add dword [esp + 0x58], 0x78
mov edx, ecx
or ebx, edx
or ebx, 0x86e8b45b
sub edi, 0x86e90863
ror edi, 0xe
mov ecx, edx
dec ebx
xchg edx, ebx
and edx, ecx
jmp 0x496037
mov esi, dword [esi]
inc ebx
or edi, edx
and edi, 0x86ebabbf
or ebx, 0x86ebfab3
shr edi, 0xb
sub ebx, edi
or edx, ebx
mov ebx, edi
jmp 0x496055
push esi
and ecx, 0x86f2b6f9
mov ebx, ecx
inc edi
and edx, ecx
add ebx, edx
or edx, edi
sub edx, ecx
not ebx
jmp 0x496f3d
sub esp, 0x94
neg edi
xchg ebx, edi
sub ecx, ebx
xor edi, edx
xor ebx, edx
add ebx, edi
mov edi, ecx
add ebx, ecx
or ecx, edx
neg edx
xor edi, 0x86fb42e5
and edi, edx
jmp 0x49443f
mov esi, dword [esi]
not ebx
and edx, ebx
not edx
not edi
or edx, edi
or edi, ecx
and edi, ecx
shr ebx, 0xb
and edi, edx
xchg edi, ecx
xchg edi, edx
xor ebx, 0x86ff7a35
mov ecx, ebx
jmp 0x496baf
mov dword [esp + 0x58], 0
rol edx, 8
xor edi, edx
add ebx, edx
xchg ecx, ebx
sub edi, ebx
ror edi, 0x1c
add ebx, edi
jmp 0x495e03
mov esi, dword [esp + 0x6c]
not edi
or edi, 0x8706da50
xor ecx, edx
sub ecx, edi
add edx, 0x8707d616
jmp 0x495448
inc esi
bswap ebx
and ebx, ecx
mov edx, ecx
or ecx, 0x8717d480
or ebx, edi
xor edx, ecx
or ecx, edi
dec ebx
sub ecx, 0x87197302
xor edx, edi
nop
dec ecx
neg ecx
jmp 0x4954db
add esi, 0x3c
and edi, ecx
sub ebx, edx
ror ebx, 0x17
mov ebx, edx
xchg edx, ecx
add ebx, ecx
mov ebx, 0x87223b28
or ecx, edx
jmp 0x49630c
mov esi, dword [esi]
shl ebx, 0x15
mov edx, ebx
add ebx, edx
mov ebx, 0x87269499
bswap edi
or edi, edx
jmp 0x4949ae
mov esi, dword [esp + 0x88]
sub ebx, edi
add ebx, edi
sub edx, ebx
mov ebx, 0x8736b8e8
shr ecx, 1
neg ebx
and ebx, 0x8738a4f1
xor ecx, ebx
and edx, 0x8739c2d3
or edi, ebx
jmp 0x4958a0
add esi, dword [esp + 8]
and ecx, edx
xor edx, ebx
neg ecx
bswap ebx
ror edx, 0x12
inc edi
jmp 0x495d13
mov esi, dword [esi]
mov edi, ecx
xor edi, ebx
add edx, 0x874b4589
add ebx, edi
and ecx, 0x874be3d5
add ebx, edx
sub edi, edx
xor ebx, edx
xor edx, ebx
jmp 0x496236
cmp byte [esi], 0
jmp 0x49569d
mov dword [esp + 0x88], 0
xchg edx, ebx
not edi
xor ebx, ecx
xor ebx, ecx
xchg edx, ecx
xchg edx, ecx
add edx, ebx
sub ecx, ebx
xor edx, ecx
jmp 0x4951df
jne 0x496b08
xor edi, ecx
and edi, ebx
sub ecx, edi
add ecx, edi
inc ebx
mov edi, ecx
add ebx, edi
add ecx, edx
xchg ecx, edi
xchg ebx, edi
xchg ebx, ecx
mov ecx, edi
xchg edx, ecx
jmp 0x494f72
mov esi, dword [esp + 8]
and edx, ebx
neg ebx
sub ebx, edi
xchg edi, ecx
not ebx
add ebx, edi
or edx, 0x8785e7c7
xchg edi, ebx
shl edx, 0x1f
xor edi, 0x8786da40
xchg edi, ebx
sub ecx, edx
jmp 0x4944e1
rol eax, 8
mov ebx, ecx
rol ecx, 6
dec ecx
sub ebx, edi
mov ebx, edx
bswap edi
jmp 0x4952c4
movzx esi, word [esi]
ror ebx, 0x10
not edx
xchg edi, edx
add ecx, 0x87956d69
ror edi, 0x13
or ebx, edx
not edx
sub ecx, edx
sub ebx, ecx
jmp 0x494d70
add dword [esp + 0x58], esi
mov edi, ecx
or edi, edx
add ebx, edi
xor ecx, edx
xor ecx, edi
inc edi
sub ecx, 0x87ab8196
not ebx
and edx, ecx
sub ecx, edi
jmp 0x496ab7
mov esi, dword [esi]
sub ebx, edx
sub edx, 0x87b66d36
or edx, 0x87b6bffd
or ebx, ecx
inc ecx
xchg edi, edx
xor ebx, ecx
xchg edx, ebx
jmp 0x496c83
mov eax, 4
ror edx, 0x1e
xor ecx, ebx
sub ecx, 0x8820be2a
inc edx
mov edx, edi
jmp 0x4957bb
mov esi, dword [esi]
rol ebx, 0x15
dec edi
xchg ecx, edi
or edx, edi
or ecx, 0x882c7a5d
rol edx, 3
not edi
not edi
shr ecx, 0xd
xor ebx, ecx
add ebx, 0x882e75b0
or edx, 0x882ec6dd
sub ecx, ebx
jmp 0x49468d
mov dword [esp + 0x58], esi
inc ecx
xchg ecx, edx
xchg ecx, edx
xchg ebx, edi
jmp 0x4953da
mov dword [esp + 0x28], esi
xchg edi, edx
ror edi, 0xb
not edx
and edi, ebx
mov ecx, edi
or ebx, edi
mov ecx, edx
add edx, edi
and ebx, 0x883ac180
mov ecx, 0x883b10e2
and ecx, edi
jmp 0x4963d0
add esi, dword [esp + 0x58]
inc ebx
sub ebx, ecx
xor ebx, edx
and edx, 0x8864ffa2
rol ebx, 0x11
and edx, edi
jmp 0x496425
mov esi, dword [esp + 0x58]
mov ebx, edi
shl ebx, 0x16
add edi, edx
add edx, 0x886b84ca
sub edi, ebx
add ebx, edi
jmp 0x495358
mov esi, dword [esp + 0x88]
xor edx, ebx
sub ecx, edx
xor ebx, edx
add ecx, 0x88713278
xor ebx, edx
bswap ebx
sub ebx, edx
jmp 0x495fb2
mov dword [esp + 0x88], esi
xor edx, edi
dec edi
bswap ebx
jmp 0x494961
mov dword [esp + 0x6c], esi
or edi, edx
sub ecx, 0x887ff70f
add edi, edx
shl ebx, 0x1a
nop
dec edx
add edx, edi
add ebx, edi
ror edi, 9
ror edi, 8
and ecx, edi
or ebx, edi
and ebx, 0x88837b13
nop
jmp 0x4967d4
mov esi, dword [esp + 0x58]
rol edi, 0x1e
or edi, ebx
neg edx
and edi, edx
inc edi
or edx, ecx
dec ecx
rol ebx, 6
or ecx, 0x8887165d
and edx, ecx
xor ebx, edx
or edx, ebx
jmp 0x4949c7
jne 0x4967d4
shl ebx, 0x18
xchg edi, ebx
add edx, ebx
shr ebx, 8
add edi, 0x888d1315
and ebx, edi
shl edi, 7
xor ebx, 0x888e0236
not edi
add edx, ebx
dec edi
xchg edi, edx
inc edx
jmp 0x49447b
ret
add esi, dword [esp + 0x88]
or edx, 0x889fd366
and edi, 0x88a0251c
xchg ecx, edi
and ecx, 0x88a0c6c2
sub edi, edx
mov ecx, edi
sub ebx, edx
xchg ecx, edi
xor ecx, edx
sub edx, ecx
shr ebx, 8
sub edi, edx
inc ecx
rol edi, 8
inc ecx
jmp 0x495128
sub dword [esp + 0x58], 8
and ecx, edi
or ebx, 0x88b10563
or edi, edx
add ecx, 0x88b1a5ca
and ebx, 0x88b1f778
mov edi, 0x88b24657
and ebx, edi
nop
jmp 0x49611b
mov esi, dword [esi]
ror edx, 0x1b
sub ebx, 0x88b3aa77
bswap edi
sub ecx, ebx
sub edx, edi
ror ebx, 0x19
mov ebx, ecx
inc edi
jmp 0x496d93
mov esi, 0x30
and ebx, edi
xor edx, ecx
xchg edx, ecx
shr ecx, 0x15
xchg edi, edx
sub edx, edi
xchg edi, ebx
and ecx, 0x88ca5624
bswap ecx
xor edi, 0x88cafad2
jmp 0x4966aa
mov esi, dword [esi]
not edx
sub edx, ecx
sub edi, ebx
xchg ebx, edx
and ebx, 0x88d16245
or ebx, edi
not edi
xchg ecx, ebx
jmp 0x495d8f
mov eax, 2
not ebx
mov edx, 0x88ecdf74
dec ecx
sub edx, ecx
mov edi, ebx
bswap edi
rol edx, 0xb
mov ecx, 0x88eed442
jmp 0x49570d
add esp, 0x94
or ecx, 0x88f7ff4d
not ebx
xor ebx, edi
mov ecx, edx
xchg edx, ecx
sub edx, ebx
and edi, 0x88f9e86e
xchg ecx, edi
xor ecx, edx
and edi, 0x88fadae4
sub edx, 0x88fb2ef4
jmp 0x4961e8
mov esi, dword fs:[esi]
not edx
shl edx, 0xc
sub ebx, edi
sub edi, ecx
add edx, ebx
jmp 0x4969b9
inc dword [esp + 8]
xor ebx, ecx
xor edx, edi
sub edx, 0x8923c37d
sub ebx, 0x89241470
xchg edi, edx
rol ecx, 1
mov ecx, 0x89250b35
neg edx
xor ecx, 0x8925baf4
mov ebx, 0x89260d08
or edx, 0x89265fc2
or edi, ebx
jmp 0x494b07
mov dword [esp + 0x6c], esi
add edi, ebx
or ebx, 0x892cc785
and edx, ebx
not ecx
shl edi, 0xf
or edi, ebx
and ebx, edi
sub edx, 0x892eaabd
mov edx, ebx
or ecx, 0x892f564c
xor ebx, ecx
xor ecx, edx
xchg edx, ebx
and edx, 0x89309989
or ebx, 0x8930e8d6
jmp 0x49654a
mov esi, dword [esp + 0x6c]
mov ecx, 0x8947f787
xor edx, edi
xor ecx, edi
shr ebx, 0xc
sub edi, 0x89494774
jmp 0x49549b
add esi, 0xc
xchg ebx, edi
mov ebx, ecx
inc ebx
mov edi, edx
or ebx, 0x894f9ee5
xchg ebx, edx
shl edx, 7
sub edx, 0x89509e6e
or ecx, 0x8950f111
xor ebx, edi
or edx, ebx
xchg ecx, edx
and ecx, edi
sub edi, ecx
jmp 0x495182
add esi, dword [esp + 0x88]
mov edi, edx
xor ebx, edx
or ecx, edi
bswap ebx
mov edx, edi
mov ebx, 0x89649a15
mov edi, edx
inc ecx
add edi, ecx
sub ebx, ecx
and edx, edi
sub ebx, edx
jmp 0x4965c8
add dword [esp + 0x58], 0x20
shr edi, 5
sub ebx, ecx
xor ebx, edi
shr ecx, 0x12
sub edx, 0x896826d8
sub edx, edi
jmp 0x495ff8
xor al, byte [esi]
xor edi, 0x896c9f9e
sub ecx, edx
xor ecx, 0x896d3c65
add ebx, edi
and edi, edx
mov ecx, edx
rol ebx, 0x1c
add ecx, edi
mov ebx, ecx
inc edi
jmp 0x495762
add esi, dword [esp + 0x88]
add ecx, 0x897627a8
bswap ebx
mov edi, ecx
bswap edx
not edx
xor edi, ecx
shl edi, 5
xor ecx, edx
or ecx, edi
sub edx, edi
inc ecx
jmp 0x4947cd
add esi, 0xc
xchg ebx, edx
mov ebx, ecx
xchg ebx, ecx
dec edx
xor edx, ebx
add ebx, edx
rol ecx, 0x1f
xor ecx, 0x897e5d88
and ebx, ecx
or edi, ecx
mov edx, ebx
jmp 0x496d28
add esi, 0x18
add edx, ecx
add ecx, ebx
add ebx, ecx
add ebx, 0x8990019b
xchg ecx, edx
shr edx, 0x19
or edi, ecx
neg edx
add ebx, edi
jmp 0x4950d7
mov esi, dword [esi]
rol edi, 0xd
shr edi, 9
xor ebx, 0x899d911b
xchg edx, edi
mov ebx, ecx
sub ecx, edx
or ecx, ebx
sub ebx, ecx
jmp 0x495041
mov dword [esp + 0x58], esi
or ecx, edx
inc edi
jmp 0x4950b0
mov dword [esp + 0x6c], 0
ror edi, 5
xor edx, edi
sub edi, edx
xor edx, ebx
add edi, edx
ror edi, 5
xor ebx, 0x89b2fbe7
jmp 0x495560
cmp eax, dword [esp + 0x28]
jmp 0x496163
xor eax, eax
and edi, ebx
xor ebx, 0x89cd05fd
sub edx, edi
xor ecx, ebx
mov edi, ebx
sub edx, ebx
sub ecx, 0x89ce9bd9
or ecx, edi
and ecx, edi
nop
add edx, ebx
or ecx, 0x89d02421
jmp 0x496b08