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

Disassembly:
push ebx
push edi
push esi
sub esp, 0x148
mov eax, dword [esp + 0x15c]
mov ecx, dword [esp + 0x158]
mov edx, 0xf9a96f
mov dword [esp + 0x144], eax
mov dword [esp + 0x140], ecx
mov eax, dword [0x49d504]
inc eax
mov dword [0x49d504], eax
imul eax, eax, 0x96238fb4
cmp edx, eax
jl 0x41edb2
mov eax, dword [0x498844]
and eax, 0x4fe90aa8
mov dword [0x498844], eax
mov word [0x4a1ae6], 0xab1
mov ax, word [0x4a2618]
mov cx, ax
imul ecx, ecx, 0xcbd76173
mov ax, cx
mov word [0x4a2618], ax
mov ax, word [0x4a87be]
mov cx, ax
inc ecx
mov dx, cx
mov word [0x4a87be], dx
movsx ecx, ax
mov esi, dword [0x498ed4]
shl esi, 5
add ecx, esi
and ecx, 0xe97d893a
mov esi, dword [0x496a64]
xor esi, ecx
mov dword [0x496a64], esi
mov dword [esp + 0x10], 0
cmp dword [esp + 0x10], 0x10
je 0x41ef00
mov eax, 0xbf7b74ff
mov ecx, dword [0x49c520]
mov edx, dword [0x49d488]
and ecx, edx
and ecx, 0xff906d66
mov dword [0x49d488], ecx
mov ecx, dword [0x4948fc]
or ecx, 0x64c5e8dd
mov dword [0x4948fc], ecx
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x144]
movzx esi, byte [edx + ecx*4]
shl esi, 0x18
movzx edi, byte [edx + ecx*4 + 1]
shl edi, 0x10
or esi, edi
movzx edi, byte [edx + ecx*4 + 2]
shl edi, 8
or esi, edi
movzx edx, byte [edx + ecx*4 + 3]
or esi, edx
mov dword [esp + ecx*4 + 0x38], esi
mov ecx, dword [0x4a0ae0]
mov edx, 0xe0c947fb
sub edx, ecx
mov ecx, dword [0x49c30c]
imul ecx, edx
mov dword [0x49c30c], ecx
mov ecx, dword [0x4938d4]
imul ecx, ecx, 0x1d15d605
mov dword [0x4938d4], ecx
mov ecx, dword [0x4a0354]
cmp eax, ecx
je 0x41eeeb
mov eax, 0x9188530b
mov cx, word [0x4a28e8]
movsx edx, cx
and edx, 0xfd33630d
cmp eax, edx
je 0x41eee6
mov eax, dword [0x496c9c]
add eax, 0xfb224623
mov dword [0x496c9c], eax
jmp 0x41eeeb
jmp 0x41eef0
mov eax, dword [esp + 0x10]
add eax, 1
mov dword [esp + 0x10], eax
jmp 0x41ee11
mov eax, 0x18595585
mov ecx, dword [0x497210]
xor ecx, 0x5b72337f
cmp eax, ecx
je 0x41ef28
mov eax, dword [0x4944a8]
add eax, 0xa97cfc74
mov dword [0x499b70], eax
mov eax, dword [esp + 0x140]
add eax, 8
mov ecx, 9
lea edi, [esp + 0x14]
mov esi, eax
rep movsd dword es:[edi], dword [esi]
mov dx, word [0x4a2378]
mov ax, dx
or eax, 0xb75f
mov dx, ax
mov word [0x4a2378], dx
mov eax, esp
mov dword [eax + 4], 0x100
mov dword [eax], 0x1ffe
call fcn.00401920
mov dword [esp + 8], eax
mov dx, word [0x4a7b8e]
movsx eax, dx
sar eax, 2
mov dword [0x495e84], eax
mov dword [esp + 0x10], 0
cmp dword [esp + 0x10], 0x40
je 0x41f3bd
mov eax, dword [0x4950e4]
mov ecx, eax
inc ecx
mov dword [0x4950e4], ecx
mov ecx, dword [0x49bedc]
imul ecx, eax
mov dword [0x49bedc], ecx
cmp dword [esp + 0x10], 0xf
jle 0x41f0c2
mov eax, 0x5613ba12
mov cx, word [0x4a51bc]
movsx edx, cx
sub edx, 0x81ccaacd
add edx, 0xeff2cdfc
cmp eax, edx
jl 0x41effd
mov ax, word [0x4a7c04]
movsx ecx, ax
add ecx, 0xb6ed5936
mov edx, dword [0x49c6e0]
xor edx, ecx
mov dword [0x49c6e0], edx
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + eax*4 + 0x30]
mov edx, ecx
rol edx, 0xf
mov esi, ecx
rol esi, 0xd
xor edx, esi
shr ecx, 0xa
xor edx, ecx
mov dword [esp + eax*4 + 0x38], edx
mov eax, dword [0x49d3fc]
add eax, 0xd47e8746
mov dword [0x49d3fc], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + eax*4 + 0x1c]
mov edx, dword [esp + eax*4 + 0x38]
add edx, ecx
mov dword [esp + eax*4 + 0x38], edx
mov eax, dword [0x495918]
add eax, 0xf3df7dfc
mov dword [0x495918], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + eax*4 - 4]
mov edx, ecx
rol edx, 0x19
mov esi, ecx
rol esi, 0xe
xor edx, esi
shr ecx, 3
xor edx, ecx
mov ecx, dword [esp + eax*4 + 0x38]
add ecx, edx
mov dword [esp + eax*4 + 0x38], ecx
mov di, word [0x4a1818]
mov ax, di
add eax, 0x4243a900
mov di, ax
mov word [0x4a1818], di
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + eax*4 - 8]
mov edx, dword [esp + eax*4 + 0x38]
add edx, ecx
mov dword [esp + eax*4 + 0x38], edx
mov di, word [0x4a8186]
mov ax, di
xor eax, 0xc314
mov di, word [0x4a8120]
mov cx, di
or eax, ecx
or eax, 0x3c2b
mov di, ax
mov word [0x4a8120], di
mov eax, 0x71d90625
mov cx, word [0x4a7036]
movsx edx, cx
cmp eax, edx
jle 0x41f0fa
mov eax, dword [0x49a780]
and eax, 0xad1ee940
mov ecx, dword [0x49abe8]
xor eax, ecx
xor eax, 0xc8e115cd
mov dword [0x49abe8], eax
jmp 0x41f10c
mov eax, dword [0x495c04]
shl eax, 0xa
xor eax, 0x24400801
mov dword [0x4a0d8c], eax
mov eax, 0x6843dc12
mov cx, word [0x4a6662]
movsx edx, cx
shl edx, 0xa
cmp eax, edx
jge 0x41f184
mov eax, 0x83001865
mov ecx, dword [0x4a0824]
inc ecx
mov dword [0x4a0824], ecx
add ecx, 0x9f72861c
sub ecx, 0xc25da0b7
cmp eax, ecx
jge 0x41f160
mov eax, dword [0x496608]
add eax, 0x2df9bb83
mov dword [0x496608], eax
jmp 0x41f17f
mov eax, dword [0x498d5c]
not eax
add eax, 0x3e19aef3
and eax, 0x2d7a5de
mov ecx, dword [0x497854]
add ecx, eax
mov dword [0x497854], ecx
jmp 0x41f184
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
mov esi, ecx
rol esi, 0x1a
mov edi, ecx
rol edi, 0x15
xor esi, edi
mov edi, ecx
rol edi, 7
xor esi, edi
add eax, esi
mov esi, dword [esp + 0x2c]
xor edx, esi
and ecx, edx
xor esi, ecx
add eax, esi
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 8]
mov edx, dword [edx + ecx*4]
add eax, edx
mov ecx, dword [esp + ecx*4 + 0x38]
add eax, ecx
mov dword [esp + 0x13c], eax
mov eax, dword [0x49b8c4]
and eax, 0xa6ad307a
mov dword [0x49b8c4], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, eax
rol edx, 0x1e
mov esi, eax
rol esi, 0x13
xor edx, esi
mov esi, eax
rol esi, 0xa
xor edx, esi
mov esi, eax
and esi, ecx
mov edi, dword [esp + 0x1c]
or eax, ecx
and edi, eax
or esi, edi
add edx, esi
mov dword [esp + 0x138], edx
mov eax, dword [0x49862c]
imul eax, eax, 0x5b4fa914
mov dword [0x49862c], eax
mov eax, dword [esp + 0x13c]
mov ecx, dword [esp + 0x20]
add ecx, eax
mov dword [esp + 0x20], ecx
mov eax, dword [0x4a1124]
add eax, 0x7f491c04
mov dword [0x4a1124], eax
mov eax, dword [esp + 0x13c]
mov ecx, dword [esp + 0x138]
add eax, ecx
mov dword [esp + 0x30], eax
mov eax, dword [0x496ff0]
add eax, 0x978b352f
mov ecx, dword [0x497a10]
xor ecx, eax
mov dword [0x497a10], ecx
mov eax, dword [0x498278]
shl eax, 8
add eax, 0xbc8b7af1
mov bx, word [0x4a84d2]
movsx ecx, bx
sar ecx, 7
and ecx, 0xc4599a4
cmp eax, ecx
jle 0x41f2c1
mov eax, dword [0x49c630]
shl eax, 8
add eax, 0xe0e3a687
mov ecx, dword [0x4a085c]
mov edx, ecx
inc edx
mov dword [0x4a085c], edx
and eax, ecx
mov ecx, dword [0x49a3f0]
add ecx, eax
mov dword [0x49a3f0], ecx
jmp 0x41f2d7
mov eax, dword [0x496ccc]
shl eax, 3
mov ecx, dword [0x4955a4]
sub ecx, eax
mov dword [0x4955a4], ecx
mov eax, dword [0x49ca64]
add eax, 0x99b99c18
mov dword [0x49ca64], eax
mov dword [esp + 0xc], 8
cmp dword [esp + 0xc], 0
je 0x41f347
mov eax, dword [0x49c920]
mov ecx, eax
inc ecx
mov dword [0x49c920], ecx
imul eax, eax, 0x486cedc2
and eax, 0x7c420ffc
mov ecx, dword [0x4a0034]
imul ecx, eax
mov dword [0x4a0034], ecx
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + eax*4 + 0x10]
mov dword [esp + eax*4 + 0x14], ecx
mov eax, dword [0x498e94]
mov dword [0x49eae4], eax
mov eax, dword [esp + 0xc]
add eax, 0xffffffff
mov dword [esp + 0xc], eax
jmp 0x41f2ee
mov eax, dword [0x4946d8]
mov ecx, eax
inc ecx
mov dword [0x4946d8], ecx
mov ecx, dword [0x49be64]
mov edx, ecx
inc edx
mov dword [0x49be64], edx
xor ecx, 0xa8dfe767
cmp eax, ecx
jl 0x41f395
mov eax, dword [0x4a0f74]
not eax
imul eax, eax, 0x743737fc
mov cx, word [0x4a7332]
mov dx, cx
sub edx, eax
mov cx, dx
mov word [0x4a7332], cx
mov eax, dword [esp + 0x34]
mov dword [esp + 0x14], eax
mov eax, dword [0x49e108]
imul eax, eax, 0x4da9b692
mov dword [0x49e108], eax
mov eax, dword [esp + 0x10]
add eax, 1
mov dword [esp + 0x10], eax
jmp 0x41ef8a
mov eax, dword [0x49d754]
mov ecx, eax
inc ecx
mov dword [0x49d754], ecx
add eax, 0x5350c471
mov ecx, dword [0x49746c]
xor ecx, eax
mov dword [0x49746c], ecx
mov eax, dword [esp + 8]
mov ecx, esp
mov dword [ecx + 4], eax
mov dword [ecx], 0x100
call fcn.00405f10
mov eax, dword [0x49b744]
inc eax
mov dword [0x49b744], eax
and eax, 0xd3cb25fa
mov dword [0x4951ec], eax
mov dword [esp + 0x10], 0
cmp dword [esp + 0x10], 8
je 0x41f4d0
mov eax, dword [0x4947b4]
dec eax
mov dword [0x4947b4], eax
imul eax, eax, 0x2295fb2a
xor eax, 0xb36921e9
cmp eax, 0xdfbbcfb6
jle 0x41f47b
mov ax, word [0x4a8552]
movsx ecx, ax
not ecx
mov edx, dword [0x49e4d8]
sar edx, 0xa
and edx, 0x587e216e
cmp ecx, edx
jg 0x41f476
mov eax, dword [0x49fa80]
imul eax, eax, 0xb82ef594
mov ecx, dword [0x497bf0]
xor ecx, eax
mov dword [0x497bf0], ecx
jmp 0x41f47b
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + eax*4 + 0x14]
mov edx, dword [esp + 0x140]
mov esi, dword [edx + eax*4 + 8]
add esi, ecx
mov dword [edx + eax*4 + 8], esi
mov di, word [0x4a49d2]
mov ax, di
dec eax
mov di, ax
mov word [0x4a49d2], di
movsx eax, di
and eax, 0x7b598ee6
mov ecx, dword [0x496284]
imul ecx, eax
mov dword [0x496284], ecx
mov eax, dword [esp + 0x10]
add eax, 1
mov dword [esp + 0x10], eax
jmp 0x41f40f
mov ax, word [0x4a4b3a]
movsx ecx, ax
sar ecx, 6
add ecx, 0xf6584239
sub ecx, 0x8413eea2
cmp ecx, 0x78ba6bc8
jg 0x41f52a
mov eax, 0xeec32bdb
mov ecx, dword [0x494980]
mov edx, ecx
inc edx
mov dword [0x494980], edx
xor ecx, 0xe28bac2c
cmp eax, ecx
jle 0x41f525
mov eax, dword [0x4a0ef8]
add eax, 0x3edce385
mov dword [0x4a0ef8], eax
jmp 0x41f542
mov ax, word [0x4a2eec]
mov cx, ax
add ecx, 0xbfcff2f9
mov ax, cx
mov word [0x4a2eec], ax
add esp, 0x148
pop esi
pop edi
pop ebx
ret