Function at 0x10067eb2
Capabilities:
Inspect section memory permissions

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x3fc
mov eax, dword [0x101d9590]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp + 0xc]
mov dword [ebp - 0x3f4], eax
mov eax, dword [ebp + 0x18]
push ebx
xor ebx, ebx
mov dword [ebp - 0x3f0], eax
mov eax, dword [ebp + 0x1c]
push esi
mov esi, dword [ebp + 8]
mov dword [ebp - 0x3e0], eax
mov eax, dword [ebp + 0x20]
push edi
mov edi, ecx
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 0x3b4], eax
mov eax, dword [edi + 0x264]
mov dword [ebp - 0x3e4], edi
mov dword [ebp - 0x3dc], edx
mov dword [ebp - 0x3d8], ecx
mov dword [ebp - 0x3a0], ebx
mov dword [ebp - 0x3a4], ebx
mov dword [ebp - 0x3d0], ebx
mov dword [ebp - 0x3a8], ebx
mov dword [ebp - 0x3bc], ebx
mov dword [ebp - 0x3b8], ebx
mov dword [ebp - 0x3d4], ebx
mov dword [ebp - 0x3c4], ebx
mov dword [ebp - 0x3ec], ebx
mov dword [ebp - 0x3c0], ebx
mov dword [ebp - 0x3b0], ebx
mov dword [ebp - 0x3c8], ebx
mov dword [ebp - 0x39c], ebx
mov dword [ebp - 0x3cc], ebx
mov dword [ebp - 0x3f8], eax
test esi, esi
jne 0x10067f7b
mov ebx, 0x8876086c
jmp 0x100687f3
test esi, 0x3fefff
jne 0x10067f71
test edx, edx
jne 0x10067f8b
test ecx, ecx
jne 0x10067f71
mov edx, 0x40000000
test edx, esi
je 0x10067f9c
cmp dword [edi + 0x260], ebx
je 0x10067f71
or esi, 0x1000000
mov dword [ebp + 8], esi
mov ecx, 0x2000000
test esi, 0xc000000
je 0x10067fb7
or esi, ecx
mov dword [ebp + 8], esi
mov eax, esi
and eax, ecx
mov dword [ebp - 0x3ac], eax
je 0x10068015
test edx, esi
jne 0x10068015
mov eax, dword [edi + 0x23c]
mov dword [ebp - 0x3ec], eax
test esi, 0x20000000
jne 0x10068015
lea eax, [ebp - 0x3c4]
push eax
lea eax, [ebp - 0x3d4]
push eax
mov ecx, edi
call fcn.100586b9
mov ebx, eax
test ebx, ebx
js 0x100687f3
cmp dword [ebp - 0x3c4], 0
jbe 0x10068015
test esi, 0x10000000
je 0x10068015
mov ebx, 0x88760b56
jmp 0x100687f3
mov eax, dword [edi + 0x264]
mov ebx, 0x100014bc
push ebx
xor ecx, ecx
push 4
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.10018970
push ebx
mov dword [ebp - 0x3a0], eax
mov eax, dword [edi + 0x264]
xor ecx, ecx
push 4
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.10018970
push ebx
mov dword [ebp - 0x3a4], eax
mov eax, dword [edi + 0x23c]
xor ecx, ecx
push 4
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.10018970
mov ecx, dword [ebp - 0x3a0]
add esp, 0x18
mov ebx, eax
mov dword [ebp - 0x3a8], ebx
test ecx, ecx
je 0x100687ee
mov edx, dword [ebp - 0x3a4]
test edx, edx
je 0x100687ee
test ebx, ebx
je 0x100687ee
mov eax, dword [edi + 0x23c]
mov dword [ebp - 0x3e8], eax
mov eax, esi
and eax, 0xc000000
mov dword [ebp - 0x3fc], eax
je 0x100680fc
mov eax, dword [edi + 0x264]
push 0x100014bc
xor ecx, ecx
push 4
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.10018970
pop ecx
pop ecx
mov dword [ebp - 0x3d0], eax
test eax, eax
je 0x100687ee
mov edx, dword [ebp - 0x3a4]
mov ecx, dword [ebp - 0x3a0]
test esi, 0x1000000
je 0x10068128
test esi, 0x40000000
jne 0x10068128
push ebx
push edx
push ecx
mov ecx, edi
call fcn.1004e3f1
mov ebx, eax
test ebx, ebx
js 0x100687f3
mov ebx, dword [ebp - 0x3a8]
jmp 0x10068162
xor eax, eax
cmp dword [edi + 0x264], eax
jbe 0x1006814c
sub edx, dword [ebp - 0x3a0]
mov esi, dword [ebp + 8]
mov dword [edx + ecx], eax
mov dword [ecx], eax
inc eax
add ecx, 4
cmp eax, dword [edi + 0x264]
jb 0x1006813b
xor eax, eax
cmp dword [edi + 0x23c], eax
jbe 0x10068162
mov dword [ebx + eax*4], eax
inc eax
cmp eax, dword [edi + 0x23c]
jb 0x10068156
cmp dword [ebp - 0x3ac], 0
je 0x10068192
test esi, 0x40000000
jne 0x10068192
push esi
push ebx
push dword [ebp - 0x3a4]
mov ecx, edi
push dword [ebp - 0x3a0]
call fcn.1004e4ef
mov ebx, eax
test ebx, ebx
js 0x100687f3
and esi, 0x10000000
je 0x100681b6
xor eax, eax
cmp dword [edi + 0x23c], eax
jbe 0x100681b6
mov edx, dword [ebp - 0x3a8]
mov dword [edx + eax*4], eax
inc eax
cmp eax, dword [edi + 0x23c]
jb 0x100681aa
push dword [ebp - 0x3a8]
mov ecx, edi
push dword [ebp - 0x3a0]
call fcn.10058b3b
mov ebx, eax
mov dword [ebp - 0x3ac], eax
test ebx, ebx
js 0x100687f3
cmp dword [ebp - 0x3fc], 0
je 0x10068349
mov eax, dword [edi + 0x264]
mov ebx, dword [ebp - 0x3a4]
shl eax, 2
push eax
push ebx
push dword [ebp - 0x3d0]
call sub.msvcrt.dll_memcpy
add esp, 0xc
push dword [ebp - 0x3dc]
mov ecx, edi
push ebx
push dword [ebp - 0x3a0]
push dword [ebp + 8]
call fcn.10065eb1
mov ebx, eax
test ebx, ebx
js 0x100687f3
mov eax, dword [edi + 0x23c]
push 0x100014bc
xor ecx, ecx
push 4
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.10018970
pop ecx
pop ecx
mov dword [ebp - 0x3bc], eax
test eax, eax
je 0x100687ee
test esi, esi
jne 0x100682a1
mov esi, dword [ebp - 0x3a4]
push eax
push esi
mov ecx, edi
call fcn.1004e9fe
mov ebx, eax
test ebx, ebx
js 0x100687f3
mov ebx, dword [ebp - 0x3bc]
xor ecx, ecx
cmp dword [edi + 0x23c], ecx
jbe 0x100682c3
mov edx, dword [ebp - 0x3a8]
mov eax, dword [edx + ecx*4]
cmp eax, 0xffffffff
je 0x10068296
mov eax, dword [ebx + eax*4]
mov dword [edx + ecx*4], eax
inc ecx
cmp ecx, dword [edi + 0x23c]
jb 0x10068288
jmp 0x100682c3
mov ebx, dword [ebp - 0x3bc]
xor eax, eax
cmp dword [edi + 0x23c], eax
jbe 0x100682bd
mov dword [ebx + eax*4], eax
inc eax
cmp eax, dword [edi + 0x23c]
jb 0x100682b1
mov esi, dword [ebp - 0x3a4]
push ebx
push dword [ebp - 0x3a0]
mov ecx, edi
call fcn.10058b3b
mov ebx, eax
mov dword [ebp - 0x3ac], ebx
test ebx, ebx
js 0x100687f3
xor ecx, ecx
cmp dword [edi + 0x264], ecx
jbe 0x1006830e
mov edx, dword [ebp - 0x3d0]
mov eax, dword [esi + ecx*4]
cmp eax, 0xffffffff
je 0x10068301
mov eax, dword [edx + eax*4]
mov dword [esi + ecx*4], eax
jmp 0x10068305
or dword [esi + ecx*4], 0xffffffff
inc ecx
cmp ecx, dword [edi + 0x264]
jb 0x100682f1
mov edx, dword [ebp - 0x3a0]
xor eax, eax
cmp dword [edi + 0x264], eax
jbe 0x1006832b
or dword [edx + eax*4], 0xffffffff
inc eax
cmp eax, dword [edi + 0x264]
jb 0x1006831e
xor eax, eax
cmp dword [edi + 0x264], eax
jbe 0x10068349
mov ecx, dword [esi + eax*4]
cmp ecx, 0xffffffff
je 0x10068340
mov dword [edx + ecx*4], eax
inc eax
cmp eax, dword [edi + 0x264]
jb 0x10068335
cmp dword [ebp - 0x3f0], 0
mov esi, dword [ebp - 0x3c4]
jne 0x10068368
test esi, esi
jne 0x10068368
cmp dword [edi + 0x240], esi
jne 0x10068442
lea eax, [ebp - 0x3c0]
push eax
mov eax, dword [edi + 0x23c]
shl eax, 2
push eax
call sym.d3dx9_43.dll_D3DXCreateBuffer
mov ebx, eax
mov dword [ebp - 0x3ac], ebx
test ebx, ebx
js 0x100687f3
mov eax, dword [ebp - 0x3c0]
mov ecx, dword [eax]
push eax
call dword [ecx + 0xc]
xor ecx, ecx
mov edx, eax
mov dword [ebp - 0x3b0], edx
cmp dword [edi + 0x23c], ecx
jbe 0x100683b9
or dword [edx + ecx*4], 0xffffffff
inc ecx
cmp ecx, dword [edi + 0x23c]
jb 0x100683ac
xor eax, eax
cmp dword [ebp - 0x3e8], eax
jbe 0x100683f7
mov edx, dword [ebp - 0x3a8]
mov esi, dword [ebp - 0x3e8]
mov edi, dword [ebp - 0x3b0]
mov ecx, dword [edx + eax*4]
cmp ecx, 0xffffffff
je 0x100683e0
mov dword [edi + ecx*4], eax
inc eax
cmp eax, esi
jb 0x100683d5
mov edi, dword [ebp - 0x3e4]
mov esi, dword [ebp - 0x3c4]
mov edx, dword [ebp - 0x3b0]
test esi, esi
je 0x10068446
xor ecx, ecx
cmp dword [edi + 0x23c], ecx
jbe 0x10068442
mov esi, dword [ebp - 0x3ec]
mov edx, dword [edx + ecx*4]
cmp edx, 0xffffffff
je 0x1006842d
cmp edx, esi
jb 0x1006842d
mov eax, dword [ebp - 0x3d4]
sub edx, esi
mov eax, dword [eax + edx*4]
mov edx, dword [ebp - 0x3b0]
mov dword [edx + ecx*4], eax
jmp 0x10068433
mov edx, dword [ebp - 0x3b0]
inc ecx
cmp ecx, dword [edi + 0x23c]
jb 0x1006840b
mov esi, dword [ebp - 0x3c4]
test esi, esi
jne 0x1006849e
cmp dword [edi + 0x240], 0
jbe 0x1006849e
mov eax, dword [edi + 0x234]
mov ecx, dword [eax]
push 0x800
lea edx, [ebp - 0x3b8]
push edx
push 0
push 0
push eax
call dword [ecx + 0x2c]
mov ebx, eax
test ebx, ebx
js 0x100687f3
push dword [ebp - 0x3b8]
mov esi, dword [ebp - 0x3a8]
push esi
mov ecx, edi
call fcn.100589cd
mov ebx, eax
mov dword [ebp - 0x3ac], ebx
test ebx, ebx
js 0x100687f3
jmp 0x100686d4
test byte [edi + 0x218], 0x20
jne 0x100686d4
cmp dword [edi + 0x240], 0
mov eax, dword [edi + 0x234]
mov esi, dword [edi + 0x23c]
mov dword [ebp - 0x39c], eax
mov eax, dword [edi + 0x244]
mov dword [ebp - 0x3cc], eax
jne 0x100684e4
mov ecx, dword [ebp - 0x3e0]
mov eax, dword [ecx]
push ecx
mov dword [ebp - 0x39c], ecx
call dword [eax + 4]
and dword [edi + 0x234], 0
and dword [edi + 0x23c], 0
and dword [edi + 0x240], 0
and dword [edi + 0x244], 0
push esi
push dword [edi + 0x264]
mov ecx, edi
call fcn.10051fb8
mov ebx, eax
test ebx, ebx
js 0x100687f3
mov eax, dword [edi + 0x234]
mov ecx, dword [eax]
push 0x800
lea edx, [ebp - 0x3b8]
push edx
push 0
push 0
push eax
call dword [ecx + 0x2c]
mov esi, dword [ebp - 0x39c]
mov ebx, eax
test ebx, ebx
js 0x100687f9
mov eax, dword [esi]
push 0x810
lea ecx, [ebp - 0x3c8]
push ecx
push 0
push 0
push esi
call dword [eax + 0x2c]
mov ebx, eax
mov dword [ebp - 0x3ac], ebx
test ebx, ebx
js 0x100687f9
mov eax, dword [ebp - 0x3b4]
test eax, eax
je 0x100685fa
lea esi, [edi + 0xc]
push esi
push eax
call fcn.1004bf67
test eax, eax
jne 0x100685fa
mov eax, dword [ebp - 0x3b4]
push esi
push eax
lea ecx, [ebp - 0x398]
call fcn.10051f24
mov esi, dword [ebp - 0x3b8]
push 0
push dword [ebp - 0x3c8]
lea ecx, [ebp - 0x398]
push 0
call fcn.100bd30f
push 0
push esi
push 0
lea ecx, [ebp - 0x2d4]
call fcn.100bd30f
xor esi, esi
cmp dword [edi + 0x23c], esi
jbe 0x10068665
mov ebx, dword [ebp - 0x3b0]
cmp dword [ebx + esi*4], 0xffffffff
je 0x100685ef
push 1
push esi
push dword [ebx + esi*4]
lea ecx, [ebp - 0x398]
call fcn.1004be8d
inc esi
cmp esi, dword [edi + 0x23c]
jb 0x100685d8
jmp 0x1006865f
mov eax, dword [ebp - 0x3b8]
mov dword [ebp - 0x3e0], eax
xor eax, eax
mov dword [ebp - 0x3b4], eax
cmp dword [edi + 0x23c], eax
jbe 0x10068665
mov ebx, dword [ebp - 0x3e0]
mov ecx, dword [ebp - 0x3b0]
mov ecx, dword [ecx + eax*4]
cmp ecx, 0xffffffff
je 0x10068650
mov eax, dword [edi + 0x238]
push eax
imul eax, ecx
add eax, dword [ebp - 0x3c8]
push eax
push ebx
call sub.msvcrt.dll_memcpy
mov eax, dword [ebp - 0x3b4]
add esp, 0xc
add ebx, dword [edi + 0x238]
inc eax
mov dword [ebp - 0x3b4], eax
cmp eax, dword [edi + 0x23c]
jb 0x1006861c
mov ebx, dword [ebp - 0x3ac]
mov ecx, dword [ebp - 0x3cc]
mov esi, dword [ebp - 0x3a8]
test ecx, ecx
je 0x100686ac
xor edx, edx
cmp dword [edi + 0x23c], edx
jbe 0x100686ac
mov ebx, dword [ebp - 0x3b0]
mov eax, dword [ebx + edx*4]
mov eax, dword [ecx + eax*4]
mov ecx, dword [edi + 0x244]
mov eax, dword [esi + eax*4]
mov dword [ecx + edx*4], eax
mov ecx, dword [ebp - 0x3cc]
inc edx
cmp edx, dword [edi + 0x23c]
jb 0x10068685
mov ebx, dword [ebp - 0x3ac]
xor eax, eax
xor ecx, ecx
cmp dword [edi + 0x23c], eax
jbe 0x100686ce
cmp dword [esi + eax*4], 0xffffffff
je 0x100686c1
inc ecx
jmp 0x100686c5
or dword [esi + eax*4], 0xffffffff
inc eax
cmp eax, dword [edi + 0x23c]
jb 0x100686b8
mov dword [edi + 0x23c], ecx
mov ecx, dword [ebp - 0x3f4]
test ecx, ecx
je 0x10068712
mov eax, dword [edi + 0x264]
shl eax, 2
test dword [ebp + 8], 0x80000000
push eax
je 0x10068703
mov esi, dword [ebp - 0x3a0]
push esi
push ecx
call sub.msvcrt.dll_memcpy
add esp, 0xc
jmp 0x10068718
push dword [ebp - 0x3a4]
push ecx
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov esi, dword [ebp - 0x3a0]
mov eax, dword [ebp - 0x3d8]
test eax, eax
je 0x100687cd
mov edx, dword [ebp - 0x3dc]
cmp eax, edx
jne 0x1006874c
push dword [ebp - 0x3f8]
push eax
push esi
call fcn.10049cd9
mov ebx, eax
test ebx, ebx
js 0x100687f3
jmp 0x100687cd
xor esi, esi
mov dword [ebp - 0x3b4], esi
cmp dword [edi + 0x264], esi
jbe 0x100687cd
mov ebx, dword [ebp - 0x3a4]
mov ecx, dword [ebx + esi*4]
mov esi, dword [ebp - 0x3a0]
imul ecx, ecx, 0xc
add ecx, edx
push 3
mov edx, eax
sub ecx, eax
pop edi
mov eax, dword [ecx + edx]
cmp eax, 0xffffffff
je 0x10068786
mov eax, dword [esi + eax*4]
mov dword [edx], eax
jmp 0x10068789
or dword [edx], 0xffffffff
push 4
pop eax
add edx, eax
dec edi
jne 0x10068777
mov esi, dword [ebp - 0x3b4]
mov eax, dword [ebp - 0x3d8]
mov edi, dword [ebp - 0x3e4]
mov ebx, dword [ebp - 0x3a4]
mov edx, dword [ebp - 0x3dc]
inc esi
add eax, 0xc
mov dword [ebp - 0x3b4], esi
mov dword [ebp - 0x3d8], eax
cmp esi, dword [edi + 0x264]
jb 0x10068762
mov ebx, dword [ebp - 0x3ac]
mov ecx, dword [ebp - 0x3f0]
mov esi, dword [ebp - 0x39c]
test ecx, ecx
je 0x100687f9
mov eax, dword [ebp - 0x3c0]
and dword [ebp - 0x3c0], 0
mov dword [ecx], eax
jmp 0x100687f9
mov ebx, 0x8007000e
mov esi, dword [ebp - 0x39c]
push dword [ebp - 0x3a8]
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
push dword [ebp - 0x3a0]
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
push dword [ebp - 0x3a4]
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
push dword [ebp - 0x3d0]
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
push dword [ebp - 0x3d4]
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
push dword [ebp - 0x3bc]
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
mov eax, dword [ebp - 0x3cc]
add esp, 0x18
cmp dword [edi + 0x244], eax
je 0x10068853
push eax
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
pop ecx
cmp dword [ebp - 0x3b8], 0
je 0x10068868
mov eax, dword [edi + 0x234]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x30]
cmp dword [ebp - 0x3c8], 0
je 0x10068877
mov eax, dword [esi]
push esi
call dword [eax + 0x30]
mov ecx, dword [ebp - 0x3c0]
test ecx, ecx
je 0x1006888e
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
and dword [ebp - 0x3c0], 0
test esi, esi
je 0x10068898
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov ecx, dword [ebp - 4]
pop edi
pop esi
mov eax, ebx
xor ecx, ebp
pop ebx
call fcn.101becf5
leave
ret 0x1c