Function at 0x1005f4c0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x78
mov eax, dword [sym.imp.Qt5Core.dll_struct_QHashData_const_QHashData::shared_null]
push ebx
push esi
push edi
mov dword [esp + 0x14], eax
mov ebx, ecx
lea eax, [esp + 0x28]
mov dword [esp + 0x18], ebx
push eax
push 0xcf5
mov dword [esp + 0x30], 4
call dword [sym.imp.libGLESv2.dll_Ordinal_64]
push 1
push 0xcf5
call dword [sym.imp.libGLESv2.dll_Ordinal_91]
mov ecx, dword [esp + 0x88]
xor edx, edx
mov dword [esp + 0x20], edx
mov ecx, dword [ecx]
mov eax, dword [ecx + 0xc]
sub eax, dword [ecx + 8]
test eax, eax
jle 0x1005f8c2
movsd xmm0, qword [0x10166370]
lea esi, [ebx + 0x3c]
push ebp
mov ebp, dword [sym.imp.Qt5Gui.dll_public:_int___thiscall_QDistanceField::width_void_const]
mov dword [esp + 0x28], esi
mov dword [esp + 0x34], 8
movsd qword [esp + 0x44], xmm0
jmp 0x1005f540
mov eax, dword [ecx + 8]
add eax, edx
push dword [ecx + eax*4 + 0x10]
lea ecx, [esp + 0x18]
call dword [sym.imp.Qt5Gui.dll_public:_void___thiscall_QDistanceField::constructor_class_QDistanceField_const__]
lea ecx, [esp + 0x14]
call dword [sym.imp.Qt5Gui.dll_public:_unsigned_int___thiscall_QDistanceField::glyph_void_const]
mov ecx, dword [esp + 0x1c]
mov ebx, eax
push ebx
mov dword [esp + 0x3c], ebx
call sym.Qt5Quick.dll_protected:_struct_QSGDistanceFieldGlyphCache::GlyphData____thiscall_QSGDistanceFieldGlyphCache::glyphData_unsigned_int_
mov esi, dword [esi]
movdqu xmm0, xmmword [eax + 8]
cmp dword [esi + 0xc], 0
movdqu xmmword [esp + 0x58], xmm0
movdqu xmm0, xmmword [eax + 0x18]
movdqu xmmword [esp + 0x68], xmm0
movdqu xmm0, xmmword [eax + 0x28]
movdqu xmmword [esp + 0x78], xmm0
je 0x1005f5e3
mov ecx, dword [esi + 0x18]
xor edi, edi
test ecx, ecx
je 0x1005f5d4
mov edi, dword [esi + 0x1c]
xor edi, ebx
test ecx, ecx
je 0x1005f5d4
xor edx, edx
mov eax, edi
div ecx
mov eax, dword [esi + 4]
lea ecx, [eax + edx*4]
mov eax, dword [ecx]
cmp eax, esi
je 0x1005f5d8
lea ebx, [ebx]
cmp edi, dword [eax + 4]
jne 0x1005f5ca
cmp ebx, dword [eax + 8]
je 0x1005f5d8
mov ecx, eax
mov eax, dword [ecx]
cmp eax, esi
jne 0x1005f5c0
jmp 0x1005f5d8
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx]
cmp eax, esi
je 0x1005f5e3
mov ebx, dword [eax + 0xc]
jmp 0x1005f5e5
xor ebx, ebx
mov eax, dword [ebx + 0x18]
sub eax, dword [ebx + 0x10]
mov ecx, dword [esp + 0x1c]
inc eax
push eax
mov eax, dword [ebx + 0x14]
sub eax, dword [ebx + 0xc]
inc eax
mov dword [esp + 0x24], ebx
push eax
push ebx
mov dword [esp + 0x3c], ebx
call sym.Qt5Quick.dll_private:_void___thiscall_QSGDefaultDistanceFieldGlyphCache::resizeTexture_struct_QSGDefaultDistanceFieldGlyphCache::TextureInfo___int__int_
push dword [ebx]
push 0xde1
call dword [sym.imp.libGLESv2.dll_Ordinal_7]
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x1c]
call fcn.1005e370
mov edi, eax
mov ecx, dword [edi]
mov esi, dword [ecx + 4]
mov edx, dword [ecx + 8]
mov ecx, dword [ecx]
and edx, 0x7fffffff
lea eax, [esi + 1]
cmp eax, edx
seta al
mov byte [esp + 0x13], al
cmp ecx, 1
je 0x1005f649
test ecx, ecx
jne 0x1005f64d
test al, al
je 0x1005f66a
mov cl, byte [esp + 0x13]
xor eax, eax
test cl, cl
lea ecx, [esi + 1]
cmovne eax, dword [esp + 0x34]
cmovne edx, ecx
push eax
push edx
push esi
mov ecx, edi
call fcn.10116ad0
mov esi, dword [edi]
mov ecx, esi
call dword [sym.imp.Qt5Core.dll_public:_void____thiscall_QArrayData::data_void_]
movsd xmm0, qword [esp + 0x78]
sub esp, 8
mulsd xmm0, qword [esp + 0x4c]
mov ecx, dword [esi + 4]
mov edx, dword [esp + 0x40]
addsd xmm0, qword [esp + 0x70]
mov dword [eax + ecx*4], edx
mov eax, dword [edi]
movsd qword [esp + 0x54], xmm0
fld qword [esp + 0x54]
inc dword [eax + 4]
fstp qword [esp]
call sub.MSVCR120.dll_ceil
add esp, 8
lea ecx, [esp + 0x14]
fstp qword [esp + 0x38]
cvttsd2si esi, qword [esp + 0x38]
call ebp
cmp eax, esi
je 0x1005f6f5
lea ecx, [esp + 0x14]
call dword [sym.imp.Qt5Gui.dll_public:_int___thiscall_QDistanceField::height_void_const]
push eax
push esi
push 0
push 0
lea eax, [esp + 0x50]
push eax
lea ecx, [esp + 0x28]
call dword [sym.imp.Qt5Gui.dll_public:_class_QDistanceField___thiscall_QDistanceField::copy_int__int__int__int_]
push eax
lea ecx, [esp + 0x18]
call dword [sym.imp.Qt5Gui.dll_public:_class_QDistanceField____thiscall_QDistanceField::operator_class_QDistanceField_const__]
lea ecx, [esp + 0x40]
call dword [sym.imp.Qt5Gui.dll_public:_void___thiscall_QDistanceField::destructor_void_]
cmp byte [0x102075d4], 0
jne 0x1005f739
call dword [sym.imp.Qt5Gui.dll_public:_static_class_QOpenGLContext____cdecl_QOpenGLContext::currentContext_void_]
push eax
call dword [sym.imp.Qt5Gui.dll_public:_static_class_QOpenGLContextPrivate____cdecl_QOpenGLContextPrivate::get_class_QOpenGLContext__]
add esp, 4
cmp byte [eax + 0x7c], 0
jne 0x1005f72b
call fcn.1005e880
test al, al
jne 0x1005f72b
mov byte [0x102075d5], al
mov byte [0x102075d4], 1
jmp 0x1005f73e
mov al, 1
mov byte [0x102075d5], al
mov byte [0x102075d4], al
jmp 0x1005f73e
mov al, byte [0x102075d5]
test al, al
je 0x1005f7a9
mov esi, dword [sym.imp.Qt5Gui.dll_public:_unsigned_char____thiscall_QDistanceField::scanLine_int_]
lea ecx, [esp + 0x14]
push 0
call esi
cvttsd2si ecx, qword [esp + 0x60]
mov edi, eax
push ecx
lea ecx, [ebx + 0x1c]
call esi
cvttsd2si esi, qword [esp + 0x58]
lea ecx, [esp + 0x14]
xor ebx, ebx
add esi, eax
call dword [sym.imp.Qt5Gui.dll_public:_int___thiscall_QDistanceField::height_void_const]
test eax, eax
jle 0x1005f7a9
lea ecx, [esp + 0x14]
call ebp
push eax
push edi
push esi
call sub.MSVCR120.dll_memcpy
add esp, 0xc
lea ecx, [esp + 0x14]
call ebp
mov ecx, dword [esp + 0x20]
add edi, eax
lea ecx, [ecx + 0x1c]
call ebp
lea ecx, [esp + 0x14]
add esi, eax
inc ebx
call dword [sym.imp.Qt5Gui.dll_public:_int___thiscall_QDistanceField::height_void_const]
cmp ebx, eax
jl 0x1005f776
cmp byte [0x102075d6], 0
jne 0x1005f7df
push str.Mali_400_MP
push 0x1f01
call dword [sym.imp.libGLESv2.dll_Ordinal_72]
push eax
call dword [sym.imp.Qt5Core.dll_int___cdecl_qstrcmp_char_const___char_const__]
add esp, 8
mov byte [0x102075d6], 1
test eax, eax
sete al
mov byte [0x102075d7], al
jmp 0x1005f7e4
mov al, byte [0x102075d7]
lea ecx, [esp + 0x14]
test al, al
je 0x1005f851
mov ebx, dword [sym.imp.Qt5Gui.dll_public:_int___thiscall_QDistanceField::height_void_const]
xor esi, esi
call ebx
test eax, eax
jle 0x1005f88f
cvttsd2si edi, qword [esp + 0x58]
push esi
lea ecx, [esp + 0x18]
call dword [sym.imp.Qt5Gui.dll_public:_unsigned_char____thiscall_QDistanceField::scanLine_int_]
push eax
push 0x1401
push 0x1906
push 1
lea ecx, [esp + 0x24]
call ebp
movd xmm0, esi
cvtdq2pd xmm0, xmm0
push eax
addsd xmm0, qword [esp + 0x74]
cvttsd2si eax, xmm0
push eax
push edi
push 0
push 0xde1
call dword [sym.imp.libGLESv2.dll_Ordinal_111]
lea ecx, [esp + 0x14]
inc esi
call ebx
cmp esi, eax
jl 0x1005f804
jmp 0x1005f88f
call dword [sym.imp.Qt5Gui.dll_public:_unsigned_char_const____thiscall_QDistanceField::constBits_void_const]
push eax
push 0x1401
push 0x1906
lea ecx, [esp + 0x20]
call dword [sym.imp.Qt5Gui.dll_public:_int___thiscall_QDistanceField::height_void_const]
push eax
lea ecx, [esp + 0x24]
call ebp
push eax
cvttsd2si eax, qword [esp + 0x74]
push eax
cvttsd2si eax, qword [esp + 0x70]
push eax
push 0
push 0xde1
call dword [sym.imp.libGLESv2.dll_Ordinal_111]
lea ecx, [esp + 0x14]
call dword [sym.imp.Qt5Gui.dll_public:_void___thiscall_QDistanceField::destructor_void_]
mov eax, dword [esp + 0x8c]
mov edx, dword [esp + 0x24]
mov esi, dword [esp + 0x28]
inc edx
mov dword [esp + 0x24], edx
mov ecx, dword [eax]
mov eax, dword [ecx + 0xc]
sub eax, dword [ecx + 8]
cmp edx, eax
jl 0x1005f540
mov ebx, dword [esp + 0x1c]
pop ebp
push dword [esp + 0x28]
push 0xcf5
call dword [sym.imp.libGLESv2.dll_Ordinal_91]
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x18]
mov esi, dword [ecx + 4]
test eax, eax
je 0x1005f8f0
nop
dec eax
cmp dword [esi], ecx
jne 0x1005f984
add esi, 4
test eax, eax
jne 0x1005f8e0
mov esi, ecx
cmp esi, ecx
je 0x1005f94f
mov edi, dword [sym.imp.Qt5Core.dll_public:_static_struct_QHashData::Node____cdecl_QHashData::nextNode_struct_QHashData::Node__]
lea esp, [esp]
mov ecx, dword [esi + 8]
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0xffffffff
mov dword [esp + 0x50], 0xffffffff
mov eax, dword [ecx]
mov dword [esp + 0x48], eax
mov eax, dword [ecx + 4]
mov dword [esp + 0x4c], eax
mov eax, dword [ecx + 8]
mov ecx, ebx
mov dword [esp + 0x50], eax
lea eax, [esp + 0x48]
push eax
lea eax, [esi + 0xc]
push eax
call sym.Qt5Quick.dll_protected:_void___thiscall_QSGDistanceFieldGlyphCache::setGlyphsTexture_class_QVector_unsigned_int__const___struct_QSGDistanceFieldGlyphCache::Texture_const__
push esi
call edi
mov ecx, dword [esp + 0x18]
mov esi, eax
add esp, 4
cmp esi, ecx
jne 0x1005f900
mov eax, dword [ecx + 8]
lea edx, [ecx + 8]
pop edi
pop esi
pop ebx
test eax, eax
je 0x1005f973
cmp eax, 0xffffffff
je 0x1005f97e
or eax, 0xffffffff
lock xadd dword [edx], eax
setne al
test al, al
jne 0x1005f97e
mov ecx, dword [esp + 8]
push 0x1005e690
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QHashData::free_helper_void____cdecl___struct_QHashData::Node___]
add esp, 0x78
ret 4
mov esi, dword [esi]
jmp 0x1005f8f2