Function at 0x100674a3
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 0x1006756c
mov ebx, 0x8876086c
jmp 0x10067df5
test esi, 0x3fefff
jne 0x10067562
test edx, edx
jne 0x1006757c
test ecx, ecx
jne 0x10067562
mov edx, 0x40000000
test edx, esi
je 0x1006758d
cmp dword [edi + 0x260], ebx
je 0x10067562
or esi, 0x1000000
mov dword [ebp + 8], esi
mov ecx, 0x2000000
test esi, 0xc000000
je 0x100675a8
or esi, ecx
mov dword [ebp + 8], esi
mov eax, esi
and eax, ecx
mov dword [ebp - 0x3ac], eax
je 0x10067606
test edx, esi
jne 0x10067606
mov eax, dword [edi + 0x23c]
mov dword [ebp - 0x3ec], eax
test esi, 0x20000000
jne 0x10067606
lea eax, [ebp - 0x3c4]
push eax
lea eax, [ebp - 0x3d4]
push eax
mov ecx, edi
call fcn.10057ef1
mov ebx, eax
test ebx, ebx
js 0x10067df5
cmp dword [ebp - 0x3c4], 0
jbe 0x10067606
test esi, 0x10000000
je 0x10067606
mov ebx, 0x88760b56
jmp 0x10067df5
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 0x10067df0
mov edx, dword [ebp - 0x3a4]
test edx, edx
je 0x10067df0
test ebx, ebx
je 0x10067df0
mov eax, dword [edi + 0x23c]
mov dword [ebp - 0x3e8], eax
mov eax, esi
and eax, 0xc000000
mov dword [ebp - 0x3fc], eax
je 0x100676ed
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 0x10067df0
mov edx, dword [ebp - 0x3a4]
mov ecx, dword [ebp - 0x3a0]
test esi, 0x1000000
je 0x10067719
test esi, 0x40000000
jne 0x10067719
push ebx
push edx
push ecx
mov ecx, edi
call fcn.1004dc86
mov ebx, eax
test ebx, ebx
js 0x10067df5
mov ebx, dword [ebp - 0x3a8]
jmp 0x10067753
xor eax, eax
cmp dword [edi + 0x264], eax
jbe 0x1006773d
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 0x1006772c
xor eax, eax
cmp dword [edi + 0x23c], eax
jbe 0x10067753
mov dword [ebx + eax*4], eax
inc eax
cmp eax, dword [edi + 0x23c]
jb 0x10067747
cmp dword [ebp - 0x3ac], 0
je 0x10067783
test esi, 0x40000000
jne 0x10067783
push esi
push ebx
push dword [ebp - 0x3a4]
mov ecx, edi
push dword [ebp - 0x3a0]
call fcn.1004ddbf
mov ebx, eax
test ebx, ebx
js 0x10067df5
and esi, 0x10000000
je 0x100677a7
xor eax, eax
cmp dword [edi + 0x23c], eax
jbe 0x100677a7
mov edx, dword [ebp - 0x3a8]
mov dword [edx + eax*4], eax
inc eax
cmp eax, dword [edi + 0x23c]
jb 0x1006779b
push dword [ebp - 0x3a8]
mov ecx, edi
push dword [ebp - 0x3a0]
call fcn.10058392
mov ebx, eax
mov dword [ebp - 0x3ac], eax
test ebx, ebx
js 0x10067df5
cmp dword [ebp - 0x3fc], 0
je 0x10067942
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.10065b39
mov ebx, eax
test ebx, ebx
js 0x10067df5
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 0x10067df0
test esi, esi
jne 0x10067894
mov esi, dword [ebp - 0x3a4]
push eax
push esi
mov ecx, edi
call fcn.1004e2f9
mov ebx, eax
test ebx, ebx
js 0x10067df5
mov ebx, dword [ebp - 0x3bc]
xor ecx, ecx
cmp dword [edi + 0x23c], ecx
jbe 0x100678b6
mov edx, dword [ebp - 0x3a8]
mov eax, dword [edx + ecx*4]
cmp eax, 0xffff
je 0x10067889
mov eax, dword [ebx + eax*4]
mov dword [edx + ecx*4], eax
inc ecx
cmp ecx, dword [edi + 0x23c]
jb 0x10067879
jmp 0x100678b6
mov ebx, dword [ebp - 0x3bc]
xor eax, eax
cmp dword [edi + 0x23c], eax
jbe 0x100678b0
mov dword [ebx + eax*4], eax
inc eax
cmp eax, dword [edi + 0x23c]
jb 0x100678a4
mov esi, dword [ebp - 0x3a4]
push ebx
push dword [ebp - 0x3a0]
mov ecx, edi
call fcn.10058392
mov ebx, eax
mov dword [ebp - 0x3ac], ebx
test ebx, ebx
js 0x10067df5
xor ecx, ecx
cmp dword [edi + 0x264], ecx
jbe 0x10067901
mov edx, dword [ebp - 0x3d0]
mov eax, dword [esi + ecx*4]
cmp eax, 0xffffffff
je 0x100678f4
mov eax, dword [edx + eax*4]
mov dword [esi + ecx*4], eax
jmp 0x100678f8
or dword [esi + ecx*4], 0xffffffff
inc ecx
cmp ecx, dword [edi + 0x264]
jb 0x100678e4
mov edx, dword [ebp - 0x3a0]
xor eax, eax
cmp dword [edi + 0x264], eax
jbe 0x10067921
mov dword [edx + eax*4], 0xffff
inc eax
cmp eax, dword [edi + 0x264]
jb 0x10067911
xor eax, eax
cmp dword [edi + 0x264], eax
jbe 0x10067942
mov ecx, dword [esi + eax*4]
cmp ecx, 0xffff
je 0x10067939
mov dword [edx + ecx*4], eax
inc eax
cmp eax, dword [edi + 0x264]
jb 0x1006792b
cmp dword [ebp - 0x3f0], 0
mov esi, dword [ebp - 0x3c4]
jne 0x10067961
test esi, esi
jne 0x10067961
cmp dword [edi + 0x240], esi
jne 0x10067a3e
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 0x10067df5
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 0x100679b2
or dword [edx + ecx*4], 0xffffffff
inc ecx
cmp ecx, dword [edi + 0x23c]
jb 0x100679a5
xor eax, eax
cmp dword [ebp - 0x3e8], eax
jbe 0x100679f3
mov edx, dword [ebp - 0x3a8]
mov esi, dword [ebp - 0x3e8]
mov edi, dword [ebp - 0x3b0]
mov ecx, dword [edx + eax*4]
cmp ecx, 0xffff
je 0x100679dc
mov dword [edi + ecx*4], eax
inc eax
cmp eax, esi
jb 0x100679ce
mov edi, dword [ebp - 0x3e4]
mov esi, dword [ebp - 0x3c4]
mov edx, dword [ebp - 0x3b0]
test esi, esi
je 0x10067a42
xor ecx, ecx
cmp dword [edi + 0x23c], ecx
jbe 0x10067a3e
mov esi, dword [ebp - 0x3ec]
mov edx, dword [edx + ecx*4]
cmp edx, 0xffffffff
je 0x10067a29
cmp edx, esi
jb 0x10067a29
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 0x10067a2f
mov edx, dword [ebp - 0x3b0]
inc ecx
cmp ecx, dword [edi + 0x23c]
jb 0x10067a07
mov esi, dword [ebp - 0x3c4]
test esi, esi
jne 0x10067a9a
cmp dword [edi + 0x240], 0
jbe 0x10067a9a
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 0x10067df5
push dword [ebp - 0x3b8]
mov esi, dword [ebp - 0x3a8]
push esi
mov ecx, edi
call fcn.10058206
mov ebx, eax
mov dword [ebp - 0x3ac], ebx
test ebx, ebx
js 0x10067df5
jmp 0x10067cd6
test byte [edi + 0x218], 0x20
jne 0x10067cd6
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 0x10067ae0
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.10051228
mov ebx, eax
test ebx, ebx
js 0x10067df5
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 0x10067dfb
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 0x10067dfb
mov eax, dword [ebp - 0x3b4]
test eax, eax
je 0x10067bf6
lea esi, [edi + 0xc]
push esi
push eax
call fcn.1004bf67
test eax, eax
jne 0x10067bf6
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 0x10067c61
mov ebx, dword [ebp - 0x3b0]
cmp dword [ebx + esi*4], 0xffffffff
je 0x10067beb
push 1
push esi
push dword [ebx + esi*4]
lea ecx, [ebp - 0x398]
call fcn.1004be8d
inc esi
cmp esi, dword [edi + 0x23c]
jb 0x10067bd4
jmp 0x10067c5b
mov eax, dword [ebp - 0x3b8]
mov dword [ebp - 0x3e0], eax
xor eax, eax
mov dword [ebp - 0x3b4], eax
cmp dword [edi + 0x23c], eax
jbe 0x10067c61
mov ebx, dword [ebp - 0x3e0]
mov ecx, dword [ebp - 0x3b0]
mov ecx, dword [ecx + eax*4]
cmp ecx, 0xffffffff
je 0x10067c4c
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 0x10067c18
mov ebx, dword [ebp - 0x3ac]
mov ecx, dword [ebp - 0x3cc]
mov esi, dword [ebp - 0x3a8]
test ecx, ecx
je 0x10067cab
xor edx, edx
cmp dword [edi + 0x23c], edx
jbe 0x10067cab
mov ebx, dword [ebp - 0x3b0]
mov eax, dword [ebx + edx*4]
movzx eax, word [ecx + eax*2]
mov ecx, dword [edi + 0x244]
mov ax, word [esi + eax*4]
mov word [ecx + edx*2], ax
mov ecx, dword [ebp - 0x3cc]
inc edx
cmp edx, dword [edi + 0x23c]
jb 0x10067c81
mov ebx, dword [ebp - 0x3ac]
xor eax, eax
xor ecx, ecx
cmp dword [edi + 0x23c], eax
jbe 0x10067cd0
cmp dword [esi + eax*4], 0xffff
je 0x10067cc3
inc ecx
jmp 0x10067cc7
or dword [esi + eax*4], 0xffffffff
inc eax
cmp eax, dword [edi + 0x23c]
jb 0x10067cb7
mov dword [edi + 0x23c], ecx
mov ecx, dword [ebp - 0x3f4]
test ecx, ecx
je 0x10067d14
mov eax, dword [edi + 0x264]
shl eax, 2
test dword [ebp + 8], 0x80000000
push eax
je 0x10067d05
mov esi, dword [ebp - 0x3a0]
push esi
push ecx
call sub.msvcrt.dll_memcpy
add esp, 0xc
jmp 0x10067d1a
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 0x10067dcf
mov edx, dword [ebp - 0x3dc]
cmp eax, edx
jne 0x10067d4e
push dword [ebp - 0x3f8]
push eax
push esi
call fcn.10049cd9
mov ebx, eax
test ebx, ebx
js 0x10067df5
jmp 0x10067dcf
xor esi, esi
mov dword [ebp - 0x3b4], esi
cmp dword [edi + 0x264], esi
jbe 0x10067dcf
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 0x10067d88
mov eax, dword [esi + eax*4]
mov dword [edx], eax
jmp 0x10067d8b
or dword [edx], 0xffffffff
push 4
pop eax
add edx, eax
dec edi
jne 0x10067d79
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 0x10067d64
mov ebx, dword [ebp - 0x3ac]
mov ecx, dword [ebp - 0x3f0]
mov esi, dword [ebp - 0x39c]
test ecx, ecx
je 0x10067dfb
mov eax, dword [ebp - 0x3c0]
and dword [ebp - 0x3c0], 0
mov dword [ecx], eax
jmp 0x10067dfb
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 0x10067e55
push eax
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
pop ecx
cmp dword [ebp - 0x3b8], 0
je 0x10067e6a
mov eax, dword [edi + 0x234]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x30]
cmp dword [ebp - 0x3c8], 0
je 0x10067e79
mov eax, dword [esi]
push esi
call dword [eax + 0x30]
mov ecx, dword [ebp - 0x3c0]
test ecx, ecx
je 0x10067e90
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
and dword [ebp - 0x3c0], 0
test esi, esi
je 0x10067e9a
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