Function at 0x46c9ba
Capabilities:
Encrypt data using chaskey

Disassembly:
sub dword [esp + 0xf8], 8
not ebx
mov esi, ebx
shr esi, 6
xor ecx, 0xca0aaea3
xor ebx, ecx
inc edi
sub edi, 0xca0b07c3
dec esi
jmp 0x46dfb1
add esp, 0x13c
sub ecx, edi
sub ebx, esi
rol ebx, 7
xor edi, 0xca0dd753
and edi, 0xca0df03d
xchg edi, ecx
xchg ecx, edi
sub ecx, ebx
mov ecx, esi
dec ebx
add ebx, ecx
dec ecx
jmp 0x46d644
pop edx
xor esi, edi
mov edi, ebx
xor ebx, edi
mov esi, 0xca13c4e3
or edi, ecx
not ebx
sub esi, ebx
ror ecx, 7
xchg esi, ecx
add ecx, edi
jmp 0x46b30c
add edx, dword [esp + 0xf8]
add ecx, ebx
sub ebx, esi
xor ebx, esi
sub edi, ebx
inc ebx
add ebx, 0xca151075
shl ebx, 3
or ebx, 0xca154c53
jmp 0x46bb1c
mul edx
and edi, esi
add esi, ecx
sub ebx, 0xca15a791
xchg ecx, ebx
add ebx, esi
or ecx, ebx
neg ecx
dec ebx
xor esi, ecx
xor ebx, ecx
add esi, edi
xor ecx, ebx
dec esi
add ebx, edi
jmp 0x46aafb
add dword [esp + 0xf8], eax
mov edi, esi
nop
and edi, 0xca1aa743
sub esi, 0xca1ac3d3
inc esi
ror ebx, 4
jmp 0x46c271
mov edx, dword [edx]
inc ebx
xor ecx, ebx
dec esi
and esi, ecx
add edi, ebx
add edi, ecx
and ecx, edi
neg edi
and ecx, esi
xchg esi, edi
sub ecx, esi
mov edi, ecx
xor ecx, ebx
or ecx, ebx
jmp 0x46ae82
mov dword [esp + 0x100], edx
neg edi
xchg ebx, ecx
and ebx, 0xca378005
and edi, ebx
xor ebx, edi
and ecx, 0xca37d145
neg ebx
inc edi
jmp 0x46b2a8
mov dword [esp + 0x134], edx
sub ebx, esi
inc ebx
and ebx, edi
neg ebx
inc edi
mov edi, ebx
and edi, esi
xor edi, esi
sub ebx, ecx
xchg edi, ecx
jmp 0x46bf51
add edx, 0x18
ror edi, 4
shr esi, 0x1f
mov ecx, edi
add esi, edi
jmp 0x46abd3
mov edx, dword [edx]
bswap ecx
nop
or edi, 0xca497bd5
ror ecx, 0x1f
add edi, ebx
dec ecx
ror ebx, 3
xchg ebx, ecx
rol ebx, 2
xor edi, esi
add ebx, ecx
dec ecx
mov ebx, 0xca4a8fc1
add ecx, 0xca4aa8df
jmp 0x46cc5e
mov edx, dword [esp + 0x134]
sub ebx, 0xca4c4cdf
shl ebx, 0x1e
xchg ebx, ecx
xor esi, edi
nop
and ecx, esi
jmp 0x46bec3
add edx, 0x3c
or ebx, edi
xor esi, ecx
xchg ecx, esi
add esi, edi
ror ebx, 0xb
xchg esi, edi
and edi, ebx
or esi, ecx
sub edi, ecx
and esi, edi
not ebx
add ecx, esi
jmp 0x46b363
mov eax, 2
mov esi, edi
xchg edi, ecx
not ebx
sub ecx, esi
and ebx, edi
xchg ebx, edi
shr ecx, 0x12
neg edi
sub ebx, esi
add ebx, 0xca5c30c1
jmp 0x46cdda
cmp eax, dword [esp + 0x118]
jmp 0x46bb77
mov edx, dword [edx]
sub esi, edi
add ebx, edi
xor esi, ebx
xor edi, 0xca60d8a9
xor ecx, 0xca60f495
not ebx
rol esi, 0x16
add esi, 0xca614d5d
and edi, 0xca616611
sub esi, ecx
xor esi, ecx
add ecx, 0xca61b6f9
jmp 0x46b491
mov dword [esp + 0xf8], edx
rol edi, 0x14
or ecx, ebx
or ebx, 0xca6b721f
xor ebx, 0xca6b8eaf
sub esi, 0xca6bab09
inc esi
neg ebx
inc edi
and ebx, esi
or ecx, 0xca6c333d
jmp 0x46d4d4
mov dword [esp + 0x80], 0
shl ecx, 0xc
xchg ebx, edi
dec ecx
xor ecx, edi
or ebx, esi
and ecx, esi
jmp 0x46c439
mov edx, dword [edx]
sub esi, 0xca6f7a89
shl ecx, 4
and ebx, edi
or esi, 0xca6fcb27
xor esi, 0xca6fe7b7
add edi, esi
add esi, 0xca701ecd
mov ecx, edi
xchg edi, ebx
and edi, ecx
jmp 0x46c2a4
movzx edx, word [edx]
rol ecx, 0x1e
xor ecx, 0xca74ed9b
or ebx, 0xca7506a9
sub esi, edi
xor ecx, esi
sub esi, 0xca755a83
xor ebx, edi
dec ecx
jmp 0x46aa6e
mov edx, dword [esp + 0x100]
or edi, ebx
and ecx, 0xca86266b
bswap edi
mov ebx, esi
mov edi, esi
rol esi, 0x12
add esi, 0xca86b16d
or esi, ecx
jmp 0x46c7a2
mov dword [esp + 0xf8], edx
mov esi, ecx
and edi, 0xca89f96d
rol edi, 0x19
shl esi, 0x1b
xchg ecx, edi
add edi, esi
and ecx, esi
sub ebx, 0xca8a9cc9
xor edi, ebx
neg ebx
jmp 0x46d1eb
rol eax, 8
add ecx, 0xca8af6e7
ror edi, 4
and ebx, ecx
add ebx, 0xca8b4643
and ecx, edi
add esi, edi
sub ebx, esi
not edi
xor edi, esi
dec ebx
sub ebx, ecx
add edi, ecx
jmp 0x46c9e4
mov edx, dword [esp + 0x134]
and edi, 0xca925ca3
dec ecx
rol ecx, 8
add ecx, 0xca92ae07
xor esi, 0xca92cead
sub ebx, edi
and edi, 0xca930207
xchg edi, ebx
bswap ecx
xor ebx, esi
and edi, esi
and ebx, edi
jmp 0x46aa4a
mov edx, dword [edx]
add edi, 0xca9f74f7
inc ecx
rol ebx, 0xd
add ebx, edi
xor ecx, 0xca9fe089
dec ecx
mov esi, ebx
xor esi, edi
or edi, 0xcaa051cb
ror edi, 0x1e
jmp 0x46bd90
jne 0x46deb3
xor edi, ecx
ror esi, 0x16
mov ebx, edi
xchg esi, ecx
add ebx, ecx
add ecx, ebx
xor esi, edi
not edi
shl ecx, 0x14
or ecx, 0xcaa30ddd
jmp 0x46df06
mov dword [esp + 0xf8], edx
xor edi, ecx
or ecx, ebx
add edi, ebx
add esi, 0xcab501bd
and ebx, ecx
mov ebx, esi
jmp 0x46b0d1
add dword [esp + 0xf8], edx
inc ebx
shr edi, 0x1a
xchg ecx, ebx
add ebx, esi
xor ebx, 0xcabf1ec1
add edi, ebx
rol edi, 0xe
or ebx, 0xcabf7eb9
inc ecx
or ecx, esi
jmp 0x46bf29
push edx
sub esi, ecx
and ecx, edi
sub edi, ecx
inc ecx
xchg esi, ebx
or ecx, 0xcac07649
and edi, 0xcac09333
rol edi, 0x1d
sub esi, ecx
ror esi, 0x13
shr ecx, 0x15
bswap ebx
jmp 0x46c92f
add dword [esp + 0xf8], 0x20
and ecx, 0xcac1f5c3
sub ebx, 0xcac20e53
and ebx, esi
nop
and edi, 0xcac264c9
sub esi, 0xcac28159
jmp 0x46e013
mov edx, dword [esp + 0x134]
or esi, ecx
inc edi
rol esi, 0xb
sub esi, ebx
xor esi, ebx
not ecx
inc ebx
mov esi, ebx
xor ecx, ebx
sub esi, edi
sub ecx, esi
xchg ebx, edi
jmp 0x46b1ce
mov edx, dword [esp + 0xf8]
add ebx, esi
ror ebx, 4
bswap esi
xor edi, 0xcade2531
xchg ecx, esi
mov ecx, ebx
jmp 0x46b07d
add edx, dword [esp + 0x134]
or esi, ebx
and edi, esi
xor ecx, esi
dec edi
sub edi, 0xcadfb06d
mov edi, esi
add ecx, 0xcadfe4e9
mov ecx, 0xcae001d1
bswap ebx
xchg ecx, esi
add esi, edi
ror ebx, 7
shl ebx, 5
xor edi, esi
sub edi, ebx
xor edi, ebx
jmp 0x46c390
mov dword [esp + 0x100], edx
xchg ebx, edi
shr ebx, 0x16
xor ecx, edi
xchg edi, ecx
sub esi, ebx
sub esi, 0xcae7b9ff
xchg esi, edi
neg ebx
and edi, ecx
mov esi, edi
sub edi, ecx
sub edi, esi
mov ebx, ecx
inc ebx
jmp 0x46deb3
mov dword [esp + 0x100], 0
and esi, edi
shr ecx, 0x19
and ebx, 0xcaed6d19
xchg edi, esi
add ecx, edi
sub ebx, ecx
and esi, edi
or edi, 0xcaee0cef
jmp 0x46d652
mov eax, 4
dec edi
shr ebx, 0x18
or edi, ecx
xchg ecx, edi
xor ecx, ebx
and ebx, 0xcaeeca89
inc esi
or esi, 0xcaef03dd
bswap ecx
or ecx, ebx
jmp 0x46b5dd
add dword [esp + 0x100], 4
xor ebx, edi
inc ebx
and esi, edi
sub ecx, 0xcb001523
xor ebx, edi
inc esi
jmp 0x46b7f6
mov edx, dword [edx]
or ecx, edi
shr ecx, 9
or esi, ebx
bswap esi
not ecx
bswap edi
not esi
xor edi, ecx
jmp 0x46d2c0
add edx, dword [esp + 0x134]
neg ecx
or ebx, edi
neg esi
add edi, ecx
sub edi, 0xcb146fcd
shr edi, 0x14
and ebx, 0xcb14bbb9
and edi, ebx
mov esi, edi
sub ecx, ebx
jmp 0x46ae5f
mov edx, dword fs:[edx]
rol ecx, 0x19
shl ebx, 0x18
and ebx, esi
or esi, ebx
or edi, esi
and edi, 0xcb17738f
jmp 0x46d624
xor eax, eax
and esi, ebx
bswap esi
ror edi, 0x14
mov esi, ecx
shr edi, 0x1d
add ecx, 0xcb18f171
nop
mov edi, ebx
bswap esi
neg ebx
jmp 0x46dc25
sub esp, 0x13c
xor ecx, ebx
neg edi
xchg esi, ebx
xor ecx, 0xcb1d3083
add edi, ecx
or ecx, ebx
mov ebx, 0xcb1d7fcb
add ecx, 0xcb1d98d9
and edi, ebx
xchg ebx, esi
jmp 0x46b4c0
inc edx
dec edi
mov ebx, 0xcb1e0c03
xor ecx, ebx
sub ecx, 0xcb1e42ad
xor esi, edi
or edi, ebx
jmp 0x46db7e
mov dword [esp + 0xf8], 0
or esi, ebx
add ebx, edi
mov ecx, edi
and esi, ecx
or ecx, ebx
mov esi, ebx
or ecx, 0xcb27f747
rol edi, 7
mov edi, ecx
ror esi, 0x1b
add esi, ebx
or ebx, esi
sub ebx, edi
and esi, ecx
jmp 0x46cb1d
mov dword [esp + 0x118], edx
ror ecx, 0x11
sub edi, ecx
add edi, 0xcb2b9685
xor edi, ecx
or edi, esi
mov ebx, edi
inc esi
mov esi, ecx
xor ebx, ecx
inc edi
jmp 0x46d27f
add edx, 0xc
xor esi, ecx
sub ecx, edi
xchg ebx, ecx
sub esi, 0xcb3058ab
xchg ebx, esi
sub ebx, edi
add edi, 0xcb30b75b
sub edi, ecx
dec ebx
dec edi
add ebx, 0xcb313def
not esi
neg ecx
and esi, 0xcb319de5
jmp 0x46de96
add edx, dword [esp + 0x134]
sub edi, ebx
shl ecx, 0xa
xor ecx, edi
xchg ecx, edi
sub ecx, 0xcb375d2b
mov ecx, 0xcb377ddf
sub edi, ebx
or esi, 0xcb37b931
and esi, 0xcb37dc71
add edi, esi
or ecx, 0xcb381ccd
or ecx, esi
jmp 0x46a95f
mov edx, dword [esp + 0xf8]
ror esi, 1
shl ebx, 9
rol ebx, 0x16
not edi
ror esi, 0xd
add ecx, 0xcb390c49
jmp 0x46cd2d
mov edx, dword [edx]
or esi, 0xcb3d7c77
not esi
or esi, edi
sub ecx, esi
sub ebx, edi
mov esi, 0xcb3e2cd5
sub esi, ebx
xor ebx, 0xcb3e7721
add esi, ecx
or ecx, edi
add edi, 0xcb3edb3d
bswap esi
jmp 0x46c889
mov edx, dword [esp + 0x80]
or esi, ecx
add edi, 0xcb4360df
and esi, ebx
xchg ebx, ecx
xor edi, esi
sub edi, ebx
bswap edi
mov esi, edi
jmp 0x46cf29
mul edx
ror edi, 0x15
shr esi, 0x15
and edi, ecx
and ecx, ebx
inc edi
rol esi, 0x11
or ecx, 0xcb4d4c29
rol ecx, 6
and edi, ecx
xor esi, edi
xchg ebx, ecx
or edi, ebx
or esi, ecx
ror esi, 0x17
jmp 0x46d015
mov dword [esp + 0x80], eax
ror ebx, 0x1f
xor ebx, 0xcb54edbf
or ecx, 0xcb550e79
xchg esi, ecx
mov ebx, esi
mov ebx, esi
or edi, esi
sub edi, esi
sub ebx, ecx
sub ebx, ecx
ror esi, 0x1e
dec esi
jmp 0x46a8f6
jne 0x46dc25
shl esi, 0x10
ror ebx, 0x14
shl edi, 0x13
mov edi, ebx
and edi, esi
add esi, ecx
and ecx, edi
dec ecx
or esi, edi
and ebx, 0xcb58cdd7
xor ebx, esi
xchg esi, ecx
xchg ecx, ebx
add edi, ecx
not ebx
xor ebx, esi
jmp 0x46aa2c
mov edx, dword [edx]
rol ebx, 0x17
bswap edi
inc esi
xor ecx, edi
or esi, ebx
and edi, esi
or edi, ebx
mov ebx, edi
add ebx, ecx
ror ebx, 0x13
jmp 0x46b000
add edx, dword [esp + 0x134]
and edi, 0xcb5f6193
rol edi, 0x1a
sub edi, ecx
inc ecx
sub ecx, 0xcb5fd213
mov edi, ebx
xor edi, esi
mov esi, 0xcb60202b
sub esi, ecx
add ebx, esi
and esi, ebx
shr ecx, 0x1f
jmp 0x46b886
mov edx, dword [esp + 0x100]
shl esi, 0x1e
sub ecx, 0xcb644a11
rol ebx, 0x16
inc esi
xchg ecx, esi
xor esi, ecx
and esi, 0xcb64d929
rol esi, 0xc
add ecx, esi
xor edi, esi
jmp 0x46d250
add edx, dword [esp + 0x80]
inc esi
or ebx, ecx
inc edi
inc edi
xor esi, ebx
or ecx, 0xcb670b9d
and ebx, edi
mov ebx, ecx
jmp 0x46c462
mov edx, 0x30
xor esi, 0xcb695e4d
xor esi, edi
sub edi, esi
or ebx, ecx
rol edi, 6
xchg ebx, ecx
or esi, edi
sub esi, edi
jmp 0x46c8f7
add edx, dword [esp + 0x134]
mov edi, ecx
xor ecx, edi
shr ecx, 0xf
bswap esi
sub esi, 0xcb6c3b81
xchg edi, ebx
inc ebx
inc edi
rol esi, 0x1b
shl ecx, 0x11
jmp 0x46beeb
add dword [esp + 0xf8], 0x78
mov ebx, 0xcb7d37df
add edi, 0xcb7d50b9
add esi, 0xcb7d6d23
mov esi, ecx
add ebx, 0xcb7da0a3
mov esi, 0xcb7dbd0d
ror esi, 0x14
or esi, ebx
sub esi, ebx
ror ecx, 0x1c
ror ecx, 0x15
add edi, ecx
xchg edi, ecx
xchg ecx, edi
jmp 0x46b98b
add edx, 0xc
shr esi, 0x10
xor esi, ecx
sub esi, ecx
mov ebx, 0xcb86ebc7
xchg ebx, ecx
bswap esi
xor ebx, 0xcb8743dd
xchg esi, ecx
jmp 0x46dd6c
ret
mov dword [esp + 0x134], 0
sub ebx, ecx
and ebx, ecx
and ebx, 0xcb8840c9
xchg edi, esi
jmp 0x46ca91
cmp byte [edx], 0
jmp 0x46d06c
xor al, byte [edx]
shr ebx, 3
sub edi, 0xcbb51d8f
mov edi, 0xcbb53ddb
and esi, 0xcbb5566b
jmp 0x46b8b0
mov edx, dword [edx]
xor edi, ecx
xor ecx, ebx
or ecx, esi
ror edi, 0x13
xchg edi, ebx
xchg ecx, esi
xchg ebx, ecx
rol esi, 0xd
sub esi, ebx
ror ecx, 0x1e
shr ebx, 0x18
sub ebx, ecx
jmp 0x46cba7
mov edx, dword [edx]
dec esi
add edi, esi
rol edi, 0x16
neg ebx
xor ecx, edi
xchg edi, esi
jmp 0x46d09d
mov edx, dword [edx]
and esi, edi
not ebx
and ecx, esi
xchg esi, ebx
bswap edi
mov esi, edi
jmp 0x46d152
mov edx, dword [edx]
and ebx, 0xcbcb44a1
xor edi, 0xcbcb608d
not ecx
xor edi, ecx
ror esi, 9
shr ecx, 0x12
jmp 0x46dddd
inc dword [esp + 0x80]
add edi, ebx
add ebx, ecx
rol edi, 7
sub esi, ecx
rol esi, 0x17
add ecx, esi
jmp 0x46c68e
add dword [esp + 0xf8], 4
and edi, ebx
not ecx
sub ecx, edi
and ecx, ebx
mov ebx, esi
xor esi, 0xcbcf1619
xchg esi, ebx
xor edi, ebx
or edi, ecx
or ecx, ebx
and esi, edi
and esi, 0xcbcfb865
jmp 0x46cc96
mov edx, dword [esp + 0xf8]
rol edi, 0xc
shl esi, 9
and esi, ebx
xchg ebx, ecx
sub esi, ebx
add ebx, ecx
mov ebx, ecx
add ecx, edi
or edi, ecx
sub esi, edi
ror edi, 6
or ecx, 0xcbd4fb35
ror ecx, 0x1b
shr ebx, 0x15
mov ebx, 0xcbd54fe7
or ebx, esi
jmp 0x46de74
mov edx, dword [esp + 0xf8]
sub esi, ecx
and ecx, edi
mov ebx, 0xcbd73911
nop
or ecx, esi
bswap ebx
sub ecx, esi
rol edi, 7
jmp 0x46b525