Function at 0x401000
Capabilities:
Encode data using xor
Hash data using murmur2
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x38
mov edi, dword [esp + 0x4c]
mov eax, dword [0x4346c0]
xor eax, esp
mov dword [esp + 0x34], eax
mov eax, dword [edi + 0x3c]
mov eax, dword [eax + edi + 0x78]
mov ecx, dword [eax + edi + 0x18]
mov dword [esp + 0x18], ecx
test ecx, ecx
je 0x401292
mov dword [esp + 0x10], eax
mov ebp, dword [eax + edi + 0x20]
add ebp, edi
mov dword [esp + 4], 0
mov dword [esp], 0
nop word cs:[eax + eax]
mov esi, dword [ebp]
add esi, edi
xorps xmm0, xmm0
movsd qword [esp + 0x2c], xmm0
xorps xmm0, xmm0
movups xmmword [esp + 0x1c], xmm0
push esi
call fcn.004161f0
add esp, 4
test eax, eax
js 0x4012b3
mov edi, eax
cmp eax, 0xf
mov dword [esp + 0xc], ebp
ja 0x4010b0
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], 0xf
push edi
push esi
lea esi, [esp + 0x24]
push esi
call fcn.0040e2f0
add esp, 0xc
add edi, esp
add edi, 0x1c
jmp 0x40110f
mov eax, edi
or eax, 0xf
cmp eax, 0x17
mov ebp, 0x16
cmovae ebp, eax
cmp eax, 0xfff
jb 0x4010e0
lea eax, [ebp + 0x24]
push eax
call fcn.0040857e
add esp, 4
lea ebx, [eax + 0x23]
and ebx, 0xffffffe0
mov dword [ebx - 4], eax
jmp 0x4010ee
lea eax, [ebp + 1]
push eax
call fcn.0040857e
add esp, 4
mov ebx, eax
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], ebp
push edi
push esi
push ebx
call fcn.0040e2f0
add esp, 0xc
add edi, ebx
mov ebp, dword [esp + 0xc]
lea esi, [esp + 0x1c]
mov byte [edi], 0
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x2c]
mov edx, eax
xor edx, 0x235
mov edi, dword [esp + 0x30]
mov dword [esp + 8], edi
cmp edi, 0x10
mov edi, esi
cmovae edi, ecx
cmp eax, 4
jb 0x4011b8
mov dword [esp + 0x14], ecx
mov ebx, eax
shr ebx, 2
xor esi, esi
cmp ebx, 1
je 0x401190
and ebx, 0xfffffffe
xor esi, esi
imul ecx, dword [edi + esi*4], 0x5bd1e995
mov ebp, ecx
shr ebp, 0x18
xor ebp, ecx
imul ecx, ebp, 0x5bd1e995
imul edx, edx, 0x5bd1e995
xor edx, ecx
imul ecx, dword [edi + esi*4 + 4], 0x5bd1e995
mov ebp, ecx
shr ebp, 0x18
xor ebp, ecx
imul ecx, ebp, 0x5bd1e995
imul edx, edx, 0x5bd1e995
xor edx, ecx
add esi, 2
cmp ebx, esi
jne 0x401150
test al, 4
mov ebp, dword [esp + 0xc]
mov ecx, dword [esp + 0x14]
je 0x4011b8
imul esi, dword [edi + esi*4], 0x5bd1e995
mov ebx, esi
shr ebx, 0x18
xor ebx, esi
imul esi, ebx, 0x5bd1e995
imul edx, edx, 0x5bd1e995
xor edx, esi
mov ebx, eax
and ebx, 0xfffffffc
and eax, 3
xor esi, esi
cmp eax, 1
je 0x4011e3
cmp eax, 2
je 0x4011d9
cmp eax, 3
jne 0x4011f1
movsx esi, byte [edi + ebx + 2]
shl esi, 0x10
movsx eax, byte [edi + ebx + 1]
shl eax, 8
xor esi, eax
movsx eax, byte [edi + ebx]
xor eax, esi
imul eax, eax, 0x5bd1e995
xor edx, eax
mov eax, edx
shr eax, 0xd
xor eax, edx
imul eax, eax, 0x5bd1e995
mov esi, eax
shr esi, 0xf
xor esi, eax
mov ebx, dword [esp + 0x50]
cmp esi, ebx
mov edi, dword [esp + 0x4c]
jne 0x401240
mov edx, dword [esp + 0x10]
mov eax, dword [edx + edi + 0x24]
mov ebx, ebp
mov ebp, ecx
mov ecx, dword [esp + 4]
lea ecx, [edi + ecx*2]
movzx eax, word [eax + ecx]
mov ecx, dword [edx + edi + 0x1c]
add ecx, edi
mov eax, dword [ecx + eax*4]
mov ecx, ebp
mov ebp, ebx
mov dword [esp], eax
jmp 0x401243
add ebp, 4
mov ebx, dword [esp + 8]
cmp ebx, 0x10
jb 0x401275
lea edx, [ebx + 1]
cmp edx, 0x1000
jb 0x40126b
mov eax, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, eax
cmp ecx, 0x20
jae 0x4012b8
add ebx, 0x24
mov edx, ebx
mov ecx, eax
push edx
push ecx
call fcn.004085b3
add esp, 8
cmp esi, dword [esp + 0x50]
je 0x401299
mov ecx, dword [esp + 4]
inc ecx
mov eax, ecx
mov dword [esp + 4], ecx
cmp ecx, dword [esp + 0x18]
jne 0x401050
jmp 0x401299
mov dword [esp], 0
mov esi, dword [esp]
add esi, edi
mov ecx, dword [esp + 0x34]
xor ecx, esp
call fcn.004085f2
mov eax, esi
add esp, 0x38
pop esi
pop edi
pop ebx
pop ebp
ret
call fcn.004020e0
call fcn.004146af
int3