Function at 0x1400bca50
Capabilities:
Print debug messages

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x90
mov ebp, r9d
mov r14d, r8d
mov edi, edx
mov r13, rcx
mov esi, 0xffffffff
mov r15, qword [rax + 0x28]
mov eax, dword [0x1401765b8]
test eax, eax
jne 0x1400bcb2e
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x58], xmm0
mov rcx, qword [r15 + 8]
test rcx, rcx
je 0x1400bcaab
lock inc dword [rcx + 8]
mov rcx, qword [r15 + 8]
mov rax, qword [r15]
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], rcx
lea rax, [rsp + 0x58]
mov qword [rsp + 0x50], rax
mov edx, dword [r13 + 0x11c]
mov ecx, 0xde1
call qword [sym.imp.OPENGL32.dll_glBindTexture]
mov ecx, edi
call fcn.1400c4a30
mov ebx, eax
mov ecx, edi
call fcn.1400c4b60
mov rdx, qword [rsp + 0x58]
mov r8, qword [rdx + 0x10]
mov qword [rsp + 0x40], r8
mov dword [rsp + 0x38], ebx
mov dword [rsp + 0x30], eax
mov dword [rsp + 0x28], ebp
mov dword [rsp + 0x20], r14d
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov ecx, 0xde1
call qword [sym.imp.OPENGL32.dll_glTexSubImage2D]
xor edx, edx
mov ecx, 0xde1
call qword [sym.imp.OPENGL32.dll_glBindTexture]
nop
mov rbx, qword [rsp + 0x60]
jmp 0x1400bcc16
cmp eax, 1
jne 0x1400bcc45
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x68], xmm0
mov rcx, qword [r15 + 8]
test rcx, rcx
je 0x1400bcb51
lock inc dword [rcx + 8]
mov rcx, qword [r15 + 8]
mov rax, qword [r15]
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x70], rcx
lea rax, [rsp + 0x68]
mov qword [rsp + 0x50], rax
mov rcx, qword [0x1401768c0]
mov rax, qword [rcx]
lea rdx, [rsp + 0x78]
mov qword [rsp + 0x28], rdx
mov dword [rsp + 0x20], 0
mov r9d, 4
xor r8d, r8d
mov rdx, qword [r13 + 0x128]
call qword [rax + 0x70]
mov rdi, qword [rsp + 0x78]
test eax, eax
js 0x1400bcc03
mov rax, qword [rsp + 0x68]
mov rbx, qword [rax + 0x10]
mov edx, dword [rax + 8]
mov eax, dword [rax + 0xc]
mov ecx, dword [rsp + 0x80]
cmp eax, ecx
cmova ecx, eax
test edx, edx
jle 0x1400bcbea
lea eax, [rax*4]
movsxd rbp, eax
movsxd r12, ecx
mov r14d, edx
nop
mov r8, rbp
mov rdx, rbx
mov rcx, rdi
call sub.VCRUNTIME140.dll_memcpy
add rbx, rbp
add rdi, r12
sub r14, 1
jne 0x1400bcbd0
mov rcx, qword [0x1401768c0]
mov rax, qword [rcx]
xor r8d, r8d
mov rdx, qword [r13 + 0x128]
call qword [rax + 0x78]
jmp 0x1400bcc11
lea rcx, str.map_texture_fail
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
nop
mov rbx, qword [rsp + 0x70]
test rbx, rbx
je 0x1400bcc45
mov eax, esi
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x1400bcc45
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov eax, esi
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x1400bcc45
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rbx, qword [r15 + 8]
test rbx, rbx
je 0x1400bcc75
mov eax, esi
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x1400bcc75
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
lock xadd dword [rbx + 0xc], esi
cmp esi, 1
jne 0x1400bcc75
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea r11, [rsp + 0x90]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret