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

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x48
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 4], eax
movups xmm0, xmmword [str.0000000000000000000000000000000]
push esi
push edi
movups xmmword [ebp - 0x30], xmm0
push 0x4d2
movups xmm0, xmmword [0x41b8cc]
push str.Injecting_to_PID:__i
movups xmmword [ebp - 0x20], xmm0
call fcn.00401010
mov eax, dword fs:[0x30]
add esp, 8
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
nop dword [eax]
mov esi, dword [eax + 0x18]
mov dword [ebp - 0x34], esi
mov ecx, dword [esi + 0x3c]
mov ecx, dword [ecx + esi + 0x78]
add ecx, esi
mov dword [ebp - 0x38], ecx
cmp ecx, esi
je 0x401107
mov edi, dword [ecx + 0x18]
test edi, edi
je 0x401107
mov ecx, dword [ecx + 0x20]
lea ecx, [ecx + edi*4]
add ecx, esi
mov edx, dword [ecx - 4]
sub ecx, 4
add edx, esi
mov dword [ebp - 0x3c], ecx
dec edi
mov esi, 0xc4e040d5
mov cl, byte [edx]
inc edx
test cl, cl
je 0x4010fd
nop dword [eax]
movsx ecx, cl
lea edx, [edx + 1]
xor ecx, esi
imul esi, ecx, 0x1000193
mov cl, byte [edx - 1]
test cl, cl
jne 0x4010e0
cmp esi, 0x891c89a6
je 0x40110b
mov ecx, dword [ebp - 0x3c]
mov esi, dword [eax + 0x18]
test edi, edi
jne 0x4010c5
mov eax, dword [eax]
jmp 0x4010a0
mov esi, dword [ebp - 0x38]
mov edx, dword [ebp - 0x34]
push 0x4d2
push 0
mov eax, dword [esi + 0x24]
push 0x1fffff
lea eax, [eax + edi*2]
movzx ecx, word [eax + edx]
mov eax, dword [esi + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + edx]
add eax, edx
call eax
mov ecx, dword fs:[0x30]
mov dword [ebp - 0x44], eax
mov ecx, dword [ecx + 0xc]
mov ecx, dword [ecx + 0xc]
mov esi, dword [ecx + 0x18]
mov dword [ebp - 0x34], esi
mov edx, dword [esi + 0x3c]
mov eax, dword [edx + esi + 0x78]
add eax, esi
mov dword [ebp - 0x38], eax
cmp eax, esi
je 0x4011af
mov edi, dword [eax + 0x18]
test edi, edi
je 0x4011af
mov eax, dword [eax + 0x20]
lea eax, [eax + edi*4]
add eax, esi
nop dword [eax]
mov edx, dword [eax - 4]
sub eax, 4
add edx, esi
mov dword [ebp - 0x3c], eax
dec edi
mov esi, 0xb7bfd8b3
mov al, byte [edx]
inc edx
test al, al
je 0x4011a5
movsx eax, al
lea edx, [edx + 1]
xor eax, esi
imul esi, eax, 0x1000193
mov al, byte [edx - 1]
test al, al
jne 0x401188
cmp esi, 0xeb64c37a
je 0x4011b3
mov eax, dword [ebp - 0x3c]
mov esi, dword [ecx + 0x18]
test edi, edi
jne 0x401170
mov ecx, dword [ecx]
jmp 0x401144
mov esi, dword [ebp - 0x38]
mov edx, dword [ebp - 0x34]
push 0x40
push 0x3000
mov eax, dword [esi + 0x24]
push 0x8ae
push 0
push dword [ebp - 0x44]
lea eax, [eax + edi*2]
movzx ecx, word [eax + edx]
mov eax, dword [esi + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + edx]
add eax, edx
call eax
push 0x41b8f4
mov dword [ebp - 0x3c], eax
call fcn.00401010
mov eax, 1
add esp, 4
mov dword [ebp - 0x34], eax
nop dword [eax]
mov edi, 1
mov esi, 1
nop word [eax + eax]
cmp eax, esi
je 0x40122f
cmp eax, edi
je 0x40122f
cmp edi, esi
je 0x40122f
push esi
push edi
push eax
push str._d__d__d_n
call fcn.00401010
mov eax, dword [ebp - 0x34]
add esp, 0x10
inc esi
cmp esi, 5
jl 0x401210
inc edi
cmp edi, 5
jl 0x401205
inc eax
mov dword [ebp - 0x34], eax
cmp eax, 5
jl 0x401200
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov esi, dword [eax + 0x18]
mov dword [ebp - 0x40], esi
mov ecx, dword [esi + 0x3c]
mov ecx, dword [ecx + esi + 0x78]
add ecx, esi
mov dword [ebp - 0x34], ecx
cmp ecx, esi
je 0x4012b7
mov edi, dword [ecx + 0x18]
test edi, edi
je 0x4012b7
mov ecx, dword [ecx + 0x20]
lea ecx, [ecx + edi*4]
add ecx, esi
mov edx, dword [ecx - 4]
sub ecx, 4
add edx, esi
mov dword [ebp - 0x38], ecx
dec edi
mov esi, 0xdd4d8ee4
mov cl, byte [edx]
inc edx
test cl, cl
je 0x4012ad
nop dword [eax]
movsx ecx, cl
lea edx, [edx + 1]
xor ecx, esi
imul esi, ecx, 0x1000193
mov cl, byte [edx - 1]
test cl, cl
jne 0x401290
cmp esi, 0x12538d6b
je 0x4012bb
mov ecx, dword [ebp - 0x38]
mov esi, dword [eax + 0x18]
test edi, edi
jne 0x401275
mov eax, dword [eax]
jmp 0x401250
mov esi, dword [ebp - 0x34]
mov edx, dword [ebp - 0x40]
push 0
push 0x8ae
mov eax, dword [esi + 0x24]
lea eax, [eax + edi*2]
movzx ecx, word [eax + edx]
mov eax, dword [esi + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + edx]
lea ecx, [ebp - 0x30]
push ecx
push dword [ebp - 0x3c]
add eax, edx
push dword [ebp - 0x44]
call eax
movss xmm3, dword [0x41b928]
mov esi, 0x40
movss xmm0, dword [0x41b92c]
movss dword [ebp - 0x34], xmm3
movaps xmm1, xmm3
movss dword [ebp - 0x38], xmm0
mulss xmm1, xmm3
movss dword [ebp - 0x40], xmm1
movaps xmm2, xmm0
mov eax, 0x2e
mulss xmm2, xmm0
movaps xmm0, xmm1
addss xmm0, xmm2
mulss xmm2, xmm3
mulss xmm2, xmm3
subss xmm0, dword [0x41b910]
mulss xmm2, xmm3
movaps xmm1, xmm0
mulss xmm1, xmm0
mulss xmm1, xmm0
xorps xmm0, xmm0
subss xmm1, xmm2
comiss xmm0, xmm1
cmovae eax, esi
push eax
call fcn.00406547
movss xmm0, dword [ebp - 0x38]
add esp, 4
movss xmm1, dword [0x41b928]
movss xmm3, dword [ebp - 0x34]
cvtps2pd xmm0, xmm0
addsd xmm0, qword [0x41b918]
cvtpd2ps xmm0, xmm0
comiss xmm1, xmm0
movss xmm1, dword [ebp - 0x40]
movss dword [ebp - 0x38], xmm0
ja 0x401314
push str.color_0c
call fcn.0040638d
push 0xa
call fcn.00406547
movss xmm0, dword [ebp - 0x34]
add esp, 8
cvtps2pd xmm0, xmm0
subsd xmm0, qword [0x41b920]
cvtpd2ps xmm3, xmm0
movss xmm0, dword [0x41b92c]
comiss xmm3, xmm0
movss dword [ebp - 0x34], xmm3
ja 0x401303
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov esi, dword [eax + 0x18]
mov dword [ebp - 0x34], esi
mov ecx, dword [esi + 0x3c]
mov ecx, dword [ecx + esi + 0x78]
add ecx, esi
mov dword [ebp - 0x38], ecx
cmp ecx, esi
je 0x40143f
mov edi, dword [ecx + 0x18]
test edi, edi
je 0x40143f
mov ecx, dword [ecx + 0x20]
lea ecx, [ecx + edi*4]
add ecx, esi
nop dword [eax + eax]
mov edx, dword [ecx - 4]
sub ecx, 4
add edx, esi
mov dword [ebp - 0x40], ecx
dec edi
mov esi, 0x341d6bd6
mov cl, byte [edx]
inc edx
test cl, cl
je 0x401435
movsx ecx, cl
lea edx, [edx + 1]
xor ecx, esi
imul esi, ecx, 0x1000193
mov cl, byte [edx - 1]
test cl, cl
jne 0x401418
cmp esi, 0xcef46f28
je 0x401443
mov ecx, dword [ebp - 0x40]
mov esi, dword [eax + 0x18]
test edi, edi
jne 0x401400
mov eax, dword [eax]
jmp 0x4013d6
mov esi, dword [ebp - 0x38]
mov edx, dword [ebp - 0x34]
push 0
push 0
mov eax, dword [esi + 0x24]
push 0
push dword [ebp - 0x3c]
lea eax, [eax + edi*2]
movzx ecx, word [eax + edx]
mov eax, dword [esi + 0x1c]
push 0
push 0
push dword [ebp - 0x44]
lea eax, [eax + ecx*4]
mov eax, dword [eax + edx]
add eax, edx
call eax
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
nop dword [eax]
mov esi, dword [eax + 0x18]
mov dword [ebp - 0x38], esi
mov ecx, dword [esi + 0x3c]
mov ecx, dword [ecx + esi + 0x78]
add ecx, esi
mov dword [ebp - 0x3c], ecx
cmp ecx, esi
je 0x4014e7
mov edi, dword [ecx + 0x18]
test edi, edi
je 0x4014e7
mov ecx, dword [ecx + 0x20]
lea ecx, [ecx + edi*4]
add ecx, esi
mov edx, dword [ecx - 4]
sub ecx, 4
add edx, esi
mov dword [ebp - 0x40], ecx
dec edi
mov esi, 0x4b0e8581
mov cl, byte [edx]
inc edx
test cl, cl
je 0x4014dd
nop dword [eax]
movsx ecx, cl
lea edx, [edx + 1]
xor ecx, esi
imul esi, ecx, 0x1000193
mov cl, byte [edx - 1]
test cl, cl
jne 0x4014c0
cmp esi, 0xdfe2dc21
je 0x4014eb
mov ecx, dword [ebp - 0x40]
mov esi, dword [eax + 0x18]
test edi, edi
jne 0x4014a5
mov eax, dword [eax]
jmp 0x401480
mov esi, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x38]
push dword [ebp - 0x44]
mov eax, dword [esi + 0x24]
lea eax, [eax + edi*2]
movzx ecx, word [eax + edx]
mov eax, dword [esi + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + edx]
add eax, edx
call eax
mov ecx, dword [ebp - 4]
xor eax, eax
pop edi
xor ecx, ebp
pop esi
call fcn.00401520
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret