Function at 0x46dd06
Capabilities:
Encrypt data using chaskey

Disassembly:
mov edx, dword fs:[edx]
sub edi, ebx
add edi, ecx
xchg ebx, ecx
add esi, ebx
xor edi, esi
neg esi
add ebx, edi
xchg esi, ecx
bswap edi
mov ecx, edi
jmp 0x46cfa0
mov edx, dword [edx]
xchg edi, ebx
shr ecx, 8
xchg edi, ecx
rol ebx, 0x17
xor ebx, esi
and ecx, 0xbc0c7cd8
jmp 0x46b392
add dword [esp + 0x84], 4
xor esi, ebx
bswap esi
or esi, ecx
add esi, edi
neg ebx
and esi, 0xbc1a190c
shr edi, 0xe
and esi, edi
xor ebx, 0xbc1a6966
ror ebx, 0x1e
jmp 0x46bdb4
add edx, 0x3c
xor ecx, esi
and esi, ebx
sub edi, ecx
dec esi
mov esi, 0xbc1b11e4
or ecx, ebx
sub ecx, ebx
or ebx, 0xbc1b62f8
and edi, 0xbc1b7f8e
mov ebx, 0xbc1b98c8
jmp 0x46d25c
add dword [esp + 0xec], 0x20
and edi, 0xbc1bbd3a
mov ebx, 0xbc1bd64e
xor edi, 0xbc1bf320
mov ebx, edi
shl esi, 7
add esi, 0xbc1c404a
or ecx, ebx
inc esi
jmp 0x46c0d3
add edx, 0xc
and edi, 0xbc1fa2d2
sub edi, ecx
jmp 0x46dcd4
inc dword [esp + 0x10]
and esi, ebx
ror edi, 0x1b
jmp 0x46b2bf
add esp, 0x148
or edi, esi
or ebx, ecx
jmp 0x46cf2e
xor eax, eax
xor ecx, esi
sub ecx, esi
xchg ebx, esi
add esi, ecx
sub esi, ecx
mov edi, ecx
xchg edi, ebx
sub ecx, esi
jmp 0x46c0c7
mov edx, dword [esp]
sub esi, edi
rol ebx, 2
shr ebx, 0x10
add esi, edi
mov ebx, ecx
or esi, ebx
shl ebx, 5
rol ebx, 0xa
jmp 0x46b9a0
mov dword [esp + 0xec], edx
xchg ecx, esi
or ecx, 0xbc424088
sub ecx, edi
xor ecx, ebx
bswap ecx
mov ebx, ecx
jmp 0x46b705
mov edx, dword [edx]
shl edi, 0xc
bswap ebx
xor edi, esi
mov edi, ecx
xor ebx, 0xbc50ccec
not esi
jmp 0x46b7d1
add dword [esp + 0xec], edx
ror esi, 4
and ecx, ebx
jmp 0x46b313
add edx, dword [esp]
mov esi, edi
mov edi, ecx
jmp 0x46c76d
inc edx
shr ecx, 0x19
dec ecx
xor esi, 0xbc5a7f8e
sub ecx, 0xbc5a9f20
shl ebx, 6
xchg esi, edi
mov ebx, ecx
or esi, ebx
mov esi, edi
add ecx, edi
jmp 0x46db86
pop edx
nop
xor esi, ecx
xchg ecx, esi
add esi, 0xbc5bb63e
or esi, 0xbc5bd264
mov esi, ebx
mov edi, 0xbc5c067a
sub esi, 0xbc5c2274
xchg edi, ecx
or edi, ebx
jmp 0x46cb5e
mov dword [esp + 0xec], edx
mov edi, ebx
add esi, ebx
sub ecx, 0xbc5fdd02
mov esi, ecx
shl esi, 8
mov ebx, ecx
xchg edi, ecx
add ebx, 0xbc60640c
jmp 0x46c7bf
mov dword [esp + 0x84], 0
or esi, 0xbc61067e
neg ecx
add esi, ebx
or ecx, ebx
mov ecx, esi
bswap esi
and ecx, ebx
xor edi, esi
jmp 0x46cc6f
mov edx, dword [edx]
xchg ecx, esi
sub esi, edi
xor ecx, ebx
mov ebx, 0xbc64b644
mov ebx, esi
add edi, ecx
inc ecx
mov esi, ebx
jmp 0x46bce1
add edx, dword [esp]
ror esi, 0x1e
add ecx, ebx
add edi, ebx
shr ecx, 0x1d
sub ebx, esi
mov ecx, edi
add edi, esi
shr esi, 0x13
add esi, edi
ror edi, 0xf
jmp 0x46c94b
add dword [esp + 0xec], 4
not edi
xor esi, edi
and esi, ecx
mov edi, 0xbc6f5a30
jmp 0x46dc3d
mov edx, dword [esp + 0x84]
xchg edi, esi
mov ebx, esi
mov ebx, 0xbc6fb966
mov ebx, esi
jmp 0x46d50a
mul edx
and edi, 0xbc70aa98
sub ecx, ebx
rol esi, 0x16
add esi, 0xbc70fc64
xor edi, ecx
nop
jmp 0x46cd6b
mov dword [esp + 0x10], eax
or esi, 0xbc782cec
dec ecx
xchg esi, ecx
add ebx, ecx
and ecx, 0xbc789ffa
xchg esi, ebx
xor esi, edi
sub edi, ebx
jmp 0x46d208
mov edx, dword [edx]
mov edi, 0xbc7d93ae
add ecx, esi
jmp 0x46b9cd
xor al, byte [edx]
xor esi, ebx
shr ebx, 2
jmp 0x46d8cd
mov edx, dword [esp + 0xec]
and ecx, 0xbc87c066
add ecx, 0xbc87dcf6
bswap esi
xor ecx, 0xbc881b52
jmp 0x46d2e0
mov edx, dword [esp + 0x10]
sub ecx, 0xbc8d7dae
or ebx, esi
mov ecx, 0xbc8db046
add esi, ecx
and ecx, 0xbc8de77e
and ecx, 0xbc8e0778
jmp 0x46d0b8
mov dword [esp], edx
shl ebx, 0xf
xor edi, ebx
xor ebx, ecx
neg esi
dec ecx
or esi, ebx
jmp 0x46dc60
add edx, dword [esp + 0xec]
or ecx, 0xbca256ec
or edi, ecx
sub ebx, edi
and edi, esi
xchg esi, edi
mov ebx, ecx
jmp 0x46b988
mov eax, 4
and ebx, edi
sub ecx, ebx
xchg ebx, ecx
or esi, 0xbca3bdec
xchg esi, ebx
mov ecx, 0xbca3f354
mov ebx, edi
mov ecx, 0xbca4273e
jmp 0x46d66f
mov dword [esp + 0x84], edx
sub ebx, esi
rol ebx, 8
sub ecx, esi
add edi, ecx
xor esi, ebx
sub esi, ecx
ror esi, 0xd
add esi, ebx
add ecx, esi
and ecx, esi
jmp 0x46cf04
mov edx, dword [edx]
xor esi, edi
sub ebx, esi
sub esi, edi
add ebx, 0xbcbb8686
rol edi, 0xe
and ecx, edi
bswap esi
or esi, ecx
jmp 0x46c87d
add dword [esp + 0xec], 0x78
sub ecx, esi
sub edi, esi
xor edi, ebx
and esi, edi
sub edi, ecx
xor ecx, edi
add edi, esi
or edi, esi
and esi, edi
inc edi
sub ecx, esi
rol edi, 0xe
jmp 0x46d218
mov dword [esp + 0x84], edx
xor edi, ebx
add ebx, edi
or ecx, 0xbcc09254
mov edi, ecx
mov ebx, ecx
xchg ecx, ebx
jmp 0x46b503
mov edx, dword [edx]
bswap ebx
xchg ebx, ecx
shl ecx, 7
rol ebx, 0x1e
and edi, ecx
add edi, ecx
add edi, ecx
ror esi, 0x1a
jmp 0x46ced7
mov dword [esp + 0xec], edx
rol ecx, 6
and ecx, 0xbcc932a2
mov esi, 0xbcc94ee8
ror ecx, 0x1e
xchg edi, ecx
or edi, ebx
shr ebx, 0x19
bswap esi
jmp 0x46db6e
mov edx, dword [esp + 0xec]
sub esi, edi
mov esi, ebx
add ecx, ebx
mov edi, 0xbccb3136
xor esi, ecx
ror esi, 0x1e
mov esi, ecx
xchg ecx, esi
xor esi, ecx
and esi, ebx
jmp 0x46d0e4
jne 0x46b503
bswap esi
xchg ebx, edi
bswap edi
xor ebx, edi
jmp 0x46bd9c
jne 0x46c0c7
add esi, ebx
mov esi, ecx
jmp 0x46bb1b
cmp eax, dword [esp + 0x30]
jmp 0x46ca31
add edx, dword [esp]
ror edi, 0x1d
add ebx, ecx
sub edi, 0xbce06b2c
and esi, ecx
mov esi, edi
or ecx, edi
rol ecx, 0x10
sub ebx, ecx
jmp 0x46daba
mov dword [esp], 0
sub esi, ebx
add edi, esi
xchg esi, ecx
xchg esi, edi
mov ebx, ecx
xchg esi, ecx
and ecx, esi
xchg esi, ecx
jmp 0x46d6fe
mov edx, dword [esp + 0xec]
inc esi
shr ebx, 0x1c
add ebx, esi
add ecx, ebx
mov edi, 0xbce611ea
sub ecx, ebx
jmp 0x46bc4a
add dword [esp + 0xec], eax
mov ebx, ecx
xor ebx, esi
mov ecx, ebx
mov ecx, edi
mov esi, ebx
add ecx, ebx
xchg edi, ebx
or ebx, esi
jmp 0x46c988
add edx, 0x18
dec ebx
or esi, edi
or ecx, esi
add edi, ecx
not edi
add ecx, edi
jmp 0x46d924
mov eax, 2
sub edi, ecx
inc ecx
add esi, ebx
sub esi, ecx
and esi, ecx
and ebx, esi
mov esi, ecx
inc esi
sub edi, ebx
ror esi, 0x11
jmp 0x46c1bb
ret
add edx, 0xc
and ebx, 0xbcfac040
shl esi, 0x1a
mov ecx, 0xbcfaf86c
dec ecx
add edi, ebx
shr edi, 3
jmp 0x46b19b
add edx, dword [esp]
or ecx, edi
or ecx, 0xbd02227e
ror ebx, 0x1e
rol ebx, 0x13
xor ebx, ecx
sub esi, edi
sub ebx, esi
add ecx, ebx
jmp 0x46c838
add edx, dword [esp]
and ebx, edi
dec esi
xor edi, ecx
xor ecx, ebx
and esi, ecx
xor edi, 0xbd0377e0
jmp 0x46b52e
mul edx
bswap ecx
add ebx, 0xbd03b732
xor ecx, edi
xchg ecx, ebx
add edi, ecx
add esi, edi
sub ecx, 0xbd043870
shr ebx, 0x16
shr esi, 0x14
xor esi, ecx
add ecx, esi
add ecx, edi
sub ecx, ebx
dec ecx
jmp 0x46bed1
mov edx, dword [edx]
sub ebx, esi
xchg ebx, edi
and ebx, edi
xchg ecx, esi
jmp 0x46d09d
sub dword [esp + 0xec], 8
not ebx
inc edi
jmp 0x46cd07
mov edx, dword [esp]
and ebx, esi
neg ebx
xchg esi, edi
xor ebx, ecx
xor esi, ecx
add ebx, 0xbd0ede6a
xor edi, ecx
inc ecx
and ebx, edi
mov esi, edi
rol ebx, 0x11
sub ecx, esi
jmp 0x46c474
mov edx, dword [edx]
sub ecx, 0xbd10c7ac
ror edi, 1
xor edi, ecx
sub esi, 0xbd111fc8
xchg ecx, edi
add esi, ebx
and ebx, esi
mov ebx, edi
jmp 0x46bb9b
mov edx, dword [edx]
add ebx, 0xbd15007e
or ecx, esi
or ebx, 0xbd1536cc
add ebx, esi
and esi, 0xbd156a96
or ecx, edi
shr ecx, 0x13
or edi, ecx
mov ecx, 0xbd15db26
inc ecx
and esi, 0xbd1612f8
not esi
xor ecx, edi
dec esi
jmp 0x46d07b
mov edx, 0x30
xor ebx, edi
sub edi, ebx
and ecx, ebx
neg ebx
or ecx, ebx
sub ebx, edi
add edi, 0xbd23ed88
sub edi, ecx
or ebx, esi
sub edi, esi
jmp 0x46b17f
mov edx, dword [edx]
sub edi, esi
mov edi, ebx
shl ecx, 0x1b
add ebx, edi
jmp 0x46cc4d
movzx edx, word [edx]
xchg edi, esi
sub edi, ebx
inc ebx
or edi, 0xbd321d24
add ecx, esi
xor ebx, edi
inc ebx
dec edi
mov esi, ecx
and ebx, esi
jmp 0x46bde1
mov dword [esp + 0xec], 0
sub edi, ecx
shr esi, 0x11
xor edi, ecx
xchg edi, ecx
ror ebx, 2
inc edi
mov esi, ecx
mov esi, edi
xor ebx, esi
shl ecx, 1
jmp 0x46da4c
rol eax, 8
xor edi, 0xc462af6a
xor esi, edi
xchg ecx, ebx
neg edi
add ebx, esi
or ecx, ebx
or esi, 0xc4634e2c
shl esi, 8
jmp 0x46baf8
mov edx, dword [edx]
not ecx
not edi
add ecx, esi
sub ecx, 0xc46579e8
inc ebx
or ecx, edi
xchg ebx, esi
add esi, ecx
jmp 0x46c3a2
mov dword [esp + 0x30], edx
inc ebx
dec edi
xor esi, ecx
not esi
xor ecx, edi
and esi, ecx
mov ebx, esi
xchg edi, ebx
jmp 0x46d4b0
push edx
sub esi, 0xc472b6b2
sub esi, ebx
shl esi, 0x16
and ecx, 0xc4730616
xor ebx, esi
mov ecx, esi
dec edi
and esi, edi
add ebx, edi
mov ebx, esi
xchg ebx, edi
add edi, ecx
jmp 0x46b555
add edx, dword [esp + 0x10]
add ebx, ecx
sub ebx, 0xc47414dc
xor ebx, esi
sub esi, ecx
xor ecx, esi
mov ebx, esi
jmp 0x46c490
mov edx, dword [esp + 0x84]
or ebx, ecx
inc ebx
add ebx, esi
xchg esi, edi
rol ecx, 0xd
sub ecx, ebx
jmp 0x46dae0
cmp byte [edx], 0
jmp 0x46cab4
mov edx, dword [esp + 0xec]
xchg ebx, edi
add ebx, edi
or edi, esi
mov ebx, 0xc47e8fc2
add edi, 0xc47ea93a
mov esi, ebx
add esi, edi
not edi
jmp 0x46bf81
mov edx, dword [esp]
dec esi
xor ecx, 0xc47f3b3e
mov ecx, ebx
dec ebx
xor ecx, esi
sub ecx, esi
jmp 0x46b2ea
mov edx, dword [edx]
or edi, ecx
add ebx, ecx
add ebx, esi
mov ecx, 0xc482bf1c
dec ebx
inc ecx
sub edi, esi
xchg ecx, edi
bswap esi
rol edi, 1
and ebx, esi
or ecx, 0xc4839f38
jmp 0x46c7a3
sub esp, 0x148
rol ebx, 4
not esi
add ecx, esi
rol esi, 0x1d
add edi, 0xc4847cdc
and ecx, esi
bswap ecx
or esi, ebx
or ebx, edi
or esi, ebx
shl ecx, 0x19
add ecx, 0xc4853ffa
jmp 0x46dd92
mov dword [esp + 0x10], 0
sub edi, esi
inc ebx
sub esi, ecx
and esi, ecx
sub ecx, esi
sub ecx, edi
add ebx, edi
add ecx, esi
not esi
mov esi, ecx
xchg esi, ebx
sub esi, ecx
jmp 0x46bbd6