Function at 0x46efb0
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x49decf
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.00468660
mov ebx, dword [esp + 0x34]
mov edi, 1
cmp ebx, 0x7f
mov dword [esp + 0x28], edi
ja 0x46f047
mov eax, dword [esp + 0x18]
cmp eax, edi
jb 0x46f013
mov ecx, dword [0x4b321c]
push ecx
push edi
lea ecx, [esp + 0x18]
call fcn.004708f0
jmp 0x46f023
mov edx, edi
push 0
sub edx, eax
lea ecx, [esp + 0x14]
push edx
call fcn.00470820
mov eax, dword [esp + 0x14]
test eax, eax
je 0x46f03d
lea ecx, [esp + 0x10]
call fcn.0046c1c0
mov eax, dword [esp + 0x14]
jmp 0x46f2b7
mov eax, 0x4b2dc8
jmp 0x46f2b7
cmp ebx, 0x7ff
ja 0x46f0e7
mov eax, dword [esp + 0x18]
cmp eax, 2
jb 0x46f06f
mov eax, dword [0x4b321c]
lea ecx, [esp + 0x10]
push eax
push 2
call fcn.004708f0
jmp 0x46f082
mov ecx, 2
push 0
sub ecx, eax
push ecx
lea ecx, [esp + 0x18]
call fcn.00470820
cmp dword [esp + 0x18], edi
jb 0x46f0a2
mov eax, dword [esp + 0x14]
test eax, eax
je 0x46f0a2
lea ecx, [esp + 0x10]
call fcn.0046c1c0
mov edx, dword [esp + 0x14]
lea eax, [edx + 1]
jmp 0x46f0a7
mov eax, 0x4b2dc8
mov cl, bl
and cl, 0x3f
or cl, 0x80
mov byte [eax], cl
mov eax, dword [esp + 0x14]
test eax, eax
je 0x46f0d4
lea ecx, [esp + 0x10]
call fcn.0046c1c0
mov eax, dword [esp + 0x14]
shr ebx, 6
and bl, 0x1f
or bl, 0xc0
jmp 0x46f2b7
shr ebx, 6
and bl, 0x1f
mov eax, 0x4b2dc8
or bl, 0xc0
jmp 0x46f2b7
cmp ebx, 0xffff
ja 0x46f1bd
mov eax, dword [esp + 0x18]
cmp eax, 3
jb 0x46f110
mov edx, dword [0x4b321c]
lea ecx, [esp + 0x10]
push edx
push 3
call fcn.004708f0
jmp 0x46f123
mov ecx, 3
push 0
sub ecx, eax
push ecx
lea ecx, [esp + 0x18]
call fcn.00470820
cmp dword [esp + 0x18], 2
jb 0x46f144
mov eax, dword [esp + 0x14]
test eax, eax
je 0x46f144
lea ecx, [esp + 0x10]
call fcn.0046c1c0
mov edx, dword [esp + 0x14]
lea eax, [edx + 2]
jmp 0x46f149
mov eax, 0x4b2dc8
mov cl, bl
and cl, 0x3f
or cl, 0x80
mov byte [eax], cl
mov eax, dword [esp + 0x18]
cmp eax, edi
jb 0x46f175
mov eax, dword [esp + 0x14]
test eax, eax
je 0x46f175
lea ecx, [esp + 0x10]
call fcn.0046c1c0
mov edx, dword [esp + 0x14]
lea eax, [edx + 1]
jmp 0x46f17a
mov eax, 0x4b2dc8
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 0x46f1aa
lea ecx, [esp + 0x10]
call fcn.0046c1c0
mov eax, dword [esp + 0x14]
shr ebx, 0xc
and bl, 0xf
or bl, 0xe0
jmp 0x46f2b7
shr ebx, 0xc
and bl, 0xf
mov eax, 0x4b2dc8
or bl, 0xe0
jmp 0x46f2b7
cmp ebx, 0x10ffff
ja 0x46f2b9
mov eax, dword [esp + 0x18]
cmp eax, 4
jb 0x46f1e6
mov edx, dword [0x4b321c]
lea ecx, [esp + 0x10]
push edx
push 4
call fcn.004708f0
jmp 0x46f1f9
mov ecx, 4
push 0
sub ecx, eax
push ecx
lea ecx, [esp + 0x18]
call fcn.00470820
cmp dword [esp + 0x18], 3
jb 0x46f21a
mov eax, dword [esp + 0x14]
test eax, eax
je 0x46f21a
lea ecx, [esp + 0x10]
call fcn.0046c1c0
mov edx, dword [esp + 0x14]
lea eax, [edx + 3]
jmp 0x46f21f
mov eax, 0x4b2dc8
mov cl, bl
and cl, 0x3f
or cl, 0x80
mov byte [eax], cl
mov eax, dword [esp + 0x18]
cmp eax, 2
jb 0x46f24c
mov eax, dword [esp + 0x14]
test eax, eax
je 0x46f24c
lea ecx, [esp + 0x10]
call fcn.0046c1c0
mov edx, dword [esp + 0x14]
lea eax, [edx + 2]
jmp 0x46f251
mov eax, 0x4b2dc8
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 0x46f280
mov eax, dword [esp + 0x14]
test eax, eax
je 0x46f280
lea ecx, [esp + 0x10]
call fcn.0046c1c0
mov edx, dword [esp + 0x14]
lea eax, [edx + 1]
jmp 0x46f285
mov eax, 0x4b2dc8
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 0x46f2a9
lea ecx, [esp + 0x10]
call fcn.0046c1c0
mov eax, dword [esp + 0x14]
jmp 0x46f2ae
mov eax, 0x4b2dc8
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.0046fdb0
mov dword [esp + 0xc], edi
push edi
lea ecx, [esp + 0x14]
mov byte [esp + 0x2c], 0
call fcn.00468660
mov ecx, dword [esp + 0x20]
mov eax, esi
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
add esp, 0x20
ret