Function at 0x477954
Capabilities:
Encrypt data using chaskey

Disassembly:
mov dword [esp + 0x60], ebx
and esi, 0xf75a50bc
xor edi, edx
xor ecx, esi
shl esi, 0x10
shl ecx, 0xc
add edi, 0xf75c119a
sub edi, 0xf75c6051
and edi, ecx
and edi, edx
jmp 0x476cf3
inc dword [esp + 8]
and edx, edi
xor ecx, edi
xchg edx, edi
shl edx, 0x18
dec esi
neg esi
xchg edi, edx
or edx, ecx
mov edi, 0xf7704286
mov ecx, edx
jmp 0x476efb
mov dword [esp + 0x10], 0
sub esi, ecx
or edi, esi
or esi, edi
sub edx, esi
not esi
xor edx, esi
jmp 0x47643b
add ebx, 0xc
shl edx, 0x18
xchg ecx, edi
ror esi, 0x18
mov edx, edi
not edx
rol edx, 8
and esi, 0xf77eba3e
and edx, esi
or edx, esi
inc esi
jmp 0x475e5a
mov eax, 4
dec edx
add ecx, edx
rol ecx, 0x14
inc esi
neg edi
xchg edi, ecx
and edi, esi
and edi, ecx
jmp 0x475fe9
add ebx, dword [esp + 0x28]
xor edx, 0xf79c5eb1
rol edi, 0xb
rol edx, 0x16
mov esi, 0xf79d1b4c
sub ecx, edi
xchg ecx, esi
jmp 0x4776c8
mul ebx
neg edi
add ecx, esi
shr esi, 0x15
shr ecx, 7
xchg ecx, esi
and edx, edi
ror esi, 1
mov edi, ecx
add ecx, edi
jmp 0x47617f
mov dword [esp + 0x10], ebx
neg esi
or ecx, edi
bswap edx
rol edx, 0xb
add esi, ecx
mov ecx, esi
xor esi, edx
and edx, ecx
xor ecx, edi
xchg edi, ecx
nop
jmp 0x4754ee
mov dword [esp + 0x8c], ebx
neg ecx
ror esi, 0xe
mov edx, ecx
or edx, 0xf7b49ec0
add ecx, edi
jmp 0x4758a7
mov ebx, 0x30
xchg edx, ecx
mov ecx, edx
sub edx, ecx
and esi, edx
add esi, edi
xchg edx, edi
not edi
jmp 0x475c9b
mov ebx, dword [ebx]
xor ecx, edx
shr edx, 0x17
add edx, esi
inc edx
shl esi, 3
and edi, 0xf7bbfbae
shr ecx, 0x1d
jmp 0x476e79
xor al, byte [ebx]
xchg edx, edi
sub edi, edx
shl edx, 0x10
mov esi, edx
mov edi, 0xf7c278c4
and ecx, 0xf7c2b783
mov edx, edi
not edx
jmp 0x4772f7
mov ebx, dword [esp + 0x10]
ror esi, 0xb
and edx, edi
mov edi, ecx
add ecx, edi
or edi, edx
xor edi, ecx
or edi, edx
xor edx, 0xf7cb38ec
xchg edi, edx
jmp 0x476a73
mov ebx, dword [esp + 0x60]
dec esi
rol esi, 8
or esi, ecx
or edx, ecx
mov edx, ecx
shr edx, 0x1a
xor esi, edi
mov ecx, esi
sub edi, 0xf7d6f77b
jmp 0x475d2e
mov ebx, dword [ebx]
inc esi
inc esi
rol ecx, 0x1f
sub edi, edx
rol esi, 0x15
or edi, ecx
or ecx, edi
or edi, 0xf7d9105f
and ecx, edx
inc edx
sub esi, ecx
sub edx, esi
and ecx, esi
mov edi, edx
jmp 0x4763fd
mov ebx, dword [esp + 0x28]
and ecx, 0xf7e9d020
or edx, 0xf7ea0d7a
sub ecx, edi
sub edi, ecx
inc edi
add ecx, edi
xor ecx, edi
jmp 0x476f72
ret
mov ebx, dword fs:[ebx]
shl ecx, 0x1f
rol edx, 0x12
and edx, esi
mov edi, ecx
add ecx, 0xf981e341
xor edx, edi
jmp 0x47559d
mov ebx, dword [ebx]
xor esi, 0xf98a5b92
xchg edx, esi
add edi, edx
dec edi
and edi, ecx
neg esi
or ecx, 0xf98bd87d
mov ecx, esi
jmp 0x4773df
mov ebx, dword [ebx]
not edx
and ecx, edi
not esi
not esi
bswap ecx
jmp 0x475ea6
mul ebx
and esi, ecx
mov edx, ecx
add edx, ecx
not edx
inc edi
shr edi, 0x11
shl edx, 0x1d
jmp 0x47667d
add ebx, 0xc
xor edi, esi
mov esi, ecx
or edx, esi
jmp 0x47603c
mov ebx, dword [esp + 8]
or esi, edx
sub esi, 0xf9a627da
mov esi, 0xf9a664cd
add ecx, edx
inc edx
add esi, edx
mov edi, edx
xchg esi, ecx
jmp 0x475e6b
movzx ebx, word [ebx]
xor esi, 0xf9ba9e7e
sub ecx, edx
add esi, ecx
neg esi
mov ecx, edi
dec esi
jmp 0x4757b2
mov ebx, dword [ebx]
shr edx, 0x1c
or esi, ecx
xchg ecx, edx
not esi
or edx, 0xf9c142b8
and ecx, esi
not ecx
sub ecx, 0xf9c27dbf
xchg esi, edx
mov edx, 0xf9c2fce2
xchg edi, esi
shr esi, 0x1d
xor ecx, edi
jmp 0x4760de
xor eax, eax
shr edx, 0x1f
xor ecx, edi
mov esi, edi
xchg ecx, edx
neg ecx
xor edi, 0xf9c50bcd
and ecx, edi
or edi, ecx
or ecx, esi
mov edx, 0xf9c5f609
xchg edi, ecx
neg edx
xor edx, edi
xor esi, edx
jmp 0x475940
mov ebx, dword [ebx]
and esi, edi
shr esi, 6
mov edi, 0xf9d2d9a6
shr ecx, 0xf
xchg ecx, esi
sub edx, 0xf9d4e095
add esi, ecx
add edx, esi
add edi, esi
and esi, edi
sub esi, edx
jmp 0x4763de
mov ebx, dword [esp + 0x10]
bswap edi
mov edi, 0xf9eb5aec
xchg ecx, edi
xor edi, esi
ror edi, 6
nop
jmp 0x4770ec
add dword [esp + 0x60], eax
xchg esi, edx
or ecx, 0xf9ee7a79
sub esi, edx
and edx, edi
bswap edi
add esi, 0xf9f1ab36
xchg edx, ecx
sub edx, esi
neg edi
rol edi, 0x16
or esi, ecx
jmp 0x475a5f
push ebx
xchg ecx, edi
or esi, ecx
sub esi, 0xf9fd8595
neg esi
or edx, ecx
mov edi, esi
not edi
mov edx, 0xfa01734d
or edx, ecx
xor esi, 0xfa028c1a
xchg edi, ecx
jmp 0x47606a
mov ebx, dword [esp + 0x60]
xor ecx, edi
mov esi, edx
xchg edx, esi
and edx, 0xfa358e0a
xor esi, edi
or esi, edx
and edi, ecx
or edi, 0xfa369454
xchg edx, edi
not edi
jmp 0x476b4f
mov ebx, dword [ebx]
xor esi, ecx
inc edi
sub ecx, esi
and ecx, 0xfa3d63a5
rol edx, 0x1c
mov ecx, edx
and ecx, edx
or edi, 0xfa3e6c5e
jmp 0x47704c
add ebx, dword [esp + 0x28]
mov ecx, esi
sub edx, esi
shl ecx, 0xd
mov edi, edx
xor edi, ecx
jmp 0x47580c
mov dword [esp + 0x28], 0
shr esi, 0x1f
neg esi
mov esi, edx
add esi, ecx
ror edx, 0xe
xor ecx, 0xfa4583c4
xchg esi, ecx
jmp 0x476828
mov ebx, dword [ebx]
or edi, 0xfb97bc1f
bswap edx
xor esi, edx
add ecx, 0xfb987810
sub edx, 0xfb98c895
add ecx, 0xfb99064b
sub edi, edx
shl esi, 4
xchg ecx, esi
jmp 0x47677b
mov dword [esp + 8], eax
xchg esi, edi
xchg edx, ecx
or edi, 0xfba94102
rol edi, 0xc
rol edi, 0x1e
sub edi, ecx
xchg edx, ecx
add edi, edx
sub edi, ecx
or edx, edi
jmp 0x476aeb
add dword [esp + 0x60], 4
sub edi, edx
or ecx, esi
add edi, 0xfbb1a9c3
and edi, esi
or edx, edi
and esi, edi
jmp 0x476369
mov ebx, dword [esp + 0x60]
inc edi
nop
dec edx
ror edi, 5
and edi, 0xfbb8b068
mov edx, edi
not edx
mov esi, edi
shl ecx, 6
xchg edi, ecx
add edx, edi
add edi, 0xfbbb0dec
not esi
jmp 0x47765f
add esp, 0xe0
add edx, 0xfbbbb87b
add esi, ecx
and esi, 0xfbbc44f7
or edi, edx
inc ecx
mov ecx, esi
shr edi, 0x12
xor edi, ecx
or esi, ecx
shl esi, 0x19
and esi, ecx
jmp 0x475c7d
mov dword [esp + 0x28], ebx
add ecx, edi
and esi, 0xfbbf2a03
mov ecx, edi
mov edx, ecx
jmp 0x4775c7
jne 0x475940
ror ecx, 0x19
mov edi, esi
bswap edi
dec edi
xchg ecx, edi
ror edx, 5
jmp 0x477157
inc ebx
not edi
mov esi, edi
shl esi, 5
jmp 0x4774a4
mov dword [esp + 0x60], 0
xor edi, 0xfbcd9b96
xor esi, edi
shr esi, 0x13
sub esi, ecx
xchg esi, edx
xchg esi, edi
xchg edi, esi
dec esi
jmp 0x47588c
add ebx, 0x3c
or edi, 0xfbec385f
and esi, ecx
mov edi, esi
ror edx, 0xb
and esi, 0xfbed2fd4
xor edi, 0xfbed7f43
xor edi, ecx
sub edx, esi
neg edi
xor esi, edx
jmp 0x476c2b
add ebx, dword [esp + 8]
and edi, 0xfbf9083e
and esi, ecx
bswap ecx
sub edi, edx
neg ecx
rol ecx, 0x10
jmp 0x4756e5
sub dword [esp + 0x60], 8
mov ecx, edx
neg esi
dec esi
or esi, ecx
rol ecx, 0x19
mov ecx, esi
sub ecx, esi
sub ecx, esi
mov esi, ecx
xor esi, edi
add edx, 0xfc03351f
rol edx, 0xd
jmp 0x476724
mov ebx, dword [ebx]
sub esi, ecx
rol ecx, 0x1a
xchg ecx, esi
not ecx
rol ecx, 0xa
shr esi, 0x1f
xor edi, esi
jmp 0x477510
jne 0x4754ee
and esi, 0xfc69ac02
mov esi, ecx
inc edx
or edx, edi
dec esi
and esi, edx
add edx, edi
sub ecx, edx
sub edi, esi
add esi, 0xfc6bd863
xor ecx, 0xfc6c166e
mov esi, ecx
jmp 0x4766d5
add ebx, dword [esp + 0x60]
or edi, edx
xor edx, ecx
xor esi, 0xfc70ce4c
and edi, 0xfc710dec
and esi, edi
sub edx, edi
sub edi, esi
mov esi, edi
or esi, edx
sub edi, 0xfc728d7e
add ecx, 0xfc72cc04
mov ecx, edi
or edi, 0xfc73465f
jmp 0x4758e2
mov ebx, dword [ebx]
mov edi, ecx
or esi, edi
jmp 0x4753da
add dword [esp + 0x60], 0x78
and edx, edi
ror esi, 3
add ecx, 0xfc87f336
or ecx, edx
and esi, edx
add edi, ecx
xor edx, 0xfc88f4ec
dec edx
jmp 0x476e2a
mov ebx, dword [esp + 0x28]
and ecx, edi
xor ecx, esi
mov esi, ecx
xchg esi, ecx
rol edi, 0x12
xor edi, ecx
xchg edx, ecx
and esi, edi
jmp 0x476bb7
mov dword [esp + 0x60], ebx
shl edx, 0xd
shr edx, 0xc
sub ecx, edi
add edx, ecx
xor ecx, edi
rol esi, 0x11
xor edx, edi
or esi, 0xfcbbc8f5
sub edi, esi
xchg edi, ecx
xor edx, edi
and edx, ecx
sub edi, ecx
mov esi, edi
or esi, edx
jmp 0x475b64
add dword [esp + 0x10], 4
xor edi, 0xfcc4e041
shr ecx, 5
or edx, ecx
xchg edi, esi
xor edi, 0xfcc5e394
mov edx, 0xfcc635f5
xor edi, 0xfcc677c6
add esi, edi
add ecx, 0xfcc70742
or esi, ecx
sub edi, edx
or esi, 0xfcc7c657
sub edi, edx
jmp 0x476164
add dword [esp + 0x60], ebx
mov edx, 0xfccbef0a
xchg esi, edx
add ecx, esi
jmp 0x47700f
add dword [esp + 0x60], 0x20
shl edx, 9
add edi, edx
mov edx, esi
neg ecx
mov ecx, esi
jmp 0x4778da
add ebx, 0x18
xchg esi, edx
inc ecx
shr ecx, 0x17
xor ecx, esi
add edx, 0xfcddb983
add ecx, esi
neg ecx
add edi, esi
sub edx, esi
mov esi, 0xfcdf80e1
sub edi, esi
bswap esi
jmp 0x4765cb
mov ebx, dword [ebx]
rol ecx, 3
xor ecx, esi
or ecx, 0xfceaf4c0
dec ecx
or edx, 0xfceb7075
sub esi, edi
xor ecx, esi
and edi, edx
xchg edi, edx
jmp 0x4771b0
pop ebx
ror ecx, 9
or edi, ecx
shr esi, 0x19
or esi, 0xfcf4518d
or ecx, edx
shl ecx, 6
neg edx
shr ecx, 0x1a
bswap ecx
jmp 0x477504
add ebx, dword [esp + 0x28]
xor edi, edx
xor edi, edx
rol esi, 0xe
ror ecx, 0x10
and ecx, edi
mov edx, ecx
dec ecx
add edi, edx
jmp 0x4761d8
rol eax, 8
inc edi
and edx, ecx
add esi, 0xfd14db81
xor edi, edx
bswap esi
or esi, edx
mov edi, 0xfd15e2bf
jmp 0x4767ab
add ebx, dword [esp + 0x28]
xor edx, ecx
mov esi, edi
rol edx, 0x19
xchg edi, esi
sub esi, edi
xchg edi, ecx
xor edx, esi
add ecx, edx
sub esi, edi
neg ecx
or edx, ecx
jmp 0x476751
cmp byte [ebx], 0
jmp 0x476793
cmp eax, dword [esp + 0x8c]
jmp 0x476b67
add ebx, dword [esp + 0x28]
xchg edi, esi
xor ecx, edx
add esi, edi
xor esi, ecx
bswap esi
xor ecx, edi
sub esi, 0xfd3ad9a5
dec ecx
xor edx, edi
and edi, edx
xor edi, ecx
mov edx, 0xfd3c0d9f
and esi, ecx
jmp 0x47756f
mov dword [esp + 0x10], ebx
or edi, esi
shl esi, 0x14
xor ecx, 0xfd40c642
mov esi, edi
xor edx, 0xfd415122
shl edx, 7
shl edi, 3
and edi, edx
jmp 0x477b06
mov ebx, dword [esp + 0x28]
or ecx, edx
sub edi, edx
xchg ecx, esi
sub esi, edx
xchg edi, edx
ror edi, 0x16
or ecx, 0xfd470cf6
xchg edx, ecx
rol ecx, 0xc
jmp 0x4769c3
mov ebx, dword [ebx]
add edx, edi
xor ecx, esi
and edx, esi
rol ecx, 0x13
sub ecx, esi
and ecx, edi
sub ecx, 0xfd50a3d4
xchg esi, edi
xor edx, 0xfd513096
inc edi
xchg esi, edx
bswap edi
xor esi, 0xfd522dc3
sub edi, edx
jmp 0x475751
mov dword [esp + 0x60], ebx
ror edx, 2
xor edx, 0xfd57668c
and ecx, esi
or edx, 0xfd57f2a3
add edx, edi
rol esi, 0x1c
add esi, edi
sub ecx, esi
xor edx, edi
xchg ecx, esi
and edx, esi
jmp 0x4759ba
mov ebx, dword [esp + 0x60]
mov ecx, edx
add edx, ecx
bswap esi
xchg edx, esi
xor edx, esi
mov edx, ecx
xor esi, edx
and esi, edi
xchg edx, esi
bswap ecx
sub edi, ecx
sub esi, 0xfd7cf30f
shr esi, 5
xor ecx, 0xfd7d6cab
xor ecx, esi
jmp 0x475a82
sub esp, 0xe0
add esi, ecx
not esi
neg ecx
mov edi, edx
xchg edx, esi
jmp 0x477a5a
mov dword [esp + 8], 0
mov edi, ecx
or edi, edx
mov esi, edi
mov edi, 0xfd9b2979
xor edi, ecx
mov edx, esi
or esi, edx
or edx, esi
and esi, 0xfd9c3bf3
add esi, edx
jmp 0x475581
mov eax, 2
mov edx, 0xfda51c9c
mov ecx, 0xfda553c2
and esi, edx
add edx, edi
add edx, edi
inc esi
bswap esi
and edx, ecx
bswap edi
sub edx, edi
jmp 0x475eb4