Function at 0x478c90
Capabilities:
Encrypt data using chaskey

Disassembly:
mov esi, dword [esp + 0x98]
mov edi, 0x4a23ccd3
and edx, ecx
bswap edx
xchg ebx, edi
inc ebx
or edx, edi
not ecx
ror edi, 3
jmp 0x4786e3
ret
mov esi, dword [esp + 0x98]
sub edx, ebx
xor edi, 0x4a354755
sub edi, ecx
xor ecx, 0x4a363c15
and ecx, ebx
sub edx, 0x4a372147
mov ecx, ebx
and ecx, edi
or edx, 0x4a38c35d
not ebx
sub ecx, edi
xor ebx, edx
jmp 0x4789df
mov dword [esp + 0x98], 0
and edi, 0x4a69782b
xor edx, ecx
ror edx, 0xa
add edx, ebx
or ebx, edi
and edx, ecx
sub edi, ecx
xchg ecx, edx
add edx, edi
add ebx, 0x4a6df09d
jmp 0x47663f
mov dword [esp + 0x98], esi
ror edx, 0xc
add edi, 0x4a748cd5
xor edi, edx
xor edi, ecx
xor edx, ecx
xor ecx, 0x4a7674a5
and ecx, 0x4a770b73
and edx, ecx
jmp 0x4785a0
mov dword [esp + 0x80], esi
sub edx, ecx
xchg edx, edi
or edx, ebx
xchg edx, ecx
nop
neg ecx
shr edi, 5
not ebx
sub edi, ebx
mov ecx, edx
add edx, edi
ror edi, 5
xor ebx, edx
and ebx, 0x4a86081f
jmp 0x476504
mov esi, 0x30
ror ebx, 0x10
sub ebx, edi
xchg ecx, edi
and edi, edx
neg ebx
shl ebx, 0x15
rol edi, 8
xchg ecx, edi
inc edi
inc edx
add ecx, edx
mov ebx, ecx
or ecx, 0x4aacf13f
xor ecx, 0x4aad6697
jmp 0x476fab
mov esi, dword [esp + 0x88]
rol ecx, 0x13
and ebx, edi
sub edi, 0x4ac19f19
sub edx, 0x4ac22077
mov ecx, edx
xchg edi, ecx
jmp 0x477da8
mov esi, dword [esi]
sub edx, ebx
neg edi
shr edx, 0x11
add edx, edi
and ecx, 0x4ae40551
or ebx, ecx
or ecx, edx
add edx, 0x4ae5692d
not edx
xor ecx, ebx
jmp 0x477207
movzx esi, word [esi]
xor edi, edx
sub ecx, edi
mov edi, edx
xor ebx, edx
mov ebx, 0x4b017f7b
ror ecx, 0x13
sub edx, edi
xor ecx, ebx
rol edi, 0x1e
sub ecx, edi
jmp 0x47778a
mov esi, dword [esi]
mov edx, ecx
ror ecx, 5
sub ebx, ecx
shr edi, 0x1b
xor ecx, edx
xor edi, ecx
xchg ebx, ecx
or ebx, ecx
or ecx, edx
and ebx, 0x4b0c66b1
jmp 0x475e70
mov dword [esp + 0x98], esi
mov edi, edx
sub edi, edx
mov ecx, 0x4b0e0c2d
dec edx
xor ebx, 0x4b0f0b99
shl ecx, 0x1a
shl edx, 0x1e
xor edx, ebx
or ecx, edi
inc ebx
jmp 0x475ebd
mov esi, dword [esp + 0x88]
add edi, 0x4b4ef077
xor ebx, edx
rol ecx, 6
and ecx, edi
neg ebx
add ecx, edi
and ecx, ebx
mov edx, 0x4b50b6eb
sub edx, ebx
dec ecx
jmp 0x475fd8
add dword [esp + 0x98], esi
dec ebx
or ecx, edi
add edi, 0x4b657673
and edx, edi
add ebx, edi
or ecx, edx
add ebx, 0x4b666dbf
xchg edi, edx
neg ebx
add ebx, edx
inc edi
xchg edx, edi
sub ebx, 0x4b67f859
sub edx, ebx
sub ecx, edx
xchg edx, ebx
jmp 0x4787c8
mov dword [esp + 0x88], esi
add ecx, 0x4b79fc67
mov ebx, edi
xor edx, ebx
mov edx, 0x4b7ab755
xor ebx, edi
sub edx, ecx
add ecx, edx
or edx, ebx
and ecx, 0x4b7c6323
bswap edx
xor ecx, ebx
sub edi, edx
mov ecx, ebx
mov ecx, edi
and ecx, 0x4b7dd829
not edi
jmp 0x4773cb
mov esi, dword [esp + 0x98]
ror ebx, 1
and edx, edi
ror ecx, 0x1b
add edi, ebx
xor edx, edi
and ebx, edi
or edi, ecx
and edi, edx
and ebx, edx
xor edi, ecx
jmp 0x47631e
mov esi, dword [esi]
shl ecx, 6
and ebx, 0x4ba428a1
mov ecx, 0x4ba47737
or ecx, ebx
neg edi
and edi, 0x4ba535b9
jmp 0x476461
add esi, dword [esp + 0x88]
bswap edx
rol edx, 2
mov ebx, ecx
ror ecx, 3
rol edi, 9
or ecx, edi
sub edi, 0x4bbe8941
sub ebx, edi
and ecx, edx
not edi
bswap edi
dec ebx
sub edx, edi
and ecx, 0x4bc054b3
bswap edi
inc edi
jmp 0x475a9e
cmp eax, dword [esp + 0xa4]
jmp 0x476fcd
inc dword [esp + 0x38]
xchg ebx, edi
mov edx, 0x4bc95409
sub ebx, ecx
mov ecx, 0x4bc9d119
nop
sub edi, ebx
and edi, ebx
rol edx, 7
jmp 0x477f62
mov dword [esp + 0xa4], esi
and ebx, 0x4be25b71
xor edx, edi
shl edx, 0xb
xor edi, 0x4be31aa5
and ebx, 0x4be35931
xchg edi, ebx
mov edx, ebx
add ebx, ecx
jmp 0x475bba
mov esi, dword [esp + 0x80]
mov ecx, edx
sub edx, edi
xchg edx, edi
mov ecx, edi
xor ecx, ebx
or edi, edx
mov ecx, edi
mov edi, edx
jmp 0x476849
mov esi, dword [esi]
add edi, ecx
rol edi, 0x1c
neg ecx
xor edi, ebx
xor ecx, 0x4bf20d59
shr ebx, 0x17
jmp 0x4780b3
mov esi, dword [esi]
and ebx, edi
xor edi, 0x4c082471
or edi, 0x4c0875af
or edx, ebx
shl ebx, 0x1f
add ecx, 0x4c09329d
bswap ecx
or edx, edi
jmp 0x476a39
add dword [esp + 0x98], 4
rol ecx, 0xe
add edx, ecx
xor ecx, edx
and ebx, ecx
or edi, 0x4c1fbfc5
xchg edx, ecx
xchg edx, ebx
bswap ecx
or edi, 0x4c20cd51
shr ecx, 0xb
ror edx, 0x1a
xor ebx, 0x4c218e85
or edi, edx
add ebx, ecx
jmp 0x475825
mov eax, 2
mov ebx, 0x4c298f43
neg edi
bswap edi
mov edx, edi
inc edx
and ecx, edx
xchg edi, ecx
mov ebx, edi
mov ecx, edx
or edi, ecx
jmp 0x47879b
add esi, dword [esp + 0x88]
add ecx, edi
or ecx, edx
or ecx, edi
xor ecx, edi
rol edi, 5
or edi, ebx
or ebx, ecx
sub edi, ecx
jmp 0x478a43
mov esi, dword [esi]
xor ecx, 0x4c2f57f5
add ebx, 0x4c2f9667
xor ebx, edi
sub ecx, edx
and edx, edi
inc ecx
or edx, ecx
mov ecx, 0x4c311c71
sub edi, edx
mov edx, ecx
jmp 0x476e19
mov eax, 4
xor ecx, edi
or ecx, 0x4c3beb25
or ecx, 0x4c3c2bbb
add edx, edi
shl edx, 0x1b
and ecx, 0x4c3ce7a9
bswap edi
neg ecx
sub edx, 0x4c3db8d9
or edx, ecx
jmp 0x475e0f
xor eax, eax
sub edi, 0x4c474bad
xor ebx, ecx
ror ecx, 0x13
add edi, edx
xchg edi, ebx
not edx
bswap ebx
ror edx, 0x13
or ecx, edi
xchg ebx, ecx
neg ecx
mov ecx, edx
jmp 0x476d9a
mov dword [esp + 0x98], esi
add ecx, ebx
add ecx, edx
xor ebx, 0x4c59ded1
mov edi, 0x4c5a1d2d
or ebx, 0x4c5a6d57
neg edx
not ebx
xor edx, edi
not edx
xor ebx, ecx
jmp 0x479020
xor al, byte [esi]
mov edi, edx
xor ebx, edx
add ecx, ebx
mov ebx, ecx
xor edx, edi
xor ebx, edi
xchg edi, ebx
mov ecx, ebx
jmp 0x4783a6
mov esi, dword [esi]
xchg ecx, ebx
sub edx, 0x4c77aa1f
xchg edi, ecx
xor edx, ebx
xchg ecx, edi
add edi, 0x4c78a6d3
not edi
and ecx, edx
and ebx, 0x4c797485
or ebx, edx
xor edi, edx
mov ebx, ecx
jmp 0x477626
inc esi
dec ebx
sub ebx, edi
mov edi, 0x4c7b0039
or ebx, edx
xchg ecx, ebx
shl edx, 0x16
jmp 0x478b9e
mul esi
xor edi, edx
add edx, edi
shr edx, 4
neg ecx
sub edx, ebx
or edi, 0x4c7d5e9f
and edi, ebx
xor edx, ecx
bswap edi
and ecx, edx
rol edi, 1
or edi, edx
jmp 0x477504
mov esi, dword [esi]
mov ebx, 0x4c857b0f
add ebx, ecx
ror edx, 0xe
sub edi, ecx
dec ecx
xor edi, edx
xchg edx, edi
xchg ebx, ecx
jmp 0x4760ef
jne 0x476d9a
add ebx, ecx
shr edx, 0x1f
or ebx, edi
mov ecx, edi
and edi, ebx
or edi, edx
jmp 0x4778cf
mov esi, dword fs:[esi]
not edi
and ebx, ecx
xor edx, ecx
xchg ebx, ecx
add edi, ecx
mov ecx, ebx
xor ecx, edi
mov edi, 0x4c98c811
xchg edi, ebx
add ebx, edx
inc edi
add edi, ebx
jmp 0x477728
jne 0x476504
xchg ebx, edi
shr ebx, 3
shr ecx, 0xa
inc edx
sub edi, edx
bswap ebx
jmp 0x47698b
add dword [esp + 0x98], eax
shr edi, 0x12
rol edi, 0xb
mov edx, 0x4cbe0bdf
xchg edx, ecx
sub edi, edx
and edx, ecx
mov ecx, ebx
and edi, ebx
jmp 0x47589b
add esi, 0xc
add edx, edi
sub ebx, edx
xor ecx, edi
xor ecx, 0x4cc20ecf
sub ecx, edi
or edx, 0x4cc28b5f
jmp 0x476a68
add esi, dword [esp + 0x88]
mov ecx, 0x4ccf126d
nop
xchg edx, ecx
not edx
mov ebx, edx
mov ecx, ebx
and edi, ebx
xchg ecx, edi
jmp 0x4772e2
mov dword [esp + 0x80], esi
add ecx, edi
add edi, ecx
sub edi, 0x4cd1b749
add edi, ecx
sub ebx, edx
add edx, 0x4cd27143
xchg edx, ecx
or edi, ebx
or edx, ebx
add ebx, 0x4cd36b9b
jmp 0x476a19
mov esi, dword [esp + 0x88]
bswap edx
mov edx, ebx
xor edi, ebx
xor ebx, 0x4ce3721d
xor ebx, edi
inc ecx
mov edx, edi
and ecx, edi
xchg edi, ecx
and edi, ebx
or edx, edi
shr ecx, 0x16
or ebx, ecx
and edi, 0x4ce5c85d
jmp 0x478278
mov dword [esp + 0x38], eax
add edi, ecx
add edx, 0x4cf9a85d
sub edi, 0x4cf9e419
and ebx, 0x4cfa1f5f
add edi, edx
xor ecx, 0x4cfad58f
dec ebx
and ebx, 0x4cfbb40b
jmp 0x478819
mov esi, dword [esi]
or edi, 0x4d0ec609
xor ecx, edx
rol ecx, 0x1e
shl edx, 0xe
sub ecx, 0x4d0fd58d
xor edi, 0x4d101449
jmp 0x477e7c
mov esi, dword [esp + 0x98]
sub ebx, ecx
mov edi, edx
and ecx, ebx
xor edx, edi
mov edi, 0x4d132919
mov edx, ecx
or ebx, edx
mov edx, ecx
jmp 0x47671c
mov esi, dword [esi]
not ecx
or ecx, edi
mov edx, ebx
and edx, ebx
inc edi
mov edi, ebx
and edi, edx
or edi, edx
add edi, ebx
add edi, ecx
jmp 0x475a4c
add esi, 0xc
xor edx, ebx
or edx, 0x4d226c13
and edi, edx
dec edi
rol edi, 0x13
and ebx, ecx
and edx, ecx
add ecx, ebx
jmp 0x475d36
add esi, dword [esp + 0x38]
add ebx, edi
add ebx, edx
xor ebx, ecx
or edx, ebx
or ebx, edx
xor edi, edx
or ebx, ecx
xor ebx, edi
neg edi
or edx, edi
jmp 0x476af0
mul esi
add edx, ebx
or ebx, edx
xor ebx, 0x4d2a8317
xor edi, ebx
jmp 0x4771cf
pop esi
rol ebx, 0x11
or edx, ecx
dec ebx
add ebx, edx
and edi, ecx
shr edi, 0x1a
dec edi
sub edi, ecx
xor ecx, ebx
xor ebx, edi
jmp 0x476496
add esi, dword [esp + 0x88]
or ebx, 0x4d5706cf
mov edi, ecx
mov edi, edx
shr ebx, 0x13
mov edi, edx
not ebx
ror ecx, 0x11
xor edx, ebx
jmp 0x477a6f
add esp, 0xcc
rol ecx, 7
sub ebx, ecx
or ebx, 0x4d6198db
xchg edi, ecx
mov ecx, 0x4d620ed1
neg edi
sub edi, ebx
neg ecx
xchg edx, ebx
xchg edi, ebx
jmp 0x475844
add esi, dword [esp + 0x98]
add edi, ebx
and edi, ecx
or ebx, ecx
xor ecx, edx
mov edi, ebx
bswap ecx
bswap ecx
xor edi, ebx
jmp 0x475e4f
add esi, 0x18
shr edx, 0x18
xor ebx, ecx
add edx, edi
add edx, ecx
and ecx, edx
mov ecx, 0x4db06cff
and ecx, 0x4db0bcb1
inc edi
and ebx, edx
and edx, 0x4db17835
shr ebx, 0x1d
shr ecx, 0x12
jmp 0x476ecc
add dword [esp + 0x80], 4
ror edi, 0x1e
mov edi, ecx
or ebx, ecx
or ebx, edx
add ecx, edx
and edi, ecx
jmp 0x476700
add esi, dword [esp + 0x88]
and ebx, edx
bswap edi
add edx, ecx
and ebx, 0x4dd8f93b
ror edx, 0xa
sub ebx, edi
add edi, ecx
dec ecx
xor ecx, 0x4ddb22dd
or ecx, edi
jmp 0x476c82
add esi, 0x3c
mov edx, edi
sub edx, ecx
shl edi, 5
xor edx, ecx
ror edi, 1
bswap edi
jmp 0x4776c6
rol eax, 8
and edx, ebx
or edi, 0x4e11135b
sub edx, 0x4e11634d
add ecx, ebx
and edx, edi
dec ecx
add edx, ecx
or edi, ecx
inc ebx
inc ecx
jmp 0x476e44
add dword [esp + 0x98], 0x78
mov ecx, ebx
mov ecx, edi
mov edx, ecx
mov edi, edx
sub edx, edi
or ecx, 0x4e384b5d
jmp 0x475c5e
mov esi, dword [esi]
xchg ebx, ecx
mov edi, ecx
xor edx, ecx
xchg edx, ecx
sub ecx, ebx
xor ecx, ebx
jmp 0x4772c4
mov esi, dword [esp + 0x38]
sub ebx, edi
or edi, ecx
rol edi, 7
mov ecx, edx
xchg ebx, edx
sub edi, ecx
mov ebx, edx
or ecx, edx
sub edi, 0x4e5cf72d
xor ebx, 0x4e5d33df
and edx, ebx
bswap edx
jmp 0x476e59
add dword [esp + 0x98], 0x20
sub ecx, edx
xchg edx, ecx
and edx, edi
mov ebx, edx
and ebx, ecx
or edx, edi
or edi, ebx
sub ebx, 0x4e5f99b9
mov edx, edi
sub edi, ebx
jmp 0x4762fc
sub dword [esp + 0x98], 8
xor edi, ebx
shl edx, 0xd
xchg ecx, edi
sub ecx, edx
and ebx, edi
not ebx
xor edi, edx
xor ebx, edi
add ebx, 0x4e652ecd
or edi, ebx
or ecx, ebx
sub edx, edi
xor edx, 0x4e6617bd
sub ebx, 0x4e665385
jmp 0x477663
mov esi, dword [esi]
mov ebx, edi
and edi, 0x4e86042f
inc ebx
and edi, edx
or edx, edi
mov ecx, edi
or edi, ecx
xor edx, ebx
xchg edi, edx
or edx, 0x4e87e50f
xchg ecx, edx
sub ecx, 0x4e885c8b
mov ebx, edx
sub ecx, edx
jmp 0x4779d8
push esi
sub ebx, ecx
and edi, ebx
and edx, ecx
or edx, ecx
mov edi, 0x4e8db02d
add edi, edx
sub edx, 0x4e8e2d99
mov edx, ecx
rol ecx, 0xc
add ecx, ebx
not ecx
xor ecx, edi
xor edx, ecx
and edi, 0x4e8ff21d
mov ecx, 0x4e903151
mov edx, ecx
jmp 0x476b9d
cmp byte [esi], 0
jmp 0x476ee6
sub esp, 0xcc
dec ebx
add edx, ebx
add ebx, edi
sub ecx, edx
jmp 0x47906e
mov dword [esp + 0x88], 0
mov ebx, edx
sub edx, 0x4ed703e5
sub edi, edx
shr edx, 0x18
dec edi
add edi, 0x4ed801e3
sub edx, ebx
xchg ebx, edi
xchg edi, edx
sub ecx, ebx
jmp 0x4759fb
mov dword [esp + 0x80], 0
sub ecx, 0x4ef36f57
ror edx, 0x10
or edi, ebx
rol ebx, 0x1f
ror edx, 0x1a
neg edx
jmp 0x478e2a
mov esi, dword [esp + 0x80]
neg ebx
dec edi
and ebx, edi
inc edx
dec ebx
mov ecx, ebx
xchg ebx, ecx
and edx, 0x4efbfe2b
dec ebx
bswap edx
mov edi, ecx
xor edi, ebx
ror ecx, 0x11
and ecx, 0x4efdef3f
jmp 0x47776a
mov dword [esp + 0x38], 0
xor edx, ebx
and edx, edi
xor edx, 0x4f01684f
or ecx, edi
jmp 0x478fa9