Function at 0x4951c0
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x65a08b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x30
push ebx
push ebp
mov ebp, dword [esp + 0x48]
push esi
lea eax, [esp + 0xc]
mov esi, ecx
push ebp
push eax
mov dword [esp + 0x18], esi
call fcn.004bdfb0
add esp, 8
mov eax, dword [esp + 0xc]
xor ebx, ebx
cmp eax, ebx
mov dword [esp + 0x44], ebx
jne 0x495228
lea ecx, [esp + 0xc]
mov dword [esp + 0x44], 0xffffffff
call fcn.00498970
pop esi
pop ebp
xor eax, eax
pop ebx
mov ecx, dword [esp + 0x30]
mov dword fs:[0], ecx
add esp, 0x3c
ret 4
push 0x2c
call fcn.00492990
add esp, 4
mov dword [esp + 0x4c], eax
cmp eax, ebx
mov byte [esp + 0x44], 1
je 0x49524e
push ebp
push esi
mov ecx, eax
call fcn.004a3bd0
mov dword [esp + 0x4c], eax
jmp 0x495252
mov dword [esp + 0x4c], ebx
mov eax, dword [esp + 0xc]
mov byte [esp + 0x44], 0
cmp eax, ebx
je 0x495264
add eax, 0xc
jmp 0x495269
mov eax, 0x73d674
push 0xffffffffffffffff
lea ecx, [esp + 0x1c]
push eax
push ecx
call fcn.00499d60
add esp, 0xc
mov eax, dword [esp + 0x18]
mov byte [esp + 0x44], 2
cmp eax, ebx
je 0x495296
lea edx, [eax + 0xc]
mov dword [esp + 0x1c], edx
mov eax, dword [eax + 4]
mov dword [esp + 0x20], eax
jmp 0x49529e
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
lea ecx, [esp + 0x1c]
push edi
push ecx
lea ecx, [esi + 0x40]
call fcn.0049a780
mov edx, dword [esp + 0x50]
mov edi, str.Kids
mov dword [eax], edx
mov eax, edi
test eax, eax
mov dword [esp + 0x28], edi
je 0x4952d1
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x2c], ecx
jmp 0x4952d5
mov dword [esp + 0x2c], ebx
lea ecx, [esp + 0x28]
push ecx
mov ecx, ebp
call fcn.004979c0
mov edi, eax
cmp edi, ebx
mov dword [esp + 0x18], edi
jne 0x495385
mov edi, str.Subtype
mov edx, edi
mov dword [esp + 0x28], edi
test edx, edx
je 0x49530e
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x2c], ecx
jmp 0x495312
mov dword [esp + 0x2c], ebx
lea eax, [esp + 0x28]
lea ecx, [esp + 0x18]
push eax
push ecx
mov ecx, ebp
call fcn.00497790
mov edx, eax
mov edi, str.Widget
mov byte [esp + 0x48], 3
mov eax, edi
mov dword [esp + 0x20], edi
test eax, eax
je 0x495349
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x24], ecx
jmp 0x49534d
mov dword [esp + 0x24], ebx
lea ecx, [esp + 0x20]
push ecx
mov ecx, edx
call fcn.00498cb0
lea ecx, [esp + 0x18]
mov bl, al
mov byte [esp + 0x48], 2
call fcn.00498970
test bl, bl
je 0x495446
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x14]
push ebp
push edx
call fcn.00495480
jmp 0x495446
mov eax, dword [edi + 0x10]
xor ebp, ebp
cmp eax, ebx
jbe 0x495446
push ebp
mov ecx, edi
call fcn.00497310
mov esi, eax
cmp esi, ebx
je 0x49543a
mov edi, str.Subtype
mov eax, edi
mov dword [esp + 0x30], edi
test eax, eax
je 0x4953c3
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x34], ecx
jmp 0x4953c7
mov dword [esp + 0x34], ebx
lea ecx, [esp + 0x30]
lea edx, [esp + 0x20]
push ecx
push edx
mov ecx, esi
call fcn.00497790
mov edx, eax
mov edi, str.Widget
mov byte [esp + 0x48], 4
mov eax, edi
mov dword [esp + 0x38], edi
test eax, eax
je 0x4953fe
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x3c], ecx
jmp 0x495402
mov dword [esp + 0x3c], ebx
lea ecx, [esp + 0x38]
push ecx
mov ecx, edx
call fcn.00498cb0
test al, al
lea ecx, [esp + 0x20]
mov byte [esp + 0x48], 2
sete bl
call fcn.00498970
test bl, bl
jne 0x495434
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x14]
push esi
push edx
call fcn.00495480
mov edi, dword [esp + 0x18]
xor ebx, ebx
mov eax, dword [edi + 0x10]
inc ebp
cmp ebp, eax
jb 0x495392
lea ecx, [esp + 0x1c]
mov byte [esp + 0x48], 0
call fcn.00498970
lea ecx, [esp + 0x10]
mov dword [esp + 0x48], 0xffffffff
call fcn.00498970
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x50]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x3c
ret 4