Function at 0x431430
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x178
push ebx
push ebp
push esi
push edi
mov edi, dword [0x549900]
xor esi, esi
mov dword [esp + 0x5c], edi
mov dword [esp + 0x74], 0x5f6a98
fld dword [esp + 0x5c]
mov dword [esp + 0x1c], esi
fstp qword [esp + 0x38]
mov ebx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x38]
fild dword [esp + 0x1c]
push ebx
push ebp
sub esp, 8
fstp dword [esp + 0x6c]
fld dword [esp + 0x6c]
fdiv dword [0x53b704]
fstp dword [esp + 0x34]
fld dword [esp + 0x34]
fstp qword [esp]
call fcn.00529779
fstp dword [esp + 0x34]
fld dword [esp + 0x34]
fcomp dword [0x53b27c]
add esp, 0x10
fnstsw ax
test ah, 0x41
jne 0x4314a9
mov dword [esp + 0x24], 0x3f800000
fld dword [esp + 0x24]
fmul dword [0x53b704]
call fcn.00529c7c
mov byte [esi + 0x5f6910], al
inc esi
cmp esi, 0x100
mov dword [esp + 0x1c], esi
jl 0x431462
mov ecx, dword [esp + 0x194]
mov dword [0x549910], edi
mov eax, ecx
xor edx, edx
and eax, 2
xor ebp, ebp
mov dword [esp + 0x60], eax
mov eax, ecx
and ecx, 8
and eax, 1
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x190]
mov dword [esp + 0x5c], eax
xor eax, eax
mov ax, word [ecx + 2]
mov dx, word [ecx + 6]
mov bp, word [ecx + 4]
cmp eax, 0x15
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], edx
jne 0x43151d
inc dword [0x5f7ebc]
mov eax, dword [esp + 0x4c]
mov edi, dword [esp + 0x48]
mov ebx, dword [esp + 0x18c]
xor ecx, ecx
lea esi, [eax*8]
push 1
sub esi, eax
push ecx
shl edi, 4
lea eax, [ebp + ebp*2]
push 1
mov dword [ebx + 4], ecx
mov dword [ebx], ecx
mov dword [ebx + 8], ecx
push ecx
shl esi, 3
lea ecx, [eax*4 + 3]
lea edx, [edi + 3]
and ecx, 0xfffffffc
and edx, 0xfffffffc
lea eax, [esi + 3]
add ecx, edx
and al, 0xfc
add ecx, eax
push ecx
call fcn.004581a0
test eax, eax
setne cl
push str.Out_of_system_memory.
push ecx
mov dword [esp + 0x88], eax
call fcn.004015b0
mov eax, dword [esp + 0x88]
xor edx, edx
mov dword [ebx], eax
xor ecx, ecx
lea edi, [edi + eax + 3]
mov eax, dword [esp + 0x1ac]
and edi, 0xfffffffc
add esp, 0x1c
mov dword [ebx + 4], edi
mov dword [esp + 0x34], edi
lea esi, [esi + edi + 3]
and esi, 0xfffffffc
mov dword [ebx + 8], esi
mov dx, word [eax + 6]
mov dword [ebx + 0x14], edx
mov cx, word [eax + 2]
mov dword [ebx + 0x18], ecx
mov ecx, dword [esp + 0x4c]
mov edx, dword [0x5f6710]
mov ebx, dword [0x5f671c]
add edx, ecx
mov dword [esp + 0x68], esi
mov dword [0x5f6710], edx
mov edx, dword [esp + 0x48]
add ebx, edx
mov edx, dword [0x5f6690]
add edx, ebp
mov dword [0x5f671c], ebx
mov dword [0x5f6690], edx
xor edx, edx
mov dx, word [eax + 2]
add edx, ebp
test ecx, ecx
lea ebp, [eax + edx*8 + 0x1c]
mov dword [esp + 0x30], ebp
jle 0x431c4e
mov ebx, 0xfffffffc
mov eax, ecx
sub ebx, edi
add edi, 9
mov dword [esp + 0x28], ebx
mov dword [esp + 0x54], edi
mov dword [esp + 0x58], eax
mov cx, word [ebp]
xor eax, eax
mov word [edi - 9], cx
mov word [edi + 0x2d], ax
mov word [edi + 0x2b], ax
mov edx, dword [ebp + 8]
mov dword [edi - 1], edx
mov eax, dword [ebp]
test ah, 8
jne 0x43166f
xor eax, eax
mov al, dl
xor edx, edx
mov cl, byte [eax + 0x5f6910]
mov byte [edi - 1], cl
mov dl, byte [edi]
xor ecx, ecx
mov al, byte [edx + 0x5f6910]
mov byte [edi], al
mov cl, byte [edi + 1]
mov dl, byte [ecx + 0x5f6910]
mov byte [edi + 1], dl
mov eax, dword [ebp + 4]
lea esi, [edi - 5]
mov dword [esi], eax
mov al, byte [ebp]
test al, 0x10
je 0x43169e
mov cl, byte [edi - 3]
mov byte [edi - 2], cl
mov dl, byte [ebp + 6]
mov byte [ebp + 7], dl
mov eax, dword [ebp]
test ah, 8
je 0x43169e
mov al, byte [ebp + 0xa]
mov byte [ebp + 0xb], al
mov cl, byte [edi + 1]
mov byte [edi + 2], cl
mov eax, dword [esp + 0x48]
xor edx, edx
mov dl, byte [esi]
push str.Bad_face
cmp edx, eax
setl al
push eax
call fcn.004015b0
mov eax, dword [esp + 0x50]
xor ecx, ecx
mov cl, byte [esi]
add esp, 8
cmp ecx, eax
jl 0x4316cb
inc dword [0x5f7ebc]
inc esi
lea edx, [esi + ebx]
cmp edx, 4
jl 0x43169e
mov al, byte [esp + 0x19c]
test al, al
jne 0x431bed
mov eax, dword [ebp]
and eax, 3
cmp al, 3
jne 0x431bed
mov ecx, dword [ebp + 0x10]
mov eax, dword [esp + 0x5c]
test eax, eax
mov dx, word [ecx + 2]
mov word [edi - 7], dx
je 0x4319b7
lea esi, [ebp + 0x14]
xor ecx, ecx
xor edx, edx
mov cx, word [esi]
lea eax, [esi + 8]
mov dword [esp + 0x10], ecx
xor ecx, ecx
fild dword [esp + 0x10]
mov dword [esp + 0x1c], eax
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fmul dword [0x53b700]
fstp dword [edi + 0xb]
mov dx, word [eax]
mov dword [esp + 0x10], edx
xor edx, edx
fild dword [esp + 0x10]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fmul dword [0x53b700]
fstp dword [edi + 0x1b]
mov cx, word [esi + 2]
mov dword [esp + 0x10], ecx
xor ecx, ecx
fild dword [esp + 0x10]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fmul dword [0x53b700]
fstp dword [edi + 0xf]
mov dx, word [eax + 2]
mov dword [esp + 0x10], edx
xor edx, edx
fild dword [esp + 0x10]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fmul dword [0x53b700]
fstp dword [edi + 0x1f]
mov cx, word [esi + 4]
mov dword [esp + 0x10], ecx
xor ecx, ecx
fild dword [esp + 0x10]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fmul dword [0x53b700]
fstp dword [edi + 0x13]
mov dx, word [eax + 4]
mov dword [esp + 0x10], edx
xor edx, edx
fild dword [esp + 0x10]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fmul dword [0x53b700]
fstp dword [edi + 0x23]
mov cx, word [esi + 6]
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fmul dword [0x53b700]
fstp dword [edi + 0x17]
mov dx, word [eax + 6]
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fmul dword [0x53b700]
fstp dword [edi + 0x27]
test byte [ebp], 0x10
je 0x43181e
mov cx, word [esi + 4]
mov word [esi + 6], cx
mov dx, word [eax + 4]
mov word [eax + 6], dx
test byte [esp + 0x194], 4
jne 0x431c0d
mov ebp, dword [ebp + 0x10]
push str.No_Texture_data
test ebp, ebp
setne al
push eax
call fcn.004015b0
mov edi, dword [ebp + 0x1c]
push str.Texture_has_no_pVRAMRect_info
test edi, edi
setne cl
push ecx
call fcn.004015b0
add esp, 0x10
test edi, edi
je 0x4318c4
mov ebp, dword [edi + 4]
push str.pVRAMRect_info_has_no_pack_info
test ebp, ebp
setne dl
push edx
call fcn.004015b0
mov al, byte [edi]
add esp, 8
test al, 8
je 0x431888
mov edi, dword [edi + 4]
xor ebp, ebp
mov bp, word [edi + 4]
shl ebp, 1
xor ebx, ebx
mov bx, word [edi + 6]
jmp 0x4318cb
test al, 0x10
je 0x43189d
mov edi, dword [edi + 4]
xor ebp, ebp
xor ebx, ebx
mov bp, word [edi + 4]
mov bx, word [edi + 6]
jmp 0x4318cb
shr al, 2
and al, 1
push str.Unexpected_Texture_bit_depth
push eax
call fcn.004015b0
mov edi, dword [edi + 4]
xor ebp, ebp
add esp, 8
mov bp, word [edi + 4]
shl ebp, 2
xor ebx, ebx
mov bx, word [edi + 6]
jmp 0x4318cb
mov ebp, 0x10
mov ebx, ebp
test ebp, ebp
setne al
push str.Zero_Tex_Width
push eax
call fcn.004015b0
test ebx, ebx
setne cl
push str.Zero_Tex_Height
push ecx
call fcn.004015b0
mov edi, dword [esp + 0x2c]
add esp, 0x10
sub esi, edi
mov dword [esp + 0x2c], esi
xor esi, esi
mov edx, dword [esp + 0x2c]
xor eax, eax
push str.Bad_uVal
mov ax, word [edi + edx]
imul eax, ebp
sar eax, 9
mov dword [esp + esi + 0x3c], eax
setns al
push eax
call fcn.004015b0
mov eax, dword [esp + esi + 0x40]
push str.Bad_uVal
cmp eax, 0x4000
setl cl
push ecx
call fcn.004015b0
xor eax, eax
push str.Bad_vVal
mov ax, word [edi]
imul eax, ebx
sar eax, 9
setns dl
push edx
mov dword [esp + esi + 0x90], eax
call fcn.004015b0
mov edx, dword [esp + esi + 0x90]
push str.Bad_vVal
cmp edx, 0x4000
setl al
push eax
call fcn.004015b0
add esi, 4
add esp, 0x20
add edi, 2
cmp esi, 0x10
jl 0x4318fa
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x2c]
xor eax, eax
mov si, word [esp + eax + 0x38]
add eax, 4
mov word [ecx + edx], si
mov si, word [esp + eax + 0x74]
mov word [ecx], si
add ecx, 2
cmp eax, 0x10
jl 0x43198a
mov edi, dword [esp + 0x54]
mov ebp, dword [esp + 0x30]
mov ebx, dword [esp + 0x28]
jmp 0x431c0d
mov esi, dword [ebp + 0x10]
push str.No_Texture_data
test esi, esi
setne cl
push ecx
call fcn.004015b0
mov al, byte [ebp]
add esp, 8
test al, 0x20
je 0x4319da
mov edx, dword [esi + 0xc]
mov dword [ebp + 0x1c], edx
mov esi, dword [esi + 0x1c]
push str.Texture_has_no_pVRAMRect_info
test esi, esi
setne bl
push ebx
call fcn.004015b0
add esp, 8
test esi, esi
je 0x431aaa
mov edx, dword [esi + 4]
push str.pVRAMRect_info_has_no_pack_info
test edx, edx
setne al
push eax
call fcn.004015b0
mov al, byte [esi]
add esp, 8
test al, 8
je 0x431a3f
mov esi, dword [esi + 4]
xor ecx, ecx
mov cx, word [esi + 4]
shl ecx, 1
mov dword [esp + 0x10], ecx
xor edx, edx
fild dword [esp + 0x10]
mov dx, word [esi + 6]
mov dword [esp + 0x10], edx
fstp dword [esp + 0x14]
fild dword [esp + 0x10]
fstp dword [esp + 0x18]
jmp 0x431ab7
test al, 0x10
je 0x431a6c
mov esi, dword [esi + 4]
xor eax, eax
xor ecx, ecx
mov ax, word [esi + 4]
mov cx, word [esi + 6]
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
mov dword [esp + 0x10], ecx
fstp dword [esp + 0x14]
fild dword [esp + 0x10]
fstp dword [esp + 0x18]
jmp 0x431ab7
test al, 4
jne 0x431a7e
push str.TexInfo_bogus
push ebx
call fcn.004015b0
add esp, 8
mov esi, dword [esi + 4]
xor edx, edx
mov dx, word [esi + 4]
shl edx, 2
mov dword [esp + 0x10], edx
xor eax, eax
fild dword [esp + 0x10]
mov ax, word [esi + 6]
mov dword [esp + 0x10], eax
fstp dword [esp + 0x14]
fild dword [esp + 0x10]
fstp dword [esp + 0x18]
jmp 0x431ab7
mov eax, 0x3f800000
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], eax
fld dword [esp + 0x14]
fcomp qword [0x53b6f8]
fnstsw ax
test ah, 0x40
jne 0x431acf
mov eax, 1
jmp 0x431ad1
xor eax, eax
push str.Zero_Tex_Width
push eax
call fcn.004015b0
fld dword [esp + 0x20]
fcomp qword [0x53b6f8]
add esp, 8
fnstsw ax
test ah, 0x40
jne 0x431af7
mov eax, 1
jmp 0x431af9
xor eax, eax
push str.Zero_Tex_Height
push eax
call fcn.004015b0
xor ecx, ecx
xor edx, edx
mov cl, byte [ebp + 0x14]
xor eax, eax
mov dword [esp + 0x18], ecx
xor ecx, ecx
fild dword [esp + 0x18]
add esp, 8
mov ebx, dword [esp + 0x28]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fdiv dword [esp + 0x14]
fstp dword [edi + 0xb]
mov dl, byte [ebp + 0x15]
mov dword [esp + 0x10], edx
xor edx, edx
fild dword [esp + 0x10]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fdiv dword [esp + 0x18]
fstp dword [edi + 0x1b]
mov al, byte [ebp + 0x16]
mov dword [esp + 0x10], eax
xor eax, eax
fild dword [esp + 0x10]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fdiv dword [esp + 0x14]
fstp dword [edi + 0xf]
mov cl, byte [ebp + 0x17]
mov dword [esp + 0x10], ecx
xor ecx, ecx
fild dword [esp + 0x10]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fdiv dword [esp + 0x18]
fstp dword [edi + 0x1f]
mov dl, byte [ebp + 0x18]
mov dword [esp + 0x10], edx
xor edx, edx
fild dword [esp + 0x10]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fdiv dword [esp + 0x14]
fstp dword [edi + 0x13]
mov al, byte [ebp + 0x19]
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fdiv dword [esp + 0x18]
fstp dword [edi + 0x23]
mov cl, byte [ebp + 0x1a]
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fdiv dword [esp + 0x14]
fstp dword [edi + 0x17]
mov dl, byte [ebp + 0x1b]
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fdiv dword [esp + 0x18]
fstp dword [edi + 0x27]
jmp 0x431c0d
xor eax, eax
mov word [edi - 7], 1
mov dword [edi + 0x27], eax
mov dword [edi + 0x17], eax
mov dword [edi + 0x23], eax
mov dword [edi + 0x13], eax
mov dword [edi + 0x1f], eax
mov dword [edi + 0xf], eax
mov dword [edi + 0x1b], eax
mov dword [edi + 0xb], eax
test byte [ebp], 0x10
je 0x431c1f
mov eax, dword [edi + 0x13]
mov ecx, dword [edi + 0x23]
mov dword [edi + 0x17], eax
mov dword [edi + 0x27], ecx
mov edx, dword [ebp]
mov eax, dword [esp + 0x58]
shr edx, 0x12
sub ebx, 0x38
add edi, 0x38
lea ebp, [ebp + edx*4]
dec eax
mov dword [esp + 0x30], ebp
mov dword [esp + 0x28], ebx
mov dword [esp + 0x54], edi
mov dword [esp + 0x58], eax
jne 0x431628
mov esi, dword [esp + 0x68]
mov eax, dword [esp + 0x190]
lea ecx, [eax + 0x1c]
mov eax, dword [esp + 0x48]
test eax, eax
mov dword [esp + 0x38], ecx
jle 0x431d1a
mov edx, dword [esp + 0x6c]
mov ebx, eax
add edx, 0xc
mov edi, ebx
movsx eax, word [ecx + 6]
mov dword [edx], eax
mov ax, word [ecx + 6]
test al, 2
je 0x431cbd
movsx eax, word [ecx]
mov ebp, dword [esp + 0x50]
sar eax, 3
test ebp, ebp
mov ebp, dword [0x5f6760]
je 0x431c99
sub eax, ebp
jmp 0x431ca6
cmp eax, ebp
jl 0x431ca6
lea ebp, [eax + 1]
mov dword [0x5f6760], ebp
cmp eax, 0x100
jl 0x431cb2
mov eax, 0xff
mov ebp, dword [edx]
shl eax, 0x10
or ebp, eax
mov dword [edx], ebp
jmp 0x431d0b
test al, 0x10
movsx eax, word [ecx]
je 0x431ce2
shr eax, 3
mov dword [edx - 0xc], eax
movsx eax, word [ecx + 2]
shr eax, 3
mov dword [edx - 8], eax
movsx eax, word [ecx + 4]
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
jmp 0x431d08
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fstp dword [edx - 0xc]
movsx eax, word [ecx + 2]
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fstp dword [edx - 8]
movsx eax, word [ecx + 4]
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fstp dword [edx - 4]
add edx, 0x10
add ecx, 8
dec edi
jne 0x431c73
jmp 0x431d1e
mov ebx, dword [esp + 0x48]
cmp ebx, 0x100
push str.More_vertices_than_planned_for.
setl cl
push ecx
call fcn.004015b0
mov edx, dword [0x5498fc]
add esp, 8
test ebx, ebx
mov dword [esp + 0x58], edx
jle 0x431d65
mov ecx, ebx
xor eax, eax
mov ebp, ecx
lea edi, [esp + 0x88]
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, ebp
and ecx, 3
rep stosb byte es:[edi], al
mov ecx, ebx
or eax, 0xffffffff
mov edi, edx
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x30], ebx
test eax, eax
mov dword [edx + ebx*4], 0xffffffff
mov dword [esp + 0x28], ebx
mov dword [esp + 0x18], 0
jle 0x4320bc
mov edx, dword [esp + 0x34]
mov ebp, dword [esp + 0x58]
add edx, 8
mov dword [esp + 0x1c], 0
mov dword [esp + 0x50], 6
mov dword [esp + 0x14], edx
mov eax, edx
mov dl, byte [eax - 8]
and dl, 0x10
neg dl
sbb edx, edx
xor ecx, ecx
add edx, 4
mov dword [esp + 0x70], ecx
test edx, edx
mov dword [esp + 0x2c], edx
jle 0x431fe6
mov dword [esp + 0x54], eax
jmp 0x431dd2
mov eax, dword [esp + 0x14]
mov dl, byte [eax + ecx - 4]
mov byte [esp + 0x23], 0
mov byte [esp + 0x10], dl
mov esi, dword [esp + 0x10]
and esi, 0xff
mov bl, byte [esp + esi + 0x88]
lea eax, [esp + esi + 0x88]
test bl, bl
jne 0x431e15
mov esi, dword [esp + 0x50]
mov edi, dword [esp + 0x34]
movzx dx, dl
add esi, ecx
mov byte [eax], 1
mov word [edi + esi*2], dx
jmp 0x431fc6
mov eax, dword [ebp + esi*4]
cmp eax, 0xffffffff
je 0x431fa0
xor edi, edi
mov di, word [ebp + esi*4]
test eax, eax
jl 0x431e51
xor ecx, ecx
mov eax, esi
mov cx, word [ebp + esi*4 + 2]
push str.Bad_VertexInFaces.
mov esi, ecx
cmp esi, eax
mov dword [esp + 0x28], esi
setne dl
push edx
call fcn.004015b0
add esp, 8
jmp 0x431e59
mov esi, dword [esp + 0x30]
mov dword [esp + 0x24], esi
mov ecx, dword [esp + 0x34]
lea eax, [edi*8]
sub eax, edi
lea ebx, [ecx + eax*8]
mov al, byte [ecx + eax*8]
and al, 0x10
neg al
sbb eax, eax
xor edx, edx
add eax, 4
test eax, eax
mov dword [esp + 0x64], eax
jle 0x431f87
mov al, byte [esp + 0x10]
mov cl, byte [ebx + edx + 4]
cmp al, cl
jne 0x431f3d
mov esi, dword [esp + 0x14]
mov ebp, dword [esp + 0x60]
mov cx, word [esi - 8]
mov eax, ecx
and eax, 0x800
test ebp, ebp
jne 0x431edb
test eax, eax
je 0x431f32
mov eax, dword [esp + 0x54]
mov al, byte [eax]
cmp al, byte [ebx + edx + 8]
jne 0x431f45
mov esi, dword [esp + 0x54]
xor eax, eax
mov al, byte [esi]
mov esi, dword [ebx + 8]
cmp eax, esi
jne 0x431f45
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
cmp eax, esi
jne 0x431f45
test cl, 1
je 0x431f54
test byte [ebx], 1
je 0x431f45
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x70]
mov ebp, dword [esp + 0x34]
lea esi, [ecx + eax]
lea ecx, [edi*8]
sub ecx, edi
fld dword [ebp + esi*4 + 0x14]
shl ecx, 1
lea eax, [ecx + edx]
fcomp dword [ebp + eax*4 + 0x14]
fnstsw ax
test ah, 0x40
je 0x431f45
fld dword [ebp + esi*4 + 0x24]
add ecx, edx
fcomp dword [ebp + ecx*4 + 0x24]
fnstsw ax
test ah, 0x40
je 0x431f45
mov ecx, dword [esp + 0x14]
mov ax, word [ecx - 6]
cmp ax, word [ebx + 2]
je 0x431f54
jmp 0x431f45
mov eax, dword [esi]
mov esi, dword [ebx + 8]
cmp eax, esi
jne 0x431f45
jmp 0x431edb
mov al, byte [esp + 0x23]
test al, al
jne 0x431f7f
mov eax, dword [esp + 0x64]
inc edx
cmp edx, eax
jl 0x431e83
jmp 0x431f7f
mov eax, dword [esp + 0x34]
lea ecx, [edi*8]
mov esi, dword [esp + 0x70]
sub ecx, edi
mov byte [esp + 0x23], 1
lea edx, [edx + ecx*4]
mov cx, word [eax + edx*2 + 0xc]
mov edx, dword [esp + 0x50]
or ch, 0x80
add edx, esi
mov word [eax + edx*2], cx
mov esi, dword [esp + 0x24]
mov ebp, dword [esp + 0x58]
mov eax, dword [ebp + esi*4]
cmp eax, 0xffffffff
jne 0x431e22
mov al, byte [esp + 0x23]
mov ecx, dword [esp + 0x70]
test al, al
jne 0x431fc6
mov edx, dword [esp + 0x50]
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x28]
add edx, ecx
mov word [esi + edx*2], ax
mov edx, dword [0x5f82e4]
cmp edx, eax
jge 0x431fc1
mov dword [0x5f82e4], eax
inc eax
mov dword [esp + 0x28], eax
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x2c]
inc ecx
inc edx
cmp ecx, eax
mov dword [esp + 0x70], ecx
mov dword [esp + 0x54], edx
jl 0x431dce
mov edx, eax
mov eax, dword [esp + 0x14]
cmp edx, 3
jne 0x431ff3
mov cx, word [eax + 8]
mov word [eax + 0xa], cx
xor ebx, ebx
test edx, edx
jle 0x432082
mov edx, dword [esp + 0x30]
lea edi, [ebp + edx*4]
mov ecx, dword [esp + 0x14]
xor eax, eax
mov al, byte [ecx + ebx - 4]
mov esi, eax
mov eax, dword [ebp + esi*4]
cmp eax, 0xffffffff
jne 0x432026
mov dx, word [esp + 0x18]
mov word [ebp + esi*4], dx
jmp 0x432079
test eax, eax
jl 0x432050
xor ecx, ecx
mov eax, esi
mov cx, word [ebp + esi*4 + 2]
push str.Bad_VertexInFaces
mov esi, ecx
cmp esi, eax
setne dl
push edx
call fcn.004015b0
mov eax, dword [ebp + esi*4]
add esp, 8
test eax, eax
jge 0x43202a
mov eax, dword [esp + 0x18]
xor ecx, ecx
mov cx, word [ebp + esi*4]
cmp ecx, eax
je 0x432079
mov ecx, dword [esp + 0x30]
mov word [ebp + esi*4 + 2], cx
mov word [edi], ax
inc ecx
add edi, 4
mov dword [esp + 0x30], ecx
mov dword [edi], 0xffffffff
mov eax, dword [esp + 0x2c]
inc ebx
cmp ebx, eax
jl 0x432005
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov edi, dword [esp + 0x50]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x4c]
inc ecx
add ebx, 0xe
add edi, 0x1c
add eax, 0x38
cmp ecx, edx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x50], edi
mov dword [esp + 0x14], eax
jl 0x431da9
mov esi, dword [esp + 0x68]
mov edx, dword [esp + 0x18c]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x190]
mov dword [esp + 0x18], 0
mov dword [edx + 0x10], eax
xor eax, eax
mov ax, word [ecx + 2]
cmp word [ecx + 4], 0
lea eax, [ecx + eax*8 + 0x1c]
jbe 0x432399
mov ecx, dword [esp + 0x38]
lea ebp, [esi + 8]
mov esi, dword [esp + 0x6c]
lea edi, [eax + 2]
add esi, 0xc
lea ebx, [ecx + 6]
mov dword [esp + 0x2c], esi
mov esi, eax
sub esi, ecx
mov dword [esp + 0x30], esi
mov ax, word [esi + ebx]
test al, 2
je 0x4321fb
mov cl, byte [ebx]
push str.Vertflags___NormalFlags_case_1
shr ecx, 1
and cl, 1
push ecx
call fcn.004015b0
mov edx, dword [esp + 0x34]
push str.Bad_index_for_stitch_normals.
mov esi, dword [edx]
shr esi, 0x10
cmp esi, 0x100
setl al
push eax
call fcn.004015b0
mov cx, word [esi*8 + 0x5f6a98]
lea eax, [esi*8 + 0x5f6a98]
mov word [edi - 2], cx
mov dx, word [esi*8 + 0x5f6a9a]
lea ecx, [esi*8 + 0x5f6a9a]
lea esi, [esi*8 + 0x5f6a9c]
mov word [edi], dx
add esp, 0x10
mov dx, word [esi]
mov word [edi + 2], dx
movsx edx, word [esi]
mov dword [esp + 0x38], edx
mov esi, dword [esp + 0x30]
fild dword [esp + 0x38]
movsx ecx, word [ecx]
fstp dword [esp + 0x38]
fld dword [esp + 0x38]
fmul dword [0x53b6f4]
mov dword [esp + 0x38], ecx
movsx edx, word [eax]
fstp dword [esp + 0x60]
fild dword [esp + 0x38]
fstp dword [esp + 0x38]
fld dword [esp + 0x38]
fmul dword [0x53b6f4]
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x60]
mov dword [ebp], edx
mov edx, dword [esp + 0x18c]
fstp dword [esp + 0x64]
fild dword [esp + 0x38]
mov ecx, dword [esp + 0x64]
mov dword [ebp - 4], ecx
fstp dword [esp + 0x38]
fld dword [esp + 0x38]
fmul dword [0x53b6f4]
fstp dword [esp + 0x38]
mov eax, dword [esp + 0x38]
mov dword [ebp - 8], eax
jmp 0x4322bd
test al, 1
je 0x43224f
mov al, byte [ebx]
push str.Vertflags___NormalFlags_case_2
and al, 1
push eax
call fcn.004015b0
mov eax, dword [esp + 0x7c]
mov cx, word [edi - 2]
push 0x549928
mov word [eax], cx
mov dx, word [edi]
mov word [eax + 2], dx
mov cx, word [edi + 2]
mov word [eax + 4], cx
add eax, 8
cmp eax, 0x5f7298
mov dword [esp + 0x80], eax
setne dl
push edx
call fcn.004015b0
mov edx, dword [esp + 0x19c]
add esp, 0x10
movsx eax, word [edi + 2]
mov dword [esp + 0x38], eax
fild dword [esp + 0x38]
movsx ecx, word [edi]
fstp dword [esp + 0x38]
fld dword [esp + 0x38]
fmul dword [0x53b6f4]
mov dword [esp + 0x38], ecx
movsx eax, word [edi - 2]
fstp dword [esp + 0x60]
fild dword [esp + 0x38]
fstp dword [esp + 0x38]
fld dword [esp + 0x38]
fmul dword [0x53b6f4]
mov dword [esp + 0x38], eax
fstp dword [esp + 0x64]
fild dword [esp + 0x38]
mov eax, dword [esp + 0x64]
mov dword [ebp - 4], eax
fstp dword [esp + 0x38]
fld dword [esp + 0x38]
fmul dword [0x53b6f4]
fstp dword [esp + 0x38]
mov ecx, dword [esp + 0x38]
mov dword [ebp - 8], ecx
mov ecx, dword [esp + 0x60]
mov dword [ebp], ecx
mov eax, dword [ebp]
mov ecx, dword [ebp - 4]
mov dword [esp + 0x28], eax
mov eax, dword [ebp - 8]
mov dword [esp + 0x68], eax
mov dword [esp + 0x10], ecx
fld dword [esp + 0x68]
fmul dword [esp + 0x68]
fld dword [esp + 0x10]
fmul dword [esp + 0x10]
faddp st(1)
fld dword [esp + 0x28]
fmul dword [esp + 0x28]
faddp st(1)
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fcomp dword [0x53b6ec]
fnstsw ax
test ah, 1
je 0x43231a
mov dword [ebp - 8], 0
mov dword [ebp - 4], 0x3f800000
mov dword [ebp], 0
jmp 0x432363
fld dword [esp + 0x1c]
sub esp, 8
fstp qword [esp]
call fcn.00529a44
fstp dword [esp + 0x40]
fld dword [esp + 0x40]
fdivr dword [0x53b27c]
mov edx, dword [esp + 0x194]
add esp, 8
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fmul dword [ebp - 8]
fstp dword [ebp - 8]
fld dword [esp + 0x1c]
fmul dword [ebp - 4]
fstp dword [ebp - 4]
fld dword [esp + 0x1c]
fmul dword [ebp]
fstp dword [ebp]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x18]
add eax, 0x10
inc ecx
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x190]
mov dword [esp + 0x18], ecx
xor ecx, ecx
mov cx, word [eax + 4]
mov eax, dword [esp + 0x18]
add ebx, 8
add edi, 8
add ebp, 0xc
cmp eax, ecx
jl 0x43210e
mov eax, dword [esp + 0x5c]
xor edi, edi
cmp eax, edi
mov dword [edx + 0xc], edi
jne 0x4323ad
mov dword [edx + 0xc], 0x400
mov esi, dword [esp + 0x48]
xor eax, eax
cmp esi, edi
jle 0x4323d5
mov ecx, dword [esp + 0x6c]
add ecx, 0xc
test byte [ecx], 3
jne 0x4323cd
inc eax
add ecx, 0x10
cmp eax, esi
jl 0x4323be
jmp 0x4323d5
mov eax, dword [edx + 0xc]
or al, 1
mov dword [edx + 0xc], eax
xor eax, eax
cmp esi, edi
jle 0x4323f9
mov ecx, dword [esp + 0x6c]
add ecx, 0xc
test byte [ecx], 0x10
jne 0x4323f1
inc eax
add ecx, 0x10
cmp eax, esi
jl 0x4323e2
jmp 0x4323f9
mov eax, dword [edx + 0xc]
or al, 4
mov dword [edx + 0xc], eax
mov ebp, dword [esp + 0x4c]
mov esi, 0xffff
cmp ebp, edi
jle 0x432436
mov eax, dword [esp + 0x34]
add eax, 2
test byte [eax - 2], 1
je 0x432424
mov cx, word [eax]
cmp cx, si
je 0x432424
cmp si, 0xffff
jne 0x43242e
mov esi, ecx
inc edi
add eax, 0x38
cmp edi, ebp
jl 0x43240d
jmp 0x432436
mov eax, dword [edx + 0xc]
or al, 2
mov dword [edx + 0xc], eax
xor bl, bl
mov dword [esp + 0x24], 0
test ebp, ebp
jle 0x4324ad
mov ebp, dword [esp + 0x34]
mov eax, dword [esp + 0x198]
mov edi, 0x80
test bl, bl
jne 0x4324ad
test byte [ebp + 1], 8
je 0x432499
lea ecx, [ebp + 8]
mov esi, 3
cmp dword [eax], 0
jl 0x43248e
xor edx, edx
mov dl, byte [ecx]
cmp edx, dword [eax]
jne 0x432484
mov edx, dword [esp + 0x18c]
mov ebx, dword [edx + 0xc]
or ebx, edi
mov dword [edx + 0xc], ebx
mov bl, 1
mov edx, dword [eax + 4]
add eax, 4
test edx, edx
jge 0x43246b
mov eax, dword [esp + 0x198]
inc ecx
dec esi
jne 0x432466
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x4c]
inc ecx
add ebp, 0x38
cmp ecx, edx
mov dword [esp + 0x24], ecx
jl 0x432454
mov edi, dword [esp + 0x4c]
test edi, edi
jle 0x4324e4
mov eax, dword [esp + 0x34]
lea esi, [eax + 2]
xor ecx, ecx
mov cx, word [esi]
push ecx
call fcn.0050f210
add esp, 4
test al, 0x10
je 0x4324de
mov eax, dword [esp + 0x18c]
mov ecx, dword [eax + 0xc]
or ch, 8
mov dword [eax + 0xc], ecx
add esi, 0x38
dec edi
jne 0x4324bc
mov ecx, dword [esp + 0x18c]
xor eax, eax
mov dword [ecx + 0x20], eax
mov dword [ecx + 0x1c], eax
cmp dword [0x5f6718], eax
jle 0x432534
mov esi, dword [esp + 0x1a0]
mov edx, dword [0x5f6a60]
cmp dword [edx + eax*8], esi
jne 0x432529
movsx edx, word [edx + eax*8 + 6]
mov dword [ecx + 0x1c], edx
mov edx, dword [0x5f6a60]
movsx edx, word [edx + eax*8 + 4]
mov dword [ecx + 0x20], edx
mov edx, dword [0x5f6a60]
mov edi, dword [0x5f6718]
inc eax
cmp eax, edi
jl 0x432508
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x178
ret