Function at 0x478100
Capabilities:
Encrypt data using chaskey

Disassembly:
mov ecx, 0x30
add edx, ebx
shl esi, 9
bswap ebx
xchg edi, esi
add esi, ebx
add esi, ebx
or edx, esi
add edi, edx
mov esi, edx
jmp 0x475944
mov ecx, dword [ecx]
inc ebx
bswap esi
or esi, ebx
sub edi, esi
xchg edi, esi
xchg edx, edi
sub esi, 0x9cc56a12
ror edx, 0x14
shl esi, 6
mov edi, ebx
xor edi, 0x9cc65980
xchg edi, esi
sub edi, esi
shr esi, 0xa
jmp 0x475bde
add ecx, dword [esp + 0x6c]
shl edi, 5
neg edx
mov ebx, edx
mov ebx, 0x9cc8ed66
and edi, edx
bswap esi
mov edi, edx
jmp 0x475bc8
mov ecx, dword [ecx]
xchg ebx, esi
xchg edx, esi
and esi, edi
sub edx, edi
ror edx, 0x11
dec ebx
xor edi, edx
xor esi, edi
xor edi, edx
mov ebx, esi
xor edx, esi
mov esi, ebx
ror edx, 0x10
jmp 0x476781
ret
mov dword [esp + 0x80], ecx
bswap edx
xchg edx, edi
mov edx, ebx
xor edi, edx
shl esi, 0x17
or edx, 0x9ce38281
mov esi, ebx
shr ebx, 0x18
sub edi, ebx
mov ebx, edi
and edi, ebx
jmp 0x4767d4
pop ecx
and ebx, 0x9cea88ec
and edx, 0x9ceac6aa
not edi
jmp 0x477a2a
mov ecx, dword [esp + 0x20]
xchg edi, ebx
shl ebx, 2
or ebx, esi
and ebx, edi
xor edi, esi
rol esi, 4
xchg ebx, esi
sub edx, edi
jmp 0x47760e
mov ecx, dword [ecx]
add edi, 0x9cfd4dca
or edx, 0x9cfd8bf5
and ebx, edi
mov esi, ebx
or ebx, 0x9cfe3fde
and edi, edx
and esi, ebx
and ebx, edx
and edi, ebx
add esi, ebx
jmp 0x477f46
jne 0x4767d4
mov edx, esi
mov esi, edi
dec edi
neg ebx
xor edx, esi
xchg esi, edx
sub esi, ebx
jmp 0x4765f2
mov ecx, dword fs:[ecx]
and esi, 0x9d18c5fa
mov edx, esi
add edx, ebx
add esi, edx
mov edx, ebx
shl ebx, 0x14
dec edx
add edx, esi
shl edx, 0x1c
jmp 0x475afc
mov dword [esp + 0x6c], eax
not esi
mov edi, edx
jmp 0x477e35
mov ecx, dword [esp + 0x38]
dec ebx
mov ebx, 0x9d26aa31
sub edi, ebx
mov ebx, esi
inc ebx
xor esi, edi
xor ebx, edi
add edx, edi
neg ebx
inc edx
xchg edx, esi
shr esi, 0x14
jmp 0x476086
mov ecx, dword [esp + 0x80]
or ebx, esi
sub edi, ebx
shl esi, 0xe
mov edi, edx
mov edx, esi
mov ebx, esi
sub edx, esi
mov ebx, edx
add esi, edi
or ebx, edx
or edi, 0x9d35e381
mov ebx, edi
jmp 0x476ab3
add ecx, 0xc
nop
rol edx, 0x1e
add edi, edx
add esi, edi
xchg edx, esi
shl ebx, 0x1c
xor esi, edi
xchg edx, ebx
xor ebx, esi
and esi, 0x9d38939e
shl esi, 0x10
and ebx, 0x9d390c1d
jmp 0x475507
mov eax, 4
sub edx, esi
sub ebx, esi
or esi, 0x9d44aad3
xor edi, esi
jmp 0x47799b
add ecx, 0xc
xor edi, esi
mov ebx, edx
and ebx, 0x9d45b806
or edx, edi
and esi, edi
and ebx, edi
xchg edi, edx
xor ebx, edi
not edi
and edi, ebx
or esi, edi
and ebx, edx
jmp 0x476022
add dword [esp + 0x38], ecx
and edx, ebx
inc esi
xor edi, edx
sub edi, esi
rol esi, 1
mov ebx, edi
add ebx, esi
add ebx, 0x9d53cb4a
or edi, 0x9d5408ac
xchg edx, ebx
sub edx, 0x9d547f2e
and edi, ebx
or esi, edi
add ebx, edx
jmp 0x4775f3
mov ecx, dword [ecx]
xchg esi, edi
add edx, 0x9d60e93d
rol edi, 0x14
and edi, ebx
sub edi, 0x9d619159
and esi, edi
not edi
add edx, 0x9d624572
xchg esi, ebx
xchg esi, edx
add esi, 0x9d62eba1
xor ebx, 0x9d63222a
jmp 0x4767eb
mov ecx, dword [ecx]
not edi
mov ebx, 0x9d778c07
xchg esi, edx
inc edx
or esi, ebx
sub esi, ebx
jmp 0x4780c6
mov ecx, dword [esp + 0x20]
add esi, edi
shr ebx, 8
sub edi, esi
or ebx, edx
and edx, ebx
jmp 0x4771d1
mov ecx, dword [ecx]
and ebx, edx
dec esi
xor ebx, edx
xor esi, 0x9d8ea3c2
or edx, ebx
or edx, 0x9d8f1f71
xchg edx, ebx
shl esi, 0xd
mov ebx, edi
jmp 0x476678
mov dword [esp + 0x38], ecx
nop
or edx, esi
ror ebx, 0x1f
xchg edx, esi
add esi, edi
bswap esi
sub esi, edi
shr edx, 0x10
xor edi, 0x9d9386bc
jmp 0x47707a
mov ecx, dword [ecx]
rol esi, 0x10
mov edx, ebx
and ebx, edi
mov ebx, esi
add edx, 0x9d94a885
or esi, ebx
rol ebx, 3
mov esi, edx
add edi, 0x9d959120
sub edi, edx
dec esi
dec ebx
jmp 0x4774e2
add dword [esp + 0x80], 4
and esi, 0x9d9ad2a7
not esi
xor edx, 0x9d9b50ea
mov ebx, esi
jmp 0x475ad3
mov ecx, dword [esp + 0x38]
mov esi, ebx
xchg edi, ebx
sub edx, edi
or esi, edi
xor edx, ebx
and esi, edi
dec esi
or edi, edx
sub edx, ebx
and esi, ebx
ror ebx, 0xa
or edx, 0x9db1f38f
neg edi
sub esi, ebx
xor edi, edx
jmp 0x475ebc
add dword [esp + 0x38], 4
and edx, esi
shr esi, 0x1a
shr esi, 0x1e
sub esi, 0x9defe0c3
bswap esi
add edx, edi
or esi, 0x9df09320
sub edx, edi
shr edi, 0x18
and edx, ebx
ror ebx, 0x13
sub ebx, esi
jmp 0x475a0e
mov ecx, dword [ecx]
shl ebx, 9
add ebx, edx
and edi, 0x9df75e82
sub ebx, edx
sub ebx, edx
and edx, 0x9df80190
inc edx
mov esi, edi
and edx, ebx
xor edi, esi
jmp 0x475d61
mul ecx
xor edx, 0x9dfcba05
sub esi, edi
mov edi, edx
mov edi, 0x9dfd6bea
and edi, edx
jmp 0x476f7e
add ecx, dword [esp + 0x20]
dec edx
and edx, ebx
inc ebx
and esi, 0x9e08948c
jmp 0x477f1c
inc dword [esp + 0x6c]
bswap edx
rol edi, 0x1f
or ebx, edx
bswap ebx
add ebx, edi
jmp 0x4760f5
add ecx, 0x18
and ebx, edi
bswap edi
add edi, 0x9e0e9f8c
xor ebx, edi
mov esi, edx
jmp 0x477bfc
mov dword [esp + 0x80], 0
sub edi, ebx
sub esi, ebx
xor ebx, 0x9e15216c
add ebx, esi
and edi, edx
bswap ebx
jmp 0x476d0a
mov dword [esp + 0x20], ecx
xchg esi, edi
neg edi
mov edx, esi
add edx, edi
and edi, 0x9e1b6441
xchg edx, ebx
xor edi, ebx
jmp 0x475723
mov dword [esp + 0x70], ecx
add esi, edx
mov ebx, edx
add edi, ebx
neg edx
bswap edi
add ebx, 0x9e1f929a
bswap ebx
sub ebx, 0x9e2002ed
jmp 0x4754aa
mov ecx, dword [ecx]
sub esi, edx
shr edi, 1
add edx, esi
sub ebx, esi
ror edi, 1
ror edx, 8
dec edi
sub edx, 0x9e3df027
and edi, edx
not ebx
shl ebx, 3
and edx, 0x9e41dcde
or ebx, edi
or ebx, 0x9e424b63
add edx, ebx
jmp 0x477761
mov ecx, dword [ecx]
xor esi, edx
sub esi, ebx
and edx, ebx
sub edx, ebx
inc ebx
shl ebx, 0x13
not ebx
jmp 0x478015
mov dword [esp + 0x20], 0
and ebx, 0x9e680fb9
mov esi, 0x9e6855db
jmp 0x4777c6
cmp byte [ecx], 0
jmp 0x478335
mov dword [esp + 0x80], ecx
and ebx, esi
mov edi, edx
add ebx, edi
or esi, edi
inc ebx
or edi, edx
sub edx, ebx
mov ebx, esi
sub ebx, esi
jmp 0x4771f0
add dword [esp + 0x38], eax
and edi, edx
shr ebx, 0x1b
mov edi, esi
xor ebx, edi
xchg esi, edi
neg edi
and edi, esi
add edx, 0x9e9477cb
add esi, ebx
add esi, edi
mov edx, esi
or edx, edi
bswap esi
jmp 0x47796f
xor eax, eax
and esi, edx
shr ebx, 0x11
sub esi, edx
add ebx, edi
xchg ebx, edi
jmp 0x477d11
add dword [esp + 0x38], 0x78
neg esi
mov ebx, edi
or ebx, esi
shr ebx, 0x13
xor edx, edi
shl edi, 0x11
sub edx, 0x9e9bec80
add ebx, edi
shl ebx, 0x1d
mov esi, edx
mov esi, edx
jmp 0x475f08
mov ecx, dword [esp + 0x20]
and ebx, esi
rol esi, 0x17
or edi, esi
xchg edx, ebx
mov esi, ebx
add edi, edx
add edi, ebx
jmp 0x475c95
push ecx
sub edi, edx
add edi, ebx
xchg esi, edi
add esi, ebx
sub ebx, edx
jmp 0x476fe3
mov ecx, dword [esp + 0x80]
and edi, ebx
inc edx
mov edi, edx
xor edi, ebx
inc esi
xor esi, ebx
dec edi
add edi, esi
sub ebx, 0x9eba9771
jmp 0x475540
add ecx, dword [esp + 0x38]
add edi, ebx
or esi, edx
add esi, edi
nop
and edx, edi
add edx, esi
xor ebx, 0x9ec114c0
mov edi, esi
jmp 0x47758e
mov eax, 2
mov ebx, edx
xchg ebx, edx
xor ebx, edx
and ebx, edx
sub edx, 0x9ec2a47e
jmp 0x47826c
add ecx, dword [esp + 0x20]
add edi, esi
rol edx, 6
mov edx, ebx
xchg ebx, edi
and esi, 0x9efc4d34
neg esi
add edi, ebx
xchg ebx, esi
and edi, ebx
xchg edi, ebx
ror edi, 0x19
add ebx, edx
jmp 0x476f11
mov ecx, dword [ecx]
dec edx
or edx, 0x9f0a3e88
mov ebx, edx
and edi, esi
jmp 0x476063
add dword [esp + 0x38], 0x20
sub esi, ebx
neg edx
and esi, ebx
xor esi, edx
sub ebx, esi
and ebx, edi
neg edi
jmp 0x47624b
add ecx, 0x3c
add edx, esi
add esi, edx
or esi, ebx
and ebx, esi
or edx, ebx
mov edi, edx
sub edx, esi
dec edx
dec edi
ror edx, 6
or ebx, edx
and ebx, 0x9f14efde
mov edi, esi
or esi, edi
add ebx, edi
jmp 0x476c9b
mov ecx, dword [esp + 0x38]
rol ebx, 0xf
mov edx, ebx
or esi, ebx
not edi
xchg edi, edx
sub ebx, edi
jmp 0x4757da
add ecx, dword [esp + 0x20]
neg esi
xchg esi, edx
sub edx, ebx
neg edx
xchg edx, edi
sub edx, edi
jmp 0x47715d
mov dword [esp + 0x38], 0
sub esi, ebx
add ebx, esi
xor edi, ebx
xor edi, 0x9f342cd4
mov edx, ebx
xor esi, ebx
add edx, 0x9f34ed94
ror edx, 0x16
xor esi, 0x9f3567b9
and edx, esi
dec edi
sub edx, esi
jmp 0x4768fd
rol eax, 8
mov edx, 0x9f366ab1
shl ebx, 2
and ebx, 0x9f36e436
sub esi, ebx
mov edx, 0x9f375b52
mov ebx, 0x9f3797e6
neg esi
shl edi, 7
add edx, 0x9f3860ec
or edx, edi
not edx
add edx, ebx
jmp 0x477a4e
mov ecx, dword [esp + 0x38]
xor ebx, esi
add ebx, esi
or esi, edx
sub esi, ebx
and edi, esi
sub edi, ebx
xor esi, ebx
not ebx
jmp 0x47559e
movzx ecx, word [ecx]
or edi, 0x9f5549d1
sub edi, 0x9f5587e6
sub esi, 0x9f55c5cb
and edi, edx
dec edx
sub ebx, 0x9f567d36
add edi, ebx
add ebx, edx
not ebx
sub esi, edx
xor edi, edx
mov esi, edx
shl ebx, 0x12
add edi, edx
and edx, 0x9f58ae80
or edi, edx
jmp 0x4766cf
cmp eax, dword [esp + 0x70]
jmp 0x4758bd
inc ecx
and edi, esi
or esi, ebx
and edi, ebx
shl ebx, 0xb
sub ebx, 0x9f62db9d
shr esi, 0xc
rol esi, 0x10
jmp 0x476d90
mov ecx, dword [ecx]
not edi
and edi, ebx
or esi, 0x9f81dac8
or edi, edx
shl edx, 0x12
add edi, esi
add edx, esi
xchg ebx, edx
xor esi, ebx
jmp 0x4768b3
xor al, byte [ecx]
xchg edx, edi
xchg esi, edx
shl edx, 0x1b
bswap edx
mov edi, edx
add ebx, 0x9f985433
mov esi, ebx
bswap edi
add edx, ebx
jmp 0x4777fa
mul ecx
or edi, edx
and edi, 0x9fa82cee
and ebx, edx
mov ebx, 0x9fa8a650
xchg ebx, edi
add edi, ebx
add ebx, 0x9fa95e7b
sub edi, ebx
add edi, ebx
xor ebx, edx
jmp 0x475988
sub dword [esp + 0x38], 8
shl ebx, 7
add ebx, esi
sub ebx, edx
shl edi, 0x15
sub edi, ebx
sub edx, esi
dec esi
xor ebx, esi
xor edi, edx
mov edi, edx
add esi, 0x9fae8ae2
add edi, 0x9faec839
neg edi
sub edx, ebx
or edx, esi
and ebx, esi
jmp 0x47770b
add esp, 0x8c
or esi, edx
inc ebx
shl edi, 0x1f
xor esi, 0x9fbd5650
not edx
and ebx, edi
sub edi, edx
not edi
and edi, edx
add edi, edx
sub edi, esi
mov esi, 0x9fbf443a
jmp 0x475646
add ecx, dword [esp + 0x20]
mov edx, esi
xchg edi, edx
and esi, edx
mov esi, ebx
and esi, ebx
add edx, ebx
or esi, ebx
sub edi, 0x9fc13f14
mov esi, edx
mov edi, ebx
bswap edi
jmp 0x478299
mov dword [esp + 0x38], ecx
neg edx
rol ebx, 0xf
add esi, edx
sub ebx, 0x9fd13422
add esi, 0x9fd1748e
add edi, 0x9fd1c3b4
or ebx, edx
mov ebx, 0x9fd23f8c
sub edx, edi
and ebx, edx
xchg edx, esi
jmp 0x476ff5
add ecx, dword [esp + 0x20]
xor esi, edi
add edi, edx
and esi, edi
add edi, ebx
shl esi, 0x19
shl edx, 0xc
sub edi, ebx
xor edi, edx
add esi, ebx
xchg edi, edx
xchg edx, edi
jmp 0x475671
sub esp, 0x8c
add edx, 0x9fe48129
inc esi
xor edi, esi
add esi, 0x9fe537bb
mov ebx, edx
dec edx
bswap edi
inc esi
sub edi, esi
or ebx, edx
dec edi
dec ebx
or edi, esi
jmp 0x4782c1
mov ecx, dword [esp + 0x6c]
or ebx, 0x9ffc9188
sub edi, ebx
sub esi, edi
mov edx, 0x9ffd44ab
and ebx, 0x9ffd8002
add esi, edx
sub ebx, 0x9ffdf8a7
add edx, ebx
neg esi
jmp 0x477df6
mov dword [esp + 0x38], ecx
mov ebx, edi
neg ebx
mov esi, edi
xchg esi, edi
and esi, 0x9fffbc4e
bswap edx
xor edx, esi
add edx, edi
xor ebx, edx
sub edx, ebx
mov esi, edx
and esi, ebx
jmp 0x47716d
mov dword [esp + 0x6c], 0
add edi, edx
dec edi
xor esi, edi
nop
and edi, esi
xchg ebx, edx
jmp 0x476858
jne 0x477d11
and edx, ebx
mov edx, edi
sub esi, ebx
xor ebx, edx
dec ebx
mov ebx, 0xa00ae190
mov ebx, edi
bswap edi
xor edi, edx
jmp 0x4756e0