Function at 0x46aa2a
Capabilities:
Encrypt data using chaskey

Disassembly:
inc ecx
and edi, esi
nop
dec esi
ror edx, 0x19
jmp 0x46bd40
add ecx, 0x18
mov edi, esi
xor esi, ebx
add ebx, edx
add edx, edi
or esi, 0xf658414
shl edx, 6
sub ebx, esi
rol esi, 4
shl edx, 7
rol edi, 4
shl esi, 1
xor edx, edi
or ebx, edi
and esi, edx
jmp 0x46b784
add ecx, 0xc
xor ebx, edi
xchg edi, edx
xchg esi, ebx
and edx, ebx
or edi, esi
xor edi, 0xf6728b8
not edx
mov edx, ebx
jmp 0x46b725
xor al, byte [ecx]
xor ebx, edi
xchg edi, edx
xor edx, edi
shr edx, 0x10
ror edi, 2
xor edi, esi
sub edi, 0xf694a96
mov edi, 0xf69674a
add edi, esi
mov edi, ebx
xchg esi, edi
and edx, ebx
jmp 0x46bb84
mov ecx, dword [esp + 0xf0]
add ebx, 0xf6c3e62
or ebx, edi
sub ebx, edx
shl ebx, 0x15
mov ebx, 0xf6cabe4
or ebx, esi
add edi, ebx
mov esi, edx
bswap ebx
xchg edx, esi
jmp 0x46c18e
add ecx, dword [esp + 0x78]
and edx, ebx
and esi, edi
xchg edi, edx
and esi, ebx
rol edx, 0x1c
xchg edi, ebx
xor edi, edx
inc edi
jmp 0x46b15d
sub esp, 0x128
rol edi, 0xd
rol edx, 0x1e
bswap edi
and edx, esi
bswap esi
or edx, 0xf7e5242
and esi, edx
mov ebx, esi
nop
mov esi, 0xf7fa298
jmp 0x46be03
mov ecx, dword [ecx]
add ebx, 0xf84bede
add edi, edx
mov ebx, edx
add edi, 0xf850dc8
xor ebx, edx
sub ebx, esi
not edi
sub ebx, edx
sub ebx, 0xf85976a
xor esi, edi
or edi, 0xf85cd16
and edi, ebx
jmp 0x46bfd5
mov ecx, dword [ecx]
xor edx, 0xf860b46
dec edi
or esi, edi
shl edi, 0xd
jmp 0x46bbd3
movzx ecx, word [ecx]
add ebx, edx
sub edi, 0xf88ebee
mov edi, 0xf890454
xchg esi, ebx
dec esi
and ebx, edi
ror esi, 0xb
shr edx, 1
or ebx, esi
not edx
xchg esi, ebx
mov edi, edx
jmp 0x46cb8b
ret
add dword [esp + 0x50], 4
mov edi, esi
not edi
xchg esi, edi
sub esi, 0xf9b40e0
add esi, edx
not esi
add edx, 0xf9b93f4
shl edx, 0xa
sub ebx, esi
mov esi, edx
shr esi, 8
mov edi, esi
xor ebx, edx
sub ebx, esi
jmp 0x46c383
mov ecx, dword [ecx]
add esi, ebx
shr edi, 0x1b
xor esi, 0xf9e5bfc
sub edi, ebx
add esi, 0xf9e8e4e
mov ebx, 0xf9eab02
jmp 0x46c8a0
add ecx, dword [esp + 0xf0]
add edi, 0xfa50040
dec edx
or esi, ebx
and esi, 0xfa55320
mov edi, esi
xor ebx, edx
and ebx, edx
mov edi, edx
jmp 0x46be48
push ecx
or edi, edx
mov edx, esi
or esi, edi
xchg edi, edx
xchg esi, ebx
shr ebx, 0x10
mov edi, edx
add edx, ebx
jmp 0x46c9b8
mov eax, 4
sub ebx, edx
sub ebx, edx
shl ebx, 5
sub ebx, esi
xor edx, edi
mov ebx, edi
add edx, edi
bswap ebx
and esi, 0xfb86d58
mov edi, esi
jmp 0x46ab80
mov ecx, dword [ecx]
and ebx, esi
ror edx, 0x1e
shr ebx, 0x14
shl edi, 5
sub esi, 0xfb99c2a
xor edi, edx
add edx, ebx
and edx, esi
jmp 0x46c6ec
add dword [esp + 0x10c], 0x20
xchg ebx, edi
add edx, edi
add ebx, edx
not esi
shr edx, 0x1f
xor ebx, 0xfba9b52
jmp 0x46bf1e
mov ecx, 0x30
xchg edi, ebx
xchg edx, esi
xchg ebx, edi
and edi, edx
dec esi
and edi, ebx
or esi, edx
inc esi
xchg edi, ebx
ror ebx, 5
and ebx, esi
sub esi, ebx
jmp 0x46ca65
add dword [esp + 0x10c], eax
xchg ebx, edi
and edi, edx
mov esi, 0xfbece90
xor edx, 0xfbeee62
xor esi, 0xfbf0a70
mov edx, esi
xor ebx, edi
and ebx, edi
jmp 0x46c65e
pop ecx
xchg esi, edi
xor ebx, edi
dec edx
and ebx, edi
xor edi, esi
sub edi, esi
sub ebx, edx
mov esi, ebx
jmp 0x46ba3e
mov dword [esp + 0x50], 0
xor esi, edx
add edi, 0xfd01e60
sub edx, ebx
inc edi
sub edi, esi
add esi, 0xfd091c2
jmp 0x46ce99
add esp, 0x128
xchg edx, esi
rol esi, 0x13
shl edx, 0x1e
and ebx, edi
bswap ebx
xchg edi, edx
jmp 0x46ada5
mov dword [esp + 0x10c], ecx
neg edi
dec esi
dec esi
and ebx, edi
sub esi, edx
and edx, edi
jmp 0x46ce3a
mov dword [esp + 0x50], ecx
add edx, ebx
mov edi, 0xfdb5582
add esi, 0xfdb6e68
add edi, esi
or ebx, edx
inc ebx
add edi, edx
dec ebx
jmp 0x46c706
mov dword [esp + 0x78], eax
ror edi, 0x19
sub esi, edx
add ebx, esi
or esi, edx
dec edx
or esi, ebx
and edi, esi
and edx, esi
xor edx, esi
or ebx, esi
jmp 0x46c1c3
jne 0x46c706
xor ebx, edx
and edi, ebx
xchg ebx, esi
xchg edi, ebx
mov edx, ebx
xor ebx, edx
sub ebx, esi
or esi, ebx
jmp 0x46cc08
mov ecx, dword [ecx]
mov edx, edi
mov edi, edx
jmp 0x46b193
mov dword [esp + 0x10c], ecx
inc ebx
and esi, edi
add esi, 0xfe5c76c
sub esi, 0xfe5ebdc
ror ebx, 0xc
ror ebx, 0x1c
jmp 0x46cd43
mov ecx, dword [ecx]
shl edx, 0x1f
sub edi, edx
add edi, edx
and esi, 0xfe83b1e
shr esi, 0x18
and esi, edx
sub edi, 0xfe88ad0
xor esi, 0xfe8abae
xchg ebx, edx
shr edx, 0x1a
xchg ebx, edi
mov esi, 0xfe916f4
inc ebx
add edi, edx
jmp 0x46c841
mov ecx, dword [esp + 0x78]
mov ebx, esi
or edi, esi
neg edi
add esi, 0xfee2f92
xchg edx, esi
not ebx
jmp 0x46cb4b
mov ecx, dword [esp + 0x50]
xor edi, edx
mov esi, edx
shr edi, 0x19
shr esi, 6
mov edi, esi
and esi, edi
and ebx, esi
add ebx, edx
rol edi, 0x15
or esi, edx
jmp 0x46a8ec
add ecx, dword [esp + 0xf0]
xor ebx, 0xff5da94
shr esi, 0x19
add ebx, edx
and edi, edx
and edi, esi
and edx, esi
sub edi, ebx
add ebx, 0xff69768
jmp 0x46ce21
cmp eax, dword [esp + 0x48]
jmp 0x46b668
mov ecx, dword [ecx]
add esi, edi
and esi, 0x1025dc7e
mov ebx, edi
sub ebx, esi
jmp 0x46b740
rol eax, 8
neg edx
xchg esi, edx
add edi, ebx
neg ebx
or edx, edi
or esi, ebx
jmp 0x46a61d
add ecx, dword [esp + 0xf0]
shl edx, 2
and edi, ebx
and edi, 0x103eb20a
xor ebx, edi
dec edx
and ebx, edi
xor edi, esi
and edi, esi
jmp 0x46b08f
add ecx, 0x3c
shr edx, 0x15
shr esi, 0xb
or edi, edx
add esi, edi
sub edx, 0x104739f6
or ebx, 0x104752aa
add edi, ebx
mov ebx, edx
xchg esi, edx
xchg edx, ebx
jmp 0x46c602
cmp byte [ecx], 0
jmp 0x46c792
mov dword [esp + 0x78], 0
sub edi, ebx
xchg ebx, edi
xchg edi, edx
xor edx, edi
or ebx, edi
add esi, 0x104f44be
xor edi, ebx
inc esi
jmp 0x46b496
mov dword [esp + 0x50], ecx
or esi, ebx
mov esi, 0x1050a6cc
inc ebx
xchg esi, ebx
and edx, ebx
not edx
add ebx, 0x10512f48
bswap edi
bswap edx
mov edi, esi
rol esi, 0x1f
or esi, ebx
jmp 0x46c81f
mov ecx, dword [esp + 0x10c]
inc ebx
and edx, edi
sub edx, ebx
dec ebx
and ebx, edi
add ebx, edx
sub edi, 0x1057169a
dec edi
add ebx, esi
ror ebx, 0xd
jmp 0x46ae51
add ecx, dword [esp + 0xf0]
neg edx
dec ebx
neg esi
sub esi, 0x105c322a
jmp 0x46b55a
mov ecx, dword [ecx]
ror edi, 2
add edi, ebx
and ebx, edi
and edx, edi
mov ebx, 0x105da83a
mov edx, ebx
mov ebx, esi
mov edx, 0x105df87e
dec edi
or edi, ebx
jmp 0x46b936
mov ecx, dword [esp + 0xf0]
add ebx, edx
mov ebx, edx
bswap edi
add esi, 0x105fbd56
jmp 0x46bced
add ecx, dword [esp + 0x10c]
neg edi
xchg edi, edx
jmp 0x46bb26
sub dword [esp + 0x10c], 8
mov edx, edi
shr edx, 9
add edx, 0x1069f610
shl ebx, 0xb
xchg esi, edx
sub esi, edx
add ebx, 0x106a69a4
or edx, edi
jmp 0x46cca5
mov ecx, dword [esp + 0x50]
mov ebx, 0x107f4a3a
xchg ebx, edx
xor edi, esi
add edx, edi
dec edi
xor edi, edx
xchg ebx, edx
xor edi, esi
jmp 0x46ab1d
mov dword [esp + 0x48], ecx
dec ebx
shl edx, 7
rol edi, 0x14
xor esi, edx
xchg edx, edi
mov edi, 0x1083e0f0
or edi, esi
mov edx, edi
jmp 0x46b223
mov ecx, dword [ecx]
shr edi, 0x1a
add ebx, esi
and edx, ebx
xor edx, ebx
and edx, esi
xchg ebx, edi
dec ebx
xor ebx, edx
jmp 0x46b5e6
mov ecx, dword [esp + 0x10c]
sub ebx, esi
not edi
xor edi, 0x10988b50
and ebx, edx
or ebx, 0x1098bf2e
add ebx, esi
xor ebx, esi
sub edx, ebx
jmp 0x46aaee
mov ecx, dword [ecx]
not ebx
or ebx, esi
and esi, ebx
xor esi, ebx
xchg ebx, edi
mov esi, 0x109ca030
sub esi, edx
mov edx, esi
jmp 0x46a767
inc dword [esp + 0x78]
or esi, ebx
and edx, 0x109d16dc
or edi, edx
xor esi, 0x109d516a
add edi, esi
and edi, 0x109d84c0
xor esi, 0x109da17a
xchg edi, ebx
add esi, edx
or edx, edi
jmp 0x46ade2
jne 0x46a7ce
sub edi, edx
add edx, esi
ror edi, 0x17
xchg ebx, edi
neg esi
sub edx, ebx
mov edi, ebx
inc edx
jmp 0x46b342
mov eax, 2
sub edx, 0x10a54518
xor edi, ebx
add ebx, edi
or ebx, edx
inc ebx
shr edi, 0xc
or edi, esi
xor edi, 0x10a6845e
jmp 0x46b83c
mov dword [esp + 0xf0], ecx
xchg ebx, edx
and edi, 0x10a6c842
jmp 0x46c053
add ecx, dword [esp + 0xf0]
inc edx
add ebx, esi
mov ebx, edx
sub ebx, edx
jmp 0x46b5fc
mov ecx, dword [esp + 0x10c]
shl edx, 0x19
rol edi, 3
shl esi, 0x19
and esi, 0x10aeca3e
mov edi, esi
add edx, esi
add esi, edx
bswap edx
sub edx, edi
xor edi, edx
sub ebx, esi
xchg edi, ebx
jmp 0x46cefc
xor eax, eax
xor edi, esi
mov esi, edi
add edx, 0x10b2920c
xchg ebx, edx
xchg edi, esi
xchg esi, edx
jmp 0x46a7ce
mov ecx, dword fs:[ecx]
add ebx, edi
xor edi, ebx
mov esi, edx
mov edi, 0x10b85166
sub esi, edi
add esi, edi
mov esi, edx
and edx, esi
inc ebx
add ebx, edx
jmp 0x46ccff
mul ecx
shl edi, 0xc
mov esi, edx
shr edi, 0x18
shr esi, 8
xor edx, ebx
neg edx
and ebx, 0x10c1a130
mov edi, ebx
jmp 0x46b61d
mul ecx
xor esi, edx
and edx, edi
mov ebx, 0x10c3332c
or ebx, 0x10c34fbc
jmp 0x46b244
add dword [esp + 0x10c], 4
rol edi, 8
mov esi, edi
xor edx, edi
or ebx, 0x10c6a5ae
rol ebx, 4
xor edi, esi
and edx, ebx
add edx, 0x10c71566
mov esi, ebx
mov edx, esi
jmp 0x46c92d
mov ecx, dword [esp + 0x10c]
xchg ebx, edx
xor edi, 0x10cabc80
not edx
and esi, ebx
not esi
not ebx
jmp 0x46c00a
add ecx, 0xc
shl esi, 0x10
neg edx
and ebx, 0x10cd0f6a
or edi, ebx
or edx, 0x10cd45ee
xchg ebx, edi
jmp 0x46d040
mov ecx, dword [esp + 0xf0]
neg ebx
sub esi, edi
xor edx, esi
and ebx, edi
bswap ebx
xchg edx, esi
jmp 0x46d155
mov dword [esp + 0x10c], 0
xor edx, 0x10cf8bdc
or ebx, esi
rol ebx, 3
sub ebx, edx
sub ebx, 0x10cff4d4
and ebx, esi
add esi, edi
and edi, ebx
xchg ebx, esi
mov esi, edx
and edx, edi
inc ebx
jmp 0x46c3d1
mov dword [esp + 0x10c], ecx
bswap esi
and edx, esi
or edi, 0x10d592a2
shl esi, 9
jmp 0x46b8ac
add dword [esp + 0x10c], 0x78
sub esi, edx
dec esi
and edx, ebx
add edi, ebx
nop
not edi
xor esi, edx
sub ebx, edx
jmp 0x46a842
mov dword [esp + 0xf0], 0
xchg esi, edi
add ebx, 0x10d874f4
and esi, edi
add esi, ebx
add esi, 0x10d8c3b2
sub esi, 0x10d8dff4
add esi, edx
sub ebx, edx
and ebx, 0x10d93148
xor ebx, esi
dec ebx
sub edx, esi
jmp 0x46cd5b
mov ecx, dword [ecx]
and edi, ebx
mov edi, esi
not edi
xchg esi, edi
dec edx
ror ebx, 5
or esi, edi
or edi, ebx
jmp 0x46af2d
mov ecx, dword [ecx]
xchg edi, edx
xor edx, edi
xchg edi, esi
and edi, ebx
or esi, edx
or ebx, edx
xor edx, edi
not ebx
jmp 0x46a794
add dword [esp + 0x10c], ecx
or edi, ebx
or edi, edx
jmp 0x46b1b1