Function at 0x40694c
Capabilities:
Encrypt data using chaskey

Disassembly:
into
or al, byte [esi - 0x3f]
into
adc al, 0x40
push eax
call fcn.00405418
dec ebx
xchg edi, eax
xor esi, 0x4867cc70
add ebx, esi
xchg eax, edx
xor edi, ecx
add edi, dword [0x40bd51]
xchg ecx, esi
inc ecx
not ecx
call fcn.00405815
xor edi, dword [0x40bbbe]
dec eax
neg esi
dec esi
rol esi, 4
xor dword [0x40b444], edi
xor ecx, 0x4ca3de77
inc edi
neg esi
call fcn.004058e1
call fcn.004091e7
neg esi
dec edi
xor ecx, 0x4ca3de77
xor dword [0x40b754], ebx
ror esi, 4
inc esi
neg esi
inc eax
call fcn.00403066
not ecx
dec ecx
xchg ecx, esi
xor edi, ecx
xchg eax, edx
sub ebx, esi
xor esi, 0x4867cc70
xchg edi, eax
inc ebx
call fcn.004060c4
push ebx
or dword [0x40b469], 0x2e766d64
or eax, 0x40b469
insd dword es:[edi], dx
jbe 0x4066cb
xor ecx, 0xa0ca4c20
xor esi, ebp
neg esi
rol ebx, 0xf
mov dword [0x40b705], ebx
neg edx
inc esi
or dword [0x40b429], eax
xor edi, 0xcd98412e
ror eax, 0x1f
inc ebx
or dword [0x40b66f], esi
add dword [0x40b48b], 0x724245a0
not edi
xor eax, 0x5c3381c0
sub edi, 0x664c7d3d
xor dword [0x40b4c0], esi
call fcn.0040863f
sub edi, 0x19937fb9
add edi, 0x19937fb9
call fcn.00406222
add edi, 0x664c7d3d
xor eax, 0x5c3381c0
not edi
sub dword [0x40b5ff], 0x7cf0be3d
mov dword [0x40b4f2], ebx
dec ebx
rol eax, 0x1f
xor edi, 0xcd98412e
and dword [0x40b506], eax
dec esi
neg edx
add dword [0x40b5e4], eax
ror ebx, 0xf
neg esi
xor esi, ebp
xor ecx, 0xa0ca4c20
sub dword [0x40b9cd], 0x7b752981
push esi
neg edx
sub dword [0x40b543], 0xa6afcd43
neg edx
xor edi, dword [0x40bf31]
neg esi
ror ecx, 5
and dword [0x40b52a], edi
xor eax, esp
xchg edx, eax
dec edi
inc edi
xchg edx, eax
xor eax, esp
sub dword [0x40b789], edi
rol ecx, 5
neg esi
neg edx
xor dword [0x40b7b0], 0x1348fc12
neg edx
push edx
xor ebx, esi
ror ebx, 8
inc esi
mov dword [0x40b4dc], edx
xor ebx, dword [0x40bdb3]
xor esi, dword [0x40bb1d]
or dword [0x40b9b4], edx
or esi, dword [0x40bb8d]
sub edx, dword [0x40bb1e]
xor esi, dword [0x40bb19]
neg eax
xchg edi, eax
ror ebx, 0x18
neg ebx
xor edx, esi
xchg ebx, esi
call fcn.00407c04
xor edi, dword [0x40bf28]
call fcn.00407d7a
mov dword [0x40b809], ecx
add dword [0x40b8a9], ecx
xor ecx, dword [0x40bb32]
and dword [0x40b61c], esi
add dword [0x40b4ed], ecx
call fcn.004058e1
call fcn.0040200d
xchg ebx, esi
xor edx, esi
neg ebx
rol ebx, 0x18
xchg edi, eax
neg eax
dec esi
rol ebx, 8
xor ebx, esi
push edi
or dword [0x40b8bd], eax
call fcn.00405379
xchg ebx, esi
or eax, dword [0x40bd82]
xor edx, dword [0x40bb9c]
add edi, 0x44026b96
not ecx
sub ebx, dword [0x40bcc2]
add esi, ebx
xor eax, ebx
xor eax, ebx
sub esi, ebx
not ecx
sub edi, 0x44026b96
xchg ebx, esi
add dword [0x40b773], eax
push ebp
sub esi, ebx
add dword [0x40b68d], edi
and dword [0x40b6a1], ebx
add ecx, dword [0x40bfb0]
xchg ecx, eax
add edx, dword [0x40bd32]
xor ebx, dword [0x40be5c]
and dword [0x40b9ed], esi
ror ebx, 0x16
or dword [0x40b7cb], 0x234cb7a0
add edi, 0x9a74eac0
ror ecx, 0xd
or dword [0x40b94c], ecx
dec ebx
add ecx, 0x8ab86867
dec esi
rol edi, 0x13
xor edi, esp
neg esi
dec eax
xor ecx, dword [0x40bca6]
inc eax
neg esi
xor edi, esp
ror edi, 0x13
inc esi
sub ecx, 0x8ab86867
inc ebx
or dword [0x40b7d1], ebx
rol ecx, 0xd
sub edi, 0x9a74eac0
xor dword [0x40b95f], 0x6d5e7102
rol ebx, 0x16
add dword [0x40b654], eax
xchg ecx, eax
or dword [0x40b62f], esi
add dword [0x40b65d], ecx
add esi, ebx
push esp
xchg edi, edx
xor eax, dword [0x40bf25]
add al, ch
inc ebp
sbb dword [eax], eax
add byte [eax - 0x77], cl
cmp eax, 0x40b7d9
xor dword [0x40b423], ebx
call fcn.00407f64
inc edx
xchg ecx, edx
not ebx
inc esi
sub ebx, 0x7ed7fb5b
dec eax
rol ebx, 0x1d
xor dword [0x40b73d], edx
call fcn.00407c04
or esi, dword [0x40bddb]
sub dword [0x40b67f], 0x196289c2
xor ebx, dword [0x40bc14]
sub dword [0x40b544], ebx
add eax, dword [0x40ba24]
add eax, 0x40ba24
call fcn.004020de
sub dword [0x40b4c9], eax
ror ebx, 0x1d
inc eax
add ebx, 0x7ed7fb5b
dec esi
not ebx
xchg ecx, edx
dec edx
call fcn.0040185e
xor dword [0x40b57f], edx
inc eax
call fcn.00402f27
xchg edi, edx
push ecx
xor edi, 0x6e76af99
mov dword [0x40b594], edi
neg esi
dec edx
xor edx, esi
or dword [0x40b8ff], ecx
sub dword [0x40b6ed], esi
ror ecx, 0x10
inc edi
add ecx, dword [0x40be6d]
not eax
inc edx
dec edx
not eax
dec edi
rol ecx, 0x10
sub dword [0x40b6ca], edx
sub dword [0x40b9e9], esi
xor edx, esi
inc edx
neg esi
sub dword [0x40b708], ecx
xor edi, 0x6e76af99
rol ebx, 0x1d
cmp dword [0x40b128], 0x66d9593
jo 0x4069e3
and esi, 0x8d064cb8
call fcn.0040542b
add ecx, ebx
dec edx
shl ecx, 0x12
or eax, ebp
neg edx
or ebx, 0x8fc1869a
shl edi, 0x10
and ebx, esi
test dword [0x40b18d], edx
jae 0x406a07
not esi
call fcn.00403080
cmp eax, 0x71e6e464
ja 0x406a16
not ecx
call fcn.0040568d