Function at 0x46d425
Capabilities:
Encrypt data using chaskey

Disassembly:
xor al, byte [ecx]
or ebx, edi
and edi, ebx
jmp 0x46f594
movzx ecx, word [ecx]
and edx, 0x8dedb5c4
and edx, edi
add edx, esi
shr edi, 7
jmp 0x46df70
mov ecx, dword [ecx]
add ebx, edx
shr esi, 0xb
xchg edi, ebx
mov edx, esi
jmp 0x46f18f
add esp, 0x150
xchg esi, edi
xchg ebx, esi
sub esi, 0x8df79edc
xchg edx, esi
rol edx, 0x1d
shr ebx, 4
mov edx, ebx
xor edi, esi
jmp 0x46ec0f
mov ecx, dword [esp + 0x48]
or ebx, 0x8df84b12
or edx, edi
neg edx
add esi, ebx
add esi, 0x8df8b90e
mov esi, edi
not edi
or edx, esi
rol edi, 7
mov ebx, 0x8df93c62
jmp 0x46ee7f
mov dword [esp + 0xb4], ecx
add esi, ebx
add edx, ebx
ror edi, 0x16
add ebx, esi
and edx, ebx
mov ebx, 0x8dfd1832
add edi, 0x8dfd352a
mov ebx, esi
or esi, edx
sub edx, esi
jmp 0x46da33
add ecx, 0x18
neg esi
xor edi, edx
add esi, ebx
xchg ebx, edx
xor edx, edi
shl ebx, 0x1c
nop
sub ebx, esi
jmp 0x46e1ff
add ecx, dword [esp + 0x48]
mov ebx, edx
mov ebx, 0x8e0812aa
xchg ebx, edi
dec ebx
sub edi, 0x8e086476
add ebx, 0x8e0884dc
and ebx, esi
ror edi, 0xb
and edx, edi
and edx, 0x8e08ec08
xchg esi, ebx
bswap ebx
jmp 0x46f474
push ecx
not esi
and esi, edi
or ebx, edi
add edi, esi
jmp 0x46ddf6
mov dword [esp + 0x120], 0
mov esi, ebx
and esi, edx
mov edi, esi
add edx, edi
add esi, 0x8e0d9dac
mov edx, ebx
xchg edi, esi
and ebx, edi
inc edx
add esi, 0x8e0e1f9c
jmp 0x46e0a5
sub esp, 0x150
shr ebx, 9
rol ebx, 0xa
and edx, 0x8e116caa
and esi, ebx
shl edi, 8
or ebx, edi
sub ebx, esi
and ebx, edi
inc edx
rol edx, 1
jmp 0x46dab6
add ecx, 0xc
add esi, edi
add edx, edi
xchg edi, ebx
bswap edx
or edi, esi
or edi, 0x8e12cdb2
or edi, ebx
xor edx, esi
add ebx, edi
or ebx, 0x8e133680
jmp 0x46de3f
add ecx, dword [esp + 0xa8]
xchg esi, edx
bswap edi
add edx, esi
xchg ebx, edi
xor ebx, edi
xor edi, esi
xchg edx, esi
xor ebx, edx
shr ebx, 0x14
add ebx, edi
jmp 0x46f771
mov ecx, dword [esp + 0xb4]
dec esi
ror esi, 0xc
sub ebx, 0x8e276112
mov edi, edx
inc edi
dec edx
jmp 0x46ef9b
mov ecx, dword fs:[ecx]
and esi, ebx
sub edi, esi
shl edi, 0xa
shr edi, 0xb
shl edx, 0x13
xchg ebx, esi
jmp 0x46da54
mov dword [esp + 0x114], ecx
dec esi
xor edx, esi
not esi
and ebx, edx
mov esi, ebx
or edx, ebx
and esi, 0x8e312434
sub edi, ebx
xchg esi, edi
and esi, edx
xor edi, ebx
and edi, esi
jmp 0x46ea71
sub dword [esp + 0xb4], 8
xor esi, edi
and edi, ebx
xor edi, edx
rol edx, 0xa
jmp 0x46d71f
add dword [esp + 0xb4], 0x78
shl ebx, 5
mov edi, edx
xor esi, edx
sub ebx, edx
mov edi, edx
not edx
xchg edx, edi
dec edx
xor ebx, esi
sub edx, edi
jmp 0x46e475
add ecx, 0xc
add edi, 0x8e4022f6
shr esi, 0xe
xchg ebx, edx
add ebx, edx
nop
rol edi, 0x1c
mov edi, 0x8e40c982
and esi, 0x8e40e316
bswap edi
or edi, esi
jmp 0x46ed94
mov dword [esp + 0xa8], 0
add edi, esi
xor esi, 0x8e42fd36
mov esi, edi
sub ebx, 0x8e433554
ror edx, 9
rol ebx, 3
and edx, 0x8e438434
and esi, ebx
jmp 0x46d394
mov dword [esp + 0x48], ecx
shl ebx, 0x1d
mov ebx, esi
mov ebx, esi
and ebx, edi
and esi, edi
and edi, edx
bswap edx
mov edi, esi
xor esi, edi
xor ebx, edx
shr ebx, 0xe
mov edx, ebx
dec esi
add esi, edx
jmp 0x46d0aa
mov ecx, dword [ecx]
neg edx
or edx, 0x8e4b5bca
and ebx, 0x8e4b7522
add edx, 0x8e4b95de
mov ebx, 0x8e4baf1c
not edx
jmp 0x46e514
xor eax, eax
rol edx, 0xc
mov esi, 0x8e5a647c
shl edx, 7
shr edx, 0x1e
jmp 0x46cf29
mov ecx, dword [ecx]
xor edi, 0x8e5c26ae
mov ebx, 0x8e5c4032
add edi, 0x8e5c5d2a
shr ebx, 0x13
sub ebx, edx
xor edx, edi
rol edx, 0x14
xor ebx, 0x8e5ce740
xor edx, edi
or edi, esi
add edx, ebx
sub esi, edx
jmp 0x46e6b1
mov dword [esp + 0x120], ecx
or edi, esi
xchg esi, ebx
add edx, 0x8e5e54c4
shr ebx, 0x11
xor edx, esi
bswap ebx
mov ebx, edi
mov esi, edi
shl edx, 0x15
mov edi, esi
sub edx, esi
mov ebx, edi
and edx, esi
sub ebx, 0x8e5f75e0
jmp 0x46ecbb
add dword [esp + 0xb4], 0x20
xchg edi, esi
ror esi, 0x10
add ebx, esi
xor edi, edx
neg edx
neg edi
add ebx, 0x8e63c064
shl edi, 0x16
jmp 0x46ef02
add dword [esp + 0x120], 4
rol ebx, 0xe
ror ebx, 9
shr esi, 0xa
mov edx, edi
and esi, edx
and edi, ebx
xor ebx, esi
and edx, ebx
jmp 0x46e5ef
mul ecx
add esi, edx
and ebx, esi
or edx, 0x8e650f2a
nop
sub ebx, esi
xor esi, ebx
not edx
mov esi, edx
or edi, esi
xchg esi, ebx
xor edx, edi
not ebx
jmp 0x46ef8a
mov dword [esp + 0x48], 0
not ebx
xchg esi, ebx
jmp 0x46e295
mul ecx
mov ebx, esi
shr edx, 0x11
xor edx, edi
shr edi, 3
and edi, edx
xor ebx, 0x8e70a1c4
or esi, 0x8e70bb3c
sub edx, esi
xor ebx, 0x8e70f5c4
bswap esi
jmp 0x46f69f
cmp byte [ecx], 0
jmp 0x46e3ca
add ecx, dword [esp + 0x48]
or esi, edx
neg edi
mov edi, 0x8e73a452
shl edi, 0x18
shr edi, 0x19
sub edi, esi
shl edi, 0xd
and edx, edi
or esi, ebx
or ebx, esi
add edi, 0x8e747b2a
mov edi, esi
jmp 0x46d089
mov ecx, dword [ecx]
sub ebx, edi
mov edi, 0x8e77efc0
and esi, 0x8e78090e
xor edx, esi
and esi, ebx
or esi, edx
add edi, ebx
and edi, edx
and edx, edi
or esi, ebx
jmp 0x46db93
mov dword [esp + 0xb4], 0
shl edi, 7
ror edi, 9
and esi, edx
or ebx, esi
shl edx, 7
dec esi
add esi, 0x8e7c7738
dec edx
jmp 0x46d851
jne 0x46cf29
xor esi, edx
and esi, edx
shl edi, 2
xchg edx, ebx
and edi, 0x8e85b274
and esi, edi
or esi, edx
sub esi, edx
or ebx, esi
sub ebx, esi
jmp 0x46ebaa
mov ecx, dword [esp + 0x48]
shl esi, 2
xchg edx, edi
and esi, 0x8e8a53be
add edx, ebx
add ebx, 0x8e8a8bdc
dec ebx
dec esi
xchg ebx, esi
xor esi, edi
and edi, ebx
jmp 0x46ea27
add ecx, dword [esp + 0x48]
rol edi, 0x1d
mov edi, edx
sub ebx, edi
mov ebx, esi
or esi, edx
and edx, esi
add ebx, esi
neg esi
and ebx, edi
add edi, esi
jmp 0x46de7f
mov ecx, dword [esp + 0x120]
or edi, 0x8e958c34
or ebx, edx
or edi, esi
inc esi
ror edx, 0x1c
neg edi
shr edi, 0x10
and ebx, esi
sub esi, edi
and edi, ebx
jmp 0x46f1a3
mov ecx, dword [ecx]
add ebx, edx
xor ebx, esi
or edi, edx
and ebx, edx
mov edi, esi
add esi, edi
add edx, esi
xor edx, esi
rol ebx, 0x1b
ror ebx, 0x11
mov ebx, edi
mov esi, 0x8e9a054c
jmp 0x46e15f
mov ecx, dword [ecx]
and edi, edx
shr edi, 0xf
add edi, esi
shl ebx, 0x1b
xor ebx, edx
or esi, ebx
xor edx, ebx
or edi, ebx
sub edi, ebx
and ebx, edx
jmp 0x46e926
add dword [esp + 0xb4], ecx
xor esi, ebx
xchg edi, ebx
bswap edx
shl edx, 0x1a
jmp 0x46df2d
jne 0x46eadb
xor edx, ebx
shr edi, 2
xchg esi, edx
or edi, 0x8ea7ab46
xor edi, esi
xchg esi, edx
jmp 0x46f0c3
mov ecx, dword [ecx]
xor ebx, esi
xor edi, edx
or ebx, edx
sub ebx, esi
xor edi, edx
mov ebx, edx
jmp 0x46d207
add ecx, dword [esp + 0xb4]
sub edi, edx
and edi, esi
xor edi, 0x8eb772de
add edx, edi
sub edi, ebx
shl edx, 1
or esi, edi
xchg edx, ebx
jmp 0x46d028
mov ecx, 0x30
and edx, 0x8eb9471c
rol edx, 0x1b
and esi, 0x8eb980f4
sub edi, ebx
jmp 0x46d822
inc dword [esp + 0xa8]
shr edx, 0x13
and esi, ebx
shl edi, 0x1d
add esi, edx
shl edi, 9
or ebx, edx
shl ebx, 3
nop
xchg esi, edx
or edi, 0x8ebcc34a
add ebx, 0x8ebcdc88
and ebx, esi
jmp 0x46df50
mov ecx, dword [ecx]
xor edx, 0x8ec125c2
inc edx
and ebx, 0x8ec15b1e
add ebx, 0x8ec17bca
jmp 0x46d2da
pop ecx
and edi, ebx
and edi, esi
or edx, edi
mov esi, 0x8ec1ece6
add edi, esi
xor edx, ebx
or edi, ebx
add edi, edx
jmp 0x46f1f6
ret
mov eax, 2
not esi
and ebx, edx
not ebx
and ebx, 0x8eca32d8
and edx, edi
sub edx, 0x8eca66da
ror esi, 0x1a
xchg esi, ebx
or ebx, 0x8ecabd44
and esi, edx
jmp 0x46efef
mov ecx, dword [ecx]
and edi, edx
or esi, 0x8ed05262
and edi, esi
sub ebx, edx
or esi, edx
add ebx, esi
jmp 0x46d44b
add ecx, 0x3c
bswap edi
add edx, esi
rol edx, 0x10
mov esi, edi
and ebx, 0x8ed784a6
add edi, ebx
xor ebx, esi
mov ebx, esi
xor edi, edx
xchg ebx, esi
jmp 0x46efaf
mov ecx, dword [esp + 0xb4]
and esi, edx
xchg edi, edx
nop
and edi, edx
jmp 0x46eb90
add dword [esp + 0xb4], eax
shl edx, 0xf
xor ebx, esi
jmp 0x46f25f
mov ecx, dword [ecx]
mov edi, edx
not edi
neg edx
and edx, ebx
xor edx, edi
rol edx, 7
jmp 0x46f6e7
mov ecx, dword [ecx]
mov edi, esi
and edi, 0x8ee0c512
mov ebx, 0x8ee0de8c
xor edx, esi
rol ebx, 0x11
ror ebx, 0x11
mov ebx, edi
xor edx, 0x8ee166d4
inc esi
mov esi, 0x8ee19c88
jmp 0x46d14b
mov ecx, dword [esp + 0xa8]
not ebx
and ebx, 0x8ee291f2
and edx, edi
sub edi, esi
xor esi, edi
and edi, edx
xor esi, 0x8ee31502
mov esi, edi
and edi, edx
or edi, esi
jmp 0x46e0e3
mov dword [esp + 0xb4], ecx
xor edi, 0x8ee4d76e
dec ebx
xor ebx, 0x8ee50c80
xor esi, edx
and ebx, 0x8ee543d4
mov edi, 0x8ee55d78
xchg edi, edx
neg ebx
jmp 0x46f2a3
add dword [esp + 0xb4], 4
or ebx, 0x8ee86dde
neg ebx
rol edi, 1
xchg edi, esi
mov ebx, edi
and edx, ebx
jmp 0x46f319
mov dword [esp + 0xb4], ecx
xchg edi, ebx
or edx, ebx
not edi
xchg esi, edi
jmp 0x46f202
mov ecx, dword [ecx]
xor ebx, edi
or esi, edi
bswap ebx
and edx, esi
shl edx, 7
xchg ebx, esi
jmp 0x46f545
inc ecx
mov edx, 0x8ef0ab22
inc edx
shr ebx, 0x15
shr esi, 0x1f
xchg ebx, edx
shr edi, 0x10
and esi, edi
shr edx, 0x19
ror edi, 0xd
xchg esi, edi
jmp 0x46e157
cmp eax, dword [esp + 0x114]
jmp 0x46e847
mov ecx, dword [esp + 0x48]
bswap edx
xchg esi, ebx
bswap ebx
or edi, ebx
or esi, 0x8ef23266
mov edx, 0x8ef25378
xchg ebx, edx
bswap esi
sub edi, edx
mov ebx, 0x8ef2bce2
add edi, 0x8ef2d676
shr esi, 8
jmp 0x46e70f
mov ecx, dword [esp + 0xb4]
sub esi, ebx
add edi, 0x8ef47cf0
and edx, esi
xchg esi, edx
mov esi, edx
not esi
jmp 0x46e662
mov ecx, dword [esp + 0x120]
mov esi, edi
not edi
and ebx, esi
xor ebx, edi
jmp 0x46d6c3
mov ecx, dword [esp + 0xb4]
inc esi
xor ebx, edx
shr ebx, 8
xchg esi, ebx
or ebx, 0x8efa2862
or edx, edi
jmp 0x46dbda
mov dword [esp + 0x120], ecx
mov esi, edi
sub edi, edx
shl esi, 5
xor edi, esi
jmp 0x46eadb
add ecx, dword [esp + 0x48]
xchg esi, edx
xchg esi, edi
and edx, edi
sub edx, 0x8f0b377e
xor edx, ebx
or edi, 0x8f0b6afe
sub edx, esi
xchg ebx, edi
jmp 0x46d386
rol eax, 8
or esi, edi
bswap esi
sub ebx, edx
mov edi, edx
shl edi, 9
or ebx, 0x8f0d76f2
sub edi, esi
or ebx, 0x8f0daaf4
and edi, ebx
xor ebx, edi
jmp 0x46f1d5
mov dword [esp + 0xa8], eax
xor edx, esi
xchg edx, ebx
neg edi
xor edx, 0x8f150516
xor esi, ebx
and ebx, 0x8f153896
add ebx, esi
or edx, 0x8f156df2
and edi, edx
xchg edx, ebx
jmp 0x46d905
add ecx, dword [esp + 0x48]
xor edi, ebx
and edx, 0x8f16c1b6
add ebx, edx
sub edx, esi
or edi, edx
xchg edi, ebx
jmp 0x46f044
mov eax, 4
and edi, 0x8f1a31c0
and esi, edi
or ebx, edi
or edx, esi
mov ebx, edi
mov edi, ebx
and edi, esi
sub ebx, edx
and ebx, edi
add ebx, esi
jmp 0x46cf60