Function at 0x40d609
Capabilities:
Encrypt data using chaskey
Hash data using murmur3

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x134
dec word [0x43a126]
mov ax, word [0x43a126]
movsx ecx, ax
mov eax, dword [0x448bb4]
sub ecx, 0x790b63d7
or ecx, eax
movzx eax, word [0x435eca]
xor eax, ecx
mov word [0x435eca], ax
movzx eax, word [0x43458c]
imul eax, eax, 0x8a2256c5
mov word [0x43458c], ax
xor dword [0x440140], 0xddb9bfbe
mov eax, dword [0x44092c]
inc dword [0x44092c]
cmp eax, 0x54168676
jne 0x40d677
add dword [0x450930], 0xcece4580
mov edx, dword [ebp + 0xc]
push ebx
push esi
xor esi, esi
add edx, 2
push edi
mov edi, esi
add dword [0x443914], 0xb1aad43d
mov eax, dword [0x4451b4]
sub eax, 0x7848b42f
dec dword [0x4451b4]
cmp eax, 0x7dd2701e
jl 0x40d6af
add dword [0x440874], 0x4d756719
movzx ecx, byte [edx - 2]
movzx eax, byte [edx - 1]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 1]
shl ecx, 8
or ecx, eax
mov eax, dword [0x43fbd0]
sar eax, 4
add eax, 0x64ae87b8
mov dword [ebp + edi*4 - 0x134], ecx
cmp eax, 0x742103f3
jle 0x40d713
mov ecx, dword [0x43f698]
mov eax, dword [0x444484]
sub ecx, 0x2827e4a0
and ecx, 0x7dc1540f
inc dword [0x43f698]
cmp ecx, eax
jge 0x40d713
and dword [0x44c954], 0x4428862a
mov ecx, dword [0x443158]
movzx eax, word [0x439872]
sar ecx, 6
xor ecx, 0xf9dfdfe7
or ecx, 0x691cd727
add eax, ecx
mov word [0x439872], ax
inc dword [0x4510dc]
mov eax, dword [0x4510dc]
cmp eax, 0x41c75a5e
jl 0x40d759
mov eax, dword [0x44acbc]
add eax, 0xe372949d
and dword [0x441788], eax
inc edi
add edx, 4
cmp edi, 0x10
jne 0x40d684
movsx eax, word [0x437c92]
cmp eax, 0x8b159172
jg 0x40d785
imul eax, dword [0x44fdfc], 0x735d81e2
mov dword [0x44fdfc], eax
jmp 0x40d795
mov eax, dword [0x44eb94]
xor eax, dword [0x441ff4]
mov dword [0x441ff4], eax
mov eax, dword [ebp + 8]
add eax, 8
push 0x24
push eax
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x34]
push eax
call fcn.00408825
add dword [0x44d038], 0xf83f21ee
push 0x100
push 0x2c78
call fcn.0040b9c8
mov ecx, dword [0x450630]
lea ebx, [ebp - 0x134]
mov edx, 0x534602cd
mov dword [ebp - 8], eax
sub edx, ecx
lea eax, [ebp - 0x34]
mov ecx, dword [0x4513d0]
sub eax, 4
add ecx, edx
mov dword [ebp - 0xc], eax
xor dword [0x44df3c], ecx
add esp, 0x14
mov edx, esi
sub ebx, 8
mov dword [ebp + 8], edx
mov dword [ebp - 4], ebx
or dword [0x43e5a8], 0x1ca6a825
cmp edx, 0xf
jle 0x40d8df
mov eax, dword [0x446550]
imul eax, eax, 0xf3685638
and dword [0x443584], eax
mov ecx, dword [ebx]
mov esi, ecx
rol esi, 0xf
mov eax, ecx
rol eax, 0xd
xor esi, eax
shr ecx, 0xa
xor esi, ecx
mov dword [ebx + 8], esi
inc dword [0x449958]
mov eax, dword [0x449958]
imul eax, eax, 0xab3d26ca
cmp eax, 0xd269691
jle 0x40d86a
mov eax, dword [0x44483c]
and eax, 0x398d4c8
shl eax, 5
xor eax, 0x43df0323
and dword [0x4420b4], eax
jmp 0x40d890
movsx eax, word [0x436b20]
cmp eax, 0xe62c0fce
jle 0x40d890
mov eax, dword [0x44ca0c]
not eax
imul eax, eax, 0x25e15f95
and eax, 0xd4ea5fa5
add dword [0x44f96c], eax
add dword [0x44a164], 0x80808832
mov eax, dword [0x449bb4]
mov edx, dword [ebx - 0x34]
mov ecx, edx
shl eax, 9
or eax, 0x9cfc8580
rol ecx, 0xe
sub dword [0x451a7c], eax
mov eax, edx
ror eax, 7
xor ecx, eax
shr edx, 3
mov eax, dword [0x44c7dc]
xor ecx, edx
add ecx, dword [ebx - 0x38]
add ecx, dword [ebx - 0x14]
mov edx, dword [ebp + 8]
add ecx, esi
and eax, dword [0x4471d4]
mov dword [ebx + 8], ecx
mov dword [0x44c7dc], eax
movsx eax, word [0x4351c6]
xor eax, 0x134e58f5
inc word [0x4351c6]
cmp eax, 0x1b8f595e
jg 0x40d90e
mov eax, dword [0x44dcd0]
and eax, 0xfffb7fff
or eax, 0x9d680c25
sub dword [0x43f6fc], eax
mov eax, dword [0x44e380]
add eax, 0x319f24e8
cmp eax, 0xdc6623e2
jne 0x40d931
movzx eax, word [0x43c95c]
and eax, 0x43a8c2e9
mov word [0x43c95c], ax
mov ecx, dword [ebp - 0x24]
mov edi, ecx
mov eax, ecx
ror edi, 0xb
rol eax, 7
xor edi, eax
mov eax, ecx
ror eax, 6
xor edi, eax
mov eax, dword [ebp - 0x20]
xor eax, dword [ebp - 0x1c]
and eax, ecx
xor eax, dword [ebp - 0x1c]
add edi, eax
mov eax, dword [ebp - 8]
add edi, dword [eax + edx*4]
mov ax, word [0x4361f8]
mov ecx, dword [0x44ee50]
mov edx, dword [ebp - 0x34]
mov esi, edx
add edi, dword [ebx + 8]
add edi, dword [ebp - 0x18]
cwde
xor ecx, eax
ror esi, 0xd
mov word [0x4361f8], cx
mov eax, edx
rol eax, 0xa
xor esi, eax
mov eax, edx
ror eax, 2
xor esi, eax
mov eax, dword [ebp - 0x30]
mov ecx, eax
and eax, edx
or ecx, edx
and ecx, dword [ebp - 0x2c]
or ecx, eax
add esi, ecx
inc dword [0x44ef60]
mov eax, dword [0x44ef60]
imul ecx, eax, 0xdec00960
mov eax, dword [0x445ed0]
and ecx, eax
or dword [0x443310], ecx
mov eax, dword [0x44a924]
add dword [ebp - 0x28], edi
or eax, 0x977faf45
sub dword [0x449174], eax
lea eax, [esi + edi]
mov dword [ebp - 0x18], eax
inc dword [0x449304]
mov eax, dword [0x449304]
imul eax, eax, 0x761fb40e
cmp eax, 0x53b4a3de
jne 0x40d9f5
mov dword [0x451668], 0x1aac8bba
movzx eax, word [0x436506]
mov ebx, dword [ebp - 0xc]
imul eax, eax, 0x469e08d
push 8
pop ecx
mov word [0x433cea], ax
mov dword [0x446c44], 0xbceeda79
inc dword [0x4491a0]
mov eax, dword [0x4491a0]
cmp eax, 0xc540804c
jge 0x40da36
add dword [0x43e430], 0x1e27fdbe
jmp 0x40da4f
movsx eax, word [0x4333c6]
imul eax, eax, 0xc7a298f6
mov dword [0x450194], eax
inc word [0x4333c6]
mov eax, dword [ebx + ecx*4]
mov dword [ebp + ecx*4 - 0x34], eax
movsx eax, word [0x434980]
and eax, 0xf852de81
cmp eax, 0x6059e6ea
jl 0x40da7b
movzx eax, word [0x4362a8]
sub eax, 0x7deb10d9
mov word [0x4362a8], ax
dec ecx
jne 0x40da18
dec dword [0x4472c8]
mov ecx, 0x98622763
mov eax, dword [0x4472c8]
mov ebx, dword [ebp - 4]
imul eax, eax, 0x74c583e2
add eax, dword [0x451a34]
mov dword [0x451a34], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x34], eax
inc dword [0x450a18]
mov esi, dword [0x450a18]
movsx eax, word [0x43a814]
mov edx, dword [0x4414f4]
sub ecx, eax
add edx, ecx
lea eax, [esi + 0x4d2229d3]
cmp eax, edx
je 0x40dad9
add dword [0x44fac0], 0x716580b
mov edx, dword [ebp + 8]
add ebx, 4
inc edx
mov dword [ebp - 4], ebx
mov dword [ebp + 8], edx
cmp edx, 0x40
jne 0x40d7fe
dec dword [0x441654]
mov ecx, dword [0x441654]
mov eax, dword [0x447fa4]
xor ecx, 0xd510ee27
not eax
pop edi
or eax, 0x6bb9d2a4
pop esi
pop ebx
cmp ecx, eax
je 0x40db28
movzx eax, word [0x43b0d0]
or eax, 0x2b92b041
mov word [0x43b0d0], ax
jmp 0x40db37
imul eax, dword [0x44e008], 0x4dddffe7
mov dword [0x44e008], eax
push dword [ebp - 8]
push 0x100
call fcn.0042acc4
inc dword [0x449e3c]
mov eax, dword [0x449e3c]
pop ecx
pop ecx
cmp eax, 0x5001e121
jl 0x40db64
add dword [0x4488f0], 0xfbfb0595
jmp 0x40db98
mov eax, dword [0x447f38]
mov ecx, dword [0x449230]
shl eax, 0xa
not ecx
sub ecx, eax
movsx eax, word [0x43a8e8]
or ecx, 0xdb4c2734
inc word [0x43a8e8]
cmp eax, ecx
jne 0x40db98
mov dword [0x443d2c], 0xdf7edfc2
mov edx, dword [ebp - 0x10]
xor ecx, ecx
add dword [0x448240], 0xd472931e
mov eax, dword [ebp + ecx*4 - 0x34]
add dword [edx], eax
lea edx, [edx + 4]
imul eax, dword [0x449c90], 0xdce0389e
inc ecx
mov dword [0x449c90], eax
cmp ecx, 8
jne 0x40db9d
dec dword [0x44b1c4]
mov eax, dword [0x44b1c4]
imul eax, eax, 0x54f252fc
cmp eax, 0x2700952a
je 0x40dc03
movsx eax, word [0x4391f8]
cmp eax, 0x400c07
jg 0x40dc3d
mov ecx, dword [0x444b30]
mov eax, dword [0x446434]
sar ecx, 7
or eax, ecx
sub dword [0x43edf4], eax
jmp 0x40dc3d
inc dword [0x44ea60]
mov edx, 0xd54515f9
mov ecx, dword [0x44ea60]
movsx eax, word [0x4356a8]
sub edx, eax
imul eax, dword [0x44b444], 0xc555898
or edx, ecx
and eax, 0xacee219c
inc dword [0x44b444]
cmp edx, eax
je 0x40dc3d
mov eax, dword [0x44606c]
mov esp, ebp
pop ebp
ret