Function at 0x40ef47
Capabilities:
Access peb ldr_data
Encode data using xor
Hash data using fnv
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3c
mov eax, dword [0x4e2040]
xor eax, ebp
mov dword [ebp - 4], eax
and dword [ebp - 0x20], 0
mov eax, dword [0x4e5c38]
mov dword [ebp - 0x3c], edx
push ebx
mov ebx, ecx
mov dword [ebp - 0x38], ebx
push esi
push edi
test eax, eax
jne 0x40f02a
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x28], ecx
mov edx, dword [ecx + 0x18]
mov eax, dword [edx + 0x3c]
mov eax, dword [eax + edx + 0x78]
add eax, edx
mov dword [ebp - 0x34], eax
cmp eax, edx
je 0x40f00d
mov esi, dword [eax + 0x18]
test esi, esi
je 0x40f00d
mov eax, dword [eax + 0x20]
lea eax, [eax + esi*4]
add eax, edx
sub eax, 4
mov ecx, 0x30ab1fe2
dec esi
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x2c], eax
mov edi, dword [eax]
add edi, edx
mov cl, byte [edi]
inc edi
test cl, cl
je 0x40f006
mov ebx, dword [ebp - 0x24]
movsx eax, cl
xor eax, ebx
imul ecx, eax, 0x1000193
mov eax, ecx
shr eax, 0x10
xor eax, ecx
imul ecx, eax, 0x1000193
mov eax, ecx
shr eax, 0x10
xor eax, ecx
mov cl, byte [edi]
imul ebx, eax, 0x1000193
inc edi
test cl, cl
jne 0x40efc8
mov dword [ebp - 0x24], ebx
cmp dword [ebp - 0x24], 0x3b2960b0
mov ebx, dword [ebp - 0x38]
je 0x40f05a
mov eax, dword [ebp - 0x2c]
test esi, esi
jne 0x40efab
mov ecx, dword [ebp - 0x28]
mov eax, dword [ecx]
mov ecx, eax
mov dword [ebp - 0x28], eax
cmp eax, dword [ebp - 0x30]
je 0x40f023
cmp dword [ecx + 0x18], 0
jne 0x40ef89
xor eax, eax
mov dword [0x4e5c38], eax
push 0
push 0
lea ecx, [ebp - 0x20]
push ecx
push 0
push 1
push 0
push dword [ebp - 0x3c]
call eax
test eax, eax
jne 0x40f074
mov edi, ebx
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
and dword [ebx + 0x10], 0
mov dword [ebx + 0x14], 0xf
mov byte [ebx], 0
jmp 0x40f18f
mov edi, dword [ebp - 0x34]
mov eax, dword [edi + 0x24]
lea eax, [eax + esi*2]
movzx ecx, word [eax + edx]
mov eax, dword [edi + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + edx]
add eax, edx
jmp 0x40f025
push dword [ebp - 0x20]
xor eax, eax
lea edi, [ebp - 0x1c]
stosd dword es:[edi], eax
push ecx
lea ecx, [ebp - 0x1c]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
and dword [ebp - 0xc], 0
and dword [ebp - 8], 0
call fcn.004109bd
mov ecx, dword [0x4e5c50]
test ecx, ecx
jne 0x40f157
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x28], ecx
mov edx, dword [ecx + 0x18]
mov eax, dword [edx + 0x3c]
mov eax, dword [eax + edx + 0x78]
add eax, edx
mov dword [ebp - 0x2c], eax
cmp eax, edx
je 0x40f139
mov esi, dword [eax + 0x18]
test esi, esi
je 0x40f139
mov eax, dword [eax + 0x20]
lea eax, [eax + esi*4]
add eax, edx
sub eax, 4
mov ecx, 0xc0df4da7
dec esi
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x34], eax
mov edi, dword [eax]
add edi, edx
mov cl, byte [edi]
inc edi
test cl, cl
je 0x40f132
mov ebx, dword [ebp - 0x24]
movsx eax, cl
xor eax, ebx
imul ecx, eax, 0x1000193
mov eax, ecx
shr eax, 0x10
xor eax, ecx
imul ecx, eax, 0x1000193
mov eax, ecx
shr eax, 0x10
xor eax, ecx
mov cl, byte [edi]
imul ebx, eax, 0x1000193
inc edi
test cl, cl
jne 0x40f0f4
mov dword [ebp - 0x24], ebx
cmp dword [ebp - 0x24], 0x8beeeb93
mov ebx, dword [ebp - 0x38]
je 0x40f1a0
mov eax, dword [ebp - 0x34]
test esi, esi
jne 0x40f0d7
mov ecx, dword [ebp - 0x28]
mov eax, dword [ecx]
mov ecx, eax
mov dword [ebp - 0x28], eax
cmp eax, dword [ebp - 0x30]
je 0x40f14f
cmp dword [ecx + 0x18], 0
jne 0x40f0b5
xor ecx, ecx
mov dword [0x4e5c50], ecx
cmp dword [ebp - 8], 0xf
lea eax, [ebp - 0x1c]
lea edx, [ebp - 0x20]
cmova eax, dword [ebp - 0x1c]
xor esi, esi
push esi
push esi
push edx
push eax
push 1
push esi
push dword [ebp - 0x3c]
call ecx
lea eax, [ebp - 0x1c]
mov ecx, ebx
push eax
call fcn.00410822
mov edx, dword [ebp - 8]
cmp edx, 0xf
jbe 0x40f18f
mov ecx, dword [ebp - 0x1c]
inc edx
call fcn.0040d759
mov ecx, dword [ebp - 4]
mov eax, ebx
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004b0ce6
leave
ret
mov edi, dword [ebp - 0x2c]
mov eax, dword [edi + 0x24]
lea eax, [eax + esi*2]
movzx ecx, word [eax + edx]
mov eax, dword [edi + 0x1c]
lea eax, [eax + ecx*4]
mov ecx, dword [eax + edx]
add ecx, edx
jmp 0x40f151