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

Disassembly:
sub esp, 0x8c
push ebx
push ebp
push esi
push edi
push dword [esp + 0xa4]
mov dword [esp + 0x48], ecx
lea ecx, [esp + 0x14]
call fcn.6523ec90
mov ebx, dword [esp + 0xa0]
lea eax, [esp + 0x38]
mov ebp, dword [0x652b80fc]
mov ecx, ebx
push eax
call ebp
mov esi, dword [0x652b85e8]
or edi, 0xffffffff
cmp dword [esp + 0x38], 0
mov dword [esp + 0x24], 0
jle 0x651815ca
lea eax, [esp + 0x30]
mov ecx, ebx
push eax
call ebp
cmp dword [esp + 0x30], 3
ja 0x6518160b
lea eax, [esp + 0x34]
mov ecx, ebx
push eax
call ebp
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x44]
add ecx, 0x14
shl eax, 5
add eax, ecx
cmp byte [esp + 0xac], 0
lea ecx, [esp + 0x48]
mov dword [esp + 0x28], eax
sete byte [esp + 0x16]
mov esi, dword [eax + 0x14]
call dword [0x652b8504]
mov edi, dword [0x652b845c]
xor ebp, ebp
mov dword [esp + 0x58], esi
mov dword [esp + 0x5c], edi
mov dword [esp + 0x1c], ebp
cmp dword [esp + 0x34], ebp
jle 0x651814e0
lea esp, [esp]
lea ecx, [esp + 0x18]
mov byte [esp + 0x78], 0
call dword [0x652b8640]
lea eax, [esp + 0x18]
push eax
push ebx
call dword [0x652b7b9c]
add esp, 8
lea eax, [esp + 0x17]
mov ecx, ebx
push eax
call dword [0x652b8104]
mov esi, dword [0x652b80fc]
lea eax, [esp + 0x3c]
push eax
mov ecx, ebx
call esi
mov eax, dword [esp + 0x3c]
mov ecx, ebx
mov dword [esp + 0x6c], eax
lea eax, [esp + 0x2c]
push eax
call esi
mov eax, dword [esp + 0x2c]
lea ecx, [esp + 0x8c]
mov dword [esp + 0x70], eax
call dword [0x652b8504]
xor al, al
mov ecx, ebx
mov byte [esp + 0x20], al
lea eax, [esp + 0x60]
push eax
call esi
cmp byte [esp + 0xa8], 0xfc
jne 0x651812bd
lea eax, [esp + 0x64]
mov ecx, ebx
push eax
call esi
mov edx, dword [esp + 0x60]
mov bl, dl
and bl, 1
mov byte [esp + 0x20], bl
jne 0x6518127d
lea ecx, [esp + 0x7c]
call dword [0x652b8504]
jmp 0x651812ae
mov ecx, dword [esp + 0x64]
mov eax, ecx
shr eax, 0x10
push eax
shr edx, 1
mov eax, edx
shr eax, 0x10
push eax
movzx eax, cx
lea ecx, [esp + 0x84]
sub eax, 0x7fff
push eax
movzx eax, dx
sub eax, 0x7fff
push eax
call dword [0x652b8500]
movdqu xmm0, xmmword [esp + 0x7c]
movdqu xmmword [esp + 0x8c], xmm0
lea ecx, [esp + 0x10]
xor esi, esi
call dword [0x652b85d8]
test eax, eax
jle 0x651814bc
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x44]
push eax
push esi
lea ecx, [esp + 0x1c]
call dword [0x652b85d0]
mov ecx, dword [eax]
call dword [0x652b83b8]
push eax
call dword [0x652b8608]
add esp, 8
lea ecx, [esp + 0x40]
mov bl, al
call dword [0x652b8638]
test bl, bl
jne 0x6518131c
lea ecx, [esp + 0x10]
inc esi
call dword [0x652b85d8]
cmp esi, eax
jl 0x651812d1
jmp 0x651814bc
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
cmp ecx, 1
je 0x651813a5
test ecx, ecx
je 0x651813a5
mov edi, dword [eax + 4]
lea ecx, [esp + 0x10]
call dword [0x652b85cc]
push edi
lea ecx, [esp + 0x14]
mov ebp, eax
call dword [0x652b85f0]
lea ecx, [esp + 0x10]
mov ebx, eax
call dword [0x652b85c8]
lea ecx, [esp + 0x10]
mov edi, eax
call dword [0x652b85cc]
mov ecx, eax
cmp ebp, ecx
je 0x6518137e
sub edi, ecx
sar edi, 2
test edi, edi
jle 0x6518137e
lea eax, [edi*4]
push eax
push ebp
push ecx
call fcn.652b518a
add esp, 0xc
mov eax, dword [ebx]
test eax, eax
je 0x65181397
cmp eax, 0xffffffff
je 0x651813a1
or eax, 0xffffffff
lock xadd dword [ebx], eax
setne al
test al, al
jne 0x651813a1
push ebx
call dword [0x652b85e8]
add esp, 4
mov ebp, dword [esp + 0x1c]
push esi
lea ecx, [esp + 0x14]
call dword [0x652b85d0]
push esi
lea ecx, [esp + 0x14]
mov edi, dword [eax]
call dword [0x652b83c4]
test edi, edi
je 0x651814bc
cmp byte [esp + 0x16], 0
je 0x651814bc
push 0x44
call fcn.652b5178
add esp, 4
test eax, eax
je 0x651813ec
push edi
mov ecx, eax
call sym.Qt5Widgets.dll_public:_void___thiscall_QWidgetItemV2::constructor_class_QWidget__
mov dword [esp + 0x68], eax
jmp 0x651813f4
mov dword [esp + 0x68], 0
cmp byte [esp + 0x20], 0
je 0x6518140b
test byte [esp + 0x17], 2
mov eax, 0
setne al
inc eax
jmp 0x65181412
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0x14]
push eax
mov ecx, edi
call sym.Qt5Widgets.dll_public:_void___thiscall_QToolBar::setOrientation_enum_Qt::Orientation_
mov al, byte [esp + 0x17]
mov ecx, edi
mov edx, dword [edi]
and al, 1
movzx eax, al
push eax
call dword [edx + 0x2c]
mov ecx, dword [edi + 4]
lea eax, [esp + 0x8c]
push eax
push 1
push dword [esp + 0x28]
call fcn.6515eb60
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x5c]
mov eax, dword [eax]
cmp eax, 1
je 0x6518148b
test eax, eax
je 0x6518148b
push 1
push 0x7fffffff
lea ecx, [esp + 0x64]
call fcn.6517d9c0
push 0x14
mov esi, eax
call fcn.652b5178
add esp, 4
test eax, eax
je 0x651814b8
movdqu xmm0, xmmword [esp + 0x68]
mov ecx, dword [esp + 0x78]
movdqu xmmword [eax], xmm0
mov dword [eax + 0x10], ecx
jmp 0x651814ba
lea ecx, [esp + 0x5c]
call dword [0x652b85e0]
push 0x14
mov esi, eax
call fcn.652b5178
add esp, 4
test eax, eax
je 0x651814b8
movdqu xmm0, xmmword [esp + 0x68]
mov ecx, dword [esp + 0x78]
movdqu xmmword [eax], xmm0
mov dword [eax + 0x10], ecx
jmp 0x651814ba
xor eax, eax
mov dword [esi], eax
lea ecx, [esp + 0x18]
call dword [0x652b8638]
mov ebx, dword [esp + 0xa0]
inc ebp
mov dword [esp + 0x1c], ebp
cmp ebp, dword [esp + 0x34]
jl 0x651811e0
mov edi, dword [esp + 0x5c]
cmp byte [esp + 0x16], 0
je 0x6518154e
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx]
mov eax, dword [eax]
cmp eax, 1
je 0x65181522
test eax, eax
je 0x65181522
push 1
push 0x7fffffff
call fcn.6517daa0
push 0x18
mov esi, eax
call fcn.652b5178
add esp, 4
test eax, eax
je 0x65181546
lea ecx, [esp + 0x48]
push ecx
mov ecx, eax
call fcn.65112370
jmp 0x65181548
call dword [0x652b85e0]
push 0x18
mov esi, eax
call fcn.652b5178
add esp, 4
test eax, eax
je 0x65181546
lea ecx, [esp + 0x48]
push ecx
mov ecx, eax
call fcn.65112370
jmp 0x65181548
xor eax, eax
mov dword [esi], eax
mov edi, dword [esp + 0x5c]
mov eax, dword [edi]
test eax, eax
je 0x6518156b
cmp eax, 0xffffffff
je 0x651815a1
or eax, 0xffffffff
lock xadd dword [edi], eax
setne al
test al, al
jne 0x651815a1
mov edi, dword [esp + 0x5c]
mov esi, dword [edi + 0xc]
mov ebx, dword [edi + 8]
add esi, 4
add ebx, 4
lea esi, [edi + esi*4]
lea ebx, [edi + ebx*4]
cmp ebx, esi
je 0x65181593
push dword [esi - 4]
sub esi, 4
call fcn.652b517e
add esp, 4
cmp esi, ebx
jne 0x65181581
mov esi, dword [0x652b85e8]
push edi
call esi
add esp, 4
jmp 0x651815a7
mov esi, dword [0x652b85e8]
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0xa0]
inc eax
mov ebp, dword [0x652b80fc]
mov dword [esp + 0x24], eax
cmp eax, dword [esp + 0x38]
jl 0x65181170
or edi, 0xffffffff
mov ecx, ebx
call dword [0x652b7b90]
test eax, eax
sete bl
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
test ecx, ecx
je 0x651815f6
cmp ecx, 0xffffffff
je 0x651815fc
lock xadd dword [eax], edi
dec edi
setne al
test al, al
jne 0x651815fc
mov eax, dword [esp + 0x10]
push eax
call esi
add esp, 4
pop edi
pop esi
pop ebp
mov al, bl
pop ebx
add esp, 0x8c
ret 0x10
xor bl, bl
or edi, 0xffffffff
jmp 0x651815d7