Function at 0x10019fa0
Capabilities:
Access peb ldr_data

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x1015f600
push eax
mov dword fs:[0], esp
sub esp, 8
push ebx
push esi
mov esi, ecx
mov eax, dword [esi + 0x44]
xor ebx, ebx
cmp eax, ebx
jne 0x10019c3d
mov dword [esi + 0x28], ebx
mov dword [esi + 0x2c], ebx
mov dword [esi + 0x30], ebx
mov dword [esi + 0x34], ebx
mov dword [esi + 0x38], ebx
mov dword [esi + 0x3c], ebx
mov dword [esi + 0x40], ebx
mov dword [esi + 0xc], ebx
mov dword [esi + 0x10], ebx
mov dword [esi + 0x14], ebx
mov dword [esi + 0x18], ebx
mov dword [esi + 0x1c], ebx
mov dword [esi + 0x20], ebx
mov dword [esi + 0x24], ebx
mov dword [esi + 0x48], ebx
mov dword [esi + 0x44], ebx
mov dword [esi + 0x54], 0xffffffff
pop esi
pop ebx
mov ecx, dword [esp + 8]
mov dword fs:[0], ecx
add esp, 0x14
ret
push ebp
xor ebp, ebp
cmp eax, 1
push edi
jne 0x10019d68
mov ecx, esi
call fcn.10019770
test eax, eax
je 0x10019c61
mov dword [esi + 0x54], 0xffffffff
jmp 0x10019de9
mov eax, dword [esi + 0xc]
cmp eax, 0xe
jne 0x10019cd2
mov eax, dword [esi + 4]
mov eax, dword [eax - 0xc]
lea edi, [esi + 4]
dec eax
push eax
lea ecx, [esp + 0x14]
push ecx
mov ecx, edi
call fcn.100022f0
push eax
mov ecx, edi
mov dword [esp + 0x24], ebx
call fcn.10002a40
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
mov dword [esp + 0x20], 0xffffffff
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x10019cb2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov ecx, dword [esi + 8]
lea eax, [esi + 8]
push ecx
push 0x10169a58
push eax
call fcn.10001360
mov edx, dword [esi + 0xc]
add esp, 0xc
mov dword [esi + 0x54], edx
jmp 0x10019de9
cmp eax, 0xf
jne 0x10019d2b
push 0x101684bc
mov dword [esi + 0x54], eax
lea edi, [esi + 4]
lea eax, [esp + 0x18]
push edi
push eax
call fcn.10010ce0
add esp, 0xc
push eax
mov ecx, edi
mov dword [esp + 0x24], 1
call fcn.10002b10
lea ecx, [esp + 0x14]
mov dword [esp + 0x20], 0xffffffff
call fcn.1003efa0
mov ecx, dword [esi + 8]
lea eax, [esi + 8]
push ecx
push str._s_Tab
push eax
call fcn.10001360
add esp, 0xc
jmp 0x10019de9
cmp eax, 0x9c
je 0x10019d4b
cmp eax, 0x1c
je 0x10019d4b
push ebx
push eax
mov ecx, esi
call fcn.10019830
mov edx, dword [esi + 0xc]
mov dword [esi + 0x54], edx
jmp 0x10019de9
mov ecx, dword [esi + 8]
mov dword [esi + 0x54], eax
lea eax, [esi + 8]
push ecx
push 0x10169a48
push eax
call fcn.10001360
add esp, 0xc
jmp 0x10019de9
cmp dword [esi + 0x48], ebx
jne 0x10019de9
cmp eax, 2
jne 0x10019dc8
mov eax, dword [esi + 0xc]
cmp eax, 0x2a
je 0x10019db4
cmp eax, 0x36
je 0x10019db4
mov ecx, dword [esi + 0x10]
cmp ecx, 0x2a
je 0x10019da3
cmp ecx, 0x36
je 0x10019da3
push ebx
push eax
mov ecx, esi
call fcn.10019830
mov edx, dword [esi + 0x10]
push ebx
push edx
mov ecx, esi
call fcn.10019830
jmp 0x10019de9
push ebx
push eax
mov ecx, esi
call fcn.10019830
mov eax, dword [esi + 0xc]
mov dword [esi + 0x54], eax
jmp 0x10019de9
mov ecx, dword [esi + 0x10]
push ebx
push ecx
mov ecx, esi
call fcn.10019830
mov edx, dword [esi + 0x10]
mov dword [esi + 0x54], edx
jmp 0x10019de9
jle 0x10019de9
xor ebp, ebp
cmp eax, ebx
jle 0x10019de9
lea edi, [esi + 0xc]
mov eax, dword [edi]
push ebx
push eax
mov ecx, esi
call fcn.10019830
mov eax, dword [esi + 0x44]
inc ebp
add edi, 4
cmp ebp, eax
jl 0x10019dd3
mov ebx, dword [esi + 0x48]
mov edi, dword [esi + 0x44]
cmp edi, ebx
jne 0x10019e0a
lea ecx, [esi + 0x28]
push ecx
lea edx, [esi + 0xc]
push edx
mov ecx, esi
call fcn.10019740
test eax, eax
jne 0x10019f8b
xor edx, edx
cmp ebx, edx
je 0x10019f3f
mov ecx, esi
call fcn.10019770
test eax, eax
je 0x10019eec
cmp edi, 2
jne 0x10019e89
mov ecx, dword [esi + 0xc]
cmp ecx, 0x2a
je 0x10019e35
cmp ecx, 0x36
jne 0x10019e56
mov eax, dword [esi + 0x54]
cmp eax, dword [esi + ebp*4 + 0xc]
je 0x10019e56
mov ecx, dword [esi + 0x10]
push 1
push ecx
mov ecx, esi
call fcn.10019830
mov edx, dword [esi + 0x10]
mov dword [esi + 0x54], edx
jmp 0x10019f3d
mov eax, dword [esi + 0x10]
cmp eax, 0x2a
je 0x10019e67
cmp eax, 0x36
jne 0x10019f3d
mov eax, dword [esi + 0x54]
cmp eax, dword [esi + ebp*4 + 0xc]
je 0x10019f3d
push 1
push ecx
mov ecx, esi
call fcn.10019830
mov ecx, dword [esi + 0xc]
mov dword [esi + 0x54], ecx
jmp 0x10019f3d
jle 0x10019f3d
xor ebx, ebx
test edi, edi
jle 0x10019f3d
lea edi, [esi + 0xc]
lea esp, [esp]
mov eax, dword [esi + 0x48]
xor ecx, ecx
test eax, eax
jle 0x10019ebf
mov edx, dword [edi]
lea eax, [esi + 0x28]
mov edi, edi
cmp edx, dword [eax]
je 0x10019edf
mov ebp, dword [esi + 0x48]
inc ecx
add eax, 4
cmp ecx, ebp
jl 0x10019eb0
mov eax, dword [edi]
cmp eax, 0x2a
je 0x10019edf
cmp eax, 0x36
je 0x10019edf
cmp dword [esi + 0x54], eax
je 0x10019edf
push 1
push eax
mov ecx, esi
call fcn.10019830
mov edx, dword [edi]
mov dword [esi + 0x54], edx
mov eax, dword [esi + 0x44]
inc ebx
add edi, 4
cmp ebx, eax
jl 0x10019ea0
jmp 0x10019f3d
xor ebx, ebx
test edi, edi
jle 0x10019f3d
lea edi, [esi + 0xc]
mov eax, dword [esi + 0x48]
xor ecx, ecx
test eax, eax
jle 0x10019f12
mov edx, dword [edi]
lea eax, [esi + 0x28]
cmp edx, dword [eax]
je 0x10019f32
mov ebp, dword [esi + 0x48]
inc ecx
add eax, 4
cmp ecx, ebp
jl 0x10019f03
mov eax, dword [edi]
cmp eax, 0x2a
je 0x10019f32
cmp eax, 0x36
je 0x10019f32
cmp dword [esi + 0x54], eax
je 0x10019f32
push 0
push eax
mov ecx, esi
call fcn.10019830
mov eax, dword [edi]
mov dword [esi + 0x54], eax
mov eax, dword [esi + 0x44]
inc ebx
add edi, 4
cmp ebx, eax
jl 0x10019ef5
xor edx, edx
lea eax, [esi + 0x28]
mov dword [eax], edx
mov dword [esi + 0x2c], edx
mov dword [esi + 0x30], edx
mov dword [esi + 0x34], edx
mov dword [esi + 0x38], edx
mov dword [esi + 0x3c], edx
mov dword [esi + 0x40], edx
mov edi, dword [esi + 0x44]
xor ecx, ecx
cmp edi, edx
jle 0x10019f70
nop
mov edi, dword [eax - 0x1c]
mov dword [eax], edi
mov edi, dword [esi + 0x44]
inc ecx
add eax, 4
cmp ecx, edi
jl 0x10019f60
mov ecx, dword [esi + 0x44]
mov dword [esi + 0x48], ecx
mov dword [esi + 0xc], edx
mov dword [esi + 0x10], edx
mov dword [esi + 0x14], edx
mov dword [esi + 0x18], edx
mov dword [esi + 0x1c], edx
mov dword [esi + 0x20], edx
mov dword [esi + 0x24], edx
mov ecx, dword [esp + 0x18]
pop edi
pop ebp
pop esi
pop ebx
mov dword fs:[0], ecx
add esp, 0x14
ret
mov eax, dword [0x101c7aa0]
push esi
mov esi, ecx
mov ecx, dword [eax]
push eax
call dword [ecx + 0x1c]
test eax, eax
jge 0x10019fc1
push str.FAIL
push 2
call fcn.1001b560
add esp, 8
lea edx, [esi + 0x44]
push edx
lea eax, [esi + 0xc]
push eax
call fcn.100193e0
add esp, 8
mov ecx, esi
pop esi
jmp 0x10019bd0