Function at 0x46ecf3
Capabilities:
Encrypt data using chaskey

Disassembly:
add esp, 0x164
and edi, ebx
mov ecx, edx
mov edi, edx
xchg ebx, ecx
and edi, ecx
xchg ecx, edi
shl ecx, 9
xor edi, ecx
jmp 0x46b9a4
add esi, dword [esp + 0x78]
or ebx, edi
or ebx, ecx
xor ebx, 0xb29347ff
ror ecx, 0xe
sub ebx, ecx
or edi, 0xb295a60e
bswap edx
inc ebx
jmp 0x46e538
add esi, dword [esp + 0x20]
and edi, edx
xor ebx, edx
inc edi
xor ebx, edi
or edi, ecx
not ecx
shl edi, 0xa
sub ebx, edx
sub ebx, ecx
rol ecx, 7
jmp 0x46b636
pop esi
xor edx, edi
or ecx, edx
ror edx, 0xb
add edx, ecx
add ecx, ebx
xchg edi, ecx
mov ecx, ebx
jmp 0x46e31a
add dword [esp + 0x78], 0x20
ror ecx, 0x10
xor edx, ebx
and ebx, ecx
bswap edi
jmp 0x46d811
ret
mov esi, dword [esi]
or edi, ebx
sub ecx, 0xb34b8bb6
add ecx, edi
not ecx
jmp 0x46db1c
mov dword [esp + 0x78], 0
or edi, ebx
or edi, ebx
add ecx, edi
or ecx, 0xb35012d5
not ecx
sub ebx, edx
xor ecx, ebx
and edi, ebx
mov ebx, edi
sub edx, ebx
jmp 0x46c70c
mov eax, 4
dec edi
or edx, ebx
or ebx, edi
neg ebx
xor ebx, edx
or edx, ebx
sub ecx, edx
neg ecx
and ebx, edi
add ecx, edx
mov ebx, 0xb3812f9d
shl edi, 6
rol edi, 1
jmp 0x46cfc8
add dword [esp + 0x78], 0x78
xor ebx, 0xb3cfea97
sub ecx, edi
inc ecx
shr ebx, 0x15
and edi, 0xb3d30865
and edi, ecx
jmp 0x46c950
mov esi, dword [esi]
xchg ecx, ebx
not ebx
sub ebx, edx
or ebx, ecx
and ebx, edx
jmp 0x46eab5
add esi, 0x18
shr edx, 0x1f
sub ebx, edi
and ecx, edx
or ecx, ebx
add edi, 0xb4165dd0
xchg ecx, edi
neg edx
sub edx, ecx
and ebx, ecx
or ecx, edx
xor edi, 0xb4196905
or edi, edx
dec ebx
add edx, ebx
jmp 0x46e474
xor al, byte [esi]
add ecx, edi
or edx, 0xb42961b2
mov ecx, ebx
xor ebx, 0xb42a7906
sub edi, ecx
xchg edx, ebx
add ecx, edi
xor edx, ecx
jmp 0x46d582
jne 0x46becc
xor ecx, 0xb47ddcfe
add ecx, 0xb47e5ada
ror edx, 0x15
sub edx, edi
sub ecx, edi
add ecx, ebx
mov edx, 0xb480c642
xor ebx, 0xb48166ed
mov edx, ecx
jmp 0x46b835
mov esi, dword [esi]
and ecx, 0xb499c00a
mov edx, 0xb49a3e08
xchg edi, edx
and edx, ecx
xchg ebx, edx
xchg edx, ebx
sub ebx, ecx
xchg ebx, edx
inc ebx
inc edx
add ecx, 0xb4a1d5c6
jmp 0x46b7c3
mov esi, dword [esi]
or ecx, edi
and edx, ebx
add ecx, 0xb4a4cb65
xchg ecx, edx
dec edx
add edx, ebx
or edi, edx
jmp 0x46dcd5
mov esi, dword [esp + 0x78]
mov ebx, edx
xchg edi, ecx
or edx, edi
shr edi, 0x1e
mov edx, edi
inc edi
xor ecx, 0xb50540db
add edi, 0xb505e0a1
mov ebx, edi
add edi, 0xb506d666
jmp 0x46d11a
mov esi, dword [esp + 0xb8]
add ecx, edi
xor ebx, edi
inc edx
ror ebx, 6
and edi, ebx
xchg ebx, edx
ror ecx, 0x1f
ror edx, 6
sub ecx, edx
xor ecx, edi
xchg ebx, ecx
jmp 0x46dc7c
mov esi, dword [esi]
add ebx, edi
mov ecx, edx
xor edx, ecx
not ecx
or edx, edi
xor edi, edx
sub ecx, ebx
sub ecx, edi
xor edi, ecx
jmp 0x46be4d
mov dword [esp + 0x20], 0
shr edx, 8
add ebx, ecx
sub ecx, ebx
or edx, edi
xchg ebx, ecx
and edi, edx
and ecx, edx
mov ebx, edi
or ecx, edi
xchg ecx, edi
jmp 0x46baad
add dword [esp + 0x78], esi
nop
mov ecx, ebx
and ecx, ebx
xor edi, ecx
inc ecx
inc ecx
sub ecx, edi
and ecx, edi
xchg edi, edx
ror ebx, 0x19
sub ebx, edi
or ecx, 0xb56d933f
sub edx, ebx
jmp 0x46b887
mov dword [esp + 0x64], esi
or ebx, 0xb56eb474
xor edi, edx
and edx, edi
xchg ecx, edx
not edx
dec edx
or edx, ecx
jmp 0x46d636
mov dword [esp + 0x78], esi
xchg edx, ecx
or ebx, 0xb5889c1b
xor edi, ebx
jmp 0x46ec33
mov esi, dword [esp + 0x20]
shr edx, 0xf
dec edx
sub ebx, edx
not edx
shr ecx, 0x15
sub edi, 0xb5c35d9e
xchg ebx, edx
add ecx, edi
sub edi, edx
bswap ebx
or ebx, edx
jmp 0x46b736
mov dword [esp + 0x20], esi
dec ecx
sub ebx, 0xb5ca9fe8
mov ebx, 0xb5caee4b
jmp 0x46dcfb
mov dword [esp + 0xf8], 0
shl edi, 0x19
and ecx, ebx
jmp 0x46c562
add esi, dword [esp + 0x20]
add edi, ebx
add edx, 0xb5e7fb15
add ebx, ecx
sub edx, edi
add ecx, edi
xchg edx, ecx
xor ebx, edi
dec ecx
dec edi
xor edi, edx
xor edi, ebx
mov edi, edx
sub ecx, ebx
or ebx, ecx
and edi, 0xb5eb1b3b
add ecx, edx
jmp 0x46e876
add esi, 0x3c
rol edi, 3
ror ecx, 2
or ecx, 0xb5ec20ca
and edx, ecx
xchg edi, edx
mov edi, 0xb5ed2134
xor edx, edi
xor edx, ebx
shl ebx, 0xe
not ebx
xor ebx, edx
mov edx, edi
xor ecx, edi
inc ebx
or ecx, ebx
mov ebx, edi
jmp 0x46e3d8
mov esi, dword [esp + 0xf8]
or ecx, 0xb61bdfdb
or ecx, edx
and ebx, edi
and ecx, edx
add edi, ecx
and edi, ebx
xor edx, ebx
xchg edi, edx
sub edi, edx
xor edx, ebx
shl ebx, 0xf
sub edx, ecx
inc edi
jmp 0x46e9ce
jne 0x46e951
add ebx, edx
mov edx, ecx
xchg edi, ecx
rol ebx, 0x13
mov edx, ecx
add edx, edi
sub edx, 0xb625ee22
ror ecx, 0xf
and ecx, edx
and ebx, edx
jmp 0x46e505
add esi, 0xc
and ebx, 0xb63dddab
sub edi, 0xb63e1b31
mov edi, 0xb63e56e0
and ecx, edx
and edi, ebx
sub edi, ecx
and edx, edi
inc ebx
xor edi, ebx
add edi, ecx
or edi, edx
mov edi, ecx
jmp 0x46ba9a
mov esi, dword [esp + 0x78]
mov edx, 0xb6423455
add edx, 0xb64273d9
xor edi, 0xb642bea9
sub edi, 0xb642fcc2
mov ecx, edx
and edx, ecx
jmp 0x46bda3
movzx esi, word [esi]
or ebx, 0xb646fcff
mov edx, edi
xchg edx, ebx
and ebx, edi
sub ebx, edi
or edi, ecx
jmp 0x46dd8c
mov esi, dword [esi]
bswap edx
dec edx
rol ebx, 6
dec ebx
xchg ecx, edx
add ecx, edx
or edx, ecx
sub ebx, 0xb6604aeb
sub edx, ebx
xchg edi, ecx
or edx, edi
jmp 0x46e7d2
inc esi
not ecx
mov ecx, edx
sub edx, ebx
and ebx, edx
or edi, 0xb680f0f5
xor edi, 0xb68141ec
dec edi
shl ebx, 2
or edx, 0xb681ff19
mov edi, ecx
jmp 0x46d3dc
mov dword [esp + 0xf8], esi
xor ebx, edi
xor edx, ebx
xor ebx, edx
add ebx, edx
sub ebx, edi
not ecx
and edi, ebx
and ecx, edi
inc ecx
or ecx, ebx
or ecx, 0xb68fb032
jmp 0x46dac2
push esi
sub edx, ebx
xchg edi, edx
mov ecx, edi
mov edx, edi
ror ecx, 0x1f
or ecx, 0xb69136d1
shr ecx, 0x1e
xor edx, ebx
inc edi
or edx, ecx
rol ecx, 0x1a
add edx, edi
mov edx, 0xb692fac9
jmp 0x46ebe0
cmp byte [esi], 0
jmp 0x46c0de
mov dword [esp + 0x78], esi
xchg edx, edi
inc ecx
xor edi, ecx
and ebx, edx
and ebx, edi
ror edi, 8
or ebx, edx
jmp 0x46bcf5
add dword [esp + 0xf8], 4
xor edx, 0xb6a4ab63
or ecx, ebx
shl edx, 0x13
mov ebx, 0xb6a56868
dec edi
dec edi
inc edx
jmp 0x46cd67
rol eax, 8
sub ecx, 0xb6b37b8a
inc ebx
bswap edx
neg edx
or ecx, edx
xchg edx, edi
or edx, 0xb6b4fb0a
mov edx, 0xb6b536db
sub ecx, edi
shr edi, 9
xchg edi, ebx
mov edi, 0xb6b62db3
and ebx, edi
jmp 0x46d2be
mov esi, 0x30
shl ebx, 0x15
rol ebx, 0x10
xor ecx, ebx
sub ecx, edi
xchg edi, edx
xor ecx, 0xb6c17891
xor edi, edx
rol edi, 0xb
jmp 0x46e905
mov esi, dword [esp + 0x78]
xchg ebx, edx
shr edx, 0x1c
dec edx
jmp 0x46dbe2
mov dword [esp + 0x78], esi
xor edi, edx
xor edi, 0xb6f61f89
mov edx, ecx
rol ebx, 0xa
sub edi, 0xb6f79183
sub ecx, ebx
xor ebx, 0xb6f80a06
sub ecx, edi
xchg ecx, ebx
nop
add edx, 0xb6f912a7
inc edi
mov edi, 0xb6f99368
jmp 0x46edb6
sub dword [esp + 0x78], 8
mov edi, edx
sub ebx, edi
ror ebx, 3
or ebx, edx
jmp 0x46c40d
mov eax, 2
mov ecx, edi
and edi, 0xb7288b71
xor ebx, ecx
neg ebx
jmp 0x46c4bb
add esi, 0xc
or edi, 0xb72e42a9
ror edx, 0x1f
mov edi, edx
xor edi, edx
or ecx, 0xb72f4620
xchg ebx, edx
and edx, ecx
and edi, edx
shr edi, 0x15
sub ecx, edi
jmp 0x46c1d6
mov esi, dword [esi]
inc ebx
rol edx, 0x17
mov ecx, 0xb73cd1f5
add edx, ebx
xchg ecx, edx
add ebx, edx
mov ecx, ebx
xchg edx, edi
mov edi, 0xb73e4784
dec ebx
sub ebx, ecx
ror ecx, 1
jmp 0x46cafb
mul esi
xchg ebx, edi
add edi, 0xb748c9b7
xchg edi, edx
shr ebx, 1
xchg ebx, edi
shr edx, 0xf
ror edi, 0xe
jmp 0x46e6a2
mov esi, dword [esi]
add ecx, ebx
and ebx, ecx
mov ebx, ecx
mov edi, ebx
sub ecx, 0xb751ed00
xor ecx, 0xb7522b84
and ebx, 0xb75268e5
dec ebx
mov ecx, edi
and edi, ecx
jmp 0x46c4df
mov esi, dword [esp + 0x20]
xor ecx, 0xb75376d8
mov edi, edx
sub ecx, ebx
xchg edi, ecx
mov edi, ecx
add ecx, ebx
nop
neg ebx
add edi, ebx
or edx, 0xb755ae4a
and ecx, edx
jmp 0x46cb2d
mul esi
sub ebx, edi
mov ebx, 0xb75f2dbc
add edx, ebx
sub edi, 0xb75fa4dc
or ebx, 0xb75fe23e
ror edx, 0xa
add edi, ecx
or ebx, edi
mov edi, ebx
mov edi, ebx
add ecx, edi
and edx, edi
mov ecx, edi
add ebx, ecx
jmp 0x46ded3
add dword [esp + 0x78], eax
and ebx, ecx
xchg edi, edx
bswap ebx
rol edi, 0x10
sub ebx, ecx
xor ebx, 0xb7777b59
and edi, 0xb777b6cb
or ebx, edx
mov edx, ebx
add ecx, ebx
add edx, ebx
xor edi, ebx
xchg edi, edx
or ebx, ecx
jmp 0x46ed84
add esi, dword [esp + 0x20]
add ebx, edx
xchg edi, edx
dec ecx
ror ebx, 0x15
ror ebx, 0xb
xor ebx, edi
sub edi, 0xb791e48d
xchg ebx, edi
sub ebx, edx
xor edi, ebx
jmp 0x46d38f
add esi, dword [esp + 0xb8]
sub edx, 0xb7b57cfa
add ebx, 0xb7b5ba4c
add edi, 0xb7b5fbf4
mov edx, ebx
or ecx, 0xb7b6823e
shr ebx, 0x1d
add ebx, edi
jmp 0x46bb77
cmp eax, dword [esp + 0x64]
jmp 0x46cdd9
mov esi, dword [esi]
and ecx, ebx
shl ecx, 0xf
add ecx, edi
sub ecx, ebx
sub ecx, ebx
mov edi, edx
and edi, edx
xor edx, ecx
xchg ebx, ecx
sub edx, edi
add edi, 0xb7d4d8c8
mov edi, 0xb7d51970
jmp 0x46d47d
mov esi, dword [esi]
mov edx, ecx
add edi, 0xb7de4fc2
and ecx, edx
xchg edi, ebx
and ebx, edx
jmp 0x46c9b2
add dword [esp + 0x78], 4
not edx
not ecx
and ecx, 0xb7ea1052
add ecx, edi
mov ecx, edi
jmp 0x46cf79
mov esi, dword [esi]
sub edi, ebx
rol ecx, 1
sub ecx, edx
dec ebx
xchg edi, ebx
or edi, edx
or ebx, edi
sub edi, 0xb7ee847e
or edx, edi
neg edx
or edi, 0xb7ef4167
or ebx, edx
xor ecx, 0xb7efbb87
neg edi
jmp 0x46d823
mov dword [esp + 0xb8], eax
xchg ecx, ebx
sub ecx, ebx
xchg ebx, edi
shr ebx, 7
or edi, 0xb80738c3
inc edi
and ecx, edx
not edx
ror ebx, 3
inc ebx
or ebx, edx
mov ebx, edi
mov edx, ecx
jmp 0x46d8c0
add esi, dword [esp + 0x20]
or ecx, edi
and edi, 0xb81e506b
xchg ebx, edi
add ecx, ebx
sub edi, ebx
shl edi, 0x1b
jmp 0x46c7bd
mov dword [esp + 0xf8], esi
mov ebx, edi
and edi, ebx
mov edi, 0xb82aa314
add ebx, 0xb82ae17a
not ebx
and ebx, edx
and edi, edx
mov edi, edx
xor edx, 0xb82cdb9a
ror ecx, 6
jmp 0x46e951
mov esi, dword fs:[esi]
sub edx, ebx
xchg edi, ecx
or ebx, edx
sub edx, ecx
xchg edx, ecx
mov ecx, edi
sub ebx, edx
ror edx, 0x1e
jmp 0x46cf40
inc dword [esp + 0xb8]
dec ebx
xor edx, ebx
and ecx, edi
mov ecx, ebx
xchg ebx, edx
add ecx, edi
or ebx, edi
bswap ecx
mov edi, ebx
or edx, ebx
or ebx, 0xb83d8a4f
xor edi, 0xb83dc90d
jmp 0x46d4b8
mov esi, dword [esi]
xor edi, ebx
mov ebx, ecx
xor edx, ecx
sub ebx, 0xb844f982
nop
ror edx, 9
sub ecx, 0xb845b3b3
mov edx, ecx
and edx, 0xb8463bf9
sub ecx, edi
neg ecx
shl ebx, 0x1c
mov edx, ecx
shl ecx, 0x1c
or edx, edi
or ecx, ebx
jmp 0x46e03f
add esi, dword [esp + 0x20]
rol edx, 0x17
sub edx, ecx
sub edi, 0xb85742b7
and edi, ecx
xchg edi, ecx
jmp 0x46d36a
xor eax, eax
and ebx, edi
rol ecx, 0xd
sub ecx, 0xb86bf345
xchg ecx, edi
mov ebx, edx
shr edx, 0x1a
xor ecx, edi
sub ebx, ecx
add edx, edi
mov edx, ecx
sub ebx, ecx
jmp 0x46becc
mov esi, dword [esp + 0xf8]
shl edx, 6
sub edi, ebx
and edx, 0xb871e5e5
xchg edi, edx
mov edi, ebx
sub edi, ecx
shl ebx, 5
and ecx, ebx
xor edx, ecx
xchg ecx, edi
ror edx, 7
mov ebx, edx
and ebx, 0xb8744e3a
jmp 0x46e231
sub esp, 0x164
or edx, 0xb87f9303
sub ebx, edi
xor edi, ecx
bswap ecx
and ebx, 0xb88097e4
sub edx, ecx
xor ebx, ecx
and edi, ebx
inc edi
add ebx, 0xb881c561
add ebx, edi
jmp 0x46ee43
mov esi, dword [esp + 0x78]
shr ebx, 0x1e
dec edx
add ecx, edi
rol edx, 0x11
and edi, edx
or ecx, 0xb88adae8
add ebx, edi
and ebx, 0xb88b62c1
rol ebx, 0xc
sub ebx, edi
sub ebx, ecx
and ebx, edx
or edi, ecx
and edi, ebx
jmp 0x46c1b0
mov esi, dword [esp + 0x20]
and edx, 0xb88d1cb2
mov ebx, 0xb88d5a28
xchg edx, edi
or edx, ecx
sub ebx, edx
xchg edi, ecx
sub edi, ecx
xor edi, edx
neg ebx
jmp 0x46c6e4
mov dword [esp + 0xb8], 0
xchg ebx, edx
xchg edi, ebx
nop
jmp 0x46c9f5