Function at 0x413ff0
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
push ecx
cmp byte [0x43bd48], 0
push ebx
push esi
push edi
mov esi, edx
mov edi, ecx
jne 0x414016
push 0x43bd4c
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov byte [0x43bd48], 1
mov ebx, dword [ebp + 8]
push 0x43bd4c
mov dword [ebx], 0
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, edi
and eax, 0xffff0000
cmp eax, 0x30000000
ja 0x4142ae
je 0x414180
cmp eax, 0x10000000
je 0x41410b
cmp eax, 0x20000000
jne 0x4142c9
cmp dword [0x43bde0], 0
jbe 0x4142c9
test dword [0x43bde8], 0x80000000
jne 0x4142c9
mov eax, dword [0x43bde4]
push 0x10
push dword [eax]
push esi
call fcn.0041c640
mov eax, dword [0x43bde0]
add esp, 0xc
test eax, eax
je 0x4140e7
mov edi, dword [0x43bde4]
mov ecx, dword [edi]
test ecx, ecx
je 0x4140b6
push ecx
call fcn.0041d6c3
mov dword [edi], 0
add esp, 4
mov eax, dword [0x43bde0]
mov edi, dword [0x43bde4]
test eax, eax
je 0x4140e7
dec eax
mov dword [0x43bde0], eax
shl eax, 2
push eax
lea eax, [edi + 4]
push eax
push edi
call fcn.0041c640
mov eax, dword [0x43bde0]
add esp, 0xc
mov ecx, 0x43bde4
lea edx, [eax*4]
call fcn.00413a60
mov eax, dword [esi]
or eax, 0x80000000
mov dword [ebx], 1
push 0x43bd4c
mov dword [0x43bde8], eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [0x43bde0]
mov ecx, 0x43bde4
push 0x10
push 0x43bde0
mov edx, edi
call fcn.004137e0
test eax, eax
je 0x4142c9
mov eax, dword [0x43bde4]
mov eax, dword [eax + edi*4]
test esi, esi
je 0x41415c
movups xmm0, xmmword [esi]
push 0x43bd4c
mov dword [ebx], 1
movups xmmword [eax], xmm0
xorps xmm0, xmm0
movups xmmword [esi], xmm0
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xorps xmm0, xmm0
mov dword [ebx], 1
movups xmmword [eax], xmm0
push 0x43bd4c
xorps xmm0, xmm0
movups xmmword [esi], xmm0
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [0x43bde0]
mov esi, edx
movzx edi, di
mov dword [ebx], 1
mov dword [ebp - 4], edi
test esi, esi
je 0x41424b
movzx ecx, di
mov dword [ebp + 8], ecx
mov eax, dword [0x43bde4]
dec esi
mov eax, dword [eax + esi*4]
test dword [eax], ecx
je 0x414238
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x4141cc
push dword [eax + 0xc]
call ecx
add esp, 4
test eax, eax
je 0x414242
mov edx, dword [0x43bde0]
cmp esi, edx
jae 0x414235
mov eax, dword [0x43bde4]
lea edi, [eax + esi*4]
mov eax, dword [edi]
test eax, eax
je 0x4141f3
push eax
call fcn.0041d6c3
mov dword [edi], 0
add esp, 4
mov edx, dword [0x43bde0]
cmp esi, edx
jae 0x414235
mov eax, dword [0x43bde4]
dec edx
mov dword [0x43bde0], edx
sub edx, esi
shl edx, 2
push edx
lea ecx, [eax + esi*4]
lea eax, [ecx + 4]
push eax
push ecx
call fcn.0041c640
mov eax, dword [0x43bde0]
add esp, 0xc
mov ecx, 0x43bde4
lea edx, [eax*4]
call fcn.00413a60
mov edx, dword [0x43bde0]
mov ecx, dword [ebp + 8]
test esi, esi
jne 0x4141a2
jmp 0x414248
mov dword [ebx], 0
mov edi, dword [ebp - 4]
mov ecx, dword [0x43bde8]
test ecx, ecx
jns 0x414280
movzx eax, di
test ecx, eax
je 0x414280
or ecx, 0x40000000
mov dword [ebx], 0
push 0x43bd4c
mov dword [0x43bde8], ecx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 0xffff
cmp di, ax
jne 0x4142c9
push 0x43bd4c
call dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
push 0x43bd4c
mov byte [0x43bd48], 0
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, 0x40000000
jne 0x4142c9
mov dword [0x43bde8], 0
mov dword [0x43bd20], 0
push 0x43bd4c
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret