Function at 0x529639
Capabilities:
Encrypt data using chaskey

Disassembly:
mov ecx, dword [ecx]
mov edx, ebx
xor esi, edx
nop
add esi, ebx
add edx, edi
xor esi, ebx
xchg ebx, esi
shr ebx, 3
shl esi, 0xd
or edi, 0x4352cf6c
jmp 0x52926f
add dword [esp + 0x80], eax
ror edi, 0x1d
shl ebx, 0xe
or ebx, esi
mov edx, ebx
add ebx, 0x435c7bea
shl edx, 0x17
jmp 0x527dac
sub dword [esp + 0x80], 8
shr edi, 0x14
shl edi, 8
not edi
mov esi, 0x436ec5ba
add edx, 0x436f05c2
mov ebx, edi
and ebx, 0x436f92e2
xchg ebx, edi
xchg esi, ebx
and edx, 0x437051c6
jmp 0x5285df
mov ecx, dword [ecx]
xor ebx, esi
add edx, ebx
not edi
xor ebx, esi
sub edx, 0x4381c5ac
inc edi
xor edi, esi
dec edx
jmp 0x528f4d
mov ecx, 0x30
and edi, edx
add esi, edx
and esi, edi
xor esi, edi
sub edx, esi
inc ebx
add ebx, edx
dec edi
add esi, edx
or ebx, edx
jmp 0x5283ff
rol eax, 8
or esi, 0x438f9268
mov edi, edx
shr esi, 0xb
xchg esi, edi
jmp 0x5289f3
mov dword [esp + 0x8c], 0
xor esi, edi
xor edi, 0x439860a4
mov ebx, 0x43989b42
and edi, edx
jmp 0x527128
mov ecx, dword [esp + 0x80]
neg edi
mov edi, esi
jmp 0x527f1b
add ecx, dword [esp + 0x80]
rol ebx, 0x10
or edi, edx
mov ebx, edi
xor edi, edx
and ebx, 0x43aa72e2
sub edx, esi
mov edx, esi
inc edi
xor edi, ebx
or ebx, 0x43aba862
inc ebx
and esi, ebx
jmp 0x527d05
mov dword [esp + 0x48], 0
sub ebx, edx
add edx, ebx
mov ebx, edi
rol ebx, 0xa
jmp 0x527a13
ret
mov ecx, dword [ecx]
xor ebx, 0x43c1b4d4
and edx, esi
mov edi, edx
mov edi, esi
not edi
and edx, ebx
jmp 0x527bde
add ecx, 0x3c
sub esi, 0x43c336f4
sub edi, esi
shl edx, 0x1f
sub edx, edi
add esi, edx
rol ebx, 0x17
neg edi
not esi
mov edx, ebx
sub esi, ebx
jmp 0x52719d
add dword [esp + 0x80], 4
sub edx, 0x43c9d966
xor esi, 0x43ca16d8
ror ebx, 0x1e
mov esi, edx
add edx, 0x43cad79a
add edx, 0x43cb138a
mov edx, 0x43cb4e28
or edi, ebx
xor edi, 0x43cbc5ec
and edi, edx
jmp 0x52794c
mov ecx, dword [esp + 0x48]
xor ebx, 0x43cd6d28
not esi
and esi, 0x43cde612
mov ebx, edi
jmp 0x52878c
add dword [esp + 0x80], 0x20
and edi, edx
sub ebx, edi
sub edx, ebx
xor edx, edi
xor edx, esi
add edi, ebx
or ebx, esi
shl ebx, 0xa
xchg esi, ebx
and edx, 0x43dc9bfc
xchg edi, ebx
and edx, ebx
or edi, 0x43dd572c
sub edi, esi
jmp 0x526fc9
add ecx, dword [esp + 0x48]
xor esi, 0x43e6e904
and ebx, edx
mov esi, edx
or edx, esi
and esi, edx
xchg ebx, edx
sub edx, ebx
sub ebx, edx
xor esi, 0x43e8ebcc
or edx, edi
shl esi, 0x1a
sub ebx, edi
xchg ebx, edi
and edi, edx
jmp 0x52749f
mov dword [esp + 0x8c], ecx
add edi, edx
mov edx, esi
nop
and ebx, esi
rol edi, 1
xchg ebx, esi
inc edi
or edi, edx
jmp 0x528452
mov ecx, dword [esp + 0x8c]
xchg edx, esi
sub edx, edi
sub edi, 0x43fc0348
inc esi
jmp 0x52841d
add dword [esp + 0x80], 0x78
mov edi, esi
xor edi, ebx
xchg edi, edx
not edi
sub edx, ebx
ror esi, 0x1e
shl edx, 9
xor ebx, 0x440b6976
rol ebx, 0x16
mov edi, 0x440be2be
mov edi, ebx
mov edx, esi
jmp 0x529516
mov ecx, dword [ecx]
xor ebx, edx
mov esi, ebx
sub esi, edi
dec ebx
not ebx
sub ebx, edi
and esi, ebx
xchg ebx, edx
shl edi, 0xb
mov esi, ebx
xor ebx, edx
bswap edi
jmp 0x5284c4
mov ecx, dword [esp + 0x80]
neg ebx
xor edi, 0x44495136
mov edx, esi
xchg esi, edx
ror ebx, 0x13
not ebx
add edi, 0x444a8f06
and edx, 0x444adf70
jmp 0x52937c
mov dword [esp + 0xf8], eax
or ebx, 0x444ee37a
add esi, ebx
xchg edx, ebx
and edi, 0x444fb138
jmp 0x526d08
mov ecx, dword [ecx]
mov edx, edi
xor esi, 0x44504440
xor esi, 0x4450842c
mov edi, esi
xor ebx, 0x44510158
mov ebx, 0x4451522c
xor esi, edx
and edx, ebx
jmp 0x528a7e
mov dword [esp + 0x80], 0
add ebx, 0x4453d5aa
and edx, ebx
add ebx, esi
and edx, esi
xor edi, esi
and edi, ebx
jmp 0x527e84
pop ecx
sub esi, edx
add esi, 0x44614410
xchg ebx, edx
or ebx, edi
xor edx, 0x4462133a
and edx, 0x44625364
or edi, esi
add edi, edx
sub ebx, edi
xchg esi, edi
jmp 0x528f18
mov ecx, dword [ecx]
bswap edi
sub edi, ebx
shr edi, 0x1d
sub edi, edx
ror esi, 2
or edx, 0x446bffa2
mov edx, edi
mov esi, edi
dec esi
xchg edi, edx
jmp 0x527d70
mov dword [esp + 0x80], ecx
xor edx, ebx
xor esi, edi
rol edi, 7
add esi, 0x447627f2
xor edi, ebx
ror esi, 0xb
jmp 0x52759d
add ecx, 0xc
add edx, ebx
sub esi, edx
mov esi, edi
or edx, edi
ror ebx, 6
add edi, edx
add edx, ebx
dec esi
add ebx, edi
or ebx, edi
jmp 0x52770e
mov dword [esp + 0x80], ecx
or ebx, 0x448692a2
sub ebx, edi
rol ebx, 7
or edx, ebx
mov edi, esi
sub edi, edx
add esi, 0x44881cf4
mov esi, ebx
jmp 0x527265
mov ecx, dword [ecx]
add edi, ebx
and edi, ebx
or ebx, edi
bswap edi
xchg edx, esi
shr edi, 0x17
xor esi, edi
rol esi, 0x1b
mov edx, 0x448c682a
add edx, edi
jmp 0x527cc7
add ecx, dword [esp + 0x48]
inc esi
shl edi, 0x11
ror ebx, 7
or edx, 0x4491deda
or edi, ebx
xchg esi, edx
mov edi, ebx
and esi, ebx
jmp 0x528ee9
jne 0x528d40
or esi, ebx
xchg ebx, esi
or edi, 0x4493ba9e
or edx, 0x44940cd2
jmp 0x527215
mov ecx, dword [esp + 0x80]
sub edx, esi
inc ebx
or ebx, esi
xor esi, 0x4495223e
rol ebx, 7
shr edx, 0x1f
jmp 0x527b5a
mov dword [esp + 0xe4], ecx
not esi
nop
xor ebx, edx
nop
inc edi
neg edi
bswap esi
mov esi, ebx
sub esi, edx
ror edx, 5
jmp 0x526eb2
add dword [esp + 0x8c], 4
and ebx, esi
or edi, esi
sub edx, ebx
xor ebx, esi
or ebx, edx
ror ebx, 8
xchg edx, esi
or edx, 0x44ad5596
mov ebx, esi
or edi, 0x44add16a
jmp 0x5286dc
mov ecx, dword [ecx]
shl ebx, 0x13
dec ebx
ror edx, 0x12
xchg edi, ebx
mov edx, ebx
add edx, esi
not edi
xchg edx, edi
bswap esi
ror edi, 0x1f
sub esi, 0x44b169a2
sub edx, esi
jmp 0x52908c
xor eax, eax
xor edi, 0x44b9fba0
xor edx, edi
jmp 0x528531
mov dword [esp + 0x80], ecx
dec esi
add edx, ebx
sub esi, 0x44faf148
sub edx, 0x44fb32ba
or edx, ebx
add ebx, 0x44fbb0bc
xchg edx, esi
sub edx, edi
jmp 0x5274d4
mov ecx, dword [ecx]
mov edx, esi
add esi, edi
jmp 0x528ab6
add ecx, dword [esp + 0x48]
xor edi, ebx
or edx, esi
xor edi, 0x450285c0
xor edx, ebx
xor esi, edi
inc ebx
add esi, edx
bswap esi
add ebx, edx
sub esi, edx
jmp 0x528336
mov ecx, dword fs:[ecx]
xchg ebx, edi
not edi
ror ebx, 5
shr esi, 0x1d
mov edx, edi
xor esi, ebx
sub edi, edx
add edx, ebx
mov esi, edx
xchg edi, esi
jmp 0x527c22
add ecx, dword [esp + 0xf8]
xor edi, ebx
inc edi
or esi, ebx
shl edi, 0xe
jmp 0x5288df
jne 0x528531
add edi, esi
nop
add ebx, edi
or ebx, edx
neg edi
add edi, ebx
mov ebx, esi
xchg ebx, edi
xor edi, 0x450dc21a
dec esi
jmp 0x527acf
mov eax, 2
inc edx
neg ebx
dec edx
mov edx, esi
ror esi, 6
xor edi, ebx
or edi, edx
ror edi, 0x12
jmp 0x52948f
add ecx, 0xc
xchg edi, ebx
mov edi, edx
and edx, edi
xchg ebx, esi
xor ebx, 0x451784de
shl edx, 5
mov ebx, edx
neg ebx
mov esi, 0x451882c6
and edi, 0x4518c2ce
jmp 0x526e2d
xor al, byte [ecx]
sub edi, edx
add edi, ebx
or esi, edx
not esi
sub edx, esi
xor edi, edx
sub edx, 0x4520c7d6
xchg edi, esi
or edi, edx
and ebx, edx
add ebx, 0x4521d242
xchg ebx, edi
or edx, ebx
and esi, 0x452290a8
jmp 0x526f0f
mov ecx, dword [esp + 0x80]
xchg ebx, edi
sub edi, esi
jmp 0x528afc
mov ecx, dword [esp + 0x8c]
mov esi, 0x453c43ee
xor edx, edi
xor esi, edi
shr edi, 4
xor ebx, edi
shr edx, 0x17
shr ebx, 0x19
and edx, ebx
add edi, 0x453e5130
xor edi, ebx
xchg edx, ebx
mov esi, edi
xor edx, edi
xchg edx, edi
jmp 0x526b5e
mov dword [esp + 0xf8], 0
xor edx, edi
xor esi, 0x4542c264
and esi, edx
xchg edx, ebx
shl edx, 7
or ebx, esi
jmp 0x526f8b
add dword [esp + 0x80], ecx
xor ebx, edi
add edx, ebx
shl ebx, 0x18
or ebx, esi
jmp 0x527320
mov eax, 4
xor esi, edi
mov ebx, esi
or esi, ebx
xchg esi, ebx
xchg edi, ebx
xchg esi, edi
xor edx, ebx
xor edi, 0x4562d016
mov esi, edx
or esi, edx
xor edi, esi
neg ebx
jmp 0x5291df
inc ecx
add edx, esi
xchg ebx, edx
shr edx, 0xb
shl edi, 1
dec edi
xor ebx, edx
jmp 0x528ce4
add ecx, 0x18
and edi, 0x45805126
shl esi, 0x1d
xor esi, 0x4580d2f2
and esi, edi
jmp 0x528397
mov dword [esp + 0x48], ecx
sub edx, esi
xchg edx, ebx
mov esi, edx
or edx, ebx
add esi, 0x45852556
sub edi, 0x45856550
mov esi, 0x4585a542
mov edx, edi
jmp 0x528d76
mov ecx, dword [ecx]
xor esi, 0x4587f306
and esi, ebx
sub edx, edi
mov esi, ebx
or edx, edi
xchg esi, edx
ror ebx, 0x1f
or esi, edx
not ebx
xchg ebx, edi
jmp 0x5283a2
cmp byte [ecx], 0
jmp 0x528431
inc dword [esp + 0xf8]
sub edi, esi
sub ebx, esi
or ebx, esi
not ebx
add ebx, 0x45b22970
xor edi, edx
xor esi, ebx
or esi, edx
jmp 0x527ee5
mov ecx, dword [esp + 0x48]
or esi, edx
add edx, 0x45b4fa08
add esi, edi
mov edx, esi
or edi, edx
or ebx, 0x45b5e2d6
shr edi, 7
xor ebx, esi
jmp 0x5271b4
push ecx
and edi, esi
xchg esi, edi
mov edi, ebx
ror ebx, 0xd
jmp 0x527fb3
mul ecx
and ebx, esi
mov ebx, 0x45c0db76
add edx, esi
inc esi
xor edx, edi
bswap ebx
bswap esi
xor esi, edi
jmp 0x526bf6
add esp, 0x108
shr esi, 0xb
not esi
or esi, 0x45cf0da6
xchg edx, ebx
and ebx, 0x45cf83ec
sub edi, ebx
mov edi, esi
sub edx, edi
xchg edi, ebx
add edx, edi
dec esi
add ebx, edi
and esi, edx
xchg esi, edi
jmp 0x527157
cmp eax, dword [esp + 0xe4]
jmp 0x527d91
mov ecx, dword [ecx]
add esi, ebx
sub edi, 0x45d5423a
xor esi, edi
inc edi
jmp 0x5279cf
add ecx, dword [esp + 0x48]
or edi, esi
sub edi, edx
xchg esi, ebx
and esi, 0x45eae454
add edx, ebx
xor esi, 0x45eb595a
add edi, 0x45eb95dc
mov edx, esi
jmp 0x5290b4
mov dword [esp + 0x8c], ecx
shr edx, 0xd
xor ebx, edx
and ebx, edi
shr edx, 0xe
jmp 0x528d40
movzx ecx, word [ecx]
add edi, 0x460138ea
mov edx, edi
add ebx, edi
xchg ebx, edx
sub esi, 0x460242b2
neg edi
and ebx, esi
not edi
sub edx, esi
xor ebx, edi
jmp 0x528e28
add ecx, dword [esp + 0x48]
mov esi, edi
and edx, edi
shl esi, 0xd
or esi, 0x460d009e
sub edx, edi
sub edx, esi
or ebx, edi
dec edx
ror ebx, 0x1f
sub edx, 0x460e8e7c
jmp 0x528db9
mov ecx, dword [ecx]
or esi, edi
xor edi, esi
mov ebx, 0x46208a24
rol esi, 0x1f
and esi, edx
sub ebx, 0x462159c6
jmp 0x5273c5
mov ecx, dword [esp + 0xf8]
and ebx, esi
or esi, edx
bswap esi
and edi, esi
add edx, esi
and esi, ebx
xchg ebx, esi
ror edi, 0xf
mov ebx, 0x4634687c
and edi, ebx
jmp 0x5295f3
mov ecx, dword [esp + 0x48]
xor ebx, esi
bswap esi
or ebx, 0x463c9f5c
not edx
jmp 0x52703c
mul ecx
add ebx, 0x464a4578
sub edx, edi
and esi, ebx
and edx, edi
xor esi, ebx
sub edi, edx
inc edx
xor ebx, 0x464bf052
jmp 0x5279b3
sub esp, 0x108
and edx, 0x464f5572
shr edi, 2
and ebx, esi
mov esi, 0x46501772
sub edx, esi
or edi, 0x46511d26
and edx, edi
mov edx, edi
sub ebx, edi
mov esi, 0x46521552
jmp 0x528730