Function at 0x476544
Capabilities:
Encrypt data using chaskey

Disassembly:
add dword [esp + 0xa4], eax
xor ecx, esi
xor ecx, esi
ror edx, 0x1d
neg ecx
or esi, edx
xchg edx, edi
mov edi, esi
jmp 0x4771e4
add ebx, dword [esp + 0xb4]
and esi, 0xc109bb29
and ecx, edi
mov edi, esi
xor ecx, esi
mov edx, esi
add esi, ecx
rol edi, 6
and edi, edx
and esi, edx
jmp 0x4751f0
mov eax, 4
ror ecx, 0xb
dec esi
inc esi
mov esi, ecx
jmp 0x476f7b
mul ebx
sub esi, ecx
or edx, edi
ror ecx, 0xb
ror edi, 0x15
xor esi, edi
or esi, 0xc1134249
and edx, ecx
bswap esi
and edi, ecx
add ecx, edx
add esi, 0xc1143a15
jmp 0x477072
add ebx, dword [esp + 0xa4]
xor edi, esi
or esi, ecx
xor esi, edx
or edi, ecx
xchg ecx, edi
or ecx, 0xc1285705
mov esi, edi
sub edi, esi
not esi
sub edx, ecx
mov edi, 0xc1294366
jmp 0x476247
mov ebx, dword fs:[ebx]
inc ecx
xor esi, edx
shl esi, 8
or edx, edi
xchg ecx, esi
xor edx, 0xc12c5b4e
shl ecx, 0x19
mov edx, 0xc12d2472
xor edx, edi
xchg ecx, edx
rol ecx, 2
add esi, 0xc12e3f05
or edi, 0xc12e6821
jmp 0x475912
inc ebx
shl esi, 0x1c
xchg edx, edi
mov edx, edi
mov edi, ecx
and edi, ecx
xor edx, edi
jmp 0x475d1d
mov dword [esp + 0x40], ebx
and ecx, edx
mov edx, esi
add ecx, esi
mov edx, esi
bswap esi
dec ecx
and ecx, edi
and edi, 0xc15f43b3
not ecx
shr ecx, 0x19
or edi, ecx
not ecx
add edx, ecx
mov edx, ecx
add edx, ecx
jmp 0x4761c3
mov ebx, dword [esp + 0x80]
xchg ecx, esi
and edx, edi
and edx, ecx
shr ecx, 5
mov edx, esi
add esi, 0xc174e347
xchg ecx, edx
add esi, edi
bswap edx
xor edi, 0xc1759dde
mov edx, edi
bswap esi
jmp 0x476b23
add dword [esp + 0x40], 4
bswap edi
or esi, 0xc17667d0
bswap ecx
or esi, 0xc176e64b
ror edi, 0xb
sub edx, edi
mov esi, edx
add ecx, edx
mov edx, ecx
rol edi, 0x15
add esi, edi
shr edx, 0x10
ror edi, 0x11
xchg ecx, edx
jmp 0x477a7f
mov ebx, dword [ebx]
and ecx, edi
shr edx, 4
mov edi, ecx
mov edx, edi
or esi, 0xc18f4db2
inc ecx
or esi, edx
sub edx, esi
jmp 0x476f0c
mov dword [esp + 0xa4], ebx
or ecx, edx
add esi, edi
and ecx, 0xc19165d3
xchg ecx, esi
bswap esi
not edx
xor edi, 0xc19215d7
xchg edi, esi
jmp 0x4766d8
mov ebx, dword [esp + 0x40]
or esi, ecx
and esi, edx
inc esi
xor esi, edx
inc edx
or ecx, edi
and esi, 0xc19383d9
sub edi, esi
xchg ecx, edi
sub edx, esi
or ecx, edx
jmp 0x4751b8
add ebx, 0x18
shl edi, 1
dec esi
xchg esi, edx
not edx
mov edx, edi
xor esi, ecx
or ecx, edx
shl esi, 0xa
add edi, edx
xor ecx, esi
dec edx
or ecx, 0xc1a6db33
shr edi, 0x13
and edi, 0xc1a75336
jmp 0x4779b4
add ebx, 0xc
ror edi, 0x19
sub edx, 0xc1d63a0d
or edx, esi
shr edx, 9
rol ecx, 0x12
rol edi, 0x10
and esi, edi
mov edx, ecx
rol edi, 0xc
shl esi, 0x17
sub edi, edx
jmp 0x475bcf
add dword [esp + 0xa4], 4
sub esi, ecx
sub esi, edi
mov edx, ecx
neg edi
bswap esi
add edx, esi
mov ecx, edi
sub edi, esi
and esi, edi
dec edi
sub esi, edx
or edi, 0xc211ff74
add ecx, edi
xor esi, 0xc2124e77
sub edi, 0xc2127724
xor esi, edi
jmp 0x476fbf
sub dword [esp + 0xa4], 8
and edx, esi
dec edi
xor edx, esi
xchg esi, edi
sub edi, 0xc217f900
jmp 0x476726
mov ebx, dword [esp + 0xa4]
mov edi, ecx
sub edx, 0xc21857c8
xor esi, edi
shl esi, 8
jmp 0x476576
mov ebx, dword [ebx]
not ecx
xor edx, 0xc2205a0c
or edx, 0xc220831a
or esi, edx
inc esi
ror esi, 3
or ecx, edi
xor edx, 0xc2217d21
jmp 0x475c72
push ebx
neg edi
xor esi, 0xc2220597
and edi, 0xc2222ea7
mov edi, edx
inc edi
sub edi, esi
and ecx, 0xc222d887
rol edx, 0x1b
xor esi, 0xc2232bec
and esi, edi
xchg edi, edx
jmp 0x4762be
add ebx, 0xc
mov esi, edi
shl ecx, 3
and edx, edi
dec edx
sub ecx, edi
and edi, edx
add ecx, 0xc228e3d2
mov esi, edi
jmp 0x475d3d
add ebx, 0x3c
nop
xor esi, edx
or edi, esi
sub edx, esi
or ecx, esi
and esi, 0xc230debb
mov edi, 0xc231305d
and edx, edi
bswap ecx
jmp 0x476564
cmp byte [ebx], 0
jmp 0x476db9
mov ebx, dword [ebx]
xchg edx, ecx
nop
sub edx, 0xc2336629
mov esi, ecx
or ecx, edi
and edx, esi
or esi, 0xc2342614
shr esi, 0x10
jmp 0x4760f7
mov ebx, dword [ebx]
and edi, edx
or edi, ecx
add ecx, edi
not edi
add esi, 0xc23ae39c
add esi, edi
or ecx, esi
jmp 0x4764c0
mov ebx, dword [ebx]
bswap edi
mov ecx, 0xc25a6aba
or ecx, 0xc25a9edf
add ecx, edx
or edx, 0xc25af06e
jmp 0x476a7f
mov dword [esp + 0xa4], ebx
and edi, esi
not edi
sub edx, 0xc269c0a6
add edi, 0xc26a1c63
or esi, edi
inc edx
mov ecx, edi
inc ecx
and esi, ecx
jmp 0x47571e
mov ebx, dword [ebx]
or edx, edi
xchg edx, edi
sub ecx, edi
or edi, ecx
xchg ecx, edi
xor esi, edx
mov esi, 0xc270b8eb
bswap edx
inc edi
sub ecx, esi
or edi, esi
or ecx, 0xc271a7ae
mov edi, 0xc271e424
shl edi, 0x1e
add edi, edx
or edi, edx
jmp 0x47632b
mov dword [esp + 0x80], ebx
ror edx, 0x15
mov edx, edi
xor ecx, edx
add ecx, edx
sub esi, ecx
or ecx, esi
sub edi, edx
xchg ecx, edi
mov esi, edi
xchg esi, edi
add esi, 0xc27d4cff
or ecx, 0xc27d7842
jmp 0x477443
mov eax, 2
sub edx, ecx
dec ecx
not edx
add ecx, esi
shr ecx, 0x1c
not ecx
or edi, edx
jmp 0x4766ba
mov ebx, dword [ebx]
xor esi, 0xc294cda9
add edi, 0xc294ff93
or esi, 0xc2952827
xor ecx, esi
and edx, 0xc2958e6e
jmp 0x4769e8
xor eax, eax
and edi, ecx
neg esi
not esi
not edx
mov ecx, esi
mov esi, edi
inc edx
mov esi, ecx
sub esi, ecx
mov ecx, 0xc29be21b
jmp 0x476a35
inc dword [esp + 0xb4]
sub edi, edx
mov ecx, esi
sub edx, edi
inc edi
and esi, 0xc29fa192
mov esi, edx
xor esi, ecx
xor edi, 0xc2a01b48
add edi, 0xc2a05b3c
add ecx, esi
jmp 0x475603
mov ebx, dword [ebx]
mov edi, 0xc2a0bbb8
add esi, edx
xchg edi, esi
xor edi, edx
add edi, ecx
inc edx
and esi, edx
xor ecx, edi
bswap ecx
jmp 0x475858
add ebx, dword [esp + 0x80]
inc ecx
add edi, edx
jmp 0x47553c
mov dword [esp + 0xa4], 0
sub esi, ecx
dec edx
mov ecx, esi
sub edx, edi
jmp 0x476dd9
sub esp, 0x138
add ecx, esi
rol esi, 8
sub esi, ecx
add edx, 0xc2bd6886
not edi
shl edi, 7
sub edi, ecx
inc ecx
jmp 0x476eec
mov ebx, dword [ebx]
add edx, 0xc2be439d
dec esi
xchg edi, ecx
add edx, esi
jmp 0x4756fa
mov ebx, dword [ebx]
mov edi, ecx
shl esi, 0x18
and ecx, edx
rol edi, 3
jmp 0x47732c
rol eax, 8
xchg esi, edx
shl edx, 0x1b
sub ecx, esi
neg edi
add edi, ecx
jmp 0x4754f0
mov ebx, dword [esp + 0xb4]
or edi, ecx
xchg ecx, edx
and ecx, edx
neg ecx
or esi, edi
mov edi, esi
mov esi, edx
and edi, edx
not ecx
jmp 0x475265
add dword [esp + 0xa4], 0x78
or esi, 0xc2d454fa
or esi, edi
or edx, esi
add ecx, edi
mov esi, edx
and ecx, edx
and edx, ecx
or edi, ecx
add edi, 0xc2d63004
shl ecx, 7
xchg ecx, edx
mov edi, esi
xchg esi, edx
or esi, ecx
sub edx, ecx
and esi, edi
jmp 0x476933
mov ebx, dword [esp + 0xa4]
ror edi, 2
xchg edi, esi
and esi, 0xc2dfe311
neg edi
bswap esi
and edx, edi
mov edx, esi
bswap esi
mov edx, edi
and edx, esi
mov edi, edx
sub ecx, esi
shr edx, 0x19
jmp 0x475f86
cmp eax, dword [esp + 0x98]
jmp 0x476b9c
mov ebx, dword [esp + 0x80]
sub esi, ecx
or esi, edx
inc ecx
sub esi, edx
xor ecx, edx
nop
bswap esi
shl esi, 5
and esi, edx
ror ecx, 0xb
and ecx, 0xc2ff1806
ror edx, 0x1c
sub esi, ecx
dec ecx
jmp 0x475325
mov ebx, dword [ebx]
rol edx, 0x1c
xor edi, 0xc3001937
and esi, edx
ror ecx, 0x1f
xchg edi, ecx
and edx, edi
inc edx
or esi, 0xc30133c0
or edi, esi
or esi, 0xc3018c4f
add edx, ecx
ror edi, 0xe
jmp 0x47776f
mov dword [esp + 0xa4], ebx
or ecx, 0xc3064dc3
shl ecx, 9
mov esi, ecx
or ecx, edi
xchg edx, edi
bswap ecx
add esi, ecx
and edi, 0xc3078100
jmp 0x4755d6
xor al, byte [ebx]
sub ecx, edi
and edx, esi
shl ecx, 0x19
add esi, edi
or ecx, esi
add edi, edx
jmp 0x476697
add ebx, dword [esp + 0x80]
xchg edi, ecx
xor edx, 0xc30ed7d6
xchg ecx, esi
xchg ecx, esi
jmp 0x476093
ret
add dword [esp + 0xa4], ebx
xor edi, ecx
sub edi, esi
sub esi, 0xc326226c
xor ecx, edx
mov edx, esi
mov ecx, 0xc326c6f3
xor esi, edx
jmp 0x476b69
add dword [esp + 0xa4], 0x20
shl edx, 0xd
xor edi, 0xc33f558f
mov edx, ecx
add esi, 0xc33fc9d9
jmp 0x475b17
jne 0x476300
xor edi, ecx
or esi, 0xc3412e95
sub ecx, edx
xor esi, ecx
dec ecx
or ecx, 0xc341e6cc
and edi, edx
or esi, 0xc3423ce8
sub esi, 0xc34268a5
xchg ecx, edi
and edx, 0xc342d260
jmp 0x475a65
mov ebx, 0x30
and edx, esi
add edx, edi
neg edi
mov ecx, esi
rol ecx, 6
jmp 0x47536b
mov dword [esp + 0x40], ebx
and ecx, edx
nop
dec edi
add esi, edi
or edi, edx
mov esi, edx
mov edi, 0xc35c7457
or edx, esi
shr edi, 0x15
and ecx, edi
xor ecx, esi
and edi, 0xc35d3ebd
dec ecx
jmp 0x476300
jne 0x476a35
mov edi, ecx
mov edi, edx
mov edx, 0xc35dec56
xor ecx, edx
or ecx, edx
add edx, edi
not edx
add esi, edx
and esi, ecx
jmp 0x476f49
mov dword [esp + 0x98], ebx
rol edi, 0x1b
sub esi, edx
xchg esi, edx
sub esi, edx
sub esi, 0xc360ac94
and edi, esi
or ecx, edi
add esi, edx
neg esi
inc edx
jmp 0x476c8a
mov dword [esp + 0xb4], 0
and edi, esi
mov ecx, edx
not edx
not edi
sub esi, 0xc37804a0
add edx, esi
jmp 0x477465
add ebx, dword [esp + 0x80]
ror edx, 0x1f
xor esi, ecx
sub ecx, edx
add esi, edx
and edx, ecx
and ecx, edi
dec edx
jmp 0x4773be
pop ebx
not ecx
xchg ecx, edx
add edx, ecx
bswap esi
nop
and ecx, 0xc37c50e5
jmp 0x4768a9
movzx ebx, word [ebx]
or esi, edx
and esi, edx
not ecx
inc esi
add edx, ecx
bswap edx
inc edi
inc edx
mov edx, ecx
sub edi, edx
mov ecx, edi
jmp 0x4771a7
mov ebx, dword [esp + 0xa4]
or esi, ecx
xchg esi, edx
or edx, esi
xor esi, 0xc3830970
jmp 0x475dca
mov dword [esp + 0xb4], eax
add edi, 0xc3991ee8
sub edi, esi
and edx, edi
or esi, 0xc3999b4c
bswap esi
mov ecx, edi
sub edx, 0xc39a2262
and ecx, 0xc39a4d0d
not ecx
jmp 0x475afd
mul ebx
or esi, edi
xchg ecx, esi
add esi, ecx
xor edx, esi
bswap ecx
mov esi, 0xc3a94956
or edi, ecx
jmp 0x475173
mov ebx, dword [esp + 0xa4]
ror edi, 1
xor edx, esi
or esi, ecx
neg esi
or edi, esi
neg ecx
not ecx
and edi, esi
add edi, esi
neg edi
dec edi
jmp 0x4756c1
add ebx, dword [esp + 0x80]
add ecx, 0xc3c1b5ff
xor edi, esi
shl edx, 0x15
or esi, 0xc3c22f9d
and ecx, esi
add edx, 0xc3c293b2
add esi, edx
and ecx, edi
mov edi, 0xc3c3275b
jmp 0x476d8e
add esp, 0x138
or edi, 0xc3c7f4bd
sub edi, esi
mov edi, esi
inc edx
xchg edx, esi
dec edi
mov ecx, esi
neg edx
shl ecx, 8
or edi, ecx
sub esi, 0xc3ca0bda
or edx, edi
and edx, ecx
jmp 0x476acf
mov ebx, dword [esp + 0x80]
xor esi, 0xc3cfb3c8
and edx, ecx
and esi, edi
sub esi, ecx
xchg ecx, edx
add esi, ecx
and ecx, edx
or edi, esi
and edx, esi
jmp 0x475cfd
mov dword [esp + 0x40], 0
shr esi, 0x1e
mov ecx, esi
and edx, esi
not ecx
xchg edi, edx
sub esi, ecx
dec edi
mov edx, 0xc3d24965
xor esi, edi
xchg ecx, edx
or ecx, edx
sub ecx, esi
neg edx
or esi, edx
jmp 0x4778e2
add ebx, dword [esp + 0x80]
xchg esi, edx
xor esi, edx
mov esi, 0xc424d358
add edx, esi
xor edi, edx
mov esi, 0xc4257890
xchg esi, edx
sub edx, ecx
sub ecx, 0xc426267c
shr ecx, 4
and esi, ecx
xchg edi, ecx
neg edx
jmp 0x475bf2
mov dword [esp + 0x80], 0
bswap edx
sub esi, 0xc439221d
add esi, edi
add ecx, esi
xchg ecx, esi
add edi, esi
or edx, ecx
add esi, ecx
add ecx, edi
and esi, edi
jmp 0x476516
mov ebx, dword [ebx]
xor edi, edx
xchg ecx, esi
and edi, esi
rol edi, 0x1f
ror ecx, 2
mov edi, edx
mov edi, 0xc44589d7
shl ecx, 8
xchg ecx, edi
mov edi, 0xc4461d9d
jmp 0x476156
mov ebx, dword [esp + 0x40]
xor edx, ecx
xchg edi, ecx
bswap edi
mov ecx, edi
and edx, ecx
sub ecx, 0xc45216e5
or edx, 0xc452402f
dec esi
or edx, esi
jmp 0x47695f