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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xd8
mov eax, dword [0x524018]
xor eax, esp
mov dword [esp + 0xd4], eax
push esi
push edi
mov dword [esp + 0x14], edx
mov edi, ecx
mov dword [esp + 8], edi
mov eax, dword [ebp + 0x10]
movaps xmm0, xmmword [0x51b280]
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 0x14]
mov esi, dword [ebp + 8]
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x30], eax
mov ecx, dword [ebp + 0xc]
lea eax, [esp + 0x3c]
push eax
lea eax, [esp + 0x74]
mov dword [esp + 0x10], ecx
push eax
lea eax, [esp + 0x6c]
push eax
add ecx, 0x404
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
movups xmmword [esp + 0x7c], xmm0
call fcn.004038f0
push 0x3c
call fcn.004b2620
add esp, 4
mov dword [esp + 0x28], eax
test eax, eax
je 0x4027af
sub esp, 0x18
lea eax, [ebp + 0x1c]
mov ecx, esp
push eax
call fcn.004036e0
push ecx
push dword [esp + 0x38]
mov ecx, dword [esp + 0x48]
call fcn.004b3980
mov dword [esp + 0x20], eax
jmp 0x4027b7
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x448], 0
jbe 0x402863
mov ecx, dword [esp + 0x14]
cmp ecx, 1
jle 0x402863
cmp esi, ecx
jge 0x402863
nop dword [eax]
mov eax, dword [eax + 0x44c]
mov edx, dword [eax + esi*4]
add edx, 4
sub esp, 0x18
mov eax, esp
mov ecx, edx
mov dword [esp + 0x40], eax
mov dword [eax], 0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
lea eax, [ecx + 1]
mov dword [esp + 0x34], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x402812
sub ecx, dword [esp + 0x34]
push ecx
mov ecx, dword [esp + 0x44]
push edx
call fcn.004037c0
mov ecx, dword [esp + 0x24]
push dword [esp + 0x48]
push dword [esp + 0x40]
mov eax, dword [ecx + 0x44c]
mov ecx, edi
push dword [esp + 0x40]
mov edx, dword [eax + esi*4]
push edx
push esi
mov edx, dword [edx + 0x448]
add edx, esi
call fcn.004026e0
mov eax, dword [esp + 0x38]
inc esi
add esp, 0x2c
cmp esi, dword [esp + 0x14]
jl 0x4027e0
mov dword [ebp + 8], esi
push 0x78
call fcn.004b2620
mov edi, eax
add esp, 4
test edi, edi
je 0x40288f
push 0x78
push 0
push edi
call fcn.004c0d10
add esp, 0xc
mov ecx, edi
call fcn.00402640
mov edi, eax
mov dword [esp + 0x18], eax
jmp 0x402895
xor edi, edi
mov dword [esp + 0x18], edi
mov edx, dword [esp + 0x24]
mov ecx, edx
mov dword [esp + 0x10], edi
lea eax, [ecx + 1]
mov dword [esp + 0x1c], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4028a6
sub ecx, dword [esp + 0x1c]
push ecx
push edx
lea ecx, [edi + 0x40]
call fcn.004037c0
mov eax, dword [esp + 8]
cmp esi, dword [eax + 8]
jae 0x403659
mov eax, dword [eax + 0xc]
xor ecx, ecx
mov edx, 4
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 4]
mov dword [edi + 0x20], eax
lea eax, [eax + eax*2]
mul edx
seto cl
neg ecx
or ecx, eax
call fcn.004b26c0
mov dword [edi + 0x24], eax
mov ecx, dword [edi + 0x20]
lea ecx, [ecx + ecx*2]
shl ecx, 2
push ecx
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0xc]
mov ecx, dword [ecx + esi*4]
push dword [ecx + 0xc]
push eax
call fcn.004c0790
add esp, 0xc
push dword [edi + 0x20]
push str.New_mesh_with__d_vertices
push 0
push 0xdb
push str.C:Users_soniaOneDriveDocumentosGitHubEngine_BonesEngine_Bones_v.1Engine_BonesSourceAssimpManager.cpp
call fcn.004b4b40
mov eax, dword [esp + 0x1c]
add esp, 0x14
mov ecx, dword [eax + 0xc]
mov eax, dword [ecx + esi*4]
cmp dword [eax + 0x7c], 0
je 0x402a01
mov eax, dword [eax + 8]
test eax, eax
je 0x402a01
lea eax, [eax + eax*2]
xor ecx, ecx
mov dword [edi + 0x18], eax
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
call fcn.004b26c0
mov ecx, dword [esp + 8]
xor edx, edx
mov dword [edi + 0x1c], eax
mov dword [esp + 0x14], edx
mov ecx, dword [ecx + 0xc]
mov eax, dword [ecx + esi*4]
cmp dword [eax + 8], edx
jbe 0x4029de
mov dword [esp + 0xc], edx
mov eax, dword [ecx + esi*4]
mov eax, dword [eax + 0x7c]
cmp dword [eax + edx*8], 3
je 0x4029ac
push str.WARNING__geometry_face_with___3_indices_
push 1
push 0xe9
push str.C:Users_soniaOneDriveDocumentosGitHubEngine_BonesEngine_Bones_v.1Engine_BonesSourceAssimpManager.cpp
call fcn.004b4b40
mov edx, dword [esp + 0x24]
add esp, 0x10
jmp 0x4029c5
mov eax, dword [eax + edx*8 + 4]
mov ecx, dword [edi + 0x1c]
add ecx, dword [esp + 0xc]
movq xmm0, qword [eax]
movq qword [ecx], xmm0
mov eax, dword [eax + 8]
mov dword [ecx + 8], eax
mov eax, dword [esp + 8]
inc edx
add dword [esp + 0xc], 0xc
mov dword [esp + 0x14], edx
mov ecx, dword [eax + 0xc]
mov eax, dword [ecx + esi*4]
cmp edx, dword [eax + 8]
jb 0x402981
push dword [edi + 0x18]
push str.With__d_indices
push 0
push 0xf2
push str.C:Users_soniaOneDriveDocumentosGitHubEngine_BonesEngine_Bones_v.1Engine_BonesSourceAssimpManager.cpp
call fcn.004b4b40
mov eax, dword [esp + 0x1c]
add esp, 0x14
mov ecx, dword [eax + 0xc]
mov eax, dword [ecx + esi*4]
cmp dword [eax + 0x10], 0
je 0x402d17
mov eax, dword [eax + 4]
test eax, eax
je 0x402d17
xor ecx, ecx
lea eax, [eax + eax*2]
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
call fcn.004b26c0
mov ecx, dword [esp + 8]
mov dword [edi + 0x2c], eax
mov ecx, dword [ecx + 0xc]
mov edx, dword [ecx + esi*4]
mov ecx, dword [edx + 4]
lea ecx, [ecx + ecx*2]
shl ecx, 2
push ecx
push dword [edx + 0x10]
push eax
call fcn.004c0790
mov eax, dword [esp + 0x14]
xor ecx, ecx
add esp, 0xc
mov edx, 4
mov eax, dword [eax + 0xc]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 8]
lea eax, [eax + eax*2]
mul edx
seto cl
neg ecx
or ecx, eax
call fcn.004b26c0
mov dword [edi + 0x5c], eax
xor ecx, ecx
mov eax, dword [esp + 8]
mov edx, 4
mov eax, dword [eax + 0xc]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 8]
lea eax, [eax + eax*2]
mul edx
seto cl
neg ecx
or ecx, eax
call fcn.004b26c0
mov dword [edi + 0x60], eax
mov eax, dword [esp + 8]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 8]
mov dword [edi + 0x64], eax
cmp dword [edi + 0x18], 0
jbe 0x402d17
mov eax, dword [edi + 0x1c]
mov ecx, dword [edi + 0x60]
mov edx, dword [edi + 0x24]
mov dword [esp + 0x48], eax
sub eax, ecx
mov dword [esp + 0x5c], eax
mov eax, dword [edi + 0x5c]
sub eax, ecx
mov dword [esp + 0x24], edx
mov dword [esp + 0x58], ecx
xor esi, esi
mov dword [esp + 0x2c], eax
mov edi, dword [esp + 0x48]
mov eax, dword [edi + esi*4]
lea ecx, [eax + eax*2]
movss xmm0, dword [edx + ecx*4 + 4]
movss dword [esp + 0x50], xmm0
movss xmm0, dword [edx + ecx*4 + 8]
mov edx, dword [edi + esi*4 + 4]
mov edi, dword [esp + 0x24]
movss dword [esp + 0x28], xmm0
lea eax, [edx + edx*2]
movss xmm1, dword [edi + eax*4]
lea eax, [edx + edx*2]
movss xmm2, dword [edi + eax*4 + 4]
movaps xmm5, xmm1
lea eax, [edx + edx*2]
movss dword [esp + 0x4c], xmm2
mov edx, edi
movss dword [esp + 0x60], xmm1
movaps xmm4, xmm2
subss xmm4, dword [esp + 0x50]
movss xmm3, dword [edx + eax*4 + 8]
mov eax, dword [esp + 0x48]
movaps xmm2, xmm3
subss xmm2, dword [esp + 0x28]
movss dword [esp + 0x54], xmm3
mov eax, dword [eax + esi*4 + 8]
lea eax, [eax + eax*2]
movss xmm7, dword [edx + eax*4 + 4]
movss xmm6, dword [edx + eax*4]
mov eax, dword [esp + 0x58]
movaps xmm3, xmm6
subss xmm3, xmm1
movss dword [esp + 0x34], xmm7
movaps xmm1, xmm7
subss xmm1, dword [esp + 0x4c]
lea edx, [eax + esi*4]
mov eax, dword [esp + 0x5c]
mov eax, dword [edx + eax + 8]
movss dword [esp + 0xc], xmm1
lea eax, [eax + eax*2]
movss xmm0, dword [edi + eax*4 + 8]
mov eax, edi
movaps xmm1, xmm0
movss dword [esp + 0x38], xmm0
subss xmm1, dword [esp + 0x54]
mov edi, dword [esp + 0x18]
subss xmm5, dword [eax + ecx*4]
movaps xmm0, xmm1
mulss xmm0, xmm4
mulss xmm1, xmm5
movss dword [esp + 0x14], xmm0
movss xmm0, dword [esp + 0xc]
movss xmm7, dword [esp + 0x14]
mulss xmm0, xmm2
subss xmm7, xmm0
movaps xmm0, xmm3
mulss xmm0, xmm2
movss xmm2, dword [esp + 0xc]
mulss xmm2, xmm5
subss xmm0, xmm1
mulss xmm3, xmm4
movss xmm1, dword [0x51b0c8]
movss dword [esp + 0x14], xmm7
subss xmm2, xmm3
movss dword [esp + 0x1c], xmm0
movss xmm0, dword [esp + 0x60]
addss xmm0, dword [eax + ecx*4]
mov eax, dword [edi + 0x60]
movss dword [esp + 0xc], xmm2
addss xmm0, xmm6
divss xmm0, xmm1
movss dword [eax + esi*4], xmm0
movss xmm0, dword [esp + 0x4c]
addss xmm0, dword [esp + 0x50]
addss xmm0, dword [esp + 0x34]
divss xmm0, xmm1
movss dword [eax + esi*4 + 4], xmm0
movss xmm0, dword [esp + 0x54]
addss xmm0, dword [esp + 0x28]
addss xmm0, dword [esp + 0x38]
divss xmm0, xmm1
movss dword [edx + 8], xmm0
movaps xmm1, xmm7
movss xmm0, dword [esp + 0x1c]
mulss xmm0, xmm0
mulss xmm1, xmm7
addss xmm1, xmm0
movaps xmm0, xmm2
mulss xmm0, xmm2
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
xorps xmm1, xmm1
ucomisd xmm1, xmm0
ja 0x402c95
sqrtsd xmm0, xmm0
jmp 0x402c9a
call fcn.004e1ce0
movss xmm2, dword [0x51b010]
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
movaps xmm0, xmm2
comiss xmm1, dword [0x51af44]
jbe 0x402cbf
divss xmm0, xmm1
mulss xmm0, dword [esp + 0x14]
mov eax, dword [edi + 0x5c]
movss dword [eax + esi*4], xmm0
jbe 0x402cd8
movaps xmm0, xmm2
divss xmm0, xmm1
mulss xmm0, dword [esp + 0x1c]
jmp 0x402cdb
xorps xmm0, xmm0
movss dword [eax + esi*4 + 4], xmm0
jbe 0x402cf2
movaps xmm0, xmm2
divss xmm0, xmm1
mulss xmm0, dword [esp + 0xc]
jmp 0x402cf5
xorps xmm0, xmm0
mov edx, dword [edi + 0x60]
mov eax, dword [esp + 0x2c]
lea ecx, [edx + esi*4]
mov edx, dword [edi + 0x24]
add esi, 3
movss dword [ecx + eax + 8], xmm0
cmp esi, dword [edi + 0x18]
jb 0x402ae4
mov esi, dword [ebp + 8]
mov eax, dword [esp + 8]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + esi*4]
cmp dword [eax + 0x3c], 0
je 0x402dcf
mov eax, dword [eax + 4]
test eax, eax
je 0x402dcf
mov dword [edi + 0x38], eax
xor ecx, ecx
mov eax, dword [esp + 8]
mov edx, 8
mov eax, dword [eax + 0xc]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 4]
mul edx
seto cl
neg ecx
or ecx, eax
call fcn.004b26c0
mov dword [edi + 0x3c], eax
cmp dword [edi + 0x38], 0
mov dword [esp + 0xc], 0
jbe 0x402dcf
mov edx, dword [esp + 8]
mov dword [esp + 0x14], 0
nop dword [eax + eax]
mov eax, dword [edx + 0xc]
mov edx, dword [esp + 0x14]
mov ecx, dword [edi + 0x3c]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x3c]
mov eax, dword [edx + eax]
mov edx, dword [esp + 0xc]
mov dword [ecx + edx*8], eax
mov edx, dword [esp + 8]
mov ecx, dword [edi + 0x3c]
mov eax, dword [edx + 0xc]
mov edx, dword [esp + 0x14]
add dword [esp + 0x14], 0xc
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x3c]
mov eax, dword [eax + edx + 4]
mov edx, dword [esp + 0xc]
mov dword [ecx + edx*8 + 4], eax
mov eax, edx
mov edx, dword [esp + 8]
inc eax
mov dword [esp + 0xc], eax
cmp eax, dword [edi + 0x38]
jb 0x402d80
mov eax, dword [esp + 0x20]
add eax, 0x14
mov dword [esp + 0x34], eax
cmp edi, eax
je 0x402df3
cmp dword [eax + 0x14], 0x10
mov ecx, eax
jb 0x402de8
mov ecx, dword [eax]
push dword [eax + 0x10]
push ecx
mov ecx, edi
call fcn.004037c0
mov ecx, dword [esp + 0x18]
lea esi, [edi + 0x68]
mov eax, dword [sym.imp.glew32.dll___glewGenBuffers]
add edi, 0x6c
mov dword [esi], 0
push esi
push 1
mov dword [edi], 0
mov dword [ecx + 0x70], 0
mov dword [ecx + 0x74], 0
mov eax, dword [eax]
call eax
mov eax, dword [sym.imp.glew32.dll___glewBindBuffer]
push dword [esi]
push 0x8892
mov eax, dword [eax]
call eax
mov eax, dword [esp + 0x18]
push 0x88e4
push dword [eax + 0x24]
mov eax, dword [eax + 0x20]
lea eax, [eax + eax*2]
shl eax, 2
push eax
mov eax, dword [sym.imp.glew32.dll___glewBufferData]
push 0x8892
mov eax, dword [eax]
call eax
mov eax, dword [sym.imp.glew32.dll___glewGenBuffers]
push edi
push 1
mov eax, dword [eax]
call eax
mov eax, dword [sym.imp.glew32.dll___glewBindBuffer]
push dword [edi]
push 0x8893
mov eax, dword [eax]
call eax
mov edi, dword [esp + 0x18]
push 0x88e4
push dword [edi + 0x1c]
mov eax, dword [edi + 0x18]
shl eax, 2
push eax
mov eax, dword [sym.imp.glew32.dll___glewBufferData]
push 0x8893
mov eax, dword [eax]
call eax
mov eax, dword [sym.imp.glew32.dll___glewGenBuffers]
lea esi, [edi + 0x70]
push esi
push 1
mov eax, dword [eax]
call eax
mov eax, dword [sym.imp.glew32.dll___glewBindBuffer]
push dword [esi]
push 0x8893
mov eax, dword [eax]
call eax
mov eax, dword [edi + 0x20]
push 0x88e4
push dword [edi + 0x2c]
lea eax, [eax + eax*2]
shl eax, 2
push eax
mov eax, dword [sym.imp.glew32.dll___glewBufferData]
push 0x8893
mov eax, dword [eax]
call eax
mov eax, dword [sym.imp.glew32.dll___glewGenBuffers]
lea esi, [edi + 0x74]
push esi
push 1
mov eax, dword [eax]
call eax
mov eax, dword [sym.imp.glew32.dll___glewBindBuffer]
push dword [esi]
push 0x8892
mov eax, dword [eax]
call eax
push 0x88e4
push dword [edi + 0x3c]
mov eax, dword [edi + 0x38]
shl eax, 3
push eax
mov eax, dword [sym.imp.glew32.dll___glewBufferData]
push 0x8892
mov eax, dword [eax]
call eax
mov eax, dword [0x52a2a4]
cmp eax, dword [0x52a2a8]
je 0x402f27
mov dword [eax], edi
add dword [0x52a2a4], 4
jmp 0x402f32
lea ecx, [esp + 0x10]
push ecx
push eax
call fcn.00403de0
mov edx, dword [0x529070]
mov ecx, dword [0x52e468]
mov eax, dword [0x529078]
push 0xbc
push 1
mov dword [esp + 0x18], edx
push edx
mov dword [esp + 0x38], ecx
mov edx, ecx
mov ecx, eax
mov dword [esp + 0x44], eax
call fcn.004b2790
add esp, 0xc
test eax, eax
jne 0x402fa5
push 0
call fcn.004bed28
add esp, 4
mov esi, eax
push esi
call fcn.004bed28
add esp, 4
test esi, esi
je 0x40369d
call esi
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x38]
push 0xbc
push 1
push dword [esp + 0x18]
call fcn.004b2790
add esp, 0xc
test eax, eax
je 0x402f67
push 0
mov ecx, eax
call fcn.00405c60
push 0x1c
call fcn.004b2620
mov esi, eax
add esp, 4
test esi, esi
je 0x403018
mov eax, dword [esp + 0x20]
push 0x78
mov byte [esi + 4], 1
mov dword [esi + 8], 4
mov dword [esi + 0xc], eax
mov dword [esi], vtable.ComponentMesh.0
call fcn.004b2620
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
je 0x40300a
push 0x78
push 0
push eax
call fcn.004c0d10
mov ecx, dword [esp + 0x1c]
add esp, 0xc
call fcn.00402640
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], 0x4f4d18
jmp 0x40301a
xor eax, eax
mov dword [esi + 0x14], 0x4f4d18
mov dword [esi + 0x10], eax
jmp 0x40301a
xor esi, esi
mov ecx, dword [esp + 0x20]
add ecx, 8
mov dword [esi + 8], 1
mov dword [esp + 0x10], esi
mov eax, dword [ecx + 4]
cmp eax, dword [ecx + 8]
je 0x40303c
mov dword [eax], esi
add dword [ecx + 4], 4
jmp 0x403047
lea edx, [esp + 0x10]
push edx
push eax
call fcn.004018c0
push 0
push 0x52923c
push 0x529258
push 0
push esi
call fcn.004dffd2
xor ecx, ecx
xor edx, edx
mov dword [esp + 0x2c], ecx
add esp, 0x14
mov dword [esp + 8], edx
mov dword [eax + 0x10], edi
mov eax, dword [0x52a180]
mov ecx, dword [eax + 0x14]
mov eax, dword [ecx + 0x10]
sub eax, dword [ecx + 0xc]
sar eax, 2
test eax, eax
je 0x403442
mov esi, dword [esp + 0x34]
nop word [eax + eax]
test edx, edx
jle 0x40338f
lea ecx, [esp + 0x80]
call fcn.00401aa0
mov edx, dword [edi + 0x10]
mov eax, 0x7fffffff
sub eax, edx
cmp eax, dword [esp + 0x90]
jb 0x4036b5
cmp dword [edi + 0x14], 0x10
mov ecx, edi
jb 0x4030c5
mov ecx, dword [edi]
push dword [esp + 0x90]
cmp dword [esp + 0x98], 0x10
lea eax, [esp + 0x84]
cmovae eax, dword [esp + 0x84]
push eax
push edx
push ecx
push ecx
push dword [esp + 0x24]
lea ecx, [esp + 0xb8]
call fcn.00403fc0
lea eax, [esp + 0xa0]
cmp esi, eax
je 0x40315e
mov ecx, dword [esi + 0x14]
cmp ecx, 0x10
jb 0x403135
mov eax, dword [esi]
inc ecx
cmp ecx, 0x1000
jb 0x40312b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4036d7
mov eax, edx
push ecx
push eax
call fcn.004bf0a3
add esp, 8
movups xmm0, xmmword [esp + 0xa0]
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0xf
movups xmmword [esi], xmm0
movq xmm0, qword [esp + 0xb0]
movq qword [esi + 0x10], xmm0
jmp 0x40319a
mov edx, dword [esp + 0xb4]
cmp edx, 0x10
jb 0x40319a
mov ecx, dword [esp + 0xa0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x403190
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4036d7
push edx
push ecx
call fcn.004bf0a3
add esp, 8
cmp dword [esi + 0x14], 0x10
mov ecx, esi
jb 0x4031a4
mov ecx, dword [esi]
mov eax, dword [0x52a180]
mov eax, dword [eax + 0x14]
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 0x10]
sub eax, edx
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x18]
sar eax, 2
cmp eax, edx
jbe 0x4036ba
mov eax, dword [esp + 0x10]
mov eax, dword [eax + edx*4]
add eax, 0x14
cmp dword [eax + 0x14], 0x10
jb 0x4031e0
mov eax, dword [eax]
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x403200
test dl, dl
je 0x4031fc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x403200
add eax, 2
add ecx, 2
test dl, dl
jne 0x4031e0
xor eax, eax
jmp 0x403205
sbb eax, eax
or eax, 1
test eax, eax
jne 0x403353
mov edx, dword [esp + 8]
lea ecx, [esp + 0xc4]
call fcn.00401aa0
mov edx, dword [edi + 0x10]
mov eax, 0x7fffffff
inc dword [esp + 8]
sub eax, edx
cmp eax, dword [esp + 0x90]
jb 0x4036b5
cmp dword [edi + 0x14], 0x10
mov ecx, edi
jb 0x403242
mov ecx, dword [edi]
push dword [esp + 0x90]
cmp dword [esp + 0x98], 0x10
lea eax, [esp + 0x84]
cmovae eax, dword [esp + 0x84]
push eax
push edx
push ecx
push ecx
push dword [esp + 0x24]
lea ecx, [esp + 0xb8]
call fcn.00403fc0
lea eax, [esp + 0xa0]
cmp esi, eax
je 0x4032db
mov ecx, dword [esi + 0x14]
cmp ecx, 0x10
jb 0x4032b2
mov eax, dword [esi]
inc ecx
cmp ecx, 0x1000
jb 0x4032a8
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4036d7
mov eax, edx
push ecx
push eax
call fcn.004bf0a3
add esp, 8
movups xmm0, xmmword [esp + 0xa0]
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0xf
movups xmmword [esi], xmm0
movq xmm0, qword [esp + 0xb0]
movq qword [esi + 0x10], xmm0
jmp 0x403317
mov edx, dword [esp + 0xb4]
cmp edx, 0x10
jb 0x403317
mov ecx, dword [esp + 0xa0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40330d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4036d7
push edx
push ecx
call fcn.004bf0a3
add esp, 8
mov edx, dword [esp + 0xd8]
cmp edx, 0x10
jb 0x403353
mov ecx, dword [esp + 0xc4]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x403349
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4036d7
push edx
push ecx
call fcn.004bf0a3
add esp, 8
mov edx, dword [esp + 0x94]
cmp edx, 0x10
jb 0x40338f
mov ecx, dword [esp + 0x80]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x403385
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4036d7
push edx
push ecx
call fcn.004bf0a3
add esp, 8
cmp dword [esi + 0x14], 0x10
mov ecx, esi
jb 0x403399
mov ecx, dword [esi]
mov eax, dword [0x52a180]
mov eax, dword [eax + 0x14]
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 0x10]
sub eax, edx
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x18]
sar eax, 2
cmp eax, edx
jbe 0x4036ba
mov eax, dword [esp + 0x10]
mov eax, dword [eax + edx*4]
add eax, 0x14
cmp dword [eax + 0x14], 0x10
jb 0x4033d0
mov eax, dword [eax]
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4033f0
test dl, dl
je 0x4033ec
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4033f0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4033d0
xor eax, eax
jmp 0x4033f5
sbb eax, eax
or eax, 1
mov edx, dword [esp + 8]
test eax, eax
jne 0x403423
test edx, edx
jne 0x403423
cmp esi, edi
je 0x40341a
cmp dword [edi + 0x14], 0x10
mov eax, edi
jb 0x40340f
mov eax, dword [edi]
push dword [edi + 0x10]
mov ecx, esi
push eax
call fcn.004037c0
mov edx, 1
mov dword [esp + 8], edx
mov eax, dword [0x52a180]
inc dword [esp + 0x18]
mov ecx, dword [eax + 0x14]
mov eax, dword [ecx + 0x10]
sub eax, dword [ecx + 0xc]
sar eax, 2
cmp dword [esp + 0x18], eax
jb 0x403090
movss xmm0, dword [esp + 0x74]
sub esp, 0x10
mov ecx, dword [esp + 0x7c]
mov eax, esp
movss dword [esp + 0x90], xmm0
sub esp, 0xc
movss xmm0, dword [esp + 0x94]
movss dword [esp + 0xa0], xmm0
movss xmm0, dword [esp + 0x98]
movss dword [esp + 0xa4], xmm0
movss xmm0, dword [esp + 0x8c]
movss dword [esp + 0xa8], xmm0
movups xmm0, xmmword [esp + 0x9c]
movups xmmword [eax], xmm0
mov eax, esp
sub esp, 0xc
movq xmm0, qword [esp + 0x8c]
movq qword [eax], xmm0
movq xmm0, qword [esp + 0x64]
mov dword [eax + 8], ecx
mov eax, esp
mov ecx, dword [esp + 0x6c]
movq qword [eax], xmm0
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x48]
push eax
mov ecx, dword [eax + 4]
call fcn.00406010
cmp dword [esp + 0x30], 0
je 0x403659
mov ecx, dword [0x529070]
mov eax, dword [0x52e468]
mov edx, eax
mov edi, dword [0x529078]
push 0x4010
push 1
mov dword [esp + 0x18], ecx
push ecx
mov ecx, edi
mov dword [esp + 0x38], eax
call fcn.004b2790
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x40354f
push 0
call fcn.004bed28
add esp, 4
mov esi, eax
push esi
call fcn.004bed28
add esp, 4
test esi, esi
je 0x4036bf
call esi
mov edx, dword [esp + 0x2c]
mov ecx, edi
push 0x4010
push 1
push dword [esp + 0x18]
call fcn.004b2790
mov esi, eax
add esp, 0xc
test esi, esi
je 0x403511
push 0x18
mov dword [esi], 0
mov dword [esi + 4], 0
mov dword [esi + 8], 0
mov dword [esi + 0xc], 0
call fcn.004b2620
mov edi, eax
add esp, 4
test edi, edi
je 0x4035f0
mov eax, dword [esp + 0x20]
push 0x34
mov byte [edi + 4], 1
mov dword [edi + 8], 4
mov dword [edi + 0xc], eax
mov dword [edi], vtable.ComponentMaterial.0
call fcn.004b2620
add esp, 4
mov dword [esp + 0x1c], eax
test eax, eax
je 0x4035e6
push 0x34
push 0
push eax
call fcn.004c0d10
mov ecx, dword [esp + 0x28]
add esp, 0xc
mov byte [ecx + 0x18], 1
add ecx, 0x1c
push 0
push 0x4f4d18
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
call fcn.004037c0
mov eax, dword [esp + 0x1c]
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], 0
jmp 0x4035f2
xor eax, eax
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], eax
jmp 0x4035f2
xor edi, edi
mov ecx, dword [esp + 0x20]
add ecx, 8
mov dword [edi + 8], 2
mov dword [esp + 0x10], edi
mov eax, dword [ecx + 4]
cmp eax, dword [ecx + 8]
je 0x403614
mov dword [eax], edi
add dword [ecx + 4], 4
jmp 0x40361f
lea edx, [esp + 0x10]
push edx
push eax
call fcn.004018c0
push 0
push 0x529278
push 0x529258
push 0
push edi
call fcn.004dffd2
add esp, 0x14
mov ecx, esi
mov edi, eax
push dword [esp + 0x30]
call fcn.00401b50
mov dword [edi + 0x10], eax
test eax, eax
je 0x403652
mov eax, dword [eax + 0x10]
mov dword [edi + 0x14], eax
jmp 0x403659
mov dword [edi + 0x14], 0
mov edx, dword [ebp + 0x30]
cmp edx, 0x10
jb 0x403689
mov ecx, dword [ebp + 0x1c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40367f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4036d7
push edx
push ecx
call fcn.004bf0a3
add esp, 8
mov ecx, dword [esp + 0xdc]
pop edi
pop esi
xor ecx, esp
call fcn.004bee44
mov esp, ebp
pop ebp
ret
lea ecx, [esp + 0x3c]
call fcn.004b1e10
push 0x5221f0
lea eax, [esp + 0x40]
push eax
call fcn.004c0367
call fcn.00401a90
call fcn.004037b0
lea ecx, [esp + 0x3c]
call fcn.004b1e10
push 0x5221f0
lea eax, [esp + 0x40]
push eax
call fcn.004c0367
call fcn.004c27ef
int3