Function at 0x414c20
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x41f0a6
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 8
push ebx
push ebp
push esi
mov dword [esp + 0xc], ecx
push edi
mov edi, 0x4277e8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
push ecx
call fcn.00419780
mov ebp, eax
mov edi, 0x4277e8
or ecx, 0xffffffff
xor eax, eax
add esp, 4
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x30]
mov esi, ebp
mov eax, dword [ecx]
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x414cad
test cl, cl
je 0x414ca7
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x414cad
add eax, 2
add esi, 2
test cl, cl
jne 0x414c83
xor edi, edi
xor eax, eax
jmp 0x414cb4
sbb eax, eax
sbb eax, 0xffffffff
xor edi, edi
xor ebx, ebx
cmp eax, edi
push ebp
sete bl
call fcn.004192d0
add esp, 4
test bl, bl
je 0x414d41
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x10]
lea eax, [eax + eax*2]
mov edx, dword [ecx + eax*4 + 4]
lea ebp, [ecx + eax*4]
push edx
call fcn.004192d0
add esp, 4
mov dword [ebp + 4], edi
mov eax, dword [ebp + 8]
push eax
call fcn.004192d0
mov edi, 0x4277e8
or ecx, 0xffffffff
xor eax, eax
add esp, 4
repne scasb al, byte es:[edi]
not ecx
push ecx
call fcn.00419780
mov edx, eax
mov edi, 0x4277e8
or ecx, 0xffffffff
xor eax, eax
add esp, 4
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, 1
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x2c]
mov dword [ebp + 8], edx
mov dword [ebp], ecx
jmp 0x414e36
push 0x20
call fcn.00419780
mov esi, eax
add esp, 4
mov dword [esp + 0x14], esi
cmp esi, edi
mov dword [esp + 0x20], edi
je 0x414d8f
mov edx, dword [esp + 0x30]
lea ecx, [esi + 8]
mov eax, dword [edx]
mov byte [esi + 4], 0
mov dword [ecx], edi
mov dword [ecx + 4], edi
mov dword [ecx + 8], 0xffffffff
mov dword [ecx + 0xc], edi
mov byte [ecx + 0x10], 0
push eax
mov byte [esp + 0x24], 1
mov dword [esi], vtable.ter.0
call fcn.00407480
mov byte [esi + 4], al
jmp 0x414d91
xor esi, esi
cmp esi, edi
mov dword [esp + 0x20], 0xffffffff
je 0x414e34
mov al, byte [esi + 4]
test al, al
je 0x414e1f
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x2c]
lea eax, [eax + eax*2]
lea ebx, [ecx + eax*4]
mov dword [ebx], edx
mov eax, dword [ebx + 4]
push eax
call fcn.004192d0
add esp, 4
mov dword [ebx + 4], esi
xor eax, eax
push ecx
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x2c], esp
mov ebp, esp
mov esi, dword [ecx]
or ecx, 0xffffffff
mov edi, esi
repne scasb al, byte es:[edi]
not ecx
push ecx
call fcn.00419780
mov edx, eax
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
add esp, 4
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebx + 8]
mov dword [ebp], edx
call fcn.0040e8b0
mov eax, 1
jmp 0x414e36
cmp esi, edi
je 0x414e34
lea ecx, [esi + 8]
call fcn.004075c0
push esi
call fcn.004192d0
add esp, 4
xor eax, eax
mov ecx, dword [esp + 0x18]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x14
ret 0xc