Function at 0x479200
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x4a8d9f
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.0046ebd0
mov ebx, dword [esp + 0x34]
mov edi, 1
cmp ebx, 0x7f
mov dword [esp + 0x28], edi
ja 0x479297
mov eax, dword [esp + 0x18]
cmp eax, edi
jb 0x479263
mov ecx, dword [0x4decec]
push ecx
push edi
lea ecx, [esp + 0x18]
call fcn.0047ab40
jmp 0x479273
mov edx, edi
push 0
sub edx, eax
lea ecx, [esp + 0x14]
push edx
call fcn.0047aa70
mov eax, dword [esp + 0x14]
test eax, eax
je 0x47928d
lea ecx, [esp + 0x10]
call fcn.004762e0
mov eax, dword [esp + 0x14]
jmp 0x479507
mov eax, 0x4de898
jmp 0x479507
cmp ebx, 0x7ff
ja 0x479337
mov eax, dword [esp + 0x18]
cmp eax, 2
jb 0x4792bf
mov eax, dword [0x4decec]
lea ecx, [esp + 0x10]
push eax
push 2
call fcn.0047ab40
jmp 0x4792d2
mov ecx, 2
push 0
sub ecx, eax
push ecx
lea ecx, [esp + 0x18]
call fcn.0047aa70
cmp dword [esp + 0x18], edi
jb 0x4792f2
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4792f2
lea ecx, [esp + 0x10]
call fcn.004762e0
mov edx, dword [esp + 0x14]
lea eax, [edx + 1]
jmp 0x4792f7
mov eax, 0x4de898
mov cl, bl
and cl, 0x3f
or cl, 0x80
mov byte [eax], cl
mov eax, dword [esp + 0x14]
test eax, eax
je 0x479324
lea ecx, [esp + 0x10]
call fcn.004762e0
mov eax, dword [esp + 0x14]
shr ebx, 6
and bl, 0x1f
or bl, 0xc0
jmp 0x479507
shr ebx, 6
and bl, 0x1f
mov eax, 0x4de898
or bl, 0xc0
jmp 0x479507
cmp ebx, 0xffff
ja 0x47940d
mov eax, dword [esp + 0x18]
cmp eax, 3
jb 0x479360
mov edx, dword [0x4decec]
lea ecx, [esp + 0x10]
push edx
push 3
call fcn.0047ab40
jmp 0x479373
mov ecx, 3
push 0
sub ecx, eax
push ecx
lea ecx, [esp + 0x18]
call fcn.0047aa70
cmp dword [esp + 0x18], 2
jb 0x479394
mov eax, dword [esp + 0x14]
test eax, eax
je 0x479394
lea ecx, [esp + 0x10]
call fcn.004762e0
mov edx, dword [esp + 0x14]
lea eax, [edx + 2]
jmp 0x479399
mov eax, 0x4de898
mov cl, bl
and cl, 0x3f
or cl, 0x80
mov byte [eax], cl
mov eax, dword [esp + 0x18]
cmp eax, edi
jb 0x4793c5
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4793c5
lea ecx, [esp + 0x10]
call fcn.004762e0
mov edx, dword [esp + 0x14]
lea eax, [edx + 1]
jmp 0x4793ca
mov eax, 0x4de898
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 0x4793fa
lea ecx, [esp + 0x10]
call fcn.004762e0
mov eax, dword [esp + 0x14]
shr ebx, 0xc
and bl, 0xf
or bl, 0xe0
jmp 0x479507
shr ebx, 0xc
and bl, 0xf
mov eax, 0x4de898
or bl, 0xe0
jmp 0x479507
cmp ebx, 0x10ffff
ja 0x479509
mov eax, dword [esp + 0x18]
cmp eax, 4
jb 0x479436
mov edx, dword [0x4decec]
lea ecx, [esp + 0x10]
push edx
push 4
call fcn.0047ab40
jmp 0x479449
mov ecx, 4
push 0
sub ecx, eax
push ecx
lea ecx, [esp + 0x18]
call fcn.0047aa70
cmp dword [esp + 0x18], 3
jb 0x47946a
mov eax, dword [esp + 0x14]
test eax, eax
je 0x47946a
lea ecx, [esp + 0x10]
call fcn.004762e0
mov edx, dword [esp + 0x14]
lea eax, [edx + 3]
jmp 0x47946f
mov eax, 0x4de898
mov cl, bl
and cl, 0x3f
or cl, 0x80
mov byte [eax], cl
mov eax, dword [esp + 0x18]
cmp eax, 2
jb 0x47949c
mov eax, dword [esp + 0x14]
test eax, eax
je 0x47949c
lea ecx, [esp + 0x10]
call fcn.004762e0
mov edx, dword [esp + 0x14]
lea eax, [edx + 2]
jmp 0x4794a1
mov eax, 0x4de898
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 0x4794d0
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4794d0
lea ecx, [esp + 0x10]
call fcn.004762e0
mov edx, dword [esp + 0x14]
lea eax, [edx + 1]
jmp 0x4794d5
mov eax, 0x4de898
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 0x4794f9
lea ecx, [esp + 0x10]
call fcn.004762e0
mov eax, dword [esp + 0x14]
jmp 0x4794fe
mov eax, 0x4de898
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.0047a000
mov dword [esp + 0xc], edi
push edi
lea ecx, [esp + 0x14]
mov byte [esp + 0x2c], 0
call fcn.0046ebd0
mov ecx, dword [esp + 0x20]
mov eax, esi
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
add esp, 0x20
ret