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

Disassembly:
sub esp, 0xc38
mov ecx, dword [esp + 0xc3c]
push ebx
push ebp
push esi
mov esi, dword [esp + 0xc4c]
lea eax, [ecx + ecx*2]
shl eax, 3
sub eax, ecx
push edi
xor edi, edi
push esi
lea eax, [eax + eax*2]
mov dword [esp + 0x30], edi
lea ebp, [eax*4 + 0xecc6b8]
call fcn.004ca5d0
add esp, 4
cmp eax, 0x4f505350
je 0x47ac7d
push str.Bad_ID_in_model_file_
call fcn.004cd1d0
add esp, 4
push esi
call fcn.004ca5d0
mov ecx, eax
add esp, 4
cmp ecx, 0x12
mov dword [esp + 0x30], ecx
jge 0x47ac9e
lea eax, [ecx + ecx*4]
lea ecx, [eax + eax*4]
shl ecx, 2
mov dword [esp + 0x30], ecx
cmp ecx, 0x70f
jl 0x47c612
cmp ecx, 0x8fc
jg 0x47c612
mov eax, 0x51eb851f
mov dword [ebp + 0x10], ecx
imul ecx
sar edx, 5
mov ecx, edx
mov eax, 1
shr ecx, 0x1f
add edx, ecx
cmp edx, 0x15
mov dword [esp + 0x20], edx
jl 0x47acdb
or dword [ebp + 4], eax
cmp edx, 0x16
jl 0x47acf8
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + 4]
or al, 2
mov dword [ebp + 0xe8], edi
mov dword [ebp + 4], eax
mov dword [ebp + 0xec], edi
lea eax, [ebp + 0x5c]
xor edx, edx
mov dword [ebp + 0x100], edi
mov dword [eax], edx
mov dword [eax + 4], edx
mov dword [eax + 8], edx
push esi
call fcn.004ca4f0
add esp, 4
test eax, eax
jne 0x47c1ab
push esi
call fcn.004ca5d0
push esi
mov edi, eax
call fcn.004ca5d0
add esp, 8
cmp edi, 0x4a424f53
jg 0x47baeb
je 0x47b121
cmp edi, 0x4854414e
jg 0x47af06
je 0x47ae92
cmp edi, 0x444e5247
je 0x47ae07
cmp edi, 0x48435441
jne 0x47bf8f
push esi
call fcn.004ca5d0
xor ebx, ebx
add esp, 4
cmp eax, ebx
mov dword [ebp + 0x100], eax
je 0x47adfc
lea ecx, [eax + eax*4]
push 0x4b2
push str.D:descent3mainNewEditor_ned_polymodel.cpp
lea edx, [eax + ecx*2]
shl edx, 2
push edx
call fcn.004cb090
mov dword [ebp + 0x104], eax
mov eax, dword [ebp + 0x100]
add esp, 0xc
cmp eax, ebx
jle 0x47ad0b
mov dword [esp + 0x18], ebx
mov edi, dword [ebp + 0x104]
mov eax, dword [esp + 0x18]
push esi
add edi, eax
call fcn.004ca5d0
mov dword [edi], eax
lea eax, [edi + 4]
push esi
push eax
call fcn.0047a0f0
lea ecx, [edi + 0x10]
push esi
push ecx
call fcn.0047a0f0
mov ecx, dword [esp + 0x2c]
add esp, 0x14
mov byte [edi + 0x28], 0
mov eax, dword [ebp + 0x100]
inc ebx
add ecx, 0x2c
cmp ebx, eax
mov dword [esp + 0x18], ecx
jl 0x47adb2
jmp 0x47ad0b
mov dword [ebp + 0x104], ebx
jmp 0x47ad0b
push esi
call fcn.004ca5d0
lea edx, [eax*8]
push 0x518
sub edx, eax
push str.D:descent3mainNewEditor_ned_polymodel.cpp
shl edx, 2
push edx
mov dword [ebp + 0xf8], eax
call fcn.004cb090
mov dword [ebp + 0xfc], eax
mov eax, dword [ebp + 0xf8]
xor ebx, ebx
add esp, 0x10
cmp eax, ebx
jle 0x47ad0b
mov dword [esp + 0x18], ebx
mov edi, dword [esp + 0x18]
mov eax, dword [ebp + 0xfc]
push esi
add edi, eax
call fcn.004ca5d0
mov dword [edi], eax
lea eax, [edi + 4]
push esi
push eax
call fcn.0047a0f0
add edi, 0x10
push esi
push edi
call fcn.0047a0f0
mov ecx, dword [esp + 0x2c]
mov eax, dword [ebp + 0xf8]
add esp, 0x14
inc ebx
add ecx, 0x1c
cmp ebx, eax
mov dword [esp + 0x18], ecx
jl 0x47ae4c
jmp 0x47ad0b
push esi
mov byte [esp + 0x2f], 0
call fcn.004ca5d0
mov ecx, dword [ebp + 0x100]
add esp, 4
cmp ecx, eax
jne 0x47aeaf
mov byte [esp + 0x2b], 1
xor ebx, ebx
cmp eax, ebx
je 0x47adfc
jle 0x47ad0b
mov dword [esp + 0x14], eax
mov edi, dword [ebp + 0x104]
push esi
add edi, ebx
call fcn.004ca5d0
lea ecx, [esp + 0xb4]
push esi
push ecx
call fcn.0047a0f0
lea edx, [edi + 0x1c]
push esi
push edx
call fcn.0047a0f0
mov al, byte [esp + 0x3f]
add esp, 0x14
mov byte [edi + 0x28], al
mov eax, dword [esp + 0x14]
add ebx, 0x2c
dec eax
mov dword [esp + 0x14], eax
jne 0x47aec3
jmp 0x47ad0b
sub edi, 0x494e4150
je 0x47af28
sub edi, 2
je 0x47bbaa
push 1
push eax
push esi
call fcn.004ca470
add esp, 0xc
jmp 0x47ad0b
mov ebx, dword [esp + 0x2c]
xor edi, edi
cmp ebx, edi
jne 0x47af45
push esi
call fcn.004ca5d0
add esp, 4
mov dword [esp + 0x58], eax
mov dword [ebp + 0xe0], eax
mov eax, dword [ebp + 0x38]
mov dword [esp + 0x14], edi
cmp eax, edi
jle 0x47ad0b
jmp 0x47af5a
mov ebx, dword [esp + 0x2c]
test ebx, ebx
je 0x47b015
push esi
call fcn.004ca5d0
mov ecx, dword [ebp + 0xd8]
push esi
mov dword [ecx + edi + 0x138], eax
call fcn.004ca5d0
mov edx, dword [ebp + 0xd8]
push esi
mov dword [edx + edi + 0x148], eax
call fcn.004ca5d0
mov ecx, dword [ebp + 0xd8]
add esp, 0xc
mov dword [ecx + edi + 0x14c], eax
mov edx, dword [ebp + 0xd8]
mov ecx, dword [edx + edi + 0x148]
lea eax, [edx + edi]
cmp ecx, dword [ebp + 0xe8]
jge 0x47afbc
mov dword [ebp + 0xe8], ecx
mov ecx, dword [eax + 0x14c]
mov edx, dword [ebp + 0xec]
cmp ecx, edx
jle 0x47afd2
mov dword [ebp + 0xec], ecx
mov ecx, dword [eax + 0x14c]
mov edx, dword [eax + 0x148]
sub ecx, edx
test ecx, ecx
jle 0x47b009
push 0x5cf
lea eax, [ecx + ecx]
push str.D:descent3mainNewEditor_ned_polymodel.cpp
push eax
call fcn.004cb090
mov ecx, dword [ebp + 0xd8]
add esp, 0xc
mov dword [ecx + edi + 0x124], eax
jmp 0x47b026
mov dword [eax + 0x124], 0
jmp 0x47b026
mov edx, dword [ebp + 0xd8]
mov eax, dword [esp + 0x58]
mov dword [edx + edi + 0x138], eax
mov ecx, dword [ebp + 0xd8]
push 0x5db
push str.D:descent3mainNewEditor_ned_polymodel.cpp
mov eax, dword [ecx + edi + 0x138]
inc eax
lea edx, [eax + eax*2]
shl edx, 2
push edx
call fcn.004cb090
mov ecx, dword [ebp + 0xd8]
add esp, 0xc
test ebx, ebx
mov dword [ecx + edi + 0x11c], eax
je 0x47b092
mov edx, dword [ebp + 0xd8]
push 0x5e0
push str.D:descent3mainNewEditor_ned_polymodel.cpp
mov eax, dword [edx + edi + 0x138]
lea ecx, [eax*4 + 4]
push ecx
call fcn.004cb090
mov edx, dword [ebp + 0xd8]
add esp, 0xc
mov dword [edx + edi + 0x130], eax
mov eax, dword [ebp + 0xd8]
xor ebx, ebx
cmp dword [eax + edi + 0x138], ebx
jle 0x47b102
mov dword [esp + 0x18], ebx
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x47b0c8
push esi
call fcn.004ca5d0
mov ecx, dword [ebp + 0xd8]
add esp, 4
mov edx, dword [ecx + edi + 0x130]
mov dword [edx + ebx*4], eax
mov eax, dword [ebp + 0xd8]
push esi
mov ecx, dword [eax + edi + 0x11c]
mov eax, dword [esp + 0x1c]
add ecx, eax
push ecx
call fcn.0047a0f0
mov edx, dword [ebp + 0xd8]
mov ecx, dword [esp + 0x20]
add esp, 8
inc ebx
mov eax, dword [edx + edi + 0x138]
add ecx, 0xc
cmp ebx, eax
mov dword [esp + 0x18], ecx
jl 0x47b0a7
mov eax, dword [esp + 0x14]
mov ecx, dword [ebp + 0x38]
inc eax
add edi, 0x164
cmp eax, ecx
mov dword [esp + 0x14], eax
jl 0x47af56
jmp 0x47ad0b
push esi
call fcn.004ca5d0
lea ebx, [eax + eax*4]
mov ecx, dword [ebp + 0xd8]
push esi
lea ebx, [ebx + ebx*8]
shl ebx, 1
sub ebx, eax
mov eax, 0x47afc800
shl ebx, 2
mov dword [ecx + ebx + 0xc8], eax
mov edx, dword [ebp + 0xd8]
mov dword [edx + ebx + 0xc4], eax
mov ecx, dword [ebp + 0xd8]
mov dword [ecx + ebx + 0xc0], eax
mov edx, dword [ebp + 0xd8]
mov eax, 0xc7afc800
mov dword [edx + ebx + 0xd4], eax
mov ecx, dword [ebp + 0xd8]
mov dword [ecx + ebx + 0xd0], eax
mov edx, dword [ebp + 0xd8]
mov dword [edx + ebx + 0xcc], eax
call fcn.004ca5d0
mov ecx, dword [ebp + 0xd8]
push esi
mov dword [ecx + ebx + 0xb8], eax
mov edx, dword [ebp + 0xd8]
lea eax, [edx + ebx + 0x40]
push eax
call fcn.0047a0f0
push esi
call fcn.004ca670
mov ecx, dword [ebp + 0xd8]
push esi
fstp st(0)
lea edx, [ecx + ebx + 0x50]
push edx
call fcn.0047a0f0
mov eax, dword [ebp + 0xd8]
push esi
lea ecx, [eax + ebx + 0x34]
push ecx
call fcn.0047a0f0
push esi
call fcn.004ca670
mov edx, dword [ebp + 0xd8]
push esi
fstp dword [edx + ebx + 0x68]
call fcn.004ca5d0
mov ecx, dword [ebp + 0xd8]
push esi
mov dword [ecx + ebx + 0x2c], eax
call fcn.004ca5d0
mov edx, dword [ebp + 0xd8]
add esp, 0x30
mov dword [edx + ebx + 0x30], eax
mov eax, dword [ebp + 0x10]
cmp eax, 0x70d
jle 0x47b22d
mov eax, dword [ebp + 0xd8]
push esi
lea ecx, [eax + ebx + 0x5c]
push ecx
call fcn.0047a0f0
add esp, 8
jmp 0x47b243
mov edx, dword [ebp + 0xd8]
xor ecx, ecx
mov dword [edx + ebx + 0x64], ecx
mov dword [edx + ebx + 0x60], ecx
lea eax, [edx + ebx + 0x5c]
mov dword [eax], ecx
mov eax, dword [ebp + 0xd8]
push esi
push 0x23
mov byte [eax + ebx], 0
mov ecx, dword [ebp + 0xd8]
add ecx, ebx
push ecx
call fcn.0047a120
push esi
lea edx, [esp + 0x1b8]
push 0x100
push edx
call fcn.0047a120
mov ecx, dword [ebp + 0xd8]
lea eax, [esp + 0x1c0]
add ecx, ebx
push eax
push ecx
call fcn.0047a3e0
push esi
call fcn.004ca5d0
mov edx, dword [ebp + 0xd8]
push esi
mov dword [edx + ebx + 0x24], eax
call fcn.004ca5d0
mov ecx, dword [ebp + 0xd8]
add esp, 0x28
mov dword [ecx + ebx + 0x28], eax
mov edx, dword [ebp + 0xd8]
add edx, ebx
cmp byte [edx], 0
jne 0x47b2e0
mov edi, str.unknown_object_name
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0xc50]
mov edx, dword [ebp + 0xd8]
xor ecx, ecx
push esi
lea eax, [edx + ebx + 0xdc]
mov dword [edx + ebx + 0xdc], ecx
mov word [eax + 4], cx
call fcn.004ca5d0
add esp, 4
test eax, eax
jle 0x47b315
mov edi, eax
push esi
call fcn.004ca5d0
add esp, 4
dec edi
jne 0x47b309
push esi
call fcn.004ca5d0
xor ecx, ecx
add esp, 4
cmp eax, ecx
mov dword [esp + 0x10], eax
je 0x47b392
mov edi, eax
push 0x3b3
push str.D:descent3mainNewEditor_ned_polymodel.cpp
lea edi, [edi + edi*2]
shl edi, 2
push edi
call fcn.004cb090
mov ecx, dword [ebp + 0xd8]
push 0x3b4
push str.D:descent3mainNewEditor_ned_polymodel.cpp
push edi
mov dword [ecx + ebx + 0x6c], eax
call fcn.004cb090
mov edx, dword [ebp + 0xd8]
push 0x3b5
push str.D:descent3mainNewEditor_ned_polymodel.cpp
mov dword [edx + ebx + 0x70], eax
mov eax, dword [esp + 0x30]
lea ecx, [eax*4]
push ecx
call fcn.004cb090
mov edx, dword [ebp + 0xd8]
add esp, 0x24
mov dword [edx + ebx + 0x74], eax
mov eax, dword [esp + 0x10]
jmp 0x47b3b0
mov edx, dword [ebp + 0xd8]
mov dword [edx + ebx + 0x6c], ecx
mov edx, dword [ebp + 0xd8]
mov dword [edx + ebx + 0x70], ecx
mov edx, dword [ebp + 0xd8]
mov dword [edx + ebx + 0x74], ecx
mov ecx, dword [ebp + 0xd8]
test eax, eax
mov dword [ecx + ebx + 0x90], eax
jle 0x47b4e5
mov edx, dword [esp + 0x10]
xor edi, edi
mov dword [esp + 0x14], edx
mov eax, dword [ebp + 0xd8]
push esi
mov ecx, dword [eax + ebx + 0x6c]
add ecx, edi
push ecx
call fcn.0047a0f0
mov edx, dword [ebp + 0xd8]
add esp, 8
mov eax, dword [edx + ebx + 0x6c]
lea ecx, [edx + ebx]
fld dword [eax + edi]
fcomp dword [ecx + 0xcc]
lea edx, [eax + edi]
fnstsw ax
test ah, 0x41
jne 0x47b40d
mov edx, dword [edx]
mov dword [ecx + 0xcc], edx
mov eax, dword [ebp + 0xd8]
mov edx, dword [eax + ebx + 0x6c]
lea ecx, [eax + ebx]
fld dword [edx + edi + 4]
fcomp dword [ecx + 0xd0]
lea edx, [edx + edi + 4]
fnstsw ax
test ah, 0x41
jne 0x47b437
mov eax, dword [edx]
mov dword [ecx + 0xd0], eax
mov ecx, dword [ebp + 0xd8]
add ecx, ebx
mov edx, dword [ecx + 0x6c]
fld dword [edx + edi + 8]
fcomp dword [ecx + 0xd4]
lea edx, [edx + edi + 8]
fnstsw ax
test ah, 0x41
jne 0x47b45f
mov eax, dword [edx]
mov dword [ecx + 0xd4], eax
mov ecx, dword [ebp + 0xd8]
add ecx, ebx
mov edx, dword [ecx + 0x6c]
add edx, edi
fld dword [edx]
fcomp dword [ecx + 0xc0]
fnstsw ax
test ah, 1
je 0x47b483
mov eax, dword [edx]
mov dword [ecx + 0xc0], eax
mov ecx, dword [ebp + 0xd8]
add ecx, ebx
mov edx, dword [ecx + 0x6c]
fld dword [edx + edi + 4]
fcomp dword [ecx + 0xc4]
lea edx, [edx + edi + 4]
fnstsw ax
test ah, 1
je 0x47b4ab
mov eax, dword [edx]
mov dword [ecx + 0xc4], eax
mov ecx, dword [ebp + 0xd8]
add ecx, ebx
mov edx, dword [ecx + 0x6c]
fld dword [edx + edi + 8]
fcomp dword [ecx + 0xc8]
lea edx, [edx + edi + 8]
fnstsw ax
test ah, 1
je 0x47b4d3
mov eax, dword [edx]
mov dword [ecx + 0xc8], eax
mov eax, dword [esp + 0x14]
add edi, 0xc
dec eax
mov dword [esp + 0x14], eax
jne 0x47b3cf
mov ecx, dword [esp + 0x10]
test ecx, ecx
jle 0x47b51b
xor edi, edi
mov dword [esp + 0x14], ecx
mov ecx, dword [ebp + 0xd8]
push esi
mov edx, dword [ecx + ebx + 0x70]
add edx, edi
push edx
call fcn.0047a0f0
mov eax, dword [esp + 0x1c]
add esp, 8
add edi, 0xc
dec eax
mov dword [esp + 0x14], eax
jne 0x47b4f3
mov ecx, dword [esp + 0x10]
cmp dword [esp + 0x20], 0x17
jl 0x47b56b
xor edi, edi
test ecx, ecx
jle 0x47b588
push esi
call fcn.004ca670
mov eax, dword [ebp + 0xd8]
add esp, 4
mov ecx, dword [eax + ebx + 0x74]
fstp dword [ecx + edi*4]
mov edx, dword [ebp + 0xd8]
mov eax, dword [edx + ebx + 0x74]
fld dword [eax + edi*4]
fcomp qword [0x51f358]
fnstsw ax
test ah, 1
je 0x47b560
mov eax, dword [ebp + 4]
or al, 4
mov dword [ebp + 4], eax
mov eax, dword [esp + 0x10]
inc edi
cmp edi, eax
jl 0x47b528
jmp 0x47b588
xor eax, eax
test ecx, ecx
jle 0x47b588
mov edx, dword [ebp + 0xd8]
inc eax
cmp eax, ecx
mov edx, dword [edx + ebx + 0x74]
mov dword [edx + eax*4 - 4], 0x3f800000
jl 0x47b571
push esi
call fcn.004ca5d0
mov edi, eax
mov eax, dword [ebp + 0xd8]
add esp, 4
mov dword [esp + 0x10], edi
mov dword [eax + ebx + 0x94], edi
xor eax, eax
cmp edi, eax
je 0x47b60c
lea ecx, [edi + edi*8]
push 0x3f3
shl ecx, 2
push str.D:descent3mainNewEditor_ned_polymodel.cpp
push ecx
call fcn.004cb090
mov edx, dword [ebp + 0xd8]
lea edi, [edi + edi*2]
shl edi, 2
push 0x3f4
push str.D:descent3mainNewEditor_ned_polymodel.cpp
push edi
mov dword [edx + ebx + 0x78], eax
call fcn.004cb090
mov ecx, dword [ebp + 0xd8]
push 0x3f5
push str.D:descent3mainNewEditor_ned_polymodel.cpp
push edi
mov dword [ecx + ebx + 0x7c], eax
call fcn.004cb090
mov edx, dword [ebp + 0xd8]
add esp, 0x24
mov dword [edx + ebx + 0x80], eax
jmp 0x47b62d
mov ecx, dword [ebp + 0xd8]
mov dword [ecx + ebx + 0x78], eax
mov edx, dword [ebp + 0xd8]
mov dword [edx + ebx + 0x80], eax
mov ecx, dword [ebp + 0xd8]
mov dword [ecx + ebx + 0x7c], eax
mov edi, dword [ebp + 0xd8]
push esi
add edi, ebx
mov dword [esp + 0x20], 0
call fcn.004ca4e0
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x14]
add esp, 4
test eax, eax
je 0x47b674
mov edx, eax
push 0x40a
push str.D:descent3mainNewEditor_ned_polymodel.cpp
lea eax, [edx*4]
push eax
call fcn.004cb090
add esp, 0xc
mov dword [esp + 0x18], eax
jmp 0x47b67c
mov dword [esp + 0x18], 0
mov ecx, dword [esp + 0x10]
test ecx, ecx
jle 0x47b7a0
mov edx, dword [esp + 0x18]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x14], edx
lea eax, [esp + 0x5c]
push esi
push eax
call fcn.0047a0f0
push esi
call fcn.004ca5d0
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x28]
push esi
mov dword [esp + 0x48], eax
mov dword [edx], ecx
add ecx, eax
mov dword [esp + 0x2c], ecx
call fcn.004ca5d0
add esp, 0x10
test eax, eax
push esi
je 0x47b6d1
call fcn.004ca5d0
add esp, 4
jmp 0x47b6e3
lea eax, [esp + 0x47c]
push 3
push eax
call fcn.004ca560
add esp, 0xc
mov eax, dword [esp + 0x38]
push esi
lea edx, [esp + 0x47c]
lea ecx, [eax + eax*2]
shl ecx, 2
push ecx
push edx
call fcn.004ca560
mov eax, dword [esp + 0x2c]
add esp, 0xc
cmp eax, 0x15
jl 0x47b71b
push esi
lea eax, [esp + 0x47c]
push 8
push eax
call fcn.004ca560
add esp, 0xc
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x24]
add ecx, 4
dec eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x24], eax
jne 0x47b694
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x47b79c
mov ecx, eax
push 0x42d
push str.D:descent3mainNewEditor_ned_polymodel.cpp
lea edx, [ecx + ecx]
push edx
call fcn.004cb090
mov dword [edi + 0x84], eax
mov eax, dword [esp + 0x28]
shl eax, 2
push 0x430
push str.D:descent3mainNewEditor_ned_polymodel.cpp
push eax
mov dword [esp + 0x50], eax
call fcn.004cb090
mov ecx, dword [esp + 0x50]
push 0x433
push str.D:descent3mainNewEditor_ned_polymodel.cpp
push ecx
mov dword [edi + 0x88], eax
call fcn.004cb090
mov ecx, dword [esp + 0x34]
add esp, 0x24
mov dword [edi + 0x8c], eax
jmp 0x47b7b4
mov ecx, dword [esp + 0x10]
xor eax, eax
mov dword [edi + 0x84], eax
mov dword [edi + 0x88], eax
mov dword [edi + 0x8c], eax
test ecx, ecx
jle 0x47b821
mov edx, dword [esp + 0x18]
xor eax, eax
mov dword [esp + 0x1c], edx
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x1c]
add eax, 0x24
mov edx, dword [ecx]
mov ecx, dword [edi + 0x84]
lea edx, [ecx + edx*2]
mov ecx, dword [edi + 0x78]
mov dword [ecx + eax - 0x20], edx
mov edx, dword [esp + 0x1c]
mov ecx, dword [edx]
mov edx, dword [edi + 0x88]
lea ecx, [edx + ecx*4]
mov edx, dword [edi + 0x78]
mov dword [edx + eax - 0x1c], ecx
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx]
mov ecx, dword [edi + 0x8c]
lea edx, [ecx + edx*4]
mov ecx, dword [edi + 0x78]
mov dword [ecx + eax - 0x18], edx
mov ecx, dword [esp + 0x1c]
add ecx, 4
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x24]
dec ecx
mov dword [esp + 0x24], ecx
jne 0x47b7c6
mov edx, dword [esp + 0x34]
xor edi, edi
push edi
push edx
push esi
call fcn.004ca470
mov eax, dword [esp + 0x24]
add esp, 0xc
cmp eax, edi
je 0x47b843
push eax
call fcn.004cb110
add esp, 4
mov eax, dword [esp + 0x10]
cmp eax, edi
jle 0x47ad0b
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], edi
mov dword [esp + 0x24], eax
jmp 0x47b861
mov edi, dword [esp + 0x10]
mov eax, dword [ebp + 0xd8]
push esi
mov ecx, dword [eax + ebx + 0x78]
lea edx, [ecx + edi + 0x18]
push edx
call fcn.0047a0f0
push esi
call fcn.004ca5d0
mov ecx, dword [ebp + 0xd8]
push esi
mov edx, dword [ecx + ebx + 0x78]
mov byte [edx + edi], al
call fcn.004ca5d0
add esp, 0x10
test eax, eax
je 0x47b8b0
push esi
call fcn.004ca5d0
mov ecx, dword [ebp + 0xd8]
add esp, 4
mov edx, dword [ecx + ebx + 0x78]
mov word [edx + edi + 0x14], ax
jmp 0x47b917
mov eax, dword [ebp + 0xd8]
push esi
mov ecx, dword [eax + ebx + 0x78]
mov word [ecx + edi + 0x14], 0xffff
call fcn.004ca610
push esi
mov byte [esp + 0x58], al
call fcn.004ca610
push esi
mov byte [esp + 0x54], al
call fcn.004ca610
mov edx, dword [esp + 0x5c]
mov byte [esp + 0x60], al
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x60]
and edx, 0xff
and eax, 0xff
shl edx, 8
add edx, eax
mov eax, dword [ebp + 0xd8]
shl edx, 8
and ecx, 0xff
add esp, 0xc
add edx, ecx
mov ecx, dword [eax + ebx + 0x78]
mov dword [ecx + edi + 0x10], edx
mov edx, dword [ebp + 0xd8]
xor edi, edi
mov ecx, dword [edx + ebx + 0x78]
lea eax, [edx + ebx]
mov edx, dword [esp + 0x10]
cmp byte [ecx + edx], 0
jle 0x47baa7
mov ecx, dword [eax + 0x7c]
mov edx, dword [esp + 0x14]
mov eax, dword [eax + 0x80]
add ecx, edx
add eax, edx
push esi
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], eax
call fcn.004ca5d0
mov ecx, dword [ebp + 0xd8]
push esi
mov edx, dword [ecx + ebx + 0x78]
mov ecx, dword [esp + 0x18]
mov edx, dword [edx + ecx + 4]
mov word [edx + edi*2], ax
call fcn.004ca670
mov eax, dword [ebp + 0xd8]
mov edx, dword [esp + 0x18]
push esi
mov ecx, dword [eax + ebx + 0x78]
mov eax, dword [ecx + edx + 8]
fstp dword [eax + edi*4]
call fcn.004ca670
mov ecx, dword [ebp + 0xd8]
add esp, 0xc
test edi, edi
mov edx, dword [ecx + ebx + 0x78]
mov ecx, dword [esp + 0x10]
mov eax, dword [edx + ecx + 0xc]
fstp dword [eax + edi*4]
mov edx, dword [ebp + 0xd8]
lea eax, [edx + ebx]
mov edx, dword [edx + ebx + 0x78]
mov eax, dword [eax + 0x6c]
mov ecx, dword [edx + ecx + 4]
movsx ecx, word [ecx + edi*2]
lea edx, [ecx + ecx*2]
lea ecx, [eax + edx*4]
mov dword [esp + 0x34], ecx
jne 0x47b9f9
mov eax, dword [esp + 0x1c]
mov edx, dword [ecx]
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov ecx, dword [ecx + 8]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x18]
mov edx, dword [ecx]
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov ecx, dword [ecx + 8]
mov dword [eax + 8], ecx
jmp 0x47ba89
mov edx, dword [esp + 0x18]
fld dword [ecx]
fcomp dword [edx]
fnstsw ax
test ah, 1
je 0x47ba0e
mov eax, dword [ecx]
mov dword [edx], eax
jmp 0x47ba29
mov eax, dword [esp + 0x1c]
fld dword [ecx]
fcomp dword [eax]
fnstsw ax
test ah, 0x41
jne 0x47ba29
mov eax, dword [esp + 0x1c]
mov edx, dword [ecx]
mov dword [eax], edx
mov edx, dword [esp + 0x18]
fld dword [ecx + 4]
fcomp dword [edx + 4]
fnstsw ax
test ah, 1
je 0x47ba3e
mov eax, dword [ecx + 4]
mov dword [edx + 4], eax
jmp 0x47ba5d
mov eax, dword [esp + 0x1c]
fld dword [ecx + 4]
fcomp dword [eax + 4]
fnstsw ax
test ah, 0x41
jne 0x47ba5d
mov eax, dword [esp + 0x1c]
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x18]
fld dword [ecx + 8]
fcomp dword [edx + 8]
fnstsw ax
test ah, 1
je 0x47ba72
mov ecx, dword [ecx + 8]
mov dword [edx + 8], ecx
jmp 0x47ba89
mov edx, dword [esp + 0x1c]
fld dword [ecx + 8]
fcomp dword [edx + 8]
fnstsw ax
test ah, 0x41
jne 0x47ba89
mov eax, dword [ecx + 8]
mov dword [edx + 8], eax
mov ecx, dword [ebp + 0xd8]
inc edi
mov edx, dword [ecx + ebx + 0x78]
lea eax, [ecx + ebx]
mov ecx, dword [esp + 0x10]
movsx edx, byte [edx + ecx]
cmp edi, edx
jl 0x47b934
cmp dword [esp + 0x20], 0x15
jl 0x47bac1
push esi
call fcn.004ca670
fstp st(0)
push esi
call fcn.004ca670
fstp st(0)
add esp, 8
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x24]
add edx, 0xc
add ecx, 0x24
dec eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x24], eax
jne 0x47b85d
jmp 0x47ad0b
cmp edi, 0x52545854
jg 0x47bf7b
je 0x47beb9
cmp edi, 0x4d494e41
je 0x47bbaa
cmp edi, 0x5244484f
jne 0x47bf8f
push esi
call fcn.004ca5d0
push esi
mov dword [ebp + 0x38], eax
call fcn.004ca670
mov eax, dword [ebp + 0x38]
push 0x353
fstp dword [ebp + 0x88]
lea ecx, [eax + eax*4]
push str.D:descent3mainNewEditor_ned_polymodel.cpp
lea ecx, [ecx + ecx*8]
shl ecx, 1
sub ecx, eax
shl ecx, 2
push ecx
call fcn.004cb090
mov edi, eax
mov eax, dword [ebp + 0x38]
mov dword [ebp + 0xd8], edi
push esi
lea ecx, [eax + eax*4]
lea ecx, [ecx + ecx*8]
shl ecx, 1
sub ecx, eax
xor eax, eax
shl ecx, 2
mov edx, ecx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
lea eax, [ebp + 0x44]
push eax
call fcn.0047a0f0
lea ecx, [ebp + 0x50]
push esi
push ecx
call fcn.0047a0f0
push esi
call fcn.004ca5d0
add esp, 0x28
test eax, eax
jle 0x47ad0b
mov edi, eax
push esi
call fcn.004ca5d0
add esp, 4
dec edi
jne 0x47bb99
jmp 0x47ad0b
mov ebx, dword [esp + 0x2c]
xor edi, edi
cmp ebx, edi
jne 0x47bbc7
push esi
call fcn.004ca5d0
add esp, 4
mov dword [esp + 0x4c], eax
mov dword [ebp + 0xdc], eax
mov eax, dword [ebp + 0x38]
mov dword [esp + 0x24], edi
cmp eax, edi
jle 0x47ad0b
jmp 0x47bbdc
mov ebx, dword [esp + 0x2c]
test ebx, ebx
je 0x47bc52
push esi
call fcn.004ca5d0
mov edx, dword [ebp + 0xd8]
push esi
mov dword [edx + edi + 0x134], eax
call fcn.004ca5d0
mov ecx, dword [ebp + 0xd8]
push esi
mov dword [ecx + edi + 0x140], eax
call fcn.004ca5d0
mov edx, dword [ebp + 0xd8]
add esp, 0xc
mov dword [edx + edi + 0x144], eax
mov eax, dword [ebp + 0xd8]
mov edx, dword [ebp + 0xe8]
add eax, edi
mov ecx, dword [eax + 0x140]
cmp ecx, edx
jge 0x47bc3a
mov dword [ebp + 0xe8], ecx
mov eax, dword [eax + 0x144]
mov ecx, dword [ebp + 0xec]
cmp eax, ecx
jle 0x47bc63
mov dword [ebp + 0xec], eax
jmp 0x47bc63
mov ecx, dword [ebp + 0xd8]
mov edx, dword [esp + 0x4c]
mov dword [ecx + edi + 0x134], edx
mov eax, dword [ebp + 0xd8]
push 0x56f
push str.D:descent3mainNewEditor_ned_polymodel.cpp
mov eax, dword [eax + edi + 0x134]
inc eax
lea ecx, [eax + eax*2]
shl ecx, 2
push ecx
call fcn.004cb090
mov edx, dword [ebp + 0xd8]
push 0x570
push str.D:descent3mainNewEditor_ned_polymodel.cpp
mov dword [edx + edi + 0x114], eax
mov eax, dword [ebp + 0xd8]
mov ecx, dword [eax + edi + 0x134]
lea edx, [ecx*4 + 4]
push edx
call fcn.004cb090
mov ecx, dword [ebp + 0xd8]
push 0x571
push str.D:descent3mainNewEditor_ned_polymodel.cpp
mov dword [ecx + edi + 0x118], eax
mov edx, dword [ebp + 0xd8]
mov eax, dword [edx + edi + 0x134]
inc eax
lea eax, [eax + eax*8]
shl eax, 2
push eax
call fcn.004cb090
mov ecx, dword [ebp + 0xd8]
add esp, 0x24
test ebx, ebx
mov dword [ecx + edi + 0x120], eax
je 0x47bd81
mov edx, dword [ebp + 0xd8]
push 0x574
push str.D:descent3mainNewEditor_ned_polymodel.cpp
mov eax, dword [edx + edi + 0x134]
lea ecx, [eax*4 + 4]
push ecx
call fcn.004cb090
mov edx, dword [ebp + 0xd8]
add esp, 0xc
mov dword [edx + edi + 0x12c], eax
mov eax, dword [ebp + 0xd8]
mov ebx, dword [eax + edi + 0x140]
lea ecx, [eax + edi]
mov eax, dword [eax + edi + 0x144]
sub eax, ebx
test eax, eax
jle 0x47bd77
push 0x57b
lea ecx, [eax + eax]
push str.D:descent3mainNewEditor_ned_polymodel.cpp
push ecx
call fcn.004cb090
mov edx, dword [ebp + 0xd8]
add esp, 0xc
mov dword [edx + edi + 0x128], eax
jmp 0x47bd81
mov dword [ecx + 0x128], 0
mov eax, dword [ebp + 0xd8]
xor ebx, ebx
cmp dword [eax + edi + 0x134], ebx
jle 0x47be9a
mov dword [esp + 0x1c], ebx
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x47bdbb
push esi
call fcn.004ca5d0
mov ecx, dword [ebp + 0xd8]
add esp, 4
mov edx, dword [ecx + edi + 0x12c]
mov dword [edx + ebx*4], eax
mov eax, dword [ebp + 0xd8]
push esi
mov ecx, dword [eax + edi + 0x114]
mov eax, dword [esp + 0x20]
add ecx, eax
push ecx
call fcn.0047a0f0
mov edx, dword [ebp + 0xd8]
mov eax, dword [edx + edi + 0x114]
mov edx, dword [esp + 0x24]
add eax, edx
push eax
call fcn.004cb4f0
fcom dword [0x51d808]
add esp, 0xc
fnstsw ax
test ah, 0x41
jne 0x47be5d
mov eax, dword [ebp + 0xd8]
mov ecx, dword [esp + 0x1c]
mov eax, dword [eax + edi + 0x114]
add eax, ecx
mov ecx, eax
mov edx, dword [ecx]
mov dword [esp + 0x3c], edx
fld dword [esp + 0x3c]
fdiv st(1)
mov edx, dword [ecx + 4]
mov dword [esp + 0x40], edx
mov ecx, dword [ecx + 8]
mov dword [esp + 0x44], ecx
fstp dword [esp + 0x3c]
fld dword [esp + 0x40]
fdiv st(1)
mov edx, dword [esp + 0x3c]
mov dword [eax], edx
fstp dword [esp + 0x40]
fld dword [esp + 0x44]
fdiv st(1)
mov ecx, dword [esp + 0x40]
mov dword [eax + 4], ecx
fstp dword [esp + 0x44]
mov edx, dword [esp + 0x44]
fstp st(0)
mov dword [eax + 8], edx
jmp 0x47be5f
fstp st(0)
push esi
call fcn.004ca5d0
mov ecx, dword [ebp + 0xd8]
add esp, 4
inc ebx
mov edx, dword [ecx + edi + 0x118]
mov dword [edx + ebx*4 - 4], eax
mov eax, dword [ebp + 0xd8]
mov edx, dword [esp + 0x1c]
mov ecx, dword [eax + edi + 0x134]
add edx, 0xc
cmp ebx, ecx
mov dword [esp + 0x1c], edx
jl 0x47bd9a
mov eax, dword [esp + 0x24]
mov ecx, dword [ebp + 0x38]
inc eax
add edi, 0x164
cmp eax, ecx
mov dword [esp + 0x24], eax
jl 0x47bbd8
jmp 0x47ad0b
push esi
call fcn.004ca5d0
add esp, 4
mov dword [ebp + 0x8c], eax
test eax, eax
jle 0x47ad0b
lea ebx, [ebp + 0x90]
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0xc50]
lea edx, [esp + 0x128]
push ecx
push 0x7f
push edx
call fcn.0047a120
mov edi, str..OGF
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x134]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea eax, [esp + 0x134]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
call fcn.0045fb90
add esp, 0x10
cmp eax, 0xffffffff
jne 0x47bf39
xor eax, eax
mov word [ebx], ax
imul eax, eax, 0x88
fld dword [eax + 0x8e89d0]
fcomp qword [0x51f358]
fnstsw ax
test ah, 1
je 0x47bf5d
mov eax, dword [ebp + 4]
or al, 4
mov dword [ebp + 4], eax
mov eax, dword [esp + 0x24]
add ebx, 2
dec eax
mov dword [esp + 0x24], eax
jne 0x47beda
mov esi, dword [esp + 0xc50]
jmp 0x47ad0b
cmp edi, 0x54414257
je 0x47c041
cmp edi, 0x544e5047
je 0x47bfa0
push 1
push eax
push esi
call fcn.004ca470
add esp, 0xc
jmp 0x47ad0b
push esi
call fcn.004ca5d0
lea ecx, [eax*8]
push 0x498
sub ecx, eax
push str.D:descent3mainNewEditor_ned_polymodel.cpp
shl ecx, 2
push ecx
mov dword [ebp + 0xf0], eax
call fcn.004cb090
mov dword [ebp + 0xf4], eax
mov eax, dword [ebp + 0xf0]
xor ebx, ebx
add esp, 0x10
cmp eax, ebx
jle 0x47ad0b
mov dword [esp + 0x14], ebx
mov edi, dword [esp + 0x14]
mov ecx, dword [ebp + 0xf4]
mov eax, dword [esp + 0x30]
add edi, ecx
cmp eax, 0x774
jl 0x47c009
push esi
call fcn.004ca5d0
add esp, 4
mov dword [edi], eax
jmp 0x47c00f
mov dword [edi], 0
lea edx, [edi + 4]
push esi
push edx
call fcn.0047a0f0
add edi, 0x10
push esi
push edi
call fcn.0047a0f0
mov ecx, dword [esp + 0x24]
mov eax, dword [ebp + 0xf0]
add esp, 0x10
inc ebx
add ecx, 0x1c
cmp ebx, eax
mov dword [esp + 0x14], ecx
jl 0x47bfe5
jmp 0x47ad0b
push esi
call fcn.004ca5d0
xor edi, edi
add esp, 4
cmp eax, edi
mov dword [ebp + 0x108], eax
je 0x47c1a0
lea ecx, [eax*8]
push 0x4f0
sub ecx, eax
push str.D:descent3mainNewEditor_ned_polymodel.cpp
shl ecx, 2
push ecx
call fcn.004cb090
mov dword [ebp + 0x10c], eax
mov eax, dword [ebp + 0x108]
add esp, 0xc
cmp eax, edi
mov dword [esp + 0x24], edi
jle 0x47ad0b
mov dword [esp + 0x14], 6
push esi
call fcn.004ca5d0
mov edx, dword [ebp + 0x10c]
xor ebx, ebx
add esp, 4
mov word [edx + edi], ax
mov eax, dword [ebp + 0x10c]
cmp word [eax + edi], bx
jbe 0x47c0ef
cmp ebx, 7
push esi
jg 0x47c0d6
call fcn.004ca5d0
mov ecx, dword [ebp + 0x10c]
add esp, 4
add ecx, edi
mov byte [ecx + ebx + 2], al
jmp 0x47c0de
call fcn.004ca5d0
add esp, 4
mov edx, dword [ebp + 0x10c]
xor eax, eax
inc ebx
mov ax, word [edx + edi]
cmp ebx, eax
jl 0x47c0ba
mov ecx, dword [ebp + 0x10c]
cmp word [ecx + edi], 8
lea eax, [ecx + edi]
jbe 0x47c104
mov word [eax], 8
push esi
call fcn.004ca5d0
mov edx, dword [ebp + 0x10c]
add esp, 4
xor ebx, ebx
mov byte [edx + edi + 0xa], al
mov eax, dword [ebp + 0x10c]
mov cl, byte [eax + edi + 0xa]
test cl, cl
jbe 0x47c160
cmp ebx, 7
push esi
jg 0x47c147
call fcn.004ca5d0
mov ecx, dword [esp + 0x18]
mov edx, dword [ebp + 0x10c]
add esp, 4
add ecx, ebx
mov word [edx + ecx*2], ax
jmp 0x47c14f
call fcn.004ca5d0
add esp, 4
mov eax, dword [ebp + 0x10c]
xor ecx, ecx
inc ebx
mov cl, byte [eax + edi + 0xa]
cmp ebx, ecx
jl 0x47c127
mov edx, dword [ebp + 0x10c]
mov cl, byte [edx + edi + 0xa]
lea eax, [edx + edi + 0xa]
cmp cl, 8
jbe 0x47c176
mov byte [eax], 8
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x14]
mov ecx, dword [ebp + 0x108]
inc eax
add ebx, 0xe
add edi, 0x1c
cmp eax, ecx
mov dword [esp + 0x24], eax
mov dword [esp + 0x14], ebx
jl 0x47c099
jmp 0x47ad0b
mov dword [ebp + 0x10c], edi
jmp 0x47ad0b
mov eax, dword [ebp + 0xe0]
mov ecx, dword [ebp + 0xdc]
cmp eax, ecx
jg 0x47c1bd
mov eax, ecx
mov dword [ebp + 0xe4], eax
mov eax, dword [ebp + 0x38]
xor esi, esi
cmp eax, esi
mov dword [esp + 0x18], esi
jle 0x47c5ce
mov dword [esp + 0x10], esi
jmp 0x47c1dc
xor esi, esi
lea eax, [esp + 0x8c]
push eax
call fcn.004cb520
mov ebx, dword [esp + 0x14]
mov ecx, dword [ebp + 0xd8]
add ebx, ecx
add esp, 4
mov dword [esp + 0x20], esi
cmp dword [ebx + 0x134], esi
jle 0x47c2f7
mov dword [esp + 0x30], esi
mov dword [esp + 0x14], esi
mov ecx, dword [esp + 0x14]
mov edi, dword [ebx + 0x114]
mov edx, dword [ebx + 0x118]
mov eax, dword [esp + 0x20]
add ecx, edi
push ecx
mov ecx, dword [edx + eax*4]
lea edx, [esp + 0xc0]
push ecx
push edx
call fcn.0047a2f0
lea eax, [esp + 0xec]
push eax
call fcn.004cb520
sub esp, 0x14
mov ecx, 9
lea esi, [esp + 0xb0]
mov edi, esp
rep movsd dword es:[edi], dword [esi]
sub esp, 0x24
mov ecx, 9
lea esi, [esp + 0x104]
mov edi, esp
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x14c]
push ecx
call fcn.004cb760
mov ecx, 9
mov esi, eax
lea edi, [esp + 0xb4]
mov edx, dword [esp + 0x7c]
rep movsd dword es:[edi], dword [esi]
mov ecx, 9
lea esi, [esp + 0xb4]
lea edi, [esp + 0x12c]
mov eax, dword [esp + 0x6c]
rep movsd dword es:[edi], dword [esi]
mov ecx, 9
lea esi, [esp + 0xb4]
lea edi, [esp + 0xd8]
add esp, 0x4c
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebx + 0x120]
mov edi, edx
add edi, esi
mov ecx, 9
lea esi, [esp + 0x68]
inc eax
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x14]
mov ecx, dword [ebx + 0x134]
add edi, 0xc
add edx, 0x24
cmp eax, ecx
mov dword [esp + 0x20], eax
mov dword [esp + 0x14], edi
mov dword [esp + 0x30], edx
jl 0x47c210
mov esi, dword [ebp + 0xd8]
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
mov ecx, dword [edi + esi + 0xb8]
cmp ecx, edx
jne 0x47c31d
mov dword [edi + esi + 0xb8], 0xffffffff
jmp 0x47c359
cmp ecx, 0xffffffff
je 0x47c359
lea eax, [ecx + ecx*4]
lea eax, [eax + eax*8]
shl eax, 1
sub eax, ecx
xor ecx, ecx
shl eax, 2
mov cl, byte [eax + esi + 0xbc]
add ecx, eax
mov byte [ecx + esi + 0x98], dl
mov edx, dword [ebp + 0xd8]
mov cl, byte [eax + edx + 0xbc]
lea eax, [eax + edx + 0xbc]
inc cl
mov byte [eax], cl
mov eax, dword [ebp + 0xd8]
add eax, edi
mov edx, dword [eax + 0x134]
test edx, edx
jne 0x47c393
mov ecx, dword [eax + 0x13c]
test cl, 1
je 0x47c37b
and ecx, 0xfffffffe
jmp 0x47c38d
test edx, edx
jne 0x47c393
mov ecx, dword [eax + 0x13c]
test cl, 2
je 0x47c393
and ecx, 0xfffffffd
mov dword [eax + 0x13c], ecx
mov ecx, dword [ebp + 0xd8]
mov eax, dword [edi + ecx + 0x13c]
lea edx, [edi + ecx]
test ah, 0x10
je 0x47c432
mov eax, dword [edx + 0x78]
xor ecx, ecx
cmp byte [eax], cl
jle 0x47c3f8
lea esi, [esp + 0x310]
mov dword [esp + 0x20], esi
mov eax, dword [eax + 4]
mov esi, dword [edx + 0x6c]
movsx eax, word [eax + ecx*2]
inc ecx
lea eax, [eax + eax*2]
lea eax, [esi + eax*4]
mov esi, dword [esp + 0x20]
mov edi, dword [eax]
mov dword [esi], edi
mov edi, dword [eax + 4]
mov dword [esi + 4], edi
mov eax, dword [eax + 8]
mov dword [esi + 8], eax
mov eax, esi
add eax, 0xc
mov dword [esp + 0x20], eax
mov eax, dword [edx + 0x78]
movsx esi, byte [eax]
cmp ecx, esi
jl 0x47c3c0
mov ecx, dword [edx + 0x78]
lea eax, [esp + 0x310]
movsx edx, byte [ecx]
push edx
lea ecx, [esp + 0x60]
push eax
push ecx
call fcn.004cc4d0
fsqrt
mov edx, dword [ebp + 0xd8]
mov edi, dword [esp + 0x1c]
add esp, 0xc
fmul qword [0x51f258]
fstp dword [edi + edx + 0x68]
mov eax, dword [ebp + 4]
or al, 8
mov dword [ebp + 4], eax
mov eax, dword [ebp + 0xd8]
lea edx, [edi + eax]
mov eax, dword [edi + eax + 0x13c]
test eax, 0xa00000
je 0x47c4d1
mov eax, dword [edx + 0x78]
xor ecx, ecx
cmp byte [eax], cl
jle 0x47c499
lea esi, [esp + 0x1a8]
mov dword [esp + 0x20], esi
mov eax, dword [eax + 4]
mov esi, dword [edx + 0x6c]
movsx eax, word [eax + ecx*2]
inc ecx
lea eax, [eax + eax*2]
lea eax, [esi + eax*4]
mov esi, dword [esp + 0x20]
mov edi, dword [eax]
mov dword [esi], edi
mov edi, dword [eax + 4]
mov dword [esi + 4], edi
mov eax, dword [eax + 8]
mov dword [esi + 8], eax
mov eax, esi
add eax, 0xc
mov dword [esp + 0x20], eax
mov eax, dword [edx + 0x78]
movsx esi, byte [eax]
cmp ecx, esi
jl 0x47c461
mov edx, dword [edx + 0x160]
lea ecx, [esp + 0x1c0]
push ecx
lea eax, [esp + 0x1b8]
lea ecx, [esp + 0x1ac]
push eax
add edx, 0x20
push ecx
push edx
call fcn.004cb390
mov eax, dword [ebp + 4]
mov edi, dword [esp + 0x20]
add esp, 0x10
or al, 8
fstp st(0)
mov dword [ebp + 4], eax
mov eax, dword [ebp + 0xd8]
add eax, edi
mov ecx, dword [eax + 0x14c]
mov edx, dword [eax + 0x148]
mov eax, dword [esp + 0x2c]
sub ecx, edx
xor edx, edx
mov dword [esp + 0x20], ecx
test eax, eax
je 0x47c53f
cmp edx, ecx
jge 0x47c53f
mov ecx, dword [ebx + 0x148]
mov eax, dword [ebx + 0x138]
xor esi, esi
add ecx, edx
cmp eax, 1
jle 0x47c534
dec eax
test eax, eax
jl 0x47c534
test esi, esi
jne 0x47c534
mov edi, dword [ebx + 0x130]
cmp ecx, dword [edi + eax*4]
jl 0x47c531
mov esi, dword [ebx + 0x124]
mov word [esi + edx*2], ax
mov esi, 1
dec eax
jns 0x47c513
mov ecx, dword [esp + 0x20]
mov edi, dword [esp + 0x10]
inc edx
jmp 0x47c4f5
mov ecx, dword [ebp + 0xd8]
xor esi, esi
mov edx, dword [edi + ecx + 0x140]
lea eax, [edi + ecx]
mov ecx, dword [edi + ecx + 0x144]
mov eax, dword [esp + 0x2c]
sub ecx, edx
test eax, eax
mov dword [esp + 0x20], ecx
je 0x47c5b0
cmp esi, ecx
jge 0x47c5b0
mov eax, dword [ebx + 0x134]
cmp eax, 1
jle 0x47c5ad
mov ecx, dword [ebx + 0x140]
xor edx, edx
add ecx, esi
dec eax
test eax, eax
jl 0x47c5a5
test edx, edx
jne 0x47c5a5
mov edi, dword [ebx + 0x12c]
cmp ecx, dword [edi + eax*4]
jl 0x47c5a2
mov edx, dword [ebx + 0x128]
mov word [edx + esi*2], ax
mov edx, 1
dec eax
jns 0x47c584
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x20]
inc esi
jmp 0x47c566
mov eax, dword [esp + 0x18]
mov ecx, dword [ebp + 0x38]
inc eax
add edi, 0x164
cmp eax, ecx
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], edi
jl 0x47c1da
mov ebx, dword [ebp + 4]
push ebp
and ebx, 0xffffffef
mov dword [ebp + 4], ebx
call fcn.0047ab90
push ebp
call fcn.00479ad0
mov eax, dword [ebp + 0x38]
add esp, 8
cmp eax, 0x1e
mov byte [ebp + 8], 1
jle 0x47c61f
sub ebp, 0xecc6b8
mov eax, 0x76b981db
imul ebp
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
push edx
call fcn.0047a0a0
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc38
ret
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0xc38
ret