Function at 0x103715a0
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
cmp dword [0x104ccfb8], 0
jne 0x10371898
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp dword [0x104ccfb8], 0
jne 0x10371898
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov edx, 1
test edi, edi
je 0x103716a8
mov esi, edi
lea ecx, [esi + 1]
nop dword [eax]
mov al, byte [esi]
inc esi
test al, al
jne 0x103715e0
sub esi, ecx
lea ebx, [esi + 1]
cmp ebx, 2
jb 0x103716a8
test ebx, ebx
mov eax, ebx
mov ecx, 0x104ccf60
cmove eax, edx
push eax
call fcn.10353240
test al, al
je 0x1037163a
mov ecx, dword [0x104ccf64]
lea eax, [ecx - 1]
neg ecx
sbb ecx, ecx
and ecx, eax
push ecx
push edi
push dword [0x104ccf60]
call fcn.103ce0b0
xor eax, eax
add esp, 0xc
test ebx, ebx
cmove esi, eax
mov eax, dword [0x104ccf60]
mov byte [esi + eax], 0
mov edx, 1
mov edi, dword [ebp + 0xc]
test edi, edi
je 0x103716c7
mov esi, edi
lea ecx, [esi + 1]
nop
mov al, byte [esi]
inc esi
test al, al
jne 0x10371650
sub esi, ecx
lea ebx, [esi + 1]
cmp ebx, 2
jb 0x103716c7
test ebx, ebx
mov eax, ebx
mov ecx, 0x104ccf6c
cmove eax, edx
push eax
call fcn.10353240
test al, al
je 0x103716e6
mov ecx, dword [0x104ccf70]
lea eax, [ecx - 1]
neg ecx
sbb ecx, ecx
and ecx, eax
push ecx
push edi
push dword [0x104ccf6c]
call fcn.103ce0b0
xor eax, eax
add esp, 0xc
test ebx, ebx
cmove esi, eax
mov eax, dword [0x104ccf6c]
mov byte [esi + eax], 0
jmp 0x103716e6
mov eax, dword [0x104ccf60]
test eax, eax
je 0x1037163f
cmp dword [0x104ccf64], edx
jbe 0x1037163f
mov byte [eax], 0
mov dword [0x104ccf64], edx
jmp 0x1037163f
mov eax, dword [0x104ccf6c]
test eax, eax
je 0x103716e6
cmp dword [0x104ccf70], 1
jbe 0x103716e6
mov byte [eax], 0
mov dword [0x104ccf70], 1
mov edi, dword [ebp + 0x10]
test edi, edi
je 0x1037174f
mov esi, edi
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x103716f2
sub esi, ecx
lea ebx, [esi + 1]
cmp ebx, 2
jb 0x1037174f
test ebx, ebx
mov ecx, 1
mov eax, ebx
cmove eax, ecx
mov ecx, 0x104ccf78
push eax
call fcn.10353240
test al, al
je 0x1037176e
mov ecx, dword [0x104ccf7c]
lea eax, [ecx - 1]
neg ecx
sbb ecx, ecx
and ecx, eax
push ecx
push edi
push dword [0x104ccf78]
call fcn.103ce0b0
xor eax, eax
add esp, 0xc
test ebx, ebx
cmove esi, eax
mov eax, dword [0x104ccf78]
mov byte [esi + eax], 0
jmp 0x1037176e
mov eax, dword [0x104ccf78]
test eax, eax
je 0x1037176e
cmp dword [0x104ccf7c], 1
jbe 0x1037176e
mov byte [eax], 0
mov dword [0x104ccf7c], 1
mov ecx, dword [0x104ccf70]
cmp ecx, 2
jb 0x103717b2
mov edi, dword [0x104ccf6c]
test edi, edi
je 0x103717b2
lea eax, [edi - 1]
add eax, ecx
lea esi, [ecx - 1]
test ecx, ecx
cmove eax, edi
cmp byte [eax - 1], 0x5c
je 0x103717a9
test ecx, ecx
je 0x103717a1
lea eax, [edi - 1]
add eax, ecx
jmp 0x103717a3
mov eax, edi
cmp byte [eax - 1], 0x2f
jne 0x103717b2
xor eax, eax
test ecx, ecx
cmove esi, eax
jmp 0x103717be
mov edi, dword [0x104ccf6c]
mov esi, dword [0x104ccf70]
test edi, edi
je 0x10371839
cmp esi, 2
jb 0x1037181f
test esi, esi
je 0x103717d0
lea ebx, [esi - 1]
jmp 0x103717d3
or ebx, 0xffffffff
test esi, esi
mov ecx, 1
mov eax, esi
cmove eax, ecx
mov ecx, 0x104ccf6c
push eax
call fcn.10353240
test al, al
je 0x10371839
mov ecx, dword [0x104ccf70]
lea eax, [ecx - 1]
neg ecx
sbb ecx, ecx
and ecx, eax
push ecx
push edi
push dword [0x104ccf6c]
call fcn.103ce0b0
xor eax, eax
add esp, 0xc
test esi, esi
cmove ebx, eax
mov eax, dword [0x104ccf6c]
mov byte [ebx + eax], 0
jmp 0x10371839
test edi, edi
je 0x10371839
cmp dword [0x104ccf70], 1
jbe 0x10371839
mov byte [edi], 0
mov dword [0x104ccf70], 1
push 0x104ccfb4
push 0
push 0x104ccfa4
push 0x10367840
push 0
push 0
mov dword [0x104ccfb0], 0x103718a0
mov dword [0x104ccfa4], 0x104ccf60
mov dword [0x104ccfa8], 0
mov dword [0x104ccfac], 0
mov byte [0x104ccfbc], 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
xor ecx, ecx
mov dword [0x104ccfb8], eax
test eax, eax
pop edi
setne cl
pop esi
mov eax, ecx
pop ebx
pop ebp
ret 0xc
xor eax, eax
pop ebp
ret 0xc