Function at 0x8597f6
Capabilities:
Encrypt data using chaskey

Disassembly:
add dword [esp + 0x64], eax
mov ecx, esi
sub ecx, edi
sub ebx, esi
and esi, 0xfaf19697
and ebx, edi
xchg esi, edi
not edi
and esi, edi
and edi, ebx
jmp 0x857456
add edx, dword [esp + 0x9c]
xchg esi, edi
xchg edi, ebx
xor ebx, esi
mov edi, 0xfb09b45f
shr ebx, 0x18
or ecx, 0xfb0a30ff
mov edi, esi
jmp 0x859599
mov edx, dword [esp + 0x64]
sub edi, ecx
sub ecx, edi
inc esi
mov edi, esi
shl edi, 0xc
and ecx, ebx
sub ecx, ebx
jmp 0x85908d
add dword [esp + 0x64], edx
inc ebx
xor edi, esi
and edi, 0xfb273675
xchg ebx, esi
xor ecx, ebx
mov ecx, esi
dec ebx
add edi, 0xfb287456
nop
jmp 0x859b38
mul edx
add edi, 0xfb414715
mov esi, edi
xchg esi, edi
sub esi, edi
mov edi, esi
inc esi
ror esi, 0x16
and esi, ecx
xor ebx, ecx
sub edi, ebx
or esi, 0xfb43b220
jmp 0x856012
ret
cmp eax, dword [esp + 4]
jmp 0x859286
mov edx, dword fs:[edx]
bswap ebx
ror esi, 3
and ebx, 0xfb8c093d
and ebx, 0xfb8c475f
mov ecx, 0xfb8c86a0
inc ebx
neg edi
mov edi, ecx
xor edi, ebx
mov ecx, esi
jmp 0x859398
pop edx
shl edi, 0x1f
or ebx, 0xfb9bd5b9
or esi, ebx
sub ebx, edi
mov ebx, esi
bswap ecx
shl ecx, 0x12
xchg edi, ecx
jmp 0x85669d
rol eax, 8
sub ecx, esi
shl esi, 0x1b
and esi, ecx
ror edi, 0x1a
xor ebx, 0xfba37bbf
and ecx, edi
bswap edi
mov esi, edi
jmp 0x856b40
inc edx
mov ebx, ecx
and ecx, esi
sub ebx, ecx
ror ecx, 0x11
and edi, ecx
xor ebx, edi
xor esi, 0xfbbf48b2
ror esi, 0x16
or esi, 0xfbbfbade
bswap edi
or ecx, esi
jmp 0x857998
add dword [esp + 0x64], 4
ror esi, 0x10
xor ecx, edi
jmp 0x858d2d
xor eax, eax
add ecx, esi
shr ebx, 0x1f
or ecx, ebx
and edi, ebx
sub ecx, esi
and esi, edi
add ebx, esi
xor ecx, edi
jmp 0x8596d5
add dword [esp + 0x64], 0x78
rol edi, 7
mov ebx, ecx
neg ebx
xor ecx, esi
or ecx, ebx
nop
bswap esi
mov edi, esi
sub edi, ebx
rol edi, 3
and edi, ecx
jmp 0x859acd
mov edx, dword [edx]
xchg edi, esi
and esi, edi
shr ebx, 0x1e
add edi, ebx
and ebx, edi
xor ebx, edi
bswap ebx
jmp 0x857c62
mov dword [esp + 0x98], edx
and ecx, 0xfc28dfce
or ebx, ecx
sub ecx, 0xfc295765
or edi, esi
inc esi
mov edi, ebx
shl esi, 0x1e
xor edi, esi
and ecx, esi
xchg ebx, edi
add edi, ebx
or edi, ebx
jmp 0x85790a
mov edx, 0x30
shr ebx, 0x1c
xor esi, edi
mov edi, ebx
or esi, ecx
xor edi, ecx
neg ebx
mov ecx, 0xfc35d8ce
jmp 0x85686d
mov edx, dword [esp + 0x64]
xor ebx, ecx
mov edi, ebx
add ebx, esi
mov esi, ebx
add edi, 0xfc613b48
xor ebx, esi
xchg ecx, esi
inc ecx
sub edi, 0xfc622bd8
or ecx, edi
mov esi, edi
jmp 0x8596a3
mov dword [esp + 0x98], edx
xor esi, ebx
add ebx, esi
rol ecx, 0x10
xor edi, ebx
or edi, 0xfc70a861
sub esi, ecx
or ecx, 0xfc712771
neg ecx
mov ecx, ebx
jmp 0x8580d9
add edx, dword [esp + 0x9c]
xor ecx, esi
xor ebx, edi
or edi, 0xfc75f355
sub ebx, ecx
xor ebx, 0xfc767206
add edi, ebx
and ebx, ecx
add ecx, esi
sub ecx, ebx
jmp 0x857553
mov edx, dword [edx]
or ebx, ecx
and edi, ecx
shl ecx, 0xb
neg ebx
xchg edi, ecx
and esi, 0xfc78b03b
or ebx, ecx
xchg esi, ebx
or ecx, ebx
neg ebx
jmp 0x859ce1
mov edx, dword [edx]
sub ecx, 0xfc82c0f0
dec ecx
xor esi, 0xfc833b17
ror ebx, 0xf
xchg esi, ebx
sub edi, ecx
ror esi, 0x14
or ecx, ebx
or esi, ebx
xor ecx, ebx
jmp 0x857832
mov dword [esp + 0x9c], 0
mov ebx, 0xfc854741
xchg ebx, ecx
and edi, ecx
and esi, ecx
xchg ebx, esi
xchg ecx, edi
rol esi, 0xf
jmp 0x859c79
mov edx, dword [edx]
xor edi, ecx
shr ebx, 0x1b
bswap edi
add ecx, ebx
and ecx, esi
mov esi, ebx
xor edi, ecx
xchg edi, esi
and edi, esi
inc edi
add ecx, esi
jmp 0x8581dc
add edx, dword [esp + 0x64]
dec ecx
xor ecx, 0xfc9b1489
xor ebx, 0xfc9b516b
not esi
or esi, 0xfc9bce9c
shl edi, 0xd
xchg ebx, esi
nop
neg ecx
mov esi, ebx
jmp 0x856f57
add edx, dword [esp + 0x9c]
mov ebx, edi
sub ebx, edi
neg ecx
sub ecx, edi
xchg ebx, esi
jmp 0x858c91
add edx, dword [esp + 0x10]
sub ecx, esi
mov ebx, esi
mov esi, edi
or ebx, ecx
shl edi, 9
or ebx, 0xfcab3ada
and ecx, esi
bswap ecx
xchg edi, ebx
add esi, ecx
xchg ecx, ebx
xor esi, ecx
sub ebx, 0xfcacf07a
add ecx, edi
jmp 0x859932
inc dword [esp + 0x10]
sub esi, 0xfcb17fd3
ror edi, 0xc
mov ebx, ecx
and ebx, ecx
shl esi, 3
add esi, ecx
jmp 0x858120
add edx, dword [esp + 0x9c]
add edi, ebx
add ebx, esi
xor ebx, 0xfcb385ec
and edi, ebx
jmp 0x857b4d
cmp byte [edx], 0
jmp 0x85851a
add edx, 0x18
mov ecx, 0xfcce2576
or edi, esi
shr esi, 0x1b
xchg edi, ecx
add ebx, edi
mov esi, ecx
sub ecx, esi
add ecx, 0xfccfda5d
xor ebx, ecx
shr ecx, 0xc
sub esi, ebx
bswap edi
and edi, esi
jmp 0x858369
add esp, 0xac
shl ebx, 4
shr ecx, 0x11
add ecx, 0xfcda4c15
neg ebx
jmp 0x856627
mov edx, dword [esp + 0x9c]
or ecx, 0xfce01c06
or esi, 0xfce05aa2
add esi, edi
add ecx, ebx
sub ebx, edi
not edi
and ecx, ebx
and esi, ecx
sub ecx, 0xfce20ec0
xor ebx, ecx
bswap esi
add esi, ecx
jmp 0x8562fd
mov dword [esp + 0x64], edx
add ebx, 0xfced5afd
mov ecx, ebx
shl esi, 0x1c
ror esi, 0x1c
add edi, ecx
dec esi
xor esi, ecx
rol ecx, 0x10
and ebx, esi
mov ecx, esi
jmp 0x857bb8
mov dword [esp + 0x98], 0
not esi
sub esi, ecx
dec ecx
inc ebx
or esi, edi
sub ecx, ebx
add ebx, edi
or ebx, 0xfd1f1ba7
or esi, 0xfd1f5ae5
xchg edi, ebx
sub edi, 0xfd1fd774
jmp 0x85768e
mul edx
xor ebx, edi
and esi, ecx
or edi, esi
xchg esi, ecx
and esi, edi
or ecx, 0xfd3990b4
not edi
sub esi, edi
mov esi, 0xfd3a5be5
and esi, 0xfd3a9a89
jmp 0x858ef0
mov eax, 2
and ebx, ecx
sub esi, ecx
sub ecx, ebx
jmp 0x8587fa
add dword [esp + 0x98], 4
xor edi, esi
add edi, ebx
add edi, esi
or edi, ebx
jmp 0x8593b5
mov edx, dword [edx]
shr esi, 0x1d
xor ecx, esi
mov esi, ecx
sub esi, edi
or ebx, 0xfd530a0d
rol ebx, 0xf
and ecx, ebx
jmp 0x859858
mov dword [esp + 0x64], edx
neg esi
or esi, edi
and ebx, esi
rol ecx, 8
mov ecx, esi
ror ebx, 0x1b
jmp 0x856de5
mov edx, dword [edx]
sub esi, ecx
add ebx, ecx
sub ebx, 0xfd703e7c
add edi, ebx
mov edi, 0xfd70caf6
sub ebx, ecx
or esi, ebx
shr ecx, 0x17
bswap ebx
neg esi
jmp 0x85936a
jne 0x8596d5
inc esi
and ebx, 0xfd8f4fbe
xor ecx, esi
shl ecx, 0x13
and edi, ebx
add esi, ebx
add ebx, esi
xchg esi, ecx
mov ecx, edi
shl ebx, 3
and ebx, 0xfd91881b
mov esi, ebx
jmp 0x85693d
mov edx, dword [esp + 0x98]
xor edi, ecx
or ecx, ebx
and ebx, ecx
and esi, ebx
sub ebx, esi
dec ebx
sub ecx, 0xfdc03f49
rol esi, 0x12
jmp 0x8578a0
mov edx, dword [esp + 0x10]
xchg ebx, edi
or ebx, esi
mov ecx, esi
sub edi, ecx
and esi, ecx
dec ecx
jmp 0x858065
mov dword [esp + 4], edx
and ecx, ebx
not ecx
or ecx, 0xfdeb2a44
sub ecx, edi
neg edi
add esi, edi
and ebx, esi
neg ebx
xchg ebx, ecx
xor esi, 0xfdecbe7a
dec edi
or edi, ebx
jmp 0x8571e1
mov edx, dword [esp + 0x9c]
shl ecx, 0x1a
neg ecx
mov esi, ebx
or ebx, ecx
not esi
mov ebx, esi
xor edi, ecx
and ebx, ecx
shl ebx, 0x1d
shl ebx, 0x1f
mov ecx, edi
shr ebx, 8
or ecx, edi
shr edi, 1
add ebx, ecx
jmp 0x85909a
add edx, dword [esp + 0x9c]
xchg edi, ecx
xchg edi, ebx
mov ebx, esi
and esi, ecx
xor edi, 0xfdfb42c7
xchg esi, edi
mov ebx, ecx
xor esi, 0xfdfbe8f3
or ebx, 0xfdfc21bb
jmp 0x85713d
mov dword [esp + 0x64], edx
or esi, ecx
add ecx, edi
mov esi, edi
sub ebx, 0xfe102eb2
shr ebx, 1
or ecx, ebx
neg ebx
mov ebx, esi
add ecx, 0xfe115301
add esi, edi
mov edi, ebx
jmp 0x8587b7
mov edx, dword [esp + 0x64]
xor ebx, 0xfe18e364
ror esi, 0x18
inc ebx
mov esi, edi
sub ecx, 0xfe19d4ac
xor esi, ecx
jmp 0x859c45
mov edx, dword [edx]
sub edi, ebx
and esi, 0xfe245941
rol edi, 5
xchg ecx, esi
sub edi, ebx
xchg ecx, ebx
jmp 0x856159
mov dword [esp + 0x10], eax
xor ebx, edi
inc ebx
shr esi, 0x16
xor esi, ecx
mov ecx, edi
rol ecx, 0x10
add ecx, esi
jmp 0x858fe0
sub dword [esp + 0x64], 8
mov esi, edi
ror ecx, 0x1c
and edi, ecx
add ecx, 0xfe477fb3
jmp 0x85946c
mov edx, dword [edx]
or esi, ebx
bswap ebx
add edi, ebx
jmp 0x858b4d
add edx, 0x3c
xor ebx, edi
xor edi, ebx
or edi, ecx
nop
or ecx, esi
nop
shl edi, 0xb
jmp 0x8590e5
mov edx, dword [edx]
sub ebx, esi
xor esi, ebx
add ecx, 0xfe5a628e
mov edi, 0xfe5a9e76
and esi, ebx
bswap ebx
mov esi, ecx
sub ecx, esi
jmp 0x8582bc
jne 0x85790a
sub ebx, ecx
xchg ebx, edi
add ebx, edi
or ecx, 0xfe7b823c
ror ecx, 9
and ebx, edi
mov ecx, esi
xchg ebx, ecx
jmp 0x856ca0
mov dword [esp + 0x9c], edx
mov ecx, esi
ror ebx, 2
mov ecx, esi
sub ecx, ebx
mov esi, 0xfe8cc1f1
xchg edi, ebx
sub edi, esi
mov ebx, edi
xchg ebx, esi
add esi, 0xfe8dff84
add edi, 0xfe8e3c32
jmp 0x858aa7
add edx, 0xc
or ebx, 0xfe8e8edd
inc esi
mov esi, 0xfe8f1904
dec esi
mov esi, edi
add edi, ecx
or edi, esi
or ebx, esi
jmp 0x8575d3
mov edx, dword [esp + 0x98]
not esi
rol ecx, 4
or ecx, esi
mov edi, 0xfe914ed9
not ecx
bswap edi
and ecx, esi
add esi, edi
or esi, ecx
sub ebx, ecx
jmp 0x858de9
mov edx, dword [esp + 0x64]
not esi
ror ebx, 0x1a
xor ecx, 0xfe9e6479
mov esi, edi
ror esi, 0x14
mov esi, ebx
and ebx, esi
neg ebx
or edi, ebx
shr ecx, 0xc
add esi, edi
sub edi, ebx
dec edi
or ebx, ecx
jmp 0x85766a
push edx
add ebx, ecx
neg edi
or esi, ecx
mov ebx, ecx
sub ecx, 0xfeb4ca2f
or edi, 0xfeb5094f
shr ecx, 9
mov edi, 0xfeb5989b
add ecx, edi
ror ebx, 0x13
dec ebx
xor ecx, 0xfeb69037
sub ecx, edi
xor ebx, 0xfeb70c33
dec esi
jmp 0x856d37
mov edx, dword [edx]
shr edi, 0xd
xchg esi, ecx
add ebx, esi
sub ebx, esi
sub esi, ebx
jmp 0x857928
xor al, byte [edx]
xor ebx, 0xfec95a06
xor ebx, edi
mov ebx, esi
xor esi, edi
and edi, ebx
or esi, ebx
or esi, edi
rol ebx, 4
and ecx, edi
xor ecx, edi
rol edi, 0x1a
mov ebx, esi
jmp 0x8569a7
sub esp, 0xac
xchg esi, ebx
or esi, 0x5bca54c
ror ebx, 0x1d
inc ecx
xchg ebx, edi
xchg ecx, ebx
add ecx, ebx
rol edi, 5
jmp 0x859d2d
mov edx, dword [edx]
mov esi, 0x5c3160c
and ecx, ebx
mov ecx, edi
mov esi, edi
neg ecx
mov ecx, esi
xchg edi, ecx
add edi, 0x5c4c9c1
sub ebx, edi
and ecx, esi
or ebx, esi
jmp 0x857aac
mov eax, 4
ror ecx, 0xe
sub edi, 0x5d26b67
dec ebx
inc esi
sub ecx, 0x5d32535
xor ecx, 0x5d37205
or edi, 0x5d3af12
and edi, esi
jmp 0x859c27
mov edx, dword [esp + 0x9c]
xchg edi, esi
dec esi
xchg ecx, esi
inc ecx
sub ebx, 0x5ef5123
sub edi, ecx
and ebx, edi
add ecx, 0x5f0053c
jmp 0x8577b7
add dword [esp + 0x64], 0x20
bswap ecx
add esi, 0x5f5aacb
sub ecx, ebx
xchg edi, esi
or ebx, esi
mov edi, esi
rol esi, 0x19
mov esi, ecx
inc esi
or ecx, ebx
or ecx, esi
jmp 0x856226
movzx edx, word [edx]
rol edi, 0x18
ror edi, 0x1f
inc edi
mov edi, ebx
mov ecx, esi
and edi, 0x6072969
or edi, ecx
shr edi, 0xc
jmp 0x856477
mov edx, dword [edx]
xor ebx, edi
xor ecx, edi
mov ebx, ecx
mov esi, ebx
mov ebx, esi
xor ecx, ebx
jmp 0x8575ad
mov dword [esp + 0x64], 0
sub ecx, esi
sub edi, ebx
or esi, edi
xor ebx, esi
or edi, ecx
xor ecx, 0x60d32ce
add edi, ecx
and edi, 0x60daa39
sub esi, edi
and ecx, 0x60e33a2
xor edi, ebx
xor esi, ebx
jmp 0x858a69
add edx, 0xc
mov edi, esi
or esi, edi
shr esi, 0x15
or esi, edi
mov ebx, esi
shr ebx, 0x17
sub ebx, 0x614763a
neg edi
add ecx, esi
rol ebx, 9
jmp 0x85771f
mov dword [esp + 0x10], 0
shr edi, 8
mov ecx, ebx
or ecx, 0x619cd56
or edi, ecx
add edi, 0x61a4906
xchg esi, edi
inc esi
shr ebx, 0x1f
and ecx, esi
add esi, edi
and esi, edi
mov edi, ebx
jmp 0x857eef