Function at 0x47850f
Capabilities:
Encrypt data using chaskey

Disassembly:
mov dword [esp + 0x90], 0
xor esi, ecx
bswap esi
mov ecx, esi
bswap esi
and edi, ecx
add ebx, edi
bswap esi
add edi, ecx
jmp 0x476b6f
add edx, 0xc
add ecx, esi
or edi, esi
xor ecx, 0x34b5a3be
add ecx, edi
add ebx, ecx
add edi, ecx
shr esi, 6
xchg edi, esi
jmp 0x47788e
add dword [esp + 0x78], 4
and edi, esi
and ecx, edi
ror ebx, 0x19
xchg esi, edi
jmp 0x475af0
add edx, dword [esp + 0x48]
sub ebx, ecx
sub ecx, esi
dec esi
or ebx, 0x34c0d2ce
shr esi, 0x10
xchg edi, esi
add ecx, ebx
or ebx, esi
jmp 0x477e9f
ret
jne 0x47765d
shl ecx, 0x19
rol ecx, 5
shr ecx, 6
and edi, esi
sub ecx, esi
xor ecx, 0x34c987d0
dec ebx
sub edi, esi
jmp 0x478073
mov edx, dword [esp + 0x78]
add edi, ecx
shr ecx, 0x17
and ebx, esi
inc ecx
add edi, 0x34d2e542
mov edi, 0x34d2ff6c
not ebx
or ebx, ecx
jmp 0x4783ff
add edx, dword [esp + 0xa0]
ror esi, 3
add ebx, ecx
or esi, 0x34e6a6d0
or esi, ebx
and ebx, ecx
or edi, 0x34e6f2a6
jmp 0x477602
mov edx, dword [edx]
and ecx, esi
add ebx, esi
or edi, esi
rol ebx, 0x19
jmp 0x477f59
mov dword [esp + 0x78], 0
sub esi, 0x360c23fc
xor edi, ecx
bswap esi
xor ecx, edi
jmp 0x4766a9
add edx, dword [esp + 0xa0]
or esi, edi
or ecx, esi
mov edi, esi
mov edi, ecx
xor ecx, ebx
sub edi, esi
mov ecx, ebx
mov ebx, ecx
add ebx, edi
or ecx, esi
add ebx, 0x360fe7f4
xchg esi, ecx
jmp 0x47763e
mov edx, dword [edx]
or edi, esi
xchg edi, ebx
jmp 0x476359
add esp, 0xc0
and esi, ecx
xor ecx, edi
xor edi, esi
and ebx, edi
not esi
or ebx, edi
add edi, esi
or ecx, esi
add esi, ecx
add ebx, 0x36172cfe
add ebx, edi
dec ecx
jmp 0x475a18
add dword [esp + 0x90], 0x78
xchg ebx, edi
sub esi, ecx
or esi, ebx
xor esi, ebx
xchg ecx, ebx
or esi, 0x361802ee
add esi, edi
bswap ebx
jmp 0x47680a
mov edx, dword [esp + 0x90]
add esi, 0x36223c2a
or esi, 0x36225b72
add edi, esi
mov esi, 0x36228dbc
and ecx, esi
rol edi, 0x10
jmp 0x477ddb
mov dword [esp + 0x90], edx
mov ebx, esi
xor ecx, edi
add ecx, edi
mov edi, ebx
mov ecx, esi
neg ecx
bswap esi
sub edi, esi
jmp 0x4761da
mov edx, dword [esp + 0x78]
and edi, esi
shl ebx, 0x19
inc esi
sub ecx, edi
sub edi, ebx
xchg esi, ecx
mov edi, esi
add esi, edi
sub esi, ebx
not ebx
jmp 0x4759f8
mov edx, dword [edx]
mov ecx, edi
xor esi, ebx
mov ecx, esi
mov edi, 0x363211a8
not ebx
and ecx, ebx
add ebx, ecx
and edi, ecx
rol edi, 0x12
xor ecx, 0x3632b3ce
mov ebx, 0x3632cc22
and ebx, edi
jmp 0x476678
pop edx
rol edi, 0x17
mov ecx, esi
mov ebx, edi
neg ecx
not edi
bswap ebx
jmp 0x4779f9
mov dword [esp + 0x48], eax
or ebx, edi
add ecx, edi
mov esi, 0x363420c4
xor ebx, ecx
add ebx, ecx
or ecx, ebx
xchg ebx, esi
sub ebx, esi
sub esi, edi
mov esi, edi
jmp 0x476441
sub dword [esp + 0x90], 8
mov esi, 0x36388ca8
xor ebx, ecx
rol esi, 3
neg ebx
rol edi, 0x1d
mov ecx, 0x363910ea
sub edi, esi
and ecx, edi
or esi, ecx
rol esi, 0x1d
jmp 0x476126
mov edx, dword [esp + 0x48]
rol edi, 0xe
neg ecx
sub ecx, ebx
xor ecx, 0x363f9396
xor esi, ebx
add esi, ebx
mov ebx, 0x363fdeb2
mov edi, ebx
jmp 0x4784dd
add edx, dword [esp + 0xa0]
nop
sub ebx, 0x3640e076
sub ebx, ecx
or edi, 0x36411bee
jmp 0x4761a9
mov edx, dword [esp + 0x90]
and edi, ebx
xchg ecx, ebx
add edi, ebx
sub esi, ecx
not ecx
or edi, 0x3645b064
add edi, ebx
xor ecx, 0x3645e782
jmp 0x4768db
mov edx, dword [esp + 0xa0]
bswap ecx
xchg ecx, ebx
xchg ebx, edi
bswap edi
add edi, ebx
sub esi, ecx
xchg ebx, edi
bswap ecx
xor ebx, 0x3646dec2
inc ecx
bswap ebx
mov ebx, ecx
or esi, edi
sub ebx, ecx
jmp 0x476c23
mov edx, dword [edx]
xchg ecx, esi
neg edi
jmp 0x476ef7
mov edx, dword fs:[edx]
sub ecx, esi
sub ecx, ebx
dec ecx
shr ebx, 0x13
sub edi, esi
or esi, ecx
jmp 0x47593e
mov dword [esp + 0xa0], 0
inc ebx
add esi, 0x364a0426
not edi
sub ecx, 0x364a3a40
and esi, 0x364a54b4
add esi, 0x364a6e5e
mov esi, 0x364a8868
mov ecx, esi
xor edi, ecx
mov ecx, ebx
ror ecx, 0xe
xor ebx, edi
jmp 0x475881
mov edx, dword [esp + 0xa0]
rol esi, 7
neg ebx
and ecx, esi
mov edi, ecx
or ebx, 0x364b91bc
add esi, ebx
mov ebx, 0x364bc3b2
inc edi
jmp 0x478350
xor al, byte [edx]
bswap ebx
and ecx, ebx
jmp 0x47791c
mov edx, dword [esp + 0xa0]
add ebx, ecx
rol edi, 0x10
sub esi, ecx
xor esi, ebx
xchg ebx, edi
sub ebx, edi
jmp 0x477a27
mov edx, dword [edx]
or esi, 0x365c001a
ror ebx, 0x18
mov ecx, esi
xor ebx, ecx
dec esi
rol ebx, 0xc
sub ecx, esi
and ebx, edi
jmp 0x475c79
mov edx, dword [edx]
or ecx, esi
add ebx, edi
or esi, ecx
and ecx, edi
jmp 0x477099
mov dword [esp + 0x28], edx
and ecx, edi
xor edi, ecx
add ebx, 0x3670edb6
xchg esi, ebx
or ecx, ebx
inc esi
mov ebx, 0x36715a72
bswap edi
jmp 0x4770e7
add edx, 0x3c
or ecx, esi
sub ecx, edi
xor edi, esi
ror esi, 0x11
mov esi, ebx
and ebx, esi
sub edi, 0x3676df6a
shl esi, 0x1b
jmp 0x47792c
add edx, 0xc
neg edi
xor ebx, ecx
sub ecx, edi
sub ecx, esi
jmp 0x475f69
mov edx, dword [edx]
bswap ecx
not ecx
sub edi, esi
mov ebx, ecx
dec esi
mov ecx, 0x367c7e38
jmp 0x475e9f
jne 0x47673e
and ecx, 0x36861bf0
mov ecx, esi
mov edi, esi
xchg ebx, edi
or edi, esi
add edi, ebx
ror ecx, 0xe
mov ecx, edi
jmp 0x476383
mov dword [esp + 0x90], edx
sub ecx, 0x36891362
add ecx, edi
inc edi
sub esi, 0x36896832
add esi, ecx
and esi, 0x36899d68
jmp 0x475fb8
mov edx, dword [esp + 0x90]
xchg edi, esi
xchg ecx, esi
xor ebx, edi
xchg ebx, ecx
jmp 0x476cda
add edx, 0x18
xchg ecx, esi
or edi, ebx
and ecx, 0x368bd5b6
add edi, ecx
jmp 0x477b28
mov dword [esp + 0x90], edx
xor edi, esi
sub ebx, 0x36999e84
and ecx, 0x3699b844
xor ebx, 0x3699d7ac
jmp 0x4766e4
mov edx, 0x30
or ecx, edi
add edi, esi
add ecx, 0x369b9d62
and esi, ecx
or ecx, 0x369bcf78
or ebx, esi
inc ecx
bswap edi
xchg edi, ebx
and ecx, edi
jmp 0x476683
add dword [esp + 0x90], 0x20
xor esi, ecx
xchg edi, ebx
or edi, ebx
and esi, ebx
rol esi, 0xa
xchg edi, ecx
inc ecx
xor edi, ebx
shr esi, 0x18
sub esi, 0x36a8abb8
and edi, 0x36a8c52e
rol ebx, 4
jmp 0x476609
xor eax, eax
dec ebx
and esi, 0x36b09858
xor edi, 0x36b0b3ce
sub ecx, 0x36b0d14a
and esi, 0x36b0eb0a
not ebx
sub edi, esi
sub esi, 0x36b13a4a
jmp 0x47673e
mov edx, dword [esp + 0x90]
ror esi, 0x13
and edi, ecx
xor edi, ecx
add ecx, 0x36bc00a6
mov ecx, 0x36bc1a9a
shr ecx, 0x10
or edi, 0x36bc4fb2
add edi, ebx
mov edi, 0x36bc8192
xchg esi, edi
jmp 0x475cb9
push edx
add edi, esi
sub ecx, esi
jmp 0x4773d4
mov dword [esp + 0x78], edx
xchg edi, ecx
sub ebx, 0x36bf9e10
or edi, esi
xchg esi, ebx
ror ecx, 6
neg edi
jmp 0x47765d
mov dword [esp + 0x78], edx
xchg esi, ecx
and ebx, edi
xor ebx, ecx
xor ecx, esi
add ecx, esi
mov ecx, 0x36c18bc0
sub edi, esi
mov edi, esi
jmp 0x477b11
inc dword [esp + 0x48]
or esi, edi
and ebx, 0x36c1fa50
jmp 0x47595b
cmp byte [edx], 0
jmp 0x476e20
mov edx, dword [edx]
mov ebx, ecx
or ebx, 0x36d18b46
add esi, ebx
xor ebx, 0x36d1bd72
sub ebx, ecx
xor ebx, 0x36d1f022
sub ecx, ebx
and ecx, esi
rol ebx, 0x16
or edi, 0x36d25b5e
jmp 0x476cca
add edx, dword [esp + 0xa0]
sub ebx, esi
or esi, ecx
ror ebx, 9
or ebx, esi
xchg edi, esi
mov ebx, ecx
and edi, ecx
dec edi
jmp 0x4775f8
mul edx
add ecx, ebx
and ecx, edi
and edi, ebx
mov ecx, ebx
xor esi, ebx
xor ecx, edi
jmp 0x477b75
rol eax, 8
add ebx, edi
rol ecx, 1
nop
and ecx, esi
jmp 0x4784bc
mov edx, dword [edx]
shr esi, 0x1d
or esi, ecx
jmp 0x476e8d
cmp eax, dword [esp + 0x28]
jmp 0x475a5d
add edx, dword [esp + 0x90]
xchg ecx, esi
add esi, edi
or esi, 0x36dcef5a
xor ecx, esi
or ebx, edi
mov esi, edi
or ebx, 0x36dd5aac
not ecx
jmp 0x476a72
mov eax, 2
rol edi, 0xd
neg edi
xchg ebx, ecx
add edi, ecx
not ebx
add ebx, edi
jmp 0x476525
mov edx, dword [edx]
or ebx, ecx
or ecx, esi
neg ecx
sub ecx, ebx
and ecx, esi
and ecx, edi
neg edi
add esi, ecx
and esi, 0x36e47804
xchg edi, ecx
dec esi
xchg esi, edi
ror edi, 2
and edi, ecx
jmp 0x4780ea
add dword [esp + 0x90], eax
sub esi, ebx
xchg ebx, ecx
and ecx, 0x36e6a70e
xchg esi, ecx
jmp 0x477570
mov edx, dword [edx]
add ecx, esi
add edi, esi
dec esi
xchg esi, edi
mov edi, ecx
mov esi, ecx
not esi
xor edi, ecx
xor esi, ebx
xor ecx, edi
dec ecx
mov ecx, 0x36f9cea0
jmp 0x476560
mov eax, 4
sub ecx, edi
mov edi, ecx
xor ecx, ebx
xor ebx, edi
or ebx, ecx
mov ebx, ecx
add ebx, 0x36ff9688
mov ecx, edi
jmp 0x477f44
movzx edx, word [edx]
add edi, esi
shr ecx, 0x1b
or esi, 0x37062688
xor esi, ecx
jmp 0x477909
add edx, dword [esp + 0xa0]
xor ebx, ecx
xor ecx, 0x37067f92
or ebx, 0x37069a8a
xchg ecx, esi
or ecx, 0x3706d0a6
add edi, esi
and ecx, ebx
add ebx, edi
bswap ecx
bswap ecx
jmp 0x475f92
add dword [esp + 0x90], 4
xor ecx, esi
xor ebx, ecx
and edi, ecx
dec edi
xor esi, ecx
xor esi, ebx
and esi, 0x370f778e
add esi, ebx
sub esi, ebx
sub esi, 0x370fc9d0
bswap esi
or esi, ecx
sub ebx, esi
neg ebx
jmp 0x476ee3
mov dword [esp + 0xa0], edx
xor ebx, esi
mov esi, 0x37124f14
xor ebx, 0x37126b8e
or ebx, edi
and ebx, esi
or esi, edi
jmp 0x47662d
add dword [esp + 0x90], edx
not ecx
neg esi
and edi, ebx
add ecx, ebx
and esi, edi
mov ecx, esi
inc ecx
add ecx, edi
jmp 0x477290
mov edx, dword [edx]
mov esi, edi
xchg edi, ebx
rol ecx, 0x17
neg ecx
or esi, edi
xor ecx, edi
mov ebx, 0x372b68ae
xor ecx, 0x372b87f6
jmp 0x4778ed
inc edx
rol esi, 0x19
and esi, ebx
ror ecx, 0xc
rol edi, 2
mov ecx, 0x37310ed6
mov esi, ecx
xchg esi, ecx
sub ebx, edi
sub esi, ebx
shr ebx, 0x1d
jmp 0x4776e2
mul edx
xchg esi, edi
add edi, esi
dec ebx
add esi, edi
or ebx, esi
and ecx, 0x37323138
jmp 0x4763a8
sub esp, 0xc0
sub edi, 0x3732fec0
rol esi, 0x16
add ebx, esi
xchg ecx, esi
and ebx, 0x3733658e
xor ebx, esi
dec ecx
add edi, ebx
or ebx, edi
ror edi, 6
jmp 0x478562
mov dword [esp + 0x48], 0
add ecx, edi
xor ecx, 0x37359f46
or esi, 0x3735b93c
or edi, ebx
ror edi, 0x1b
neg esi
ror edi, 1
xor edi, 0x37364356
add esi, ecx
mov ecx, 0x3736756c
xchg ebx, edi
xchg edi, ecx
ror esi, 0x19
add ebx, edi
jmp 0x475e34