Function at 0x407f99
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, 0x40
mov eax, dword [0x4e2040]
xor eax, ebp
mov dword [ebp - 8], eax
mov eax, dword [ebp + 8]
push ebx
push esi
mov esi, ecx
mov dword [ebp - 0x40], eax
push edi
mov dword [ebp - 0x38], esi
call fcn.0040816e
mov ebx, eax
xor eax, eax
mov dword [ebp - 0x30], ebx
cmp byte [ebx + 0x4e], al
je 0x407fe4
push 0x75eb2f59
push 0x47b10f6b
push eax
push 0x27
mov ecx, ebx
call fcn.00407f3c
add esp, 0x10
xor eax, eax
mov byte [ebx + 0x4e], al
mov ecx, ebx
xor edi, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, di
jne 0x407feb
mov eax, dword [esi + 0x28]
sub ecx, edx
sub eax, 0xffffff80
sar ecx, 1
add eax, dword [esi + 0x10]
push ecx
add eax, ecx
lea ecx, [ebp - 0x20]
push eax
call fcn.0040c1ba
mov ecx, dword [0x4e5c1c]
test ecx, ecx
jne 0x4080f7
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 - 0x28], eax
mov dword [ebp - 0x34], 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 0x4080b7
mov edi, dword [eax + 0x18]
test edi, edi
je 0x4080b7
mov eax, dword [eax + 0x20]
lea eax, [eax + edi*4]
add eax, edx
sub eax, 4
mov ecx, 0x6560389f
dec edi
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x3c], eax
mov ebx, dword [eax]
add ebx, edx
mov cl, byte [ebx]
inc ebx
test cl, cl
je 0x4080b0
mov esi, dword [ebp - 0x24]
movsx eax, cl
xor eax, esi
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 [ebx]
imul esi, eax, 0x1000193
inc ebx
test cl, cl
jne 0x408072
mov dword [ebp - 0x24], esi
cmp dword [ebp - 0x24], 0x1aa08cfe
mov esi, dword [ebp - 0x38]
je 0x4080d0
mov eax, dword [ebp - 0x3c]
test edi, edi
jne 0x408055
mov ecx, dword [ebp - 0x34]
mov eax, dword [ecx]
mov ecx, eax
mov dword [ebp - 0x34], eax
cmp eax, dword [ebp - 0x28]
je 0x4080ea
xor eax, eax
cmp dword [ecx + 0x18], eax
jne 0x408033
jmp 0x4080ec
mov ebx, dword [ebp - 0x2c]
mov eax, dword [ebx + 0x24]
lea eax, [eax + edi*2]
movzx ecx, word [eax + edx]
mov eax, dword [ebx + 0x1c]
lea eax, [eax + ecx*4]
mov ecx, dword [eax + edx]
add ecx, edx
jmp 0x4080ee
xor eax, eax
mov ecx, eax
mov ebx, dword [ebp - 0x30]
mov dword [0x4e5c1c], ecx
mov eax, dword [esi + 0x34]
lea edx, [esi + 0x18]
cmp dword [edx + 0x14], 7
mov edi, dword [esi + 0x30]
mov dword [ebp - 0x30], eax
mov eax, dword [esi + 0x38]
mov dword [ebp - 0x28], eax
mov eax, dword [esi + 0x3c]
mov dword [ebp - 0x2c], eax
jbe 0x408117
mov edx, dword [edx]
cmp dword [esi + 0x14], 7
jbe 0x40811f
mov esi, dword [esi]
push dword [ebp - 0x30]
cmp dword [ebp - 0xc], 7
lea eax, [ebp - 0x20]
push edi
push dword [ebp - 0x2c]
cmova eax, dword [ebp - 0x20]
push dword [ebp - 0x28]
push edx
push esi
push ebx
push eax
call ecx
add esp, 0x20
lea ecx, [ebp - 0x20]
cmp dword [ebp - 0xc], 7
cmova ecx, dword [ebp - 0x20]
push eax
push ecx
mov ecx, dword [ebp - 0x40]
call fcn.0040c221
lea ecx, [ebp - 0x20]
call fcn.0040c4e8
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x40]
xor ecx, ebp
pop edi
pop esi
pop ebx
call fcn.004b0ce6
leave
ret 4