Function at 0x477f93
Capabilities:
Encrypt data using chaskey

Disassembly:
mov edi, dword [esp + 0xb4]
xchg ecx, esi
not edx
not edx
dec edx
mov edx, esi
ror esi, 7
add ecx, 0x6e70a0d3
or ebx, esi
mov ecx, 0x6e711bc9
jmp 0x47677c
add edi, dword [esp + 0xbc]
inc ecx
or esi, ecx
or ebx, 0x6e8f1c8d
shr esi, 2
and edx, esi
not ecx
neg ecx
and edx, 0x6e905c22
xor ecx, 0x6e909aae
xchg esi, edx
add ebx, edx
jmp 0x477b52
inc dword [esp + 0xb4]
add esi, 0x6e957741
sub ebx, ecx
add ebx, esi
bswap ebx
mov esi, ecx
sub ecx, ebx
or ecx, edx
neg esi
shr esi, 0xf
ror ebx, 0x13
shr edx, 0xf
shl ecx, 0x14
or ecx, ebx
xor ecx, 0x6e989549
and esi, edx
nop
jmp 0x476357
mov edi, dword [edi]
xchg edx, ebx
xchg esi, edx
sub ebx, esi
sub ecx, ebx
or ebx, esi
xchg ebx, ecx
xor edx, ebx
inc ecx
xor esi, 0x6e9c2edc
xchg ecx, ebx
xor esi, edx
jmp 0x47739b
rol eax, 8
or ecx, ebx
xor ecx, edx
add esi, 0x6ea2a04e
sub ebx, esi
inc ecx
and ebx, ecx
mov esi, 0x6ea390c5
sub esi, edx
xor esi, edx
xor ecx, esi
shr esi, 0x11
jmp 0x4771c4
mov edi, dword [edi]
sub esi, 0x6ea7a2cb
mov ecx, esi
bswap ecx
add edx, 0x6ea856ea
sub esi, 0x6ea893bc
add edx, ecx
sub ebx, edx
xor esi, 0x6ea9542f
bswap esi
sub esi, ecx
sub esi, edx
add ecx, ebx
xor edx, esi
jmp 0x475584
mov dword [esp + 0x68], edi
and ecx, 0x6ed97fe6
and edx, ebx
xor esi, ecx
or esi, ecx
dec esi
dec esi
neg ecx
jmp 0x476951
mov edi, dword [edi]
dec ecx
xor ebx, edx
or ebx, esi
ror ebx, 4
sub ecx, ebx
sub edx, ecx
jmp 0x4773dd
mov dword [esp + 0xbc], 0
add esi, ebx
and edx, 0x6ef40a87
mov esi, 0x6ef447d3
add edx, esi
and esi, 0x6ef4be86
and edx, ecx
inc esi
shl ecx, 9
xor edx, ecx
jmp 0x4761a3
mov dword [esp + 0xb4], eax
or edx, esi
shl ebx, 4
or esi, 0x6ef67ab1
shl ebx, 5
xor esi, 0x6ef7034d
bswap ecx
or esi, ecx
sub esi, ebx
neg ebx
sub ecx, ebx
jmp 0x475f38
push edi
and edx, ebx
xchg edx, esi
neg ecx
xchg ecx, ebx
inc ebx
dec edx
and edx, esi
shl esi, 0x19
inc ecx
xchg edx, ecx
and esi, ebx
add edx, ebx
jmp 0x475d49
xor eax, eax
inc edx
mov ecx, 0x6f1b6281
xchg ebx, ecx
xchg esi, ebx
xor ebx, edx
dec ecx
mov edx, esi
sub edx, 0x6f1ce173
mov ecx, esi
xchg edx, ecx
mov ebx, edx
and ebx, 0x6f1dd4e0
jmp 0x477a29
add edi, dword [esp + 0xc0]
or ecx, edx
add esi, 0x6f2efdf2
mov ecx, edx
not ebx
xor ecx, 0x6f2fb524
add esi, edx
and ebx, 0x6f303fea
xor ecx, edx
or edx, ecx
sub esi, ecx
add ebx, edx
nop
sub edx, ebx
add ebx, edx
jmp 0x4774e1
mov edi, dword [edi]
nop
xchg ecx, edx
and edx, esi
add ecx, edx
inc esi
xchg ebx, edx
mov esi, ebx
neg edx
jmp 0x477d48
sub dword [esp + 0xc0], 8
shl edx, 0x1c
dec ebx
xchg ebx, esi
and ebx, ecx
and ecx, edx
mov esi, 0x6f400528
mov ebx, esi
inc ecx
mov ebx, edx
add edx, ebx
add esi, ebx
nop
xor ecx, 0x6f421dd3
mov ebx, ecx
jmp 0x476873
mul edi
bswap ecx
bswap edx
or edx, ebx
add ebx, esi
bswap edx
or esi, edx
xor esi, ebx
and esi, ecx
xchg ebx, esi
or esi, edx
mov edx, 0x6f57700c
mov ebx, esi
rol esi, 0x17
jmp 0x477840
mov dword [esp + 0xc0], edi
add ebx, esi
mov ecx, esi
not ecx
mov ecx, 0x6f5b1f72
or ebx, ecx
sub ebx, 0x6f5b8d02
mov ebx, edx
or ecx, esi
bswap esi
shr edx, 0x1b
jmp 0x477be4
mov edi, dword [esp + 0xc0]
mov ecx, ebx
or esi, 0x6f6182a1
or esi, 0x6f61ba00
xchg ecx, esi
xchg ecx, ebx
bswap edx
sub ecx, esi
add ebx, edx
or esi, ecx
shl edx, 0x1c
xor ebx, ecx
or edx, 0x6f63bae3
xchg ebx, esi
xchg edx, ebx
jmp 0x4756e8
mov dword [esp + 0xc0], 0
dec ecx
and edx, esi
xchg edx, esi
shr esi, 0x1d
not edx
add ecx, 0x6f6aff5a
mov ebx, esi
shr ebx, 4
add edx, ecx
inc ecx
and ebx, edx
jmp 0x4759c5
jne 0x477a29
or ebx, edx
inc ecx
add edx, ebx
dec ebx
add ebx, 0x6f790ed6
or edx, ecx
mov ebx, esi
and edx, 0x6f79bf66
and ecx, ebx
add ecx, edx
bswap ecx
sub esi, ecx
jmp 0x476bd9
add dword [esp + 0x78], 4
or esi, ecx
or edx, ecx
or ecx, 0x6f87584f
jmp 0x4772f6
mov edi, dword [edi]
and esi, edx
xchg ebx, edx
xor ebx, esi
xchg esi, edx
shl esi, 1
shl ecx, 4
add esi, ebx
mov ebx, esi
mov esi, ebx
inc esi
jmp 0x477347
mov edi, dword [edi]
and ecx, edx
or edx, 0x6f8fa028
sub ebx, 0x6f8fd809
mov edx, 0x6f9010af
or ecx, ebx
and ebx, esi
sub esi, edx
or ebx, edx
not esi
neg ecx
mov ebx, 0x6f919fe2
rol edx, 8
jmp 0x4766c3
mov eax, 4
ror edx, 0xb
or ecx, esi
or edx, esi
nop
bswap ebx
add edx, 0x6f97e6b5
add edx, ecx
jmp 0x477371
mov dword [esp + 0xc0], edi
sub ebx, edx
add edx, ebx
rol edx, 8
xchg edx, ecx
xchg ecx, edx
shr esi, 4
and ebx, edx
sub ebx, ecx
nop
sub ebx, 0x6f9c83c2
inc edx
or ebx, ecx
not esi
neg ecx
xor edx, ecx
jmp 0x47666f
mov edi, dword [esp + 0xbc]
xor ecx, esi
xor edx, esi
xchg edx, ecx
dec edx
ror ebx, 0x13
mov esi, edx
inc esi
xor ebx, esi
xor edx, esi
not edx
add ecx, ebx
jmp 0x477543
add dword [esp + 0xc0], 4
xchg esi, ebx
and ecx, ebx
xor ecx, edx
or ebx, ecx
xchg edx, ebx
xchg edx, ecx
mov edx, ecx
xchg esi, ebx
xchg esi, ecx
xchg ecx, esi
sub ecx, esi
sub edx, esi
jmp 0x476123
add dword [esp + 0xc0], 0x78
mov ecx, edx
and ecx, esi
mov esi, edx
add edx, ebx
and ecx, ebx
not ebx
xchg ebx, edx
rol esi, 0x18
add esi, 0x71794d52
rol ecx, 0x11
sub edx, ebx
xchg ebx, ecx
jmp 0x477462
add edi, dword [esp + 0xbc]
and ebx, edx
add ecx, edx
mov esi, ebx
xor edx, ecx
add esi, ebx
mov ebx, esi
and ebx, edx
mov edx, ecx
sub ecx, 0x717f110a
inc ebx
jmp 0x4760ad
mov edi, dword [edi]
add edx, 0x7186975d
or esi, edx
ror ebx, 0xf
nop
neg ecx
add ebx, esi
and ebx, edx
mov esi, 0x71885a2f
not ecx
jmp 0x477a48
mul edi
xchg ebx, ecx
xor edx, ebx
not edx
jmp 0x475b6e
mov edi, dword [esp + 0xbc]
or edx, ebx
add ebx, 0x719f273d
xor ebx, edx
and ecx, esi
or ebx, ecx
add edx, ecx
xor ebx, 0x71a0d0d8
rol edx, 0x15
or ebx, 0x71a15cab
xchg edx, esi
or edx, esi
xor edx, ecx
bswap ebx
jmp 0x477625
mov edi, dword [esp + 0xc0]
neg edx
add ecx, esi
and ebx, edx
or ebx, ecx
add esi, 0x71a62289
sub ebx, ecx
and ecx, esi
xor edx, ebx
xchg edx, ebx
jmp 0x4763df
add edi, dword [esp + 0xb4]
shr esi, 0xa
xchg ebx, edx
sub esi, ebx
xchg ebx, edx
jmp 0x476459
mov edi, 0x30
xchg ebx, ecx
rol edx, 7
neg edx
sub edx, ebx
mov edx, ecx
sub ebx, ecx
xor ebx, ecx
shl ecx, 0x16
jmp 0x476bb3
mov edi, dword [edi]
shr ecx, 0x1b
dec esi
sub edx, esi
sub esi, edx
add edx, esi
sub ebx, 0x71c34d8c
xor edx, ecx
xchg edx, ebx
rol edx, 0x19
shr ebx, 2
jmp 0x4770b6
mov edi, dword fs:[edi]
and ebx, ecx
sub esi, edx
mov ecx, 0x71eae488
xor ebx, edx
neg esi
bswap esi
mov ebx, esi
and esi, ebx
and edx, 0x71ec685a
add edx, esi
add ebx, edx
dec ebx
jmp 0x476dd5
pop edi
add ebx, esi
ror ecx, 0x1f
sub esi, ebx
xchg edx, esi
jmp 0x47726e
mov eax, 2
not edx
or ebx, 0x71fa9d1e
not edx
xor esi, ebx
ror ecx, 0xa
or esi, 0x71fb981c
neg ecx
bswap esi
mov ecx, 0x71fc66c8
xchg ebx, esi
xor ebx, edx
or edx, ecx
jmp 0x475416
add edi, 0xc
and ebx, ecx
sub ecx, 0x72133c62
add edx, 0x72138a1c
bswap edx
sub edx, ecx
xchg ecx, ebx
sub esi, edx
jmp 0x47697e
add edi, 0x18
sub ecx, ebx
neg ebx
xor esi, edx
ror esi, 4
xor ebx, esi
xor edx, ecx
and ebx, ecx
xchg ecx, ebx
or esi, ebx
sub edx, 0x724108ef
mov esi, ebx
sub edx, 0x7241809a
mov esi, edx
and ecx, esi
jmp 0x47563e
add edi, 0xc
mov edx, esi
xchg ebx, ecx
xchg ebx, edx
sub edx, esi
xor edx, ecx
sub esi, 0x7248c051
sub esi, ecx
xor edx, ecx
xchg ecx, esi
add esi, ecx
sub esi, ebx
sub ebx, esi
or edx, ecx
jmp 0x475abc
mov edi, dword [esp + 0xc0]
mov esi, 0x725ffb58
or edx, ebx
shl edx, 8
sub esi, edx
shr esi, 9
add esi, ebx
and ecx, esi
add edx, esi
neg ecx
xor ebx, ecx
sub ebx, 0x72639efe
jmp 0x4763a8
inc edi
dec ebx
xor edx, esi
bswap esi
mov edx, esi
xchg ebx, ecx
xchg esi, ebx
rol edx, 0x1d
not edx
add ecx, ebx
xor ecx, ebx
jmp 0x477ac8
mov dword [esp + 0x78], edi
and esi, 0x726f7f18
shl esi, 9
dec edx
shl edx, 3
neg edx
or ecx, ebx
jmp 0x4755f3
cmp eax, dword [esp + 0x68]
jmp 0x4779db
mov edi, dword [esp + 0x78]
xor edx, ebx
or ecx, ebx
mov ecx, esi
and edx, 0x727db446
or edx, esi
mov esi, 0x727e22ac
and esi, ebx
add edx, ebx
not ecx
mov edx, ecx
mov edx, ebx
shr ecx, 0x1e
mov edx, esi
bswap edx
mov edx, ecx
jmp 0x475ec3
add edi, dword [esp + 0xbc]
or ebx, 0x728d3ea5
and ebx, ecx
nop
and edx, esi
add edx, 0x728e2e56
or ecx, edx
shr esi, 7
sub esi, edx
add ebx, 0x728f2ffc
jmp 0x477afc
movzx edi, word [edi]
xchg ebx, ecx
shl edx, 2
dec edx
mov edx, ecx
xor ecx, esi
add edx, 0x72911766
or edx, ecx
and edx, 0x729190a0
and ecx, 0x7291cdca
and ecx, edx
mov edx, esi
jmp 0x476069
mov dword [esp + 0xbc], edi
dec ecx
shr esi, 0xd
add edx, ecx
xor esi, 0x7293491c
neg edx
sub edx, ebx
mov edx, esi
rol ebx, 7
bswap esi
jmp 0x47681a
mov edi, dword [edi]
mov ebx, 0x72979ed5
and ebx, edx
sub esi, 0x7298160b
and esi, edx
or ecx, ebx
ror ebx, 0x1a
shl ebx, 0x1c
xor esi, ecx
bswap ebx
jmp 0x4774c3
mov dword [esp + 0xc0], edi
mov ebx, 0x7299dee7
bswap edx
xor ecx, esi
mov ebx, 0x729a9593
mov ebx, edx
and esi, ebx
shr ecx, 0x16
rol edx, 9
or edx, ecx
inc edx
shl esi, 0x13
sub edx, ebx
jmp 0x47652c
mov edi, dword [esp + 0xbc]
bswap edx
dec edx
add edx, esi
add esi, 0x72a296d2
neg ebx
neg edx
rol ecx, 0x11
add ecx, esi
jmp 0x475e6a
mov edi, dword [edi]
or ecx, 0x72a9d5b5
and edx, esi
not ebx
neg edx
and ebx, edx
mov ebx, 0x72ab1853
sub ecx, edx
sub esi, ebx
jmp 0x477037
mov edi, dword [edi]
add edx, 0x72abe675
sub ebx, ecx
xor ecx, esi
sub ecx, ebx
xor edx, esi
add ecx, ebx
add esi, ecx
mov ecx, 0x72ada07d
jmp 0x4773ff
add dword [esp + 0xc0], edi
add esi, 0x72b309c2
shr edx, 3
and esi, edx
dec esi
dec ecx
xor esi, ebx
xor esi, ebx
xor ebx, edx
or ebx, 0x72b5ec4c
mov ebx, ecx
and ecx, 0x72bb414c
xor ebx, ecx
xor ebx, edx
add ecx, esi
jmp 0x47788d
add edi, 0x3c
sub esi, ebx
inc ebx
add esi, ebx
jmp 0x47773b
mov edi, dword [edi]
mov esi, ebx
xor ebx, edx
or ebx, ecx
xor edx, ecx
sub ebx, edx
sub ebx, esi
and ecx, edx
xor ecx, 0x72e8ba06
sub edx, ecx
jmp 0x476493
add dword [esp + 0xc0], eax
dec esi
add esi, 0x7311f4ed
ror ecx, 1
xchg ecx, esi
mov ebx, edx
shr esi, 0x1b
jmp 0x47717d
add dword [esp + 0xc0], 0x20
and ecx, ebx
xor edx, ecx
add ecx, 0x731c057b
not ecx
rol ecx, 0xa
add esi, ecx
xor esi, ebx
or ecx, edx
bswap esi
jmp 0x477c9e
mov dword [esp + 0xb4], 0
xor ecx, 0x737932a7
add edx, 0x737971e4
mov ebx, 0x7379af32
and edx, ecx
or ebx, esi
nop
or ecx, 0x737aa664
mov ecx, ebx
jmp 0x477a88
jne 0x4755f3
shl ebx, 0x1b
xor ecx, ebx
xor esi, 0x738b723e
mov ecx, esi
bswap ebx
sub ebx, 0x738c3780
and ecx, 0x738c741c
sub ecx, ebx
mov ebx, edx
or ecx, esi
and ebx, ecx
jmp 0x4765ab
xor al, byte [edi]
add ebx, esi
shr ebx, 0x10
xchg esi, ebx
sub ecx, esi
xchg ebx, ecx
or ebx, ecx
xor edx, 0x7391bcb8
xor edx, ecx
neg ecx
inc esi
jmp 0x47569e
add edi, dword [esp + 0xbc]
or ebx, 0x7392ae29
mov ebx, 0x7392f438
jmp 0x477220
mov dword [esp + 0x78], 0
sub ebx, 0x73967388
or edx, esi
xchg ecx, edx
add esi, 0x739719b8
add esi, edx
and esi, ecx
or ecx, esi
xchg edx, ebx
not ecx
and ecx, edx
and ecx, esi
and ecx, 0x7398ddd8
xor esi, 0x73991536
xor esi, 0x73994ea5
jmp 0x475b41
cmp byte [edi], 0
jmp 0x47626e
add esp, 0xc4
sub ecx, 0x739c6085
xchg esi, ecx
add edx, ebx
sub ebx, edx
or esi, 0x739d3b02
rol esi, 3
jmp 0x477c5e
mov dword [esp + 0x78], edi
dec ecx
and ebx, esi
add esi, ebx
xchg edx, ecx
xchg edx, ecx
mov edx, 0x73a1c706
xor ebx, edx
inc esi
or ecx, 0x73a27d6e
jmp 0x476c90
mov edi, dword [esp + 0x78]
and esi, edx
dec esi
xchg ebx, esi
shr ecx, 0xe
and esi, 0x73ab4045
add ebx, ecx
not edx
ror ebx, 0x18
or ecx, esi
and esi, edx
jmp 0x47691d
ret
mov edi, dword [esp + 0xc0]
rol ecx, 0xd
bswap edx
add edx, ebx
neg esi
shr ebx, 0xe
and ecx, 0x73b9cf6c
bswap ecx
xor ebx, ecx
sub esi, edx
sub ecx, edx
jmp 0x47671c
add edi, dword [esp + 0xbc]
xor edx, 0x73c54597
xor ecx, ebx
or ecx, ebx
mov edx, 0x73c60950
rol ecx, 0x17
mov ebx, 0x73c6858f
and ebx, 0x73c6c2e2
jmp 0x475c53
sub esp, 0xc4
or edx, ecx
shr esi, 3
shl edx, 0x1d
not edx
or ebx, esi
mov ebx, ecx
or ecx, edx
mov esi, edx
add esi, 0x73f28eb0
inc ebx
jmp 0x4778d0