Function at 0x476930
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x4b55f8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x14
mov al, byte [esp + 0x28]
push ebx
push esi
xor esi, esi
push esi
lea ecx, [esp + 0x10]
mov dword [esp + 0xc], esi
mov byte [esp + 0x10], al
call fcn.004349a0
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x24], esi
cmp ebx, 0x7f
ja 0x4769c0
mov eax, dword [esp + 0x14]
cmp eax, 1
jb 0x47698c
mov ecx, dword [0x4bb79c]
push ecx
push 1
lea ecx, [esp + 0x14]
call fcn.0046a890
jmp 0x47699e
mov edx, 1
push esi
sub edx, eax
lea ecx, [esp + 0x10]
push edx
call fcn.00443020
cmp dword [esp + 0x10], esi
je 0x4769b6
lea ecx, [esp + 0xc]
call fcn.0046a7c0
mov eax, dword [esp + 0x10]
jmp 0x476c24
mov eax, 0x4bb798
jmp 0x476c24
cmp ebx, 0x7ff
ja 0x476a5e
mov eax, dword [esp + 0x14]
cmp eax, 2
jb 0x4769e8
mov eax, dword [0x4bb79c]
lea ecx, [esp + 0xc]
push eax
push 2
call fcn.0046a890
jmp 0x4769fa
mov ecx, 2
push esi
sub ecx, eax
push ecx
lea ecx, [esp + 0x14]
call fcn.00443020
cmp dword [esp + 0x14], 1
jb 0x476a19
cmp dword [esp + 0x10], esi
je 0x476a19
lea ecx, [esp + 0xc]
call fcn.0046a7c0
mov edx, dword [esp + 0x10]
lea eax, [edx + 1]
jmp 0x476a1e
mov eax, 0x4bb798
mov cl, bl
and cl, 0x3f
or cl, 0x80
mov byte [eax], cl
mov eax, dword [esp + 0x10]
cmp eax, esi
je 0x476a4b
lea ecx, [esp + 0xc]
call fcn.0046a7c0
mov eax, dword [esp + 0x10]
shr ebx, 6
and bl, 0x1f
or bl, 0xc0
jmp 0x476c24
shr ebx, 6
and bl, 0x1f
mov eax, 0x4bb798
or bl, 0xc0
jmp 0x476c24
cmp ebx, 0xffff
ja 0x476b30
mov eax, dword [esp + 0x14]
cmp eax, 3
jb 0x476a87
mov edx, dword [0x4bb79c]
lea ecx, [esp + 0xc]
push edx
push 3
call fcn.0046a890
jmp 0x476a99
mov ecx, 3
push esi
sub ecx, eax
push ecx
lea ecx, [esp + 0x14]
call fcn.00443020
cmp dword [esp + 0x14], 2
jb 0x476ab8
cmp dword [esp + 0x10], esi
je 0x476ab8
lea ecx, [esp + 0xc]
call fcn.0046a7c0
mov edx, dword [esp + 0x10]
lea eax, [edx + 2]
jmp 0x476abd
mov eax, 0x4bb798
mov cl, bl
and cl, 0x3f
or cl, 0x80
mov byte [eax], cl
mov eax, dword [esp + 0x14]
cmp eax, 1
jb 0x476ae8
cmp dword [esp + 0x10], esi
je 0x476ae8
lea ecx, [esp + 0xc]
call fcn.0046a7c0
mov edx, dword [esp + 0x10]
lea eax, [edx + 1]
jmp 0x476aed
mov eax, 0x4bb798
mov ecx, ebx
shr ecx, 6
and cl, 0x3f
or cl, 0x80
mov byte [eax], cl
mov eax, dword [esp + 0x10]
cmp eax, esi
je 0x476b1d
lea ecx, [esp + 0xc]
call fcn.0046a7c0
mov eax, dword [esp + 0x10]
shr ebx, 0xc
and bl, 0xf
or bl, 0xe0
jmp 0x476c24
shr ebx, 0xc
and bl, 0xf
mov eax, 0x4bb798
or bl, 0xe0
jmp 0x476c24
cmp ebx, 0x10ffff
ja 0x476c26
mov eax, dword [esp + 0x14]
cmp eax, 4
jb 0x476b59
mov edx, dword [0x4bb79c]
lea ecx, [esp + 0xc]
push edx
push 4
call fcn.0046a890
jmp 0x476b6b
mov ecx, 4
push esi
sub ecx, eax
push ecx
lea ecx, [esp + 0x14]
call fcn.00443020
cmp dword [esp + 0x14], 3
jb 0x476b8a
cmp dword [esp + 0x10], esi
je 0x476b8a
lea ecx, [esp + 0xc]
call fcn.0046a7c0
mov edx, dword [esp + 0x10]
lea eax, [edx + 3]
jmp 0x476b8f
mov eax, 0x4bb798
mov cl, bl
and cl, 0x3f
or cl, 0x80
mov byte [eax], cl
mov eax, dword [esp + 0x14]
cmp eax, 2
jb 0x476bba
cmp dword [esp + 0x10], esi
je 0x476bba
lea ecx, [esp + 0xc]
call fcn.0046a7c0
mov edx, dword [esp + 0x10]
lea eax, [edx + 2]
jmp 0x476bbf
mov eax, 0x4bb798
mov ecx, ebx
shr ecx, 6
and cl, 0x3f
or cl, 0x80
mov byte [eax], cl
mov eax, dword [esp + 0x14]
cmp eax, 1
jb 0x476bed
cmp dword [esp + 0x10], esi
je 0x476bed
lea ecx, [esp + 0xc]
call fcn.0046a7c0
mov edx, dword [esp + 0x10]
lea eax, [edx + 1]
jmp 0x476bf2
mov eax, 0x4bb798
mov ecx, ebx
shr ecx, 0xc
and cl, 0x3f
or cl, 0x80
mov byte [eax], cl
mov eax, dword [esp + 0x10]
cmp eax, esi
je 0x476c16
lea ecx, [esp + 0xc]
call fcn.0046a7c0
mov eax, dword [esp + 0x10]
jmp 0x476c1b
mov eax, 0x4bb798
shr ebx, 0x12
and bl, 7
or bl, 0xf0
mov byte [eax], bl
mov esi, dword [esp + 0x2c]
lea edx, [esp + 0xc]
push edx
mov ecx, esi
call fcn.00434420
push 1
lea ecx, [esp + 0x10]
call fcn.004349a0
mov ecx, dword [esp + 0x1c]
mov eax, esi
pop esi
pop ebx
mov dword fs:[0], ecx
add esp, 0x20
ret