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

Disassembly:
push 0xffffffffffffffff
push 0x10e283a0
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.10c1edd0
mov ecx, dword [edi + 0x20]
mov eax, dword [edi]
or ebx, 0xffffffff
cmp ecx, esi
jl 0x10c1bd84
mov dword [eax + 0x14], ecx
mov ecx, dword [edi + 0x1c]
mov dword [eax + 0x10], ecx
jmp 0x10c1bd8d
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 0x10c1bd9c
mov edx, dword [eax + 0xc]
jmp 0x10c1bd9f
mov edx, dword [eax + 0x10]
test cl, cl
mov dword [esp + 0x28], edx
je 0x10c1bdac
mov ebp, dword [eax + 0x10]
jmp 0x10c1bdaf
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.10c1f000
mov eax, dword [esp + 0x38]
lea edx, [esp + 0x24]
push edx
push eax
lea ecx, [esp + 0x38]
mov dword [esp + 0x2c], ebp
call fcn.10c1f000
mov edx, dword [edi]
mov edi, dword [esp + 0x34]
cmp edi, esi
je 0x10c1bdf3
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 0x10c1bf15
cmp esi, ecx
je 0x10c1bf15
cmp edi, eax
je 0x10c1be21
cmp edi, ecx
jne 0x10c1be29
cmp ebp, eax
je 0x10c1be40
cmp ebp, ecx
je 0x10c1be40
push str.GetNextIndex:_Triangle_doesnt_have_all_of_its_vertices_n
call fcn.10ddeafc
push str.GetNextIndex:_Duplicate_triangle_probably_got_us_derailed_n
call fcn.10ddeafc
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.10c1f000
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.10c1b270
add esp, 0x10
mov dword [esp + 0x10], eax
test eax, eax
je 0x10c1c189
mov ecx, dword [eax + 0xc]
test ecx, ecx
jge 0x10c1c189
mov ecx, dword [ebp + 0x20]
test ecx, ecx
jl 0x10c1bea8
cmp dword [eax + 0x14], ecx
je 0x10c1c189
lea ecx, [esp + 0x30]
mov dword [esp + 0x2c], ebx
mov esi, eax
call fcn.10c1af70
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 0x10c1bfa2
cmp edi, edx
je 0x10c1bfa2
cmp ebp, ecx
je 0x10c1bee9
cmp ebp, edx
jne 0x10c1bef9
cmp esi, ecx
je 0x10c1bfd3
cmp esi, edx
je 0x10c1bfd3
push str.GetNextIndex:_Triangle_doesnt_have_all_of_its_vertices_n
call fcn.10ddeafc
push str.GetNextIndex:_Duplicate_triangle_probably_got_us_derailed_n
call fcn.10ddeafc
add esp, 8
jmp 0x10c1bfd3
cmp edi, eax
je 0x10c1bf4d
cmp edi, ecx
je 0x10c1bf4d
cmp esi, eax
je 0x10c1bf25
cmp esi, ecx
jne 0x10c1bf2d
cmp ebp, eax
je 0x10c1bf44
cmp ebp, ecx
je 0x10c1bf44
push str.GetNextIndex:_Triangle_doesnt_have_all_of_its_vertices_n
call fcn.10ddeafc
push str.GetNextIndex:_Duplicate_triangle_probably_got_us_derailed_n
call fcn.10ddeafc
add esp, 8
mov dword [esp + 0x18], edi
jmp 0x10c1be44
cmp ebp, eax
je 0x10c1bf85
cmp ebp, ecx
je 0x10c1bf85
cmp esi, eax
je 0x10c1bf5d
cmp esi, ecx
jne 0x10c1bf65
cmp edi, eax
je 0x10c1bf7c
cmp edi, ecx
je 0x10c1bf7c
push str.GetNextIndex:_Triangle_doesnt_have_all_of_its_vertices_n
call fcn.10ddeafc
push str.GetNextIndex:_Duplicate_triangle_probably_got_us_derailed_n
call fcn.10ddeafc
add esp, 8
mov dword [esp + 0x18], ebp
jmp 0x10c1be44
cmp esi, edi
je 0x10c1be40
cmp esi, ebp
je 0x10c1be40
cmp edi, ebp
je 0x10c1bf44
mov dword [esp + 0x18], ebx
jmp 0x10c1be44
cmp ebp, ecx
je 0x10c1c00f
cmp ebp, edx
je 0x10c1c00f
cmp edi, ecx
je 0x10c1bfb2
cmp edi, edx
jne 0x10c1bfba
cmp esi, ecx
je 0x10c1bfd1
cmp esi, edx
je 0x10c1bfd1
push str.GetNextIndex:_Triangle_doesnt_have_all_of_its_vertices_n
call fcn.10ddeafc
push str.GetNextIndex:_Duplicate_triangle_probably_got_us_derailed_n
call fcn.10ddeafc
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.10c1b270
add esp, 0x10
test eax, eax
je 0x10c1c053
mov ecx, dword [eax + 0xc]
test ecx, ecx
jge 0x10c1c053
mov ebp, dword [esp + 0x14]
mov ecx, dword [ebp + 0x20]
test ecx, ecx
jl 0x10c1c108
cmp dword [eax + 0x14], ecx
jne 0x10c1c108
jmp 0x10c1c057
cmp esi, ecx
je 0x10c1c042
cmp esi, edx
je 0x10c1c042
cmp edi, ecx
je 0x10c1c01f
cmp edi, edx
jne 0x10c1c027
cmp ebp, ecx
je 0x10c1c03e
cmp ebp, edx
je 0x10c1c03e
push str.GetNextIndex:_Triangle_doesnt_have_all_of_its_vertices_n
call fcn.10ddeafc
push str.GetNextIndex:_Duplicate_triangle_probably_got_us_derailed_n
call fcn.10ddeafc
add esp, 8
mov edi, esi
jmp 0x10c1bfd3
cmp edi, ebp
je 0x10c1bfd3
cmp edi, esi
je 0x10c1bfd3
cmp ebp, esi
je 0x10c1bfd1
or edi, 0xffffffff
jmp 0x10c1bfd3
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.10c1b270
add esp, 0x10
test eax, eax
je 0x10c1c108
mov ecx, dword [eax + 0xc]
test ecx, ecx
jge 0x10c1c108
mov ecx, dword [ebp + 0x20]
test ecx, ecx
jl 0x10c1c08d
cmp dword [eax + 0x14], ecx
je 0x10c1c108
push 0x18
call fcn.10901500
add esp, 4
test eax, eax
je 0x10c1c0b1
mov dword [eax + 4], ebx
or ebx, 0xffffffff
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 0x10c1c0b6
xor eax, eax
or ebx, 0xffffffff
mov edx, dword [esp + 0x48]
lea ecx, [esp + 0x24]
push ecx
push edx
lea ecx, [esp + 0x48]
mov dword [esp + 0x2c], eax
call fcn.10c1edd0
mov eax, dword [ebp + 0x20]
mov ecx, dword [esp + 0x24]
test eax, eax
jl 0x10c1c0e3
mov dword [ecx + 0x14], eax
mov eax, dword [ebp + 0x1c]
mov dword [ecx + 0x10], eax
jmp 0x10c1c0ec
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.10c1f000
inc dword [ebp + 0x28]
jmp 0x10c1c10f
mov esi, dword [esp + 0x2c]
or ebx, 0xffffffff
mov eax, dword [esp + 0x48]
lea edx, [esp + 0x10]
push edx
push eax
lea ecx, [esp + 0x48]
call fcn.10c1edd0
mov eax, dword [ebp + 0x20]
mov ecx, dword [esp + 0x10]
test eax, eax
jl 0x10c1c138
mov dword [ecx + 0x14], eax
mov edx, dword [ebp + 0x1c]
mov dword [ecx + 0x10], edx
jmp 0x10c1c141
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.10c1f000
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.10c1b270
mov edi, dword [esp + 0x30]
mov ebp, dword [esp + 0x24]
add esp, 0x10
mov dword [esp + 0x10], eax
test eax, eax
jne 0x10c1be8d
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 0x10c1c1d3
mov eax, dword [esp + 0x48]
sub eax, ecx
sar eax, 2
cmp esi, eax
jae 0x10c1c1d3
lea eax, [ecx + esi*4]
mov ecx, dword [esp + 0x58]
push eax
push ecx
lea ecx, [esp + 0x58]
call fcn.10c1edd0
inc esi
jmp 0x10c1c1a9
lea ecx, [esp + 0x30]
mov dword [esp + 0x2c], ebx
call fcn.10c1af70
lea ecx, [esp + 0x30]
call fcn.10c1af70
test eax, eax
jbe 0x10c1c200
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
push edx
push eax
lea ecx, [esp + 0x38]
call fcn.10c1b1a0
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.10c1f000
mov edx, dword [esp + 0x38]
lea ecx, [esp + 0x2c]
push ecx
push edx
lea ecx, [esp + 0x38]
mov dword [esp + 0x34], edi
call fcn.10c1f000
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.10c1f000
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.10c1b270
mov esi, eax
add esp, 0x10
cmp esi, ebx
mov dword [esp + 0x10], esi
je 0x10c1c4f4
mov eax, dword [esi + 0xc]
test eax, eax
jge 0x10c1c4f4
mov eax, dword [ebp + 0x20]
test eax, eax
jl 0x10c1c294
cmp dword [esi + 0x14], eax
je 0x10c1c4f4
lea ecx, [esp + 0x50]
push esi
push ecx
mov ecx, ebp
call fcn.10c1bc30
test al, al
je 0x10c1c4f4
mov edx, dword [esp + 0x20]
lea ecx, [esp + 0x30]
mov dword [esp + 0x24], edx
call fcn.10c1af70
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 0x10c1c350
cmp edi, edx
je 0x10c1c350
cmp ebp, ecx
je 0x10c1c2e4
cmp ebp, edx
jne 0x10c1c2ec
cmp esi, ecx
je 0x10c1c303
cmp esi, edx
je 0x10c1c303
push str.GetNextIndex:_Triangle_doesnt_have_all_of_its_vertices_n
call fcn.10ddeafc
push str.GetNextIndex:_Duplicate_triangle_probably_got_us_derailed_n
call fcn.10ddeafc
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.10c1b270
add esp, 0x10
test eax, eax
je 0x10c1c3db
mov ecx, dword [eax + 0xc]
test ecx, ecx
jge 0x10c1c3db
mov ebp, dword [esp + 0x14]
mov ecx, dword [ebp + 0x20]
test ecx, ecx
jl 0x10c1c47d
cmp dword [eax + 0x14], ecx
jne 0x10c1c47d
jmp 0x10c1c3df
cmp ebp, ecx
je 0x10c1c383
cmp ebp, edx
je 0x10c1c383
cmp edi, ecx
je 0x10c1c360
cmp edi, edx
jne 0x10c1c368
cmp esi, ecx
je 0x10c1c37f
cmp esi, edx
je 0x10c1c37f
push str.GetNextIndex:_Triangle_doesnt_have_all_of_its_vertices_n
call fcn.10ddeafc
push str.GetNextIndex:_Duplicate_triangle_probably_got_us_derailed_n
call fcn.10ddeafc
add esp, 8
mov esi, ebp
jmp 0x10c1c305
cmp esi, ecx
je 0x10c1c3bf
cmp esi, edx
je 0x10c1c3bf
cmp edi, ecx
je 0x10c1c393
cmp edi, edx
jne 0x10c1c3a3
cmp ebp, ecx
je 0x10c1c305
cmp ebp, edx
je 0x10c1c305
push str.GetNextIndex:_Triangle_doesnt_have_all_of_its_vertices_n
call fcn.10ddeafc
push str.GetNextIndex:_Duplicate_triangle_probably_got_us_derailed_n
call fcn.10ddeafc
add esp, 8
jmp 0x10c1c305
cmp edi, ebp
je 0x10c1c303
cmp edi, esi
je 0x10c1c303
cmp ebp, esi
je 0x10c1c37f
or esi, 0xffffffff
jmp 0x10c1c305
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
push edi
push esi
push ecx
push ebx
call fcn.10c1b270
add esp, 0x10
test eax, eax
je 0x10c1c47d
mov ecx, dword [eax + 0xc]
test ecx, ecx
jge 0x10c1c47d
mov ecx, dword [ebp + 0x20]
test ecx, ecx
jl 0x10c1c40a
cmp dword [eax + 0x14], ecx
je 0x10c1c47d
push 0x18
call fcn.10901500
mov edi, dword [esp + 0x20]
add esp, 4
test eax, eax
je 0x10c1c436
mov edx, dword [esp + 0x20]
or ecx, 0xffffffff
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 0x10c1c438
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.10c1edd0
mov edx, dword [esp + 0x28]
mov ecx, ebp
push edx
call fcn.10c1c560
mov ecx, dword [esp + 0x38]
lea eax, [esp + 0x2c]
push eax
push ecx
lea ecx, [esp + 0x38]
mov dword [esp + 0x34], edi
call fcn.10c1f000
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.10c1edd0
mov edx, dword [esp + 0x58]
lea ecx, [esp + 0x10]
push ecx
push edx
lea ecx, [esp + 0x58]
call fcn.10c1edd0
mov eax, dword [esp + 0x10]
mov ecx, ebp
push eax
call fcn.10c1c560
mov edx, dword [esp + 0x38]
lea ecx, [esp + 0x2c]
push ecx
push edx
lea ecx, [esp + 0x38]
mov dword [esp + 0x34], esi
call fcn.10c1f000
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.10c1b270
mov ebp, dword [esp + 0x24]
mov esi, eax
add esp, 0x10
mov dword [esp + 0x10], esi
test esi, esi
jne 0x10c1c279
lea edx, [esp + 0x60]
lea eax, [esp + 0x40]
push edx
push eax
mov ecx, ebp
call fcn.10c1c590
lea ecx, [esp + 0x50]
mov byte [esp + 0x78], 2
call fcn.10c1aef0
lea ecx, [esp + 0x60]
mov byte [esp + 0x78], 1
call fcn.10c1aef0
lea ecx, [esp + 0x40]
mov byte [esp + 0x78], 0
call fcn.10c1aef0
lea ecx, [esp + 0x30]
mov dword [esp + 0x78], 0xffffffff
call fcn.10c1af10
mov ecx, dword [esp + 0x70]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x6c
ret 8