Function at 0x40c660
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
push ebx
mov ebx, ecx
push esi
push 0x7f
push str.Arial
lea eax, [ebx + 0x38]
mov dword [ebp - 8], ebx
push eax
call fcn.00454a50
mov dword [ebx + 0xb8], 0xe
add esp, 0xc
mov eax, dword [sym.imp.core3d.dll_class_oZone3D_nsp::o3Renderer__oZone3D_nsp::o3Renderer::m_pInstance]
mov ecx, dword [eax]
lea eax, [ebx + 0x34]
push eax
mov edx, dword [ecx]
call dword [edx + 0x2b8]
push str.osd_mat
call dword [sym.imp.core3d.dll_public:_static_class_oZone3D_nsp::o3MaterialMgr____cdecl_oZone3D_nsp::o3MaterialMgr::getInstance_void_]
mov ecx, eax
call dword [sym.imp.core3d.dll_public:_class_oZone3D_nsp::o3Material____thiscall_oZone3D_nsp::o3MaterialMgr::createMaterial_char__]
mov esi, eax
mov dword [ebp - 4], esi
test esi, esi
je 0x40c722
mov ebx, dword [sym.imp.core3d.dll_public:_class_oZone3D_nsp::o3RendererCtx____thiscall_oZone3D_nsp::o3Material::getRendererCtx_void_]
mov ecx, esi
push 0
push 2
call ebx
mov ecx, eax
call dword [sym.imp.core3d.dll_public:_void___thiscall_oZone3D_nsp::o3RendererCtx::setRenderingState_enum_O3_RENDERER_STATE__enum_O3_BOOLEAN_]
push 2
push 2
mov ecx, esi
call ebx
mov esi, dword [sym.imp.core3d.dll_public:_void___thiscall_oZone3D_nsp::o3RendererCtx::setPolygonMode_enum_O3_FACE_TYPE__enum_O3_POLYGON_MODE_]
mov ecx, eax
call esi
mov ecx, dword [ebp - 4]
push 2
push 0
call ebx
mov ecx, eax
call esi
mov ecx, dword [ebp - 4]
push 1
push 0x15
call ebx
mov ecx, eax
call dword [sym.imp.core3d.dll_public:_void___thiscall_oZone3D_nsp::o3RendererCtx::setRenderingState_enum_O3_RENDERER_STATE__enum_O3_BOOLEAN_]
mov ecx, dword [ebp - 4]
push 9
push 8
call ebx
mov esi, dword [sym.imp.core3d.dll_public:_void___thiscall_oZone3D_nsp::o3RendererCtx::setBlendingFactors_enum_O3_BLENDING_FACTOR__enum_O3_BLENDING_FACTOR_]
mov ecx, eax
call esi
mov ecx, dword [ebp - 4]
push 5
push 2
call ebx
mov ecx, eax
call esi
mov ebx, dword [ebp - 8]
push str.OSD_Hud
call dword [sym.imp.core3d.dll_public:_static_class_oZone3D_nsp::oZone3D____cdecl_oZone3D_nsp::oZone3D::getInstance_void_]
mov ecx, eax
call dword [sym.imp.core3d.dll_public:_class_oZone3D_nsp::o3Hud____thiscall_oZone3D_nsp::oZone3D::createHud_char__]
mov ecx, dword [ebx + 0x30]
mov dword [ebx + 0x1a18], eax
push eax
mov edx, dword [ecx]
call dword [edx + 0x88]
mov ecx, dword [ebx + 0x1a18]
push 0
push 5
mov eax, dword [ecx]
call dword [eax + 0x10]
mov ecx, dword [ebx + 0x1a18]
mov esi, dword [sym.imp.core3d.dll_public:_class_oZone3D_nsp::o3Shader____thiscall_oZone3D_nsp::o3Object::getShader_void_]
call esi
mov ecx, eax
call dword [sym.imp.core3d.dll_public:_void___thiscall_oZone3D_nsp::o3Shader::clearMaterialList_void_]
push dword [ebp - 4]
mov ecx, dword [ebx + 0x1a18]
call esi
mov ecx, eax
call dword [sym.imp.core3d.dll_public:_int___thiscall_oZone3D_nsp::o3Shader::addMaterial_class_oZone3D_nsp::o3Material__]
call fcn.004294b0
mov ecx, eax
call fcn.00429a20
imul esi, eax, 0x64
sub esp, 8
mov eax, 0xaaaaaaab
mov ecx, dword [ebx + 0x1a18]
add esi, 0xfa
mul esi
shr edx, 1
movd xmm0, edx
cvtdq2pd xmm0, xmm0
shr edx, 0x1f
addsd xmm0, qword [edx*8 + 0x476bc0]
cvtpd2ps xmm0, xmm0
movss dword [esp + 4], xmm0
mov dword [esp], 0x44200000
call dword [sym.imp.core3d.dll_public:_void___thiscall_oZone3D_nsp::o3Quad::setSize_float__float_]
mov eax, dword [ebx + 0x24]
sub esp, 0xc
cdq
sub eax, edx
mov ecx, eax
mov eax, 0xaaaaaaab
mul esi
mov eax, dword [ebx + 0x20]
sar ecx, 1
shr edx, 2
sub ecx, edx
mov dword [esp + 8], 0
sub ecx, 0xa
cdq
sub eax, edx
sar eax, 1
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x476bc0]
mov ecx, 0x145
sub ecx, eax
cvtpd2ps xmm0, xmm0
movss dword [esp + 4], xmm0
movd xmm0, ecx
mov ecx, dword [ebx + 0x1a18]
cvtdq2ps xmm0, xmm0
movss dword [esp], xmm0
call dword [sym.imp.core3d.dll_public:_class_oZone3D_nsp::o3Tripod____thiscall_oZone3D_nsp::o3Object::getTripod_void_]
mov ecx, eax
call dword [sym.imp.core3d.dll_public:_void___thiscall_oZone3D_nsp::o3Tripod::setPosition_float__float__float_]
mov ecx, dword [ebx + 0x1a18]
sub esp, 0x10
mov esi, dword [sym.imp.core3d.dll_public:_void___thiscall_oZone3D_nsp::o3Quad::setVertexColor_int__float__float__float__float_]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x3e99999a
mov dword [esp + 4], 0x3dcccccd
mov dword [esp], 0x3dcccccd
push 0
call esi
mov ecx, dword [ebx + 0x1a18]
sub esp, 0x10
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x3dcccccd
mov dword [esp + 4], 0x3dcccccd
mov dword [esp], 0x3dcccccd
push 1
call esi
mov ecx, dword [ebx + 0x1a18]
sub esp, 0x10
mov dword [esp + 0xc], 0x3f666666
mov dword [esp + 8], 0x3e99999a
mov dword [esp + 4], 0x3dcccccd
mov dword [esp], 0x3dcccccd
push 2
call esi
mov ecx, dword [ebx + 0x1a18]
sub esp, 0x10
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x3e99999a
mov dword [esp + 4], 0x3dcccccd
mov dword [esp], 0x3dcccccd
push 3
call esi
mov ecx, dword [ebx + 0x1a18]
sub esp, 0x10
mov dword [esp + 0xc], 0x3f666666
mov dword [esp + 8], 0x3dcccccd
mov dword [esp + 4], 0x3dcccccd
mov dword [esp], 0x3dcccccd
push 0
call esi
mov ecx, dword [ebx + 0x1a18]
sub esp, 0x10
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x3e4ccccd
mov dword [esp + 4], 0x3dcccccd
mov dword [esp], 0x3dcccccd
push 1
call esi
mov ecx, dword [ebx + 0x1a18]
sub esp, 0x10
mov dword [esp + 0xc], 0x3f666666
mov dword [esp + 8], 0x3dcccccd
mov dword [esp + 4], 0x3dcccccd
mov dword [esp], 0x3dcccccd
push 2
call esi
mov ecx, dword [ebx + 0x1a18]
sub esp, 0x10
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x3e4ccccd
mov dword [esp + 4], 0x3dcccccd
mov dword [esp], 0x3dcccccd
push 3
call esi
pop esi
mov al, 1
pop ebx
mov esp, ebp
pop ebp
ret