Function at 0x40f1ba
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 [0x4e5c3c]
mov dword [ebp - 0x3c], edx
push ebx
mov ebx, ecx
mov dword [ebp - 0x38], ebx
push esi
push edi
test eax, eax
jne 0x40f29d
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 0x40f280
mov esi, dword [eax + 0x18]
test esi, esi
je 0x40f280
mov eax, dword [eax + 0x20]
lea eax, [eax + esi*4]
add eax, edx
sub eax, 4
mov ecx, 0x7acf6433
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 0x40f279
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 0x40f23b
mov dword [ebp - 0x24], ebx
cmp dword [ebp - 0x24], 0xda54f891
mov ebx, dword [ebp - 0x38]
je 0x40f2cd
mov eax, dword [ebp - 0x2c]
test esi, esi
jne 0x40f21e
mov ecx, dword [ebp - 0x28]
mov eax, dword [ecx]
mov ecx, eax
mov dword [ebp - 0x28], eax
cmp eax, dword [ebp - 0x30]
je 0x40f296
cmp dword [ecx + 0x18], 0
jne 0x40f1fc
xor eax, eax
mov dword [0x4e5c3c], 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 0x40f2e7
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 0x40f402
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 0x40f298
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 [0x4e5c24]
test ecx, ecx
jne 0x40f3ca
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 0x40f3ac
mov esi, dword [eax + 0x18]
test esi, esi
je 0x40f3ac
mov eax, dword [eax + 0x20]
lea eax, [eax + esi*4]
add eax, edx
sub eax, 4
mov ecx, 0xfd34d8db
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 0x40f3a5
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 0x40f367
mov dword [ebp - 0x24], ebx
cmp dword [ebp - 0x24], 0x84b74582
mov ebx, dword [ebp - 0x38]
je 0x40f413
mov eax, dword [ebp - 0x34]
test esi, esi
jne 0x40f34a
mov ecx, dword [ebp - 0x28]
mov eax, dword [ecx]
mov ecx, eax
mov dword [ebp - 0x28], eax
cmp eax, dword [ebp - 0x30]
je 0x40f3c2
cmp dword [ecx + 0x18], 0
jne 0x40f328
xor ecx, ecx
mov dword [0x4e5c24], 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 0x40f402
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 0x40f3c4