Function at 0xa228ec
Capabilities:
Encrypt data using chaskey

Disassembly:
mov esi, dword [esp + 0x78]
xchg ebx, edi
dec edi
or ecx, edi
shl ebx, 0x18
mov ecx, edx
shr ebx, 5
mov edx, 0xe05c92cb
sub edx, ecx
and edx, edi
xchg edi, ecx
xchg edx, ebx
xor ebx, edx
jmp 0xa238a8
add esi, dword [esp + 0x78]
xchg ebx, edi
inc ebx
or ebx, 0xe05d7313
add ecx, edx
mov edx, ebx
shr edx, 0x11
inc ebx
add ecx, edi
neg edi
xor edx, edi
or edi, 0xe05e4f11
inc edx
rol edi, 0x13
mov ebx, 0xe05ea2b9
jmp 0xa246e4
sub esp, 0xa4
xor edx, edi
and ecx, edx
or ebx, edi
bswap ebx
inc ebx
xor ebx, ecx
inc ecx
rol ebx, 9
jmp 0xa24765
jne 0xa23598
xor edx, edi
xchg edx, ebx
xor ecx, edx
dec edi
or edx, 0xe0b2295b
and edi, ecx
or edx, edi
mov ebx, edx
jmp 0xa24d00
mov esi, dword [esi]
xor ecx, edx
sub ecx, edx
xor ebx, ecx
or ebx, edx
and edx, ebx
dec edx
bswap ebx
or edx, 0xe0b6a081
jmp 0xa25212
jne 0xa25185
or ebx, ecx
mov ebx, 0xe0b812fb
or edi, 0xe0b82ee7
inc ecx
sub edi, ebx
shr edx, 0xa
bswap edi
sub ecx, 0xe0b8be47
nop
add edi, ebx
jmp 0xa234fd
mov esi, dword [esp + 0x88]
or edi, ecx
shr ecx, 0x1b
xor ebx, 0xe0c14f49
or ecx, edx
inc edx
and ecx, ebx
inc edi
mov edi, edx
xor ebx, 0xe0c1f5df
dec edx
xor edi, ebx
xor ecx, edi
jmp 0xa2413e
mov dword [esp + 0x54], eax
not ebx
mov edx, ebx
mov edx, ecx
and edi, ebx
xchg ecx, ebx
or ecx, edi
and edi, ecx
xchg ecx, edi
rol edx, 0x1e
mov ebx, edi
jmp 0xa2527c
mov dword [esp + 0x8c], 0
xchg ecx, edx
neg edx
sub edi, ecx
add edx, ebx
add edi, ebx
sub ebx, edi
and ebx, edi
shl edx, 0x18
mov edx, edi
and ebx, edx
sub edx, ebx
ror ecx, 5
jmp 0xa25532
add esi, dword [esp + 0x8c]
sub edi, ebx
xchg ecx, ebx
xor edx, edi
add edx, ebx
mov ecx, 0xe0c5371f
sub edi, ebx
jmp 0xa2436c
mov dword [esp + 0x88], esi
add ebx, edi
sub edi, edx
add edx, ecx
mov edi, ecx
or ecx, ebx
inc ecx
jmp 0xa24b13
mov esi, dword [esp + 0x78]
xchg ebx, ecx
or edi, 0xe0cb97b5
shl ecx, 7
mov edx, ecx
or edx, 0xe0cbe6c7
add ecx, 0xe0cc0323
xchg edx, ebx
rol ebx, 3
xor edi, 0xe0cc5b47
mov ecx, edi
or ebx, 0xe0cc8ec7
mov ebx, 0xe0ccaba1
jmp 0xa23b58
cmp byte [esi], 0
jmp 0xa229ba
mov esi, dword [esi]
or edx, 0xe0d3b8ff
or edi, 0xe0d3d4db
and ecx, edx
add edi, ebx
add ebx, ecx
ror edx, 0x1d
sub ebx, ecx
inc ecx
jmp 0xa2483f
add dword [esp + 0x78], 0x78
xor edx, ecx
xchg ecx, edi
xor edx, 0xe0d5c337
mov ecx, edx
and edi, 0xe0d5f681
add ebx, ecx
and ecx, 0xe0d62a01
mov ebx, edx
or ecx, ebx
sub ebx, edx
jmp 0xa243d7
mov dword [esp + 8], esi
sub edx, ecx
mov ebx, 0xe0e522b3
rol edx, 0x1e
neg ecx
dec edi
mov edx, 0xe0e5956f
shl edx, 0x10
ror ebx, 0x14
add ecx, edx
mov ecx, edx
sub edi, ebx
inc ebx
xor ebx, ecx
add edx, edi
jmp 0xa23960
add esi, 0x18
or ecx, 0xe0ee6fcf
add ebx, 0xe0ee882b
dec edi
nop
dec edx
or ecx, 0xe0eefc51
and edi, ebx
xor ebx, edi
mov edi, ecx
or edi, ecx
mov edi, 0xe0ef86fb
xor ebx, 0xe0efa259
add ebx, edi
add ebx, 0xe0efd937
shr edi, 0x18
xchg ecx, edi
jmp 0xa22dd8
xor eax, eax
and ebx, edx
xchg edi, edx
add ebx, edi
xor ebx, edi
xor ecx, 0xe0f5b1cd
xor ebx, ecx
dec edx
shr ecx, 0x15
mov ebx, edi
shr ebx, 0x17
jmp 0xa23598
add esi, dword [esp + 0x8c]
mov ecx, ebx
xor edx, ecx
xor ecx, ebx
xor edx, 0xe10769cd
add edi, ebx
and edx, ecx
and ecx, ebx
mov ebx, edx
jmp 0xa25318
add dword [esp + 0x78], 4
and edx, edi
or ebx, edx
bswap ebx
sub ecx, edx
ror ebx, 1
and ecx, edi
add ecx, 0xe167c467
xor ebx, edx
or ebx, edi
sub ebx, edi
and ecx, ebx
add edx, edi
sub edx, edi
not ebx
jmp 0xa22cc6
movzx esi, word [esi]
or ecx, ebx
and edi, edx
add edi, ebx
or ecx, edi
jmp 0xa24c0f
xor al, byte [esi]
xor ecx, 0xe16c1039
sub edi, ecx
or ebx, edx
bswap ebx
xor edi, edx
ror edx, 0x1c
sub ecx, 0xe16cd189
mov edi, ebx
sub ebx, ecx
mov ebx, 0xe16d650f
mov edi, 0xe16d9697
not ecx
xor ebx, ecx
inc edi
not edi
or ebx, ecx
jmp 0xa24a88
mov dword [esp + 0x88], esi
sub ecx, ebx
or edi, 0xe173f6af
xchg ebx, edx
bswap ebx
sub edi, ebx
add ecx, ebx
sub ecx, edi
sub ebx, edx
add edi, edx
not ecx
bswap edi
sub edx, ecx
mov ebx, 0xe1752011
rol edx, 7
jmp 0xa25185
mov dword [esp + 0x78], esi
bswap ecx
and ebx, edx
mov edi, edx
and ecx, edx
add edx, ecx
shl edx, 0x1c
or edx, 0xe17c2b85
add ecx, ebx
mov edi, 0xe17c5fa9
or ecx, edx
jmp 0xa24df7
mov esi, dword [esi]
shl edx, 1
ror ebx, 0xa
add edx, ebx
dec ebx
rol edi, 8
add edi, 0xe1879711
shl edx, 0x16
or edx, edi
and ebx, 0xe187ea3b
xor ebx, edx
add edi, ebx
and ecx, 0xe1883b55
or edi, ecx
add edx, edi
jmp 0xa23403
mov esi, 0x30
xchg ecx, ebx
sub edi, 0xe18c478b
add edx, edi
or edi, 0xe18c8311
and edx, ecx
or ecx, ebx
not edx
mov edi, 0xe18d1609
jmp 0xa23f78
mov esi, dword [esi]
xchg ebx, ecx
xor ebx, 0xe1a31d47
sub ebx, 0xe1a33e37
and ecx, ebx
or edi, ecx
add ecx, edx
or ecx, edx
mov ebx, ecx
xchg ecx, edx
xchg edi, edx
sub edx, ebx
xchg edx, ecx
sub ecx, edi
add ecx, ebx
jmp 0xa24eaa
mov esi, dword [esi]
add ebx, edx
and ebx, 0xe1a8bd3f
add ebx, edi
shr ebx, 0xe
bswap ecx
mov edx, edi
inc ecx
or edi, edx
dec edi
sub ecx, edi
jmp 0xa24e5e
mov esi, dword [esp + 0x54]
neg ecx
sub edi, ebx
or ebx, 0xe1b7daf3
add edx, edi
sub edx, ebx
neg ecx
add edx, ecx
xchg ecx, edx
xchg ecx, edi
or ecx, 0xe1b8d8eb
xchg edx, ecx
xor ecx, 0xe1b9209b
mov ebx, 0xe1b94531
add ecx, 0xe1b96827
add ecx, edx
shr ebx, 0x1f
jmp 0xa25235
mov esi, dword [esi]
xchg ecx, edx
neg edx
and edx, 0xe2394797
mov edi, edx
or ecx, edx
add ebx, 0xe2399945
jmp 0xa230f6
mov esi, dword fs:[esi]
sub edx, ecx
ror edx, 0x1c
shr ecx, 0x1c
sub ebx, edx
or edi, ebx
add edx, ecx
or ebx, ecx
or edi, ecx
and ebx, 0xe23d3121
rol ebx, 7
sub ecx, edx
rol edi, 0xc
jmp 0xa24335
mov esi, dword [esi]
dec ecx
neg edi
add ebx, edx
xor ebx, 0xe23dfb75
mov ebx, edi
sub edx, ecx
or ebx, ecx
or ebx, edx
ror ebx, 0x1b
sub edi, edx
or edi, ebx
sub ebx, 0xe23ed0b3
xchg ecx, ebx
xchg edi, ecx
jmp 0xa22bfe
add esi, dword [esp + 0x54]
dec ecx
ror ebx, 4
sub edx, edi
and edi, ebx
and ebx, edi
or edi, ecx
sub edi, ecx
not edx
mov edi, edx
add edi, ebx
jmp 0xa24e2a
cmp eax, dword [esp + 8]
jmp 0xa22a73
add esi, 0xc
add edi, ecx
sub edi, ecx
add ecx, edx
xor edi, edx
inc edx
add ebx, edx
and ebx, 0xe29db137
and ecx, edx
jmp 0xa2460a
add esi, 0xc
neg ebx
sub ecx, ebx
add ecx, edx
xor ebx, 0xe29e70a5
bswap ebx
not edx
xor edx, edi
or edi, edx
jmp 0xa25615
push esi
or ecx, edi
or ecx, edi
sub ecx, ebx
rol edx, 0xd
mov ebx, edi
or edx, 0xe29feebb
and edi, ecx
nop
ror ecx, 0x12
or edx, ecx
not edx
add ecx, edx
ror edi, 0x1b
mov edx, ecx
shr ebx, 0x1d
shl ebx, 0x1d
jmp 0xa231c6
mov esi, dword [esp + 0x8c]
xchg edx, ecx
mov ecx, edx
shl ecx, 0x14
or edi, ebx
and ecx, edi
and edx, ebx
sub edx, edi
sub ecx, edx
shr ebx, 0xc
xor edi, ecx
jmp 0xa228ba
add dword [esp + 0x88], 4
add edi, edx
xchg edx, edi
add ecx, edi
add ecx, ebx
add ebx, edx
dec ebx
sub edx, 0xe2a78c4f
sub edx, ecx
not ebx
or edi, 0xe2a8ade1
and ebx, edi
xchg ecx, edx
sub edx, edi
neg edi
jmp 0xa24790
mov esi, dword [esi]
or ebx, edx
shl edi, 4
mov ebx, ecx
mov ebx, ecx
not edx
or edx, ebx
sub edx, ebx
shr edx, 2
xchg edi, ebx
shr ecx, 1
nop
mov edx, ecx
add edi, 0xe2c684cf
neg ebx
jmp 0xa23f0c
mov esi, dword [esi]
dec edx
and ecx, edx
bswap ebx
sub ebx, 0xe2c87123
sub edi, 0xe2c89aff
rol edx, 0x18
jmp 0xa24350
mov esi, dword [esp + 0x78]
shl ecx, 4
xor ecx, 0xe2cc3e85
xchg ecx, edx
or edx, edi
rol ebx, 0x18
xor ebx, 0xe2ccca1b
or edx, ecx
xchg edi, ecx
jmp 0xa22a2d
mov esi, dword [esi]
mov ebx, edi
mov ecx, edi
xchg ecx, ebx
sub ecx, 0xe2d3a79f
sub edx, 0xe2d3ce1d
sub edx, ecx
add edi, 0xe2d414d1
ror ebx, 5
mov edi, edx
xor ebx, 0xe2d48561
jmp 0xa23736
mov dword [esp + 0x54], 0
xchg ebx, ecx
add ebx, edx
xchg edx, ecx
xor edi, 0xe2d91093
mov ecx, ebx
not ebx
sub ebx, edx
sub ebx, edi
xor ecx, edx
mov ebx, 0xe2d9e7b5
jmp 0xa25127
mov esi, dword [esp + 0x88]
mov ecx, edx
xchg ebx, edx
bswap ebx
add edi, ecx
sub ecx, 0xe2daa42f
add edi, edx
jmp 0xa23fa0
mov dword [esp + 0x8c], esi
mov edi, edx
ror edi, 0x1d
xchg edx, edi
add ecx, 0xe2e2dcf7
or ecx, ebx
xor ebx, edx
shl ecx, 0xd
shl ecx, 9
jmp 0xa24af1
rol eax, 8
shr edi, 8
xchg edi, edx
xor ebx, 0xe2fbb0e5
mov edi, ecx
rol edi, 0x1c
sub ecx, 0xe2fc171d
jmp 0xa254f5
mov esi, dword [esp + 0x8c]
or edi, 0xe30015bf
or edi, ebx
rol edi, 0xb
mov ecx, ebx
shl ebx, 8
xor ebx, 0xe300c3f1
jmp 0xa24cae
mov eax, 2
ror edi, 0x1b
not edi
or ebx, edi
rol ecx, 0xa
sub ecx, 0xe301dad1
and edx, 0xe301fc73
add edx, edi
xchg edi, edx
or ecx, 0xe302bb19
shr edi, 0xc
or ebx, edx
or ecx, edx
jmp 0xa23cbe
mul esi
and edx, 0xe30b900f
xchg ebx, edx
and ebx, ecx
mov ecx, edi
dec ecx
mov edx, ebx
add edi, edx
ror ecx, 0x15
xor edi, ebx
dec ecx
sub ecx, ebx
xor ebx, 0xe3118e29
or ebx, ecx
mov edx, 0xe311d29b
jmp 0xa25112
add esi, 0x3c
xchg edi, ecx
or ecx, ebx
xchg ebx, ecx
xor ebx, edx
and edi, 0xe31b4d4f
add ebx, 0xe31b6ebd
sub ecx, edi
xor edx, 0xe31bb223
and ebx, edi
shr ebx, 7
jmp 0xa24e17
ret
pop esi
mov ecx, edx
mov ebx, edi
inc edx
xchg edx, ecx
neg edx
shr edx, 0x1b
mov ebx, edx
sub edx, edi
or ecx, edx
shr edx, 0x1a
mov ebx, 0xe37e767d
nop
jmp 0xa242c6
mov esi, dword [esp + 0x8c]
sub ecx, 0xe3a29d41
xchg ebx, ecx
sub ecx, edx
xchg edi, ebx
add edx, edi
xchg ebx, ecx
mov ebx, edi
and ecx, edi
jmp 0xa25086
mov esi, dword [esi]
or edi, ecx
add ecx, edx
or ebx, ecx
bswap ecx
add ecx, edx
sub ebx, ecx
jmp 0xa24e83
mov eax, 4
bswap ecx
mov ecx, 0xe3a89721
ror ecx, 0x1b
add ecx, ebx
jmp 0xa23588
add esi, dword [esp + 0x8c]
xchg edx, edi
xor ecx, edx
and edi, ecx
inc edi
mov ecx, 0xe3b05537
xchg edi, ebx
or ebx, 0xe3b0a155
sub edx, edi
nop
xor edx, ebx
jmp 0xa22c7e
mov dword [esp + 0x78], esi
sub ecx, edi
shl ebx, 0x1a
sub ebx, edx
xor edi, 0xe3b198e7
xchg ebx, edi
mov ecx, edx
mov edx, ecx
neg edx
dec ecx
not ebx
nop
or edx, ecx
jmp 0xa22e0d
add esi, dword [esp + 0x8c]
add edi, 0xe3b3ca1b
or ecx, ebx
xor edx, edi
or ebx, edi
add edx, ecx
mov ecx, edi
and edi, ecx
ror edx, 0x1d
jmp 0xa253b2
add dword [esp + 0x78], esi
and ecx, 0xe3c7064d
or ecx, ebx
or edx, edi
mov ecx, 0xe3c76383
rol edi, 0x19
xor edx, ecx
jmp 0xa250cd
add dword [esp + 0x78], 0x20
xchg ebx, edi
rol ecx, 5
xor edx, edi
add edx, ebx
sub edx, 0xe3ca14b1
and ebx, ecx
mov ecx, ebx
and ebx, edx
add edx, ebx
xor ecx, edx
jmp 0xa24646
add dword [esp + 0x78], eax
mov ecx, edi
ror edx, 0x1d
sub ecx, ebx
not edi
jmp 0xa25384
mov dword [esp + 0x88], 0
xchg edx, edi
xchg edx, ecx
shl ebx, 0x14
and ecx, ebx
shl edi, 0x1d
shl edi, 3
sub edx, ecx
add edi, 0xe3cd8e39
neg ecx
rol ebx, 0x12
and ebx, 0xe3cdf001
sub edi, edx
and ecx, edi
or ecx, ebx
jmp 0xa22bd4
inc dword [esp + 0x54]
neg ecx
ror ecx, 5
bswap ebx
sub ecx, edi
and ebx, edx
xor ecx, ebx
xor edi, edx
and edi, 0xe3d09817
rol ecx, 0xc
and edx, edi
sub edx, ebx
mov ecx, edx
jmp 0xa243f9
add esi, dword [esp + 0x8c]
xor ecx, edx
add ebx, edi
xor edx, ecx
xor edx, 0xe3d563cb
xor edx, edi
add ecx, edx
dec edi
or edx, 0xe3d5e077
jmp 0xa23650
mul esi
and ebx, edx
not ebx
dec edx
mov edx, 0xe3d66f59
xchg ecx, ebx
shl edx, 6
xchg edi, edx
and edi, 0xe3d6f6b5
or ebx, edi
or edi, ecx
nop
sub ecx, edx
jmp 0xa22bb3
sub dword [esp + 0x78], 8
mov ebx, ecx
sub edx, ecx
or ebx, edx
shl edi, 0xf
mov ecx, 0xe3d97f6b
sub edx, ecx
add edi, 0xe3d9be97
and edi, ecx
or ecx, ebx
and ecx, edx
jmp 0xa22892
mov dword [esp + 0x78], esi
not edi
shr edx, 0x1a
not ecx
or edx, edi
mov ebx, 0xe3df0cdf
xor edi, edx
sub ecx, edx
inc edx
or edi, ecx
and ecx, ebx
dec edx
add edx, ecx
and edx, ecx
rol edi, 7
jmp 0xa22b89
mov esi, dword [esp + 0x78]
sub ecx, edi
and edi, ecx
and edx, 0xe3e438f9
or edx, ebx
sub edi, edx
rol edi, 0xe
ror edx, 2
xor ecx, edi
or ecx, edx
add edx, 0xe3e523a7
and ebx, ecx
neg edi
jmp 0xa23acd
add esp, 0xa4
and edx, 0xe3e591b1
rol ebx, 0x18
sub edx, ecx
sub edx, ecx
mov ebx, edx
neg ecx
sub ecx, edx
ror ecx, 0xb
jmp 0xa24cd7
inc esi
rol ebx, 0x11
xchg ebx, edi
mov edi, ecx
shr ecx, 0xc
sub ebx, edx
dec ebx
xchg edx, ecx
inc ebx
sub edi, ecx
and ecx, edx
jmp 0xa22d2c
mov dword [esp + 0x78], 0
mov ebx, edi
sub ebx, edi
ror edx, 0x16
xor edi, ecx
inc ecx
sub edi, ebx
rol edi, 0x1d
add ecx, ebx
mov ebx, edx
and edx, ebx
or edi, 0xe3f3d95f
xor edi, 0xe3f3f821
jmp 0xa22fd1
mov esi, dword [esi]
xor edx, ebx
sub ebx, edi
add ecx, 0xe3fb4ce5
mov ecx, edx
jmp 0xa245c8