Function at 0x4104d1
Capabilities:
Encode data using xor
Hash data using murmur3

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x124
test esi, esi
jne 0x4104fc
push 0x20
lea eax, [ebp - 0x24]
push eax
call fcn.0040ce3e
push 0x100
lea eax, [ebp - 0x124]
push eax
call fcn.0040ce3e
leave
ret
mov eax, dword [esi + 0x28]
push ebx
push edi
push dword [eax]
call fcn.0041d101
mov dword [ebp - 0x124], eax
mov eax, dword [esi + 0x28]
add eax, 4
push dword [eax]
call fcn.0041d101
mov dword [ebp - 0x120], eax
mov eax, dword [esi + 0x28]
add eax, 8
push dword [eax]
call fcn.0041d101
mov dword [ebp - 0x11c], eax
mov eax, dword [esi + 0x28]
add eax, 0xc
push dword [eax]
call fcn.0041d101
mov dword [ebp - 0x118], eax
mov eax, dword [esi + 0x28]
add eax, 0x10
push dword [eax]
call fcn.0041d101
mov dword [ebp - 0x114], eax
mov eax, dword [esi + 0x28]
add eax, 0x14
push dword [eax]
call fcn.0041d101
mov dword [ebp - 0x110], eax
mov eax, dword [esi + 0x28]
add eax, 0x18
push dword [eax]
call fcn.0041d101
mov dword [ebp - 0x10c], eax
mov eax, dword [esi + 0x28]
add eax, 0x1c
push dword [eax]
call fcn.0041d101
mov dword [ebp - 0x108], eax
mov eax, dword [esi + 0x28]
add eax, 0x20
push dword [eax]
call fcn.0041d101
mov dword [ebp - 0x104], eax
mov eax, dword [esi + 0x28]
add eax, 0x24
push dword [eax]
call fcn.0041d101
mov dword [ebp - 0x100], eax
mov eax, dword [esi + 0x28]
add eax, 0x28
push dword [eax]
call fcn.0041d101
mov dword [ebp - 0xfc], eax
mov eax, dword [esi + 0x28]
add eax, 0x2c
push dword [eax]
call fcn.0041d101
mov dword [ebp - 0xf8], eax
mov eax, dword [esi + 0x28]
push 0x30
pop edi
add eax, edi
push dword [eax]
call fcn.0041d101
mov dword [ebp - 0xf4], eax
mov eax, dword [esi + 0x28]
add eax, 0x34
push dword [eax]
call fcn.0041d101
mov dword [ebp - 0xf0], eax
mov eax, dword [esi + 0x28]
add eax, 0x38
push dword [eax]
call fcn.0041d101
mov dword [ebp - 0xec], eax
mov eax, dword [esi + 0x28]
add eax, 0x3c
push dword [eax]
call fcn.0041d101
mov dword [ebp - 0xe8], eax
add esp, 0x40
lea eax, [ebp - 0xec]
mov dword [ebp - 4], edi
mov ecx, dword [eax - 0x34]
mov edx, dword [eax]
mov edi, ecx
rol edi, 0xe
mov ebx, ecx
shr ecx, 3
ror ebx, 7
xor edi, ebx
xor edi, ecx
mov ecx, edx
rol ecx, 0xf
mov ebx, edx
rol ebx, 0xd
xor ecx, ebx
shr edx, 0xa
xor ecx, edx
add edi, ecx
add edi, dword [eax - 0x38]
add eax, 4
add edi, dword [eax - 0x18]
dec dword [ebp - 4]
mov dword [eax + 4], edi
jne 0x410639
mov eax, dword [esi + 4]
mov edi, dword [esi]
mov edx, dword [esi + 0x10]
and dword [ebp - 4], 0
mov dword [ebp - 0x20], eax
mov eax, dword [esi + 8]
mov dword [ebp - 0x1c], eax
mov eax, dword [esi + 0xc]
mov dword [ebp - 0x18], eax
mov eax, dword [esi + 0x14]
mov dword [ebp - 0x10], eax
mov eax, dword [esi + 0x18]
mov dword [ebp - 0xc], eax
mov eax, dword [esi + 0x1c]
mov dword [ebp - 0x24], edi
mov dword [ebp - 8], eax
mov ebx, dword [ebp - 0x10]
mov eax, edx
ror eax, 0xb
mov ecx, edx
rol ecx, 7
xor eax, ecx
and ebx, edx
mov ecx, edx
ror ecx, 6
xor eax, ecx
mov ecx, edx
not ecx
and ecx, dword [ebp - 0xc]
xor ecx, ebx
add eax, ecx
mov ecx, dword [ebp - 4]
add eax, dword [ecx + 0x42ab90]
add dword [ebp - 4], 4
add eax, dword [ebp + ecx - 0x124]
mov ecx, dword [ebp - 0xc]
add eax, dword [ebp - 8]
mov dword [ebp - 8], ecx
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0xc], ecx
mov ecx, dword [ebp - 0x18]
mov ebx, edi
mov dword [ebp - 0x10], edx
lea edx, [eax + ecx]
mov ecx, edi
ror ecx, 0xd
rol ebx, 0xa
xor ecx, ebx
mov ebx, edi
ror ebx, 2
xor ecx, ebx
mov ebx, dword [ebp - 0x20]
xor ebx, edi
and ebx, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x20]
and edi, dword [ebp - 0x24]
xor ebx, edi
mov edi, dword [ebp - 0x1c]
add ecx, ebx
cmp dword [ebp - 4], 0x100
mov ebx, dword [ebp - 0x20]
mov dword [ebp - 0x18], edi
mov edi, dword [ebp - 0x24]
mov dword [ebp - 0x20], edi
lea edi, [ecx + eax]
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x24], edi
jb 0x4106a3
mov eax, dword [esi]
mov ecx, dword [ebp - 0x20]
add eax, edi
mov dword [esi], eax
mov eax, dword [esi + 4]
add eax, ecx
mov ecx, dword [ebp - 0x18]
mov dword [esi + 4], eax
mov eax, dword [esi + 8]
add eax, ebx
mov dword [esi + 8], eax
mov eax, dword [esi + 0xc]
add eax, ecx
mov ecx, dword [ebp - 0x10]
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x10]
add eax, edx
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x14]
add eax, ecx
mov ecx, dword [ebp - 0xc]
mov dword [esi + 0x14], eax
mov eax, dword [esi + 0x18]
add eax, ecx
mov ecx, dword [ebp - 8]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x1c]
add eax, ecx
pop edi
mov dword [esi + 0x1c], eax
pop ebx
leave
ret