Function at 0x478ae5
Capabilities:
Encrypt data using chaskey

Disassembly:
mov edi, dword [esp + 0xb8]
or ecx, ebx
add esi, ebx
shr ecx, 0x19
mov edx, ebx
neg ebx
and edx, ebx
and esi, ecx
sub ecx, edx
or ebx, 0xe842815b
inc esi
inc ebx
jmp 0x478d9e
sub esp, 0x110
xor ebx, ecx
inc ebx
or esi, ebx
not ecx
inc ebx
shr ebx, 0x14
dec esi
xchg ebx, esi
or edx, esi
and edx, ebx
not ebx
or ecx, ebx
jmp 0x478fc7
mov edi, dword [edi]
add edx, esi
shr edx, 0xb
dec ecx
xchg ebx, edx
dec esi
rol ebx, 0x1c
jmp 0x4790e2
add dword [esp + 0xcc], eax
not ebx
xor esi, ecx
xor ecx, esi
mov edx, ebx
and ecx, edx
neg ebx
xchg esi, edx
jmp 0x47b00d
jne 0x47ad87
and edx, ecx
mov edx, ecx
bswap ecx
and ecx, 0xe8544ab3
shl edx, 0x11
mov edx, ebx
not esi
mov esi, 0xe85547e3
or edx, esi
add esi, 0xe855b1ec
jmp 0x47b3ae
mov dword [esp + 0xd8], edi
ror ecx, 0xb
xor edx, esi
sub edx, ecx
add edx, ebx
mov esi, ecx
add ecx, ebx
mov edx, ecx
rol esi, 0x19
jmp 0x47ad87
add edi, dword [esp + 0xcc]
bswap edx
xor esi, edx
inc ecx
xor ebx, esi
sub ecx, ebx
mov edx, ecx
or ebx, 0xe86f19d0
shr edx, 2
mov ecx, ebx
or ebx, edx
jmp 0x47ae9c
add dword [esp + 0xd8], 4
ror ecx, 0x13
or ebx, esi
not ecx
and esi, 0xe88e3426
jmp 0x479c77
mov dword [esp + 0x60], 0
rol edx, 0x12
bswap ebx
mov ebx, ecx
ror esi, 9
xor edx, 0xe890e264
xor ebx, 0xe8911542
mov esi, ecx
jmp 0x47925f
add edi, dword [esp + 0xb8]
shr ecx, 0x14
or ecx, esi
shl ebx, 0x1e
or ecx, 0xe89fa72a
sub esi, 0xe89fd9cf
xchg ecx, edx
xchg ecx, ebx
jmp 0x47b25b
mov edi, dword [esp + 0xcc]
neg ecx
dec ecx
or edx, esi
bswap ecx
and ebx, 0xe8af481f
add ecx, esi
shr ebx, 0xe
jmp 0x47b073
add esp, 0x110
or esi, 0xe8b3a3d1
add ebx, esi
or ebx, ecx
add edx, ebx
dec ebx
sub edx, 0xe8b48f88
add edx, esi
xor ebx, esi
bswap esi
xchg ecx, edx
mov edx, esi
mov esi, ecx
jmp 0x47b45f
mov dword [esp + 0xd8], 0
rol ecx, 0xb
or ecx, edx
add edx, esi
inc ecx
xchg ebx, ecx
and esi, 0xe8babb9e
inc ebx
sub esi, edx
xchg esi, ebx
or esi, edx
sub esi, edx
mov esi, ecx
mov ecx, 0xe8bdaa53
nop
and ebx, 0xe8be554e
jmp 0x4793ef
mov edi, dword [edi]
and ebx, ecx
sub esi, ecx
bswap esi
add ebx, 0xe8d0af3d
xor ecx, ebx
and edx, 0xe8d111a0
or esi, edx
neg edx
mov esi, 0xe8d1affc
rol edx, 0x1e
or ebx, 0xe8d21127
xor ebx, 0xe8d243f7
jmp 0x479acb
mov edi, dword [esp + 0xcc]
or esi, ecx
sub ebx, 0xe8d2b2e2
or ecx, edx
mov ecx, ebx
xor edx, esi
jmp 0x478b6c
mov dword [esp + 0xb8], 0
xor edx, ebx
mov edx, 0xe8d58846
or ebx, esi
shl edx, 0x1d
sub edx, 0xe8d62731
shl ebx, 3
dec esi
mov edx, ecx
sub ecx, edx
jmp 0x4799cb
mov edi, dword [esp + 0xb8]
and ecx, ebx
mov ecx, ebx
mov esi, ecx
neg edx
xchg ebx, ecx
add esi, 0xe8e87f90
xchg ecx, edx
dec ebx
and ebx, esi
jmp 0x47aee5
inc edi
and ecx, esi
sub ebx, esi
bswap edx
or ebx, edx
xor ecx, 0xe8ff8cd6
bswap esi
mov ecx, ebx
xchg edx, ebx
xchg esi, ebx
jmp 0x47b33d
mov eax, 4
sub esi, ebx
or esi, 0xe907e4ab
add ebx, esi
or edx, ebx
or ecx, esi
not ecx
xchg ecx, esi
jmp 0x47a9dd
mov edi, dword [edi]
and ebx, edx
xor edx, esi
and ebx, ecx
add edx, ebx
xchg edx, esi
and edx, 0xe92042a2
jmp 0x47ac8c
mov edi, dword [edi]
sub ecx, 0xe9298c80
add edx, esi
sub esi, ecx
xchg ecx, ebx
xor ebx, edx
sub esi, ebx
inc ebx
xchg edx, esi
xor edx, esi
bswap esi
xor ebx, edx
jmp 0x479c28
add edi, 0xc
neg edx
and edx, ecx
sub ecx, esi
ror esi, 0x17
xor ecx, 0xe9335313
xchg edx, esi
or ebx, edx
jmp 0x47a543
add edi, dword [esp + 0x60]
and ebx, ecx
not ecx
sub ebx, 0xe93b3894
or ecx, 0xe93b7460
add ecx, edx
shl ecx, 0x1d
shr ecx, 2
rol edx, 0x10
shr edx, 0xe
sub ecx, edx
or ecx, 0xe93cecb2
shr ebx, 0x16
jmp 0x479689
mov dword [esp + 0xcc], 0
shr ecx, 0x1e
shr ecx, 0x11
mov ecx, esi
nop
shr ecx, 1
inc edx
xchg edx, esi
shl ebx, 0x13
xor edx, ebx
xor esi, 0xe9433c8a
and ecx, edx
shr ecx, 0x15
dec ebx
sub ebx, 0xe9440ecc
shl esi, 4
jmp 0x479bc1
xor al, byte [edi]
and ecx, ebx
xchg ecx, esi
xor esi, 0xe9487a53
jmp 0x47b0dc
add edi, dword [esp + 0xb8]
xchg ecx, edx
ror ecx, 0xe
xor ebx, 0xe950bceb
not ecx
neg edx
rol esi, 4
jmp 0x47a530
mov edi, dword [edi]
and ebx, esi
neg ecx
sub edx, ebx
and edx, ecx
dec edx
xchg esi, edx
xor esi, edx
add ecx, edx
shl edx, 0x1e
xor esi, 0xe9534858
add esi, 0xe9537bdd
jmp 0x47ab3b
cmp eax, dword [esp + 0x6c]
jmp 0x478bef
mov dword [esp + 0x6c], edi
sub ecx, 0xe95e4b03
xchg edx, ebx
neg edx
add ecx, esi
or edx, ebx
shr ebx, 6
and esi, ecx
xchg edx, ecx
and esi, ebx
and esi, edx
shl ebx, 0xe
jmp 0x479eef
add edi, dword [esp + 0xb8]
xchg ebx, esi
sub edx, ebx
sub esi, ecx
and ecx, ebx
xor ebx, edx
and esi, 0xe964a415
or esi, edx
inc ebx
sub esi, ebx
shl ebx, 0xf
and edx, 0xe965a08a
bswap ecx
neg ecx
jmp 0x4791ec
mov edi, dword [esp + 0x60]
and esi, 0xe96647a0
mov ebx, esi
shr edx, 4
sub esi, 0xe966de2e
mov ecx, edx
xor esi, edx
jmp 0x47a4bb
mov edi, dword [esp + 0xd8]
sub esi, ebx
add esi, ebx
not edx
or ecx, edx
jmp 0x47ab54
mov eax, 2
mov edx, esi
sub ecx, edx
add esi, 0xe97adc51
and esi, ebx
or ebx, edx
xor esi, edx
mov esi, edx
add ebx, edx
jmp 0x479c56
sub dword [esp + 0xcc], 8
and edx, ebx
sub ecx, edx
not ebx
and ecx, ebx
mov ebx, esi
sub ebx, 0xe97e13a5
and esi, ecx
xchg ebx, ecx
xchg ecx, edx
add esi, 0xe97edd8b
and ebx, ecx
and esi, 0xe97f3df7
dec esi
xchg ecx, edx
jmp 0x47a969
mov edi, 0x30
and ecx, edx
and esi, ebx
xchg ecx, ebx
or ebx, ecx
bswap esi
dec edx
add esi, edx
xor edx, ebx
jmp 0x479fef
mov edi, dword fs:[edi]
ror ebx, 1
not ecx
mov edx, esi
or ebx, 0xe99e751d
sub esi, edx
neg ecx
add ecx, edx
dec ebx
shl esi, 0x18
and ebx, ecx
jmp 0x47a1a8
add edi, 0x18
xor ecx, ebx
inc esi
xchg ecx, esi
sub esi, edx
xor ebx, ecx
shl ecx, 0x1f
mov ebx, esi
and ebx, 0xe9b0c583
xor ecx, edx
jmp 0x479ae9
add edi, 0xc
nop
xchg esi, ebx
shl ecx, 0xf
and ebx, esi
or esi, ecx
sub ecx, esi
or ebx, ecx
or ecx, esi
rol edx, 0xc
mov ecx, esi
jmp 0x47a418
mov edi, dword [esp + 0xd8]
or esi, edx
or ebx, ecx
xor ecx, ebx
xchg esi, edx
and ebx, esi
and ebx, ecx
bswap edx
shr ebx, 1
or esi, edx
jmp 0x479958
mov edi, dword [edi]
xchg esi, ecx
add edx, 0xe9e4da3b
shl edx, 5
sub esi, ebx
add esi, ebx
sub esi, ebx
shr ecx, 0x1a
mov ebx, 0xe9e606bc
sub ebx, ecx
bswap esi
xor esi, 0xe9e69be4
xchg ebx, edx
jmp 0x479915
mul edi
mov edx, 0xe9edc619
shr ebx, 0xc
and edx, esi
or edx, 0xe9ee62b0
bswap ebx
add esi, edx
bswap ebx
add edx, esi
or edx, ebx
jmp 0x47acfb
mov dword [esp + 0xcc], edi
xor ecx, ebx
xor ebx, esi
dec esi
not ebx
jmp 0x47a3f9
mov edi, dword [edi]
add edx, esi
dec edx
shl edx, 0xd
xchg ecx, edx
shl ecx, 0x1a
shr ecx, 0x18
inc esi
or esi, 0xe9f711ea
add ebx, esi
add esi, edx
jmp 0x47a601
mov edi, dword [edi]
xchg ecx, edx
or ecx, esi
ror ebx, 0x1d
ror esi, 0x10
sub ebx, 0xea00cf15
jmp 0x47a8a3
add edi, 0x3c
inc ebx
and ebx, edx
dec ebx
jmp 0x479804
mov dword [esp + 0xcc], edi
mov esi, ecx
xor ebx, esi
sub ebx, ecx
dec ecx
xor ebx, 0xea24f73b
bswap ebx
xor esi, edx
or ecx, edx
rol esi, 4
mov ecx, edx
not ecx
jmp 0x4794d6
mov edi, dword [edi]
sub esi, 0xea2ab747
and ecx, 0xea2ae689
add edx, 0xea2b2299
jmp 0x47a0f6
mov edi, dword [esp + 0xcc]
add edx, 0xea35d60b
or esi, 0xea360939
shl edx, 9
sub esi, ecx
ror ecx, 0x17
shl edx, 7
neg esi
or ebx, ecx
rol edx, 0x1a
or ecx, 0xea379a8b
sub ebx, ecx
sub esi, ebx
or ebx, edx
xchg edx, ecx
jmp 0x479385
jne 0x479a3e
mov esi, 0xea389ae2
mov edx, 0xea38cdc4
add edx, ecx
xor esi, edx
add esi, 0xea39650a
jmp 0x47ae4f
movzx edi, word [edi]
xchg ebx, edx
and ecx, 0xea3cd8db
xchg ebx, esi
sub ebx, edx
mov esi, edx
jmp 0x47b41e
mov dword [esp + 0xb8], edi
and ecx, ebx
add esi, edx
nop
and edx, ebx
bswap ebx
mov edx, ebx
and edx, ecx
jmp 0x47abb9
mov edi, dword [edi]
shl edx, 0x1c
sub ecx, ebx
sub esi, 0xea60ec16
sub ebx, 0xea611efc
and ecx, esi
add ecx, edx
bswap ebx
shr edx, 2
jmp 0x47b21c
mov edi, dword [esp + 0xb8]
mov ecx, edx
xor esi, ebx
xor ebx, 0xea669ed4
inc esi
mov esi, ebx
xor esi, ebx
nop
mov esi, ecx
add edx, ebx
xor esi, ebx
xor edx, ebx
sub edx, 0xea685763
jmp 0x47a640
mov dword [esp + 0xcc], edi
inc ecx
shl ecx, 0x14
sub ebx, ecx
add ecx, edx
jmp 0x47add6
mov dword [esp + 0x60], eax
inc esi
bswap edx
not esi
and ebx, ecx
shr edx, 0x11
or edx, ecx
xor edx, ebx
add ebx, edx
and edx, esi
or edx, ebx
neg esi
xchg ecx, ebx
inc edx
jmp 0x479df2
inc dword [esp + 0x60]
mov esi, ebx
inc esi
and ecx, 0xea8101cd
xchg ecx, edx
add esi, ebx
or edx, ecx
and ecx, edx
dec edx
shl ebx, 0x10
sub ecx, ebx
jmp 0x478f8b
add dword [esp + 0xcc], 0x78
shr ebx, 0x17
and edx, 0xea8568ff
add esi, 0xea859bd0
and esi, 0xea85cdf9
xor edx, 0xea85fc75
mov ebx, esi
sub esi, ebx
or ecx, esi
sub ecx, ebx
jmp 0x478ac0
push edi
not edx
and ecx, esi
mov ebx, ecx
and edx, 0xea88f139
xor ebx, 0xea892353
nop
xchg edx, ecx
mov ebx, esi
or esi, 0xea89ef96
mov esi, ebx
xor edx, ebx
sub ebx, 0xea8a7c7b
bswap esi
jmp 0x47b29c
pop edi
ror esi, 0x17
sub edx, 0xea8b2253
xor edx, 0xea8b5508
and ecx, 0xea8b87fd
add edx, ecx
or edx, 0xea8be4f0
xor ecx, 0xea8c20c6
add ecx, edx
and ebx, esi
sub esi, ecx
jmp 0x479b0e
mov edi, dword [edi]
add ecx, edx
add ebx, esi
sub edx, ecx
xor ebx, esi
mov ebx, ecx
not edx
and ecx, esi
or esi, ecx
bswap ebx
jmp 0x47a84b
add dword [esp + 0xcc], edi
or edx, 0xea93a6c2
or esi, 0xea93d9cf
xchg ecx, ebx
jmp 0x47afe7
add dword [esp + 0xcc], 0x20
sub ecx, ebx
xchg esi, ebx
mov ecx, edx
or edx, esi
xor edx, ecx
xchg esi, ebx
ror edx, 8
add ebx, ecx
and ecx, 0xeaa38ca8
xor esi, ebx
jmp 0x47919c
mov edi, dword [esp + 0xcc]
shr ecx, 7
and ecx, edx
ror edx, 0x13
dec esi
add edx, ecx
sub edx, ecx
inc ecx
and edx, ecx
add esi, edx
jmp 0x47989d
mov edi, dword [edi]
not ecx
inc ebx
shl esi, 0x12
shr edx, 8
sub ebx, ecx
rol edx, 0xb
mov ecx, 0xeaac6b23
xor edx, 0xeaac9da4
jmp 0x47b1eb
rol eax, 8
dec edx
ror ecx, 0x10
shr ecx, 0xe
xchg ebx, ecx
and edx, ebx
bswap edx
xchg esi, edx
and ebx, ecx
mov ecx, ebx
jmp 0x4795fc
add edi, dword [esp + 0xb8]
and esi, edx
ror edx, 0xa
and edx, 0xeac1a868
or edx, 0xeac1dbdb
not edx
add ebx, esi
jmp 0x478cd7
add edi, dword [esp + 0xb8]
add ecx, esi
bswap edx
sub ebx, 0xeac38f5d
ror esi, 0x18
mov esi, edx
or edx, ecx
and ebx, 0xeac44d7f
and ebx, 0xeac47cdb
mov ecx, edx
or ecx, 0xeac4e424
rol edx, 0x10
inc ebx
mov ecx, 0xeac57955
ror edx, 0x1d
and esi, ecx
jmp 0x47ae20
mov dword [esp + 0xd8], edi
add ebx, ecx
mov esi, edx
not ecx
add esi, edx
and edx, esi
and esi, edx
sub ebx, esi
xchg ecx, ebx
sub ecx, esi
sub ecx, esi
jmp 0x479dbc
xor eax, eax
or ebx, esi
add ebx, 0xeaca21e3
or ebx, esi
and edx, esi
ror ecx, 1
mov ecx, ebx
and esi, edx
and esi, ebx
jmp 0x479a3e
cmp byte [edi], 0
jmp 0x47a9a1
add dword [esp + 0xcc], 4
add ebx, esi
ror ecx, 0xb
or esi, ebx
mov edx, esi
add edx, ebx
not ecx
and ecx, ebx
not esi
not ebx
dec edx
rol edx, 0xb
jmp 0x4793b8
mul edi
xor ecx, esi
sub ebx, esi
shr ebx, 0x1c
add ecx, 0xeae352d2
or esi, edx
and ecx, ebx
and esi, ecx
sub edx, ecx
add ebx, ecx
mov ebx, esi
or edx, 0xeae4a301
add ebx, ecx
jmp 0x478bd5
ret