Function at 0x101c987
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
mov esi, eax
lea eax, [esi + 0x1c]
test eax, eax
push edi
je 0x101c921
movzx eax, word [eax]
jmp 0x101c923
xor eax, eax
lea edx, [eax + 4]
lea eax, [esi + 0x24]
test eax, eax
je 0x101c932
movzx eax, word [eax]
jmp 0x101c934
xor eax, eax
lea ebx, [esi + 4]
add edx, eax
test ebx, ebx
je 0x101c942
movzx edi, word [ebx]
jmp 0x101c944
xor edi, edi
mov eax, dword [esi + 0x10]
movzx ecx, word [eax + 2]
test ecx, ecx
lea edi, [edi + ecx*8]
lea edx, [edx + edi + 4]
jle 0x101c96e
add eax, 4
mov edi, dword [eax]
test edi, edi
je 0x101c964
movzx edi, word [edi]
jmp 0x101c966
xor edi, edi
add edx, edi
add eax, 8
dec ecx
jne 0x101c959
mov eax, dword [esi + 0x34]
add edx, 0xc
test eax, eax
je 0x101c97d
movzx eax, word [eax]
jmp 0x101c97f
xor eax, eax
add edx, eax
mov eax, dword [esi + 0x38]
test eax, eax
je 0x101c98d
movzx eax, word [eax]
jmp 0x101c98f
xor eax, eax
add edx, eax
mov eax, dword [esi + 0x3c]
test eax, eax
je 0x101c99d
movzx eax, word [eax]
jmp 0x101c99f
xor eax, eax
add edx, eax
mov eax, dword [esi + 0x40]
test eax, eax
je 0x101c9ad
movzx eax, word [eax]
jmp 0x101c9af
xor eax, eax
mov ecx, dword [reloc.msvcrt.dll___p__commode]
add eax, ecx
lea eax, [eax + edx + 4]
cmp eax, 0x8000
jbe 0x101c9c9
xor eax, eax
jmp 0x101caf9
push 4
pop ecx
call fcn.0101c131
mov dword [ebp - 0xc], eax
lea eax, [esi + 0x1c]
test eax, eax
je 0x101c9e0
movzx edx, word [eax]
jmp 0x101c9e2
xor edx, edx
push eax
call fcn.0101c14a
lea eax, [esi + 0x24]
test eax, eax
je 0x101c9f4
movzx edx, word [eax]
jmp 0x101c9f6
xor edx, edx
push eax
call fcn.0101c14a
test ebx, ebx
je 0x101ca05
movzx edx, word [ebx]
jmp 0x101ca07
xor edx, edx
push ebx
call fcn.0101c14a
mov eax, dword [reloc.msvcrt.dll___p__commode]
mov ebx, dword [reloc.msvcrt.dll___p__commode]
lea edi, [ebx + eax]
mov eax, dword [esi + 0x10]
movzx edx, word [eax + 2]
lea edx, [edx*8 + 4]
push eax
call fcn.0101c14a
and dword [ebp - 4], 0
cmp word [edi + 2], 0
jbe 0x101ca70
lea eax, [edi + 4]
mov dword [ebp - 8], eax
mov eax, dword [esi + 0x10]
mov ecx, dword [ebp - 4]
mov eax, dword [eax + ecx*8 + 4]
test eax, eax
je 0x101ca53
movzx edx, word [eax]
jmp 0x101ca55
xor edx, edx
push eax
call fcn.0101c14a
mov ecx, dword [ebp - 8]
inc dword [ebp - 4]
add dword [ebp - 8], 8
mov dword [ecx], eax
movzx eax, word [edi + 2]
cmp dword [ebp - 4], eax
jl 0x101ca40
lea eax, [esi + 0x14]
push eax
push 4
pop edi
mov edx, edi
call fcn.0101c14a
lea eax, [esi + 0x18]
push eax
call fcn.0101c14a
lea eax, [esi + 0x30]
push eax
call fcn.0101c14a
mov eax, dword [esi + 0x34]
test eax, eax
je 0x101ca9c
movzx edx, word [eax]
jmp 0x101ca9e
xor edx, edx
push eax
call fcn.0101c14a
mov eax, dword [esi + 0x38]
test eax, eax
je 0x101cab0
movzx edx, word [eax]
jmp 0x101cab2
xor edx, edx
push eax
call fcn.0101c14a
mov eax, dword [esi + 0x3c]
test eax, eax
je 0x101cac4
movzx edx, word [eax]
jmp 0x101cac6
xor edx, edx
push eax
call fcn.0101c14a
mov eax, dword [esi + 0x40]
test eax, eax
je 0x101cad8
movzx edx, word [eax]
jmp 0x101cada
xor edx, edx
push eax
call fcn.0101c14a
add esi, 0x44
push esi
mov edx, edi
call fcn.0101c14a
mov eax, dword [reloc.msvcrt.dll___p__commode]
mov ecx, dword [ebp - 0xc]
mov dword [ebx + ecx], eax
xor eax, eax
inc eax
pop edi
pop esi
pop ebx
leave
ret