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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x4c
push ebx
mov ebx, ecx
push esi
push edi
mov dword [esp + 0x4c], ebx
mov edx, dword [ebx + 0x30]
mov eax, dword [ebx + 0x7c]
and edx, 0x20
mov ecx, dword [ebx + 4]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x44], edx
mov dword [esp + 0x30], eax
test eax, eax
jne 0x67103c6a
mov eax, dword [ecx]
mov eax, dword [eax + 0x2c]
call eax
mov edx, dword [esp + 0x44]
movzx eax, al
neg eax
sbb eax, eax
add eax, 2
mov dword [esp + 0x30], eax
mov dword [ebx + 0x7c], eax
cmp eax, 1
jne 0x67103cee
cmp byte [ebp + 0x14], 0
jne 0x67103c7f
cmp byte [ebx + 0x78], 0
jne 0x67103c7f
xor dh, dh
jmp 0x67103c81
mov dh, 1
mov esi, dword [ebx + 0x48]
mov dl, 1
mov edi, dword [ebx + 0x4c]
xorps xmm0, xmm0
movlpd qword [esp + 0x50], xmm0
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
mov byte [esp + 0xf], dl
xor dl, dl
mov byte [esp + 0xd], dh
mov dword [esp + 0x24], esi
mov dword [esp + 0x28], edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ecx
mov byte [esp + 0xe], dl
cmp byte [ebx + 0x78], dl
je 0x67103cd0
mov ecx, dword [ebx + 0x70]
mov dword [esp + 0x34], ecx
mov ecx, dword [ebx + 0x74]
mov dword [esp + 0x38], ecx
jmp 0x67103d63
mov dword [esp + 0x18], eax
mov al, byte [esp + 0xf]
mov byte [esp + 0xd], dh
mov dword [esp + 0x28], edi
mov dword [esp + 0x1c], ecx
mov byte [esp + 0xf], al
mov byte [esp + 0xe], dl
jmp 0x67103d49
cmp byte [ebp + 0x14], 0
je 0x67103d17
test edx, edx
jne 0x67103d17
mov ecx, dword [ebx + 0x4c]
xorps xmm0, xmm0
movlpd qword [esp + 0x50], xmm0
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x54]
mov byte [esp + 0xd], 1
mov dword [esp + 0x1c], ecx
jmp 0x67103d34
mov ecx, dword [ebx + 0x4c]
xorps xmm0, xmm0
movlpd qword [esp + 0x50], xmm0
mov eax, dword [esp + 0x54]
mov byte [esp + 0xd], 0
mov dword [esp + 0x28], ecx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x50]
mov esi, dword [ebx + 0x48]
mov dword [esp + 0x18], eax
mov byte [esp + 0xe], 0
mov byte [esp + 0xf], 1
movlpd qword [esp + 0x50], xmm0
mov eax, dword [esp + 0x54]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x24], esi
mov dword [esp + 0x34], eax
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], eax
mov esi, edi
cmp byte [esp + 0xd], 0
mov ecx, dword [ebx + 0x40]
je 0x67103dad
test ecx, ecx
je 0x67103d96
push dword [esp + 0x38]
push dword [esp + 0x38]
push edx
push eax
push edi
call sym.Qt5Core.dll_public:_long_long___int64____thiscall_QRingBuffer::peek_char___long_long___int64___long_long___int64__const
jmp 0x67103db9
xorps xmm0, xmm0
movlpd qword [esp + 0x50], xmm0
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x50]
jmp 0x67103dc7
test ecx, ecx
je 0x67103e27
push edx
push eax
push edi
call sym.Qt5Core.dll_public:_long_long___int64____thiscall_QRingBuffer::read_char___long_long___int64__
mov ecx, eax
mov dword [esp + 0x20], edx
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x20], 0
mov ebx, dword [esp + 0x4c]
jl 0x67103e27
jg 0x67103dd8
test ecx, ecx
je 0x67103e27
add dword [esp + 0x34], ecx
mov edi, dword [esp + 0x38]
adc edi, dword [esp + 0x20]
cmp dword [esp + 0x30], 1
mov dword [esp + 0x38], edi
mov edi, dword [ebp + 8]
je 0x67103e00
add dword [ebx + 0x48], ecx
mov edx, dword [esp + 0x20]
adc dword [ebx + 0x4c], edx
mov edx, dword [esp + 0x14]
add dword [esp + 0x18], ecx
mov eax, dword [esp + 0x1c]
adc eax, dword [esp + 0x20]
add edi, ecx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x10]
sub eax, ecx
mov dword [ebp + 8], edi
mov dword [esp + 0x10], eax
sbb edx, dword [esp + 0x20]
mov dword [esp + 0x14], edx
test edx, edx
jl 0x67104037
jg 0x67103e39
test eax, eax
je 0x67104037
cmp byte [esp + 0xe], 0
jne 0x67104037
cmp dword [esp + 0x30], 1
je 0x67103e74
mov edx, dword [ebx + 0x48]
mov ecx, dword [ebx + 0x4c]
cmp edx, dword [ebx + 0x50]
jne 0x67103e5b
cmp ecx, dword [ebx + 0x54]
je 0x67103e74
mov eax, dword [esp + 0x2c]
push ecx
mov ecx, dword [esp + 0x30]
push edx
mov eax, dword [eax]
mov eax, dword [eax + 0x40]
call eax
test al, al
je 0x67104029
cmp dword [esp + 0x44], 0
lea eax, [ebx + 0x68]
mov ecx, dword [esp + 0x14]
mov byte [esp + 0xf], 0
jne 0x67103ea6
mov dword [esp + 0x20], eax
mov eax, dword [eax]
cdq
cmp ecx, edx
jl 0x67103f49
jg 0x67103ea2
cmp dword [esp + 0x10], eax
jb 0x67103f4e
mov eax, dword [esp + 0x20]
cmp byte [esp + 0xd], 0
mov edx, eax
jne 0x67103f23
mov edx, dword [esp + 0x2c]
push ecx
push dword [esp + 0x14]
mov ecx, edx
mov eax, dword [edx]
push edi
mov eax, dword [eax + 0x60]
call eax
mov ecx, eax
mov eax, edx
mov edx, dword [esp + 0x14]
cmp ecx, dword [esp + 0x10]
jne 0x67103ed9
mov byte [esp + 0xe], 0
cmp eax, edx
je 0x67103ede
mov byte [esp + 0xe], 1
test eax, eax
jl 0x67104029
jg 0x67103ef0
test ecx, ecx
je 0x6710401f
add dword [esp + 0x18], ecx
adc dword [esp + 0x1c], eax
add edi, ecx
sub dword [esp + 0x10], ecx
mov dword [ebp + 8], edi
sbb edx, eax
cmp dword [esp + 0x30], 1
mov dword [esp + 0x14], edx
je 0x67104037
add dword [ebx + 0x48], ecx
adc dword [ebx + 0x4c], eax
add dword [ebx + 0x50], ecx
adc dword [ebx + 0x54], eax
jmp 0x67104037
cmp dword [esp + 0x44], 0
mov eax, edx
je 0x67103f52
mov eax, dword [edx]
mov dword [esp + 0x20], edx
cdq
mov edi, eax
cmp edx, ecx
jl 0x67103f4e
mov eax, dword [esp + 0x10]
jg 0x67103f43
cmp edi, eax
jb 0x67103f4e
mov dword [esp + 0x3c], ecx
jmp 0x67103f5b
lea eax, [ebx + 0x68]
jmp 0x67103f52
mov eax, dword [esp + 0x20]
mov eax, dword [eax]
cdq
mov ecx, edx
mov dword [esp + 0x3c], edx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x2c]
push ecx
push dword [esp + 0x24]
mov ecx, dword [ebx + 0x40]
mov eax, dword [eax]
mov edi, dword [eax + 0x60]
call sym.Qt5Core.dll_public:_char____thiscall_QRingBuffer::reserve_long_long___int64__
push dword [esp + 0x3c]
mov ecx, dword [esp + 0x30]
push dword [esp + 0x24]
push eax
call edi
mov ecx, dword [esp + 0x3c]
mov edi, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x48], eax
mov dword [esp + 0x50], edi
cmp eax, edx
jne 0x67103fa3
mov byte [esp + 0xe], 0
cmp edi, ecx
je 0x67103fa8
mov byte [esp + 0xe], 1
test edi, edi
jl 0x67103ff9
jg 0x67103fb2
test eax, eax
je 0x67103ff9
sub edx, eax
sbb ecx, edi
push ecx
mov ecx, dword [ebx + 0x40]
push edx
call sym.Qt5Core.dll_public:_void___thiscall_QRingBuffer::chop_long_long___int64__
cmp dword [esp + 0x30], 1
je 0x67103fd1
mov eax, dword [esp + 0x48]
add dword [ebx + 0x50], eax
adc dword [ebx + 0x54], edi
mov al, byte [esp + 0xd]
mov edi, dword [ebp + 8]
mov edx, dword [esp + 0x14]
mov byte [esp + 0xd], al
mov eax, dword [esp + 0x24]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x10]
jmp 0x67103d76
xorps xmm0, xmm0
movlpd qword [esp + 0x3c], xmm0
sub edx, dword [esp + 0x3c]
sbb ecx, dword [esp + 0x40]
push ecx
mov ecx, dword [ebx + 0x40]
push edx
call sym.Qt5Core.dll_public:_void___thiscall_QRingBuffer::chop_long_long___int64__
mov edi, dword [ebp + 8]
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x48]
test eax, eax
jg 0x67104033
jl 0x67104029
test ecx, ecx
jae 0x67104033
mov eax, dword [esp + 0x18]
or eax, dword [esp + 0x1c]
je 0x6710409f
mov edx, dword [esp + 0x14]
test byte [ebx + 0x30], 0x10
je 0x671040ad
cmp esi, edi
jae 0x671040ad
cmp byte [esi], 0xd
mov dword [esp + 0x50], edi
je 0x6710405a
nop word [eax + eax]
inc esi
cmp esi, edi
je 0x6710405a
cmp byte [esi], 0xd
jne 0x67104050
mov ecx, esi
cmp esi, edi
jae 0x67104096
mov ebx, dword [esp + 0x10]
mov al, byte [esi]
inc esi
cmp al, 0xd
je 0x67104070
mov byte [ecx], al
inc ecx
jmp 0x67104081
add dword [esp + 0x18], 0xffffffff
adc dword [esp + 0x1c], 0xffffffff
dec edi
add ebx, 1
adc edx, 0
cmp esi, dword [esp + 0x50]
jb 0x67104064
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x4c]
mov dword [esp + 0x14], edx
mov dword [ebp + 8], edi
mov eax, dword [esp + 0x10]
jmp 0x67103d74
or eax, 0xffffffff
or edx, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
cmp byte [esp + 0xd], 0
je 0x671040da
cmp byte [ebp + 0x14], 0
je 0x671040ca
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov dword [ebx + 0x48], esi
mov dword [ebx + 0x4c], ecx
jmp 0x67104128
mov eax, dword [esp + 0x34]
mov dword [ebx + 0x70], eax
mov eax, dword [esp + 0x38]
mov dword [ebx + 0x74], eax
jmp 0x67104128
cmp byte [ebp + 0x14], 0
je 0x67104128
mov esi, dword [esp + 0x24]
mov eax, esi
sub eax, dword [ebx + 0x48]
mov ecx, dword [esp + 0x28]
mov edx, ecx
sbb edx, dword [ebx + 0x4c]
mov dword [ebx + 0x48], esi
mov dword [ebx + 0x4c], ecx
js 0x6710411c
jg 0x67104100
test eax, eax
jb 0x6710411c
mov ecx, dword [ebx + 0x40]
test ecx, ecx
je 0x6710411c
cmp edx, dword [ecx + 0xc]
jg 0x6710411c
jl 0x67104113
cmp eax, dword [ecx + 8]
jae 0x6710411c
push edx
push eax
call sym.Qt5Core.dll_public:_void___thiscall_QRingBuffer::free_long_long___int64__
jmp 0x67104128
mov ecx, dword [ebx + 0x40]
test ecx, ecx
je 0x67104128
call sym.Qt5Core.dll_public:_void___thiscall_QRingBuffer::clear_void_
cmp byte [esp + 0xf], 0
je 0x6710414a
mov ecx, ebx
call sym.Qt5Core.dll_public:_bool___thiscall_QIODevicePrivate::isBufferEmpty_void_const
test al, al
je 0x6710414a
mov eax, dword [esp + 0x2c]
mov ecx, eax
push 0
push 0
push edi
mov esi, dword [eax]
call dword [esi + 0x60]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10