Function at 0x46ebb7
Capabilities:
Encrypt data using chaskey

Disassembly:
mov edi, dword [edi]
or ecx, edx
add esi, edx
add ecx, esi
add ecx, edx
or edx, ecx
xor ebx, 0xaa1fa734
sub ecx, esi
or edx, ebx
xchg ebx, ecx
sub ebx, ecx
and esi, ecx
or edx, ecx
and esi, ecx
dec ecx
and ebx, ecx
and ecx, 0xaa2279c8
jmp 0x46d578
mov dword [esp + 0x38], edi
mov ecx, edx
or esi, edx
xor esi, edx
add ebx, ecx
shr ecx, 0x19
mov esi, edx
jmp 0x46e407
jne 0x46e407
xchg ecx, edx
dec ecx
or esi, edx
rol ecx, 0x1d
add esi, 0xaa2c06cd
sub ebx, edx
xchg esi, edx
sub edx, ebx
or ecx, edx
mov esi, edx
mov esi, ecx
jmp 0x46d2c8
mov edi, dword [edi]
not ebx
xchg esi, edx
sub ebx, esi
sub ebx, 0xaa519729
or edx, 0xaa51d01a
add esi, edx
or esi, 0xaa5240e9
jmp 0x46e76d
add dword [esp + 0x30], edi
inc ecx
neg edx
xor ecx, esi
shl ebx, 5
shl ebx, 0x15
xchg edx, ebx
rol ebx, 5
xchg esi, ebx
jmp 0x46daeb
mov edi, dword [esp + 0x38]
ror ecx, 0x15
add ebx, ecx
xchg esi, edx
xchg edx, ebx
sub edx, esi
and ebx, 0xaa6f7fe0
add ecx, ebx
and edx, ebx
mov ebx, esi
ror ebx, 0x14
jmp 0x46ce02
add dword [esp + 0x30], 0x78
or ecx, ebx
xor ebx, 0xaa77b510
neg esi
or edx, ecx
rol esi, 0x1f
xor edx, ebx
ror esi, 0x13
mov esi, edx
or edx, 0xaa7973ba
dec esi
or edx, ecx
nop
xchg esi, edx
or esi, edx
shr ecx, 0x15
jmp 0x46d71f
mov edi, dword [esp + 0x30]
or esi, ebx
add ecx, esi
sub edx, esi
xor ecx, edx
and edx, ecx
xor ecx, ebx
neg esi
and ecx, edx
bswap edx
neg edx
jmp 0x46c913
mov dword [esp + 0x38], 0
xchg esi, ebx
mov ecx, esi
or esi, ecx
not edx
sub edx, 0xaa93548c
shr ecx, 0x15
rol ecx, 0x1f
and ecx, ebx
sub ebx, 0xaa944a3f
and ebx, esi
jmp 0x46e9ba
mov edi, dword [edi]
rol ecx, 0xe
xchg ebx, ecx
add edx, ecx
jmp 0x46e33d
mov edi, dword [edi]
and esi, edx
sub ecx, ebx
not esi
and ebx, 0xaaa4a808
jmp 0x46e645
xor eax, eax
and ebx, 0xaaa7d454
add esi, ebx
xchg ebx, ecx
add esi, ecx
nop
or ebx, edx
mov edx, ebx
sub esi, ecx
sub edx, 0xaaacaaaf
or edx, ecx
jmp 0x46d078
add edi, dword [esp + 0xc0]
mov edx, ecx
add esi, ebx
sub edx, esi
inc esi
add edx, esi
sub edx, ecx
xor esi, ebx
sub esi, 0xaabeb516
sub esi, 0xaabef527
xor ebx, esi
sub edx, ecx
and ecx, esi
add edx, 0xaabfee29
jmp 0x46ced6
add edi, dword [esp + 0xc0]
and ebx, 0xaacaa241
mov ebx, esi
shr esi, 0x14
inc ebx
or esi, ebx
neg edx
jmp 0x46c1fe
mov edi, dword [edi]
inc ebx
nop
or edx, ebx
or esi, 0xaad2f0a6
xor esi, edx
mov ebx, ecx
xor esi, edx
xor ebx, esi
and esi, ebx
and edx, 0xaad4724e
or edx, esi
sub ecx, ebx
jmp 0x46e5e4
mov edi, dword [esp + 0x30]
mov edx, esi
and ecx, 0xaada7ea4
inc esi
inc edx
add ebx, edx
jmp 0x46e054
mul edi
shl ebx, 0xe
xor esi, 0xaae33c86
ror ebx, 2
mov ebx, edx
xor esi, 0xaae3f849
xchg edx, ebx
or ecx, edx
xchg esi, edx
xor edx, 0xaae5030d
jmp 0x46db6f
pop edi
sub ecx, edx
sub ecx, edx
or ebx, edx
and ecx, ebx
or edx, ebx
shl esi, 7
xor esi, 0xaaea29dc
xchg ecx, ebx
jmp 0x46df16
movzx edi, word [edi]
xchg ecx, esi
and edx, 0xaafd2aa9
shr ebx, 7
sub edx, ecx
bswap ecx
dec ecx
not ebx
sub ebx, edx
shl ebx, 1
add esi, 0xaaff2a0e
xchg edx, esi
xor esi, 0xaaffa71f
and ebx, ecx
nop
jmp 0x46cbaf
mov edi, dword [edi]
add ecx, 0xab06900f
sub ecx, edx
ror edx, 6
and ecx, esi
rol edx, 0xa
and esi, ebx
add esi, edx
xor ebx, edx
xchg ecx, edx
and ecx, edx
jmp 0x46ca70
mov edi, dword [edi]
add edx, ebx
add ebx, esi
sub esi, edx
add edx, 0xab14021d
xor ebx, ecx
sub ecx, esi
neg edx
bswap esi
and esi, 0xab154fca
rol edx, 0xd
xchg edx, ebx
xor ecx, edx
jmp 0x46e1e9
mov dword [esp + 0x30], edi
ror ecx, 0x1b
sub edx, ebx
and ecx, 0xab1949eb
xor edx, esi
inc esi
shl esi, 5
inc esi
sub ecx, 0xab1a98a2
jmp 0x46d6ad
mov dword [esp + 0xbc], 0
not esi
and esi, edx
add edx, 0xab1b69f3
or edx, 0xab1ba9fe
bswap ebx
and ecx, esi
sub edx, esi
jmp 0x46c87d
add esp, 0xf0
xor ebx, 0xab20ce8f
and ebx, 0xab210ea2
and ebx, 0xab214c40
shl ebx, 0x15
sub ecx, edx
mov ecx, esi
mov ecx, 0xab225824
sub ecx, 0xab22974a
mov esi, 0xab22d7cc
xchg ecx, edx
shl esi, 0x14
dec ebx
jmp 0x46d945
push edi
neg edx
and ecx, ebx
or esi, 0xab281b93
xchg ecx, ebx
add ecx, esi
mov ebx, edx
ror ebx, 0x16
not ebx
bswap ecx
shr ecx, 0x17
inc esi
ror esi, 0xd
jmp 0x46c99e
add edi, 0x18
shl ecx, 0xf
and ecx, ebx
xor ecx, edx
rol edx, 0x17
shl edx, 9
add ebx, edx
rol edx, 0x1a
xor ebx, ecx
add ebx, ecx
inc ecx
and esi, ecx
jmp 0x46c967
mov edi, dword [esp + 0xc0]
rol ecx, 0xd
xor ebx, esi
add edx, ecx
and ebx, 0xab35e2a5
add ecx, 0xab3621fb
xchg ebx, edx
xchg edx, ebx
or esi, ecx
or ebx, ecx
and ecx, 0xab376618
jmp 0x46c5c6
xor al, byte [edi]
add ecx, 0xab3ed863
add esi, ecx
mov esi, ebx
xor edx, 0xab3fa311
shr ebx, 6
add edx, ecx
dec ecx
and ecx, esi
jmp 0x46d097
rol eax, 8
xor ecx, esi
add esi, ecx
add edx, ecx
and ecx, edx
mov esi, ebx
and ebx, esi
mov esi, edx
rol ecx, 0xb
and esi, ebx
sub esi, edx
mov esi, ebx
xchg edx, ebx
sub ecx, 0xab43e2ea
and esi, ecx
neg ebx
add ebx, 0xab449e28
jmp 0x46d432
mov dword [esp + 0x30], 0
add esi, ecx
not ecx
and ebx, ecx
xchg esi, edx
mov ebx, edx
jmp 0x46da49
mov dword [esp + 0x30], edi
sub edx, esi
or ecx, edx
shl edx, 0xc
bswap esi
or ecx, 0xab5c6787
rol esi, 0x16
and edx, esi
add ebx, 0xab5d3b71
mov edx, ebx
sub edx, 0xab5ddab3
ror ecx, 0x18
and ebx, esi
xor ebx, ecx
xor edx, 0xab5ef421
jmp 0x46c713
mul edi
xchg edx, ecx
mov ecx, ebx
and edx, ecx
xor edx, ebx
or edx, esi
sub ecx, edx
and edx, esi
rol ebx, 0x18
or edx, ebx
and edx, ecx
or esi, edx
xor ebx, 0xab655bf7
add edx, ecx
jmp 0x46eb44
add dword [esp + 0x30], 4
xchg edx, ebx
sub ecx, 0xab7041d2
mov ebx, edx
or ebx, esi
add ebx, esi
sub esi, ebx
and ecx, edx
and esi, ebx
xor ebx, 0xab7237f8
ror ecx, 8
mov esi, 0xab72c7e8
shr ecx, 1
inc edx
sub edx, 0xab739f8e
jmp 0x46dac9
inc edi
xchg ecx, ebx
sub edx, esi
xor ebx, ecx
inc ebx
ror esi, 0x1d
mov ebx, esi
add esi, ebx
mov edx, ebx
shl esi, 0xf
dec esi
and ebx, esi
and esi, ebx
rol ebx, 2
xchg edx, ecx
add esi, ebx
jmp 0x46e934
add edi, dword [esp + 0xc0]
mov edx, 0xaba2bcf2
xor ebx, 0xaba2facb
sub esi, edx
xchg esi, edx
ror ebx, 0x17
dec edx
and ecx, esi
or ebx, esi
inc ebx
xchg edx, ebx
jmp 0x46eafd
mov eax, 4
and ebx, esi
xor ecx, ebx
neg edx
xor edx, esi
add ecx, 0xaba64b9d
shl ecx, 7
jmp 0x46ccf0
mov edi, dword [esp + 0x38]
add edx, ebx
mov ecx, ebx
ror ecx, 0x14
neg esi
and edx, ebx
add ebx, edx
xor ebx, esi
and esi, edx
dec ebx
inc ecx
jmp 0x46dcb2
mov edi, dword [esp + 0xc0]
or esi, 0xabc0120d
and ebx, esi
sub edx, ebx
inc ebx
jmp 0x46e93c
add edi, 0xc
sub esi, ecx
mov ecx, ebx
mov edx, ecx
inc edx
xchg ebx, edx
and edx, ecx
dec esi
add ecx, 0xabd7ae84
rol esi, 0x1f
jmp 0x46ea60
mov edi, dword [esp + 0xbc]
neg ecx
xor edx, ebx
mov edx, ebx
dec ecx
xchg ecx, esi
jmp 0x46d225
ret
add dword [esp + 0x38], 4
and ebx, edx
and edx, ebx
and edx, ebx
or ecx, esi
xchg ebx, ecx
sub esi, 0xabf4d9c7
add ecx, edx
xor esi, 0xabf5499e
sub ebx, edx
add ecx, ebx
or ecx, edx
xor esi, ebx
jmp 0x46c698
mov dword [esp + 0x34], edi
ror ebx, 1
mov edx, ecx
xchg ecx, edx
ror esi, 0x1b
xor esi, edx
not esi
add esi, 0xabf8c288
sub esi, 0xabf8fbb5
rol ecx, 1
jmp 0x46e35b
mov edi, dword [esp + 0x30]
xor ecx, 0xabfe43ee
xor ebx, edx
or ecx, 0xabfec286
xchg esi, ecx
or edx, ecx
add edx, ecx
and ebx, ecx
jmp 0x46c1d0
add dword [esp + 0x30], 0x20
mov ecx, ebx
xor ecx, edx
xor edx, esi
shl edx, 0xe
mov edx, 0xac00cb6a
sub ecx, esi
and esi, 0xac014b14
add esi, ecx
and edx, 0xac01bbc3
sub edx, esi
mov edx, esi
add ecx, esi
and ecx, edx
jmp 0x46e2db
add dword [esp + 0x30], eax
xor edx, 0xac071640
rol edx, 1
add esi, edx
mov ecx, 0xac07be72
mov ecx, edx
or edx, ebx
bswap edx
rol ecx, 0x11
mov edx, esi
shl ebx, 9
and ebx, esi
mov edx, 0xac098cb9
mov edx, ecx
jmp 0x46cb43
add edi, 0x3c
xor esi, ecx
sub esi, edx
or ecx, edx
xchg ecx, esi
and ecx, edx
shl ebx, 0xf
mov esi, ebx
jmp 0x46e2b0
add edi, dword [esp + 0xbc]
or ebx, esi
sub ecx, esi
add edx, esi
inc ebx
and ebx, esi
or edx, ecx
or ebx, ecx
mov esi, ebx
sub ecx, esi
jmp 0x46d59e
mov edi, dword [esp + 0xc0]
xor ecx, 0xac23e774
or ebx, ecx
shl ecx, 0x14
shr esi, 0x18
inc edx
sub ecx, 0xac252c09
and edx, ebx
jmp 0x46dbc0
cmp eax, dword [esp + 0x34]
jmp 0x46c274
mov edi, dword [edi]
add ebx, ecx
inc edx
mov edx, esi
or ecx, edx
or edx, 0xac5fa1ac
xchg ecx, esi
mov edx, esi
jmp 0x46c9dc
add edi, dword [esp + 0xc0]
not edx
or ecx, ebx
or esi, ebx
not esi
and esi, 0xac7a9424
add esi, edx
neg ecx
ror esi, 0x16
xchg edx, esi
and ebx, 0xac7bbd49
add ecx, ebx
shr ecx, 0x1b
sub esi, 0xac7c658e
jmp 0x46cf3b
mov edi, dword [edi]
rol ecx, 0x12
and esi, ecx
xchg ecx, edx
add edx, ecx
mov esi, ecx
mov ecx, edx
add edx, ecx
mov ecx, edx
jmp 0x46d1d2
mov edi, dword [esp + 0x30]
mov ebx, edx
or ebx, edx
and ebx, ecx
and ecx, esi
xchg edx, ebx
mov ecx, edx
mov ebx, 0xac8aa981
xchg esi, ecx
dec esi
sub ecx, esi
jmp 0x46cd59
add edi, dword [esp + 0xc0]
and edx, 0xac908c94
sub ebx, ecx
or ebx, ecx
add ecx, esi
xchg edx, ecx
or esi, ecx
neg edx
jmp 0x46ce50
mov edi, 0x30
mov esi, edx
xor ecx, esi
and ebx, ecx
or edx, ebx
xchg edx, esi
mov edx, ecx
or edx, ebx
or ebx, esi
sub edx, ecx
jmp 0x46e8f0
mov eax, 2
and edx, ecx
xor esi, ecx
sub esi, ecx
add ebx, edx
xor ebx, esi
xchg ecx, edx
rol ecx, 0x18
sub ecx, esi
xchg esi, ebx
and ecx, 0xac97ff9f
ror ecx, 7
jmp 0x46d8e0
inc dword [esp + 0xbc]
xor esi, edx
xchg ebx, esi
and esi, edx
xor edx, esi
sub edx, ebx
sub esi, ebx
xor ebx, 0xac9e961d
xor ebx, esi
mov ebx, 0xac9f08fe
jmp 0x46da0c
sub dword [esp + 0x30], 8
xchg esi, ecx
not ecx
sub ebx, ecx
and ebx, edx
shl esi, 0x13
mov ecx, esi
jmp 0x46c813
jne 0x46d078
inc edx
add esi, edx
dec ebx
bswap edx
xor edx, 0xaca79bef
add edx, ebx
or edx, ecx
mov esi, edx
or edx, esi
shr ebx, 0x11
mov ebx, 0xaca8f922
and esi, ecx
add ebx, edx
xor esi, edx
mov ebx, ecx
and ecx, 0xacaa0a4e
jmp 0x46cbfd
mov edi, dword [edi]
xchg edx, ebx
or esi, ebx
and ecx, 0xacbc81ec
xor esi, ebx
mov esi, edx
sub esi, ecx
jmp 0x46ea83
mov dword [esp + 0xc0], edi
sub ebx, edx
or edx, ecx
dec ecx
add esi, 0xacc2ea40
xchg ecx, ebx
shl ecx, 0x10
sub ebx, ecx
sub ecx, esi
shr edx, 0x1c
and ebx, ecx
shr ebx, 0x18
not edx
ror ebx, 5
and esi, ebx
mov edx, 0xacc66fc4
jmp 0x46dd12
mov dword [esp + 0x30], edi
sub edx, ecx
sub edx, ebx
mov esi, edx
or edx, esi
neg esi
ror ebx, 9
mov ecx, esi
xchg esi, ebx
jmp 0x46cfe8
mov edi, dword fs:[edi]
add esi, edx
or ebx, ecx
neg edx
xor edx, ecx
xor edx, ecx
sub edx, 0xacf41c28
or esi, ebx
shr esi, 0xc
jmp 0x46d85f
cmp byte [edi], 0
jmp 0x46e4a9
add edi, dword [esp + 0x30]
sub edx, esi
and ecx, edx
and ecx, esi
sub ecx, 0xacf8b7ce
xor ebx, esi
shr esi, 0x1d
jmp 0x46c4d5
mov dword [esp + 0xc0], 0
xor ecx, edx
sub ebx, ecx
add edx, ecx
shl ecx, 2
mov esi, ecx
shr edx, 0x10
mov edx, esi
sub ebx, 0xad02d222
neg edx
xor ebx, esi
not edx
and edx, ecx
jmp 0x46d119
mov edi, dword [edi]
and ebx, ecx
inc esi
xchg esi, ecx
mov ebx, ecx
or ebx, edx
xor ecx, ebx
shl esi, 0xb
xor ecx, 0xad0d835b
or edx, 0xad0dbcce
and ecx, ebx
jmp 0x46ebca
mov edi, dword [edi]
sub ecx, edx
sub ecx, ebx
and esi, ecx
bswap esi
shr ecx, 0x11
ror esi, 0xf
xor ecx, ebx
inc edx
xchg ecx, ebx
not ecx
add ecx, ebx
neg ebx
ror esi, 0xe
jmp 0x46cfa7
mov dword [esp + 0x38], edi
add edx, 0xad187b11
neg ebx
bswap edx
xor esi, edx
ror esi, 8
rol ebx, 8
xchg ebx, edx
not ecx
xchg esi, ecx
and edx, ebx
not ebx
xchg ecx, esi
add esi, ecx
and esi, ebx
jmp 0x46e394
mov dword [esp + 0xbc], eax
mov edx, 0xad1e0b3f
or ebx, 0xad1e4ade
or esi, ecx
inc esi
xchg edx, ecx
and ebx, edx
jmp 0x46e447
sub esp, 0xf0
or ecx, ebx
or ebx, edx
neg esi
and ebx, ecx
jmp 0x46ce74
add edi, 0xc
ror esi, 5
neg ecx
or ecx, edx
inc ecx
and ecx, edx
and esi, ebx
rol edx, 0x10
xor ecx, ebx
neg edx
or ecx, esi
dec edx
mov ecx, esi
xchg edx, esi
sub ecx, edx
jmp 0x46cae4