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

Disassembly:
sub esp, 0x10
push ebx
push ebp
push esi
push edi
mov edi, ecx
cmp edi, dword [esp + 0x28]
je 0x41f69f
mov eax, dword [0x4ca4b8]
test eax, eax
jne 0x41f69d
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov edx, dword [eax + 0x18]
mov ecx, dword [edx + 0x3c]
mov ebp, dword [ecx + edx + 0x78]
add ebp, edx
cmp ebp, edx
je 0x41f67f
mov esi, dword [ebp + 0x18]
test esi, esi
je 0x41f67f
mov ecx, dword [ebp + 0x20]
lea ecx, [ecx + esi*4]
add ecx, edx
sub ecx, 4
mov dword [esp + 0x18], 0xe5cffacf
dec esi
mov dword [esp + 0x1c], ecx
mov ebx, dword [ecx]
add ebx, edx
mov dl, byte [ebx]
inc ebx
mov byte [esp + 0x17], dl
test dl, dl
mov edx, dword [eax + 0x18]
je 0x41f67b
mov cl, byte [esp + 0x17]
mov edx, dword [esp + 0x18]
movsx ecx, cl
xor ecx, edx
imul edx, ecx, 0x1000193
mov cl, byte [ebx]
inc ebx
test cl, cl
jne 0x41f654
mov dword [esp + 0x18], edx
cmp dword [esp + 0x18], 0x55ae15c3
mov edx, dword [eax + 0x18]
je 0x41f683
mov ecx, dword [esp + 0x1c]
test esi, esi
jne 0x41f62a
mov eax, dword [eax]
jmp 0x41f60b
mov eax, dword [ebp + 0x24]
lea eax, [eax + esi*2]
movzx ecx, word [eax + edx]
mov eax, dword [ebp + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + edx]
add eax, edx
mov dword [0x4ca4b8], eax
call eax
mov ebx, dword [esp + 0x24]
mov ecx, edi
push ebx
call fcn.0041e8e5
movzx eax, byte [edi]
dec eax
cmp eax, 7
ja case.default.0x41f6bf
movzx eax, byte [eax + 0x41f8f3]
jmp dword [eax*4 + 0x41f8e7]
cmp dword [esp + 0x34], 0
je 0x41f782
mov eax, dword [0x4ca4c0]
test eax, eax
jne 0x41f780
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov edx, dword [eax + 0x18]
mov ecx, dword [edx + 0x3c]
mov ebp, dword [ecx + edx + 0x78]
add ebp, edx
cmp ebp, edx
je 0x41f75e
mov esi, dword [ebp + 0x18]
test esi, esi
je 0x41f75e
mov ecx, dword [ebp + 0x20]
lea ecx, [ecx + esi*4]
add ecx, edx
sub ecx, 4
mov dword [esp + 0x18], 0x2a6a4bc4
dec esi
mov dword [esp + 0x1c], ecx
mov ebx, dword [ecx]
add ebx, edx
mov dl, byte [ebx]
inc ebx
mov byte [esp + 0x17], dl
test dl, dl
mov edx, dword [eax + 0x18]
je 0x41f75a
mov cl, byte [esp + 0x17]
mov edx, dword [esp + 0x18]
movsx ecx, cl
xor ecx, edx
imul edx, ecx, 0x1000193
mov cl, byte [ebx]
inc ebx
test cl, cl
jne 0x41f733
mov dword [esp + 0x18], edx
cmp dword [esp + 0x18], 0x46f3209e
mov edx, dword [eax + 0x18]
je 0x41f762
mov ecx, dword [esp + 0x1c]
test esi, esi
jne 0x41f709
mov eax, dword [eax]
jmp 0x41f6ea
mov eax, dword [ebp + 0x24]
mov ebx, dword [esp + 0x24]
lea eax, [eax + esi*2]
movzx ecx, word [eax + edx]
mov eax, dword [ebp + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + edx]
add eax, edx
mov dword [0x4ca4c0], eax
call eax
mov al, byte [edi]
cmp al, 3
jne 0x41f794
mov ecx, dword [edi + 8]
call fcn.004151f6
push 0x18
jmp 0x41f7a2
cmp al, 8
jne 0x41f7b0
mov ecx, dword [edi + 8]
call fcn.00415138
push 0x10
push dword [edi + 8]
call fcn.0046c503
and dword [edi + 8], 0
pop ecx
pop ecx
mov byte [edi], 0
jmp 0x41f8d9
mov esi, dword [esp + 0x2c]
lea ecx, [esp + 0x24]
mov dword [esp + 0x24], esi
call fcn.00415d14
mov ecx, dword [edi + 8]
push esi
call fcn.004204bf
mov edx, eax
call fcn.004177ec
mov eax, dword [esp + 0x24]
mov dword [ebx + 4], eax
jmp 0x41f8d9
mov esi, dword [edi + 8]
mov ebp, dword [esp + 0x30]
add esi, 4
mov dword [esp + 0x18], esi
mov eax, dword [esi]
lea edi, [ebp + 0x10]
cmp edi, eax
je 0x41f824
mov ebx, ebp
mov esi, eax
sub esp, 0x10
mov ecx, esp
push edi
call fcn.00415b42
mov ecx, ebx
call fcn.0041c519
add edi, 0x10
add ebx, 0x10
cmp edi, esi
jne 0x41f800
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x24]
mov ecx, dword [esi]
sub ecx, 0x10
call fcn.00413d86
add dword [esi], 0xfffffff0
mov dword [ebx + 8], ebp
jmp 0x41f8d9
mov eax, dword [0x4ca4c8]
test eax, eax
jne 0x41f8d7
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov edx, dword [eax + 0x18]
mov ecx, dword [edx + 0x3c]
mov ebx, dword [ecx + edx + 0x78]
add ebx, edx
cmp ebx, edx
je 0x41f8b5
mov esi, dword [ebx + 0x18]
test esi, esi
je 0x41f8b5
mov ecx, dword [ebx + 0x20]
lea ebp, [ecx + esi*4]
add ebp, edx
lea ebp, [ebp - 4]
mov ecx, 0x22d0b6f4
mov edi, dword [ebp]
dec esi
add edi, edx
mov dword [esp + 0x18], ecx
mov cl, byte [edi]
inc edi
test cl, cl
je 0x41f8b1
mov edx, dword [esp + 0x18]
movsx ecx, cl
xor ecx, edx
imul edx, ecx, 0x1000193
mov cl, byte [edi]
inc edi
test cl, cl
jne 0x41f88e
mov dword [esp + 0x18], edx
cmp dword [esp + 0x18], 0x9db8adee
mov edx, dword [eax + 0x18]
je 0x41f8b9
test esi, esi
jne 0x41f871
mov eax, dword [eax]
jmp 0x41f852
mov eax, dword [ebx + 0x24]
lea eax, [eax + esi*2]
movzx ecx, word [eax + edx]
mov eax, dword [ebx + 0x1c]
mov ebx, dword [esp + 0x24]
lea ecx, [eax + ecx*4]
mov eax, dword [ecx + edx]
add eax, edx
mov dword [0x4ca4c8], eax
call eax
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
add esp, 0x10
ret 0x14