Function at 0x6581a0
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x68d6ff
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.00650060
mov ebx, dword [esp + 0x34]
mov edi, 1
cmp ebx, 0x7f
mov dword [esp + 0x28], edi
ja 0x658237
mov eax, dword [esp + 0x18]
cmp eax, edi
jb 0x658203
mov ecx, dword [0x6afbec]
push ecx
push edi
lea ecx, [esp + 0x18]
call fcn.00659ae0
jmp 0x658213
mov edx, edi
push 0
sub edx, eax
lea ecx, [esp + 0x14]
push edx
call fcn.00659a10
mov eax, dword [esp + 0x14]
test eax, eax
je 0x65822d
lea ecx, [esp + 0x10]
call fcn.00654da0
mov eax, dword [esp + 0x14]
jmp 0x6584a7
mov eax, 0x6af790
jmp 0x6584a7
cmp ebx, 0x7ff
ja 0x6582d7
mov eax, dword [esp + 0x18]
cmp eax, 2
jb 0x65825f
mov eax, dword [0x6afbec]
lea ecx, [esp + 0x10]
push eax
push 2
call fcn.00659ae0
jmp 0x658272
mov ecx, 2
push 0
sub ecx, eax
push ecx
lea ecx, [esp + 0x18]
call fcn.00659a10
cmp dword [esp + 0x18], edi
jb 0x658292
mov eax, dword [esp + 0x14]
test eax, eax
je 0x658292
lea ecx, [esp + 0x10]
call fcn.00654da0
mov edx, dword [esp + 0x14]
lea eax, [edx + 1]
jmp 0x658297
mov eax, 0x6af790
mov cl, bl
and cl, 0x3f
or cl, 0x80
mov byte [eax], cl
mov eax, dword [esp + 0x14]
test eax, eax
je 0x6582c4
lea ecx, [esp + 0x10]
call fcn.00654da0
mov eax, dword [esp + 0x14]
shr ebx, 6
and bl, 0x1f
or bl, 0xc0
jmp 0x6584a7
shr ebx, 6
and bl, 0x1f
mov eax, 0x6af790
or bl, 0xc0
jmp 0x6584a7
cmp ebx, 0xffff
ja 0x6583ad
mov eax, dword [esp + 0x18]
cmp eax, 3
jb 0x658300
mov edx, dword [0x6afbec]
lea ecx, [esp + 0x10]
push edx
push 3
call fcn.00659ae0
jmp 0x658313
mov ecx, 3
push 0
sub ecx, eax
push ecx
lea ecx, [esp + 0x18]
call fcn.00659a10
cmp dword [esp + 0x18], 2
jb 0x658334
mov eax, dword [esp + 0x14]
test eax, eax
je 0x658334
lea ecx, [esp + 0x10]
call fcn.00654da0
mov edx, dword [esp + 0x14]
lea eax, [edx + 2]
jmp 0x658339
mov eax, 0x6af790
mov cl, bl
and cl, 0x3f
or cl, 0x80
mov byte [eax], cl
mov eax, dword [esp + 0x18]
cmp eax, edi
jb 0x658365
mov eax, dword [esp + 0x14]
test eax, eax
je 0x658365
lea ecx, [esp + 0x10]
call fcn.00654da0
mov edx, dword [esp + 0x14]
lea eax, [edx + 1]
jmp 0x65836a
mov eax, 0x6af790
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 0x65839a
lea ecx, [esp + 0x10]
call fcn.00654da0
mov eax, dword [esp + 0x14]
shr ebx, 0xc
and bl, 0xf
or bl, 0xe0
jmp 0x6584a7
shr ebx, 0xc
and bl, 0xf
mov eax, 0x6af790
or bl, 0xe0
jmp 0x6584a7
cmp ebx, 0x10ffff
ja 0x6584a9
mov eax, dword [esp + 0x18]
cmp eax, 4
jb 0x6583d6
mov edx, dword [0x6afbec]
lea ecx, [esp + 0x10]
push edx
push 4
call fcn.00659ae0
jmp 0x6583e9
mov ecx, 4
push 0
sub ecx, eax
push ecx
lea ecx, [esp + 0x18]
call fcn.00659a10
cmp dword [esp + 0x18], 3
jb 0x65840a
mov eax, dword [esp + 0x14]
test eax, eax
je 0x65840a
lea ecx, [esp + 0x10]
call fcn.00654da0
mov edx, dword [esp + 0x14]
lea eax, [edx + 3]
jmp 0x65840f
mov eax, 0x6af790
mov cl, bl
and cl, 0x3f
or cl, 0x80
mov byte [eax], cl
mov eax, dword [esp + 0x18]
cmp eax, 2
jb 0x65843c
mov eax, dword [esp + 0x14]
test eax, eax
je 0x65843c
lea ecx, [esp + 0x10]
call fcn.00654da0
mov edx, dword [esp + 0x14]
lea eax, [edx + 2]
jmp 0x658441
mov eax, 0x6af790
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 0x658470
mov eax, dword [esp + 0x14]
test eax, eax
je 0x658470
lea ecx, [esp + 0x10]
call fcn.00654da0
mov edx, dword [esp + 0x14]
lea eax, [edx + 1]
jmp 0x658475
mov eax, 0x6af790
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 0x658499
lea ecx, [esp + 0x10]
call fcn.00654da0
mov eax, dword [esp + 0x14]
jmp 0x65849e
mov eax, 0x6af790
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.00658fa0
mov dword [esp + 0xc], edi
push edi
lea ecx, [esp + 0x14]
mov byte [esp + 0x2c], 0
call fcn.00650060
mov ecx, dword [esp + 0x20]
mov eax, esi
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
add esp, 0x20
ret