Function at 0x4ca680
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x50e0df
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.004c3a30
mov ebx, dword [esp + 0x34]
mov edi, 1
cmp ebx, 0x7f
mov dword [esp + 0x28], edi
ja 0x4ca717
mov eax, dword [esp + 0x18]
cmp eax, edi
jb 0x4ca6e3
mov ecx, dword [0x52463c]
push ecx
push edi
lea ecx, [esp + 0x18]
call fcn.004cbfc0
jmp 0x4ca6f3
mov edx, edi
push 0
sub edx, eax
lea ecx, [esp + 0x14]
push edx
call fcn.004cbef0
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4ca70d
lea ecx, [esp + 0x10]
call fcn.004c77e0
mov eax, dword [esp + 0x14]
jmp 0x4ca987
mov eax, 0x5241e8
jmp 0x4ca987
cmp ebx, 0x7ff
ja 0x4ca7b7
mov eax, dword [esp + 0x18]
cmp eax, 2
jb 0x4ca73f
mov eax, dword [0x52463c]
lea ecx, [esp + 0x10]
push eax
push 2
call fcn.004cbfc0
jmp 0x4ca752
mov ecx, 2
push 0
sub ecx, eax
push ecx
lea ecx, [esp + 0x18]
call fcn.004cbef0
cmp dword [esp + 0x18], edi
jb 0x4ca772
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4ca772
lea ecx, [esp + 0x10]
call fcn.004c77e0
mov edx, dword [esp + 0x14]
lea eax, [edx + 1]
jmp 0x4ca777
mov eax, 0x5241e8
mov cl, bl
and cl, 0x3f
or cl, 0x80
mov byte [eax], cl
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4ca7a4
lea ecx, [esp + 0x10]
call fcn.004c77e0
mov eax, dword [esp + 0x14]
shr ebx, 6
and bl, 0x1f
or bl, 0xc0
jmp 0x4ca987
shr ebx, 6
and bl, 0x1f
mov eax, 0x5241e8
or bl, 0xc0
jmp 0x4ca987
cmp ebx, 0xffff
ja 0x4ca88d
mov eax, dword [esp + 0x18]
cmp eax, 3
jb 0x4ca7e0
mov edx, dword [0x52463c]
lea ecx, [esp + 0x10]
push edx
push 3
call fcn.004cbfc0
jmp 0x4ca7f3
mov ecx, 3
push 0
sub ecx, eax
push ecx
lea ecx, [esp + 0x18]
call fcn.004cbef0
cmp dword [esp + 0x18], 2
jb 0x4ca814
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4ca814
lea ecx, [esp + 0x10]
call fcn.004c77e0
mov edx, dword [esp + 0x14]
lea eax, [edx + 2]
jmp 0x4ca819
mov eax, 0x5241e8
mov cl, bl
and cl, 0x3f
or cl, 0x80
mov byte [eax], cl
mov eax, dword [esp + 0x18]
cmp eax, edi
jb 0x4ca845
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4ca845
lea ecx, [esp + 0x10]
call fcn.004c77e0
mov edx, dword [esp + 0x14]
lea eax, [edx + 1]
jmp 0x4ca84a
mov eax, 0x5241e8
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 0x4ca87a
lea ecx, [esp + 0x10]
call fcn.004c77e0
mov eax, dword [esp + 0x14]
shr ebx, 0xc
and bl, 0xf
or bl, 0xe0
jmp 0x4ca987
shr ebx, 0xc
and bl, 0xf
mov eax, 0x5241e8
or bl, 0xe0
jmp 0x4ca987
cmp ebx, 0x10ffff
ja 0x4ca989
mov eax, dword [esp + 0x18]
cmp eax, 4
jb 0x4ca8b6
mov edx, dword [0x52463c]
lea ecx, [esp + 0x10]
push edx
push 4
call fcn.004cbfc0
jmp 0x4ca8c9
mov ecx, 4
push 0
sub ecx, eax
push ecx
lea ecx, [esp + 0x18]
call fcn.004cbef0
cmp dword [esp + 0x18], 3
jb 0x4ca8ea
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4ca8ea
lea ecx, [esp + 0x10]
call fcn.004c77e0
mov edx, dword [esp + 0x14]
lea eax, [edx + 3]
jmp 0x4ca8ef
mov eax, 0x5241e8
mov cl, bl
and cl, 0x3f
or cl, 0x80
mov byte [eax], cl
mov eax, dword [esp + 0x18]
cmp eax, 2
jb 0x4ca91c
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4ca91c
lea ecx, [esp + 0x10]
call fcn.004c77e0
mov edx, dword [esp + 0x14]
lea eax, [edx + 2]
jmp 0x4ca921
mov eax, 0x5241e8
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 0x4ca950
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4ca950
lea ecx, [esp + 0x10]
call fcn.004c77e0
mov edx, dword [esp + 0x14]
lea eax, [edx + 1]
jmp 0x4ca955
mov eax, 0x5241e8
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 0x4ca979
lea ecx, [esp + 0x10]
call fcn.004c77e0
mov eax, dword [esp + 0x14]
jmp 0x4ca97e
mov eax, 0x5241e8
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.004cb480
mov dword [esp + 0xc], edi
push edi
lea ecx, [esp + 0x14]
mov byte [esp + 0x2c], 0
call fcn.004c3a30
mov ecx, dword [esp + 0x20]
mov eax, esi
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
add esp, 0x20
ret