Function at 0x475952
Capabilities:
Encrypt data using chaskey

Disassembly:
mov esi, dword [esp + 0x50]
xchg ecx, edx
xchg edx, ebx
xchg edx, ecx
and edi, ecx
mov ebx, edx
not ebx
mov edi, edx
ror edx, 0x12
xchg ebx, edi
jmp 0x475a55
jne 0x476bb0
ror ecx, 0x17
dec ecx
sub edi, ecx
xchg edx, ebx
xchg edx, ebx
shl edx, 0xd
or edi, 0x5b03a6a2
jmp 0x478405
cmp eax, dword [esp + 0x40]
jmp 0x477790
add dword [esp + 0x44], eax
and edx, edi
xchg ebx, ecx
or ecx, edx
bswap ebx
mov edx, edi
xor edi, edx
rol ecx, 0x12
jmp 0x475ce8
mov eax, 2
mov edx, ebx
inc ebx
sub edx, edi
mov ecx, edi
mov edx, 0x5b0c4731
add edx, ebx
ror ecx, 0xc
add edi, edx
jmp 0x476720
mov dword [esp + 0x44], esi
neg ecx
xchg ecx, edx
sub edx, ebx
bswap edx
jmp 0x477728
sub esp, 0x84
xor edi, 0x5b36a1bd
and ecx, 0x5b36df51
neg edi
rol edi, 7
and edi, ebx
bswap ecx
shl edi, 0x1a
and edx, edi
sub edi, 0x5b38a569
add ebx, ecx
jmp 0x475a88
mov dword [esp + 0x44], esi
mov edi, 0x5b3b9bdf
xor edi, edx
and edx, ebx
and ebx, edx
dec edi
add edx, edi
sub ecx, edi
rol edi, 0xa
jmp 0x475674
add esi, dword [esp + 0x6c]
sub ebx, ecx
xor edx, ecx
bswap ecx
mov ebx, edi
sub ecx, edi
sub edi, 0x5b48fdb8
and edi, 0x5b494b07
sub edx, edi
ror ebx, 0xe
add ecx, edx
sub edx, ecx
shl edx, 8
shl edx, 0x1c
xchg edx, ecx
jmp 0x475efd
mov dword [esp + 0x6c], 0
nop
or ecx, ebx
ror ecx, 0x1c
mov ecx, edx
shr edi, 0x13
sub ecx, edx
mov ecx, 0x5b4cd63d
rol ecx, 0x1f
bswap ecx
mov ebx, edx
mov edx, ecx
bswap edi
or ebx, edi
jmp 0x475de3
mov esi, dword [esp + 0x44]
inc edi
xchg edx, ecx
xor ecx, ebx
jmp 0x477547
mov esi, dword [esi]
mov edi, 0x5b5a09d8
sub ecx, edi
sub edx, ebx
add ecx, edx
sub edx, 0x5b5b07ec
and edx, ebx
mov edi, 0x5b5b7e2a
and edi, 0x5b5bbbc7
xor ecx, edi
xor ecx, ebx
or ebx, edi
ror ebx, 0x1b
jmp 0x4764ae
rol eax, 8
and edi, 0x5b62fb28
and edi, ecx
mov edi, edx
sub edi, ebx
xchg ebx, edi
rol edx, 6
rol edx, 0x18
or edi, ebx
shl edi, 0xc
xchg ebx, edi
jmp 0x477f48
add esi, dword [esp + 0x44]
xchg ecx, ebx
add edi, ebx
and ebx, edi
and edx, 0x5b663e9c
not ecx
sub ebx, edx
jmp 0x478069
mov esi, dword [esp + 0x44]
or edi, 0x5b74a2c3
sub ecx, edi
add ecx, edi
dec edx
sub ecx, edx
xchg edi, ecx
or ebx, 0x5b761f0c
sub ebx, ecx
add ecx, edi
dec ecx
and edi, ebx
jmp 0x4783ef
mov esi, dword fs:[esi]
add ebx, edx
add ebx, edi
and edi, 0x5b77d658
shl ebx, 0xd
mov ecx, ebx
xor edi, ecx
xchg ebx, ecx
and edx, ebx
inc ecx
add ecx, edx
xchg ebx, edx
jmp 0x4769e2
mov esi, dword [esi]
sub edi, ecx
xchg edx, ecx
and ebx, 0x5b7aa1f5
or ecx, edx
or edi, edx
sub edx, edi
neg ecx
jmp 0x47574b
mov dword [esp + 0x50], 0
inc edx
and edx, 0x5b873ab7
shr ebx, 3
jmp 0x4763f6
mov esi, dword [esi]
mov edi, ebx
or ebx, ecx
not edx
add edx, ecx
and ebx, edx
or edx, ecx
sub ebx, edi
xor ecx, 0x5b90f738
jmp 0x477b3b
mov eax, 4
shl ecx, 0x13
ror ebx, 0x12
sub edi, 0x5b9a9040
and ebx, edi
or ecx, edx
neg edx
jmp 0x477574
add dword [esp + 0x50], 4
xor ebx, 0x5bb2e865
shl edx, 0xc
xchg edx, edi
and edx, edi
and edx, ecx
mov edx, edi
mov edx, ebx
jmp 0x478235
mov esi, dword [esp + 0x44]
add edx, ebx
add edi, edx
sub ecx, edx
shl ecx, 8
mov ebx, 0x5bec2ce6
sub edi, 0x5bec69ff
xor ecx, ebx
mov edx, ebx
jmp 0x475b5c
mov dword [esp + 0x4c], 0
xor edi, 0x5bf7ab0e
add edx, edi
mov edi, ecx
not ecx
or edx, ebx
and edx, ecx
bswap edi
add edx, ebx
neg ecx
mov edx, ebx
add ecx, 0x5bfa1242
or ebx, edi
or edx, ecx
and edx, ebx
jmp 0x476d69
add esi, dword [esp + 0x4c]
xchg ebx, edi
shr ebx, 0x10
add edi, ebx
xchg ebx, edx
shr ebx, 0x14
xor edi, ebx
inc edx
xor edx, 0x5c05e428
neg ecx
mov ecx, edx
jmp 0x4759a3
mov esi, 0x30
xor ecx, edx
xor ecx, edx
or edi, ebx
dec edx
mov ebx, edi
xchg edx, edi
mov edi, ecx
or ecx, edi
and edi, edx
xchg ecx, ebx
and edi, ecx
shl edx, 0xa
add edx, ecx
jmp 0x475d10
mov esi, dword [esp + 0x6c]
sub ecx, 0x5c2e85fb
mov edx, 0x5c2ebe9c
rol edi, 0x1c
xor edx, ebx
mov edx, 0x5c2f667f
add edi, edx
shl edi, 1
xor ecx, edi
and ecx, edi
and ebx, ecx
xchg ebx, ecx
nop
add edx, 0x5c31349a
jmp 0x47759a
mov esi, dword [esi]
or ebx, 0x5c3f66a4
sub edx, edi
or edx, ecx
add edx, ecx
inc ecx
or ecx, 0x5c408b03
sub edi, ebx
rol ebx, 0xe
mov ecx, ebx
xchg ebx, ecx
jmp 0x476a44
mov esi, dword [esi]
shr edi, 0x12
inc ebx
and edx, 0x5c52e4b2
not ecx
bswap ebx
mov edi, ebx
jmp 0x47798c
add esi, 0xc
or edi, edx
dec edx
or edx, ecx
or ebx, edx
rol ebx, 0xa
mov edx, ebx
rol ecx, 0x10
add ebx, edx
neg edx
mov edx, edi
jmp 0x47738c
add dword [esp + 0x44], esi
xor ecx, 0x5c60d22e
mov edi, 0x5c610e69
neg edx
dec edi
sub ebx, edi
shl edx, 0x15
not edi
not edi
jmp 0x476c6b
add esi, dword [esp + 0x4c]
add edi, ebx
sub ecx, edi
rol ebx, 0x1c
or edx, 0x5c65a7db
ror edi, 0x13
dec edx
jmp 0x477027
xor al, byte [esi]
mov ecx, 0x5c7f294d
and edi, 0x5c7f7611
xchg ecx, edi
neg ebx
shl edx, 0x13
add edi, 0x5c806ce6
inc edx
jmp 0x475bed
add dword [esp + 0x44], 0x20
mov ebx, edi
and edi, 0x5c8b5b80
mov edx, edi
dec ecx
bswap ebx
mov edx, 0x5c8c4ede
neg edx
bswap edi
and ebx, edi
neg edi
add ecx, edx
or ebx, ecx
inc ebx
jmp 0x477e94
mul esi
add ebx, edi
mov edx, edi
ror edi, 0x11
add ebx, edi
xchg ebx, ecx
jmp 0x475713
mov dword [esp + 0x44], 0
xor ecx, edx
sub ecx, edi
xchg edi, ecx
sub edi, edx
shl edi, 4
neg edi
xor ecx, ebx
neg ecx
add ebx, edi
jmp 0x477175
add dword [esp + 0x44], 4
or ecx, edi
xchg ebx, edx
and ecx, edi
xchg ebx, edx
or ebx, 0x5cf09b9e
mov ebx, edi
xor ecx, edi
not edx
rol ecx, 0x16
jmp 0x475acd
mov dword [esp + 0x50], esi
or ebx, ecx
xor edi, 0x5d12a3ce
add ecx, edi
rol ebx, 0x12
neg ebx
mov edx, ecx
sub edi, 0x5d13df8b
xchg edi, ecx
or edi, ebx
neg edx
jmp 0x477923
xor eax, eax
ror ebx, 0x14
xor ecx, edi
and edi, 0x5d186564
shl ebx, 0x11
shl edi, 0x1c
and ebx, edi
xchg edi, ebx
neg ecx
xchg ebx, ecx
jmp 0x476bb0
mov dword [esp + 0x40], esi
xor edi, ebx
mov ebx, ecx
sub edx, ebx
sub edi, 0x5d2b7b9d
not edx
neg edi
xchg edi, edx
xor edx, ecx
add ecx, ebx
jmp 0x4765f2
mov esi, dword [esi]
rol ebx, 0xf
or ebx, edi
and ecx, edi
sub edx, edi
sub ecx, edx
and edi, ebx
add ecx, edi
sub edi, edx
add edx, ecx
xor edx, edi
jmp 0x47836d
mov esi, dword [esi]
xor edx, 0x5d5186df
xor edx, ecx
mov ebx, 0x5d51ffbc
xchg ebx, ecx
xchg edx, edi
rol ecx, 0x12
rol edi, 6
mov edx, ebx
ror edi, 9
neg ecx
sub ecx, edx
jmp 0x47769b
mov esi, dword [esp + 0x4c]
not edx
or ecx, edi
sub edx, edi
mov ecx, edx
rol ecx, 0xa
xor edi, edx
and ebx, ecx
xor ebx, edi
or edx, ebx
neg ecx
ror edi, 0x19
mov ebx, 0x5d5861c5
jmp 0x475c10
mov esi, dword [esi]
or ecx, edx
and edi, edx
inc ecx
xor ecx, edx
or edi, ebx
and edi, ebx
sub edx, ecx
neg edi
and edi, edx
ror edx, 1
and ecx, edx
and edx, 0x5d724a8b
or edi, edx
add ebx, 0x5d72c591
xor ebx, edx
jmp 0x4784cb
movzx esi, word [esi]
and edx, edi
add ecx, edi
add edi, ebx
shr ebx, 0x1d
xchg ecx, edx
and ecx, 0x5d7487a9
or ebx, ecx
xchg edi, edx
shl ebx, 0x16
add edi, ebx
add ebx, ecx
add edi, edx
jmp 0x476cce
mul esi
add edx, ecx
rol ecx, 1
add edx, ebx
mov ebx, edx
nop
neg edi
xchg edx, ebx
jmp 0x478046
cmp byte [esi], 0
jmp 0x475693
add esi, 0xc
ror ebx, 0x1e
xor edi, ecx
mov edx, ecx
sub edi, 0x5d8ad672
rol ecx, 0x1f
and edi, edx
jmp 0x4777e2
mov dword [esp + 0x44], esi
xchg edi, ebx
ror edi, 0xc
sub edi, ebx
mov edi, 0x5d8f7cb6
xchg edi, ebx
or ecx, ebx
xchg edx, ecx
or edx, ebx
or edx, 0x5d90bf15
add ebx, edx
mov edi, 0x5d913963
jmp 0x477aa1
add dword [esp + 0x44], 0x78
or edi, 0x5d93d7b9
and ecx, 0x5d94152b
sub ecx, 0x5d94542c
not edx
sub ebx, edx
dec ecx
jmp 0x4773cb
jne 0x477923
add edx, ecx
mov edx, ecx
bswap ecx
or ecx, edi
and edx, edi
xor edi, ecx
mov ebx, ecx
jmp 0x476e27
mov esi, dword [esi]
add edx, edi
add ebx, edi
sub ecx, ebx
or edx, 0x5da2f863
jmp 0x475e63
add esp, 0x84
shl edx, 5
or ebx, 0x5dae82f0
xor ebx, 0x5daed1c0
and edx, 0x5daf10fc
neg ebx
mov ebx, 0x5daf8f76
xor ecx, ebx
mov ebx, 0x5db00b5a
mov ebx, edi
jmp 0x478656
inc dword [esp + 0x6c]
sub ebx, ecx
shl ebx, 8
sub ecx, ebx
xor ebx, ecx
add edi, edx
xor ecx, 0x5db8ad2b
neg ecx
add edi, ebx
or edx, ecx
and edi, ebx
sub ecx, edx
and ecx, 0x5dba1da6
xor ebx, ecx
jmp 0x476040
mov dword [esp + 0x4c], esi
shr ebx, 4
sub edi, edx
mov edx, 0x5dbf5fc5
xor edx, ecx
or ecx, 0x5dbfdef3
xchg edx, ebx
sub edx, ecx
sub edi, ebx
inc ecx
xor ebx, edx
and ecx, edi
rol ebx, 0xe
or ecx, 0x5dc1e7cc
mov ebx, ecx
and edx, ecx
jmp 0x477e3f
mov esi, dword [esp + 0x4c]
sub edx, edi
and ecx, ebx
sub edx, edi
or ecx, edi
rol ebx, 1
ror edi, 6
inc edi
add edx, ebx
jmp 0x4769ff
push esi
or edi, edx
add edx, ebx
or ecx, ebx
sub edx, ecx
or edx, ebx
bswap ebx
jmp 0x477073
mov esi, dword [esi]
not ecx
neg ecx
or edx, 0x5ddfd404
sub edi, 0x5de01462
not edi
dec edi
or edx, edi
mov ecx, ebx
jmp 0x477db5
add esi, 0x18
bswap ecx
or edi, ecx
xor edi, 0x5e0e00f7
ror edi, 0x1b
xor edx, edi
and edi, 0x5e0ecbcd
or ecx, edx
add ecx, 0x5e0f46cb
sub ecx, 0x5e0f8590
sub edx, ebx
nop
jmp 0x476933
mov esi, dword [esp + 0x4c]
or edx, ebx
sub edi, ecx
and ecx, ebx
xchg edi, ebx
and edi, ebx
sub ebx, edi
jmp 0x477fbd
mov dword [esp + 0x50], esi
or ebx, ecx
inc ecx
xor ecx, edx
or edi, ecx
rol edi, 0xb
not ebx
jmp 0x47572e
mov esi, dword [esp + 0x44]
and ecx, edi
sub edi, edx
ror edx, 3
xor edx, edi
inc ebx
xchg edi, ecx
neg edi
mov edi, edx
not ebx
xor ebx, ecx
inc ecx
xchg edx, ebx
jmp 0x47681d
inc esi
sub edi, ecx
or edi, ecx
or edi, 0x5e297cf7
add edi, 0x5e29bcc4
neg ecx
rol ecx, 1
sub edx, ebx
mov ebx, 0x5e2ac66e
add edx, edi
add edx, edi
or edi, ecx
xor edx, ecx
shl edx, 0x1b
sub ecx, edx
mov edi, ebx
jmp 0x4775af
add esi, 0x3c
or ebx, edi
and edx, ecx
shr ecx, 0x1c
sub ebx, ecx
neg ecx
dec edx
and ebx, edi
ror edx, 4
sub edx, ecx
jmp 0x475d32
add esi, dword [esp + 0x4c]
add ebx, edi
or ecx, edi
mov edx, 0x5e3480f6
and ebx, edi
and ecx, edi
or ebx, edi
add edx, edi
sub edx, ecx
add ecx, edx
jmp 0x47788f
sub dword [esp + 0x44], 8
neg edi
dec edi
or ecx, edi
ror ecx, 0x14
inc edx
xor edx, ebx
or edi, edx
or ebx, 0x5e37fd87
jmp 0x47633c
mov dword [esp + 0x6c], eax
or ecx, 0x5e3b9012
and edx, ebx
mov edi, ecx
not ebx
sub edi, 0x5e3c9181
mov ecx, 0x5e3ccff4
jmp 0x477ff9
mov esi, dword [esi]
mov ebx, edx
ror ebx, 0xa
bswap ebx
mov ecx, edi
ror ebx, 0xb
xor edi, ebx
add ecx, edx
neg ecx
jmp 0x4776df
mov esi, dword [esp + 0x50]
neg edx
xor edi, edx
or edi, ebx
not edi
xchg edx, ebx
jmp 0x477354
add esi, dword [esp + 0x4c]
and edx, 0x5e70e63b
add ecx, 0x5e712374
bswap ebx
add edi, edx
mov edx, ebx
xchg edx, edi
xchg ecx, edx
shl ecx, 0x17
add ecx, ebx
and ebx, edx
mov ebx, 0x5e734f09
shl edi, 2
bswap ecx
or ecx, edx
jmp 0x477af8
mov esi, dword [esi]
rol edi, 0x13
xchg ecx, edx
and ecx, 0x5e7a1bc0
mov edx, edi
sub edx, ebx
jmp 0x477fd8
pop esi
inc edx
mov ecx, edx
and edi, ebx
mov ecx, edi
sub edx, ebx
or ecx, edi
mov edi, edx
bswap edi
add edi, ecx
inc edi
jmp 0x4756b1
add esi, dword [esp + 0x4c]
neg ebx
not edx
xor edx, 0x5e894bb4
rol ecx, 1
add edx, edi
sub ecx, ebx
ror edx, 0x1a
mov ebx, 0x5e8a8812
not ecx
or ebx, 0x5e8b037e
xchg edx, ebx
jmp 0x477e57
ret