Function at 0x401100
Capabilities:
Access peb ldr_data
Encode data using xor
Get process filename
Hash data using fnv

Disassembly:
sub esp, 0x14
mov eax, dword fs:[0x30]
push ebx
push ebp
push esi
mov eax, dword [eax + 0xc]
push edi
mov dword [esp + 0x20], ecx
mov eax, dword [eax + 0xc]
nop word [eax + eax]
mov ebp, dword [eax + 0x18]
mov ecx, dword [ebp + 0x3c]
mov ecx, dword [ecx + ebp + 0x78]
add ecx, ebp
mov dword [esp + 0x14], ecx
cmp ecx, ebp
je 0x401179
mov edi, dword [ecx + 0x18]
test edi, edi
je 0x401179
mov ecx, dword [ecx + 0x20]
lea ebx, [ecx + edi*4]
add ebx, ebp
mov edx, dword [ebx - 4]
lea ebx, [ebx - 4]
add edx, ebp
dec edi
mov esi, 0x357b8f82
mov cl, byte [edx]
inc edx
test cl, cl
je 0x401175
movsx ecx, cl
lea edx, [edx + 1]
xor ecx, esi
imul esi, ecx, 0x1000193
mov cl, byte [edx - 1]
test cl, cl
jne 0x401158
cmp esi, 0x122dfda5
je 0x40117d
test edi, edi
jne 0x401143
mov eax, dword [eax]
jmp 0x401120
mov edx, dword [esp + 0x14]
push dword [esp + 0x20]
mov eax, dword [edx + 0x24]
lea eax, [eax + edi*2]
movzx ecx, word [eax + ebp]
mov eax, dword [edx + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + ebp]
add eax, ebp
call eax
mov ecx, dword fs:[0x30]
mov dword [esp + 0x18], eax
mov ecx, dword [ecx + 0xc]
mov ecx, dword [ecx + 0xc]
nop dword [eax]
mov ebp, dword [ecx + 0x18]
mov edx, dword [ebp + 0x3c]
mov eax, dword [edx + ebp + 0x78]
add eax, ebp
mov dword [esp + 0x14], eax
cmp eax, ebp
je 0x401209
mov edi, dword [eax + 0x18]
test edi, edi
je 0x401209
mov eax, dword [eax + 0x20]
lea ebx, [eax + edi*4]
add ebx, ebp
mov edx, dword [ebx - 4]
lea ebx, [ebx - 4]
add edx, ebp
dec edi
mov esi, 0x4682660a
mov al, byte [edx]
inc edx
test al, al
je 0x401205
movsx eax, al
lea edx, [edx + 1]
xor eax, esi
imul esi, eax, 0x1000193
mov al, byte [edx - 1]
test al, al
jne 0x4011e8
cmp esi, 0x4cf5df8b
je 0x40120d
test edi, edi
jne 0x4011d3
mov ecx, dword [ecx]
jmp 0x4011b0
mov edx, dword [esp + 0x14]
push 0x26a
push 0x36c
push dword [esp + 0x28]
mov eax, dword [edx + 0x24]
lea eax, [eax + edi*2]
movzx ecx, word [eax + ebp]
mov eax, dword [edx + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + ebp]
add eax, ebp
call eax
mov ecx, dword fs:[0x30]
mov dword [esp + 0x14], eax
mov ecx, dword [ecx + 0xc]
mov ecx, dword [ecx + 0xc]
nop word [eax + eax]
mov ebp, dword [ecx + 0x18]
mov edx, dword [ebp + 0x3c]
mov eax, dword [edx + ebp + 0x78]
add eax, ebp
mov dword [esp + 0x10], eax
cmp eax, ebp
je 0x4012a9
mov edi, dword [eax + 0x18]
test edi, edi
je 0x4012a9
mov eax, dword [eax + 0x20]
lea ebx, [eax + edi*4]
add ebx, ebp
mov edx, dword [ebx - 4]
lea ebx, [ebx - 4]
add edx, ebp
dec edi
mov esi, 0x438022ba
mov al, byte [edx]
inc edx
test al, al
je 0x4012a5
movsx eax, al
lea edx, [edx + 1]
xor eax, esi
imul esi, eax, 0x1000193
mov al, byte [edx - 1]
test al, al
jne 0x401288
cmp esi, 0x96d6ee59
je 0x4012ad
test edi, edi
jne 0x401273
mov ecx, dword [ecx]
jmp 0x401250
mov edx, dword [esp + 0x10]
push dword [esp + 0x14]
mov ebx, dword [esp + 0x1c]
push ebx
mov eax, dword [edx + 0x24]
lea eax, [eax + edi*2]
movzx ecx, word [eax + ebp]
mov eax, dword [edx + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + ebp]
add eax, ebp
call eax
push 2
push ebx
mov dword [esp + 0x24], eax
call dword [sym.imp.GDI32.dll_SetGraphicsMode]
mov edi, dword [sym.imp.GDI32.dll_CreateSolidBrush]
push 0x1c1716
call edi
mov esi, dword [sym.imp.GDI32.dll_CreatePen]
mov ebp, eax
push 0
push 0
push 5
call esi
push 0x25201d
mov ebx, eax
call edi
push 0
push 0
push 5
mov dword [esp + 0x1c], eax
call esi
mov esi, dword [sym.imp.GDI32.dll_SelectObject]
mov edi, eax
push ebp
mov ebp, dword [esp + 0x1c]
push ebp
call esi
push ebx
push ebp
call esi
push 0x26a
push 0x36c
push 0
push 0
push ebp
call dword [sym.imp.GDI32.dll_Rectangle]
push dword [esp + 0x10]
push ebp
call esi
push edi
push ebp
call esi
mov esi, dword [sym.imp.GDI32.dll_RoundRect]
push 0x14
push 0x14
push 0x25d
push 0x63
push 0xc
push 0xe
push ebp
call esi
push 0x14
push 0x14
push 0x118
push 0x235
push 0x2e
push 0x7a
push ebp
call esi
push 0x14
push 0x14
push 0x118
push 0x35d
push 0x2e
push 0x242
push ebp
call esi
push 0x14
push 0x14
push 0x19a
push 0x169
push 0x125
push 0x7a
push ebp
call esi
push 0x14
push 0x14
push 0x19a
push 0x264
push 0x125
push 0x175
push ebp
call esi
push 0x14
push 0x14
push 0x19a
push 0x35d
push 0x125
push 0x271
push ebp
call esi
push 0x14
push 0x14
push 0x258
push 0x1f8
push 0x1a7
push 0x7a
push ebp
call esi
push 0x14
push 0x14
push 0x258
push 0x35d
push 0x1a7
push 0x205
push ebp
call esi
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov ebp, dword [eax + 0x18]
mov ecx, dword [ebp + 0x3c]
mov ecx, dword [ecx + ebp + 0x78]
add ecx, ebp
mov dword [esp + 0x10], ecx
cmp ecx, ebp
je 0x401476
mov edi, dword [ecx + 0x18]
test edi, edi
je 0x401476
mov ecx, dword [ecx + 0x20]
lea ebx, [ecx + edi*4]
add ebx, ebp
nop dword [eax]
mov edx, dword [ebx - 4]
lea ebx, [ebx - 4]
add edx, ebp
dec edi
mov esi, 0xa1265f7c
mov cl, byte [edx]
inc edx
test cl, cl
je 0x401472
movsx ecx, cl
lea edx, [edx + 1]
xor ecx, esi
imul esi, ecx, 0x1000193
mov cl, byte [edx - 1]
test cl, cl
jne 0x401455
cmp esi, 0x841aa587
je 0x40147a
test edi, edi
jne 0x401440
mov eax, dword [eax]
jmp 0x401416
mov edx, dword [esp + 0x10]
push 0xcc0020
push 0
push 0
mov eax, dword [edx + 0x24]
push dword [esp + 0x24]
push 0x26a
lea eax, [eax + edi*2]
movzx ecx, word [eax + ebp]
mov eax, dword [edx + 0x1c]
push 0x36c
push 0
push 0
push dword [esp + 0x40]
lea eax, [eax + ecx*4]
mov eax, dword [eax + ebp]
add eax, ebp
call eax
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov ebp, dword [eax + 0x18]
mov ecx, dword [ebp + 0x3c]
mov ecx, dword [ecx + ebp + 0x78]
add ecx, ebp
mov dword [esp + 0x10], ecx
cmp ecx, ebp
je 0x401519
mov edi, dword [ecx + 0x18]
test edi, edi
je 0x401519
mov ecx, dword [ecx + 0x20]
lea ebx, [ecx + edi*4]
add ebx, ebp
mov edx, dword [ebx - 4]
lea ebx, [ebx - 4]
add edx, ebp
dec edi
mov esi, 0xe1116190
mov cl, byte [edx]
inc edx
test cl, cl
je 0x401515
movsx ecx, cl
lea edx, [edx + 1]
xor ecx, esi
imul esi, ecx, 0x1000193
mov cl, byte [edx - 1]
test cl, cl
jne 0x4014f8
cmp esi, 0xce9f916f
je 0x40151d
test edi, edi
jne 0x4014e3
mov eax, dword [eax]
jmp 0x4014c0
mov edx, dword [esp + 0x10]
push dword [esp + 0x1c]
push dword [esp + 0x1c]
mov eax, dword [edx + 0x24]
lea eax, [eax + edi*2]
movzx ecx, word [eax + ebp]
mov eax, dword [edx + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + ebp]
add eax, ebp
call eax
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
nop dword [eax]
mov ebp, dword [eax + 0x18]
mov ecx, dword [ebp + 0x3c]
mov ecx, dword [ecx + ebp + 0x78]
add ecx, ebp
mov dword [esp + 0x1c], ecx
cmp ecx, ebp
je 0x4015a9
mov edi, dword [ecx + 0x18]
test edi, edi
je 0x4015a9
mov ecx, dword [ecx + 0x20]
lea ebx, [ecx + edi*4]
add ebx, ebp
mov edx, dword [ebx - 4]
lea ebx, [ebx - 4]
add edx, ebp
dec edi
mov esi, 0xf2183818
mov cl, byte [edx]
inc edx
test cl, cl
je 0x4015a5
movsx ecx, cl
lea edx, [edx + 1]
xor ecx, esi
imul esi, ecx, 0x1000193
mov cl, byte [edx - 1]
test cl, cl
jne 0x401588
cmp esi, 0xb28cfe98
je 0x4015ad
test edi, edi
jne 0x401573
mov eax, dword [eax]
jmp 0x401550
mov edx, dword [esp + 0x1c]
push dword [esp + 0x14]
mov eax, dword [edx + 0x24]
lea eax, [eax + edi*2]
movzx ecx, word [eax + ebp]
mov eax, dword [edx + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + ebp]
add eax, ebp
call eax
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
nop dword [eax + eax]
mov ebp, dword [eax + 0x18]
mov ecx, dword [ebp + 0x3c]
mov ecx, dword [ecx + ebp + 0x78]
add ecx, ebp
mov dword [esp + 0x1c], ecx
cmp ecx, ebp
je 0x401639
mov edi, dword [ecx + 0x18]
test edi, edi
je 0x401639
mov ecx, dword [ecx + 0x20]
lea ebx, [ecx + edi*4]
add ebx, ebp
mov ecx, dword [ebx - 4]
lea ebx, [ebx - 4]
add ecx, ebp
dec edi
mov esi, 0xf315fb14
mov dl, byte [ecx]
inc ecx
test dl, dl
je 0x401635
movsx edx, dl
lea ecx, [ecx + 1]
xor edx, esi
imul esi, edx, 0x1000193
mov dl, byte [ecx - 1]
test dl, dl
jne 0x401618
cmp esi, 0x1da18686
je 0x40163d
test edi, edi
jne 0x401603
mov eax, dword [eax]
jmp 0x4015e0
mov edx, dword [esp + 0x1c]
push dword [esp + 0x18]
mov eax, dword [edx + 0x24]
lea eax, [eax + edi*2]
movzx ecx, word [eax + ebp]
mov eax, dword [edx + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + ebp]
add eax, ebp
call eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret