Function at 0x4e8550
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x54149f
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x14
mov al, byte [esp + 0x28]
push ebx
push esi
push edi
push 0
lea ecx, [esp + 0x14]
mov dword [esp + 0x10], 0
mov byte [esp + 0x14], al
call fcn.004b7a70
mov ebx, dword [esp + 0x34]
mov edi, 1
cmp ebx, 0x7f
mov dword [esp + 0x28], edi
ja 0x4e85e7
mov eax, dword [esp + 0x18]
cmp eax, edi
jb 0x4e85b3
mov ecx, dword [0x1457364]
push ecx
push edi
lea ecx, [esp + 0x18]
call fcn.004e9e90
jmp 0x4e85c3
mov edx, edi
push 0
sub edx, eax
lea ecx, [esp + 0x14]
push edx
call fcn.004e9dc0
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4e85dd
lea ecx, [esp + 0x10]
call fcn.004e4990
mov eax, dword [esp + 0x14]
jmp 0x4e8857
mov eax, 0x1456f10
jmp 0x4e8857
cmp ebx, 0x7ff
ja 0x4e8687
mov eax, dword [esp + 0x18]
cmp eax, 2
jb 0x4e860f
mov eax, dword [0x1457364]
lea ecx, [esp + 0x10]
push eax
push 2
call fcn.004e9e90
jmp 0x4e8622
mov ecx, 2
push 0
sub ecx, eax
push ecx
lea ecx, [esp + 0x18]
call fcn.004e9dc0
cmp dword [esp + 0x18], edi
jb 0x4e8642
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4e8642
lea ecx, [esp + 0x10]
call fcn.004e4990
mov edx, dword [esp + 0x14]
lea eax, [edx + 1]
jmp 0x4e8647
mov eax, 0x1456f10
mov cl, bl
and cl, 0x3f
or cl, 0x80
mov byte [eax], cl
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4e8674
lea ecx, [esp + 0x10]
call fcn.004e4990
mov eax, dword [esp + 0x14]
shr ebx, 6
and bl, 0x1f
or bl, 0xc0
jmp 0x4e8857
shr ebx, 6
and bl, 0x1f
mov eax, 0x1456f10
or bl, 0xc0
jmp 0x4e8857
cmp ebx, 0xffff
ja 0x4e875d
mov eax, dword [esp + 0x18]
cmp eax, 3
jb 0x4e86b0
mov edx, dword [0x1457364]
lea ecx, [esp + 0x10]
push edx
push 3
call fcn.004e9e90
jmp 0x4e86c3
mov ecx, 3
push 0
sub ecx, eax
push ecx
lea ecx, [esp + 0x18]
call fcn.004e9dc0
cmp dword [esp + 0x18], 2
jb 0x4e86e4
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4e86e4
lea ecx, [esp + 0x10]
call fcn.004e4990
mov edx, dword [esp + 0x14]
lea eax, [edx + 2]
jmp 0x4e86e9
mov eax, 0x1456f10
mov cl, bl
and cl, 0x3f
or cl, 0x80
mov byte [eax], cl
mov eax, dword [esp + 0x18]
cmp eax, edi
jb 0x4e8715
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4e8715
lea ecx, [esp + 0x10]
call fcn.004e4990
mov edx, dword [esp + 0x14]
lea eax, [edx + 1]
jmp 0x4e871a
mov eax, 0x1456f10
mov ecx, ebx
shr ecx, 6
and cl, 0x3f
or cl, 0x80
mov byte [eax], cl
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4e874a
lea ecx, [esp + 0x10]
call fcn.004e4990
mov eax, dword [esp + 0x14]
shr ebx, 0xc
and bl, 0xf
or bl, 0xe0
jmp 0x4e8857
shr ebx, 0xc
and bl, 0xf
mov eax, 0x1456f10
or bl, 0xe0
jmp 0x4e8857
cmp ebx, 0x10ffff
ja 0x4e8859
mov eax, dword [esp + 0x18]
cmp eax, 4
jb 0x4e8786
mov edx, dword [0x1457364]
lea ecx, [esp + 0x10]
push edx
push 4
call fcn.004e9e90
jmp 0x4e8799
mov ecx, 4
push 0
sub ecx, eax
push ecx
lea ecx, [esp + 0x18]
call fcn.004e9dc0
cmp dword [esp + 0x18], 3
jb 0x4e87ba
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4e87ba
lea ecx, [esp + 0x10]
call fcn.004e4990
mov edx, dword [esp + 0x14]
lea eax, [edx + 3]
jmp 0x4e87bf
mov eax, 0x1456f10
mov cl, bl
and cl, 0x3f
or cl, 0x80
mov byte [eax], cl
mov eax, dword [esp + 0x18]
cmp eax, 2
jb 0x4e87ec
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4e87ec
lea ecx, [esp + 0x10]
call fcn.004e4990
mov edx, dword [esp + 0x14]
lea eax, [edx + 2]
jmp 0x4e87f1
mov eax, 0x1456f10
mov ecx, ebx
shr ecx, 6
and cl, 0x3f
or cl, 0x80
mov byte [eax], cl
mov eax, dword [esp + 0x18]
cmp eax, edi
jb 0x4e8820
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4e8820
lea ecx, [esp + 0x10]
call fcn.004e4990
mov edx, dword [esp + 0x14]
lea eax, [edx + 1]
jmp 0x4e8825
mov eax, 0x1456f10
mov ecx, ebx
shr ecx, 0xc
and cl, 0x3f
or cl, 0x80
mov byte [eax], cl
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4e8849
lea ecx, [esp + 0x10]
call fcn.004e4990
mov eax, dword [esp + 0x14]
jmp 0x4e884e
mov eax, 0x1456f10
shr ebx, 0x12
and bl, 7
or bl, 0xf0
mov byte [eax], bl
mov esi, dword [esp + 0x30]
lea edx, [esp + 0x10]
push edx
mov ecx, esi
call fcn.004e9350
mov dword [esp + 0xc], edi
push edi
lea ecx, [esp + 0x14]
mov byte [esp + 0x2c], 0
call fcn.004b7a70
mov ecx, dword [esp + 0x20]
mov eax, esi
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
add esp, 0x20
ret