Function at 0x404be0
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
mov ebx, ecx
push edi
mov dword [ebp - 4], ebx
call fcn.004288e0
cmp dword [eax + 0x94], 2
jb 0x404c65
movzx eax, word [ebx]
push eax
call fcn.0043add0
mov ecx, eax
call fcn.0043af50
movzx eax, word [ebx + 2]
push eax
call fcn.0043add0
mov ecx, eax
call fcn.0043af50
xor eax, eax
mov dword [ebx], eax
movzx esi, word [0x4fe456]
movzx edi, word [0x4fe454]
call fcn.0043add0
push 0
push 0x1c
push ecx
push 1
push esi
push edi
push 1
mov ecx, eax
call fcn.0043b090
mov cx, ax
mov word [ebx + 2], cx
test cx, cx
jne 0x404c70
push str.capture_tex_create_failed
push 0x200
push dword [ebp + 0xc]
call fcn.00483128
add esp, 0xc
xor al, al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [0x4fe490]
add eax, 0xffffffff
jns 0x404c89
movzx eax, byte [0x4fe48d]
xor edx, edx
add eax, 0xffffffff
cmovs eax, edx
mov edi, dword [eax*4 + 0x4fe498]
movzx esi, cx
call fcn.0043add0
cmp si, word [eax]
jae 0x404cab
mov eax, dword [eax + 4]
mov ecx, esi
imul ecx, ecx, 0x6c
mov ecx, dword [ecx + eax - 0x20]
jmp 0x404cad
xor ecx, ecx
movzx eax, word [0x4fe456]
push eax
movzx eax, word [0x4fe454]
push eax
sub esp, 0x10
push edi
push ecx
mov ecx, 0x4fe450
call fcn.00440ca0
call fcn.004288e0
mov esi, eax
mov dl, byte [esi + 0xc0]
movzx ecx, dl
movzx edi, word [esi + ecx*8 + 0x9e]
cmp edi, 2
jae 0x404cf5
mov ecx, dword [esi + ecx*8 + 0x98]
movzx ecx, word [ecx]
jmp 0x404d16
call fcn.00480a90
cdq
mov ecx, edi
idiv ecx
movzx ecx, dx
mov dl, byte [esi + 0xc0]
movzx eax, dl
mov eax, dword [esi + eax*8 + 0x98]
movzx ecx, word [eax + ecx*2]
inc dl
movzx edi, cx
cmp dl, 5
mov byte [esi + 0xc0], dl
sbb al, al
and byte [esi + 0xc0], al
cmp byte [ebp + 8], 0
je 0x404d71
xor ebx, ebx
call fcn.0041fac0
lea ecx, [edi + 0x323]
movzx ecx, cx
cmp dword [eax + ecx*4 + 0x2028], 0
je 0x404d6e
call fcn.004288e0
movzx esi, word [eax + 0x94]
call fcn.00480a90
cdq
inc ebx
idiv esi
mov eax, 0x309
movzx edi, dx
cmp bx, ax
jb 0x404d34
mov ebx, dword [ebp - 4]
call fcn.004288e0
mov dword [ebp + 8], eax
call fcn.0043add0
push 0
push 0x1c
push ecx
push 1
push 0x800
push 0x800
push 0
mov ecx, eax
call fcn.0043b090
mov esi, dword [ebp + 0xc]
movzx eax, ax
mov dword [ebp - 4], eax
test ax, ax
jne 0x404dd0
push str.create_texture_failed
push 0x200
push esi
call fcn.00483128
add esp, 0xc
xor eax, eax
mov word [ebx], ax
push esi
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
xor al, al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [ebp + 8]
push esi
push edi
push eax
call fcn.00428aa0
test al, al
jne 0x404df6
xor eax, eax
push esi
mov word [ebx], ax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
xor al, al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [ebp - 4]
mov word [ebx], ax
call fcn.0041fac0
lea ecx, [edi + 0x323]
movzx esi, cx
cmp dword [eax + esi*4 + 0x2028], 0
sete al
mov byte [ebx + 5], al
call fcn.0041fac0
lea ecx, [edi + 0x23]
movzx edx, cl
mov dword [eax + esi*4 + 0x2028], 1
movzx ecx, byte [edx + 0x4dcee0]
xor ecx, 1
mov dword [eax + esi*4 + 0x28], ecx
movzx ecx, byte [edx + 0x4dcfe0]
xor ecx, 1
mov dword [eax + esi*4 + 0x4028], ecx
mov ecx, 0x26
call fcn.00424c00
mov ecx, 0x27
call fcn.00424c00
mov ecx, 0x28
call fcn.00424c00
mov ecx, 0x29
call fcn.00424c00
pop edi
pop esi
mov byte [ebx + 0x10], 0
mov al, 1
mov byte [ebx + 4], 0
mov dword [ebx + 8], 0
mov dword [ebx + 0xc], 0
pop ebx
mov esp, ebp
pop ebp
ret 8