Function at 0x40bc70
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
push ebx
push esi
push edi
mov edi, ecx
push str.FurBkgImg
mov dword [ebp - 4], edi
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::o3BkgImage____thiscall_oZone3D_nsp::oZone3D::createBkgImage_char__]
mov ecx, dword [edi + 0x30]
mov dword [edi + 0x1a00], eax
push eax
mov edx, dword [ecx]
call dword [edx + 0x88]
movd xmm0, dword [edi + 0x24]
sub esp, 8
mov ecx, dword [edi + 0x1a00]
cvtdq2ps xmm0, xmm0
movss dword [esp + 4], xmm0
movd xmm0, dword [edi + 0x20]
cvtdq2ps xmm0, xmm0
movss dword [esp], xmm0
call dword [sym.imp.core3d.dll_public:_void___thiscall_oZone3D_nsp::o3Quad::setSize_float__float_]
mov ecx, dword [edi + 0x1a00]
push 1
push 5
mov eax, dword [ecx]
call dword [eax + 0x10]
push str.bkg_img_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 ecx, dword [edi + 0x1a00]
mov ebx, eax
mov esi, dword [sym.imp.core3d.dll_public:_class_oZone3D_nsp::o3Shader____thiscall_oZone3D_nsp::o3Object::getShader_void_]
mov dword [ebp - 8], ebx
call esi
mov ecx, eax
call dword [sym.imp.core3d.dll_public:_void___thiscall_oZone3D_nsp::o3Shader::clearMaterialList_void_]
mov ecx, dword [edi + 0x1a00]
push ebx
call esi
mov ecx, eax
call dword [sym.imp.core3d.dll_public:_int___thiscall_oZone3D_nsp::o3Shader::addMaterial_class_oZone3D_nsp::o3Material__]
mov ecx, dword [edi + 0x1a00]
push 0
sub esp, 0x10
mov eax, dword [ecx]
mov dword [esp + 0xc], 0x3f333333
mov dword [esp + 8], 0x3f333333
mov dword [esp + 4], 0x3f333333
mov dword [esp], 0x3f333333
call dword [eax + 0xc4]
mov ecx, dword [edi + 0x1a00]
mov esi, dword [sym.imp.core3d.dll_public:_void___thiscall_oZone3D_nsp::o3Quad::setVertexTexCoordTiling_int__float__float__int_]
push 0
sub esp, 8
mov dword [esp + 4], 0x3f800000
mov dword [esp], 0x3f99999a
push 0
call esi
mov ecx, dword [edi + 0x1a00]
push 0
sub esp, 8
mov dword [esp + 4], 0x3f800000
mov dword [esp], 0x3f800000
push 1
call esi
mov ecx, dword [edi + 0x1a00]
push 0
sub esp, 8
mov dword [esp + 4], 0x3f800000
mov dword [esp], 0x3f800000
push 2
call esi
mov ecx, dword [edi + 0x1a00]
push 0
sub esp, 8
mov dword [esp + 4], 0x3f800000
mov dword [esp], 0x3f800000
push 3
call esi
xor edi, edi
cmp byte [0x5eeae0], 0
je 0x40bde7
push 0x40b7
push 0x579408
push str.fur_bkg_texture
jmp 0x40bdff
cmp byte [0x5eeae1], 0
je 0x40be14
push 0x2864d
push 0x57d4c0
push 0x4775a0
call dword [sym.imp.core3d.dll_public:_static_class_oZone3D_nsp::o3TextureMgr____cdecl_oZone3D_nsp::o3TextureMgr::getInstance_void_]
mov ecx, eax
call dword [sym.imp.core3d.dll_public:_class_oZone3D_nsp::o3Texture____thiscall_oZone3D_nsp::o3TextureMgr::createTexture2D_char___void___int_]
mov edi, eax
jmp 0x40bf4a
cmp byte [0x5ee834], 0
je 0x40be52
mov eax, dword [0x5eeb18]
cmp eax, 0x2bf5
jne 0x40be3a
push 0x1d000
push 0x5a5b10
push 0x4775b0
jmp 0x40be61
cmp eax, 0x2c39
jne 0x40be71
push 0x20000
push 0x5c2b10
push 0x4775c0
jmp 0x40be61
push 0x2864d
push 0x57d4c0
push str.BackgroundTex
call dword [sym.imp.core3d.dll_public:_static_class_oZone3D_nsp::o3TextureMgr____cdecl_oZone3D_nsp::o3TextureMgr::getInstance_void_]
mov ecx, eax
call dword [sym.imp.core3d.dll_public:_class_oZone3D_nsp::o3Texture____thiscall_oZone3D_nsp::o3TextureMgr::createTexture2D_char___void___int_]
mov edi, eax
cmp byte [0x5ee834], 0
je 0x40bf4a
push str.BkgImgShader
call dword [sym.imp.core3d.dll_public:_static_class_oZone3D_nsp::o3GPUShaderMgr____cdecl_oZone3D_nsp::o3GPUShaderMgr::getInstance_void_]
mov ecx, eax
call dword [sym.imp.core3d.dll_public:_class_oZone3D_nsp::o3GpuShader____thiscall_oZone3D_nsp::o3GPUShaderMgr::createGPUShader_char__]
mov esi, eax
test esi, esi
je 0x40bf2d
cmp byte [0x647442], 0
mov ebx, str.uniform_vec2_resolution__nuniform_float_time__nuniform_sampler2D_tex0__nvoid_main_void__n_nvec2_p___1.0__2.0__gl_FragCoord.xy___resolution.xy__nvec2_uv__nfloat_r__sqrt_dot_p_p____nfloat_a__atan_p.y_p.x___0.5sin_0.5r_0.5time___nfloat_s__0.5__0.5cos_6.0a_sin_2.0a___ns__smoothstep_0.0_1.0_s___ns__smoothstep_0.0_1.0_s___ns__smoothstep_0.0_1.0_s___ns__smoothstep_0.0_1.0_s___nuv.x___time0.4___1.0___r__.15s___nuv.y__2.0a_3.1416__nfloat_w___0.5__0.5s_r__0.04__nvec3_col__texture2D_tex0_uv_.xyz__nfloat_ao__0.5__0.5cos_6.0a_sin_2.0a___nao__smoothstep_0.0_0.4_ao__smoothstep_0.4_0.7_ao___nao__1.0_0.5aor__ngl_FragColor__vec4_colwao_1.0_______n
jne 0x40beba
cmp dword [0x5eeb14], 1
mov ecx, str.uniform_float_time__nuniform_vec2_resolution__nfloat_mP_float_x_float_y_float_fx_float_fy_float_sx_float_sy_float_t__n___float_xxxsin_tfx_sx__n___float_yyycos_tfy_sy__n___return_1.0_sqrt_xxxxyyyy___nvec3_gu_vec4_a_vec4_b_float_f__return_mix_a.xyz_b.xyz__f_a.w__1.0__b.w_a.w______nvec3_gr4d_float_f__n_tvec4_c01vec4_0.0_0.0_0.0_0.00___n_tvec4_c02vec4_0.5_0.0_0.0_0.50___n_tvec4_c03vec4_1.0_0.0_0.0_0.55___n_tvec4_c04vec4_1.0_1.0_0.0_0.80___n_tvec4_c05vec4_1.0_1.0_1.0_1.00___n_treturn__f_c02.w__gu_c01_c02_f_:_n_t_f_c03.w__gu_c02_c03_f_:_n_t_f_c04.w__gu_c03_c04_f_:_n_tgu_c04_c05_f___nvoid_main__void____n___vec2_p___1.0__2.0__gl_TexCoord_0_.xy__n___pp2.0__n___float_xp.x__n___float_yp.y__n___float_a__.0__n___int_i__n___float_fxy__0.1__n___float_s__0.1__nfloat_L__length_p.x10.1cos_time___p.y10.1sin_time__0.1__n___for__i0__i_100__i___n____aamP_x_y_fxyfxy_fxy_s_s_time___1.1_L__n____fxy__0.001__n____s__0.021__cos_p.x10.1820_cos_p.x10.1___1.1_L__n____s__0.05__sin_p.y_10.02.0cos_time___cos_p.y10.2___0.4_L__n____n___vec3_a1gr4d_a_600.0___n___gl_FragColor__vec4_a1.x_a1.y_a1.z_1.0___n
cmovne ecx, ebx
mov ebx, ecx
mov ecx, str.version_120_nvoid_main___n_t_n__gl_TexCoord_0___gl_MultiTexCoord0__n__gl_Position__ftransform____t_t_n
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40bec2
sub ecx, edx
lea eax, [ecx + 1]
mov ecx, esi
push eax
push str.version_120_nvoid_main___n_t_n__gl_TexCoord_0___gl_MultiTexCoord0__n__gl_Position__ftransform____t_t_n
call dword [sym.imp.core3d.dll_public:_enum_O3_RETURN_CODE___thiscall_oZone3D_nsp::o3GpuShader::loadVertexShaderFromMemory_char___int_]
test eax, eax
je 0x40bfa6
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0xec]
push eax
push 0x4774fc
call fcn.0041bb90
mov eax, dword [esi]
add esp, 8
mov ecx, esi
call dword [eax + 0xec]
push eax
push 0x477514
push 2
call dword [sym.imp.core3d.dll_public:_static_class_oZone3D_nsp::o3TraceMgr____cdecl_oZone3D_nsp::o3TraceMgr::getInstance_void_]
push eax
call dword [sym.imp.core3d.dll_public:_void___cdecl_oZone3D_nsp::o3TraceMgr::logTrace_enum_O3_TRACE_LEVEL__char__]
mov eax, dword [sym.imp.core3d.dll_public:_static_class_oZone3D_nsp::o3GPUShaderMgr____cdecl_oZone3D_nsp::o3GPUShaderMgr::getInstance_void_]
add esp, 0x10
call eax
push esi
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x24]
mov ebx, dword [ebp - 4]
xor esi, esi
mov dword [ebx + 0x1a04], esi
mov ebx, dword [ebp - 8]
test esi, esi
je 0x40bf4a
push 0
push esi
mov ecx, ebx
call dword [sym.imp.core3d.dll_public:_void___thiscall_oZone3D_nsp::o3Material::setGpuShader_class_oZone3D_nsp::o3GpuShader___enum_O3_GPU_SHADER_TYPE_]
test edi, edi
je 0x40bf9d
push 2
mov ecx, edi
call dword [sym.imp.core3d.dll_public:_void___thiscall_oZone3D_nsp::o3Texture::changePixelFormat_enum_O3_PIXEL_FORMAT_]
mov ecx, edi
call dword [sym.imp.core3d.dll_public:_class_oZone3D_nsp::o3TextureData____thiscall_oZone3D_nsp::o3Texture::getTexData_void_]
mov esi, eax
push 0
push 8
mov ecx, esi
call dword [sym.imp.core3d.dll_public:_void___thiscall_oZone3D_nsp::o3TextureData::setState_enum_O3_TEX_DATA_STATE__enum_O3_BOOLEAN_]
push ecx
mov ecx, esi
mov dword [esp], 0x41800000
call dword [sym.imp.core3d.dll_public:_void___thiscall_oZone3D_nsp::o3TextureData::setAnisotropy_float_]
push 1
push 8
mov ecx, ebx
call dword [sym.imp.core3d.dll_public:_class_oZone3D_nsp::o3RendererCtx____thiscall_oZone3D_nsp::o3Material::getRendererCtx_void_]
mov ecx, eax
call dword [sym.imp.core3d.dll_public:_void___thiscall_oZone3D_nsp::o3RendererCtx::setRenderingState_enum_O3_RENDERER_STATE__enum_O3_BOOLEAN_]
push 0xffffffffffffffff
push edi
mov ecx, ebx
call dword [sym.imp.core3d.dll_public:_int___thiscall_oZone3D_nsp::o3Material::addTexture_class_oZone3D_nsp::o3Texture___int_]
pop edi
pop esi
mov al, 1
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, ebx
lea edx, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40bfb0
sub ecx, edx
lea eax, [ecx + 1]
mov ecx, esi
push eax
push ebx
call dword [sym.imp.core3d.dll_public:_enum_O3_RETURN_CODE___thiscall_oZone3D_nsp::o3GpuShader::loadPixelShaderFromMemory_char___int_]
mov edx, dword [esi]
mov ecx, esi
test eax, eax
je 0x40bff7
call dword [edx + 0xf0]
push eax
push 0x47752c
call fcn.0041bb90
mov eax, dword [esi]
add esp, 8
mov ecx, esi
call dword [eax + 0xf0]
push eax
push 0x477544
jmp 0x40bf0c
call dword [edx + 0x90]
mov ebx, dword [ebp - 4]
sub esp, 8
mov eax, dword [esi]
mov ecx, esi
movd xmm0, dword [ebx + 0x24]
cvtdq2ps xmm0, xmm0
movss dword [esp + 4], xmm0
movd xmm0, dword [ebx + 0x20]
cvtdq2ps xmm0, xmm0
movss dword [esp], xmm0
push str.resolution
call dword [eax + 0xa4]
mov eax, dword [esi]
push ecx
mov dword [esp], 0
mov ecx, esi
push 0x477568
call dword [eax + 0xa0]
mov eax, dword [esi]
mov ecx, esi
push 0
push str.tex0
call dword [eax + 0xc0]
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x94]
jmp 0x40bf32