Function at 0x3000f908
Capabilities:
Suspend thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
push esi
push edi
xor esi, esi
xor eax, eax
lea edi, [ebp - 0x20]
mov dword [ebp - 0x24], esi
stosd dword es:[edi], eax
mov dword [ebp - 4], esi
mov dword [ebp - 0xc], esi
mov dword [ebp - 8], esi
stosd dword es:[edi], eax
call fcn.3000f8ed
cmp dword [0x30024648], esi
je 0x3000f956
push esi
push esi
call dword [0x30024650]
test eax, eax
jl 0x3000f956
push esi
push esi
push esi
push 3
push esi
push esi
push esi
push 0xffffffffffffffff
push esi
mov dword [ebp - 8], 1
call dword [0x30024658]
xor eax, eax
lea edi, [ebp - 0x18]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
lea eax, [ebp - 0x18]
push ebx
push eax
call fcn.3000fcaa
mov edi, dword [ebp + 8]
push edi
call fcn.3000fc6d
call fcn.30012c11
mov ebx, dword [ebp + 0xc]
test eax, eax
je 0x3000fa35
cmp byte [ebx + 0x208], 0
lea eax, [ebx + 0x208]
je 0x3000fa35
mov dword [0x300249cc], eax
cmp dword [ebx + 0x424], esi
lea eax, [ebx + 0x428]
mov dword [0x30024bec], edi
mov dword [ebp + 0xc], eax
mov dword [0x30024bf0], eax
lea eax, [ebp - 0x18]
push esi
mov dword [0x30024be0], eax
mov eax, dword [ebx + 0x418]
mov dword [0x30024c04], eax
je 0x3000f9d3
call fcn.30012d2d
jmp 0x3000fb2f
push 0x30008d72
push esi
push 0x67
push dword [0x300283b4]
call fcn.300079b5
cmp dword [0x30024198], esi
je 0x3000f9fb
cmp dword [0x3002419c], esi
je 0x3000f9fb
call fcn.30009516
mov eax, dword [0x30024bfc]
cmp eax, esi
je 0x3000fb2f
push 0x4e20
push eax
call dword [sym.imp.KERNEL32.DLL_WaitForSingleObject]
test eax, eax
je 0x3000fa24
push dword [0x30024bfc]
call dword [sym.imp.KERNEL32.DLL_SuspendThread]
push dword [0x30024bfc]
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
jmp 0x3000fb2f
lea edi, [ebx + 0x30c]
or ecx, 0xffffffff
xor eax, eax
mov dword [ebp - 4], edi
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, 0x3002595c
mov edx, ecx
mov esi, edi
mov edi, eax
push eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.3000e5ad
test eax, eax
jne 0x3000fa74
mov dword [0x30025c6c], 1
cmp dword [ebx + 0x41c], 0
lea eax, [ebx + 0x104]
mov dword [0x30025954], ebx
mov dword [0x30025958], eax
jne 0x3000fa94
push ebx
call fcn.3000e3ab
mov eax, dword [ebx + 0x410]
mov dword [0x30025c84], eax
mov eax, dword [ebx + 0x414]
mov dword [0x30025c88], eax
mov eax, dword [ebx + 0x418]
mov dword [0x300270f4], eax
lea eax, [ebx + 0x428]
mov dword [ebp + 0xc], eax
mov dword [0x30025c90], eax
lea eax, [ebp - 0x18]
mov dword [0x300270f8], eax
mov eax, dword [ebp + 8]
mov dword [0x30025c8c], eax
mov eax, dword [ebx + 0x41c]
mov dword [0x300270f0], eax
mov eax, dword [ebx + 0x424]
mov dword [0x300270fc], eax
call fcn.300116bd
test eax, eax
je 0x3000faff
lea eax, [ebp - 0xc]
push eax
call fcn.300116d8
test eax, eax
je 0x3000fb2a
xor esi, esi
push esi
push 0x30008ae6
push esi
push 0x67
push dword [0x300283b4]
call fcn.300079b5
cmp dword [0x30024198], esi
je 0x3000fb2a
cmp dword [0x3002419c], esi
je 0x3000fb2a
call fcn.3000932a
mov edi, dword [ebp + 8]
xor esi, esi
cmp dword [ebp - 0x10], esi
push 1
pop eax
je 0x3000fb3d
mov dword [ebx + 0x420], eax
mov ecx, dword [ebx + 0x418]
cmp ecx, esi
je 0x3000fb59
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x24]
push 0xc
push eax
push ecx
call fcn.3000f421
push dword [ebx + 0x42c]
call fcn.3000e4d7
test eax, eax
jne 0x3000fba9
push dword [ebp - 4]
push dword [ebx + 0x42c]
call fcn.3000e3dc
test eax, eax
jne 0x3000fba9
mov edx, dword [ebx + 0x42c]
cmp edx, esi
je 0x3000fba9
mov edi, 0x3000f906
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [ebp + 8]
xor esi, esi
cmp dword [ebp - 8], esi
je 0x3000fbb4
call dword [0x3002464c]
call fcn.3000f8f8
cmp dword [ebp - 0xc], esi
jne 0x3000fbd2
cmp dword [ebx + 0x424], esi
jne 0x3000fbd2
lea eax, [ebp - 0x18]
push eax
push dword [ebp + 0xc]
call fcn.300091ab
cmp dword [0x300270ec], esi
pop ebx
je 0x3000fbe3
push dword [ebp - 0x10]
call fcn.300117a6
mov eax, dword [edi + 0x18]
cmp eax, esi
je 0x3000fbf0
push eax
call fcn.3001e106
mov eax, dword [edi]
cmp eax, esi
je 0x3000fbfc
push eax
call fcn.3001e106
mov eax, dword [edi + 4]
cmp eax, esi
je 0x3000fc09
push eax
call fcn.3001e106
mov eax, dword [edi + 8]
cmp eax, esi
je 0x3000fc16
push eax
call fcn.3001e106
mov eax, dword [edi + 0xc]
cmp eax, esi
je 0x3000fc23
push eax
call fcn.3001e106
mov edi, dword [edi + 0x2c]
cmp edi, esi
je 0x3000fc30
push edi
call fcn.3001e106
mov eax, dword [ebp - 0x14]
cmp eax, dword [0x30024244]
je 0x3000fc45
cmp eax, esi
je 0x3000fc45
push eax
call fcn.3001e106
pop edi
pop esi
leave
ret 0xc