Function at 0x405620
Capabilities:
Access peb ldr_data
Get number of processors

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4c430f
mov eax, dword fs:[0]
push eax
sub esp, 0x64
push esi
push edi
mov eax, dword [0x572b90]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x48], esi
mov dword [ebp - 4], 0
lea edi, [esi + 0xc]
mov dword [esi], vtable.EnemyManager.0
mov dword [esi + 4], 0
mov dword [esi + 8], 0
mov dword [edi], 0
mov dword [edi + 4], 0
mov dword [edi + 8], 0
mov dword [esi + 0x18], 0
mov dword [esi + 0x1c], 0
mov dword [esi + 0x20], 0
mov dword [esi + 0x24], 2
mov dword [esi + 0x2c], 0
mov dword [esi + 0x30], 0
mov dword [esi + 0x34], 0
lea ecx, [esi + 0x38]
mov dword [ecx], 0
mov dword [ebp - 0x28], ecx
mov dword [esi + 0x3c], 0
mov dword [esi + 0x40], 0
mov dword [esi + 0x44], 0
lea eax, [esi + 0x48]
mov byte [ebp - 4], 5
push str.uniform_sampler2D_texture_________________________________________________________void_main_________________________________________________vec4_pixel__texture2D_texture__gl_TexCoord_0_.xy_____________________________________________________________pixel.r__0.9647058823529412f__t_t_t_t_t_t____pixel.g__0.9294117647058824f__________________________pixel.b__0.803921568627451f__________________________________________________________________________________gl_FragColor__pixel_______________________________
mov ecx, eax
mov dword [ebp - 0x1c], eax
call fcn.004052c0
lea eax, [esi + 0x60]
mov dword [eax], 0
mov dword [ebp - 0x14], eax
mov byte [ebp - 4], 7
cmp dword [esi + 0x24], 0
mov dword [ebp - 0x24], 0
jle 0x4058a4
nop dword [eax]
push 0x28
call fcn.004c0775
add esp, 4
mov dword [ebp - 0x2c], eax
mov ecx, eax
mov byte [ebp - 4], 8
call fcn.00419410
mov dword [ebp - 0x20], eax
mov byte [ebp - 4], 9
mov ecx, dword [edi + 4]
cmp ecx, dword [edi + 8]
je 0x405741
xor esi, esi
mov dword [ecx], eax
add dword [edi + 4], 4
jmp 0x405750
lea eax, [ebp - 0x20]
push eax
push ecx
mov ecx, edi
call fcn.00406b50
mov esi, dword [ebp - 0x20]
mov byte [ebp - 4], 7
test esi, esi
je 0x40576a
mov ecx, esi
call fcn.004194d0
push 0x28
push esi
call fcn.004c07a5
add esp, 8
mov esi, dword [ebp - 0x24]
test esi, esi
jne 0x4057f8
push str.Textures_Enemies_asteroid.png
lea ecx, [ebp - 0x44]
call fcn.004052c0
mov byte [ebp - 4], 0xa
lea eax, [ebp - 0x70]
mov ecx, dword [edi]
xorps xmm0, xmm0
push eax
lea eax, [ebp - 0x44]
movups xmmword [ebp - 0x70], xmm0
mov ecx, dword [ecx]
push eax
call fcn.00419ee0
test al, al
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x30]
sete al
mov byte [ebp - 0xd], al
cmp ecx, 0x10
jb 0x4057e1
mov edx, dword [ebp - 0x44]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4057d4
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40596c
push ecx
push edx
call fcn.004c07a5
mov al, byte [ebp - 0xd]
add esp, 8
test al, al
je 0x405892
push 0x403fb0
push str.Textures_Enemies_asteroid.png_load_failure
jmp 0x40587c
cmp esi, 1
jne 0x405892
push str.Textures_Enemies_squid.png
lea ecx, [ebp - 0x44]
call fcn.004052c0
mov byte [ebp - 4], 0xb
lea eax, [ebp - 0x60]
mov ecx, dword [edi]
xorps xmm0, xmm0
push eax
lea eax, [ebp - 0x44]
movups xmmword [ebp - 0x60], xmm0
mov ecx, dword [ecx + 4]
push eax
call fcn.00419ee0
test al, al
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x30]
sete al
mov byte [ebp - 0xd], al
cmp ecx, 0x10
jb 0x40586e
mov edx, dword [ebp - 0x44]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x405861
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40596c
push ecx
push edx
call fcn.004c07a5
mov al, byte [ebp - 0xd]
add esp, 8
test al, al
je 0x405892
push 0x403fb0
push str.Textures_Enemies_squid.png_load_failure
push dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.00403d50
add esp, 8
mov ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
mov eax, dword [ebp - 0x18]
inc esi
mov dword [ebp - 0x24], esi
cmp esi, dword [eax + 0x24]
jl 0x405710
mov esi, eax
movss xmm0, dword [ebp + 8]
mov eax, dword [ebp + 0x10]
movss dword [esi + 4], xmm0
movss xmm0, dword [ebp + 0xc]
push 0x28
movss dword [esi + 8], xmm0
mov dword [esi + 0x28], eax
call fcn.004c0775
add esp, 4
mov dword [ebp - 0x2c], eax
mov ecx, eax
mov byte [ebp - 4], 0xc
call fcn.00419410
mov esi, eax
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x28]
lea ecx, [ebp - 0x4c]
cmp eax, ecx
je 0x4058fa
mov edi, dword [eax]
mov dword [eax], esi
test edi, edi
je 0x405910
mov ecx, edi
call fcn.004194d0
push 0x28
push edi
jmp 0x405908
test esi, esi
je 0x405910
mov ecx, esi
call fcn.004194d0
push 0x28
push esi
call fcn.004c07a5
add esp, 8
push str.Textures_enemySmoke.png
lea ecx, [ebp - 0x44]
call fcn.004052c0
mov ecx, dword [ebp - 0x28]
lea eax, [ebp - 0x60]
push eax
mov byte [ebp - 4], 0xd
lea eax, [ebp - 0x44]
xorps xmm0, xmm0
mov ecx, dword [ecx]
push eax
movups xmmword [ebp - 0x60], xmm0
call fcn.00419ee0
test al, al
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x30]
sete al
mov byte [ebp - 0xd], al
cmp ecx, 0x10
jb 0x40597f
mov edx, dword [ebp - 0x44]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x405972
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x405972
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.004c07a5
mov al, byte [ebp - 0xd]
add esp, 8
test al, al
je 0x4059a3
push 0x403fb0
push str.Enemy_smoke_texture_load_failure
push dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.00403d50
add esp, 8
mov ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
push 0x1c
call fcn.004c0775
add esp, 4
mov dword [ebp - 0x2c], eax
mov byte [ebp - 4], 0xe
xorps xmm0, xmm0
movups xmmword [eax], xmm0
mov ecx, eax
movq qword [eax + 0x10], xmm0
mov dword [eax + 0x18], 0
call fcn.0041d200
mov esi, eax
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x14]
lea ecx, [ebp - 0x50]
cmp eax, ecx
je 0x4059f1
mov edi, dword [eax]
mov dword [eax], esi
test edi, edi
je 0x405a0a
mov ecx, edi
call fcn.0041d3d0
push 0x1c
push edi
jmp 0x4059ff
test esi, esi
je 0x405a0a
mov ecx, esi
call fcn.0041d3d0
push 0x1c
push esi
call fcn.004c07a5
mov eax, dword [ebp - 0x14]
add esp, 8
mov ecx, dword [eax]
push 2
push dword [ebp - 0x1c]
call fcn.0041e0d0
test al, al
jne 0x405a3a
push 0x403fb0
push str.Failure_to_load_shader
push dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.00403d50
add esp, 8
mov ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
push str.texture
lea ecx, [ebp - 0x44]
call fcn.004052c0
mov ecx, dword [ebp - 0x14]
mov byte [ebp - 4], 0xf
movzx eax, byte [0x575bb4]
push eax
mov ecx, dword [ecx]
lea eax, [ebp - 0x44]
push eax
call fcn.0041e640
mov ecx, dword [ebp - 0x30]
cmp ecx, 0x10
jb 0x405a97
mov edx, dword [ebp - 0x44]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x405a8d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x405a8d
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.004c07a5
add esp, 8
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0xc