Function at 0x409e10
Capabilities:
Create directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x29c
mov eax, dword [0x480080]
xor eax, ebp
mov dword [ebp - 4], eax
mov ecx, 0x48a940
lea edx, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x409e30
sub ecx, edx
push 1
push ecx
push 0x48a940
call fcn.0040bab0
push 0x48a940
call fcn.004448d1
add esp, 0x10
cmp byte [0x4d1ed1], 0
je 0x409ef8
push 0x48b140
push str.MATRIX
push 0x48a940
push str._s_s_s
push 0x48b940
call fcn.00401770
push 0x4709e8
push 0x48b940
call fcn.00417c68
add esp, 0x1c
mov dword [0x4c3718], eax
test eax, eax
je 0x409eac
push eax
call fcn.0041797a
push 0x48b940
call fcn.0044485c
add esp, 8
push 0x48b140
push str.LASTLOAD
push 0x48a940
push str._s_s_s
push 0x48b940
call fcn.00401770
push 0x4709e8
push 0x48b940
call fcn.00417c68
add esp, 0x1c
mov dword [0x4c3718], eax
test eax, eax
je 0x409ef8
push eax
call fcn.0041797a
push 0x48b940
call fcn.0044485c
add esp, 8
push edi
mov edi, 0x48a940
dec edi
nop
mov al, byte [edi + 1]
lea edi, [edi + 1]
test al, al
jne 0x409f00
cmp byte [0x480c50], 0
mov ax, word [0x4702a0]
mov word [edi], ax
jne 0x40acec
push 0x47035c
push str.SIGNUMV
call fcn.00417c68
add esp, 8
mov dword [0x4c3718], eax
test eax, eax
je 0x409f44
push eax
call fcn.0041797a
add esp, 4
mov dx, word [0x4a1f54]
or eax, 0xffffffff
mov word [0x4a1f7e], ax
mov edi, 1
mov eax, 0x29
mov dword [ebp - 0x278], edi
mov word [0x4a1f80], ax
xor eax, eax
mov word [0x4a1f66], ax
cmp di, dx
jg 0x409f90
mov ecx, 0x4c73f4
movzx edx, dx
nop
add ax, word [ecx]
lea ecx, [ecx + 0x10]
mov word [0x4a1f66], ax
sub edx, edi
jne 0x409f80
push 0x48b140
push str.PARAM00
push 0x48a940
push str._s_s_s
push 0x48b940
call fcn.00401770
push 0x470280
push 0x48b940
call fcn.00417c68
push eax
push 1
push 0x150
push 0x4a1ee0
mov dword [0x4c3718], eax
call fcn.004180d4
mov eax, dword [0x4c3718]
add esp, 0x2c
test eax, eax
je 0x409fe9
push eax
call fcn.0041797a
add esp, 4
push 0x48b140
push str.PL00
push 0x48a940
push str._s_s_s
push 0x48b940
call fcn.00401770
push 0x470280
push 0x48b940
call fcn.00417c68
add esp, 0x1c
mov dword [0x4c3718], eax
test eax, eax
je 0x40a042
push eax
push 1
push 0x114
push 0x4a1dc0
call fcn.004180d4
push dword [0x4c3718]
call fcn.0041797a
add esp, 0x14
push esi
push 0x48b140
push str.EDGE
push 0x48a940
push str._s_s_s
push 0x48b940
call fcn.00401770
push 0x470280
push 0x48b940
call fcn.00417c68
add esp, 0x1c
mov dword [0x4c3718], eax
mov esi, edi
cmp di, word [0x4a1f54]
jg 0x40a0ab
push eax
movsx eax, si
push 1
shl eax, 4
add eax, 0x4c73e0
push 0x10
push eax
call fcn.004180d4
mov eax, dword [0x4c3718]
inc esi
add esp, 0x10
cmp si, word [0x4a1f54]
jle 0x40a083
test eax, eax
je 0x40a0b8
push eax
call fcn.0041797a
add esp, 4
push 0x48b140
push str.NODES
push 0x48a940
push str._s_s_s
push 0x48b940
call fcn.00401770
push 0x470280
push 0x48b940
call fcn.00417c68
add esp, 0x1c
mov dword [0x4c3718], eax
mov esi, edi
cmp di, word [0x4a1f52]
jg 0x40a128
push eax
movsx ecx, si
push 1
push 0x38
lea eax, [ecx*8]
sub eax, ecx
lea eax, [eax*8 + 0x4a2040]
push eax
call fcn.004180d4
mov eax, dword [0x4c3718]
inc esi
add esp, 0x10
cmp si, word [0x4a1f52]
jle 0x40a0f8
test eax, eax
je 0x40a135
push eax
call fcn.0041797a
add esp, 4
cmp word [0x4a1f78], 0
jle 0x40a1ba
push 0x48b140
push str.FIXPT
push 0x48a940
push str._s_s_s
push 0x48b940
call fcn.00401770
push 0x470280
push 0x48b940
call fcn.00417c68
add esp, 0x1c
mov dword [0x4c3718], eax
mov esi, edi
cmp di, word [0x4a1f78]
jg 0x40a1ad
push eax
movsx eax, si
push 1
push 0x18
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x4c3520]
push eax
call fcn.004180d4
mov eax, dword [0x4c3718]
inc esi
add esp, 0x10
cmp si, word [0x4a1f78]
jle 0x40a183
test eax, eax
je 0x40a1ba
push eax
call fcn.0041797a
add esp, 4
push ebx
push 0x48b140
push str.GMACRO00
push 0x48a940
push str._s_s_s
push 0x48b940
call fcn.00401770
push 0x470280
push 0x48b940
call fcn.00417c68
add esp, 0x1c
mov dword [0x4c3718], eax
test eax, eax
je 0x40a2bf
mov ax, word [0x4a1f54]
mov esi, edi
cmp di, ax
jg 0x40a22e
push dword [0x4c3718]
movsx eax, si
push 1
push 2
lea eax, [eax*2 + 0x4c3060]
push eax
call fcn.004180d4
mov ax, word [0x4a1f54]
inc esi
add esp, 0x10
cmp si, ax
jle 0x40a205
mov ecx, edi
mov dword [ebp - 0x268], ecx
cmp di, ax
jg 0x40a2b1
mov edx, ecx
movsx ebx, cx
mov esi, 1
mov edi, ebx
shl edi, 4
add edi, 0x4c73e4
cmp dx, word [edi]
jg 0x40a2a0
nop dword [eax]
push dword [0x4c3718]
movsx eax, si
push 1
push 0x1c
lea ecx, [eax*8]
sub ecx, eax
mov eax, dword [ebx*4 + 0x4a1d00]
lea eax, [eax + ecx*4]
push eax
call fcn.004180d4
inc esi
add esp, 0x10
cmp si, word [edi]
jle 0x40a260
mov ax, word [0x4a1f54]
mov edx, 1
mov ecx, dword [ebp - 0x268]
inc ecx
mov dword [ebp - 0x268], ecx
cmp cx, ax
jle 0x40a241
mov edi, 1
push dword [0x4c3718]
call fcn.0041797a
add esp, 4
push 0x48b140
push str.ELEM00
push 0x48a940
push str._s_s_s
push 0x48b940
call fcn.00401770
push 0x470280
push 0x48b940
call fcn.00417c68
add esp, 0x1c
mov dword [0x4c3718], eax
mov esi, 1
cmp di, word [0x4a1f50]
jg 0x40a32a
push eax
movsx eax, si
imul eax, eax, 0x2c
push 1
push 0x2c
add eax, 0x4c76a0
push eax
call fcn.004180d4
mov eax, dword [0x4c3718]
inc esi
add esp, 0x10
cmp si, word [0x4a1f50]
jle 0x40a302
test eax, eax
je 0x40a337
push eax
call fcn.0041797a
add esp, 4
push 0x48b140
push str.STRBIB
push 0x48a940
push str._s_s_s
push 0x48b940
call fcn.00401770
push 0x470280
push 0x48b940
call fcn.00417c68
push eax
push 1
push 0x2a8
push 0x4a1a40
mov dword [0x4c3718], eax
call fcn.004180d4
mov eax, dword [0x4c3718]
add esp, 0x2c
test eax, eax
je 0x40a390
push eax
call fcn.0041797a
add esp, 4
push 0x48b140
push str.MACRO00
push 0x48a940
push str._s_s_s
push 0x48b940
call fcn.00401770
push 0x470280
push 0x48b940
call fcn.00417c68
mov dx, word [0x4a1f54]
add esp, 0x1c
mov dword [0x4c3718], eax
mov ecx, 1
mov dword [ebp - 0x26c], ecx
cmp di, dx
jg 0x40a447
nop dword [eax]
movsx ebx, cx
mov esi, 1
mov edi, ebx
mov ecx, esi
shl edi, 4
add edi, 0x4c73e4
cmp cx, word [edi]
mov ecx, dword [ebp - 0x26c]
jg 0x40a436
push eax
movsx eax, si
push 1
push 0x28
lea ecx, [eax + eax*4]
mov eax, dword [ebx*4 + 0x4c2da0]
lea eax, [eax + ecx*8]
push eax
call fcn.004180d4
mov eax, dword [0x4c3718]
inc esi
add esp, 0x10
cmp si, word [edi]
jle 0x40a400
mov dx, word [0x4a1f54]
mov ecx, dword [ebp - 0x26c]
inc ecx
mov dword [ebp - 0x26c], ecx
cmp cx, dx
jle 0x40a3e0
mov edi, 1
test eax, eax
je 0x40a454
push eax
call fcn.0041797a
add esp, 4
cmp word [0x4a1f7a], 0
jle 0x40a4e1
push 0x48b140
push str.WAND
push 0x48a940
push str._s_s_s
push 0x48b940
call fcn.00401770
push 0x470280
push 0x48b940
call fcn.00417c68
add esp, 0x1c
mov dword [0x4c3718], eax
test eax, eax
je 0x40a4d8
mov esi, 1
cmp di, word [0x4a1f7a]
jg 0x40a4d8
nop dword [eax]
push eax
movsx eax, si
imul eax, eax, 0x2c
push 1
push 0x2c
add eax, 0x48bd40
push eax
call fcn.004180d4
mov eax, dword [0x4c3718]
inc esi
add esp, 0x10
cmp si, word [0x4a1f7a]
jle 0x40a4b0
push eax
call fcn.0041797a
add esp, 4
cmp word [0x4a1f56], 0
jle 0x40a56d
push 0x48b140
push str.BALKEN
push 0x48a940
push str._s_s_s
push 0x48b940
call fcn.00401770
push 0x470280
push 0x48b940
call fcn.00417c68
add esp, 0x1c
mov dword [0x4c3718], eax
test eax, eax
je 0x40a564
mov esi, 1
cmp di, word [0x4a1f56]
jg 0x40a564
push eax
movsx ecx, si
mov eax, ecx
shl eax, 4
sub eax, ecx
push 1
push 0x3c
lea eax, [eax*4 + 0x4d1ee0]
push eax
call fcn.004180d4
mov eax, dword [0x4c3718]
inc esi
add esp, 0x10
cmp si, word [0x4a1f56]
jle 0x40a536
push eax
call fcn.0041797a
add esp, 4
push 0x48b140
push str.STIFF
push 0x48a940
push str._s_s_s
push 0x48b940
call fcn.00401770
push 0x470280
push 0x48b940
call fcn.00417c68
add esp, 0x1c
mov dword [0x4c3718], eax
test eax, eax
je 0x40a636
mov dx, word [0x4a1f54]
mov eax, 1
mov dword [ebp - 0x268], eax
cmp di, dx
jg 0x40a628
mov ebx, eax
movsx ecx, ax
mov esi, 1
mov edi, ecx
shl edi, 4
add edi, 0x4c73e4
cmp bx, word [edi]
jg 0x40a617
imul ebx, ecx, 0x4c
nop
push dword [0x4c3718]
movsx eax, si
add eax, ebx
push 1
push 8
lea eax, [eax*4 + 0x4c40c0]
push eax
call fcn.004180d4
inc esi
add esp, 0x10
cmp si, word [edi]
jle 0x40a5e0
mov dx, word [0x4a1f54]
mov ebx, 1
mov eax, dword [ebp - 0x268]
inc eax
mov dword [ebp - 0x268], eax
cmp ax, dx
jle 0x40a5c3
mov edi, 1
push dword [0x4c3718]
call fcn.0041797a
add esp, 4
push 0x48b140
push str.GEOMETRY
push 0x48a940
push str._s_s_s
push 0x48b940
call fcn.00401770
push 0x470280
push 0x48b940
call fcn.00417c68
push 0x48b140
push 0x4703e0
push eax
mov dword [0x4c3718], eax
call fcn.00401710
mov eax, dword [0x4c3718]
add esp, 0x28
test eax, eax
je 0x40a68d
push eax
call fcn.0041797a
add esp, 4
push 0x470bcc
push 0x48a940
push str._s_s
push 0x48b940
call fcn.00401770
push 0x470280
push 0x48b940
call fcn.00417c68
push eax
push 1
push 0xa2
push 0x4cec40
mov dword [0x4c3718], eax
call fcn.004180d4
mov eax, dword [0x4c3718]
add esp, 0x28
test eax, eax
je 0x40a6e1
push eax
call fcn.0041797a
add esp, 4
movsd xmm0, qword [0x4a1f28]
push 0x48b140
cvtpd2ps xmm0, xmm0
push str.EDGE3D
push 0x48a940
push str._s_s_s
push 0x48b940
movss dword [ebp - 0x288], xmm0
call fcn.00401770
push 0x470280
push 0x48b940
call fcn.00417c68
add esp, 0x1c
mov dword [0x4c3718], eax
test eax, eax
je 0x40a915
movsx ecx, word [0x4a1f54]
push eax
push 1
lea eax, [ebp - 0x27c]
mov dword [ebp - 0x27c], ecx
push 4
push eax
call fcn.004180d4
add esp, 0x10
mov eax, 1
mov dword [ebp - 0x26c], eax
cmp di, word [0x4a1f54]
jg 0x40a907
nop dword [eax + eax]
push dword [0x4c3718]
movsx esi, ax
mov ebx, esi
mov dword [ebp - 0x270], esi
shl ebx, 4
add ebx, 0x4c73e4
push 1
push 4
movsx eax, word [ebx]
mov dword [ebp - 0x27c], eax
lea eax, [ebp - 0x27c]
push eax
call fcn.004180d4
add esp, 0x10
mov eax, 1
mov dword [ebp - 0x268], eax
cmp di, word [ebx]
jg 0x40a8ed
nop word [eax + eax]
cwde
mov esi, dword [esi*4 + 0x4c2da0]
lea edi, [eax + eax*4]
lea eax, [ebp - 0x28c]
shl edi, 3
push eax
lea eax, [ebp - 0x274]
add esi, edi
push eax
lea eax, [ebp - 0x284]
push eax
movups xmm0, xmmword [esi]
lea eax, [ebp - 0x280]
push eax
lea eax, [ebp - 0x290]
push eax
lea eax, [ebp - 0x294]
push eax
lea eax, [ebp - 0x298]
push eax
lea eax, [ebp - 0x29c]
push eax
sub esp, 0x10
movups xmmword [esp], xmm0
call fcn.0040ad00
push dword [0x4c3718]
push 1
push 4
push esi
call fcn.004180d4
mov esi, dword [ebp - 0x270]
add esp, 0x40
push dword [0x4c3718]
mov eax, dword [esi*4 + 0x4c2da0]
push 1
add eax, 4
add eax, edi
push 4
push eax
call fcn.004180d4
push dword [0x4c3718]
mov eax, dword [esi*4 + 0x4c2da0]
push 1
add eax, 8
add eax, edi
push 4
push eax
call fcn.004180d4
push dword [0x4c3718]
mov eax, dword [esi*4 + 0x4c2da0]
push 1
add eax, 0xc
add eax, edi
push 4
push eax
call fcn.004180d4
push dword [0x4c3718]
lea eax, [ebp - 0x288]
push 1
push 4
push eax
call fcn.004180d4
add esp, 0x40
lea eax, [ebp - 0x28c]
push dword [0x4c3718]
push 1
push 4
push eax
call fcn.004180d4
push dword [0x4c3718]
mov eax, dword [esi*4 + 0x4c2da0]
push 1
add eax, 0x18
add eax, edi
push 4
push eax
call fcn.004180d4
mov eax, dword [ebp - 0x268]
add esp, 0x20
inc eax
mov dword [ebp - 0x268], eax
cmp ax, word [ebx]
jle 0x40a7c0
mov edi, 1
mov eax, dword [ebp - 0x26c]
inc eax
mov dword [ebp - 0x26c], eax
cmp ax, word [0x4a1f54]
jle 0x40a770
push dword [0x4c3718]
call fcn.0041797a
add esp, 4
mov cx, word [0x4a1f54]
mov dword [ebp - 0x268], 0
mov si, word [ebp - 0x268]
cmp di, cx
jg 0x40a94b
mov eax, 0x4c73f4
movzx ecx, cx
nop word [eax + eax]
add si, word [eax]
lea eax, [eax + 0x10]
sub ecx, 1
jne 0x40a940
push str.TRIANG1.TXT
push 0x48a940
push str._s_s
push 0x48b940
mov word [ebp - 0x26a], si
call fcn.00401770
push 0x470be4
push 0x48b940
call fcn.00417c68
mov ebx, eax
add esp, 0x18
test ebx, ebx
je 0x40acea
movsx ecx, si
push ecx
push str._2i_n
push ebx
call fcn.00401710
add esp, 0xc
xor esi, esi
mov ecx, 1
mov dword [ebp - 0x268], ecx
cmp di, word [0x4a1f54]
jg 0x40ab53
movsx edx, cx
mov eax, edx
mov dword [ebp - 0x280], edx
shl eax, 4
movzx eax, word [eax + 0x4c73e4]
cmp cx, 1
jne 0x40aa3a
mov edi, 1
cmp word [ebp - 0x278], ax
jg 0x40ab3f
movsx eax, di
sub esp, 0x10
inc esi
lea ecx, [eax + eax*4]
mov eax, dword [edx*4 + 0x4c2da0]
movsx edx, si
movss xmm0, dword [eax + ecx*8 + 4]
cvtps2pd xmm0, xmm0
movsd qword [esp + 8], xmm0
movss xmm0, dword [eax + ecx*8]
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push edx
push str._2i__.2f__.2f_1_n
push ebx
call fcn.00401710
mov edx, dword [ebp - 0x280]
inc edi
add esp, 0x1c
cmp di, word [0x4c73f4]
jle 0x40a9e0
mov ecx, dword [ebp - 0x268]
jmp 0x40ab3f
mov dword [ebp - 0x270], eax
xorps xmm1, xmm1
movss dword [ebp - 0x284], xmm1
xorps xmm2, xmm2
movss dword [ebp - 0x274], xmm2
test ax, ax
jle 0x40ab0b
mov ecx, dword [edx*4 + 0x4c2da0]
cwde
lea edi, [eax + eax*4]
shl edi, 3
nop dword [eax]
movss xmm0, dword [ecx + edi + 4]
sub esp, 0x10
cvtps2pd xmm0, xmm0
inc esi
movsx eax, si
movsd qword [esp + 8], xmm0
movss xmm0, dword [ecx + edi]
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push eax
push str._2i__.2f__.2f_1_n
push ebx
call fcn.00401710
mov eax, dword [ebp - 0x280]
add esp, 0x1c
movss xmm1, dword [ebp - 0x284]
movss xmm2, dword [ebp - 0x274]
mov ecx, dword [eax*4 + 0x4c2da0]
addss xmm1, dword [ecx + edi]
addss xmm2, dword [ecx + edi + 4]
sub edi, 0x28
movss dword [ebp + eax*4 - 0x268], xmm1
movss dword [ebp + eax*4 - 0x138], xmm2
mov eax, dword [ebp - 0x270]
dec eax
movss dword [ebp - 0x284], xmm1
movss dword [ebp - 0x274], xmm2
mov dword [ebp - 0x270], eax
test ax, ax
jg 0x40aa70
mov ecx, dword [ebp - 0x268]
movsx eax, cx
shl eax, 4
movsx eax, word [eax + 0x4c73e4]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movsx eax, cx
divss xmm1, xmm0
divss xmm2, xmm0
movss dword [ebp + eax*4 - 0x268], xmm1
movsx eax, cx
movss dword [ebp + eax*4 - 0x138], xmm2
inc ecx
mov dword [ebp - 0x268], ecx
cmp cx, word [0x4a1f54]
jle 0x40a9b3
mov ax, word [ebp - 0x26a]
cwde
push eax
push str._2i_n
push ebx
call fcn.00401710
mov edi, 1
add esp, 0xc
mov eax, edi
mov dword [ebp - 0x270], edi
xor esi, esi
cmp ax, word [0x4a1f54]
jg 0x40ac55
movsx eax, di
lea ecx, [esi + 1]
shl eax, 4
cmp di, 1
mov edi, 1
mov dword [ebp - 0x278], eax
movzx edx, cx
mov ecx, edi
movzx eax, word [eax + 0x4c73e4]
jne 0x40abf5
mov dword [ebp - 0x278], edx
cmp cx, ax
jg 0x40ac3b
mov ecx, eax
nop dword [eax]
inc esi
cmp di, cx
movsx eax, si
lea ecx, [eax + 1]
jl 0x40abcf
movsx ecx, dx
push ecx
push eax
push eax
push str._2i__i__i_n
push ebx
call fcn.00401710
movzx ecx, word [0x4c73f4]
inc edi
mov edx, dword [ebp - 0x278]
add esp, 0x14
cmp di, cx
jle 0x40abc0
jmp 0x40ac3b
mov dword [ebp - 0x274], edx
cmp cx, ax
jg 0x40ac3b
mov ecx, eax
inc esi
cmp di, cx
movsx eax, si
lea ecx, [eax + 1]
jl 0x40ac11
movsx ecx, dx
push ecx
push eax
push eax
push str._2i__i__i_n
push ebx
call fcn.00401710
mov eax, dword [ebp - 0x278]
inc edi
mov edx, dword [ebp - 0x274]
add esp, 0x14
movzx ecx, word [eax + 0x4c73e4]
cmp di, cx
jle 0x40ac02
mov edi, dword [ebp - 0x270]
inc edi
mov dword [ebp - 0x270], edi
cmp di, word [0x4a1f54]
jle 0x40ab86
mov ax, word [0x4a1f64]
test ax, ax
jne 0x40ac72
push 0
push str._2i_n
push ebx
call fcn.00401710
add esp, 0xc
jmp 0x40ace1
cwde
push eax
push str._2i_n
push ebx
call fcn.00401710
mov esi, 1
add esp, 0xc
mov eax, esi
cmp ax, word [0x4a1f64]
jg 0x40ace1
nop dword [eax]
nop word [eax + eax]
movsx eax, si
sub esp, 0x10
movss xmm0, dword [ebp + eax*4 - 0x134]
cvtps2pd xmm0, xmm0
movsd qword [esp + 8], xmm0
movss xmm0, dword [ebp + eax*4 - 0x264]
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push str.1__.2f__.2f_n
push ebx
call fcn.00401710
inc esi
add esp, 0x18
cmp si, word [0x4a1f64]
jle 0x40aca0
push ebx
call fcn.0041797a
add esp, 4
pop ebx
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop edi
call fcn.0040bb90
mov esp, ebp
pop ebp
ret