Function at 0x477a89
Capabilities:
Encrypt data using chaskey
Hash data using murmur3

Disassembly:
mov dword [esp + 0x48], 0
sub ecx, 0x3600d4bb
ror ecx, 0x10
xchg ebx, ecx
sub ebx, edi
and edx, ebx
shl edx, 4
mov ecx, 0x360254fc
and edx, 0x360359eb
ror ebx, 0x15
add edx, edi
jmp 0x475696
mov esi, dword [esi]
bswap edi
bswap ecx
or edi, ebx
add edx, edi
ror edi, 0x1e
mov edx, edi
ror edi, 4
xchg edx, ecx
add edx, edi
xor edx, ecx
inc ecx
inc edi
jmp 0x4776fd
mov esi, dword [esp + 0x40]
or edi, 0x362d047a
mov ebx, edi
sub edx, edi
bswap ecx
xchg edx, edi
dec edi
xchg edi, ecx
xor edi, ecx
xchg ecx, ebx
xchg edi, edx
inc ebx
jmp 0x475ac2
mov dword [esp + 0x40], 0
xor edx, edi
mov edi, 0x3633a3b8
neg edx
or edx, edi
ror ecx, 0x1a
add ecx, 0x36349e13
xchg ecx, ebx
or edx, ecx
or edi, edx
and edx, edi
and edx, ebx
bswap edi
not ebx
xchg ebx, edi
not ecx
jmp 0x47641c
movzx esi, word [esi]
add edx, 0x36456719
or ecx, edi
add ebx, ecx
mov ebx, edi
add edi, edx
shr ebx, 0x14
rol edx, 0x17
and ebx, edx
add ecx, edx
shr edx, 0x11
sub ecx, 0x3647d4d9
and ecx, 0x364812c6
jmp 0x4770ed
mov eax, 4
not edi
xor edi, ebx
mov ebx, ecx
xchg ecx, ebx
and ebx, 0x3652e321
jmp 0x4755a4
mov dword [esp + 0x90], 0
and edi, edx
or edx, ecx
inc ebx
or edx, edi
xor edx, ebx
ror edx, 0xc
shl edx, 0x19
and ecx, 0x365738c6
shr edx, 1
jmp 0x4754b7
add dword [esp + 0x40], 0x20
mov edx, ebx
or edi, edx
xor edx, ebx
add edx, ecx
ror ebx, 0x15
sub ecx, 0x365c37a0
and ebx, 0x365c747f
xor ebx, edx
jmp 0x476375
add esi, dword [esp + 0x90]
sub edi, 0x365e3712
xchg edi, edx
xchg ecx, edi
xchg edi, ecx
jmp 0x476e08
mov esi, dword [esi]
or ebx, ecx
add ecx, 0x365f9bff
add ecx, edx
mov edi, edx
or ecx, edx
mov ebx, edi
or edx, ecx
sub edx, edi
jmp 0x47786e
rol eax, 8
or ebx, edx
inc edx
neg ecx
and edi, ebx
bswap ecx
nop
xor ebx, edx
not edi
and edi, edx
jmp 0x4772ab
sub dword [esp + 0x40], 8
or ecx, edi
xchg ebx, ecx
inc edx
or ebx, 0x366465e5
mov edx, edi
mov edx, edi
and edi, edx
xor edi, edx
jmp 0x477492
mov dword [esp + 0x90], esi
mov edx, ecx
sub ebx, edi
add edi, 0x3671f8f6
rol ecx, 0x10
bswap edi
jmp 0x476155
mov esi, dword [esp + 0x90]
and ebx, 0x3698d8ca
or ecx, edx
and ecx, edi
mov edi, edx
sub ecx, edi
xor edi, 0x369a068c
or edx, ecx
inc ecx
sub ebx, 0x369acd53
xor edx, 0x369b0b56
sub ecx, edi
ror ebx, 0x10
inc ecx
sub edi, ecx
xor ecx, edx
jmp 0x47621b
add esi, dword [esp + 0x6c]
rol ebx, 1
xor edx, edi
neg edx
xor edx, ebx
not edx
sub ebx, edx
add ecx, edi
and edi, edx
add edx, edi
bswap edi
or edx, ecx
ror edi, 0xd
xchg ecx, edx
sub edi, edx
shl ecx, 7
jmp 0x475657
cmp eax, dword [esp + 0x30]
jmp 0x4773ac
mov esi, dword [esi]
dec edx
and edi, ecx
xchg ebx, edx
rol edi, 0xf
shl edi, 0xa
add ebx, ecx
neg ebx
not ebx
xor ebx, 0x36ad8049
sub edi, ecx
xchg edx, ebx
jmp 0x477e14
mov esi, dword [esi]
sub edx, edi
add edi, ecx
rol ecx, 0x10
xor ecx, 0x36d76921
bswap edi
and ecx, edi
sub ecx, edx
not ebx
shl ebx, 6
xor ecx, edx
xchg ecx, edi
or edi, 0x36d96f02
and ebx, 0x36d9afdd
inc edx
jmp 0x475372
mov esi, dword [esi]
and ecx, 0x36e8eb7f
xor ecx, ebx
xor ecx, edx
shr ebx, 0xf
and edi, ebx
shr edi, 0x18
not ecx
and edi, ecx
jmp 0x476fd0
mov esi, dword [esi]
xchg edx, ebx
mov edx, ecx
ror edx, 0x1c
add edx, 0x36f56820
and ecx, ebx
or ebx, 0x36f5f5f2
mov ecx, ebx
xchg ecx, ebx
jmp 0x475fb3
mov dword [esp + 0x40], esi
dec edx
sub ebx, 0x370ba513
sub ebx, ecx
xchg edx, edi
and edi, edx
add edx, edi
and edi, ebx
ror edi, 9
xor ecx, edi
neg edi
add edi, ecx
mov ebx, edx
and ebx, 0x370e5b5f
dec edx
jmp 0x4777ff
mov esi, dword [esp + 0x48]
dec edx
xor edi, edx
add edi, 0x3722f2b6
xor edx, ecx
add ebx, edi
jmp 0x47789f
mov esi, dword [esp + 0x90]
not edx
nop
mov ecx, edi
or ebx, ecx
or ecx, 0x372b3c44
rol ecx, 0x14
xor ecx, ebx
shr ebx, 0x13
xor edi, ecx
jmp 0x476eb1
add esi, dword [esp + 0x40]
mov ebx, ecx
inc ebx
or ebx, 0x37389a62
xor ecx, 0x3738d824
xchg edi, edx
add ebx, ecx
xchg ecx, edx
jmp 0x4777b6
mov esi, dword [esp + 0x6c]
xor ecx, 0x374682b1
mov ebx, ecx
ror ecx, 0xb
xchg edx, ecx
and ecx, 0x37478af1
ror ebx, 0x18
sub edx, ecx
add edx, edi
not ebx
mov ecx, ebx
jmp 0x47776a
inc dword [esp + 0x6c]
xor ecx, 0x374f2490
rol ecx, 0x1c
or edi, edx
add edi, ecx
sub ebx, edi
shr ecx, 2
and edi, 0x3750a8cb
sub ecx, 0x3750e72e
and ebx, ecx
jmp 0x476543
mov esi, dword [esp + 0x40]
mov ebx, ecx
and ecx, 0x3751b555
and ebx, edx
and ebx, edx
add edi, 0x37527f02
shr ebx, 0x17
not ecx
add ebx, 0x37533ed1
jmp 0x4769a1
mov dword [esp + 0x30], esi
xor edx, ebx
add ebx, 0x375d46a1
xor edi, 0x375d858a
and edx, ebx
mov edx, ebx
or edx, 0x375e4e9e
and edx, ecx
mov edx, 0x375ec85b
xor edi, ecx
and ecx, edi
xor edi, ecx
and edx, ebx
jmp 0x476b24
mov esi, dword [esp + 0x48]
xor edx, ecx
or ecx, 0x3763dc35
ror edi, 0x16
mov ecx, ebx
and edx, edi
xor ebx, ecx
jmp 0x475a57
mov esi, dword [esi]
xor edi, edx
or edi, ecx
xchg edx, ebx
xchg ecx, ebx
mov ecx, edx
add ebx, edi
jmp 0x47572a
ret
add dword [esp + 0x48], 4
add ecx, 0x3790985e
add ebx, edi
xor edx, ecx
add ecx, 0x37915174
mov ebx, edi
add ebx, edx
xor ecx, edi
sub ebx, edi
mov edx, ebx
jmp 0x4760ec
jne 0x47665c
and ecx, ebx
shr ebx, 0x11
mov ecx, edi
and ebx, 0x379b98fd
or ebx, ecx
xor edx, edi
rol ebx, 4
mov edx, 0x379c979b
sub ecx, 0x379ce747
sub edx, ecx
add edi, 0x379d676b
xor ecx, ebx
add edi, 0x379de769
and ebx, edx
and ecx, edx
jmp 0x4770b9
xor al, byte [esi]
xor edx, 0x37a58834
ror ebx, 0x19
dec ecx
sub edi, 0x37a66069
xor edx, ecx
xor edx, edi
add ecx, edx
add edx, ecx
or edi, ebx
jmp 0x475767
mov esi, dword [esi]
xchg edx, ecx
neg edi
xor edx, 0x37ad349a
and ecx, 0x37ad7bdf
add ebx, ecx
jmp 0x475837
mov esi, dword [esp + 0x90]
and ebx, 0x37b4cc26
or ebx, ecx
xor edi, 0x37b58988
and edx, edi
add ecx, edi
xor edi, 0x37b66b3a
or edi, ebx
add ecx, edi
and edi, ecx
nop
jmp 0x476e30
mov dword [esp + 0x40], esi
mov ecx, 0x37c65fdb
rol ecx, 6
add ebx, edx
and ebx, ecx
ror ebx, 0x17
or edi, ebx
mov ebx, ecx
dec edi
xor ebx, edi
sub edi, edx
neg ecx
mov ebx, edi
add edi, ebx
jmp 0x47670b
mov esi, dword [esi]
xchg edx, ebx
neg edx
neg ebx
or edx, edi
and ebx, edx
or edi, ecx
jmp 0x477db7
mov esi, 0x30
or ebx, ecx
ror ecx, 1
xor ecx, edi
jmp 0x4770c9
mov eax, 2
or edi, edx
mov ebx, edi
bswap ebx
and ecx, ebx
xor ecx, edx
xor ebx, edx
inc ecx
xor ebx, ecx
or ebx, edx
shl ecx, 0xa
mov edi, 0x38058efb
xchg ecx, ebx
sub edx, 0x38060ac6
jmp 0x4762ce
mov dword [esp + 0x48], esi
and ecx, edi
sub edx, ebx
mov edi, 0x38158c88
or ebx, edx
and ecx, edx
xor ebx, 0x3816544d
sub edi, ebx
xor ebx, edx
jmp 0x476349
add dword [esp + 0x40], 4
xchg ecx, edx
xchg ebx, edi
or ecx, 0x3830249f
xor edi, ecx
add ebx, edx
sub ecx, edi
jmp 0x47546a
add esi, 0xc
xchg ecx, edi
add edi, edx
and edx, ebx
xchg ecx, ebx
or edx, edi
mov ecx, ebx
add ebx, 0x3836ce64
add ebx, 0x38370d65
jmp 0x475dd3
mov dword [esp + 0x40], esi
or edx, edi
inc ecx
shl edi, 0x12
mov edx, ecx
and ebx, edi
xor edi, ecx
not edx
rol ebx, 0x1f
mov ebx, 0x3839754e
add edi, 0x3839e43d
jmp 0x47648a
add dword [esp + 0x40], esi
xchg ebx, ecx
or edx, ebx
xchg edi, edx
add edi, ecx
and edi, 0x383befaf
xor ecx, ebx
and edx, ebx
or edi, ecx
or edi, ecx
sub edx, edi
jmp 0x4756ee
add esi, 0x3c
shl ebx, 4
xchg edx, ebx
mov edi, 0x384653ff
add ebx, edi
not edi
xor ebx, edx
neg edi
sub ecx, ebx
mov ebx, ecx
and edi, edx
or ecx, 0x38485151
shr edi, 0x1f
xor ebx, ecx
jmp 0x475e84
xor eax, eax
mov edi, 0x38581df8
or ecx, ebx
mov ecx, 0x3858aaaa
rol edi, 0xd
add edi, edx
add edi, edx
neg edx
xor edi, ebx
bswap ebx
jmp 0x47665c
add esi, 0xc
xor edx, ecx
and ebx, 0x385ac69e
or ebx, ecx
jmp 0x47718e
push esi
sub ecx, edi
shr ebx, 0x14
add edx, ecx
bswap ecx
mov ecx, ebx
sub edx, ecx
ror edi, 0x1d
xchg edx, ebx
jmp 0x476fb0
pop esi
mov edi, 0x3869fde3
xchg ecx, edi
xor ecx, ebx
inc edx
jmp 0x475ab6
mov esi, dword fs:[esi]
add ecx, 0x386b1d38
and ebx, ecx
sub edi, edx
and ecx, ebx
not edx
or edi, ecx
rol edi, 0x17
mov edx, 0x386ce12b
bswap edi
and edi, ebx
jmp 0x476de8
mul esi
and ebx, 0x386db5cf
xchg edi, ebx
or ecx, ebx
add ebx, ecx
add edx, edi
or edx, ecx
add edx, ecx
add ebx, edx
xchg ecx, edx
or ecx, edi
mov edi, ecx
and edi, ebx
add ebx, ecx
and ecx, 0x3871008b
add edx, edi
jmp 0x477570
add esp, 0xa8
shr edx, 9
or ebx, ecx
and ebx, edx
mov edx, ecx
dec ebx
mov edx, 0x387a07fb
xor edx, ecx
or edx, edi
inc ebx
shr ebx, 0x11
or edx, ebx
jmp 0x4764fc
mov esi, dword [esi]
mov edx, ebx
inc edx
bswap edi
add edx, ebx
inc edx
shr edx, 0x1c
add ebx, 0x387f7b26
not edx
xor edx, edi
jmp 0x475ce7
inc esi
xor ebx, ecx
xchg edx, edi
mov ecx, edx
or ecx, edi
sub ecx, edi
xor ebx, ecx
not edi
shl ecx, 7
add edx, 0x3894485d
shr edx, 0x15
or edx, ebx
mov edi, edx
jmp 0x477c8f
mov esi, dword [esp + 0x40]
or edi, 0x38976c4d
shr ebx, 0x1a
add edi, edx
xchg ecx, edi
dec edx
dec ebx
dec edi
mov ecx, 0x3899388c
or edx, ecx
xor ebx, 0x3899b330
mov edi, ebx
and edi, 0x389a2e83
jmp 0x47574c
jne 0x476349
neg ebx
or ecx, edx
mov edx, ecx
xchg edx, ecx
inc edi
sub ebx, ecx
xor ebx, edi
bswap ebx
mov edi, ecx
xor edi, 0x38a6537c
jmp 0x476d90
mov dword [esp + 0x6c], eax
sub edx, ebx
or ebx, edi
mov ebx, edx
xor ebx, ecx
or ebx, 0x38ae01a7
xchg edi, ebx
and ecx, ebx
and ebx, ecx
sub ebx, edi
or edi, ebx
add edx, ebx
or edi, edx
jmp 0x47577f
mov esi, dword [esp + 0x40]
sub ecx, 0x38b675d0
or ebx, 0x38b6b494
add ecx, 0x38b6f4cf
sub edi, ebx
add ecx, 0x38b772a5
mov ebx, 0x38b7b02d
inc edi
mov edx, edi
xor ecx, 0x38b87c0f
ror edx, 1
sub ecx, 0x38b8fc7f
mov edx, ebx
not ecx
and ebx, ecx
mov ecx, edx
jmp 0x4764a7
add dword [esp + 0x40], eax
not ebx
sub edi, ecx
dec ecx
xor ebx, edi
xor ecx, edx
not ebx
xchg edx, ecx
dec ecx
and ebx, edx
jmp 0x4772f1
add esi, 0x18
xor ebx, edi
neg edx
bswap edx
bswap ebx
or ecx, edi
ror edx, 0x1b
and ecx, ebx
xor ecx, ebx
or edi, edx
xchg ecx, ebx
and ecx, edi
sub ebx, edi
jmp 0x4766b2
mul esi
mov edx, 0x39a038a1
not edx
bswap ebx
dec edx
or edx, ebx
and ecx, ebx
add edx, edi
inc ebx
xor edx, edi
sub edi, 0x39a27a10
mov ecx, edi
jmp 0x477423
mov esi, dword [esi]
and ecx, ebx
shl edx, 0x10
xor edi, 0x39a6474b
and edx, ecx
add ecx, 0x39a6c492
mov edi, ebx
xchg edx, edi
shr edx, 3
add edi, ecx
mov ecx, 0x39a80828
jmp 0x4767f2
add dword [esp + 0x40], 0x78
add edi, edx
mov edx, ebx
or ebx, edi
bswap ecx
sub edx, ebx
inc ebx
sub edx, 0x39abebff
shl edx, 8
neg edi
jmp 0x4759dd
add esi, dword [esp + 0x90]
neg edi
and edi, ebx
xchg ebx, edi
neg edx
inc ecx
mov ecx, edx
inc edi
sub edi, 0x39b4917b
mov edx, ecx
xor edx, ebx
or ebx, 0x39b5492b
dec edi
sub ecx, 0x39b5c88c
add edx, ecx
jmp 0x477149
mov esi, dword [esi]
add edi, ebx
and edx, ebx
mov edx, ecx
sub ebx, ecx
ror ebx, 0x1c
and ecx, edx
not edx
and ecx, edi
add edx, edi
rol ebx, 0x1b
xchg ecx, ebx
dec edx
add edi, edx
dec ecx
jmp 0x477b3a
sub esp, 0xa8
or edx, ebx
xchg ecx, ebx
dec ecx
shl edx, 7
mov ecx, ebx
or edi, ecx
xor ebx, ecx
jmp 0x477cfa
add esi, dword [esp + 0x90]
xchg edx, ebx
or edx, ecx
xchg edi, ecx
sub ebx, edi
or edi, ebx
add ecx, 0x39ea7259
and ebx, 0x39eaba81
shl ebx, 0x13
and ebx, 0x39eb4a23
xchg ecx, edi
jmp 0x476fe2
cmp byte [esi], 0
jmp 0x4765d5
mov dword [esp + 0x48], esi
xor ebx, edi
mov edi, ebx
neg ebx
xor edx, edi
not ebx
mov ebx, edx
sub edi, edx
xchg ebx, edx
jmp 0x476b35
mov dword [esp + 0x6c], 0
xchg edi, ebx
mov edx, ecx
ror ecx, 0xd
or edi, 0x3a0b3373
add ebx, edx
shr ecx, 0x13
xchg ecx, edi
and edi, edx
xor ecx, edi
rol edi, 3
jmp 0x475227
add esi, dword [esp + 0x90]
xchg ebx, edx
inc ebx
or edx, ecx
and ecx, edi
xchg ebx, edx
neg ebx
inc edx
mov edi, ecx
and ecx, ebx
inc edi
and ecx, edx
xchg ecx, edi
mov ebx, 0x3a1adfc1
jmp 0x476c27
add esi, dword [esp + 0x90]
dec ebx
mov ebx, edx
shl edi, 5
xor ebx, 0x3a1f7ebf
and edi, ecx
or ecx, edx
and edi, 0x3a204936
and edi, 0x3a20883f
or edi, 0x3a20c74b
and edx, edi
mov edi, edx
or edi, edx
mov edi, 0x3a21bd72
jmp 0x477c97