Function at 0x10004fe0
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x1008a258
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x14
push ebp
push edi
mov eax, dword [esp + 0x2c]
xor ebp, ebp
push 0x100ac314
push eax
mov dword [esp + 0x2c], ebp
call fcn.100774ca
mov edi, eax
add esp, 8
cmp edi, ebp
je 0x10005067
lea ecx, [esp + 8]
push ecx
call fcn.10004610
lea edx, [esp + 0xc]
push edx
push edi
call fcn.10004f30
add esp, 0xc
cmp eax, 1
jne 0x1000505e
mov eax, dword [esp + 8]
test ah, ah
je 0x10005042
cmp ah, 1
jne 0x1000505e
mov al, byte [esp + 0xa]
cmp al, 1
je 0x1000508b
cmp al, 2
je 0x1000508b
cmp al, 3
je 0x1000508b
cmp al, 9
je 0x1000508b
cmp al, 0xa
je 0x1000508b
cmp al, 0xb
je 0x1000508b
push edi
call fcn.1007708d
add esp, 4
lea ecx, [esp + 0x2c]
mov dword [esp + 0x24], 0xffffffff
call fcn.10084b21
pop edi
xor eax, eax
pop ebp
mov ecx, dword [esp + 0x14]
mov dword fs:[0], ecx
add esp, 0x20
ret
mov eax, dword [0x100be0d4]
mov cx, word [esp + 0x16]
push esi
push 1
mov word [eax + 0x54], cx
mov eax, dword [0x100be0d4]
mov dx, word [esp + 0x20]
mov word [eax + 0x56], dx
mov ecx, dword [esp + 0x10]
and ecx, 0xff
push ecx
push edi
call fcn.10077146
mov al, byte [esp + 0x19]
add esp, 0xc
test al, al
je 0x1000529c
mov eax, dword [esp + 0x10]
and eax, 0xffff
mov edx, eax
shl edx, 0x1e
sub edx, eax
mov eax, dword [esp + 0x12]
and eax, 0xffff
add edx, eax
shl edx, 2
push edx
call fcn.10084880
mov ecx, dword [0x100be0d4]
add esp, 4
mov dword [ecx + 0x5c], eax
mov al, byte [esp + 0x14]
cmp al, 0xf
jb 0x1000523b
cmp al, 0x10
jbe 0x100051a0
cmp al, 0x18
jne 0x1000523b
mov eax, dword [esp + 0x12]
mov esi, dword [esp + 0x10]
mov edx, eax
and esi, 0xffff
and edx, 0xffff
cmp esi, edx
jae 0x10005191
cmp esi, 0x300
jge 0x10005191
push edi
call fcn.1007710a
mov ecx, dword [0x100be0d4]
push edi
mov edx, dword [ecx + 0x5c]
mov byte [edx + esi*4], al
call fcn.1007710a
mov ecx, dword [0x100be0d4]
push edi
mov edx, dword [ecx + 0x5c]
mov byte [edx + esi*4 + 1], al
call fcn.1007710a
mov ecx, dword [0x100be0d4]
add esp, 0xc
inc esi
mov edx, dword [ecx + 0x5c]
mov byte [edx + esi*4 - 2], al
mov eax, dword [0x100be0d4]
mov ecx, dword [eax + 0x5c]
mov byte [ecx + esi*4 - 1], 0
mov eax, dword [esp + 0x12]
mov edx, eax
and edx, 0xffff
cmp esi, edx
jb 0x10005130
mov ecx, dword [0x100be0d4]
mov word [ecx + 0x58], ax
jmp 0x1000523b
mov eax, dword [esp + 0x12]
mov esi, dword [esp + 0x10]
mov edx, eax
and esi, 0xffff
and edx, 0xffff
push ebx
cmp esi, edx
jae 0x10005230
cmp esi, 0x300
jge 0x10005230
push edi
call fcn.1007710a
mov ebx, eax
push edi
shl ebx, 8
call fcn.1007710a
mov ecx, dword [0x100be0d4]
add ebx, eax
mov eax, ebx
add esp, 8
mov edx, dword [ecx + 0x5c]
sar eax, 0xa
shl al, 3
mov byte [edx + esi*4], al
mov ecx, dword [0x100be0d4]
mov eax, ebx
mov edx, dword [ecx + 0x5c]
sar eax, 5
shl al, 3
mov byte [edx + esi*4 + 1], al
mov eax, dword [0x100be0d4]
shl bl, 3
mov ecx, dword [eax + 0x5c]
inc esi
mov byte [ecx + esi*4 - 2], bl
mov edx, dword [0x100be0d4]
mov eax, dword [edx + 0x5c]
mov byte [eax + esi*4 - 4], 0
mov eax, dword [esp + 0x16]
mov ecx, eax
and ecx, 0xffff
cmp esi, ecx
jb 0x100051bb
mov edx, dword [0x100be0d4]
pop ebx
mov word [edx + 0x58], ax
mov al, byte [esp + 0x1e]
cmp al, 1
jne 0x10005351
push 8
call fcn.10084880
mov ecx, dword [0x100be0d4]
add esp, 4
mov dword [ecx + 0x5c], eax
mov edx, dword [0x100be0d4]
mov ecx, dword [0x100ac36c]
mov eax, dword [edx + 0x5c]
mov dword [eax], ecx
mov dx, word [0x100ac370]
mov word [eax + 4], dx
mov eax, dword [0x100be0d4]
mov word [eax + 0x52], 1
mov ecx, dword [0x100be0d4]
mov word [ecx + 0x58], 2
mov al, byte [esp + 0x1e]
mov ecx, dword [0x100be0d4]
jmp 0x1000532c
cmp byte [esp + 0xe], 3
jne 0x1000533b
mov edx, dword [0x100be0d4]
xor eax, eax
xor esi, esi
mov word [edx + 0x58], 0x100
mov ecx, dword [0x100be0d4]
mov ax, word [ecx + 0x58]
shl eax, 2
push eax
call fcn.10084880
mov edx, dword [0x100be0d4]
add esp, 4
mov dword [edx + 0x5c], eax
mov ecx, dword [0x100be0d4]
xor eax, eax
cmp word [ecx + 0x58], bp
jbe 0x10005328
mov ecx, dword [ecx + 0x5c]
inc esi
mov byte [ecx + esi - 1], al
mov edx, dword [0x100be0d4]
inc esi
mov ecx, dword [edx + 0x5c]
inc esi
mov byte [ecx + esi - 2], al
mov edx, dword [0x100be0d4]
inc esi
mov ecx, dword [edx + 0x5c]
mov byte [ecx + esi - 2], al
mov edx, dword [0x100be0d4]
inc eax
mov ecx, dword [edx + 0x5c]
xor edx, edx
mov byte [ecx + esi - 1], 0
mov ecx, dword [0x100be0d4]
mov dx, word [ecx + 0x58]
cmp eax, edx
jb 0x100052e4
mov al, byte [esp + 0x1e]
cmp al, 8
ja 0x10005359
xor dx, dx
mov dl, al
mov word [ecx + 0x52], dx
jmp 0x1000538a
mov eax, dword [0x100be0d4]
mov word [eax + 0x58], bp
mov ecx, dword [0x100be0d4]
mov dword [ecx + 0x5c], ebp
mov al, byte [esp + 0x1e]
mov ecx, dword [0x100be0d4]
jmp 0x1000532c
cmp al, 0x18
je 0x1000537a
cmp al, 0x20
je 0x1000537a
cmp al, 0x10
je 0x10005369
cmp al, 0xf
jne 0x1000538a
mov word [ecx + 0x52], 0x18
mov eax, dword [0x100be0d4]
mov word [eax + 0x58], bp
jmp 0x1000538a
mov word [ecx + 0x52], 0x18
mov ecx, dword [0x100be0d4]
mov word [ecx + 0x58], bp
lea edx, [esp + 0xc]
push edx
push edi
call fcn.10004d20
push edi
mov esi, eax
call fcn.1007708d
add esp, 0xc
lea ecx, [esp + 0x30]
mov dword [esp + 0x28], 0xffffffff
call fcn.10084b21
mov ecx, dword [esp + 0x20]
mov eax, esi
pop esi
pop edi
pop ebp
mov dword fs:[0], ecx
add esp, 0x20
ret