Function at 0x476d8c
Capabilities:
Encrypt data using chaskey

Disassembly:
xor eax, eax
and ebx, 0x3889c9fe
sub edi, 0x388a06ba
sub ecx, esi
sub ecx, 0x388a7e5d
or ebx, 0x388abb11
neg esi
xor ecx, edi
or edi, ecx
ror esi, 0x12
dec ecx
shl esi, 0xe
or edi, ebx
sub ebx, 0x388cb008
rol ecx, 0x1c
jmp 0x478b57
mov edx, dword [edx]
bswap esi
not esi
jmp 0x475d4a
mov dword [esp + 0x10], 0
neg ecx
and esi, 0x38aba3bd
or ebx, ecx
xchg ebx, edi
xor ecx, 0x38ac477a
mov ecx, esi
xor esi, edi
sub ecx, ebx
sub edi, ecx
jmp 0x476313
inc edx
xor ebx, 0x38aeb334
or edi, ecx
or ecx, 0x38af2290
bswap edi
rol edi, 0x19
xchg ecx, esi
xor esi, edi
inc ecx
jmp 0x476a63
add dword [esp + 0x78], 0x20
mov edi, esi
or ecx, esi
ror ebx, 8
and edi, 0x38b9b275
rol edi, 0x1d
xchg esi, ebx
jmp 0x478a0a
sub dword [esp + 0x78], 8
xchg edi, ecx
rol ebx, 0x17
xchg esi, ecx
dec ebx
and esi, 0x38bb5bf3
add ecx, 0x38bc4d98
neg ecx
xchg ebx, ecx
xor ecx, ebx
and ebx, esi
or ebx, ecx
shl ecx, 0xa
and edi, ecx
or ebx, ecx
shl edi, 5
jmp 0x47741b
jne 0x478b57
inc edi
shl edi, 7
shl ecx, 0xb
or ebx, esi
dec ebx
mov esi, ebx
mov ebx, esi
and esi, edi
jmp 0x47641d
mov edx, dword [edx]
mov esi, edi
mov edi, ecx
xchg esi, ebx
xor ebx, ecx
rol ebx, 0x19
shl ecx, 0xd
dec ebx
inc ebx
jmp 0x476c3c
add edx, 0x3c
mov ebx, edi
sub ecx, ebx
or ebx, 0x38db49e9
add ecx, edi
xor ecx, ebx
bswap ecx
sub esi, 0x38dc494a
inc ebx
and ecx, 0x38dcc5bf
sub esi, 0x38dd021c
and ecx, edi
xchg ecx, ebx
bswap ebx
xor esi, ecx
jmp 0x478016
ret
add edx, dword [esp + 0x10]
and ecx, ebx
mov esi, 0x38f5e602
mov ebx, edi
bswap ebx
sub esi, ebx
add ecx, esi
add edi, ebx
and edi, ecx
sub edi, ecx
ror esi, 0x16
jmp 0x47664e
add dword [esp + 0x78], 4
not esi
sub ebx, edi
or edi, 0x3902cab4
jmp 0x478bce
add dword [esp + 0x78], 0x78
shl esi, 2
mov ecx, 0x3939abb2
mov ebx, esi
or ebx, 0x393a1818
or esi, 0x393a5ffd
sub esi, 0x393a971a
dec ebx
jmp 0x476539
mov dword [esp + 0x78], 0
xor edi, ecx
not ebx
xchg ebx, ecx
bswap esi
and esi, 0x3955c42b
or esi, 0x3955fc62
ror ebx, 0xe
inc ecx
inc esi
xchg ebx, edi
xchg ebx, ecx
and ebx, 0x39575ca7
jmp 0x47671b
push edx
or ecx, ebx
shr ecx, 0x1d
or esi, ebx
xchg ecx, ebx
or esi, ecx
dec ecx
sub ebx, esi
and esi, 0x395f831e
rol ebx, 0x1d
rol ecx, 0xa
add edi, ebx
xchg ecx, esi
and edi, 0x3960a818
shr edi, 0x11
jmp 0x47573a
pop edx
rol edi, 9
add ebx, edi
shr esi, 0xc
mov esi, 0x39663a75
jmp 0x476a8d
mov edx, dword [esp + 0x10]
or edi, ecx
xor ecx, ebx
sub edi, ecx
shr esi, 0x13
xor ebx, ecx
mov esi, ecx
jmp 0x478ff0
mov edx, dword [esp + 0xec]
xchg ecx, edi
add ebx, ecx
add edi, esi
add esi, ecx
inc esi
or ecx, esi
and esi, 0x3982942d
sub ebx, esi
sub ecx, ebx
jmp 0x475aed
mov dword [esp + 0xec], edx
sub esi, ebx
or esi, 0x398cc1e8
dec esi
not ecx
add ebx, edi
jmp 0x47769e
mov dword [esp + 0x8c], edx
and ebx, ecx
not edi
or ecx, esi
and esi, ebx
and ebx, esi
sub edi, ecx
ror edi, 0x18
not ebx
jmp 0x478d02
rol eax, 8
xor edi, ecx
sub ebx, esi
mov edi, 0x39ac5141
and esi, edi
inc ebx
bswap esi
xor ebx, ecx
add edi, ebx
jmp 0x475951
mov edx, dword [edx]
xor edi, 0x39b14355
xor esi, 0x39b17b36
sub edi, esi
sub edi, ebx
sub ecx, ebx
and esi, edi
xor ebx, esi
or edi, esi
xor edi, ecx
xor ebx, 0x39b340db
and ebx, 0x39b378d7
add ecx, 0x39b3b0aa
mov esi, edi
shl esi, 0xc
add ecx, esi
jmp 0x478247
cmp byte [edx], 0
jmp 0x475ab3
cmp eax, dword [esp + 0x8c]
jmp 0x477949
mov edx, dword [edx]
sub esi, ebx
xor esi, ebx
xor ebx, esi
mov edi, ecx
sub esi, 0x39d66ff7
dec ebx
sub ebx, 0x39d6df33
and ebx, 0x39d7171b
or esi, ecx
bswap edi
jmp 0x477522
add edx, dword [esp + 0x28]
sub ecx, esi
ror ebx, 0x13
or edi, ebx
or ecx, edi
and esi, 0x39d8ae92
bswap ecx
inc ecx
add esi, edi
jmp 0x477e17
add edx, dword [esp + 0x10]
sub esi, ecx
add edi, ecx
shl ebx, 0x15
and edi, esi
sub ebx, esi
shl esi, 0x19
and esi, edi
not ebx
mov ecx, ebx
jmp 0x476c90
add dword [esp + 0xec], 4
xchg ecx, ebx
sub edi, ecx
mov ecx, edi
add ebx, 0x39dfedb5
xor esi, edi
and esi, 0x39e05ca9
add ebx, 0x39e094d4
rol ecx, 3
sub ecx, edi
rol edi, 5
or esi, ecx
mov ebx, 0x39e1b8cc
sub esi, ecx
jmp 0x4765b9
movzx edx, word [edx]
or ebx, edi
xor ebx, ecx
and esi, ecx
sub edi, ebx
jmp 0x477702
add dword [esp + 0x78], eax
mov edi, ebx
xor ebx, ecx
sub esi, ecx
sub ecx, edi
dec ebx
sub edi, ecx
rol ebx, 0x13
sub ebx, 0x39ec8707
shl ebx, 0x1a
or ebx, esi
xchg ecx, esi
jmp 0x477891
mov edx, dword [esp + 0xec]
and esi, 0x39ed79fc
mov ecx, edi
xor edi, esi
ror ecx, 0xf
and esi, edi
xor esi, ecx
and edi, esi
sub ecx, 0x39ef0746
jmp 0x476abf
add edx, dword [esp + 0x10]
and esi, edi
xchg ebx, edi
or edi, ebx
sub edi, ecx
rol esi, 0x1a
or ebx, 0x39f06512
xor edi, esi
shl ecx, 0x1a
dec esi
and ebx, edi
sub ecx, esi
mov edi, esi
shr ecx, 0x1c
jmp 0x4763a3
mov dword [esp + 0xec], edx
sub ebx, ecx
or ebx, 0x39f4d3d2
sub edi, ebx
and ebx, esi
or edi, ecx
add ebx, esi
or edi, ecx
sub esi, ebx
mov esi, ecx
and ecx, esi
add ecx, ebx
shl ecx, 4
xor esi, ecx
jmp 0x478f3b
sub esp, 0x100
and ecx, esi
xchg ecx, edi
or esi, ecx
add ecx, esi
and edi, esi
sub ecx, edi
bswap edi
xor esi, 0x3a06baa8
jmp 0x4784ec
mov edx, dword [esp + 0x28]
sub ebx, edi
or ebx, 0x3a15983c
and edi, 0x3a15d05f
mov ebx, 0x3a160757
sub edi, 0x3a163f1f
xchg esi, ebx
sub ebx, ecx
sub edi, 0x3a16f263
xchg ebx, edi
or ecx, edi
jmp 0x478d21
mov edx, dword fs:[edx]
rol esi, 0x1b
mov ecx, 0x3a278a75
shr esi, 0x16
xor ecx, ebx
neg ecx
jmp 0x47727f
add edx, dword [esp + 0x10]
neg ebx
add edi, ebx
and edi, esi
sub edi, ecx
add ecx, ebx
shl esi, 0x11
or ecx, ebx
jmp 0x4790a5
add edx, 0xc
sub esi, 0x3a59dd5f
xor esi, edi
xchg edi, ecx
nop
xor ecx, 0x3a5ae0b4
and edi, ecx
jmp 0x476a99
mov edx, dword [esp + 0x78]
xchg esi, ebx
xor edi, 0x3a786efa
sub edi, ebx
mov ecx, esi
inc ebx
add edi, 0x3a794b8c
dec ecx
add ecx, edi
xor esi, 0x3a79fe24
mov esi, ecx
xor edi, ebx
not ecx
jmp 0x476866
add edx, 0xc
xor edi, ebx
xchg edi, esi
xchg ebx, esi
mov ebx, 0x3a8925dd
sub ecx, ebx
dec ecx
sub esi, edi
not edi
inc esi
xchg ebx, edi
shl esi, 0x12
xor edi, ecx
mov ecx, ebx
jmp 0x477c27
mov dword [esp + 0x78], edx
xchg ebx, esi
xchg esi, edi
jmp 0x476c17
inc dword [esp + 0x28]
sub edi, 0x3aa05f9e
xchg ebx, ecx
not edi
add ecx, 0x3aa107b2
xor edi, esi
xchg ecx, edi
xor esi, 0x3aa1bc8b
xchg edi, ebx
sub ecx, edi
rol ecx, 0x12
or edi, ecx
or esi, ebx
xor esi, ecx
rol edi, 0xc
jmp 0x476b3c
mul edx
and ecx, 0x3aa5ee3d
xchg ebx, esi
add ebx, ecx
ror esi, 0xf
sub ebx, edi
xchg ecx, edi
mov ebx, esi
jmp 0x476bf0
mov edx, dword [esp + 0x78]
shr ebx, 0x15
shr ebx, 0x1d
mov ebx, esi
sub edi, ecx
bswap ecx
add ebx, 0x3ac029bf
or ebx, 0x3ac061b9
inc esi
xchg ecx, esi
jmp 0x477e95
jne 0x47769e
shr ebx, 0xa
and edi, esi
not edi
xor edi, esi
or ebx, 0x3acaabb6
bswap esi
xor ebx, edi
bswap ebx
mov edi, ebx
jmp 0x475e06
mov dword [esp + 0x10], edx
sub edi, 0x3ae744ea
xchg esi, ecx
neg ebx
sub ecx, edi
sub ecx, edi
nop
jmp 0x478d8f
mov edx, dword [edx]
xor edi, esi
xor ecx, esi
sub esi, ecx
and esi, 0x3afd5719
sub ebx, esi
xor ebx, 0x3afdcf78
sub esi, ecx
sub ebx, 0x3afe48fb
xchg ecx, esi
not ecx
jmp 0x478035
mov eax, 4
add edi, esi
and ecx, ebx
xchg ecx, edi
xchg ebx, ecx
add esi, 0x3e01bce8
add ebx, esi
sub ecx, esi
or esi, ecx
bswap ebx
mov edi, ebx
sub ecx, esi
sub ebx, esi
mov ecx, ebx
jmp 0x476bbc
mov edx, dword [edx]
or ecx, esi
not ecx
shl ebx, 0xc
dec ebx
and esi, ebx
sub ecx, 0x3e0b7d02
add ebx, ecx
add edi, 0x3e0bf4d7
inc ecx
jmp 0x477106
mov edx, dword [edx]
ror ecx, 5
xor edi, ecx
or ecx, edi
rol esi, 0xc
sub ecx, edi
xor ecx, esi
shl ecx, 0x1d
mov ecx, 0x3e282e60
add edi, esi
jmp 0x4785a7
mov edx, dword [edx]
inc esi
inc ebx
mov ecx, 0x3e294479
mov esi, 0x3e298156
add edi, ebx
or ebx, ecx
mov ebx, edi
xchg esi, ebx
rol esi, 0x18
jmp 0x478169
mov edx, dword [edx]
not esi
ror ebx, 0x13
xchg ebx, edi
add esi, ecx
xor esi, 0x3e4012f4
inc ebx
and esi, ebx
dec ebx
shr ecx, 0x17
neg ebx
add ecx, edi
xchg ebx, esi
xor ecx, ebx
jmp 0x47818e
add edx, 0x18
sub esi, ecx
xchg edi, esi
shl esi, 5
add ecx, 0x3e4319e5
and ebx, ecx
bswap edi
sub ecx, esi
jmp 0x4782f9
add edx, dword [esp + 0x10]
xor ebx, ecx
xor edi, 0x3e623fba
ror edi, 0x1e
shl edi, 9
shr ebx, 0x13
sub ebx, esi
or ecx, ebx
xor esi, ebx
xchg esi, ecx
sub esi, 0x3e649aaf
and esi, ebx
jmp 0x4775a3
mov edx, dword [edx]
shr ebx, 0xd
add esi, ebx
shl esi, 1
mov esi, ebx
and edi, esi
sub ecx, esi
add ebx, 0x3e71c550
add ebx, esi
mov ebx, ecx
shl edi, 0xb
ror esi, 0x1d
mov ecx, edi
sub ebx, edi
and edi, esi
xor ebx, 0x3e73b394
jmp 0x477b0b
mov edx, dword [edx]
and esi, edi
mov esi, ecx
neg ecx
or ebx, esi
shr esi, 0xd
and ecx, edi
add esi, 0x3e843150
or edi, esi
and esi, ecx
jmp 0x4788c7
add dword [esp + 0x78], edx
add esi, ebx
and esi, edi
sub edi, ecx
mov edi, ecx
mov esi, edi
xor ebx, ecx
jmp 0x475a0a
mov dword [esp + 0x28], 0
or edi, ebx
or edi, esi
not esi
mov ebx, 0x3ea08bf2
and esi, ebx
jmp 0x4786a0
mov dword [esp + 0x78], edx
add ecx, esi
and esi, edi
xchg ebx, ecx
xor ecx, ebx
and ecx, ebx
or ebx, esi
and esi, 0x3eb1de27
sub ebx, ecx
sub ecx, ebx
xor esi, edi
jmp 0x47615d
mov dword [esp + 0xec], 0
sub esi, ecx
bswap esi
or ebx, edi
sub esi, ecx
xchg ebx, edi
mov ecx, 0x3ec872f4
bswap ebx
xor esi, 0x3ec8f061
xchg esi, edi
xchg ecx, esi
sub edi, ecx
jmp 0x47590f
mov dword [esp + 0x78], edx
or ecx, esi
add ebx, edi
xchg esi, edi
shr ecx, 3
neg ebx
add ecx, ebx
mov ecx, ebx
nop
jmp 0x478975
mov edx, dword [esp + 0x10]
mov ecx, 0x3efdc61f
ror ecx, 0x14
add esi, ebx
sub esi, ebx
sub ecx, ebx
inc edi
sub ecx, edi
or ebx, 0x3eff5796
jmp 0x4784b7
mov edx, dword [esp + 0x78]
or edi, ebx
neg edi
and edi, esi
add edi, ecx
jmp 0x4757db
xor al, byte [edx]
not ebx
dec esi
neg esi
and esi, ecx
or edi, 0x3f1e45aa
bswap ecx
mov edi, ecx
or esi, edi
jmp 0x476824
mov edx, dword [esp + 0x78]
mov ecx, edi
or edi, 0x3f251933
dec edi
mov ebx, edi
sub ecx, edi
jmp 0x478cb3
mov dword [esp + 0x28], eax
sub ebx, 0x3f261647
xor ebx, ecx
and edi, ebx
add edi, 0x3f26bae7
not esi
or ebx, ecx
dec ebx
xchg edi, esi
mov edi, 0x3f27de86
jmp 0x475a29
mov edx, dword [edx]
shl esi, 6
xchg esi, ecx
xor edi, ecx
neg esi
add esi, edi
nop
and ecx, edi
sub ebx, edi
mov ecx, 0x3f34acd8
mov esi, 0x3f34e872
sub edi, 0x3f35251c
jmp 0x476adf
mov edx, 0x30
shl edi, 0xf
dec esi
ror ecx, 0x18
xchg ebx, esi
dec esi
or ebx, esi
add ebx, esi
add esi, ebx
neg ecx
rol ebx, 0x14
jmp 0x476fae
mul edx
sub ebx, esi
dec esi
neg esi
and ebx, ecx
mov ecx, ebx
add edi, esi
or ecx, esi
add ecx, 0x3f3bf48d
add edi, ecx
sub edi, 0x3f3c6a7e
add ecx, ebx
jmp 0x478be7
mov edx, dword [esp + 0x10]
and ecx, edi
xor ebx, 0x3f41c6f5
neg ebx
and ebx, esi
or esi, edi
sub esi, edi
sub ecx, edi
mov ecx, ebx
sub esi, ebx
jmp 0x475bde
mov eax, 2
and ebx, edi
add edi, 0x3f60ed52
neg ecx
xchg ebx, esi
or ecx, edi
jmp 0x476e85
add edx, dword [esp + 0x78]
neg edi
mov edi, 0x3f6d5767
or ecx, esi
xor esi, 0x3f6dd4b8
jmp 0x4783f5
add esp, 0x100
and ebx, edi
xchg ecx, edi
dec esi
sub ebx, esi
jmp 0x475c81