Function at 0x476974
Capabilities:
Encrypt data using chaskey

Disassembly:
add esp, 0x8c
dec ecx
mov ebx, edx
bswap ebx
xor ecx, 0x46ebe2a7
shr esi, 0x1d
add ebx, ecx
sub ecx, esi
add ebx, ecx
and edx, 0x46ed1297
xchg esi, edx
jmp 0x47464b
add edi, 0xc
and edx, ebx
xor ebx, ecx
not ebx
mov ecx, 0x47036397
xor edx, 0x47039e13
neg ebx
add ecx, edx
xor ecx, 0x47045009
xor ecx, ebx
mov ecx, edx
neg esi
or esi, ebx
jmp 0x474226
add edi, dword [esp + 0x78]
and edx, 0x47059b81
add esi, 0x4705d897
xor ecx, ebx
neg edx
mov edx, ebx
xchg edx, ebx
and edx, ecx
or esi, ecx
inc esi
and esi, ebx
shl edx, 0x12
mov esi, 0x470834d9
add ebx, esi
inc ecx
jmp 0x47533e
mov edi, dword fs:[edi]
ror edx, 0x11
not ecx
add esi, 0x470981f1
mov edx, ecx
jmp 0x474122
mov edi, dword [esp + 0x3c]
neg ebx
xor esi, 0x470a48cd
xor ecx, ebx
or ecx, ebx
mov esi, ebx
sub ecx, 0x470b3143
dec esi
rol ebx, 0x17
xor esi, ecx
mov ebx, 0x470c30d7
and ecx, esi
or ecx, edx
and ecx, esi
or ebx, ecx
jmp 0x4750de
mov edi, dword [esp + 0x78]
neg edx
sub ebx, 0x470ec7c7
add esi, 0x470f061b
add ebx, edx
add ebx, ecx
sub edx, esi
shr ebx, 4
and edx, esi
mov edx, esi
add ebx, ecx
jmp 0x475fdd
add edi, dword [esp + 0x48]
xchg edx, esi
mov edx, ecx
shl ecx, 3
mov ecx, ebx
add esi, edx
shl ecx, 6
bswap esi
xchg edx, esi
and edx, esi
xor edx, ecx
jmp 0x476478
mov edi, dword [edi]
xchg esi, edx
rol ecx, 0x1a
sub ebx, esi
xor esi, 0x4714292b
and esi, ebx
or ebx, ecx
mov edx, ecx
mov esi, 0x471512e7
mov esi, ebx
shr esi, 4
jmp 0x476cec
add dword [esp + 0x3c], 4
xor ecx, 0x4720ddb3
shl ecx, 0x10
xchg esi, edx
sub esi, 0x47218f53
bswap edx
xchg ecx, esi
and ebx, edx
or esi, ebx
rol ebx, 0xb
add ecx, edx
shl esi, 0x18
and esi, edx
jmp 0x475476
inc dword [esp + 0x60]
or ebx, esi
or esi, ebx
mov ecx, edx
or ecx, edx
add ecx, ebx
and ebx, ecx
or ebx, 0x47252ced
xor ecx, esi
and esi, ecx
xor esi, edx
jmp 0x4742eb
add dword [esp + 0x48], 0x20
or esi, edx
rol ecx, 0x19
add ebx, ecx
xchg edx, ecx
sub ebx, esi
or ecx, 0x4737cc27
or ecx, esi
or ecx, ebx
shr esi, 0x1e
or esi, ecx
jmp 0x475f0d
mov dword [esp + 0x58], edi
xchg edx, esi
neg ecx
bswap ebx
and edx, ebx
inc ebx
inc ebx
and edx, 0x4748af5b
not esi
and ecx, esi
mov edx, esi
jmp 0x47529a
mov edi, dword [edi]
add ecx, ebx
mov ecx, ebx
or esi, ecx
xor ebx, esi
bswap edx
sub esi, ecx
add esi, ebx
xchg esi, edx
jmp 0x4749e0
mov dword [esp + 0x78], edi
sub ecx, esi
dec ebx
shr ebx, 6
inc ebx
shr edx, 0x1f
and ecx, ebx
add ebx, edx
or ebx, edx
jmp 0x4741db
mov edi, dword [esp + 0x48]
xchg ebx, ecx
dec edx
ror ebx, 0x14
xchg ebx, edx
jmp 0x4764c8
ret
mov edi, dword [edi]
mov edx, 0x4799f443
not ecx
xor edx, 0x479a6d03
ror edx, 0xc
sub edx, ebx
or ebx, ecx
or ecx, edx
add ecx, 0x479ba1fd
sub esi, ecx
xor esi, ecx
jmp 0x475167
jne 0x47431b
neg ecx
or esi, edx
xchg ebx, esi
shl ecx, 0x1c
mov edx, 0x479f522d
not ebx
sub edx, esi
add esi, ebx
ror ecx, 0x1e
xchg esi, ecx
jmp 0x476915
add edi, dword [esp + 0x78]
mov esi, ebx
shl ebx, 0xc
add edx, ebx
sub esi, 0x47ae185d
xchg ebx, edx
xchg ebx, edx
xchg ebx, edx
and ebx, 0x47af158b
or ecx, edx
mov esi, edx
jmp 0x47549a
cmp byte [edi], 0
jmp 0x476274
mov dword [esp + 0x3c], edi
sub esi, 0x47bda6eb
sub edx, ebx
mov esi, ebx
sub ecx, ebx
mov ecx, edx
or edx, esi
and edx, ecx
sub ecx, edx
not ebx
and esi, 0x47bfc249
add ebx, ecx
mov esi, ecx
sub ebx, esi
dec edx
or ebx, edx
or esi, edx
jmp 0x47431b
mov edi, dword [edi]
rol ebx, 0x1d
shl ecx, 2
bswap ebx
shl esi, 2
and ebx, edx
mov ecx, ebx
xchg edx, ecx
or edx, 0x47c31cc9
xor edx, esi
mov ebx, ecx
jmp 0x474e51
cmp eax, dword [esp + 0x58]
jmp 0x474a22
mov edi, dword [esp + 0x48]
and ecx, 0x47e9d68d
and ecx, 0x47ea110f
or edx, ebx
xor ecx, edx
xchg edx, ecx
add edx, ecx
or ebx, edx
rol esi, 1
mov ebx, ecx
mov edx, ecx
jmp 0x474e28
mov edi, dword [edi]
and edx, ecx
and edx, 0x47f10a93
shl ebx, 0xd
xor edx, esi
shl ecx, 0x15
not ecx
xchg ebx, ecx
and edx, ecx
not ecx
bswap ebx
xchg edx, esi
sub edx, ecx
mov edx, ecx
xchg edx, esi
jmp 0x476b24
add edi, dword [esp + 0x78]
xchg ecx, ebx
xchg ecx, ebx
xchg ecx, edx
dec ebx
xchg ebx, edx
add ebx, esi
jmp 0x475723
mov edi, dword [edi]
and edx, ecx
add edx, ebx
or ecx, edx
add ebx, ecx
xchg edx, esi
sub ebx, 0x47fc5a79
xchg edx, esi
shr ebx, 0x1a
and ebx, 0x47fd1d9b
xor edx, esi
mov ebx, esi
sub esi, 0x47fdcced
mov ebx, edx
sub edx, 0x47fe412b
jmp 0x474af5
inc edi
and esi, ebx
sub ecx, ebx
add edx, ebx
add esi, ecx
mov edx, ecx
xor esi, ecx
not edx
and edx, ebx
and ecx, ebx
ror edx, 0x15
xchg ecx, edx
add ebx, ecx
jmp 0x474ba3
mov edi, dword [edi]
or ecx, 0x480b4d1d
or esi, ecx
xor esi, ebx
xchg ebx, esi
or edx, ecx
sub ecx, 0x480c75c5
xor ecx, 0x480cc1ef
add edx, esi
rol edx, 0x1f
ror ebx, 0xc
xchg edx, ebx
ror esi, 0x1b
and ebx, edx
xchg esi, ebx
jmp 0x47544d
add edi, 0x18
sub esi, 0x481e410d
rol edx, 0xc
xor edx, esi
shr edx, 2
add esi, 0x481f51b3
sub edx, 0x481f91f7
ror esi, 0x1d
sub edx, ebx
jmp 0x47524e
add edi, dword [esp + 0x60]
shr edx, 0x17
or esi, edx
mov ebx, edx
shl ecx, 0x19
ror ecx, 8
add edx, ecx
and ebx, 0x48249753
and ebx, edx
xchg edx, ebx
or edx, ebx
mov ecx, 0x482591cd
xchg ebx, ecx
jmp 0x476368
mov edi, dword [edi]
xor ebx, ecx
xor ebx, ecx
add esi, ecx
add ebx, esi
jmp 0x475092
mov edi, dword [edi]
rol ecx, 0xa
neg esi
dec esi
and ecx, edx
mov ebx, ecx
and ebx, 0x483f121d
neg ebx
or ebx, edx
sub ecx, edx
ror esi, 0x1d
jmp 0x4745d0
mov edi, 0x30
xchg ebx, esi
bswap ebx
xor ecx, ebx
xor esi, edx
or ecx, ebx
rol esi, 0x10
rol ecx, 2
neg esi
inc esi
and edx, 0x4844ecfb
and esi, 0x48452ccd
sub ebx, ecx
jmp 0x47417f
add dword [esp + 0x48], edi
ror edx, 4
and ecx, esi
add ecx, esi
sub edx, 0x48467bd1
ror ecx, 0x16
shl esi, 0x13
and ecx, ebx
mov edx, ecx
jmp 0x47443e
mov dword [esp + 0x48], edi
dec ecx
rol edx, 0x1b
mov ebx, ecx
sub esi, ecx
xchg edx, ebx
xor edx, 0x48518427
rol esi, 0xa
bswap ecx
mov esi, ebx
dec esi
mov ecx, edx
sub ebx, 0x48531181
jmp 0x474194
mov dword [esp + 0x48], edi
or ecx, 0x486406f3
add ebx, esi
shl ebx, 0x14
sub ebx, ecx
and esi, ecx
and ebx, ecx
xor esi, ecx
xchg esi, ecx
or ebx, 0x4866067d
neg edx
jmp 0x47574b
mov edi, dword [esp + 0x3c]
mov esi, edx
xor ebx, ecx
or edx, esi
or esi, ebx
xor edx, ebx
bswap ecx
and ebx, esi
mov ebx, edx
and edx, esi
mov esi, edx
mov edx, ebx
xchg ebx, edx
jmp 0x474c29
mov dword [esp + 0x3c], edi
nop
xchg ebx, edx
inc esi
xchg ecx, edx
not ebx
add ebx, esi
sub ecx, ebx
not ebx
jmp 0x4755f0
mov eax, 2
neg ecx
sub esi, edx
xor ebx, edx
mov esi, ecx
rol esi, 0x17
ror ecx, 8
and ebx, esi
or ebx, ecx
shl ecx, 0x11
sub edx, esi
jmp 0x4763af
push edi
inc edx
mov ebx, edx
and ebx, edx
sub ecx, esi
sub edx, 0x489dc6d9
xor esi, 0x489e060f
neg ebx
xor edx, ecx
sub edx, ecx
mov edx, 0x489f1375
mov ebx, edx
xor ebx, ecx
jmp 0x47582a
add dword [esp + 0x48], 0x78
shl ecx, 0xb
inc ebx
or esi, edx
or ecx, esi
mov ecx, 0x48a20c77
or ebx, ecx
add esi, 0x48a2f841
sub esi, ecx
and edx, 0x48a38b65
or edx, ecx
jmp 0x4758fe
add dword [esp + 0x48], eax
mov ebx, 0x48a786cf
and edx, 0x48a7c6d1
xor ebx, edx
mov edx, esi
or ebx, 0x48a881e3
xor esi, 0x48a8c11d
add edx, ecx
shr esi, 0x1d
jmp 0x474dc3
xor eax, eax
or esi, ebx
sub ebx, ecx
or esi, 0x48b00c95
xchg ecx, esi
shr ebx, 7
mov edx, 0x48b0caef
rol esi, 0x12
and edx, 0x48b15a2f
dec ebx
shr ecx, 2
or esi, 0x48b21a75
and esi, ebx
jmp 0x475fb6
sub dword [esp + 0x48], 8
shl edx, 0x10
or esi, ecx
shl esi, 0x1a
shl ebx, 0xd
add esi, ecx
shr esi, 0x1c
mov ecx, ebx
shl esi, 0x1c
and ecx, esi
add esi, edx
inc ebx
dec edx
jmp 0x474604
mov edi, dword [esp + 0x78]
and ecx, 0x48be49ff
and ebx, ecx
xor esi, ecx
add ebx, 0x48bf03ab
dec ecx
xchg ebx, ecx
shr edx, 0x17
xchg edx, ecx
jmp 0x474204
mov edi, dword [edi]
or ebx, edx
mov esi, edx
or esi, edx
shr esi, 6
bswap ecx
add ebx, edx
sub esi, edx
sub edx, ecx
and ebx, edx
sub ecx, edx
and ebx, 0x48c729cb
and ebx, edx
jmp 0x475e28
movzx edi, word [edi]
not ebx
sub ebx, ecx
xchg esi, edx
or ecx, edx
add ecx, esi
sub ebx, esi
neg edx
inc edx
bswap esi
sub edx, ebx
mov esi, ecx
sub esi, ebx
jmp 0x4760c8
mov dword [esp + 0x3c], 0
sub edx, ebx
not ecx
rol ecx, 0xc
shr ecx, 0x16
add ebx, ecx
mov ebx, 0x48f1b35b
or ebx, ecx
xchg ebx, edx
add ebx, ecx
xchg edx, ebx
jmp 0x476bd5
mov dword [esp + 0x48], edi
or edx, ecx
shl esi, 5
sub esi, ecx
and edx, esi
xor ebx, edx
dec ecx
xchg ebx, esi
rol edx, 0x15
add edx, esi
sub ebx, edx
ror edx, 0x16
sub ebx, ecx
jmp 0x475bb3
mov edi, dword [esp + 0x78]
xchg esi, ecx
shr edx, 0x1d
and ebx, ecx
or ecx, esi
xchg esi, ecx
sub ecx, esi
jmp 0x4752c5
mul edi
inc esi
ror edx, 5
neg edx
xor esi, edx
jmp 0x47649c
add edi, dword [esp + 0x78]
and ecx, edx
not ecx
rol ecx, 0x13
shl esi, 7
add esi, ebx
bswap ecx
or ecx, 0x492d39b7
xor ebx, edx
or ecx, 0x492dae53
or edx, 0x492dea3b
xchg edx, ecx
sub edx, esi
and edx, 0x492e9a71
xor ecx, ebx
jmp 0x474bf6
mov edi, dword [esp + 0x48]
sub ecx, 0x493cd287
inc ecx
bswap ebx
nop
sub edx, ecx
and ebx, 0x493e106b
add ebx, 0x493e50ef
neg edx
or edx, 0x493ee121
sub ecx, esi
shl ebx, 6
and edx, 0x493f9f53
add ecx, ebx
or edx, esi
jmp 0x475954
xor al, byte [edi]
or ebx, edx
xor ebx, 0x494913d3
and ebx, 0x494968af
or ecx, esi
or ebx, edx
xor ebx, ecx
add ecx, esi
xor esi, ecx
sub esi, edx
and edx, ecx
mov edx, ebx
mov ecx, esi
jmp 0x47665c
add edi, 0x3c
sub esi, 0x494cc033
neg edx
shr esi, 0x13
inc esi
sub esi, ecx
add esi, ecx
add ebx, esi
and esi, ecx
and esi, edx
not esi
jmp 0x474f95
mul edi
and esi, edx
dec edx
xchg ebx, ecx
add edx, 0x4960eccb
xchg edx, ebx
shl edx, 0x10
shr edx, 0x18
or edx, 0x4961ece3
mov ecx, edx
shl ebx, 3
xchg ecx, edx
rol esi, 7
or ebx, esi
shr edx, 0x1a
jmp 0x4757a2
mov edi, dword [esp + 0x48]
xchg ecx, esi
mov edx, 0x497a7b8b
add edx, ecx
or ebx, edx
mov ecx, edx
and edx, ebx
mov esi, 0x497bbe01
shl ecx, 0x1a
or ecx, 0x497c3ebb
xchg esi, ecx
jmp 0x474ebd
jne 0x475fb6
mov edx, esi
nop
rol edx, 7
and ecx, ebx
xchg edx, esi
not ebx
and ebx, ecx
or ecx, ebx
jmp 0x47633d
pop edi
or ebx, ecx
neg edx
add esi, 0x4990e05f
mov ebx, ecx
mov esi, ecx
xor esi, ecx
xor ecx, ebx
mov ebx, ecx
rol ecx, 0xb
xor edx, esi
sub ebx, edx
xor ebx, esi
sub ebx, ecx
xor esi, edx
xchg ecx, esi
or ecx, edx
jmp 0x474c93
mov eax, 4
shl esi, 0xa
add esi, ecx
mov ecx, edx
xor esi, edx
xchg esi, edx
xchg edx, ecx
sub ebx, edx
inc esi
mov edx, 0x49967423
sub edx, 0x4996b4f3
add esi, edx
rol edx, 8
jmp 0x47599b
mov edi, dword [esp + 0x60]
xor esi, edx
sub ebx, 0x4999edb7
and esi, 0x499a2d87
xchg esi, edx
dec ecx
shr ebx, 0xd
xchg ebx, edx
shr ecx, 6
shl ecx, 0x1a
xor ecx, 0x499bfc45
or edx, 0x499c3c27
xchg ebx, ecx
xor ebx, ecx
xor ebx, esi
jmp 0x475cc1
mov edi, dword [edi]
add ebx, 0x49a82787
add esi, ecx
neg ebx
ror ebx, 0xb
or ebx, 0x49a9234b
xor ebx, esi
xor esi, edx
xor edx, ecx
mov ebx, edx
xchg esi, ebx
jmp 0x475b63
mov dword [esp + 0x60], eax
add esi, 0x49ab2833
mov esi, ecx
xor ebx, 0x49aba42b
not ebx
and edx, ecx
rol esi, 3
not ebx
mov ebx, 0x49acf339
dec edx
shl esi, 7
jmp 0x47585a
mov edi, dword [edi]
not esi
dec ebx
sub esi, ecx
xchg ebx, edx
not ecx
ror edx, 0x17
or edx, ebx
or ebx, edx
add esi, ebx
xor ecx, esi
xchg ecx, edx
add esi, 0x49b08e47
or edx, esi
xchg esi, edx
sub esi, 0x49b14b93
add edx, esi
jmp 0x47414d
rol eax, 8
bswap esi
xor esi, ecx
ror ebx, 0xd
sub esi, edx
bswap edx
sub esi, edx
jmp 0x474f76
add dword [esp + 0x48], 4
add ecx, 0x4a01c02b
mov esi, 0x4a0200ab
bswap ecx
add ebx, 0x4a02800b
or ebx, esi
mov ecx, esi
add ebx, edx
xor ecx, 0x4a0376fb
xor edx, 0x4a03c723
mov esi, ecx
sub edx, 0x4a04437b
xor esi, 0x4a048377
dec edx
sub ebx, ecx
add edx, ebx
add ebx, ecx
jmp 0x476207
sub esp, 0x8c
sub ebx, edx
shr esi, 0x18
xchg ecx, ebx
mov ecx, edx
mov esi, ecx
bswap ecx
bswap edx
sub edx, ecx
shl ebx, 0x1d
sub esi, 0x4a0a63c3
xchg ebx, esi
not ecx
or ecx, 0x4a0b16a1
xor esi, edx
jmp 0x476da2
add edi, dword [esp + 0x78]
dec edx
sub esi, ebx
add ebx, edx
inc esi
or ebx, ecx
xchg edx, esi
add ebx, esi
and ebx, 0x4a29e583
dec esi
inc esi
mov ecx, 0x4a2ab557
ror ecx, 2
xor ecx, ebx
sub ecx, esi
xchg ebx, edx
mov ebx, edx
jmp 0x473fc8
mov dword [esp + 0x48], 0
sub esi, edx
xor edx, ecx
ror esi, 0x1f
xchg ecx, edx
add edx, ebx
add ecx, edx
xchg ecx, edx
and ecx, ebx
ror ebx, 1
and ebx, ecx
sub esi, edx
ror esi, 0x11
jmp 0x474533
mov dword [esp + 0x78], 0
sub edx, ecx
add edx, esi
dec ecx
or edx, ecx
xor esi, ebx
rol esi, 0x11
shl ebx, 9
ror esi, 0x13
sub ebx, edx
not edx
add edx, 0x4a383323
not edx
jmp 0x476baa
add edi, 0xc
and esi, ebx
or ecx, 0x4a4959c1
mov edx, ebx
sub edx, ebx
xor esi, 0x4a4a079d
or ecx, esi
mov esi, ecx
neg ebx
xor edx, esi
add esi, edx
nop
sub edx, 0x4a4bb1cf
jmp 0x474555
mov dword [esp + 0x60], 0
xchg ebx, esi
or edx, 0x4a555e1b
add esi, edx
not edx
sub esi, edx
sub esi, ecx
add ecx, 0x4a5699c7
add edx, esi
neg esi
sub esi, 0x4a574d15
jmp 0x475b3a