Function at 0x5202c0
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x5634af
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.0051a180
mov ebx, dword [esp + 0x34]
mov edi, 1
cmp ebx, 0x7f
mov dword [esp + 0x28], edi
ja 0x520357
mov eax, dword [esp + 0x18]
cmp eax, edi
jb 0x520323
mov ecx, dword [0x8f7afc]
push ecx
push edi
lea ecx, [esp + 0x18]
call fcn.00521c00
jmp 0x520333
mov edx, edi
push 0
sub edx, eax
lea ecx, [esp + 0x14]
push edx
call fcn.00521b30
mov eax, dword [esp + 0x14]
test eax, eax
je 0x52034d
lea ecx, [esp + 0x10]
call fcn.0051df40
mov eax, dword [esp + 0x14]
jmp 0x5205c7
mov eax, 0x8f7ab8
jmp 0x5205c7
cmp ebx, 0x7ff
ja 0x5203f7
mov eax, dword [esp + 0x18]
cmp eax, 2
jb 0x52037f
mov eax, dword [0x8f7afc]
lea ecx, [esp + 0x10]
push eax
push 2
call fcn.00521c00
jmp 0x520392
mov ecx, 2
push 0
sub ecx, eax
push ecx
lea ecx, [esp + 0x18]
call fcn.00521b30
cmp dword [esp + 0x18], edi
jb 0x5203b2
mov eax, dword [esp + 0x14]
test eax, eax
je 0x5203b2
lea ecx, [esp + 0x10]
call fcn.0051df40
mov edx, dword [esp + 0x14]
lea eax, [edx + 1]
jmp 0x5203b7
mov eax, 0x8f7ab8
mov cl, bl
and cl, 0x3f
or cl, 0x80
mov byte [eax], cl
mov eax, dword [esp + 0x14]
test eax, eax
je 0x5203e4
lea ecx, [esp + 0x10]
call fcn.0051df40
mov eax, dword [esp + 0x14]
shr ebx, 6
and bl, 0x1f
or bl, 0xc0
jmp 0x5205c7
shr ebx, 6
and bl, 0x1f
mov eax, 0x8f7ab8
or bl, 0xc0
jmp 0x5205c7
cmp ebx, 0xffff
ja 0x5204cd
mov eax, dword [esp + 0x18]
cmp eax, 3
jb 0x520420
mov edx, dword [0x8f7afc]
lea ecx, [esp + 0x10]
push edx
push 3
call fcn.00521c00
jmp 0x520433
mov ecx, 3
push 0
sub ecx, eax
push ecx
lea ecx, [esp + 0x18]
call fcn.00521b30
cmp dword [esp + 0x18], 2
jb 0x520454
mov eax, dword [esp + 0x14]
test eax, eax
je 0x520454
lea ecx, [esp + 0x10]
call fcn.0051df40
mov edx, dword [esp + 0x14]
lea eax, [edx + 2]
jmp 0x520459
mov eax, 0x8f7ab8
mov cl, bl
and cl, 0x3f
or cl, 0x80
mov byte [eax], cl
mov eax, dword [esp + 0x18]
cmp eax, edi
jb 0x520485
mov eax, dword [esp + 0x14]
test eax, eax
je 0x520485
lea ecx, [esp + 0x10]
call fcn.0051df40
mov edx, dword [esp + 0x14]
lea eax, [edx + 1]
jmp 0x52048a
mov eax, 0x8f7ab8
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 0x5204ba
lea ecx, [esp + 0x10]
call fcn.0051df40
mov eax, dword [esp + 0x14]
shr ebx, 0xc
and bl, 0xf
or bl, 0xe0
jmp 0x5205c7
shr ebx, 0xc
and bl, 0xf
mov eax, 0x8f7ab8
or bl, 0xe0
jmp 0x5205c7
cmp ebx, 0x10ffff
ja 0x5205c9
mov eax, dword [esp + 0x18]
cmp eax, 4
jb 0x5204f6
mov edx, dword [0x8f7afc]
lea ecx, [esp + 0x10]
push edx
push 4
call fcn.00521c00
jmp 0x520509
mov ecx, 4
push 0
sub ecx, eax
push ecx
lea ecx, [esp + 0x18]
call fcn.00521b30
cmp dword [esp + 0x18], 3
jb 0x52052a
mov eax, dword [esp + 0x14]
test eax, eax
je 0x52052a
lea ecx, [esp + 0x10]
call fcn.0051df40
mov edx, dword [esp + 0x14]
lea eax, [edx + 3]
jmp 0x52052f
mov eax, 0x8f7ab8
mov cl, bl
and cl, 0x3f
or cl, 0x80
mov byte [eax], cl
mov eax, dword [esp + 0x18]
cmp eax, 2
jb 0x52055c
mov eax, dword [esp + 0x14]
test eax, eax
je 0x52055c
lea ecx, [esp + 0x10]
call fcn.0051df40
mov edx, dword [esp + 0x14]
lea eax, [edx + 2]
jmp 0x520561
mov eax, 0x8f7ab8
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 0x520590
mov eax, dword [esp + 0x14]
test eax, eax
je 0x520590
lea ecx, [esp + 0x10]
call fcn.0051df40
mov edx, dword [esp + 0x14]
lea eax, [edx + 1]
jmp 0x520595
mov eax, 0x8f7ab8
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 0x5205b9
lea ecx, [esp + 0x10]
call fcn.0051df40
mov eax, dword [esp + 0x14]
jmp 0x5205be
mov eax, 0x8f7ab8
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.005210c0
mov dword [esp + 0xc], edi
push edi
lea ecx, [esp + 0x14]
mov byte [esp + 0x2c], 0
call fcn.0051a180
mov ecx, dword [esp + 0x20]
mov eax, esi
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
add esp, 0x20
ret