Function at 0x10b9a660
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x10bc9f90
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x60
mov al, byte [esp + 0x70]
push ebx
push ebp
push esi
push edi
mov edi, ecx
xor esi, esi
mov dword [esp + 0x14], edi
mov byte [esp + 0x30], al
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], esi
mov cl, byte [esp + 0x80]
mov dword [esp + 0x78], esi
mov byte [esp + 0x40], cl
mov dword [esp + 0x44], esi
mov dword [esp + 0x48], esi
mov dword [esp + 0x4c], esi
mov dl, byte [esp + 0x80]
mov dword [esp + 0x64], esi
mov byte [esp + 0x60], dl
mov dword [esp + 0x68], esi
mov dword [esp + 0x6c], esi
push edi
push esi
lea ecx, [esp + 0x48]
mov byte [esp + 0x80], 2
call fcn.10b9d5d0
mov ecx, dword [edi + 0x20]
mov eax, dword [edi]
or ebx, reloc.ole32.dll_CoCreateGuid
cmp ecx, esi
jl 0x10b9a6f4
mov dword [eax + 0x14], ecx
mov ecx, dword [edi + 0x1c]
mov dword [eax + 0x10], ecx
jmp 0x10b9a6fd
mov dword [eax + 0x14], ebx
mov edx, dword [edi + 0x1c]
mov dword [eax + 0xc], edx
mov cl, byte [edi + 8]
mov eax, dword [edi + 4]
test cl, cl
je 0x10b9a70c
mov edx, dword [eax + 0xc]
jmp 0x10b9a70f
mov edx, dword [eax + 0x10]
test cl, cl
mov dword [esp + 0x28], edx
je 0x10b9a71c
mov ebp, dword [eax + 0x10]
jmp 0x10b9a71f
mov ebp, dword [eax + 0xc]
mov ecx, dword [esp + 0x38]
lea eax, [esp + 0x24]
push eax
push ecx
lea ecx, [esp + 0x38]
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], edx
call fcn.10b9d7f0
mov eax, dword [esp + 0x38]
lea edx, [esp + 0x24]
push edx
push eax
lea ecx, [esp + 0x38]
mov dword [esp + 0x2c], ebp
call fcn.10b9d7f0
mov edx, dword [edi]
mov edi, dword [esp + 0x34]
cmp edi, esi
je 0x10b9a763
mov esi, dword [esp + 0x38]
sub esi, edi
sar esi, 1
mov ebp, dword [edx + 8]
xor eax, eax
mov ax, word [edi + esi*2 - 4]
xor ecx, ecx
mov cx, word [edi + esi*2 - 2]
mov esi, dword [edx]
mov edi, dword [edx + 4]
cmp esi, eax
je 0x10b9a885
cmp esi, ecx
je 0x10b9a885
cmp edi, eax
je 0x10b9a791
cmp edi, ecx
jne 0x10b9a799
cmp ebp, eax
je 0x10b9a7b0
cmp ebp, ecx
je 0x10b9a7b0
push str.GetNextIndex:_Triangle_doesnt_have_all_of_its_vertices_n
call sub.MSVCR70.dll_printf
push str.GetNextIndex:_Duplicate_triangle_probably_got_us_derailed_n
call sub.MSVCR70.dll_printf
add esp, 8
mov dword [esp + 0x18], esi
mov edx, dword [esp + 0x38]
mov ebx, dword [esp + 0x18]
lea ecx, [esp + 0x24]
mov dword [esp + 0x24], ebx
push ecx
push edx
lea ecx, [esp + 0x38]
call fcn.10b9d7f0
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x20]
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x1c], edi
mov eax, dword [ebp]
push eax
push ebx
push edi
push ecx
call fcn.10b99be0
add esp, 0x10
mov dword [esp + 0x10], eax
test eax, eax
je 0x10b9aaf9
mov ecx, dword [eax + 0xc]
test ecx, ecx
jge 0x10b9aaf9
mov ecx, dword [ebp + 0x20]
test ecx, ecx
jl 0x10b9a818
cmp dword [eax + 0x14], ecx
je 0x10b9aaf9
lea ecx, [esp + 0x30]
mov dword [esp + 0x2c], ebx
mov esi, eax
call fcn.10b99900
mov edi, dword [esp + 0x34]
mov ebp, dword [esi + 4]
xor ecx, ecx
xor edx, edx
mov cx, word [edi + eax*2 - 4]
mov dx, word [edi + eax*2 - 2]
mov edi, dword [esi]
mov esi, dword [esi + 8]
cmp edi, ecx
je 0x10b9a912
cmp edi, edx
je 0x10b9a912
cmp ebp, ecx
je 0x10b9a859
cmp ebp, edx
jne 0x10b9a869
cmp esi, ecx
je 0x10b9a943
cmp esi, edx
je 0x10b9a943
push str.GetNextIndex:_Triangle_doesnt_have_all_of_its_vertices_n
call sub.MSVCR70.dll_printf
push str.GetNextIndex:_Duplicate_triangle_probably_got_us_derailed_n
call sub.MSVCR70.dll_printf
add esp, 8
jmp 0x10b9a943
cmp edi, eax
je 0x10b9a8bd
cmp edi, ecx
je 0x10b9a8bd
cmp esi, eax
je 0x10b9a895
cmp esi, ecx
jne 0x10b9a89d
cmp ebp, eax
je 0x10b9a8b4
cmp ebp, ecx
je 0x10b9a8b4
push str.GetNextIndex:_Triangle_doesnt_have_all_of_its_vertices_n
call sub.MSVCR70.dll_printf
push str.GetNextIndex:_Duplicate_triangle_probably_got_us_derailed_n
call sub.MSVCR70.dll_printf
add esp, 8
mov dword [esp + 0x18], edi
jmp 0x10b9a7b4
cmp ebp, eax
je 0x10b9a8f5
cmp ebp, ecx
je 0x10b9a8f5
cmp esi, eax
je 0x10b9a8cd
cmp esi, ecx
jne 0x10b9a8d5
cmp edi, eax
je 0x10b9a8ec
cmp edi, ecx
je 0x10b9a8ec
push str.GetNextIndex:_Triangle_doesnt_have_all_of_its_vertices_n
call sub.MSVCR70.dll_printf
push str.GetNextIndex:_Duplicate_triangle_probably_got_us_derailed_n
call sub.MSVCR70.dll_printf
add esp, 8
mov dword [esp + 0x18], ebp
jmp 0x10b9a7b4
cmp esi, edi
je 0x10b9a7b0
cmp esi, ebp
je 0x10b9a7b0
cmp edi, ebp
je 0x10b9a8b4
mov dword [esp + 0x18], ebx
jmp 0x10b9a7b4
cmp ebp, ecx
je 0x10b9a97f
cmp ebp, edx
je 0x10b9a97f
cmp edi, ecx
je 0x10b9a922
cmp edi, edx
jne 0x10b9a92a
cmp esi, ecx
je 0x10b9a941
cmp esi, edx
je 0x10b9a941
push str.GetNextIndex:_Triangle_doesnt_have_all_of_its_vertices_n
call sub.MSVCR70.dll_printf
push str.GetNextIndex:_Duplicate_triangle_probably_got_us_derailed_n
call sub.MSVCR70.dll_printf
add esp, 8
mov edi, ebp
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x80]
push esi
push edi
push ebx
push edx
call fcn.10b99be0
add esp, 0x10
test eax, eax
je 0x10b9a9c3
mov ecx, dword [eax + 0xc]
test ecx, ecx
jge 0x10b9a9c3
mov ebp, dword [esp + 0x14]
mov ecx, dword [ebp + 0x20]
test ecx, ecx
jl 0x10b9aa78
cmp dword [eax + 0x14], ecx
jne 0x10b9aa78
jmp 0x10b9a9c7
cmp esi, ecx
je 0x10b9a9b2
cmp esi, edx
je 0x10b9a9b2
cmp edi, ecx
je 0x10b9a98f
cmp edi, edx
jne 0x10b9a997
cmp ebp, ecx
je 0x10b9a9ae
cmp ebp, edx
je 0x10b9a9ae
push str.GetNextIndex:_Triangle_doesnt_have_all_of_its_vertices_n
call sub.MSVCR70.dll_printf
push str.GetNextIndex:_Duplicate_triangle_probably_got_us_derailed_n
call sub.MSVCR70.dll_printf
add esp, 8
mov edi, esi
jmp 0x10b9a943
cmp edi, ebp
je 0x10b9a943
cmp edi, esi
je 0x10b9a943
cmp ebp, esi
je 0x10b9a941
or edi, reloc.ole32.dll_CoCreateGuid
jmp 0x10b9a943
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x80]
push esi
mov esi, dword [esp + 0x20]
push edi
push esi
push eax
call fcn.10b99be0
add esp, 0x10
test eax, eax
je 0x10b9aa78
mov ecx, dword [eax + 0xc]
test ecx, ecx
jge 0x10b9aa78
mov ecx, dword [ebp + 0x20]
test ecx, ecx
jl 0x10b9a9fd
cmp dword [eax + 0x14], ecx
je 0x10b9aa78
push 0x18
call fcn.109042e0
add esp, 4
test eax, eax
je 0x10b9aa21
mov dword [eax + 4], ebx
or ebx, reloc.ole32.dll_CoCreateGuid
mov dword [eax], esi
mov dword [eax + 8], esi
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov dword [eax + 0x14], ebx
jmp 0x10b9aa26
xor eax, eax
or ebx, reloc.ole32.dll_CoCreateGuid
mov edx, dword [esp + 0x48]
lea ecx, [esp + 0x24]
push ecx
push edx
lea ecx, [esp + 0x48]
mov dword [esp + 0x2c], eax
call fcn.10b9d5d0
mov eax, dword [ebp + 0x20]
mov ecx, dword [esp + 0x24]
test eax, eax
jl 0x10b9aa53
mov dword [ecx + 0x14], eax
mov eax, dword [ebp + 0x1c]
mov dword [ecx + 0x10], eax
jmp 0x10b9aa5c
mov dword [ecx + 0x14], ebx
mov edx, dword [ebp + 0x1c]
mov dword [ecx + 0xc], edx
mov ecx, dword [esp + 0x38]
lea eax, [esp + 0x1c]
push eax
push ecx
lea ecx, [esp + 0x38]
mov dword [esp + 0x24], esi
call fcn.10b9d7f0
inc dword [ebp + 0x28]
jmp 0x10b9aa7f
mov esi, dword [esp + 0x2c]
or ebx, reloc.ole32.dll_CoCreateGuid
mov eax, dword [esp + 0x48]
lea edx, [esp + 0x10]
push edx
push eax
lea ecx, [esp + 0x48]
call fcn.10b9d5d0
mov eax, dword [ebp + 0x20]
mov ecx, dword [esp + 0x10]
test eax, eax
jl 0x10b9aaa8
mov dword [ecx + 0x14], eax
mov edx, dword [ebp + 0x1c]
mov dword [ecx + 0x10], edx
jmp 0x10b9aab1
mov dword [ecx + 0x14], ebx
mov eax, dword [ebp + 0x1c]
mov dword [ecx + 0xc], eax
mov edx, dword [esp + 0x38]
lea ecx, [esp + 0x2c]
push ecx
push edx
lea ecx, [esp + 0x38]
mov dword [esp + 0x34], edi
call fcn.10b9d7f0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x80]
push eax
push edi
push esi
push ecx
mov dword [esp + 0x2c], esi
mov ebx, edi
call fcn.10b99be0
mov edi, dword [esp + 0x30]
mov ebp, dword [esp + 0x24]
add esp, 0x10
mov dword [esp + 0x10], eax
test eax, eax
jne 0x10b9a7fd
mov dl, byte [esp + 0x80]
xor ebx, ebx
mov byte [esp + 0x50], dl
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], ebx
mov byte [esp + 0x78], 3
xor esi, esi
mov ecx, dword [esp + 0x44]
cmp ecx, ebx
je 0x10b9ab43
mov eax, dword [esp + 0x48]
sub eax, ecx
sar eax, 2
cmp esi, eax
jae 0x10b9ab43
lea eax, [ecx + esi*4]
mov ecx, dword [esp + 0x58]
push eax
push ecx
lea ecx, [esp + 0x58]
call fcn.10b9d5d0
inc esi
jmp 0x10b9ab19
lea ecx, [esp + 0x30]
mov dword [esp + 0x2c], ebx
call fcn.10b99900
lea ecx, [esp + 0x30]
call fcn.10b99900
test eax, eax
jbe 0x10b9ab70
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
push edx
push eax
lea ecx, [esp + 0x38]
call fcn.10b99b30
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x38]
lea edx, [esp + 0x2c]
mov dword [esp + 0x2c], ecx
push edx
push eax
lea ecx, [esp + 0x38]
call fcn.10b9d7f0
mov edx, dword [esp + 0x38]
lea ecx, [esp + 0x2c]
push ecx
push edx
lea ecx, [esp + 0x38]
mov dword [esp + 0x34], edi
call fcn.10b9d7f0
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x28]
lea eax, [esp + 0x2c]
mov dword [esp + 0x2c], esi
push eax
push ecx
lea ecx, [esp + 0x38]
call fcn.10b9d7f0
mov edx, dword [ebp]
mov eax, dword [esp + 0x80]
push edx
push esi
push edi
push eax
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], esi
call fcn.10b99be0
mov esi, eax
add esp, 0x10
cmp esi, ebx
mov dword [esp + 0x10], esi
je 0x10b9ae64
mov eax, dword [esi + 0xc]
test eax, eax
jge 0x10b9ae64
mov eax, dword [ebp + 0x20]
test eax, eax
jl 0x10b9ac04
cmp dword [esi + 0x14], eax
je 0x10b9ae64
lea ecx, [esp + 0x50]
push esi
push ecx
mov ecx, ebp
call fcn.10b9a5a0
test al, al
je 0x10b9ae64
mov edx, dword [esp + 0x20]
lea ecx, [esp + 0x30]
mov dword [esp + 0x24], edx
call fcn.10b99900
mov edi, dword [esp + 0x34]
mov ebp, dword [esi + 4]
xor ecx, ecx
xor edx, edx
mov cx, word [edi + eax*2 - 4]
mov dx, word [edi + eax*2 - 2]
mov edi, dword [esi]
mov esi, dword [esi + 8]
cmp edi, ecx
je 0x10b9acc0
cmp edi, edx
je 0x10b9acc0
cmp ebp, ecx
je 0x10b9ac54
cmp ebp, edx
jne 0x10b9ac5c
cmp esi, ecx
je 0x10b9ac73
cmp esi, edx
je 0x10b9ac73
push str.GetNextIndex:_Triangle_doesnt_have_all_of_its_vertices_n
call sub.MSVCR70.dll_printf
push str.GetNextIndex:_Duplicate_triangle_probably_got_us_derailed_n
call sub.MSVCR70.dll_printf
add esp, 8
mov esi, edi
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
mov ebx, dword [esp + 0x80]
push edi
push esi
push eax
push ebx
call fcn.10b99be0
add esp, 0x10
test eax, eax
je 0x10b9ad4b
mov ecx, dword [eax + 0xc]
test ecx, ecx
jge 0x10b9ad4b
mov ebp, dword [esp + 0x14]
mov ecx, dword [ebp + 0x20]
test ecx, ecx
jl 0x10b9aded
cmp dword [eax + 0x14], ecx
jne 0x10b9aded
jmp 0x10b9ad4f
cmp ebp, ecx
je 0x10b9acf3
cmp ebp, edx
je 0x10b9acf3
cmp edi, ecx
je 0x10b9acd0
cmp edi, edx
jne 0x10b9acd8
cmp esi, ecx
je 0x10b9acef
cmp esi, edx
je 0x10b9acef
push str.GetNextIndex:_Triangle_doesnt_have_all_of_its_vertices_n
call sub.MSVCR70.dll_printf
push str.GetNextIndex:_Duplicate_triangle_probably_got_us_derailed_n
call sub.MSVCR70.dll_printf
add esp, 8
mov esi, ebp
jmp 0x10b9ac75
cmp esi, ecx
je 0x10b9ad2f
cmp esi, edx
je 0x10b9ad2f
cmp edi, ecx
je 0x10b9ad03
cmp edi, edx
jne 0x10b9ad13
cmp ebp, ecx
je 0x10b9ac75
cmp ebp, edx
je 0x10b9ac75
push str.GetNextIndex:_Triangle_doesnt_have_all_of_its_vertices_n
call sub.MSVCR70.dll_printf
push str.GetNextIndex:_Duplicate_triangle_probably_got_us_derailed_n
call sub.MSVCR70.dll_printf
add esp, 8
jmp 0x10b9ac75
cmp edi, ebp
je 0x10b9ac73
cmp edi, esi
je 0x10b9ac73
cmp ebp, esi
je 0x10b9acef
or esi, reloc.ole32.dll_CoCreateGuid
jmp 0x10b9ac75
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
push edi
push esi
push ecx
push ebx
call fcn.10b99be0
add esp, 0x10
test eax, eax
je 0x10b9aded
mov ecx, dword [eax + 0xc]
test ecx, ecx
jge 0x10b9aded
mov ecx, dword [ebp + 0x20]
test ecx, ecx
jl 0x10b9ad7a
cmp dword [eax + 0x14], ecx
je 0x10b9aded
push 0x18
call fcn.109042e0
mov edi, dword [esp + 0x20]
add esp, 4
test eax, eax
je 0x10b9ada6
mov edx, dword [esp + 0x20]
or ecx, reloc.ole32.dll_CoCreateGuid
mov dword [eax], edi
mov dword [eax + 4], edx
mov dword [eax + 8], edi
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov dword [eax + 0x14], ecx
jmp 0x10b9ada8
xor eax, eax
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x28], eax
lea eax, [esp + 0x28]
push eax
push ecx
lea ecx, [esp + 0x68]
call fcn.10b9d5d0
mov edx, dword [esp + 0x28]
mov ecx, ebp
push edx
call fcn.10b9aed0
mov ecx, dword [esp + 0x38]
lea eax, [esp + 0x2c]
push eax
push ecx
lea ecx, [esp + 0x38]
mov dword [esp + 0x34], edi
call fcn.10b9d7f0
mov eax, dword [ebp + 0x28]
mov dword [esp + 0x24], edi
inc eax
mov dword [ebp + 0x28], eax
mov eax, dword [esp + 0x68]
lea edx, [esp + 0x10]
push edx
push eax
lea ecx, [esp + 0x68]
call fcn.10b9d5d0
mov edx, dword [esp + 0x58]
lea ecx, [esp + 0x10]
push ecx
push edx
lea ecx, [esp + 0x58]
call fcn.10b9d5d0
mov eax, dword [esp + 0x10]
mov ecx, ebp
push eax
call fcn.10b9aed0
mov edx, dword [esp + 0x38]
lea ecx, [esp + 0x2c]
push ecx
push edx
lea ecx, [esp + 0x38]
mov dword [esp + 0x34], esi
call fcn.10b9d7f0
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x24]
push ecx
push esi
push eax
push ebx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], esi
call fcn.10b99be0
mov ebp, dword [esp + 0x24]
mov esi, eax
add esp, 0x10
mov dword [esp + 0x10], esi
test esi, esi
jne 0x10b9abe9
lea edx, [esp + 0x60]
lea eax, [esp + 0x40]
push edx
push eax
mov ecx, ebp
call fcn.10b9af00
lea ecx, [esp + 0x50]
mov byte [esp + 0x78], 2
call fcn.10b9d5b0
lea ecx, [esp + 0x60]
mov byte [esp + 0x78], 1
call fcn.10b9d5b0
lea ecx, [esp + 0x40]
mov byte [esp + 0x78], 0
call fcn.10b9d5b0
lea ecx, [esp + 0x30]
mov dword [esp + 0x78], reloc.ole32.dll_CoCreateGuid
call fcn.10b9d5b0
mov ecx, dword [esp + 0x70]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x6c
ret 8