Function at 0x46b0bb
Capabilities:
Encrypt data using chaskey

Disassembly:
mov edi, dword [edi]
xchg edx, ebx
shr ecx, 0x1f
shr esi, 3
mov ecx, esi
mov edx, ecx
ror ecx, 0xc
jmp 0x46ce6c
inc edi
xor ebx, 0x34ec8bfb
add esi, ebx
and ecx, 0x34ecbf97
or ebx, esi
xchg ecx, esi
dec ecx
and esi, ecx
mov esi, edx
xchg edx, esi
neg edx
jmp 0x46cced
mov edi, dword fs:[edi]
sub edx, esi
ror esi, 0x1f
mov esi, edx
inc esi
rol edx, 0x14
sub ebx, esi
sub esi, edx
xchg edx, esi
and edx, 0x34ef60e1
mov esi, edx
jmp 0x46aeb4
mov edi, dword [esp + 0xbc]
xor ecx, edx
sub esi, 0x34f942b7
neg edx
neg ecx
nop
rol ecx, 0xd
xchg edx, ebx
xor ebx, esi
or edx, ecx
and esi, 0x34fa25a5
add ebx, ecx
or ecx, esi
add edx, ebx
and edx, ecx
jmp 0x46c172
sub dword [esp + 0xbc], 8
xor edx, ebx
ror edx, 0xb
mov esi, ecx
not esi
or ebx, esi
add edx, 0x3501fff9
add ecx, ebx
or ebx, 0x350236d7
add edx, 0x3502534d
sub ecx, ebx
xor ebx, ecx
or ecx, edx
and esi, ecx
xor esi, edx
jmp 0x46c030
mov edi, dword [esp + 0x28]
mov edx, ecx
mov ecx, ebx
sub ecx, ebx
or edx, ecx
and esi, 0x35036397
and ecx, esi
jmp 0x46cdc6
mov eax, 2
sub edx, ebx
xor ebx, esi
or edx, ecx
and esi, 0x3503efb3
add ebx, ecx
mov esi, ebx
and edx, ecx
mov ebx, ecx
xchg esi, ebx
mov edx, 0x35048db1
jmp 0x46a81f
mov edi, dword [edi]
dec edx
and esi, edx
ror edx, 0x16
or ebx, esi
xor ecx, edx
mov ebx, edx
xor edx, ecx
xchg esi, ebx
mov edx, 0x350ef76f
not ecx
jmp 0x46d20f
add edi, 0x18
not ecx
shl ebx, 0x1d
xor ecx, edx
add ebx, ecx
and ecx, 0x35108419
ror ebx, 0x17
jmp 0x46adb0
add dword [esp + 0xbc], 0x20
and esi, ebx
mov ebx, ecx
sub ebx, ecx
mov ebx, 0x351ee995
xor ebx, edx
and ebx, esi
xchg ecx, edx
rol ecx, 0x1b
jmp 0x46a6ce
add edi, dword [esp + 0xc8]
and ecx, esi
or ecx, edx
neg ebx
xor edx, ecx
bswap ebx
dec ecx
mov ebx, edx
not ecx
jmp 0x46bc25
mov edi, dword [esp + 0xbc]
and ecx, esi
or esi, 0x3526f7eb
or edx, ebx
xor edx, esi
or esi, 0x35274b85
add ecx, edx
add ebx, 0x35277f6b
sub ebx, edx
inc esi
and edx, esi
jmp 0x46d2ce
add edi, 0x3c
bswap ebx
sub esi, 0x352933f1
sub edx, ebx
ror ecx, 2
dec ebx
sub ecx, 0x3529a4f3
mov esi, ebx
add ecx, ebx
and ecx, edx
mov edx, ebx
jmp 0x46b8ef
mov edi, dword [edi]
xchg ecx, esi
mov ebx, edx
add ecx, ebx
add ebx, ecx
shl esi, 0x1d
or esi, ebx
add ebx, 0x352ec30f
xor ecx, esi
jmp 0x46bc49
mov edi, dword [edi]
and edx, ebx
xchg edx, esi
ror ecx, 0x13
mov esi, edx
rol esi, 0x1c
mov esi, ebx
add ebx, esi
dec ecx
jmp 0x46b5d4
mov edi, dword [esp + 0xbc]
rol ecx, 0x1f
xor ebx, ecx
inc esi
not edx
or ecx, ebx
xor ebx, ecx
inc esi
xchg ebx, ecx
sub edx, ecx
or ebx, 0x353669c3
xchg edx, esi
and esi, 0x35369f91
shr esi, 6
add esi, 0x3536d487
jmp 0x46c91a
add edi, 0xc
sub ebx, 0x35389495
and esi, ecx
xor esi, edx
shl edx, 0xb
xchg ebx, edx
xchg ecx, esi
neg ecx
and ebx, edx
jmp 0x46a47a
add edi, dword [esp + 0xc8]
shl ecx, 8
xchg edx, esi
dec ecx
mov esi, 0x353bd76b
add esi, ecx
and esi, edx
add ebx, edx
and ebx, esi
jmp 0x46c3e2
sub esp, 0xd4
shl edx, 0xa
xor esi, ecx
mov edx, ecx
or esi, edx
xor ecx, 0x35530c6b
or ecx, ebx
not esi
bswap edx
xchg ecx, esi
and esi, ecx
or esi, ebx
or ecx, 0x3553c8b5
jmp 0x46d322
mov dword [esp + 0x28], eax
shr ebx, 0x10
or edx, esi
mov esi, ecx
xor edx, ecx
add ecx, ebx
bswap ebx
or edx, ecx
and esi, 0x355aa5eb
and esi, 0x355ac5e9
or ecx, edx
jmp 0x46a7e9
mov eax, 4
sub edx, esi
or ebx, esi
xor ecx, esi
bswap ecx
shr ebx, 0x1a
or edx, esi
or ebx, 0x3561879d
sub edx, esi
jmp 0x46d0fc
add edi, dword [esp + 0xc8]
sub esi, 0x3566e437
add edx, esi
rol esi, 0x1b
xor edx, esi
add esi, 0x356751b1
neg edx
dec ebx
xor ebx, ecx
nop
and edx, esi
jmp 0x46c7d6
jne 0x46b56a
mov edx, 0x356c5e89
bswap ecx
add ebx, 0x356c977d
not esi
rol edx, 0x17
xor edx, ebx
sub edx, esi
inc ecx
bswap ecx
or esi, ecx
xchg ecx, esi
ror ebx, 0x12
jmp 0x46c0e3
mov edi, dword [esp + 0x40]
sub ecx, edx
xor ebx, edx
dec ebx
add edx, ebx
and ebx, ecx
sub ecx, esi
xor ecx, 0x3570cd8d
add esi, ecx
or edx, ecx
xchg ecx, edx
sub ebx, 0x35713841
and edx, 0x3571550d
sub edx, ecx
xor ecx, edx
dec esi
neg edx
jmp 0x46c962
mov edi, dword [esp + 0x40]
shr ecx, 0xa
xor ecx, edx
add ecx, 0x35764495
or ecx, esi
ror ebx, 1
inc esi
add ecx, esi
rol ebx, 0x18
and edx, esi
shr ecx, 0x1c
jmp 0x46c703
inc dword [esp + 0x28]
mov ecx, ebx
add ebx, 0x35773a3b
mov edx, ebx
xor ecx, ebx
dec edx
xor ebx, esi
dec ecx
add edx, ecx
add ecx, edx
and ecx, esi
jmp 0x46c8af
mov dword [esp + 0xc8], edi
xchg ebx, edx
rol edx, 0xc
nop
add esi, ebx
sub edx, 0x357b0bef
add edx, ecx
rol edx, 5
xchg ebx, edx
add edx, 0x357b7569
and esi, edx
jmp 0x46b74f
add dword [esp + 0xbc], eax
xor ebx, ecx
xor edx, esi
mov edx, ecx
xor ecx, edx
dec esi
xchg ebx, edx
shl edx, 4
or edx, ebx
jmp 0x46ae43
mov edi, dword [esp + 0xc8]
add esi, edx
and ecx, 0x3585790b
sub edx, ebx
xor edx, 0x3585afdd
or ecx, edx
shl edx, 0x1d
mov ebx, ecx
inc esi
mov edx, ebx
not ecx
add esi, ebx
sub ebx, esi
jmp 0x46acd9
mov edi, dword [edi]
or ebx, 0x3591db55
sub esi, ebx
xor ecx, esi
xchg esi, ebx
mov ebx, esi
dec ebx
jmp 0x46ba49
push edi
add ecx, ebx
or ebx, edx
add ecx, 0x3597eb6d
neg ebx
jmp 0x46ce4e
mov dword [esp + 0xbc], edi
sub ebx, edx
sub ecx, 0x359b916f
neg ecx
shr ebx, 0x13
mov ebx, edx
dec ebx
and ebx, esi
add edx, esi
jmp 0x46ccd1
mov edi, dword [edi]
xor ecx, 0x359c574b
add esi, ecx
and esi, edx
sub edx, esi
ror esi, 3
xchg ecx, ebx
and ebx, edx
and edx, ecx
and esi, ebx
dec esi
xor ecx, ebx
dec edx
and esi, edx
add ebx, 0x359db1f9
jmp 0x46a9c9
add edi, dword [esp + 0xc8]
xchg edx, ecx
mov edx, ebx
and ecx, edx
inc edx
and edx, esi
neg esi
jmp 0x46c76e
mov dword [esp + 0xbc], edi
sub ecx, edx
and ecx, 0x35aa7a7b
mov esi, 0x35aa9753
sub ebx, ecx
shl ebx, 0x1a
bswap esi
add ecx, ebx
mov esi, edx
jmp 0x46b543
mov dword [esp + 0xbc], edi
or ebx, 0x35ab402b
add ebx, edx
and esi, ecx
bswap ecx
add ebx, 0x35abae07
inc edx
or ecx, edx
mov ebx, 0x35ac014f
jmp 0x46c55d
xor al, byte [edi]
xchg esi, ecx
mov ebx, 0x35b7e635
dec esi
neg edx
and esi, ecx
add ebx, edx
jmp 0x46ca55
mov edi, dword [esp + 0xc8]
xor edx, esi
sub ebx, ecx
xor ecx, edx
add ebx, 0x35bfe57b
not esi
and ebx, ecx
xor ebx, edx
mov ecx, 0x35c04e49
jmp 0x46c159
mov edi, dword [esp + 0xbc]
and ebx, edx
or ecx, 0x35cb012b
xchg ecx, esi
sub edx, ebx
add edx, esi
mov edx, ecx
not edx
add esi, ecx
jmp 0x46cf0f
add dword [esp + 0xbc], 4
mov ecx, 0x35cfc371
sub esi, ebx
add esi, edx
mov esi, ecx
dec ebx
add edx, ebx
jmp 0x46ac86
add edi, dword [esp + 0xbc]
mov ebx, ecx
and ebx, esi
sub ebx, ecx
rol edx, 0x17
bswap edx
xchg edx, ebx
jmp 0x46ad65
mov edi, dword [edi]
shr ecx, 2
mov ecx, ebx
mov esi, ebx
or esi, edx
sub ecx, edx
shr edx, 0x1c
jmp 0x46b35c
mov dword [esp + 0x40], edi
xchg esi, ebx
sub esi, edx
sub ecx, ebx
bswap esi
xor edx, ebx
xor esi, ebx
jmp 0x46a83b
mov edi, 0x30
add ecx, ebx
neg esi
xchg edx, ecx
sub ebx, ecx
or ecx, 0x3608472f
neg edx
ror ebx, 0x1b
or edx, ecx
add ecx, esi
or ecx, ebx
jmp 0x46a566
mov edi, dword [esp + 0xc8]
sub edx, ebx
sub esi, 0x360cfd25
and edx, ecx
neg edx
and esi, ecx
mov edx, 0x360dae8b
bswap edx
neg edx
shl ebx, 0x1d
xor ecx, 0x360e7569
jmp 0x46d94f
cmp eax, dword [esp + 0x68]
jmp 0x46b40e
add edi, dword [esp + 0x28]
shl ecx, 0x11
or ebx, 0x36225e79
neg ecx
and edx, esi
sub edx, ebx
add ecx, edx
xor edx, ebx
or edx, ecx
and edx, ecx
ror esi, 0xf
xchg ebx, esi
xchg ebx, esi
jmp 0x46b298
add esp, 0xd4
xor esi, 0x362864ab
xor ebx, 0x36289219
mov ebx, esi
xor esi, ebx
jmp 0x46d5da
mov dword [esp + 0x40], edi
or ecx, esi
xor ebx, 0x362dde03
xchg ebx, ecx
rol esi, 1
sub ebx, ecx
or ebx, ecx
xor edx, esi
or edx, esi
jmp 0x46b56a
add dword [esp + 0x40], 4
inc edx
xchg ebx, esi
and ebx, 0x363a95b7
xor ecx, edx
and ebx, ecx
or esi, ecx
mov edx, esi
sub esi, ecx
xchg esi, ebx
and esi, ebx
jmp 0x46b498
mov edi, dword [edi]
add ecx, edx
neg ecx
xchg ebx, ecx
or esi, ecx
inc esi
sub ebx, ecx
mov esi, ecx
and edx, esi
ror ecx, 0x10
xchg ecx, edx
rol edx, 0xe
mov ebx, esi
jmp 0x46bc0e
mov edi, dword [edi]
sub edx, 0x3643a85f
not ebx
shr edx, 1
bswap ebx
add ebx, esi
mov ecx, esi
mov ecx, esi
rol ecx, 0x16
mov esi, edx
and ebx, 0x3645cf7d
jmp 0x46cbfe
pop edi
sub esi, edx
mov esi, ebx
mov ebx, ecx
sub ecx, ebx
xchg ecx, esi
shl ecx, 0x1e
jmp 0x46c6c1
rol eax, 8
or esi, ebx
mov esi, ecx
rol edx, 0xb
dec ebx
or edx, 0x3651586b
and ecx, 0x365189f3
neg edx
xchg edx, ebx
sub ebx, ecx
add esi, edx
jmp 0x46a529
add edi, dword [esp + 0xc8]
sub ecx, esi
dec ecx
xchg ebx, esi
not ecx
inc ecx
ror ebx, 8
xor edx, ebx
xchg ebx, ecx
jmp 0x46b9cb
add dword [esp + 0xbc], 0x78
xor edx, ecx
add edx, ebx
and esi, 0x366e4585
add ecx, esi
add ecx, edx
dec ebx
jmp 0x46bef6
cmp byte [edi], 0
jmp 0x46d3d8
mul edi
mov esi, ebx
shl ecx, 0x14
or esi, ecx
sub ecx, edx
sub edx, ebx
xchg ebx, ecx
not esi
neg edx
xor esi, ecx
or ebx, 0x367580ab
jmp 0x46b1a4
xor eax, eax
or esi, ecx
add ecx, ebx
bswap ebx
xchg edx, esi
sub ebx, edx
mov edx, 0x36793af7
sub ecx, edx
add esi, ecx
mov ecx, edx
mov ecx, edx
jmp 0x46be0b
add edi, 0xc
mov ebx, ecx
xor esi, ebx
shl edx, 7
or esi, edx
mov ebx, esi
or ebx, ecx
or edx, ebx
shr edx, 0x1b
xchg edx, ecx
add ecx, edx
mov edx, ecx
add esi, edx
jmp 0x46a98c
mov edi, dword [edi]
add esi, ebx
and esi, edx
sub ecx, 0x367e96eb
shl ebx, 0x10
xor ebx, edx
xchg ecx, esi
xor ecx, edx
or ecx, esi
mov ecx, ebx
and edx, ebx
or edx, esi
or ecx, esi
jmp 0x46ac10
movzx edi, word [edi]
dec ecx
xor edx, 0x368e0c05
sub edx, ebx
sub ebx, edx
add edx, ecx
dec esi
and edx, esi
add edx, 0x368ea91f
jmp 0x46d241
mov edi, dword [edi]
xchg ecx, edx
dec esi
and ebx, ecx
inc ecx
or ecx, 0x36967043
and edx, 0x36968a03
and edx, 0x3696ab87
add ecx, edx
sub edx, 0x3696dde7
xchg ecx, esi
sub ebx, ecx
bswap ebx
add esi, ecx
ror esi, 0x11
jmp 0x46ba69
mul edi
and edx, esi
add ecx, 0x36979891
add edx, ecx
add edx, ebx
mov esi, 0x3697e6b9
or ebx, 0x36980013
xchg edx, ecx
shr ebx, 0x1d
mov edx, ecx
sub ebx, esi
jmp 0x46b6c5
mov edi, dword [edi]
bswap ebx
sub ecx, 0x369bd237
xor edx, ebx
add ecx, esi
add ecx, edx
mov ecx, 0x369c370b
and esi, edx
shl ebx, 0x1a
xor ecx, edx
and edx, ecx
sub esi, ebx
shr ebx, 0xa
add ecx, edx
xchg esi, ebx
jmp 0x46af20
mov dword [esp + 0x28], 0
mov esi, 0x369e6c8d
shl esi, 7
not edx
and esi, 0x369ebc9d
add ecx, esi
sub esi, 0x369eee7b
not edx
xchg ecx, edx
and ecx, edx
dec ecx
add esi, ecx
xor ecx, edx
add ecx, ebx
xchg edx, ebx
jmp 0x46d894
jne 0x46be0b
not esi
mov esi, ecx
xchg ecx, edx
or esi, ebx
sub edx, 0x36a4b1b5
shl ecx, 0xe
xor ecx, 0x36a4ebf5
mov edx, 0x36a5059b
jmp 0x46ca23
ret
mov dword [esp + 0x40], 0
xchg ebx, edx
sub ecx, 0x36c7e1cb
inc ecx
sub edx, 0x36c81435
or ecx, ebx
dec esi
dec esi
xchg edx, esi
xchg ebx, ecx
sub esi, ebx
jmp 0x46d9a2
mov dword [esp + 0xbc], 0
and ebx, 0x36cb7a67
and ecx, esi
xor esi, ebx
and esi, 0x36cbc969
inc esi
xchg ecx, edx
or edx, esi
add edx, 0x36cc342d
or ebx, esi
xchg edx, ecx
and ebx, esi
or ecx, edx
jmp 0x46d971
add dword [esp + 0xbc], edi
inc ebx
or ecx, esi
mov esi, 0x36ccf57b
xchg ecx, edx
xor ebx, edx
mov ecx, ebx
sub ebx, 0x36cd5825
xchg ebx, esi
jmp 0x46ab7b
mov dword [esp + 0x68], edi
xchg edx, ecx
mov esi, ebx
and esi, 0x36cdc6f9
xchg ebx, ecx
or ecx, esi
or edx, 0x36ce15eb
sub edx, ebx
xor ecx, esi
or edx, ebx
xor esi, edx
ror esi, 0xb
mov esi, ebx
and ebx, edx
xor ecx, esi
jmp 0x46c4f0
mov dword [esp + 0xc8], 0
xor ecx, ebx
sub ebx, 0x36cf1c23
neg esi
sub esi, ecx
mov esi, edx
sub ecx, edx
not edx
mov ecx, edx
sub ebx, ecx
or esi, ebx
dec ecx
add esi, edx
dec edx
sub esi, edx
jmp 0x46d91c