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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x150
mov eax, dword [esp + 0x168]
mov ecx, dword [esp + 0x164]
mov edx, 0xe63578e1
mov dword [esp + 0x14c], eax
mov dword [esp + 0x148], ecx
mov si, word [0x49bc9a]
mov ax, si
mov ecx, 0xa081200b
sub ecx, eax
and ecx, 0x228e
mov si, word [0x49de68]
mov ax, si
imul eax, ecx
mov si, ax
mov word [0x49de68], si
mov eax, dword [0x49a714]
shl eax, 5
cmp edx, eax
je 0x411323
mov dword [0x4997dc], 0x1f07af4
mov dword [0x4999c8], 0xbffbfdef
mov eax, dword [0x494be8]
and eax, 0x2c3e9949
mov dword [0x494be8], eax
mov dword [esp + 0x18], 0
cmp dword [esp + 0x18], 0x10
je 0x411436
mov eax, 0xd4ffd3b5
mov cx, word [0x49ccb2]
mov dx, cx
and edx, 0x2b7d
mov cx, dx
mov word [0x49ccb2], cx
mov cx, word [0x49c772]
movsx edx, cx
or edx, 0x99074806
mov esi, dword [0x497360]
sub eax, esi
or eax, 0x93793502
cmp edx, eax
jle 0x4113a7
mov eax, dword [0x4991c8]
and eax, 0xcde58988
mov dword [0x4991c8], eax
jmp 0x4113b6
mov eax, dword [0x49a780]
xor eax, 0x51eeeda9
mov dword [0x49a780], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14c]
movzx edx, byte [ecx + eax*4]
shl edx, 0x18
movzx esi, byte [ecx + eax*4 + 1]
shl esi, 0x10
or edx, esi
movzx esi, byte [ecx + eax*4 + 2]
shl esi, 8
or edx, esi
movzx ecx, byte [ecx + eax*4 + 3]
or edx, ecx
mov dword [esp + eax*4 + 0x40], edx
mov eax, dword [0x49b070]
add eax, 0xb716c737
mov dword [0x49b070], eax
mov eax, dword [0x497598]
dec eax
mov dword [0x497598], eax
mov di, word [0x49d5ca]
mov cx, di
sub ecx, eax
mov di, cx
mov word [0x49d5ca], di
mov eax, dword [0x496060]
add eax, 0xdcb23874
mov dword [0x496060], eax
mov eax, dword [esp + 0x18]
add eax, 1
mov dword [esp + 0x18], eax
jmp 0x411344
mov eax, 0xb5addb9c
mov ecx, dword [0x4973e0]
xor ecx, 0xffffffff
and ecx, 0xd4c71683
and ecx, 0x278043e8
cmp eax, ecx
jge 0x411475
mov ax, word [0x49ce9e]
mov cx, ax
xor ecx, 0xfac9
mov ax, cx
mov word [0x49ce9e], ax
jmp 0x411497
mov ax, word [0x49d0c6]
mov cx, ax
dec ecx
mov ax, cx
mov word [0x49d0c6], ax
movsx ecx, ax
or ecx, 0xb349d940
mov dword [0x496210], ecx
mov eax, 0xb246d4ef
mov ecx, dword [esp + 0x148]
mov edx, dword [ecx + 0x28]
mov dword [esp + 0x3c], edx
movsd xmm0, qword [ecx + 0x20]
movsd qword [esp + 0x34], xmm0
movsd xmm0, qword [ecx + 0x18]
movsd qword [esp + 0x2c], xmm0
movsd xmm0, qword [ecx + 8]
movsd xmm1, qword [ecx + 0x10]
movsd qword [esp + 0x24], xmm1
movsd qword [esp + 0x1c], xmm0
mov ecx, dword [0x495ed4]
mov edx, ecx
dec edx
mov dword [0x495ed4], edx
xor ecx, 0x327645bd
mov edx, dword [0x496e4c]
imul edx, ecx
mov dword [0x496e4c], edx
mov ecx, esp
mov dword [ecx + 4], 0x100
mov dword [ecx], 0x2688
mov dword [esp + 0xc], eax
call fcn.00418300
mov dword [esp + 0x10], eax
mov eax, dword [0x499660]
shl eax, 2
mov ecx, dword [0x497da8]
mov edx, ecx
inc edx
mov dword [0x497da8], edx
xor eax, ecx
mov ecx, dword [esp + 0xc]
cmp ecx, eax
jge 0x41154a
mov eax, dword [0x495fe4]
xor eax, 0xa0000041
mov dword [0x495fe4], eax
mov dword [esp + 0x18], 0
cmp dword [esp + 0x18], 0x40
je 0x4119b7
mov eax, dword [0x494fd4]
or eax, 0xb15e895c
mov dword [0x494fd4], eax
cmp dword [esp + 0x18], 0xf
jle 0x4116a0
mov eax, 0x138909d2
mov ecx, dword [0x4965e8]
mov edx, ecx
dec edx
mov dword [0x4965e8], edx
mov edx, dword [0x497904]
sub ecx, edx
cmp eax, ecx
jl 0x4115b3
mov ax, word [0x49c600]
mov cx, ax
add ecx, 0x28c04168
mov ax, cx
mov word [0x49c600], ax
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + eax*4 + 0x38]
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 + 0x40], edx
mov eax, dword [0x497bcc]
imul eax, eax, 0xf34f845b
mov dword [0x497bcc], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + eax*4 + 0x24]
mov edx, dword [esp + eax*4 + 0x40]
add edx, ecx
mov dword [esp + eax*4 + 0x40], edx
mov eax, dword [0x4982bc]
xor eax, 0xf42a9b57
mov dword [0x4982bc], eax
mov eax, dword [esp + 0x18]
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 + 0x40]
add ecx, edx
mov dword [esp + eax*4 + 0x40], ecx
mov eax, dword [0x49574c]
or eax, 0xedb6d3fb
mov dword [0x49574c], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + eax*4]
mov edx, dword [esp + eax*4 + 0x40]
add edx, ecx
mov dword [esp + eax*4 + 0x40], edx
mov eax, dword [0x496020]
inc eax
mov dword [0x496020], eax
mov di, word [0x49b91e]
movsx ecx, di
and eax, ecx
xor eax, 0x1c193f03
cmp eax, 0x30a08200
jg 0x41169b
mov eax, 0x9cca6393
mov ecx, dword [0x494f2c]
sar ecx, 0xa
add ecx, 0x5f244e28
cmp eax, ecx
jg 0x411696
mov eax, dword [0x4993e4]
add eax, 0x3fba3f40
mov dword [0x4993e4], eax
jmp 0x41169b
jmp 0x4116a0
mov eax, 0xbf503160
mov ecx, dword [0x496a10]
or ecx, 0x7db2feef
mov dword [0x496a10], ecx
mov dx, word [0x49c6fa]
movsx ecx, dx
imul ecx, ecx, 0x61dd3f7e
add ecx, 0x2cfb7132
mov esi, dword [0x498c94]
xor esi, ecx
mov dword [0x498c94], esi
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x30]
mov ebx, esi
rol ebx, 0x1a
mov ebp, esi
rol ebp, 0x15
xor ebx, ebp
mov ebp, esi
rol ebp, 7
xor ebx, ebp
add ecx, ebx
mov ebx, dword [esp + 0x34]
xor edi, ebx
and esi, edi
xor ebx, esi
add ecx, ebx
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
mov edi, dword [edi + esi*4]
add ecx, edi
mov esi, dword [esp + esi*4 + 0x40]
add ecx, esi
mov dword [esp + 0x144], ecx
mov ecx, dword [0x494fb8]
mov esi, dword [0x495114]
add ecx, esi
xor ecx, 0xd6ab9399
cmp eax, ecx
jg 0x411762
mov eax, dword [0x499584]
sub eax, 0x2240be3d
cmp eax, 0xa2157f7f
jne 0x41175d
mov dword [0x499bd4], 0x36eb0071
jmp 0x411762
mov eax, 0x1591c57b
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov esi, ecx
rol esi, 0x1e
mov edi, ecx
rol edi, 0x13
xor esi, edi
mov edi, ecx
rol edi, 0xa
xor esi, edi
mov edi, ecx
and edi, edx
mov ebx, dword [esp + 0x24]
or ecx, edx
and ebx, ecx
or edi, ebx
add esi, edi
mov dword [esp + 0x140], esi
mov ecx, dword [0x49ae80]
mov edx, ecx
dec edx
mov dword [0x49ae80], edx
mov bp, word [0x49d282]
mov dx, bp
lea ecx, [edx + ecx - 1]
mov bp, cx
mov word [0x49d282], bp
mov ecx, dword [esp + 0x144]
mov edx, dword [esp + 0x28]
add edx, ecx
mov dword [esp + 0x28], edx
mov ecx, dword [0x499f58]
add ecx, 0xaf327574
mov dword [0x499f58], ecx
mov ecx, dword [esp + 0x144]
mov edx, dword [esp + 0x140]
add ecx, edx
mov dword [esp + 0x38], ecx
mov bp, word [0x49cd2e]
movsx ecx, bp
sar ecx, 7
xor ecx, 0x8670217e
mov edx, dword [0x499754]
xor ecx, edx
cmp eax, ecx
jle 0x41185b
mov eax, 0x9da97650
mov ecx, dword [0x49adac]
mov edx, ecx
inc edx
mov dword [0x49adac], edx
xor ecx, 0xaecb151f
cmp eax, ecx
jne 0x411856
mov eax, dword [0x494efc]
cmp eax, 0xda86b7e0
jge 0x411851
jmp 0x411851
jmp 0x411856
jmp 0x41185b
mov eax, dword [0x4977b4]
add eax, 0xa831acb9
mov ecx, dword [0x49a384]
imul ecx, eax
mov dword [0x49a384], ecx
mov dx, word [0x49bba6]
movsx eax, dx
shl eax, 4
mov ecx, dword [0x499ee4]
and eax, ecx
or eax, 0xdc111eef
mov ecx, dword [0x496d84]
add ecx, eax
mov dword [0x496d84], ecx
mov dword [esp + 0x14], 8
cmp dword [esp + 0x14], 0
je 0x411920
mov eax, 0x8a82991e
mov cx, word [0x49dc4a]
mov dx, cx
mov cx, word [0x49d428]
mov si, cx
imul esi, edx
mov cx, si
mov word [0x49d428], cx
mov edx, dword [esp + 0x14]
mov esi, dword [esp + edx*4 + 0x18]
mov dword [esp + edx*4 + 0x1c], esi
mov edx, dword [0x498ac8]
xor edx, 0xffffffff
cmp eax, edx
jle 0x41190b
mov eax, dword [0x4997f8]
or eax, 0xea6676a9
mov ecx, dword [0x496a90]
imul ecx, eax
mov dword [0x496a90], ecx
jmp 0x411910
mov eax, dword [esp + 0x14]
add eax, 0xffffffff
mov dword [esp + 0x14], eax
jmp 0x4118a4
mov eax, dword [0x499b64]
dec eax
mov dword [0x499b64], eax
cmp eax, 0x95d1338e
jne 0x41195a
mov eax, dword [0x498590]
mov ecx, eax
inc ecx
mov dword [0x498590], ecx
mov dx, word [0x49c1fe]
mov cx, dx
xor ecx, eax
mov dx, cx
mov word [0x49c1fe], dx
mov eax, 0x36d6370b
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x1c], ecx
mov ecx, dword [0x499a94]
shl ecx, 7
sub ecx, 0xe4335b9e
cmp eax, ecx
jge 0x411993
mov eax, dword [0x49992c]
imul eax, eax, 0xb6bfce7d
mov dword [0x49992c], eax
jmp 0x4119a2
mov eax, dword [0x495e50]
and eax, 0xeff7ebb3
mov dword [0x495e50], eax
jmp 0x4119a7
mov eax, dword [esp + 0x18]
add eax, 1
mov dword [esp + 0x18], eax
jmp 0x411552
mov eax, 0xff7fcba9
mov cx, word [0x49c642]
movsx edx, cx
xor edx, 0xffffffff
or edx, 0xe7b4a5ee
cmp eax, edx
je 0x4119ee
mov ax, word [0x49c8c8]
movsx ecx, ax
mov edx, dword [0x4994e8]
xor edx, ecx
mov dword [0x4994e8], edx
mov eax, 0xed5faed
mov ecx, dword [esp + 0x10]
mov edx, esp
mov dword [edx + 4], ecx
mov dword [edx], 0x100
mov dword [esp + 8], eax
call fcn.00437a50
mov si, word [0x49c8c0]
mov ax, si
dec eax
mov di, ax
mov word [0x49c8c0], di
movsx eax, si
and eax, 0xd6310a5e
mov ecx, dword [esp + 8]
cmp ecx, eax
je 0x411a43
mov eax, dword [0x49af4c]
or eax, 0xb0eeee76
mov dword [0x49af4c], eax
mov dword [esp + 0x18], 0
cmp dword [esp + 0x18], 8
je 0x411ad8
mov eax, 0xdea1d41c
mov ecx, dword [0x499588]
inc ecx
mov dword [0x499588], ecx
or ecx, 0x2d764180
cmp eax, ecx
je 0x411a93
mov eax, dword [0x494d98]
imul eax, eax, 0x2edb8556
mov ecx, dword [0x497644]
and eax, ecx
and eax, 0x11eb21fc
mov dword [0x497644], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + eax*4 + 0x1c]
mov edx, dword [esp + 0x148]
mov esi, dword [edx + eax*4 + 8]
add esi, ecx
mov dword [edx + eax*4 + 8], esi
mov di, word [0x49b6fc]
movsx eax, di
mov ecx, dword [0x495dd8]
lea eax, [eax + ecx - 0x7349d23c]
mov dword [0x495dd8], eax
mov eax, dword [esp + 0x18]
add eax, 1
mov dword [esp + 0x18], eax
jmp 0x411a4b
mov ax, word [0x49d77a]
mov cx, ax
add ecx, 0xb6ec6401
mov ax, cx
mov word [0x49d77a], ax
add esp, 0x150
pop esi
pop edi
pop ebx
pop ebp
ret