Function at 0x4f3790
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x532c0f
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.004ed640
mov ebx, dword [esp + 0x34]
mov edi, 1
cmp ebx, 0x7f
mov dword [esp + 0x28], edi
ja 0x4f3827
mov eax, dword [esp + 0x18]
cmp eax, edi
jb 0x4f37f3
mov ecx, dword [0xa5adb4]
push ecx
push edi
lea ecx, [esp + 0x18]
call fcn.004f50d0
jmp 0x4f3803
mov edx, edi
push 0
sub edx, eax
lea ecx, [esp + 0x14]
push edx
call fcn.004f5000
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4f381d
lea ecx, [esp + 0x10]
call fcn.004f1410
mov eax, dword [esp + 0x14]
jmp 0x4f3a97
mov eax, 0xa5ad70
jmp 0x4f3a97
cmp ebx, 0x7ff
ja 0x4f38c7
mov eax, dword [esp + 0x18]
cmp eax, 2
jb 0x4f384f
mov eax, dword [0xa5adb4]
lea ecx, [esp + 0x10]
push eax
push 2
call fcn.004f50d0
jmp 0x4f3862
mov ecx, 2
push 0
sub ecx, eax
push ecx
lea ecx, [esp + 0x18]
call fcn.004f5000
cmp dword [esp + 0x18], edi
jb 0x4f3882
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4f3882
lea ecx, [esp + 0x10]
call fcn.004f1410
mov edx, dword [esp + 0x14]
lea eax, [edx + 1]
jmp 0x4f3887
mov eax, 0xa5ad70
mov cl, bl
and cl, 0x3f
or cl, 0x80
mov byte [eax], cl
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4f38b4
lea ecx, [esp + 0x10]
call fcn.004f1410
mov eax, dword [esp + 0x14]
shr ebx, 6
and bl, 0x1f
or bl, 0xc0
jmp 0x4f3a97
shr ebx, 6
and bl, 0x1f
mov eax, 0xa5ad70
or bl, 0xc0
jmp 0x4f3a97
cmp ebx, 0xffff
ja 0x4f399d
mov eax, dword [esp + 0x18]
cmp eax, 3
jb 0x4f38f0
mov edx, dword [0xa5adb4]
lea ecx, [esp + 0x10]
push edx
push 3
call fcn.004f50d0
jmp 0x4f3903
mov ecx, 3
push 0
sub ecx, eax
push ecx
lea ecx, [esp + 0x18]
call fcn.004f5000
cmp dword [esp + 0x18], 2
jb 0x4f3924
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4f3924
lea ecx, [esp + 0x10]
call fcn.004f1410
mov edx, dword [esp + 0x14]
lea eax, [edx + 2]
jmp 0x4f3929
mov eax, 0xa5ad70
mov cl, bl
and cl, 0x3f
or cl, 0x80
mov byte [eax], cl
mov eax, dword [esp + 0x18]
cmp eax, edi
jb 0x4f3955
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4f3955
lea ecx, [esp + 0x10]
call fcn.004f1410
mov edx, dword [esp + 0x14]
lea eax, [edx + 1]
jmp 0x4f395a
mov eax, 0xa5ad70
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 0x4f398a
lea ecx, [esp + 0x10]
call fcn.004f1410
mov eax, dword [esp + 0x14]
shr ebx, 0xc
and bl, 0xf
or bl, 0xe0
jmp 0x4f3a97
shr ebx, 0xc
and bl, 0xf
mov eax, 0xa5ad70
or bl, 0xe0
jmp 0x4f3a97
cmp ebx, 0x10ffff
ja 0x4f3a99
mov eax, dword [esp + 0x18]
cmp eax, 4
jb 0x4f39c6
mov edx, dword [0xa5adb4]
lea ecx, [esp + 0x10]
push edx
push 4
call fcn.004f50d0
jmp 0x4f39d9
mov ecx, 4
push 0
sub ecx, eax
push ecx
lea ecx, [esp + 0x18]
call fcn.004f5000
cmp dword [esp + 0x18], 3
jb 0x4f39fa
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4f39fa
lea ecx, [esp + 0x10]
call fcn.004f1410
mov edx, dword [esp + 0x14]
lea eax, [edx + 3]
jmp 0x4f39ff
mov eax, 0xa5ad70
mov cl, bl
and cl, 0x3f
or cl, 0x80
mov byte [eax], cl
mov eax, dword [esp + 0x18]
cmp eax, 2
jb 0x4f3a2c
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4f3a2c
lea ecx, [esp + 0x10]
call fcn.004f1410
mov edx, dword [esp + 0x14]
lea eax, [edx + 2]
jmp 0x4f3a31
mov eax, 0xa5ad70
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 0x4f3a60
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4f3a60
lea ecx, [esp + 0x10]
call fcn.004f1410
mov edx, dword [esp + 0x14]
lea eax, [edx + 1]
jmp 0x4f3a65
mov eax, 0xa5ad70
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 0x4f3a89
lea ecx, [esp + 0x10]
call fcn.004f1410
mov eax, dword [esp + 0x14]
jmp 0x4f3a8e
mov eax, 0xa5ad70
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.004f4590
mov dword [esp + 0xc], edi
push edi
lea ecx, [esp + 0x14]
mov byte [esp + 0x2c], 0
call fcn.004ed640
mov ecx, dword [esp + 0x20]
mov eax, esi
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
add esp, 0x20
ret