Function at 0x46c635
Capabilities:
Encrypt data using chaskey

Disassembly:
mov ecx, dword [esp + 0x5c]
and ebx, 0xe3400414
add ebx, 0xe34021fa
xor edx, edi
xor edi, edx
xor esi, ebx
sub edi, esi
mov esi, edx
sub edi, ebx
jmp 0x46dadf
mov dword [esp + 0xd4], ecx
neg esi
mov esi, 0xe344af48
shl esi, 0x12
xor edi, edx
mov edi, esi
rol ebx, 7
jmp 0x46bf5c
add ecx, dword [esp + 0xe8]
sub edi, ebx
or esi, 0xe3455672
or edx, ebx
ror ebx, 0x1a
and edx, esi
add esi, 0xe345bea2
ror edx, 0x18
mov ebx, edx
jmp 0x46ba93
add ecx, 0x18
sub edi, ebx
bswap edx
sub edi, edx
ror esi, 1
xor esi, ebx
xor edi, esi
xor edx, esi
add esi, edx
jmp 0x46cfe3
mul ecx
xor ebx, edx
shl ebx, 0x13
add ebx, edi
or edi, esi
or ebx, edi
sub edx, ebx
or edx, edi
or esi, ebx
ror edi, 0x16
xchg esi, edi
add ebx, edi
sub esi, 0xe34c6254
jmp 0x46c4a4
add dword [esp + 0x5c], 0x78
and edi, 0xe353f70c
sub edi, ebx
bswap edx
add edi, edx
xchg ebx, edx
xor ebx, 0xe3547fe2
jmp 0x46b608
jne 0x46d061
xchg ebx, esi
xchg edi, ebx
sub edi, 0xe3607270
not esi
sub edx, ebx
sub esi, ebx
add esi, edx
xor edi, 0xe360f9b6
neg edi
add esi, edi
jmp 0x46da21
mov ecx, dword [esp + 0xe8]
and edx, edi
xor edi, 0xe368b60c
sub edi, 0xe368d34e
add edi, 0xe368ec80
ror edi, 0x19
and edi, 0xe3692278
or ebx, edx
sub edi, ebx
xchg edi, edx
sub edx, ebx
xchg edi, esi
shl edx, 0x13
jmp 0x46c6aa
add dword [esp + 0x5c], 4
xor edi, ebx
rol edx, 0x1f
mov esi, ebx
mov esi, ebx
sub esi, edi
mov ebx, edi
mov ebx, edx
mov esi, 0xe36a969e
mov esi, edi
mov edx, ebx
jmp 0x46bbd2
mov eax, 4
xor ebx, edx
or esi, edi
add esi, ebx
ror edi, 0xb
xchg esi, edx
neg ebx
jmp 0x46c837
mov dword [esp + 0x5c], ecx
mov esi, edi
ror edi, 0xf
xchg esi, edx
bswap edi
xchg edx, esi
sub edi, 0xe3779a8c
shl ebx, 0x1e
mov edi, 0xe377d100
xchg esi, ebx
mov edx, 0xe37804da
jmp 0x46d523
sub dword [esp + 0x5c], 8
and edi, 0xe37a9d2e
and edx, edi
mov esi, edi
xchg edi, edx
and edi, esi
xor edx, esi
mov ebx, edi
add edx, edi
jmp 0x46b0b1
mov dword [esp + 0xe8], 0
shr ebx, 7
add edx, edi
add edx, 0xe37cc1a4
xchg edx, edi
xchg ebx, esi
sub edx, esi
xor ebx, edi
xor esi, edx
mov esi, edi
and esi, 0xe37d79e4
sub esi, ebx
rol ebx, 9
jmp 0x46b9b7
add ecx, dword [esp + 0xe8]
add edi, ebx
shl esi, 0xd
add edx, 0xe37e0328
bswap edx
shr edx, 0x13
add esi, edx
add edx, edi
xor edx, 0xe37e88e4
jmp 0x46b159
mov dword [esp + 0x5c], 0
shr edi, 9
ror ebx, 0x19
xor edx, esi
shr ebx, 7
add edi, 0xe38308c2
mov edx, ebx
xchg edx, ebx
or esi, ebx
jmp 0x46bdf3
add ecx, dword [esp + 0xe8]
xor ebx, 0xe38430e0
mov edx, ebx
dec edx
inc edx
bswap esi
or edx, esi
and edi, 0xe384f7f6
add esi, edi
xor edi, edx
and edx, esi
jmp 0x46c317
push ecx
xchg ebx, esi
mov ebx, edx
add edi, edx
mov esi, edi
add esi, edi
add esi, ebx
add edx, esi
sub ebx, edi
jmp 0x46bb61
mov ecx, 0x30
or ebx, esi
xchg ebx, edx
xor edi, esi
dec ebx
dec ebx
or ebx, edx
jmp 0x46c2db
xor eax, eax
shr esi, 0x1d
xor ebx, edi
xchg edx, ebx
or edi, edx
sub edx, 0xe39164ec
sub edx, ebx
xor edi, esi
rol edi, 2
jmp 0x46d061
mov ecx, dword [esp + 0x5c]
xor edi, 0xe3946e62
sub edx, ebx
and ebx, esi
dec esi
add esi, 0xe394d6ec
add esi, edx
jmp 0x46cc64
add dword [esp + 0xd4], 4
add edi, esi
xchg esi, edx
inc ebx
dec edi
xor edx, edi
shl ebx, 0x18
xor ebx, 0xe398a9ba
mov ebx, edi
jmp 0x46c0e8
mov dword [esp + 0xd4], ecx
neg ebx
xor edi, edx
not esi
sub edx, ebx
xor edi, esi
rol edi, 0x14
bswap edi
add esi, edi
shl ebx, 5
xor ebx, 0xe39b22f8
shl edx, 9
add ebx, 0xe39b597c
mov ebx, edx
xor ebx, edx
jmp 0x46d69d
mov dword [esp + 0x54], ecx
mov edx, 0xe3a43be2
xchg ebx, edi
sub esi, edx
mov ebx, 0xe3a486ac
mov esi, ebx
and esi, edi
mov edx, 0xe3a4d410
xor ebx, edi
jmp 0x46bb1c
mov eax, 2
add ebx, 0xe3aea170
sub edi, ebx
mov edx, ebx
mov ebx, 0xe3aef15a
xor edi, edx
sub esi, ebx
or edi, ebx
add esi, 0xe3af573a
jmp 0x46cb11
add dword [esp + 0x5c], ecx
and esi, edx
sub ebx, 0xe3b0ad56
and edi, edx
bswap edx
add esi, edi
xor esi, edi
rol ebx, 0x17
bswap ebx
sub edi, 0xe3b168d4
shl ebx, 7
jmp 0x46d5af
cmp byte [ecx], 0
jmp 0x46b4ef
mov ecx, dword [esp + 0xd4]
sub ebx, 0xe3b99b00
xor ebx, edi
shl esi, 3
nop
jmp 0x46d9aa
mov ecx, dword fs:[ecx]
mov ebx, 0xe3c802a2
or esi, edi
rol ebx, 4
bswap ebx
shr esi, 0x1e
xchg edx, esi
mov ebx, esi
and esi, edi
jmp 0x46c429
add esp, 0x168
not edi
add ebx, 0xe3ca422e
rol edi, 0x1b
shl esi, 0xa
xor esi, 0xe3ca948e
sub esi, edi
mov edi, esi
or edx, esi
jmp 0x46d15f
mov ecx, dword [esp + 0x5c]
xor ebx, edi
mov ebx, esi
add edx, ebx
xor edx, edi
xchg ebx, edx
rol esi, 0x1d
and ebx, edx
add edi, edx
mov ebx, 0xe3cbd378
or esi, edi
jmp 0x46da02
add ecx, 0xc
and edi, esi
xor ebx, esi
xor ebx, edi
sub esi, edx
and edx, edi
or edi, edx
inc edi
xchg esi, edi
add ebx, edi
sub esi, 0xe3d35250
or esi, edx
shr edi, 0x10
xor esi, edi
xor ebx, esi
jmp 0x46d3a0
mov dword [esp + 0x20], eax
xchg edi, edx
add esi, ebx
ror edi, 8
or edx, esi
xor esi, ebx
xor edx, 0xe3d6a092
sub esi, edx
or edx, edi
shr edx, 0xf
xor esi, ebx
jmp 0x46b88b
mov dword [esp + 0x5c], ecx
shr edx, 0x1c
and ebx, 0xe3dd6b06
xchg ebx, esi
add ebx, edx
and edx, edi
or esi, 0xe3ddd5f8
jmp 0x46d446
sub esp, 0x168
shr esi, 0x10
xchg esi, edi
or esi, edx
shr edi, 7
neg edi
add edi, esi
add edi, ebx
xor esi, edx
and ebx, edx
sub ebx, edx
add ebx, esi
sub edx, 0xe3e31d5a
add edx, esi
xor ebx, 0xe3e34e0a
jmp 0x46c801
add ecx, dword [esp + 0x5c]
xchg edx, esi
add edi, edx
xchg ebx, edx
bswap esi
jmp 0x46d337
mov ecx, dword [ecx]
mov edi, ebx
add esi, 0xe3ebbef6
xor edx, 0xe3ebdbde
or edi, edx
jmp 0x46df15
add ecx, 0xc
xor ebx, edx
xor edi, edx
mov edi, esi
xchg esi, ebx
xor edi, ebx
or esi, 0xe3edbd02
jmp 0x46c76d
mov dword [esp + 0x20], 0
sub ebx, 0xe3efa348
add edx, edi
and esi, edi
neg edi
add edi, ebx
add ebx, edi
jmp 0x46d2a0
inc ecx
sub ebx, 0xe3f04984
or edx, edi
add edx, ebx
mov esi, ebx
or edx, esi
and esi, ebx
jmp 0x46c0c1
movzx ecx, word [ecx]
mov esi, 0xe3f0ea6c
rol edx, 6
xor edi, edx
xchg edx, edi
sub edi, esi
ror edi, 0x1e
shr esi, 0x17
add edx, ebx
xor edx, edi
shr edx, 0x1c
xchg edx, edi
mov edx, esi
or ebx, edi
sub esi, edx
jmp 0x46cc41
add ecx, dword [esp + 0xe8]
add edi, edx
or edx, edi
or ebx, 0xe3f8e16c
or edi, edx
jmp 0x46bca7
jne 0x46d69d
or esi, ebx
ror edi, 2
and esi, edx
shl edx, 3
bswap edi
xchg edx, esi
sub esi, edi
not edi
xor edi, ebx
xchg ebx, edi
sub edi, edx
sub edx, ebx
or esi, edi
or esi, ebx
jmp 0x46b63e
cmp eax, dword [esp + 0x54]
jmp 0x46c9da
mov ecx, dword [esp + 0x20]
bswap edx
add esi, ebx
add edx, esi
xor esi, ebx
and ebx, edx
shr ebx, 0x1a
xchg ebx, edi
and esi, 0xe408fc9a
jmp 0x46b24c
mov ecx, dword [ecx]
shl edi, 6
or ebx, edi
rol edi, 0xf
sub ebx, edx
jmp 0x46b21a
mul ecx
shr ebx, 0x11
xchg ebx, edi
mov edx, ebx
xchg edx, ebx
sub edx, 0xe41163ac
nop
not edi
xor edx, esi
shr ebx, 0x15
add esi, edi
inc edx
xor ebx, esi
jmp 0x46db1a
mov ecx, dword [ecx]
and ebx, edx
xchg esi, edx
and edi, edx
shr edi, 0x16
mov edx, esi
shl edx, 5
mov esi, edx
bswap edi
and ebx, edx
dec edx
neg edi
dec esi
or edi, esi
and edx, edi
jmp 0x46b8fe
mov dword [esp + 0xe8], ecx
and ebx, 0xe41a8a76
xor edi, ebx
and ebx, edi
add edi, 0xe41add7a
shr edi, 0x1f
xchg ebx, edx
xor edi, esi
mov esi, edx
jmp 0x46d0f3
add ecx, dword [esp + 0x20]
sub edi, ebx
sub ebx, edi
mov esi, 0xe42ae91a
ror esi, 0x13
xchg ebx, edx
xor esi, edi
jmp 0x46b7b0
mov ecx, dword [ecx]
and edi, 0xe42cb05a
sub ebx, edx
add edi, edx
dec esi
jmp 0x46cd6f
xor al, byte [ecx]
add edi, 0xe4300a3a
mov edi, 0xe430277c
inc edi
xor edi, esi
or edi, ebx
xchg edi, ebx
bswap edx
shl ebx, 0xf
or edx, ebx
shl edi, 0x1a
mov edi, ebx
or esi, edx
or esi, 0xe4314b82
or edx, ebx
jmp 0x46da32
mov ecx, dword [esp + 0xe8]
rol esi, 0x1d
xor edi, esi
sub esi, edx
xchg edx, ebx
or ebx, esi
xor ebx, 0xe43638a4
and edi, 0xe4365c96
inc edi
jmp 0x46d18e
ret
add ecx, 0x3c
and esi, ebx
or edi, esi
dec ebx
or edx, edi
add edi, edx
shl edi, 3
and ebx, esi
add edi, esi
add edi, ebx
or ebx, edx
jmp 0x46df74
mov dword [esp + 0xd4], 0
shr edi, 0x11
not ebx
dec esi
xor edx, esi
jmp 0x46b8cc
mov ecx, dword [esp + 0x5c]
and ebx, edx
or edx, ebx
inc edi
sub esi, ebx
or ebx, edi
sub ebx, 0xe443f6ca
jmp 0x46dcc0
mov ecx, dword [ecx]
mov edx, 0xe446f8ba
xor ebx, edi
sub esi, edx
sub ebx, edx
and esi, ebx
mov edi, 0xe4477cd6
mov edi, ebx
and edi, 0xe447aedc
or ebx, edx
inc edi
or ebx, 0xe447fc76
shl edi, 0x1a
jmp 0x46c595
mov ecx, dword [ecx]
sub edx, 0xe449fbd8
sub esi, ebx
or edi, ebx
sub ebx, 0xe44a4a92
jmp 0x46c7b0
mov ecx, dword [esp + 0xe8]
shl ebx, 5
shr edx, 3
xchg edx, edi
and esi, 0xe44f4480
inc esi
not edx
mov edx, ebx
xor esi, edi
xor ebx, esi
add edx, esi
xor esi, ebx
sub edi, esi
not esi
add ebx, esi
jmp 0x46bfaf
mov ecx, dword [esp + 0xd4]
shr ebx, 2
rol edx, 0x1f
mov esi, ebx
dec esi
mov edi, ebx
add esi, 0xe4566e3a
add ebx, edx
mov ebx, 0xe456a3f6
mov esi, ebx
and ebx, 0xe456d5a2
jmp 0x46cf9d
add dword [esp + 0x5c], 0x20
and edi, ebx
sub edi, esi
bswap edi
shl esi, 0xd
xor esi, 0xe45a0146
add esi, edi
add esi, ebx
and edi, ebx
inc ebx
or ebx, 0xe45a8188
jmp 0x46c33c
inc dword [esp + 0x20]
xor esi, edx
and ebx, edx
dec edx
sub edx, 0xe4610904
sub edx, ebx
xor edi, esi
and edx, esi
sub esi, 0xe461727c
and edx, ebx
not esi
xor esi, edi
rol ebx, 0x1f
jmp 0x46bc59
mov ecx, dword [ecx]
mov edi, 0xe4784baa
shl edi, 0x1c
xor edi, esi
rol edi, 0xc
or ebx, edx
sub edx, 0xe478d2d0
nop
xchg edi, esi
jmp 0x46b176
mov ecx, dword [ecx]
sub ebx, esi
or edx, esi
and edi, 0xe47b2374
neg ebx
mov esi, edi
shr edi, 0x1e
mov edx, esi
dec ebx
mov esi, edx
and ebx, edx
jmp 0x46c925
pop ecx
neg ebx
sub esi, edi
xor esi, ebx
dec esi
or edi, esi
xor ebx, edx
jmp 0x46ca92
rol eax, 8
sub edi, edx
add ebx, esi
mov edx, 0xe47cd604
add esi, edx
jmp 0x46c821
mov ecx, dword [ecx]
mov edi, ebx
and edi, 0xe481881e
shl esi, 1
add esi, edi
add esi, ebx
add edx, esi
xor esi, ebx
shr esi, 0x1e
add ebx, edx
xor ebx, edi
jmp 0x46dba1
add dword [esp + 0x5c], eax
ror ebx, 0xe
shl edi, 0xf
and edi, ebx
or esi, edx
xor ebx, edx
mov edi, edx
or esi, edi
add esi, ebx
and edi, ebx
add ebx, 0xe4841542
jmp 0x46d2b8
add ecx, dword [esp + 0xe8]
sub edx, esi
or esi, ebx
shr esi, 0x15
sub esi, 0xe486c5dc
and edx, ebx
add edx, ebx
sub ebx, esi
rol ebx, 0x1b
jmp 0x46b805
mov ecx, dword [ecx]
xor edx, ebx
xor esi, edi
mov ebx, edx
and esi, edx
jmp 0x46b9f7
mov ecx, dword [ecx]
mov edi, edx
bswap edx
shr edx, 0x1b
xor esi, ebx
sub edi, esi
and edi, 0xe4a24f76
or edi, ebx
or ebx, 0xe4a2870a
mov esi, edi
not ebx
or edx, esi
xor esi, ebx
and ebx, edx
and edx, 0xe4a31e18
jmp 0x46cb32
mov dword [esp + 0x5c], ecx
not ebx
rol ebx, 0x1e
mov edx, 0xe4a37c26
sub ebx, 0xe4a39958
xor edx, 0xe4a3b276
mov ebx, 0xe4a3cfdc
not ebx
xor ebx, 0xe4a40520
jmp 0x46b365
mov ecx, dword [ecx]
xchg ebx, esi
bswap ebx
shr ebx, 5
neg ebx
neg edx
inc edx
jmp 0x46df45