Function at 0x10001f60
Capabilities:
Create thread

Disassembly:
sub esp, 0x924
push ebx
push ebp
push esi
push edi
mov ecx, 0x3f
xor eax, eax
lea edi, [esp + 0x135]
mov byte [esp + 0x134], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x3f
xor eax, eax
lea edi, [esp + 0x835]
mov byte [esp + 0x834], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
xor edx, edx
mov ecx, 0x3f
xor eax, eax
lea edi, [esp + 0x35]
mov byte [esp + 0x34], dl
mov byte [esp + 0x734], dl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x3f
xor eax, eax
lea edi, [esp + 0x735]
mov byte [esp + 0x634], dl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x3f
xor eax, eax
lea edi, [esp + 0x635]
mov byte [esp + 0x434], dl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x3f
xor eax, eax
lea edi, [esp + 0x435]
mov byte [esp + 0x534], dl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x3f
xor eax, eax
lea edi, [esp + 0x535]
mov byte [esp + 0x334], dl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x3f
xor eax, eax
lea edi, [esp + 0x335]
mov byte [esp + 0x234], dl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x3f
xor eax, eax
lea edi, [esp + 0x235]
mov ebp, dword [esp + 0x938]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
mov dword [esp + 0x10], edx
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [esp + 0x24], edx
mov dword [esp + 0x14], edx
mov dword [esp + 0x2c], edx
lea ebx, [esp + 0x134]
mov eax, ecx
mov esi, edi
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
lea ebx, [esp + 0x834]
rep movsb byte es:[edi], byte [esi]
lea edi, [ebp + 0x218]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [0x187f288]
and ecx, 3
cmp eax, edx
rep movsb byte es:[edi], byte [esi]
jne 0x100020ce
mov ecx, dword [ebp + 0x41c]
mov dword [0x187f288], ecx
cmp dword [0x187f28c], edx
jne 0x100020e1
mov eax, dword [ebp + 0x420]
mov dword [0x187f28c], eax
cmp dword [0x187f290], edx
jne 0x100020f5
mov ecx, dword [ebp + 0x424]
mov dword [0x187f290], ecx
mov eax, dword [ebp + 0x214]
mov ecx, dword [ebp + 0x200]
mov esi, dword [ebp + 0x208]
mov ebx, dword [ebp + 0x204]
push 3
push 0x599
push 0x187c23c
mov dword [esp + 0x3c], eax
mov dword [esp + 0x34], ecx
mov dword [esp + 0x28], esi
mov dword [ebp + 0x418], edx
call fcn.100015b0
add esp, 8
lea edx, [esp + 0x138]
push eax
push edx
call fcn.10001080
add esp, 0xc
test eax, eax
jg 0x10002161
lea eax, [esp + 0x134]
push 0
lea ecx, [esp + 0x38]
push eax
push ecx
push 0x187c2b8
jmp 0x1000221f
lea ecx, [esp + 0x734]
push 0x187c098
push ecx
call fcn.100016c0
add esp, 8
mov edi, dword [0x187b010]
lea edx, [esp + 0x434]
push eax
push 0x100
push edx
push 0x187f284
push 0x187c2ac
push 0x187c294
call edi
lea eax, [esp + 0x734]
push 0x187c098
push eax
call fcn.100016c0
add esp, 8
lea ecx, [esp + 0x534]
push eax
push 0x100
push ecx
push 0x187f284
push 0x187c288
push 0x187c294
call edi
lea edi, [esp + 0x434]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
jne 0x100021ed
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x924
ret
lea edx, [esp + 0x434]
push 0x187c030
push edx
call fcn.10002faa
mov edi, eax
add esp, 8
test edi, edi
mov dword [esp + 0x18], edi
jne 0x10002249
push eax
lea eax, [esp + 0x438]
lea ecx, [esp + 0x38]
push eax
push ecx
push 0x187c274
call fcn.100010e0
add esp, 0x10
lea edx, [esp + 0x34]
lea eax, [esp + 0x134]
push edx
push 0
push eax
call dword [0x187f288]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x924
ret
test byte [edi + 0xc], 0x10
jne 0x10002598
push edi
lea ecx, [esp + 0x338]
push 0x100
push ecx
call fcn.10002f17
add esp, 0xc
test eax, eax
je 0x10002598
lea edi, [esp + 0x534]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x100022a5
lea edx, [esp + 0x534]
push 0x187c030
push edx
call fcn.10002faa
add esp, 8
mov dword [esp + 0x14], eax
test eax, eax
je 0x10002563
mov eax, dword [esp + 0x14]
mov dword [esp + 0x20], 0
test byte [eax + 0xc], 0x10
jne 0x10002544
mov edi, dword [esp + 0x28]
mov eax, dword [ebx]
cmp eax, edi
jl 0x100022d1
push 0x64
call dword [0x187b0b0]
cmp dword [ebx], edi
jge 0x100022c5
mov eax, dword [esp + 0x20]
test eax, eax
jg 0x10002544
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0x234]
push ecx
push 0x100
push edx
call fcn.10002f17
add esp, 0xc
test eax, eax
je 0x10002544
lea eax, [esp + 0x234]
lea ecx, [esp + 0x334]
push eax
push ecx
call fcn.10001380
mov eax, dword [ebx]
push 0
inc eax
lea edx, [esp + 0x40]
mov dword [ebx], eax
mov edi, dword [esi]
inc edi
push 0
mov dword [esi], edi
mov esi, dword [esp + 0x20]
inc esi
push edx
push 0x187c130
mov dword [esp + 0x28], esi
call fcn.100010e0
lea edi, [esp + 0x24c]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x18
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x10002374
lea eax, [esp + 0x234]
lea ecx, [esp + 0x334]
push eax
lea edx, [esp + 0x38]
push ecx
push edx
lea eax, [esp + 0x640]
push 0x187c268
push eax
jmp 0x10002396
lea ecx, [esp + 0x234]
lea edx, [esp + 0x334]
push ecx
lea eax, [esp + 0x38]
push edx
push eax
lea ecx, [esp + 0x640]
push 0x187c258
push ecx
call fcn.100028b0
add esp, 0x14
lea edx, [esp + 0x634]
lea eax, [esp + 0x34]
push 0
push edx
push eax
push 0x187c248
call fcn.100010e0
lea edi, [esp + 0x44]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x10
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, dword [esp + 0x30]
mov edx, ecx
mov esi, edi
mov edi, dword [ebp + 0x20c]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
test eax, eax
rep movsb byte es:[edi], byte [esi]
je 0x100023fc
lea eax, [esp + 0x34]
lea ecx, [esp + 0x134]
push eax
push 0
push ecx
call dword [0x187f288]
push 0x420
call fcn.10002f09
mov ebp, eax
or ecx, 0xffffffff
lea edi, [esp + 0x138]
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push ebp
mov edx, ecx
mov esi, edi
shr ecx, 2
mov edi, ebp
push 0
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea edx, [ebp + 0x100]
and ecx, 3
push 0x1871ac0
rep movsb byte es:[edi], byte [esi]
or ecx, 0xffffffff
lea edi, [esp + 0x844]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [ebp + 0x204]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x344]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [ebp + 0x304]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x244]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x20]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
lea eax, [esp + 0x34]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x2c]
mov dword [ebp + 0x200], ecx
lea ecx, [esp + 0x30]
mov dword [ebp + 0x40c], ebx
mov dword [ebp + 0x410], esi
mov dword [ebp + 0x414], edx
mov dword [ebp + 0x418], eax
mov dword [ebp + 0x41c], ecx
call fcn.10002b27
add esp, 0x10
test eax, eax
ja 0x10002510
push ebp
call fcn.10002c70
mov edx, dword [ebx]
add esp, 4
dec edx
mov dword [ebx], edx
mov ecx, dword [esi]
dec ecx
mov dword [esi], ecx
mov eax, dword [esp + 0x10]
dec eax
mov dword [esp + 0x10], eax
mov edx, dword [esp + 0x938]
push 0xa
mov eax, dword [edx + 0x210]
mov dword [eax], 0
call dword [0x187b0b0]
mov ecx, dword [esp + 0x14]
mov ebp, dword [esp + 0x938]
mov esi, dword [esp + 0x1c]
test byte [ecx + 0xc], 0x10
je 0x100022bb
mov edx, dword [esp + 0x14]
push edx
call fcn.10002e8c
mov eax, dword [esp + 0x1c]
add esp, 4
mov edi, eax
test byte [eax + 0xc], 0x10
je 0x10002253
jmp 0x10002598
lea ecx, [esp + 0x534]
push 0
lea edx, [esp + 0x38]
push ecx
push edx
push 0x187c274
call fcn.100010e0
add esp, 0x10
lea eax, [esp + 0x34]
lea ecx, [esp + 0x134]
push eax
push 0
push ecx
call dword [0x187f288]
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
test eax, eax
jle 0x100025b0
push 0x64
call dword [0x187b0b0]
mov eax, dword [esp + 0x10]
test eax, eax
jg 0x100025a0
push edi
call fcn.10002e8c
mov eax, dword [esp + 0x28]
add esp, 4
test eax, eax
mov dword [ebp + 0x418], eax
jle 0x100025cf
mov dword [esp + 0x2c], 1
mov eax, dword [esp + 0x2c]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x924
ret